Fixed sprite OV flag behaviour in PC Engine VDC emulation [Angelo Salese, Charles MacDonald]

This commit is contained in:
Angelo Salese 2010-09-06 23:11:29 +00:00
parent 85d240c04c
commit 4139b8c690

View File

@ -876,9 +876,12 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U
sprites_drawn++;
if(sprites_drawn > 16)
{
vdc[which].status |= VDC_OR;
if(vdc[which].vdc_data[CR].w & CR_OV)
{
/* note: flag is set only if irq is taken, Mizubaku Daibouken relies on this behaviour */
vdc[which].status |= VDC_OR;
cputag_set_input_line(machine, "maincpu", 0, ASSERT_LINE);
}
continue; /* Should cause an interrupt */
}
@ -991,9 +994,12 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U
sprites_drawn++;
if( sprites_drawn > 16 )
{
vdc[which].status |= VDC_OR;
if(vdc[which].vdc_data[CR].w&CR_OV)
{
/* note: flag is set only if irq is taken, Mizubaku Daibouken relies on this behaviour */
vdc[which].status |= VDC_OR;
cputag_set_input_line(machine, "maincpu", 0, ASSERT_LINE);
}
}
else
{