A documentation of all hardware tests tested on mizu
.
Test
State
cpu_instrs
π
instr_timing
π
halt_bug
π
mem_timing
π
mem_timing-2
π
dmg_sound
π
cgb_sound
π
oam_bug
π
interrupt_time
π
Test
State
lycscx
π
lycscy
π
palettely
π
scxly
π
statcount
π
Test
State
add_sp_e_timing
π
boot_div-dmgABCmgb
π
boot_hwio-dmgABCmgb
π
boot_regs-dmgABC
π
call_timing
π
call_timing2
π
call_cc_timing
π
call_cc_timing2
π
di_timing GS
π
div_timing
π
ei_sequence
π
ei_timing
π
halt_ime0_ei
π
halt_ime0_nointr_timing
π
halt_ime1_timing
π
halt_ime1_timing2-GS
π
if_ie_registers
π
intr_timing
π
jp_timing
π
jp_cc_timing
π
ld_hl_sp_e_timing
π
oam_dma_restart
π
oam_dma_start
π
oam_dma_timing
π
pop_timing
π
push_timing
π
rapid_di_ei
π
ret_timing
π
ret_cc_timing
π
reti_timing
π
reti_intr_timing
π
rst_timing
π
Bits (unusable bits in memory and registers)
Test
State
mem_oam
π
reg_f
π
unused_hwio-GS
π
Test
State
basic
π
reg_read
π
sources-GS
π/β*
* sources-GS
passes on both CGB and DMG in mizu
but it should
pass on DMG and fail on CGB.
Test
State
hblank_ly_scx_timing-GS
β
intr_1_2_timing-GS
π
intr_2_0_timing
π
intr_2_mode0_timing
β
intr_2_mode3_timing
β
intr_2_oam_ok_timing
π
intr_2_mode0_timing_sprites
β
lcdon_timing-GS
β
lcdon_write_timing-GS
β
stat_irq_blocking
π
stat_lyc_onoff
π
vblank_stat_intr-GS
π
Test
State
boot_sclk_align-dmgABCmgb
π
Test
State
div_write
π
rapid_toggle
π
tim00_div_trigger
π
tim00
π
tim01_div_trigger
π
tim01
π
tim10_div_trigger
π
tim10
π
tim11_div_trigger
π
tim11
π
tima_reload
π
tima_write_reloading
π
tma_write_reloading
π
Test
State
bits_bank1
π
bits_bank2
π
bits_mode
π
bits_ramg
π
rom_512kb
π
rom_1Mb
π
rom_2Mb
π
rom_4Mb
π
rom_8Mb
π
rom_16Mb
π
ram_64kb
π
ram_256kb
π
multicart_rom_8Mb
π
Test
State
bits_ramg
π
bits_romb
π
bits_unused
π
rom_512kb
π
rom_1Mb
π
rom_2Mb
π
ram
π
Test
State
rom_512kb
π
rom_1Mb
π
rom_2Mb
π
rom_4Mb
π
rom_8Mb
π
rom_16Mb
π
rom_32Mb
π
rom_64Mb
π
Test
State
sprite_priority
π
Test
State
boot_div-cgbABCDE
π
boot_hwio-C
π
boot_regs-cgb
π
Test
State
unused_hwio-C
π
Test
State
vblank_stat_intr-C
π
Test
State
gbc_dma_cont
π
gdma_addr_mask
π
hdma_lcd_off
π
hdma_mode0
π
Test
State
blocking_bgpi_increase
π
Test
State
div_write_trigger_10
π
div_write_trigger
π
div_write_trigger_volume
π
div_write_trigger_volume_10
π
div_trigger_volume_10
π
Test
State
channel_1_align
β
channel_1_align_cpu
β
channel_1_delay
β
channel_1_duty
β
channel_1_duty_delay
β
channel_1_extra_length_clocking-cgb0B
β
channel_1_freq_change
β
channel_1_freq_change_timing-A
β
channel_1_freq_change_timing-cgb0BC
β
channel_1_freq_change_timing-cgbDE
β
channel_1_nrx2_glitch
β
channel_1_nrx2_speed_change
β
channel_1_restart
β
channel_1_restart_nrx2_glitch
β
channel_1_stop_div
β
channel_1_stop_restart
β
channel_1_sweep
β
channel_1_sweep_restart
β
channel_1_sweep_restart_2
β
channel_1_volume
β
channel_1_volume_div
β
Test
State
channel_2_align
β
channel_2_align_cpu
β
channel_2_delay
β
channel_2_duty
β
channel_2_duty_delay
β
channel_2_extra_length_clocking-cgb0B
β
channel_2_freq_change
β
channel_2_nrx2_glitch
β
channel_2_nrx2_speed_change
β
channel_2_restart
β
channel_2_restart_nrx2_glitch
β
channel_2_stop_div
β
channel_2_stop_restart
β
channel_2_volume
β
channel_2_volume_div
β
Test
State
channel_3_and_glitch
β
channel_3_delay
β
channel_3_extra_length_clocking-cgb0
β
channel_3_extra_length_clocking-cgbB
β
channel_3_first_sample
β
channel_3_freq_change_delay
β
channel_3_restart_delay
β
channel_3_restart_during_delay
β
channel_3_restart_stop_delay
β
channel_3_shift_delay
β
channel_3_shift_skip_delay
β
channel_3_stop_delay
π
channel_3_stop_div
β
channel_3_wave_ram_locked_write
π
channel_3_wave_ram_sync
β
Test
State
channel_4_align
β
channel_4_delay
β
channel_4_equivalent_frequencies
β
channel_4_extra_length_clocking-cgb0B
β
channel_4_freq_change
β
channel_4_frequency_alignment
β
channel_4_lfsr
β
channel_4_lfsr15
β
channel_4_lfsr_15_7
β
channel_4_lfsr_7_15
β
channel_4_lfsr_restart
β
channel_4_lfsr_restart_fast
β
channel_4_volume_div
β
Test
State
audio_testbench
β
803-ppu-latch-bgdisplay
β
cpu_bus_1
β
div_inc_timing_a
π
div_inc_timing_b
π
dma_0x1000
π
dma_0x9000
π
dma_0xA000
π
dma_0xC000
π
dma_0xE000
π
dma_basic
β
dma_timing_a
π
400-dma
β
flood_vram
β
halt_bug
β
halt_op_dupe_delay
β
halt_op_dupe
π
hblank_int_di_timing_a
β
hblank_int_di_timing_b
π
hblank_int_if_a
β
hblank_int_if_b
π
hblank_int_l0
β
hblank_int_l1
β
hblank_int_l2
β
hblank_int_scx0_if_a
π
hblank_int_scx0_if_b
π
hblank_int_scx0_if_c
π
hblank_int_scx0_if_d
π
hblank_int_scx0
β
hblank_int_scx1_if_a
π
hblank_int_scx1_if_b
π
hblank_int_scx1_if_c
π
hblank_int_scx1_if_d
π
hblank_int_scx1_nops_a
π
hblank_int_scx1_nops_b
π
hblank_int_scx1
β
hblank_int_scx2_if_a
π
hblank_int_scx2_if_b
β
hblank_int_scx2_if_c
β
hblank_int_scx2_if_d
β
hblank_int_scx2_nops_a
β
hblank_int_scx2_nops_b
β
hblank_int_scx2
β
hblank_int_scx3_if_a
π
hblank_int_scx3_if_b
π
hblank_int_scx3_if_c
π
hblank_int_scx3_if_d
π
hblank_int_scx3_nops_a
π
hblank_int_scx3_nops_b
π
hblank_int_scx3
π
hblank_int_scx4_if_a
π
hblank_int_scx4_if_b
π
hblank_int_scx4_if_c
π
hblank_int_scx4_if_d
π
hblank_int_scx4_nops_a
π
hblank_int_scx4_nops_b
π
hblank_int_scx4
β
hblank_int_scx5_if_a
π
hblank_int_scx5_if_b
π
hblank_int_scx5_if_c
π
hblank_int_scx5_if_d
π
hblank_int_scx5_nops_a
π
hblank_int_scx5_nops_b
π
hblank_int_scx5
β
hblank_int_scx6_if_a
π
hblank_int_scx6_if_b
β
hblank_int_scx6_if_c
β
hblank_int_scx6_if_d
β
hblank_int_scx6_nops_a
β
hblank_int_scx6_nops_b
β
hblank_int_scx6
β
hblank_int_scx7_if_a
π
hblank_int_scx7_if_b
π
hblank_int_scx7_if_c
π
hblank_int_scx7_if_d
π
hblank_int_scx7_nops_a
π
hblank_int_scx7_nops_b
π
hblank_int_scx7
β
hblank_scx2_if_a
β
hblank_scx3_if_a
π
hblank_scx3_if_b
β
hblank_scx3_if_c
β
hblank_scx3_if_d
β
hblank_scx3_int_a
π
hblank_scx3_int_b
β
int_hblank_halt_bug_a
π
int_hblank_halt_bug_b
π
int_hblank_halt_scx0
β
int_hblank_halt_scx1
β
int_hblank_halt_scx2
β
int_hblank_halt_scx3
β
int_hblank_halt_scx4
β
int_hblank_halt_scx5
β
int_hblank_halt_scx6
β
int_hblank_halt_scx7
β
int_hblank_incs_scx0
β
int_hblank_incs_scx1
β
int_hblank_incs_scx2
β
int_hblank_incs_scx3
β
int_hblank_incs_scx4
β
int_hblank_incs_scx5
β
int_hblank_incs_scx6
β
int_hblank_incs_scx7
β
int_hblank_nops_scx0
β
int_hblank_nops_scx1
β
int_hblank_nops_scx2
β
int_hblank_nops_scx3
β
int_hblank_nops_scx4
β
int_hblank_nops_scx5
β
int_hblank_nops_scx6
β
int_hblank_nops_scx7
β
int_lyc_halt
β
int_lyc_incs
π
int_lyc_nops
β
int_oam_halt
β
int_oam_incs
β
int_oam_nops
β
int_timer_halt_div_a
π
int_timer_halt_div_b
β
int_timer_halt
β
int_timer_incs
π
int_timer_nops_div_a
π
int_timer_nops_div_b
π
int_timer_nops
π
int_vblank1_halt
β
int_vblank1_incs
β
int_vblank1_nops
β
int_vblank2_halt
β
int_vblank2_incs
β
int_vblank2_nops
β
is_if_set_during_ime0
π
007-lcd_on_stat
β
lcdon_halt_to_vblank_int_a
β
lcdon_halt_to_vblank_int_b
π
lcdon_nops_to_vblank_int_a
β
lcdon_nops_to_vblank_int_b
π
lcdon_to_if_oam_a
π
lcdon_to_if_oam_b
β
lcdon_to_ly1_a
π
lcdon_to_ly1_b
π
lcdon_to_ly2_a
π
lcdon_to_ly2_b
π
lcdon_to_ly3_a
π
lcdon_to_ly3_b
π
lcdon_to_lyc1_int
π
lcdon_to_lyc2_int
π
lcdon_to_lyc3_int
π
lcdon_to_oam_int_l0
β
lcdon_to_oam_int_l1
β
lcdon_to_oam_int_l2
β
lcdon_to_oam_unlock_a
π
lcdon_to_oam_unlock_b
π
lcdon_to_oam_unlock_c
π
lcdon_to_oam_unlock_d
β
lcdon_to_stat0_a
π
lcdon_to_stat0_b
π
lcdon_to_stat0_c
π
lcdon_to_stat0_d
π
lcdon_to_stat1_a
π
lcdon_to_stat1_b
β
lcdon_to_stat1_c
π
lcdon_to_stat1_d
β
lcdon_to_stat1_e
π
lcdon_to_stat2_a
β
lcdon_to_stat2_b
π
lcdon_to_stat2_c
π
lcdon_to_stat2_d
π
lcdon_to_stat3_a
π
lcdon_to_stat3_b
π
lcdon_to_stat3_c
π
lcdon_to_stat3_d
π
lcdon_write_timing
β
line_144_oam_int_a
π
line_144_oam_int_b
β
line_144_oam_int_c
β
line_144_oam_int_d
β
line_153_ly_a
π
line_153_ly_b
π
line_153_ly_c
β
line_153_ly_d
π
line_153_ly_e
β
line_153_ly_f
π
line_153_lyc_a
π
line_153_lyc_b
π
line_153_lyc_c
β
line_153_lyc_int_a
π
line_153_lyc_int_b
π
line_153_lyc0_int_inc_sled
π
line_153_lyc0_stat_timing_a
π
line_153_lyc0_stat_timing_b
π
line_153_lyc0_stat_timing_c
π
line_153_lyc0_stat_timing_d
π
line_153_lyc0_stat_timing_e
π
line_153_lyc0_stat_timing_f
β
line_153_lyc0_stat_timing_g
π
line_153_lyc0_stat_timing_h
β
line_153_lyc0_stat_timing_i
π
line_153_lyc0_stat_timing_j
β
line_153_lyc0_stat_timing_k
π
line_153_lyc0_stat_timing_l
π
line_153_lyc0_stat_timing_m
β
line_153_lyc0_stat_timing_n
π
line_153_lyc153_stat_timing_a
π
line_153_lyc153_stat_timing_b
π
line_153_lyc153_stat_timing_c
β
line_153_lyc153_stat_timing_d
π
line_153_lyc153_stat_timing_e
β
line_153_lyc153_stat_timing_f
π
line_65_ly
β
ly_while_lcd_off
β
lyc_int_halt_a
β
lyc_int_halt_b
π
lyc1_int_halt_a
β
lyc1_int_halt_b
π
lyc1_int_if_edge_a
π
lyc1_int_if_edge_b
π
lyc1_int_if_edge_c
π
lyc1_int_if_edge_d
π
lyc1_int_nops_a
π
lyc1_int_nops_b
π
lyc1_write_timing_a
π
lyc1_write_timing_b
π
lyc1_write_timing_c
π
lyc1_write_timing_d
π
lyc2_int_halt_a
β
lyc2_int_halt_b
π
mbc1_ram_banks
π
mbc1_rom_banks
β
minimal
β
mode2_stat_int_to_oam_unlock
β
oam_int_halt_a
β
oam_int_halt_b
π
oam_int_if_edge_a
π
oam_int_if_edge_b
β
oam_int_if_edge_c
π
oam_int_if_edge_d
β
oam_int_if_level_c
π
oam_int_if_level_d
β
oam_int_inc_sled
β
oam_int_nops_a
β
oam_int_nops_b
π
000-oam_lock
β
oam_read_l0_a
π
oam_read_l0_b
π
oam_read_l0_c
π
oam_read_l0_d
β
oam_read_l1_a
π
oam_read_l1_b
π
oam_read_l1_c
π
oam_read_l1_d
β
oam_read_l1_e
π
oam_read_l1_f
π
oam_sprite_trashing
β
oam_write_l0_a
π
oam_write_l0_b
π
oam_write_l0_c
π
oam_write_l0_d
β
oam_write_l0_e
β
oam_write_l1_a
π
oam_write_l1_b
π
oam_write_l1_c
β
oam_write_l1_d
π
oam_write_l1_e
π
oam_write_l1_f
β
poweron_bgp_000
π
poweron_div_000
β
poweron_div_004
β
poweron_div_005
β
poweron_dma_000
β
poweron_if_000
π
poweron_joy_000
π
poweron_lcdc_000
π
poweron_ly_000
π
poweron_ly_119
β
poweron_ly_120
π
poweron_ly_233
β
poweron_ly_234
π
poweron_lyc_000
π
poweron_oam_000
π
poweron_oam_005
π
poweron_oam_006
π
poweron_oam_069
π
poweron_oam_070
π
poweron_oam_119
β
poweron_oam_120
π
poweron_oam_121
π
poweron_oam_183
π
poweron_oam_184
π
poweron_oam_233
β
poweron_oam_234
π
poweron_oam_235
π
poweron_obp0_000
π
poweron_obp1_000
π
poweron_sb_000
π
poweron_sc_000
π
poweron_scx_000
π
poweron_scy_000
π
poweron_stat_000
π
poweron_stat_005
π
poweron_stat_006
β
poweron_stat_007
π
poweron_stat_026
β
poweron_stat_027
π
poweron_stat_069
β
poweron_stat_070
π
poweron_stat_119
π
poweron_stat_120
β
poweron_stat_121
π
poweron_stat_140
β
poweron_stat_141
π
poweron_stat_183
β
poweron_stat_184
π
poweron_stat_234
β
poweron_stat_235
π
poweron_tac_000
π
poweron_tima_000
π
poweron_tma_000
π
poweron_vram_000
π
poweron_vram_025
π
poweron_vram_026
β
poweron_vram_069
β
poweron_vram_070
π
poweron_vram_139
π
poweron_vram_140
β
poweron_vram_183
β
poweron_vram_184
π
poweron_wx_000
π
poweron_wy_000
π
poweron
β
ppu_scx_vs_bgp
β
ppu_sprite_testbench
β
ppu_sprite0_scx0_a
π
ppu_sprite0_scx0_b
π
ppu_sprite0_scx1_a
π
ppu_sprite0_scx1_b
π
ppu_sprite0_scx2_a
π
ppu_sprite0_scx2_b
β
ppu_sprite0_scx3_a
π
ppu_sprite0_scx3_b
β
ppu_sprite0_scx4_a
π
ppu_sprite0_scx4_b
π
ppu_sprite0_scx5_a
π
ppu_sprite0_scx5_b
π
ppu_sprite0_scx6_a
π
ppu_sprite0_scx6_b
β
ppu_sprite0_scx7_a
π
ppu_sprite0_scx7_b
β
ppu_spritex_vs_scx
β
ppu_win_vs_wx
β
ppu_wx_early
β
800-ppu-latch-scx
β
801-ppu-latch-scy
β
sprite_0_a
β
sprite_0_b
π
sprite_1_a
β
sprite_1_b
π
sprite4_0_a
β
sprite4_0_b
π
sprite4_1_a
β
sprite4_1_b
π
sprite4_2_a
β
sprite4_2_b
π
sprite4_3_a
β
sprite4_3_b
π
sprite4_4_a
β
sprite4_4_b
π
sprite4_5_a
β
sprite4_5_b
π
sprite4_6_a
β
sprite4_6_b
π
sprite4_7_a
β
sprite4_7_b
π
stat_write_glitch_l0_a
β
stat_write_glitch_l0_b
β
stat_write_glitch_l0_c
π
stat_write_glitch_l1_a
π
stat_write_glitch_l1_b
β
stat_write_glitch_l1_c
β
stat_write_glitch_l1_d
π
stat_write_glitch_l143_a
π
stat_write_glitch_l143_b
β
stat_write_glitch_l143_c
β
stat_write_glitch_l143_d
β
stat_write_glitch_l154_a
β
stat_write_glitch_l154_b
β
stat_write_glitch_l154_c
π
stat_write_glitch_l154_d
β
temp
π
802-ppu-latch-tileselect
β
004-tima_boot_phase
β
004-tima_cycle_timer
β
timer_div_phase_c
π
timer_div_phase_d
π
timer_tima_inc_256k_a
π
timer_tima_inc_256k_b
π
timer_tima_inc_256k_c
π
timer_tima_inc_256k_d
π
timer_tima_inc_256k_e
π
timer_tima_inc_256k_f
π
timer_tima_inc_256k_g
π
timer_tima_inc_256k_h
π
timer_tima_inc_256k_i
π
timer_tima_inc_256k_j
π
timer_tima_inc_256k_k
π
timer_tima_inc_64k_a
π
timer_tima_inc_64k_b
π
timer_tima_inc_64k_c
π
timer_tima_inc_64k_d
π
timer_tima_phase_a
β
timer_tima_phase_b
β
timer_tima_phase_c
β
timer_tima_phase_d
β
timer_tima_phase_e
β
timer_tima_phase_f
β
timer_tima_phase_g
β
timer_tima_phase_h
β
timer_tima_phase_i
β
timer_tima_phase_j
β
timer_tima_reload_256k_a
π
timer_tima_reload_256k_b
π
timer_tima_reload_256k_c
π
timer_tima_reload_256k_d
π
timer_tima_reload_256k_e
π
timer_tima_reload_256k_f
π
timer_tima_reload_256k_g
π
timer_tima_reload_256k_h
π
timer_tima_reload_256k_i
π
timer_tima_reload_256k_j
π
timer_tima_reload_256k_k
π
timer_tima_write_a
π
timer_tima_write_b
π
timer_tima_write_c
π
timer_tima_write_d
π
timer_tima_write_e
π
timer_tima_write_f
π
timer_tma_write_a
π
timer_tma_write_b
π
500-scx-timing
β
toggle_lcdc
β
vblank_int_halt_a
β
vblank_int_halt_b
π
vblank_int_if_a
π
vblank_int_if_b
β
vblank_int_if_c
π
vblank_int_if_d
β
vblank_int_inc_sled
β
vblank_int_nops_a
β
vblank_int_nops_b
π
vblank2_int_halt_a
β
vblank2_int_halt_b
π
vblank2_int_if_a
π
vblank2_int_if_b
β
vblank2_int_if_c
π
vblank2_int_if_d
β
vblank2_int_inc_sled
β
vblank2_int_nops_a
β
vblank2_int_nops_b
π
002-vram_locked
β
vram_read_l0_a
π
vram_read_l0_b
β
vram_read_l0_c
β
vram_read_l0_d
π
vram_read_l1_a
π
vram_read_l1_b
β
vram_read_l1_c
β
vram_read_l1_d
π
001-vram_unlocked
β
vram_write_l0_a
π
vram_write_l0_b
β
vram_write_l0_c
β
vram_write_l0_d
π
vram_write_l1_a
π
vram_write_l1_b
β
vram_write_l1_c
β
vram_write_l1_d
π
wave_write_to_0xC003
β
win0_a
π
win0_b
β
win0_scx3_a
π
win0_scx3_b
π
win1_a
π
win1_b
β
win10_a
π
win10_b
β
win10_scx3_a
π
win10_scx3_b
β
win11_a
π
win11_b
β
win12_a
π
win12_b
β
win13_a
π
win13_b
β
win14_a
π
win14_b
β
win15_a
π
win15_b
β
win2_a
π
win2_b
π
win3_a
π
win3_b
π
win4_a
π
win4_b
π
win5_a
π
win5_b
π
win6_a
β
win6_b
π
win7_a
β
win7_b
π
win8_a
π
win8_b
β
win9_a
π
win9_b
β
000-write_to_x8000
β
Test
State
window_y_trigger
β
window_y_trigger_wx_offscreen
π
Extra
These are valuable tests, they come in a single rom, so they were grouped into
a single table
* previusly passed, but now it fails, it needs to be retested and fix the issues