summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/deco_irq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/deco_irq.cpp')
-rw-r--r--src/mame/machine/deco_irq.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mame/machine/deco_irq.cpp b/src/mame/machine/deco_irq.cpp
index a6f8e38df47..28144df49c3 100644
--- a/src/mame/machine/deco_irq.cpp
+++ b/src/mame/machine/deco_irq.cpp
@@ -63,7 +63,7 @@ void deco_irq_device::device_start()
// allocate scanline timer and start it
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(deco_irq_device::scanline_callback), this));
- m_scanline_timer->adjust(m_screen->time_until_pos(0, m_screen->visible_area().right() + 1));
+ m_scanline_timer->adjust(m_screen->time_until_pos(0));
// register for save states
save_item(NAME(m_lightgun_irq));
@@ -93,7 +93,7 @@ TIMER_CALLBACK_MEMBER( deco_irq_device::scanline_callback )
uint16_t y = m_screen->vpos();
// raster irq?
- if (m_raster_irq_scanline >= visible.top() && m_raster_irq_scanline <= visible.bottom() && y == (m_raster_irq_scanline - 1))
+ if (m_raster_irq_scanline >= visible.top() && m_raster_irq_scanline <= visible.bottom() && y == m_raster_irq_scanline)
{
if (!m_raster_irq_masked)
{
@@ -115,14 +115,14 @@ TIMER_CALLBACK_MEMBER( deco_irq_device::scanline_callback )
}
// vblank-in?
- if (y == visible.bottom())
+ if (y == (visible.bottom() + 1))
{
m_vblank_irq = true;
m_vblank_irq_cb(ASSERT_LINE);
}
// wait for next line
- m_scanline_timer->adjust(m_screen->time_until_pos(y + 1, visible.right() + 1));
+ m_scanline_timer->adjust(m_screen->time_until_pos(y + 1));
}