Difference between revisions of "Sprite Masking and Overflow Test ROM"

From Sega Retro

(-stub)
Line 47: Line 47:
 
[http://gendev.spritesmind.net/forum/viewtopic.php?p=8364 http://gendev.spritesmind.net/forum/viewtopic.php?p=8364] Original topic discussing emulation sprite masking, along with the post of the Test ROM.
 
[http://gendev.spritesmind.net/forum/viewtopic.php?p=8364 http://gendev.spritesmind.net/forum/viewtopic.php?p=8364] Original topic discussing emulation sprite masking, along with the post of the Test ROM.
  
[[Category:Sonic Community Hacking Guide]]
+
[[Category:Sega Community Hacking Guide]]

Revision as of 15:57, 14 January 2011

Gens-gs-r7plus-vdp-to-cpp-86948622-SpriteMaskingTestRom.png

Nemesis' Sprite Masking and Overflow Test ROM is a test ROM used to verify the emulation of several Sega Mega Drive VDP quirks, including sprite limits.

Tests

The following tests are performed by the Sprite Masking and Overflow Test ROM.

Terminology:

  • H32 == 256x224 display mode
  • H40 == 320x224 display mode.
  • Sprite mask: A sprite with X=0.

Tests:

  1. Max Sprites Per Line: 16 in H32, 20 in H40.
  2. Max Sprite Dots - Basic: Up to 256 sprite dots in H32; 320 in H40.
  3. Max Sprite Dots - Complex: Same as previous, except it verifies that sprites are cut off in the middle.
  4. Sprite Mask: Verifies that lower-priority sprites are masked if a sprite mask exists and is not the first sprite on the line.
  5. Sprite Mask S1: Verifies that lower-priority sprites are *not* masked if a sprite mask exists and is the first sprite on the line.
  6. Mask S1 On Dot Overflow: Verifies that sprite masks at the beginning of the line are ineffective if sprite dot overflow occurs on the previous line.
  7. Mask S1,X=1 S2,X=0: Verifies that the non-existent sprite masking "Mode 2" is not implemented.
  8. Mask S1,X=40 S2,X=0: Same as previous.
  9. Max Sprites Per Frame: 64 in H32, 80 in H40.

For tests with two results, the left result indicates that the minimum boundary is respected, and the right result indicates that the maximum boundary is respected.

Test #6 is conditional on test #5 passing. If test #5 passes, then test #6 passing is an error (indicated by a red line underneath "PASS").

Downloads

Download.svg

Download Sprite Masking and Overflow Test ROM
Multiple downloads available

Test Results

Gens/GS r7+ (git: vdp-to-cpp/86948622) (also applies to Gens/GS II) Gens-gs-r7plus-vdp-to-cpp-86948622-SpriteMaskingTestRom.png

TODO: Add test results from other emulators.

External Links

http://gendev.spritesmind.net/forum/viewtopic.php?p=8364 Original topic discussing emulation sprite masking, along with the post of the Test ROM.