MelonGB is a Gameboy (DMG) and Gameboy Color (CGB) Emulator written in Rust. Try out the demo HERE! Or jump to Installation if you're interested in running it locally.
This emulator is expected to be M-cycle accurate, apart from a few edge cases from some games that I've tested. Jump to Passings Tests for a list of passing test ROMS and future TODOs. Some notable features include:
- Support for games that use MBC 1,2,3,5
- Saving/loading data for battery-backed games
- Ability to import/export save data
- In-sync audio emulation for all 4 channels
(NOTE: Installation has only been tested on Mac) Before starting, make sure you have Rust and SDL2 installed and properly linked.
- Clone the repository
- Add your ROM files to the
/roms
folder - (Optional) Edit the constants in
src/config.rs
- You can add your Gameboy and Gameboy Color boot ROMs by specifying their ROM file path in
src/config.rs
- You can add your Gameboy and Gameboy Color boot ROMs by specifying their ROM file path in
- It
src/main.rs
, specify your ROM path and if you want run with the boot ROM, then run it. Enjoy!
- Blargg Tests
- cpu_instrs
- instr_timing
- mem_timing
- dmg_sound
- cgb_sound
- dmg-acid2
- cgb-acid2
- Mooneye Test Suite
- emulator-only
- all MBC tests
- acceptance
- oam_dma
- basic.gb
- reg_read.gb
- interrupts
- ie_push.gb
- instr
- daa.gb
- oam_dma
- manual-only
- sprite_priority.gb
- emulator-only
- Passing Mooneye Timing and PPU Tests
- Fixing edge cases in some GBC games