mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +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
|
||||
|
||||
const uint16_t old = VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS;
|
||||
VIDEO_IRQ_STATUS |= 1;
|
||||
LOGMASKED(LOG_IRQS, "Setting video IRQ status to %04x\n", VIDEO_IRQ_STATUS);
|
||||
const uint16_t changed = old ^ (VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS);
|
||||
if (changed)
|
||||
if (VIDEO_IRQ_ENABLE & 1)
|
||||
{
|
||||
VIDEO_IRQ_STATUS |= 1;
|
||||
LOGMASKED(LOG_IRQS, "Setting video IRQ status to %04x\n", VIDEO_IRQ_STATUS);
|
||||
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:
|
||||
{
|
||||
const uint16_t old = VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS;
|
||||
VIDEO_IRQ_STATUS |= 2;
|
||||
const uint16_t changed = old ^ (VIDEO_IRQ_ENABLE & VIDEO_IRQ_STATUS);
|
||||
if (changed)
|
||||
if (VIDEO_IRQ_ENABLE & 2)
|
||||
{
|
||||
VIDEO_IRQ_STATUS |= 2;
|
||||
check_video_irq();
|
||||
}
|
||||
m_screen->update_partial(m_screen->vpos());
|
||||
|
Loading…
Reference in New Issue
Block a user