From 2f23aaeae06ec7ab51747db37a958a5dca3a59e8 Mon Sep 17 00:00:00 2001 From: Wilbert Pol Date: Fri, 7 Oct 2011 20:09:56 +0000 Subject: [PATCH] tms9928a.c: Fixed colission detection regression. [Wilbert Pol] --- src/emu/video/tms9928a.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/emu/video/tms9928a.c b/src/emu/video/tms9928a.c index 77696556c09..d4e642621f2 100644 --- a/src/emu/video/tms9928a.c +++ b/src/emu/video/tms9928a.c @@ -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++ ) { - /* Check for colission */ - if ( spr_drawn[ colission_index ] ) - m_StatusReg |= 0x20; - spr_drawn[ colission_index ] |= 0x01; - /* Check if pixel should be drawn */ - if ( ( pattern & 0x80 ) && sprcol && num_sprites < 5 ) + if ( pattern & 0x80 ) { if ( colission_index >= 32 && colission_index < 32 + 256 ) { - /* Has another sprite already drawn here? */ - if ( ! ( spr_drawn[ colission_index ] & 0x02 ) ) + /* Check for colission */ + if ( spr_drawn[ colission_index ] ) + m_StatusReg |= 0x20; + spr_drawn[ colission_index ] |= 0x01; + + if ( sprcol ) { - spr_drawn[ colission_index ] |= 0x02; - p[ TMS9928A_HORZ_DISPLAY_START + colission_index - 32 ] = sprcol; + /* Has another sprite already drawn here? */ + if ( ! ( spr_drawn[ colission_index ] & 0x02 ) ) + { + spr_drawn[ colission_index ] |= 0x02; + p[ TMS9928A_HORZ_DISPLAY_START + colission_index - 32 ] = sprcol; + } } } }