small fix for MESS
This commit is contained in:
parent
1e74fafa55
commit
1e612ed0c8
@ -469,11 +469,15 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par
|
||||
UINT8 sprite_height = sprite_size * ( sprite_mag + 1 );
|
||||
UINT8 spr_drawn[32+256+32] = { 0 };
|
||||
UINT8 num_sprites = 0;
|
||||
bool fifth_encountered = false;
|
||||
|
||||
for ( UINT16 sprattr = 0; sprattr < 128; sprattr += 4 )
|
||||
{
|
||||
int spr_y = m_vMem[ m_spriteattribute + sprattr + 0 ];
|
||||
|
||||
if (!fifth_encountered)
|
||||
m_FifthSprite = sprattr / 4;
|
||||
|
||||
/* Stop processing sprites */
|
||||
if ( spr_y == 208 )
|
||||
break;
|
||||
@ -496,15 +500,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par
|
||||
|
||||
/* Fifth sprite encountered? */
|
||||
if( num_sprites == 5 )
|
||||
{
|
||||
m_FifthSprite = sprattr / 4;
|
||||
|
||||
if (~m_StatusReg & 0x40)
|
||||
{
|
||||
m_StatusReg |= m_FifthSprite;
|
||||
if (~m_StatusReg & 0x80) m_StatusReg |= 0x40;
|
||||
}
|
||||
}
|
||||
fifth_encountered = true;
|
||||
|
||||
if ( sprite_mag )
|
||||
pataddr += ( ( ( y - spr_y ) & 0x1F ) >> 1 );
|
||||
@ -552,6 +548,14 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Update sprite overflow bits */
|
||||
if (~m_StatusReg & 0x40)
|
||||
{
|
||||
m_StatusReg |= m_FifthSprite;
|
||||
if (fifth_encountered && ~m_StatusReg & 0x80)
|
||||
m_StatusReg |= 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
/* Right border */
|
||||
|
Loading…
Reference in New Issue
Block a user