Quote:
|
Huh? The srite limit was designed to keep the 'load' on the VDP low for handling sprites. Returning the *first* 5th sprite seems more logical then, since the VDP can then stop processing sprites for that line. If it wants to return the *last* sprite on the line, it still might need to process all!
|
You misunderstand, when I say the first 5th sprite, I mean the first "5th sprite" in the screen,
i.e. belonging to the first line of sprites in overflow in the screen.
If you see that mode 1 des not avoid an error (i.e. leave some sprites hidden),
it is for sure due to the fact that you are in a case of multiple lines with sprites in overflow on
the screen.
If you look at the code, you'll see that, due to the use of S0, the sole condition handled
with 100% of prob. of success is when there is only ONE line with more than 5 sprites.
The behaviour you spotted is wanted, exactly this feature makes mode 1 the best
candidate to spot differences in the emulation of S0 of the different SW and the real HW
Place the sprites on two lines of 5 sprites, use adjacent spriteplanes,
mode 1 is supposed to handle at best ony the last line in the screen
(at best means that all the sprites in that line flicker with freqency 10Hz,
the other line is handled in non optimal way -i.e. one or more - but not all- sprites
disappear with frequency higher that 10Hz or completely)
do this both on blue end in open
you'll see that the line correctly handled DIFFER!
Open manage correctly the second line and blue the first or vice versa
The one who manages the second line probably returns the last 5th sprite in the screen
The one who manages the first line probably returns the first 5th sprite in the screen
they cannot both accurate :-)