Skip to content

gordnzhou/melon-gb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MelonGB

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

Screenshots

pokemongold pokemonred
shantae drmario
cgb-acid2

Installation

(NOTE: Installation has only been tested on Mac) Before starting, make sure you have Rust and SDL2 installed and properly linked.

  1. Clone the repository
  2. Add your ROM files to the /roms folder
  3. (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
  4. It src/main.rs, specify your ROM path and if you want run with the boot ROM, then run it. Enjoy!

Passing Tests

  • 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
    • manual-only
      • sprite_priority.gb

Future TODOs

  • Passing Mooneye Timing and PPU Tests
  • Fixing edge cases in some GBC games