Driver device API cleanups

- Remove the confusing driver_init virtual override. The function has been de-virtualized in most drivers that were calling it explicitly, and replaced by alternate overrides in others.
- Remove MCFG_VIDEO_RESET_OVERRIDE (not used anymore).
- Provide MCFG_MACHINE_START_REMOVE and MCFG_VIDEO_START_REMOVE for consistency.
This commit is contained in:
AJR 2022-08-09 10:45:10 -04:00
parent dedfb9fcd7
commit d41ef939fd
37 changed files with 74 additions and 109 deletions

View File

@ -67,7 +67,6 @@ void driver_device::static_set_callback(device_t &device, callback_type type, dr
void driver_device::empty_init()
{
driver_init();
}
@ -81,16 +80,6 @@ std::vector<std::string> driver_device::searchpath() const
}
//-------------------------------------------------
// driver_init - default implementation which
// does nothing
//-------------------------------------------------
void driver_device::driver_init()
{
}
//-------------------------------------------------
// driver_start - default implementation which
// does nothing
@ -260,10 +249,7 @@ void driver_device::device_reset_after_children()
sound_reset();
if (!m_callbacks[CB_VIDEO_RESET].isnull())
m_callbacks[CB_VIDEO_RESET]();
else
video_reset();
video_reset();
}

View File

@ -26,6 +26,9 @@
#define MCFG_MACHINE_START_OVERRIDE(_class, _func) \
driver_device::static_set_callback(config.root_device(), driver_device::CB_MACHINE_START, driver_callback_delegate(&_class::MACHINE_START_NAME(_func), this));
#define MCFG_MACHINE_START_REMOVE() \
driver_device::static_set_callback(config.root_device(), driver_device::CB_MACHINE_START, driver_callback_delegate());
#define MCFG_MACHINE_RESET_OVERRIDE(_class, _func) \
driver_device::static_set_callback(config.root_device(), driver_device::CB_MACHINE_RESET, driver_callback_delegate(&_class::MACHINE_RESET_NAME(_func), this));
@ -37,8 +40,8 @@
#define MCFG_VIDEO_START_OVERRIDE(_class, _func) \
driver_device::static_set_callback(config.root_device(), driver_device::CB_VIDEO_START, driver_callback_delegate(&_class::VIDEO_START_NAME(_func), this));
#define MCFG_VIDEO_RESET_OVERRIDE(_class, _func) \
driver_device::static_set_callback(config.root_device(), driver_device::CB_VIDEO_RESET, driver_callback_delegate(&_class::VIDEO_RESET_NAME(_func), this));
#define MCFG_VIDEO_START_REMOVE() \
driver_device::static_set_callback(config.root_device(), driver_device::CB_VIDEO_START, driver_callback_delegate());
@ -61,11 +64,6 @@
#define DECLARE_VIDEO_START(name) void VIDEO_START_NAME(name)() ATTR_COLD
#define VIDEO_START_MEMBER(cls,name) void cls::VIDEO_START_NAME(name)()
#define VIDEO_RESET_NAME(name) video_reset_##name
#define VIDEO_RESET_CALL_MEMBER(name) VIDEO_RESET_NAME(name)()
#define DECLARE_VIDEO_RESET(name) void VIDEO_RESET_NAME(name)()
#define VIDEO_RESET_MEMBER(cls,name) void cls::VIDEO_RESET_NAME(name)()
//**************************************************************************
@ -100,7 +98,6 @@ public:
CB_MACHINE_START,
CB_MACHINE_RESET,
CB_VIDEO_START,
CB_VIDEO_RESET,
CB_COUNT
};
@ -145,8 +142,6 @@ public:
virtual std::vector<std::string> searchpath() const override;
virtual void driver_init();
protected:
// helpers called at startup
virtual void driver_start();

View File

@ -30,7 +30,7 @@ public:
void macpdm(machine_config &config);
virtual void driver_init() override;
void driver_init();
virtual void driver_reset() override;
private:

View File

@ -32,7 +32,7 @@ public:
, m_soundlatch(*this, "soundlatch")
{ }
void driver_init() override;
void driver_init();
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);

View File

@ -57,7 +57,7 @@ public:
void darkseal(machine_config &config);
virtual void driver_init() override;
void driver_init();
private:
void irq_ack_w(uint16_t data);

View File

@ -114,7 +114,7 @@ public:
void pktgaldx(machine_config &config);
virtual void driver_init() override;
void driver_init();
private:
// memory pointers
@ -674,8 +674,6 @@ ROM_END
void pktgaldx_state::driver_init()
{
base_state::driver_init();
deco56_decrypt_gfx(machine(), "tiles");
deco102_decrypt_cpu((uint16_t *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x42ba, 0x00, 0x00);
}

View File

@ -53,7 +53,7 @@ public:
void vaportra(machine_config &config);
virtual void driver_init() override;
void driver_init();
protected:
virtual void machine_start() override;

View File

@ -195,7 +195,7 @@ public:
{
}
void driver_init() override;
void driver_init();
void _4roses(machine_config &config);
protected:
@ -216,7 +216,7 @@ public:
{
}
void driver_init() override;
void driver_init();
void rugby(machine_config &config);
private:

View File

@ -8585,7 +8585,7 @@ void funworld_state::init_jolycdig()
}
void intergames_state::driver_init()
void intergames_state::driver_start()
{
// NOP'ing some values in ROM space to avoid the hardware error.

View File

@ -149,7 +149,7 @@ public:
void multiwin(machine_config& config);
void driver_init() override;
void driver_init();
protected:
virtual void video_start() override;
@ -167,7 +167,7 @@ public:
void royalcrdf(machine_config& config);
void driver_init() override;
void driver_init();
private:
uint8_t royalcrdf_opcode_r(offs_t offset);
@ -189,7 +189,7 @@ public:
void intrgmes(machine_config &config);
protected:
virtual void driver_init() override;
virtual void driver_start() override;
virtual void machine_reset() override;
private:

View File

@ -4851,7 +4851,7 @@ void itech32_state::init_bloodstm()
}
void drivedge_state::driver_init()
void drivedge_state::driver_start()
{
init_program_rom();
m_vram_height = 1024;
@ -4997,7 +4997,7 @@ void itech32_state::init_gt3d()
}
void shoottv_state::driver_init()
void shoottv_state::driver_start()
{
init_program_rom();
m_vram_height = 1024;

View File

@ -227,9 +227,8 @@ public:
void drivedge(machine_config &config);
virtual void driver_init() override;
protected:
virtual void driver_start() override;
virtual void machine_start() override;
virtual void machine_reset() override;
@ -288,8 +287,8 @@ public:
void shoottv(machine_config &config);
private:
void driver_init() override;
void video_start() override;
virtual void driver_start() override;
virtual void video_start() override;
void update_interrupts(int vint, int xint, int qint) override;

View File

@ -648,6 +648,10 @@ void grmatch_state::machine_start()
{
itech8_state::machine_start();
save_item(NAME(m_palcontrol));
save_item(NAME(m_xscroll));
save_item(NAME(m_palette));
m_palette_timer = timer_alloc(FUNC(grmatch_state::palette_update), this);
}
@ -2676,13 +2680,6 @@ void itech8_state::init_invbank()
m_bankxor = 1;
}
void grmatch_state::driver_init()
{
save_item(NAME(m_palcontrol));
save_item(NAME(m_xscroll));
save_item(NAME(m_palette));
}
void itech8_state::init_slikshot()
{

View File

@ -224,11 +224,9 @@ public:
void grmatch(machine_config &config);
void driver_init() override;
protected:
void machine_start() override;
void machine_reset() override;
virtual void machine_start() override;
virtual void machine_reset() override;
void palette_w(uint8_t data);
void xscroll_w(uint8_t data);

View File

@ -215,7 +215,7 @@ public:
void zr107(machine_config &config);
virtual void driver_init() override;
void driver_init();
protected:
required_device<ppc_device> m_maincpu;

View File

@ -349,21 +349,21 @@ void _39in1_state::further_decrypt(uint8_t xor400, uint8_t xor800, uint8_t xor10
}
}
void _39in1_state::init_39in1() { driver_init(); decrypt(0xc0, 0x00, 0x00, 0x02, 0x40, 0x04, 0x80, 0x00, 7, 2, 5, 6, 0, 3, 1, 4); m_mcu_ipt_pc = 0xe3af4; } // good
void _39in1_state::init_4in1a() { driver_init(); decrypt(0x25, 0x00, 0x00, 0x01, 0x80, 0x04, 0x40, 0x00, 6, 0, 2, 1, 7, 5, 4, 3); m_mcu_ipt_pc = 0x45814; } // good
void _39in1_state::init_4in1b() { driver_init(); decrypt(0x43, 0x00, 0x00, 0x80, 0x04, 0x40, 0x08, 0x00, 2, 4, 0, 6, 7, 3, 1, 5); m_mcu_ipt_pc = 0x57628; } // good
void _39in1_state::init_19in1() { driver_init(); decrypt(0x00, 0x00, 0x00, 0x04, 0x01, 0x80, 0x40, 0x00, 2, 1, 7, 4, 5, 0, 6, 3); further_decrypt(0x00, 0x01, 0x00, 0x10, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; } // TODO: 0x4000, 0x8000, 0x10000, 0x20000, 0x40000 conditional XORs?
void _39in1_state::init_48in1() { driver_init(); decrypt(0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x20, 0x00, 5, 3, 2, 1, 4, 6, 0, 7); further_decrypt(0x00, 0x01, 0x20, 0x10, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; } // applies to both 48in1 and 48in1b, same main CPU ROM. TODO: see above
void _39in1_state::init_39in1() { decrypt(0xc0, 0x00, 0x00, 0x02, 0x40, 0x04, 0x80, 0x00, 7, 2, 5, 6, 0, 3, 1, 4); m_mcu_ipt_pc = 0xe3af4; } // good
void _39in1_state::init_4in1a() { decrypt(0x25, 0x00, 0x00, 0x01, 0x80, 0x04, 0x40, 0x00, 6, 0, 2, 1, 7, 5, 4, 3); m_mcu_ipt_pc = 0x45814; } // good
void _39in1_state::init_4in1b() { decrypt(0x43, 0x00, 0x00, 0x80, 0x04, 0x40, 0x08, 0x00, 2, 4, 0, 6, 7, 3, 1, 5); m_mcu_ipt_pc = 0x57628; } // good
void _39in1_state::init_19in1() { decrypt(0x00, 0x00, 0x00, 0x04, 0x01, 0x80, 0x40, 0x00, 2, 1, 7, 4, 5, 0, 6, 3); further_decrypt(0x00, 0x01, 0x00, 0x10, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; } // TODO: 0x4000, 0x8000, 0x10000, 0x20000, 0x40000 conditional XORs?
void _39in1_state::init_48in1() { decrypt(0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x20, 0x00, 5, 3, 2, 1, 4, 6, 0, 7); further_decrypt(0x00, 0x01, 0x20, 0x10, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; } // applies to both 48in1 and 48in1b, same main CPU ROM. TODO: see above
void _39in1_state::init_48in1a() { init_48in1(); m_mcu_ipt_pc = 0x00000; } // same encryption as 48in1
void _39in1_state::init_48in1c() { init_48in1(); m_mcu_ipt_pc = 0x00000; } // same encryption as 48in1
void _39in1_state::init_rodent() { init_4in1b(); /*m_mcu_ipt_pc = 0x?????;*/ } // same encryption as 4in1b, thus good, but doesn't boot because of different CPLD calls
void _39in1_state::init_60in1() { driver_init(); decrypt(0x00, 0x00, 0x00, 0x40, 0x10, 0x80, 0x20, 0x00, 5, 1, 4, 2, 0, 7, 6, 3); further_decrypt(0x00, 0x01, 0x00, 0x10, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; } // TODO: see 19in1
void _39in1_state::init_60in1() { decrypt(0x00, 0x00, 0x00, 0x40, 0x10, 0x80, 0x20, 0x00, 5, 1, 4, 2, 0, 7, 6, 3); further_decrypt(0x00, 0x01, 0x00, 0x10, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; } // TODO: see 19in1
// I.A.M. slots
void _39in1_state::init_fruitwld() { driver_init(); decrypt(0x0a, 0x00, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 5, 1, 7, 4, 3, 2, 0, 6); /* further_decrypt(0x00, 0x00, 0x00, 0x00, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_jumanji() { driver_init(); decrypt(0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x08, 0x00, 1, 0, 6, 2, 5, 3, 4, 7); further_decrypt(0x00, 0x08, 0x10, 0x40, 0x00, 0x00); /* m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_plutus() { driver_init(); decrypt(0x00, 0x40, 0x08, 0x01, 0x00, 0x04, 0x80, 0x02, 6, 4, 0, 5, 7, 3, 2, 1); further_decrypt(0x00, 0x00, 0x10, 0x00, 0x00, 0x00); /* m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_pokrwild() { driver_init(); decrypt(0x20, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 6, 5, 3, 1, 0, 7, 2, 4); /* further_decrypt(0x00, 0x00, 0x00, 0x00, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_fruitwld() { decrypt(0x0a, 0x00, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 5, 1, 7, 4, 3, 2, 0, 6); /* further_decrypt(0x00, 0x00, 0x00, 0x00, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_jumanji() { decrypt(0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x08, 0x00, 1, 0, 6, 2, 5, 3, 4, 7); further_decrypt(0x00, 0x08, 0x10, 0x40, 0x00, 0x00); /* m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_plutus() { decrypt(0x00, 0x40, 0x08, 0x01, 0x00, 0x04, 0x80, 0x02, 6, 4, 0, 5, 7, 3, 2, 1); further_decrypt(0x00, 0x00, 0x10, 0x00, 0x00, 0x00); /* m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::init_pokrwild() { decrypt(0x20, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 6, 5, 3, 1, 0, 7, 2, 4); /* further_decrypt(0x00, 0x00, 0x00, 0x00, 0x00, 0x00); m_mcu_ipt_pc = 0x00000; */ } // TODO: >= 0x4000 XORs unverified
void _39in1_state::base(machine_config &config)
{

View File

@ -251,7 +251,7 @@ public:
}
private:
void driver_init() override;
virtual void driver_start() override;
};
@ -1021,7 +1021,7 @@ ROM_END
* Driver Init *
***********************************/
void unk_gambl_enc_state::driver_init()
void unk_gambl_enc_state::driver_start()
{
// descramble ROM
uint8_t *rom = memregion("maincpu")->base();

View File

@ -740,7 +740,7 @@ ROM_END
*
*************************************/
void policetr_state::driver_init()
void policetr_state::driver_start()
{
m_maincpu->space(AS_PROGRAM).install_write_handler(m_speedup_addr, m_speedup_addr+3, write32s_delegate(*this, FUNC(policetr_state::speedup_w)));
m_speedup_data = m_rambase + m_speedup_addr/4;

View File

@ -23,8 +23,6 @@ public:
void policetr(machine_config &config);
void driver_init() override;
DECLARE_READ_LINE_MEMBER(bsmt_status_r);
protected:
@ -47,8 +45,9 @@ protected:
m_speedup_pc(speedup_pc),
m_speedup_addr(speedup_addr) { }
void machine_start() override;
void video_start() override;
virtual void driver_start() override;
virtual void machine_start() override;
virtual void video_start() override;
void mem(address_map &map);

View File

@ -3464,13 +3464,11 @@ void xevious_state::init_xevios()
}
void battles_state::driver_init()
void battles_state::driver_start()
{
/* replace the Namco I/O handlers with interface to the 4th CPU */
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7000, 0x700f, read8sm_delegate(*this, FUNC(battles_state::customio_data0_r)), write8sm_delegate(*this, FUNC(battles_state::customio_data0_w)));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7100, 0x7100, read8smo_delegate(*this, FUNC(battles_state::customio0_r)), write8smo_delegate(*this, FUNC(battles_state::customio0_w)));
init_xevious();
}
@ -3509,7 +3507,7 @@ GAME( 1984, gatsbee, galaga, gatsbee, gatsbee, galaga_state, init_galaga,
GAME( 1981, nebulbee, galaga, galagab, galaga, galaga_state, init_galaga, ROT90, "bootleg", "Nebulous Bee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1982, xevios, xevious, xevious, xevious, xevious_state, init_xevios, ROT90, "bootleg", "Xevios", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, battles, xevious, battles, xevious, battles_state, driver_init, ROT90, "bootleg", "Battles (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, battles, xevious, battles, xevious, battles_state, init_xevious, ROT90, "bootleg", "Battles (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, battles2, xevious, xevious, xevious, xevious_state, init_xevios, ROT90, "bootleg", "Battles (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, dzigzag, digdug, dzigzag, digdug, digdug_state, empty_init, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", MACHINE_SUPPORTS_SAVE )

View File

@ -72,7 +72,7 @@ public:
void cpu2_map(address_map &map);
void cpu3_map(address_map &map);
virtual void driver_init() override;
void driver_init();
protected:
virtual void machine_start() override;

View File

@ -70,7 +70,7 @@ protected:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
void driver_init() override;
void driver_init();
private:
required_device<mc6809e_device> m_maincpu;

View File

@ -70,11 +70,10 @@ public:
{
}
void driver_init() override;
void battles(machine_config &config);
protected:
virtual void driver_start() override;
virtual void machine_reset() override;
private:

View File

@ -223,7 +223,7 @@ public:
private:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void driver_init() override;
virtual void driver_start() override;
struct wd17xx_state_t
{

View File

@ -78,7 +78,7 @@ void z80ne_state::init_z80ne()
save_state_vars();
}
void z80netf_state::driver_init()
void z80netf_state::driver_start()
{
save_state_vars();

View File

@ -52,7 +52,6 @@ public:
private:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void driver_init() override;
void ibmpcjr_io(address_map &map);
void ibmpcjr_map(address_map &map);
@ -122,13 +121,10 @@ static INPUT_PORTS_START( ibmpcjr )
PORT_BIT ( 0x07, 0x07, IPT_UNUSED )
INPUT_PORTS_END
void pcjr_state::driver_init()
{
m_maincpu->space(AS_PROGRAM).install_ram(0, m_ram->size() - 1, m_ram->pointer());
}
void pcjr_state::machine_start()
{
m_maincpu->space(AS_PROGRAM).install_ram(0, m_ram->size() - 1, m_ram->pointer());
m_pc_int_delay_timer = timer_alloc(FUNC(pcjr_state::delayed_irq), this);
m_pcjr_watchdog = timer_alloc(FUNC(pcjr_state::watchdog_expired), this);
m_keyb_signal_timer = timer_alloc(FUNC(pcjr_state::kb_signal), this);

View File

@ -67,7 +67,7 @@ public:
private:
virtual void machine_start() override;
virtual void driver_init() override;
virtual void driver_start() override;
void mainmem(address_map &map);
void mainport(address_map &map);
@ -544,7 +544,7 @@ ROM_START( gpworld )
ROM_END
void gpworld_state::driver_init()
void gpworld_state::driver_start()
{
m_nmi_enable = 0;
m_start_lamp = 0;

View File

@ -8769,7 +8769,7 @@ void zombraid_state::machine_start()
void zombraid_state::zombraid(machine_config &config)
{
gundhara(config);
driver_device::static_set_callback(config.root_device(), driver_device::CB_MACHINE_START, driver_callback_delegate());
MCFG_MACHINE_START_REMOVE()
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &zombraid_state::zombraid_map);

View File

@ -1543,7 +1543,7 @@ void x68k_state::machine_start()
m_led_state = 0;
}
void x68k_state::driver_init()
void x68k_state::driver_start()
{
unsigned char* rom = memregion("maincpu")->base();
unsigned char* user2 = memregion("user2")->base();
@ -1577,16 +1577,16 @@ void x68k_state::driver_init()
save_item(NAME(m_spritereg));
}
void x68ksupr_state::driver_init()
void x68ksupr_state::driver_start()
{
x68k_state::driver_init();
x68k_state::driver_start();
m_sysport.cputype = 0xfe; // 68000, 16MHz
m_is_32bit = false;
}
void x68030_state::driver_init()
void x68030_state::driver_start()
{
x68k_state::driver_init();
x68k_state::driver_start();
m_sysport.cputype = 0xdc; // 68030, 25MHz
m_is_32bit = true;
}

View File

@ -82,7 +82,7 @@ public:
void x68000_base(machine_config &config);
void x68000(machine_config &config);
virtual void driver_init() override;
virtual void driver_start() override;
protected:
template <typename CpuType, typename AddrMap, typename Clock>
@ -351,7 +351,7 @@ public:
void x68kxvi(machine_config &config);
void x68ksupr(machine_config &config);
virtual void driver_init() override;
virtual void driver_start() override;
protected:
DECLARE_WRITE_LINE_MEMBER(scsi_irq);
@ -372,7 +372,7 @@ public:
void x68030(machine_config &config);
virtual void driver_init() override;
virtual void driver_start() override;
protected:
void x68030_map(address_map &map);

View File

@ -146,7 +146,7 @@ public:
private:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void driver_init() override;
virtual void driver_start() override;
void iop_io(address_map &map);
void iop_mem(address_map &map);
@ -897,7 +897,7 @@ void notetaker_state::notetakr(machine_config &config)
DAC1200(config, m_dac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // unknown DAC
}
void notetaker_state::driver_init()
void notetaker_state::driver_start()
{
// descramble the rom; the whole thing is a gigantic scrambled mess either to ease
// interfacing with older xerox technologies which used A0 and D0 as the MSB bits

View File

@ -1904,7 +1904,7 @@ void nbajamex_state::bank_map(address_map &map)
map(0xa00000, 0xffffff).bankr("rombank2");
}
void nbajamex_state::driver_init()
void nbajamex_state::driver_start()
{
m_sram = std::make_unique<uint8_t[]>(0x8000);
subdevice<nvram_device>("71256")->set_base(m_sram.get(), 0x8000);

View File

@ -210,7 +210,7 @@ public:
void nbajamex(machine_config &config);
private:
virtual void driver_init() override;
virtual void driver_start() override;
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -37,7 +37,7 @@ public:
, m_mcu_ram(*this, "mcu_ram")
{ }
virtual void driver_init() override;
void driver_init();
void common(machine_config &config);
void _40love(machine_config &config);
void undoukai(machine_config &config);

View File

@ -38,7 +38,7 @@ public:
void opwolf3(machine_config &config);
void slapshot(machine_config &config);
void driver_init() override;
void driver_init();
protected:
virtual void machine_start() override;

View File

@ -339,4 +339,4 @@ ROM_END
} // Anonymous namespace
GAME( 1989, parentj, 0, parentj, parentj, taitoo_state, driver_init, ROT0, "Taito", "Parent Jack (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
GAME( 1989, parentj, 0, parentj, parentj, taitoo_state, empty_init, ROT0, "Taito", "Parent Jack (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )

View File

@ -29,7 +29,7 @@ public:
void alto2(machine_config &config);
protected:
virtual void driver_init() override;
virtual void driver_start() override;
TIMER_CALLBACK_MEMBER(handle_vblank);
@ -296,7 +296,7 @@ void alto2_state::alto2(machine_config &config)
DIABLO_HD(config, DIABLO_HD_1, 3333333);
}
void alto2_state::driver_init()
void alto2_state::driver_start()
{
// Create a timer which fires twice per frame, once for each field
m_vblank_timer = timer_alloc(FUNC(alto2_state::handle_vblank), this);