a gameboy emulator for funsies
Current status: Games are playable at 60 FPS. CPU cycle accuracy, but some timings not quite right. No audio.
- Pass all of Blargg's
cpu_instrs
ROMs (verified viagameboy-doctor
) - Implement MBC1
- Implement MBC5
- Implement MBC3 (w/o RTC)
- Implement serial port (w/ option to log to console)
- Implement timer
- Pass Blargg's
instr_timing.gb
ROM (manually verified) - Implement a basic interactive debugger
- Implement LCD
- Implement PPU, VRAM, OAM, etc.
- Implement Joypad
- Implement SRAM save & restore
- Achieve ~60 FPS
- Implement RTC for MBC3
- Implement PPU registers debugging
- Implement
watch
in debugger for memory & register changes - Implement GBC
- Pass
dmg-acid2
test ROM - Implement Sound/APU
Just being realistic about my likelihood of getting to these:
- Pass Blargg's
mem_timing
ROMs (manually verified) - Pass Blargg's
mem_timing-2
ROMs (manually verified) - FIFO-based rendering PPU (currently scanline)
- Implement emulation for every known DMG bug
- Implement SGB mode
- Implement MBC2
- Implement MBC6
- Implement MBC7
- Implement MBC1M, MMM01, other multicarts, or Hudson carts
- Implement (any) accessories