#gameboy #emulation #rom

bin+lib gameboyr

使用 Rust 编写的 Gameboy 模拟器

13 个不稳定版本 (3 个破坏性更新)

0.4.0 2023年4月18日
0.3.1 2023年1月22日
0.3.0 2022年9月19日
0.2.7 2022年9月19日
0.1.2 2022年7月12日

模拟器 中排名 78

每月下载量 28

MIT 许可证

285KB
4.5K SLoC


Logo

GameboyR

使用 Rust 编写的 Gameboy 模拟器。
crates.io/crates/gameboyr »

这是一个使用 Rust 编写的 Gameboy 模拟器。该模拟器支持 Gameboy 和 Gameboy Color。以下是已实现功能的清单。

使用方法

您可以使用以下命令运行模拟器,并指定您的 rom 路径

$ cargo run --release -- "./path/to/rom.gb"

以下选项可以指定

-s, --save          Path to .sav file of the specified ROM (Default: location of ROM)
-x, --scale         Scale the window by a factor of 1, 2, 4 (Default: 1)
    --skip-checks   Skip header checksum and nintendo logo checks for ROM
    --no-audio      Run the emulator without using audio

通过 Crates.io

您可以使用以下命令从 Crates.io 安装模拟器

$ cargo install gameboyr

然后使用以下命令运行模拟器

$ gameboyr "./path/to/rom.gb"

上述指定的选项在这里也是可用的。

控制

                    __________________________
                  |                          |
                  | .----------------------. |
                  | |  .----------------.  | |
                  | |  |                |  | |
                  | |  |                |  | |
                  | |  |                |  | |
                  | |  |                |  | |
                  | |  |                |  | |
                  | |  |                |  | |
                  | |  |                |  | |
                  | |  '----------------'  | |
                  | |______________________/ |
                  |                          |
                  |    .    GAMEBOY R        |
     Up           |  _| |_              .-.  | ---> Z
Left + Right <--- |-[_   _]-       .-. (   ) |
    Down          |   |_|         (   ) '-'  | ---> X
                  |    '           '-'   A   |
                  |                 B        |
                  |          ___   ___       |
                  |         (___) (___)  ,., | ---> Space / Enter
                  |        select start ;:;: |
                  |                    ,;:;' /
                  |                   ,:;:'.'
                  '-----------------------`

已实现

  • CPU
    • 寄存器 & 标志
    • 指令集
    • 计时
  • MMU
    • 工作 RAM (WRAM)
    • 高 RAM (HRAM)
    • HDMA & GDMA
    • 速度开关
  • I/O
    • 视频显示 (PPU)
    • 声音控制器 (APU)
    • 手柄输入
    • 串行数据传输
    • 计时器
  • 卡带
    • 无 (仅 32K 字节 ROM)
    • MBC1 (最大 2M 字节 ROM 和/或 32K 字节 RAM)
    • MBC2 (最大 256K 字节 ROM 和 512x4 位 RAM)
    • MBC3 (最大 2M 字节 ROM 和/或 64K 字节 RAM 和计时器)
    • MBC5 (最大 8M 字节 ROM 和/或 128K 字节 RAM)

参考

依赖项

~1–34MB
~456K SLoC