tms9928a.c: Fixed colission detection regression. [Wilbert Pol]

This commit is contained in:
Wilbert Pol 2011-10-07 20:09:56 +00:00
parent b5c50ff369
commit 2f23aaeae0

View File

@ -522,21 +522,24 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par
for ( int z = 0; z <= sprite_mag; colission_index++, z++ ) for ( int z = 0; z <= sprite_mag; colission_index++, z++ )
{ {
/* Check for colission */
if ( spr_drawn[ colission_index ] )
m_StatusReg |= 0x20;
spr_drawn[ colission_index ] |= 0x01;
/* Check if pixel should be drawn */ /* Check if pixel should be drawn */
if ( ( pattern & 0x80 ) && sprcol && num_sprites < 5 ) if ( pattern & 0x80 )
{ {
if ( colission_index >= 32 && colission_index < 32 + 256 ) if ( colission_index >= 32 && colission_index < 32 + 256 )
{ {
/* Has another sprite already drawn here? */ /* Check for colission */
if ( ! ( spr_drawn[ colission_index ] & 0x02 ) ) if ( spr_drawn[ colission_index ] )
m_StatusReg |= 0x20;
spr_drawn[ colission_index ] |= 0x01;
if ( sprcol )
{ {
spr_drawn[ colission_index ] |= 0x02; /* Has another sprite already drawn here? */
p[ TMS9928A_HORZ_DISPLAY_START + colission_index - 32 ] = sprcol; if ( ! ( spr_drawn[ colission_index ] & 0x02 ) )
{
spr_drawn[ colission_index ] |= 0x02;
p[ TMS9928A_HORZ_DISPLAY_START + colission_index - 32 ] = sprcol;
}
} }
} }
} }