You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mooneye tests signal pass by writing the Fibonacci sequence 03 05 08 0D 15 22 to the serial port.
Tests marked GS target DMG/SGB hardware specifically.
bits
Test
Result
Notes
mem_oam
✅ PASS
reg_f
✅ PASS
unused_hwio-GS
❌ FAIL
instructions
Test
Result
Notes
daa
✅ PASS
interrupts
Test
Result
Notes
ie_push
❌ FAIL
OAM DMA
Test
Result
Notes
basic
✅ PASS
oam_dma_restart
❌ FAIL
oam_dma_start
❌ FAIL
oam_dma_timing
❌ FAIL
reg_read
❌ FAIL
sources-GS
❌ FAIL
PPU
Test
Result
Notes
stat_irq_blocking
✅ PASS
hblank_ly_scx_timing-GS
❌ FAIL
intr_1_2_timing-GS
❌ FAIL
intr_2_0_timing
❌ FAIL
intr_2_mode0_timing
❌ FAIL
intr_2_mode0_timing_sprites
❌ FAIL
intr_2_mode3_timing
❌ FAIL
intr_2_oam_ok_timing
❌ FAIL
lcdon_timing-GS
❌ FAIL
lcdon_write_timing-GS
❌ FAIL
stat_lyc_onoff
❌ FAIL
vblank_stat_intr-GS
❌ FAIL
Timer
Test
Result
Notes
div_write
✅ PASS
tim00
✅ PASS
tim00_div_trigger
✅ PASS
tim01
✅ PASS
tim01_div_trigger
✅ PASS
tim10
✅ PASS
tim10_div_trigger
✅ PASS
tim11
✅ PASS
tim11_div_trigger
✅ PASS
rapid_toggle
❌ FAIL
tima_reload
❌ FAIL
tima_write_reloading
❌ FAIL
tma_write_reloading
❌ FAIL
Misc timing
Test
Result
Notes
di_timing-GS
✅ PASS
div_timing
✅ PASS
ei_sequence
✅ PASS
ei_timing
✅ PASS
halt_ime0_ei
✅ PASS
halt_ime0_nointr_timing
✅ PASS
halt_ime1_timing
✅ PASS
halt_ime1_timing2-GS
✅ PASS
intr_timing
✅ PASS
rapid_di_ei
✅ PASS
reti_intr_timing
✅ PASS
add_sp_e_timing
❌ FAIL
call_cc_timing
❌ FAIL
call_cc_timing2
❌ FAIL
call_timing
❌ FAIL
call_timing2
❌ FAIL
if_ie_registers
❌ FAIL
jp_cc_timing
❌ FAIL
jp_timing
❌ FAIL
ld_hl_sp_e_timing
❌ FAIL
pop_timing
❌ FAIL
push_timing
❌ FAIL
ret_cc_timing
❌ FAIL
ret_timing
❌ FAIL
reti_timing
❌ FAIL
rst_timing
❌ FAIL
Known Limitations
Cycle-exact timing: The static recompiler batches instructions between sync points; cycle-exact Mooneye timing tests (call/ret/jp/push/pop timing, TIMA edge cases) may fail even when the interpreter is otherwise correct.
Boot ROM: Tests that check post-boot register state (boot_regs-*, boot_div-*, boot_hwio-*) are skipped — the recompiler does not emulate the boot ROM.
CGB-only tests: Any test suffixed -C (CGB-only mode) is expected to fail on this DMG-targeted recompiler.
mem_timing / halt_bug / oam_bug / interrupt_time: These Blargg tests exercise edge cases around memory access timing, the HALT bug, OAM corruption, and interrupt timing that the current runtime does not fully model.
PPU sub-mode timing: Most Mooneye PPU tests check interrupt timing at exact T-cycle boundaries; the PPU emulation does not currently reach that granularity.