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

From Sega Retro

m (→‎External Links: spelling/grammar/fixes)
Line 45: Line 45:
  
 
==External Links==
 
==External Links==
[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:Emulation]]
 
[[Category:Emulation]]
 
[[Category:Sega Community Development Guide]]
 
[[Category:Sega Community Development Guide]]

Revision as of 04:30, 11 January 2012

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