GitHub - smparsons/retroboy: 一个用 Rust 编写的 Game Boy 模拟器。

主要观点:Retro Boy 是用 Rust 编写的简单 Game Boy 模拟器,可在网页上运行,通过 wasm-pack 转为 WebAssembly 并利用 Web Audio API 和 HTML Canvas 实现音频和图形,还具备多种功能和特性。
关键信息

  • 能通过多种测试套件,如 Blargg 的测试 ROM 集合等。
  • 有丰富的测试套件,采用 TDD 方法设计逻辑,可运行cargo test运行。
  • 网页前端是用 React/TypeScript 编写的带有 Material UI 的应用,位于 frontends/web 文件夹。
    重要细节
  • 使用wasm-pack将 Rust 代码转为 WebAssembly 后可在网页播放,利用浏览器本地存储保存电池备份 MBC 卡的 cartridge RAM 数据。
  • 具备准确的 CPU、音频和图形模拟,支持多种 MBC 类型和 RTC,有全屏幕模式、暂停/恢复等功能,可自定义按键映射和管理游戏作弊码。
  • 编译为 WebAssembly 需安装 wasm-pack 并运行sh./build-wasm.sh,运行前端需先编译 Rust 代码并安装依赖后运行yarn start
  • 提供了多个游戏的截图,列举了使用的资源包括 Gameboy CPU Manual 等。
阅读 9
0 条评论