diff options
Diffstat (limited to 'src/mame/drivers/shadfrce.c')
-rw-r--r-- | src/mame/drivers/shadfrce.c | 33 |
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) |