11 điểm bởi GN⁺ 2025-03-22 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trình giả lập Game Boy có độ chính xác theo chu kỳ với giả lập CPU/âm thanh chính xác
  • Sử dụng wasm-pack để chuyển mã Rust sang WebAssembly → có thể chạy trên web
  • Sử dụng Web Audio APIHTML Canvas để xử lý âm thanh và đồ họa
  • Sử dụng local storage → có thể duy trì dữ liệu RAM của cartridge MBC hỗ trợ pin

Tính năng chính

  • Giả lập CPU chính xác → vượt qua bài kiểm tra CPU dạng JSON
  • Giả lập âm thanh chính xác
  • Giả lập đồ họa → sử dụng bộ dựng hình dựa trên scanline
  • Hỗ trợ MBC1, MBC3, MBC5, HuC1 → tương thích với nhiều loại cartridge
  • Hỗ trợ RTC (Real Time Clock) → cho phép chạy các game dựa trên thời gian trên cartridge MBC3
  • Hỗ trợ mã gian lận GameShark và GameGenie
  • Cartridge có pin dự phòng có thể lưu dữ liệu RAM vào local storage
  • Frontend web
    • React/TypeScript + Material UI
    • Hỗ trợ chế độ toàn màn hình
    • Tạm dừng và tiếp tục game
    • Có thể chọn chế độ đơn sắc và màu
    • Hỗ trợ ánh xạ phím tùy chỉnh
    • Có thể kích hoạt và quản lý mã gian lận
    • Thiết kế responsive thân thiện với di động

1 bình luận

 
GN⁺ 2025-03-22
Ý kiến trên Hacker News
  • Dự án này thật sự rất tuyệt. Mô phỏng âm thanh vẫn có một vài vấn đề, nhưng nó khiến tôi lần đầu sau khá lâu lại nghĩ về việc giả lập Game Boy. Rust và WASM đang đóng vai trò rất lớn trong việc trình diễn những ứng dụng vốn trước đây bị giới hạn trong môi trường desktop

    • Tôi cũng đã làm một trình giả lập NES theo cách tương tự bằng wasm-bindgen
    • Làm homebrew rồi chia sẻ link để nó chạy ngay trong trình duyệt là điều cực kỳ hay
  • Gần đây tôi đã mua một máy chơi game cầm tay retro trên Aliexpress với giá £50. Nó chơi được từ Gameboy đến SNES và PlayStation 1, thậm chí N64 và Dreamcast cũng chạy được phần nào

    • Có nhiều lựa chọn khác nhau, chất lượng có thể không được như mong đợi, nhưng trong lúc đi xa và không thể mua Steam Deck thì tôi vẫn thấy rất hài lòng
    • Có thể cài nhiều firmware tùy biến và ứng dụng khác nhau
    • Hãy chú ý vấn đề sạc USB C, tôi khuyên nên mua một cục sạc nhỏ, công suất thấp
  • Danh sách liên kết và tài liệu hỗ trợ dành cho những ai quan tâm đến phát triển Gameboy

  • GB/GBC/GBA giống như VT102 đối với phần mềm dạng ô lưới. Demo scene vẫn đang tiếp tục phát triển, và chiptune vẫn dành nhiều tình yêu cho phần cứng này

    • Viết phần mềm cho GBA khá giống với việc nhắm tới các vi điều khiển ARM hiện đại cỡ nhỏ
    • Có nhiều trình giả lập khác nhau, mỗi cái tập trung vào những khía cạnh riêng
    • Chúng cung cấp nhiều tính năng như giả lập hoàn hảo, tối ưu hiệu năng, kiểm tra bộ nhớ và cung cấp mã cheat
  • Là tác giả của trình giả lập này, tôi ngạc nhiên khi dự án sở thích nhỏ này lại nhận được nhiều sự chú ý đến vậy. Cảm ơn mọi người vì sự ủng hộ

  • Tôi vẫn nhớ hồi 7 tuổi đã học cách giải nén no$gbemulator để chơi Kirby và Final Fantasy Adventure trên laptop Windows 95 của bố

  • Thật tuyệt khi thấy ngày càng nhiều trình giả lập Game Boy viết bằng Rust. Những dự án có hỗ trợ trình duyệt đặc biệt ngầu

    • Tôi đang phát triển một nền tảng game retro chạy trên trình duyệt tên là afterplay.io
    • Nó hỗ trợ nhiều hệ máy, chạy hoàn toàn trong trình duyệt và cung cấp save state, đồng bộ đám mây, cùng hỗ trợ di động thông qua Capacitor
    • Còn có các tính năng thú vị như netplay, hỗ trợ link cable, thao tác RTC và điều khiển cảm ứng tùy biến
  • Đây là lần đầu tôi thấy một website có thể được thêm thành ứng dụng Android. Cái đó gọi là gì, và tôi muốn biết cách biến ứng dụng web thành app có thể cài đặt

  • Tôi cũng đã phát triển một trình giả lập GB tương tự bằng Rust

  • Nó làm tôi nhớ đến một dự án tương tự mà bạn tôi đã làm 10 năm trước: liên kết