GameRoy (Source)
A Game Boy emulator, disassembler and debugger, written in Rust
GameRoy appears to have high compatibility, I tested over a dozen random games and all played without issue.
* Support for DMG (only).
* High accuracy
* Accurate clock frequency: don't sync over frames or sound, but the clock frequency itself.
* Battery saves support.
* Save and load states.
* Time travel backwards in time (Rewind)
* Graphical interface for listing roms in a folder.
* Debugger with a graphical interface:
- Views for disassembly, registers, video RAM, etc...
- Statically trace rom for executable memory ranges (and at runtime).
- Add breakpoints at read, write, jump or execution of memory addresses.
- Watch addresses.
- Step code backwards.
Building and Running
This project depends on resvg (version 0.23, at time of writing) for rendering assets, and cargo-about (0.5.1) for generate a list of licenses (this last one is optional).
You can install them using cargo:
cargo install resvg cargo install cargo-about
Native
Compiling and running for native, i.e, Windows and Linux (other platforms are untested), only needs cargo:
cargo run --release -p gameroy_native
Android
For building to android, you need to have Anroid NDK installed.
Gameroy uses Gradle to build the android port. To build and install the .apk in a device:
cd android ./gradlew installDebug # or gradlew installDebug, on Windows