summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/shadfrce.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/shadfrce.c')
-rw-r--r--src/mame/drivers/shadfrce.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index 8249c20ed89..72ae5d5967d 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -307,52 +307,51 @@ WRITE16_MEMBER(shadfrce_state::shadfrce_scanline_w)
m_raster_scanline = data; /* guess, 0 is always written */
}
-static TIMER_DEVICE_CALLBACK( shadfrce_scanline )
+TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline)
{
- shadfrce_state *state = timer.machine().driver_data<shadfrce_state>();
int scanline = param;
/* Vblank is lowered on scanline 0 */
if (scanline == 0)
{
- state->m_vblank = 0;
+ m_vblank = 0;
}
/* Hack */
else if (scanline == (248-1)) /* -1 is an hack needed to avoid deadlocks */
{
- state->m_vblank = 4;
+ m_vblank = 4;
}
/* Raster interrupt - Perform raster effect on given scanline */
- if (state->m_raster_irq_enable)
+ if (m_raster_irq_enable)
{
- if (scanline == state->m_raster_scanline)
+ if (scanline == m_raster_scanline)
{
- state->m_raster_scanline = (state->m_raster_scanline + 1) % 240;
- if (state->m_raster_scanline > 0)
- timer.machine().primary_screen->update_partial(state->m_raster_scanline - 1);
- timer.machine().device("maincpu")->execute().set_input_line(1, ASSERT_LINE);
+ m_raster_scanline = (m_raster_scanline + 1) % 240;
+ if (m_raster_scanline > 0)
+ machine().primary_screen->update_partial(m_raster_scanline - 1);
+ machine().device("maincpu")->execute().set_input_line(1, ASSERT_LINE);
}
}
/* An interrupt is generated every 16 scanlines */
- if (state->m_irqs_enable)
+ if (m_irqs_enable)
{
if (scanline % 16 == 0)
{
if (scanline > 0)
- timer.machine().primary_screen->update_partial(scanline - 1);
- timer.machine().device("maincpu")->execute().set_input_line(2, ASSERT_LINE);
+ machine().primary_screen->update_partial(scanline - 1);
+ machine().device("maincpu")->execute().set_input_line(2, ASSERT_LINE);
}
}
/* Vblank is raised on scanline 248 */
- if (state->m_irqs_enable)
+ if (m_irqs_enable)
{
if (scanline == 248)
{
- timer.machine().primary_screen->update_partial(scanline - 1);
- timer.machine().device("maincpu")->execute().set_input_line(3, ASSERT_LINE);
+ machine().primary_screen->update_partial(scanline - 1);
+ machine().device("maincpu")->execute().set_input_line(3, ASSERT_LINE);
}
}
}
@@ -558,7 +557,7 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(shadfrce_map)
- MCFG_TIMER_ADD_SCANLINE("scantimer", shadfrce_scanline, "screen", 0, 1)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shadfrce_state, shadfrce_scanline, "screen", 0, 1)
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(shadfrce_sound_map)