mirror of
https://github.com/holub/mame
synced 2025-04-28 19:14:55 +03:00
-spg2xx: Suppress video IRQ status bits when the corresponding enable bit is unset. Fixes vsmile fred and appilote. [Ryan Holtz]
This commit is contained in:
parent
9d43733aa5
commit
2ead3aa7a8
@ -965,12 +965,12 @@ WRITE_LINE_MEMBER(spg2xx_device::vblank)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const uint16_t old = VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS;
|
if (VIDEO_IRQ_ENABLE & 1)
|
||||||
VIDEO_IRQ_STATUS |= 1;
|
{
|
||||||
LOGMASKED(LOG_IRQS, "Setting video IRQ status to %04x\n", VIDEO_IRQ_STATUS);
|
VIDEO_IRQ_STATUS |= 1;
|
||||||
const uint16_t changed = old ^ (VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS);
|
LOGMASKED(LOG_IRQS, "Setting video IRQ status to %04x\n", VIDEO_IRQ_STATUS);
|
||||||
if (changed)
|
|
||||||
check_video_irq();
|
check_video_irq();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void spg2xx_device::check_video_irq()
|
void spg2xx_device::check_video_irq()
|
||||||
@ -1869,11 +1869,9 @@ void spg2xx_device::device_timer(emu_timer &timer, device_timer_id id, int param
|
|||||||
|
|
||||||
case TIMER_SCREENPOS:
|
case TIMER_SCREENPOS:
|
||||||
{
|
{
|
||||||
const uint16_t old = VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS;
|
if (VIDEO_IRQ_ENABLE & 2)
|
||||||
VIDEO_IRQ_STATUS |= 2;
|
|
||||||
const uint16_t changed = old ^ (VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS);
|
|
||||||
if (changed)
|
|
||||||
{
|
{
|
||||||
|
VIDEO_IRQ_STATUS |= 2;
|
||||||
check_video_irq();
|
check_video_irq();
|
||||||
}
|
}
|
||||||
m_screen->update_partial(m_screen->vpos());
|
m_screen->update_partial(m_screen->vpos());
|
||||||
|
Loading…
Reference in New Issue
Block a user