/gameboy

A Game Boy Color emulator written in Rust

Primary LanguageRust

gameboy

CircleCI

A Game Boy Color emulator written in Rust.

Backwards compatible with Game Boy cartidges.

Demo gif

Usage

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.

Feature Support

Cartridge Types

  • MBC1
  • MBC3 (with Real-Time Clock)
  • MBC5

GBC-only features

  • 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.

Dependencies

For debugging, the emulator uses a Rust port of olcPixelGameEngine for the display. License here.

Testing

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.

References

This is a curated list of useful resources, but the main ones I'm using are: