summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/crystal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/crystal.c')
-rw-r--r--src/mame/drivers/crystal.c74
1 files changed, 36 insertions, 38 deletions
diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c
index 9655660cf88..e10ce926893 100644
--- a/src/mame/drivers/crystal.c
+++ b/src/mame/drivers/crystal.c
@@ -188,6 +188,8 @@ public:
DECLARE_DRIVER_INIT(officeye);
DECLARE_DRIVER_INIT(crysking);
DECLARE_DRIVER_INIT(evosocc);
+ virtual void machine_start();
+ virtual void machine_reset();
};
static void IntReq( running_machine &machine, int num )
@@ -574,66 +576,64 @@ static void crystal_banksw_postload(running_machine &machine)
state->membank("bank1")->set_base(state->memregion("user2")->base());
}
-static MACHINE_START( crystal )
+void crystal_state::machine_start()
{
- crystal_state *state = machine.driver_data<crystal_state>();
int i;
- state->m_maincpu = machine.device<cpu_device>("maincpu");
- state->m_ds1302 = machine.device<ds1302_device>("rtc");
- state->m_vr0video = machine.device("vr0");
+ m_maincpu = machine().device<cpu_device>("maincpu");
+ m_ds1302 = machine().device<ds1302_device>("rtc");
+ m_vr0video = machine().device("vr0");
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
for (i = 0; i < 4; i++)
- state->m_Timer[i] = machine.scheduler().timer_alloc(FUNC(Timercb), (void*)(FPTR)i);
+ m_Timer[i] = machine().scheduler().timer_alloc(FUNC(Timercb), (void*)(FPTR)i);
- PatchReset(machine);
+ PatchReset(machine());
#ifdef IDLE_LOOP_SPEEDUP
- state->save_item(NAME(state->m_FlipCntRead));
+ save_item(NAME(m_FlipCntRead));
#endif
- state->save_item(NAME(state->m_Bank));
- state->save_item(NAME(state->m_FlipCount));
- state->save_item(NAME(state->m_IntHigh));
- state->save_item(NAME(state->m_Timerctrl));
- state->save_item(NAME(state->m_FlashCmd));
- state->save_item(NAME(state->m_PIO));
- state->save_item(NAME(state->m_DMActrl));
- state->save_item(NAME(state->m_OldPort4));
- machine.save().register_postload(save_prepost_delegate(FUNC(crystal_banksw_postload), &machine));
+ save_item(NAME(m_Bank));
+ save_item(NAME(m_FlipCount));
+ save_item(NAME(m_IntHigh));
+ save_item(NAME(m_Timerctrl));
+ save_item(NAME(m_FlashCmd));
+ save_item(NAME(m_PIO));
+ save_item(NAME(m_DMActrl));
+ save_item(NAME(m_OldPort4));
+ machine().save().register_postload(save_prepost_delegate(FUNC(crystal_banksw_postload), &machine()));
}
-static MACHINE_RESET( crystal )
+void crystal_state::machine_reset()
{
- crystal_state *state = machine.driver_data<crystal_state>();
int i;
- memset(state->m_sysregs, 0, 0x10000);
- memset(state->m_vidregs, 0, 0x10000);
- state->m_FlipCount = 0;
- state->m_IntHigh = 0;
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
- state->m_Bank = 0;
- state->membank("bank1")->set_base(state->memregion("user1")->base() + 0);
- state->m_FlashCmd = 0xff;
- state->m_OldPort4 = 0;
+ memset(m_sysregs, 0, 0x10000);
+ memset(m_vidregs, 0, 0x10000);
+ m_FlipCount = 0;
+ m_IntHigh = 0;
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
+ m_Bank = 0;
+ membank("bank1")->set_base(memregion("user1")->base() + 0);
+ m_FlashCmd = 0xff;
+ m_OldPort4 = 0;
- state->m_DMActrl[0] = 0;
- state->m_DMActrl[1] = 0;
+ m_DMActrl[0] = 0;
+ m_DMActrl[1] = 0;
for (i = 0; i < 4; i++)
{
- state->m_Timerctrl[i] = 0;
- state->m_Timer[i]->adjust(attotime::never);
+ m_Timerctrl[i] = 0;
+ m_Timer[i]->adjust(attotime::never);
}
- vr0_snd_set_areas(machine.device("vrender"), state->m_textureram, state->m_frameram);
+ vr0_snd_set_areas(machine().device("vrender"), m_textureram, m_frameram);
#ifdef IDLE_LOOP_SPEEDUP
- state->m_FlipCntRead = 0;
+ m_FlipCntRead = 0;
#endif
- PatchReset(machine);
+ PatchReset(machine());
}
static UINT16 GetVidReg( address_space *space, UINT16 reg )
@@ -843,8 +843,6 @@ static MACHINE_CONFIG_START( crystal, crystal_state )
MCFG_CPU_PROGRAM_MAP(crystal_mem)
MCFG_CPU_VBLANK_INT("screen", crystal_interrupt)
- MCFG_MACHINE_START(crystal)
- MCFG_MACHINE_RESET(crystal)
MCFG_NVRAM_ADD_0FILL("nvram")