Trình giả lập Game Boy viết bằng Rust thu hút sự chú ý nhờ khả năng chơi trên web

BigGo Editorial Team
Trình giả lập Game Boy viết bằng Rust thu hút sự chú ý nhờ khả năng chơi trên web

Cộng đồng game hoài cổ đang xôn xao về một trình giả lập Game Boy mới có tên retroboy, được viết bằng ngôn ngữ Rust và có khả năng chạy trực tiếp trên trình duyệt web. Dự án này cho thấy cách các ngôn ngữ lập trình hiện đại và WebAssembly đang giúp các nhà phát triển mang trải nghiệm chơi game cổ điển lên web với độ chính xác ấn tượng.

Thách thức và tiến bộ trong giả lập trên nền web

Trình giả lập này đã thu hút sự chú ý đáng kể nhờ bộ tính năng toàn diện, bao gồm giả lập CPU chính xác, hỗ trợ âm thanh và khả năng tương thích với nhiều Memory Bank Controllers (MBCs). Tuy nhiên, các cuộc thảo luận trong cộng đồng cho thấy giả lập âm thanh vẫn là một trong những khía cạnh khó khăn nhất của các trình giả lập trên trình duyệt. Nhiều người dùng báo cáo nghe thấy tiếng click và các tạp âm khác không có trong các trò chơi gốc. Đây dường như là vấn đề phổ biến với WebAssembly và âm thanh trên trình duyệt.

Almost anything WASM+Audio seems to do that in browsers today, unless you're really really careful about what you're doing and leverage multiple threads. I think the issue is mostly around single-thread contexts, where it has to switch between playing audio and other things.

Các nhà phát triển trong phần bình luận giải thích rằng những hạn chế về hiệu suất của WebAudio thường đòi hỏi bộ đệm âm thanh lớn hơn nhiều (tối thiểu 100ms) so với các ứng dụng gốc (20ms), và bất kỳ sự rớt khung hình hoặc gián đoạn hiệu suất nào cũng có thể gây ra lỗi âm thanh. Một số người đề xuất sử dụng các luồng riêng biệt cho xử lý âm thanh như một giải pháp tiềm năng, mặc dù điều này làm tăng đáng kể độ phức tạp của việc triển khai.

Các tính năng chính của trình giả lập retroboy:

  • CPU chính xác theo chu kỳ vượt qua tất cả các bài kiểm tra CPU JSON
  • Giả lập âm thanh chính xác (với một số giới hạn của trình duyệt)
  • Giả lập đồ họa sử dụng bộ render dựa trên scanline
  • Hỗ trợ MBC1, MBC3, MBC5 và HuC1
  • Hỗ trợ RTC cho các băng đĩa MBC3
  • Lưu trữ RAM băng đĩa liên tục thông qua bộ nhớ cục bộ của trình duyệt
  • Hỗ trợ các mã gian lận GameShark hoặc GameGenie
  • Giao diện Web với chế độ toàn màn hình, tạm dừng/tiếp tục và điều khiển tùy chỉnh

Hệ sinh thái giả lập Rust đang phát triển

Dự án này gia nhập một hệ sinh thái đang phát triển của các trình giả lập dựa trên Rust, với nhiều người bình luận chia sẻ liên kết đến các dự án tương tự của họ. Ngôn ngữ lập trình Rust dường như ngày càng phổ biến cho các dự án giả lập nhờ vào đặc điểm hiệu suất và tính năng an toàn bộ nhớ. Khi được biên dịch sang WebAssembly, các trình giả lập này có thể chạy hiệu quả trên trình duyệt mà không cần plugin hoặc tải xuống.

Cách tổ chức mã nguồn gọn gàng đã nhận được lời khen cụ thể từ nhiều nhà phát triển muốn học hỏi từ dự án này. Một số người đề cập rằng họ đã do dự khi bắt đầu các dự án giả lập của riêng mình do không chắc chắn về frameworks và công cụ, nhưng nhận thấy cách tiếp cận của dự án này sử dụng wasm-bindgen và HTML Canvas là đơn giản và hấp dẫn.

Các trò chơi Game Boy được đề xuất nhiều nhất (từ bình luận):

  • Pokémon Red/Blue và Gold/Silver
  • The Legend of Zelda: Link's Awakening
  • Tetris
  • Super Mario Land 1 & 2
  • Kirby's Dream Land
  • Wario Land II & III
  • Donkey Kong (1994)

Sức hút bền vững của game hoài cổ

Ngoài các thảo luận kỹ thuật, các bình luận cho thấy sự phổ biến lâu dài của các trò chơi và phần cứng Game Boy. Người dùng hào hứng chia sẻ các tựa game yêu thích của họ, với Pokémon, Zelda: Link's Awakening, và Tetris thường được đề cập như những trải nghiệm thiết yếu. Cuộc trò chuyện cũng nhấn mạnh cảnh homebrew đang phát triển mạnh, tạo ra các trò chơi mới cho phần cứng cổ điển, bao gồm các trình tạo nhạc như LSDj và các phiên bản Tetris hiện đại.

Nhiều người bình luận lưu ý rằng họ gần đây đã mua các máy chơi game cầm tay hoài cổ từ các nhà sản xuất như Anbernic và Miyoo, với giá khởi điểm khoảng 50 bảng Anh (khoảng 65 đô la Mỹ), có khả năng giả lập không chỉ Game Boy mà còn cả các hệ thống lên đến PlayStation 1. Điều này cho thấy một thị trường mạnh mẽ cho trải nghiệm chơi game hoài cổ di động ngoài giả lập phần mềm thuần túy.

Người tạo dự án, người đã ngạc nhiên trước sự chú ý mà dự án nhỏ của họ nhận được, đề cập rằng họ thấy wasm-bindgen tương đối dễ sử dụng. Khả năng tiếp cận này cho thấy cách các công nghệ web hiện đại đang hạ thấp rào cản gia nhập cho các dự án giả lập phức tạp, cho phép nhiều nhà phát triển hơn đóng góp vào việc bảo tồn lịch sử game đồng thời làm cho nó dễ tiếp cận thông qua nền tảng phổ biến của trình duyệt web.

Tham khảo: retroboy