Home

Awesome

Mealybug Tearoom Tests

Game Boy emulator test ROMs.

About

This project contains some test ROMs I wrote to verify the correctness of my Game Boy emulator - Beaten Dying Moon.

Currently the tests focus on changes made to the PPU registers during STAT mode 3. This allows you to verify correct timing of the background tile and sprite data fetches as each scanline is rendered.

These tests examine very specific PPU behaviour/timings, so produce different results on a DMG compared to a CGB. There are expected result screenshots for when running on a DMG, and CPU CGB C and CPU CGB D (for most tests).

These tests are written to be easily automated. See the usage section below for details.

Screenshots

Pictures are always interesting so here are some screenshots showing the expected results on DMG:

m2_win_en_toggle m3_lcdc_bg_map_change m3_lcdc_tile_sel_change m3_lcdc_win_map_change m3_lcdc_win_en_change_multiple m3_lcdc_win_en_change_multiple_wx m3_window_timing m3_window_timing_wx_0 m3_lcdc_tile_sel_win_change m3_lcdc_obj_en_change m3_lcdc_obj_en_change_variant m3_lcdc_bg_en_change m3_lcdc_obj_size_change m3_lcdc_obj_size_change_scx m3_bgp_change m3_bgp_change_sprites m3_obp0_change m3_scx_low_3_bits m3_scx_high_5_bits m3_scy_change m3_wx_4_change m3_wx_4_change_sprites m3_wx_5_change m3_wx_6_change m3_lcdc_bg_en_change2 m3_lcdc_bg_map_change2 m3_lcdc_tile_sel_change2 m3_lcdc_tile_sel_win_change2 m3_lcdc_win_map_change2 m3_scx_high_5_bits_change2 m3_scy_change2

Requirements

Usage