Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🪲☕️ Game Boy emulator test ROMs

License

NotificationsYou must be signed in to change notification settings

mattcurrie/mealybug-tearoom-tests

Repository files navigation

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_togglem3_lcdc_bg_map_changem3_lcdc_tile_sel_changem3_lcdc_win_map_changem3_lcdc_win_en_change_multiplem3_lcdc_win_en_change_multiple_wxm3_window_timingm3_window_timing_wx_0m3_lcdc_tile_sel_win_changem3_lcdc_obj_en_changem3_lcdc_obj_en_change_variantm3_lcdc_bg_en_changem3_lcdc_obj_size_changem3_lcdc_obj_size_change_scxm3_bgp_changem3_bgp_change_spritesm3_obp0_changem3_scx_low_3_bitsm3_scx_high_5_bitsm3_scy_changem3_wx_4_changem3_wx_4_change_spritesm3_wx_5_changem3_wx_6_changem3_lcdc_bg_en_change2m3_lcdc_bg_map_change2m3_lcdc_tile_sel_change2m3_lcdc_tile_sel_win_change2m3_lcdc_win_map_change2m3_scx_high_5_bits_change2m3_scy_change2

Requirements

  • RGBDS is required if you want to build the test ROMs yourself
  • A Game Boy emulator and/or real Game Boy and flash cart to test on

Usage

  • Clone or download the project and runmake from the root directory. The test ROMs will be placed in thebuild directory. You can also download anarchive of the ROMs.

  • Check the results. You can check in theexpected directory for screenshots from my Game Boy emulator (which I believe to be correct), and thephotos directory contains blurry photos of the ROMs running on real devices.

  • Automated testing can be achieved using thecompare command from imagemagick to get the number of pixels that are different when comparing the expected image to a screenshot from an emulator.

  • The screenshot from the emulator should be generated when theLD B,B software breakpoint is encountered.

  • A DMG emulator should use these 8-bit values in greyscale images or in RGB components to ensure the images can be compared correctly:$00,$55,$AA,$FF

  • A CGB emulator should use this formula to convert 5-bit CGB palette components to 8-bit:(r << 3) | (r >> 2)

    An example imagemagick compare command is below.result will contain the number of pixels that differ between the two images, so0 indicates success.

    result=$(compare -metric AE emulator-screenshot.png expected-result.png NULL: 2>&1)

About

🪲☕️ Game Boy emulator test ROMs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors2

  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp