A Game Boy Color emulator written in Rust.
Backwards compatible with Game Boy cartidges.
Ensure you have Rust installed, then run:
make sdl
You can then load a ROM and play by running:
cargo run --release path/to/rom/file.gb
If the game supports save files, the emulator will read from and write save data to the same filename as the rom, but with the extension .sav
instead of .gb
.
- MBC1
- MBC3 (with Real-Time Clock)
- MBC5
- Full colour support
- H-Blank DMA Transfers
- CPU double speed mode
The emulator has been tested with and works perfectly with Pokemon Blue and Pokemon Silver.
For debugging, the emulator uses a Rust port of olcPixelGameEngine for the display. License here.
I have been using Blargg's test roms to test my emulator. The emulator passes all of the cpu_instrs
tests, and many of the other tests.
This is a curated list of useful resources, but the main ones I'm using are:
- Gameboy Pan Docs
- The Ultimate Game Boy Talk (has a great explanation of how the PPU works)
- The Cycle-Accurate Game Boy Docs
- Gameboy sound hardware