diff --git a/src/emu/driver.cpp b/src/emu/driver.cpp index 04c6489aae3..b116d561bbb 100644 --- a/src/emu/driver.cpp +++ b/src/emu/driver.cpp @@ -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 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(); } diff --git a/src/emu/driver.h b/src/emu/driver.h index 0656775ab7b..46f0e609796 100644 --- a/src/emu/driver.h +++ b/src/emu/driver.h @@ -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 searchpath() const override; - virtual void driver_init(); - protected: // helpers called at startup virtual void driver_start(); diff --git a/src/mame/apple/macpdm.cpp b/src/mame/apple/macpdm.cpp index 0be4b5c39be..ee24ec0dc22 100644 --- a/src/mame/apple/macpdm.cpp +++ b/src/mame/apple/macpdm.cpp @@ -30,7 +30,7 @@ public: void macpdm(machine_config &config); - virtual void driver_init() override; + void driver_init(); virtual void driver_reset() override; private: diff --git a/src/mame/capcom/1942.h b/src/mame/capcom/1942.h index 2c2d4aab071..86f756c6db9 100644 --- a/src/mame/capcom/1942.h +++ b/src/mame/capcom/1942.h @@ -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); diff --git a/src/mame/dataeast/darkseal.cpp b/src/mame/dataeast/darkseal.cpp index 2e12c914cac..afd01ae620f 100644 --- a/src/mame/dataeast/darkseal.cpp +++ b/src/mame/dataeast/darkseal.cpp @@ -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); diff --git a/src/mame/dataeast/pktgaldx.cpp b/src/mame/dataeast/pktgaldx.cpp index 7340114c07a..1ed0fd67fb6 100644 --- a/src/mame/dataeast/pktgaldx.cpp +++ b/src/mame/dataeast/pktgaldx.cpp @@ -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); } diff --git a/src/mame/dataeast/vaportra.cpp b/src/mame/dataeast/vaportra.cpp index dc3f5c338b5..a531204898b 100644 --- a/src/mame/dataeast/vaportra.cpp +++ b/src/mame/dataeast/vaportra.cpp @@ -53,7 +53,7 @@ public: void vaportra(machine_config &config); - virtual void driver_init() override; + void driver_init(); protected: virtual void machine_start() override; diff --git a/src/mame/funworld/4roses.cpp b/src/mame/funworld/4roses.cpp index 0c946ced9c1..0bf5d11161d 100644 --- a/src/mame/funworld/4roses.cpp +++ b/src/mame/funworld/4roses.cpp @@ -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: diff --git a/src/mame/funworld/funworld.cpp b/src/mame/funworld/funworld.cpp index 30b9ea3dd1d..cccd4aa1e73 100644 --- a/src/mame/funworld/funworld.cpp +++ b/src/mame/funworld/funworld.cpp @@ -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. diff --git a/src/mame/funworld/funworld.h b/src/mame/funworld/funworld.h index 74fd3d4c4fe..e25b5c961af 100644 --- a/src/mame/funworld/funworld.h +++ b/src/mame/funworld/funworld.h @@ -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: diff --git a/src/mame/itech/itech32.cpp b/src/mame/itech/itech32.cpp index 835419ff137..d4d07039c69 100644 --- a/src/mame/itech/itech32.cpp +++ b/src/mame/itech/itech32.cpp @@ -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; diff --git a/src/mame/itech/itech32.h b/src/mame/itech/itech32.h index 8e5d81c2613..85ac4af43ba 100644 --- a/src/mame/itech/itech32.h +++ b/src/mame/itech/itech32.h @@ -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; diff --git a/src/mame/itech/itech8.cpp b/src/mame/itech/itech8.cpp index 1ca1d6d8e8d..a27d308b1d0 100644 --- a/src/mame/itech/itech8.cpp +++ b/src/mame/itech/itech8.cpp @@ -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() { diff --git a/src/mame/itech/itech8.h b/src/mame/itech/itech8.h index b9fd8e29dbb..09828140efa 100644 --- a/src/mame/itech/itech8.h +++ b/src/mame/itech/itech8.h @@ -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); diff --git a/src/mame/konami/zr107.cpp b/src/mame/konami/zr107.cpp index 32d470932a0..4349bbabc1f 100644 --- a/src/mame/konami/zr107.cpp +++ b/src/mame/konami/zr107.cpp @@ -215,7 +215,7 @@ public: void zr107(machine_config &config); - virtual void driver_init() override; + void driver_init(); protected: required_device m_maincpu; diff --git a/src/mame/misc/39in1.cpp b/src/mame/misc/39in1.cpp index 5e9ea1a5195..570428fe790 100644 --- a/src/mame/misc/39in1.cpp +++ b/src/mame/misc/39in1.cpp @@ -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) { diff --git a/src/mame/misc/4enraya.cpp b/src/mame/misc/4enraya.cpp index e76d9402158..4bfbe75e760 100644 --- a/src/mame/misc/4enraya.cpp +++ b/src/mame/misc/4enraya.cpp @@ -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(); diff --git a/src/mame/misc/policetr.cpp b/src/mame/misc/policetr.cpp index e452715b5ca..7de898f7279 100644 --- a/src/mame/misc/policetr.cpp +++ b/src/mame/misc/policetr.cpp @@ -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; diff --git a/src/mame/misc/policetr.h b/src/mame/misc/policetr.h index 836d4f9ea49..21a6cdbfdb9 100644 --- a/src/mame/misc/policetr.h +++ b/src/mame/misc/policetr.h @@ -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); diff --git a/src/mame/namco/galaga.cpp b/src/mame/namco/galaga.cpp index 6612c6a8ce5..ef7918e1faa 100644 --- a/src/mame/namco/galaga.cpp +++ b/src/mame/namco/galaga.cpp @@ -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 ) diff --git a/src/mame/namco/gaplus.h b/src/mame/namco/gaplus.h index b731d7147aa..bc4b62ec20e 100644 --- a/src/mame/namco/gaplus.h +++ b/src/mame/namco/gaplus.h @@ -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; diff --git a/src/mame/namco/namcos1.h b/src/mame/namco/namcos1.h index c11fbaff7c7..1823ee97e48 100644 --- a/src/mame/namco/namcos1.h +++ b/src/mame/namco/namcos1.h @@ -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 m_maincpu; diff --git a/src/mame/namco/xevious.h b/src/mame/namco/xevious.h index 03df5586c1b..5f3110e634b 100644 --- a/src/mame/namco/xevious.h +++ b/src/mame/namco/xevious.h @@ -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: diff --git a/src/mame/ne/z80ne.h b/src/mame/ne/z80ne.h index 307ef676741..30c6403d386 100644 --- a/src/mame/ne/z80ne.h +++ b/src/mame/ne/z80ne.h @@ -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 { diff --git a/src/mame/ne/z80ne_m.cpp b/src/mame/ne/z80ne_m.cpp index 533344ed445..bf2a96b250b 100644 --- a/src/mame/ne/z80ne_m.cpp +++ b/src/mame/ne/z80ne_m.cpp @@ -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(); diff --git a/src/mame/pc/ibmpcjr.cpp b/src/mame/pc/ibmpcjr.cpp index 89d16da2e64..6a693f1bae5 100644 --- a/src/mame/pc/ibmpcjr.cpp +++ b/src/mame/pc/ibmpcjr.cpp @@ -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); diff --git a/src/mame/sega/gpworld.cpp b/src/mame/sega/gpworld.cpp index fb120d40715..50de06cfef8 100644 --- a/src/mame/sega/gpworld.cpp +++ b/src/mame/sega/gpworld.cpp @@ -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; diff --git a/src/mame/seta/seta.cpp b/src/mame/seta/seta.cpp index 5e19703c58f..92e538cab36 100644 --- a/src/mame/seta/seta.cpp +++ b/src/mame/seta/seta.cpp @@ -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); diff --git a/src/mame/sharp/x68k.cpp b/src/mame/sharp/x68k.cpp index cb8514be833..a989005e70d 100644 --- a/src/mame/sharp/x68k.cpp +++ b/src/mame/sharp/x68k.cpp @@ -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; } diff --git a/src/mame/sharp/x68k.h b/src/mame/sharp/x68k.h index d5b35cf55f6..bf6dcab40c1 100644 --- a/src/mame/sharp/x68k.h +++ b/src/mame/sharp/x68k.h @@ -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 @@ -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); diff --git a/src/mame/skeleton/notetaker.cpp b/src/mame/skeleton/notetaker.cpp index 12d3903d3bb..8e5aa1f9585 100644 --- a/src/mame/skeleton/notetaker.cpp +++ b/src/mame/skeleton/notetaker.cpp @@ -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 diff --git a/src/mame/sony/zn.cpp b/src/mame/sony/zn.cpp index 82864629fcb..5d1b6a89088 100644 --- a/src/mame/sony/zn.cpp +++ b/src/mame/sony/zn.cpp @@ -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(0x8000); subdevice("71256")->set_base(m_sram.get(), 0x8000); diff --git a/src/mame/sony/zn.h b/src/mame/sony/zn.h index 339487f0ba6..86f388a5b07 100644 --- a/src/mame/sony/zn.h +++ b/src/mame/sony/zn.h @@ -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; diff --git a/src/mame/taito/40love.h b/src/mame/taito/40love.h index e14bee7cf98..fac702f3745 100644 --- a/src/mame/taito/40love.h +++ b/src/mame/taito/40love.h @@ -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); diff --git a/src/mame/taito/slapshot.h b/src/mame/taito/slapshot.h index bbf35e6b461..aff1c276c75 100644 --- a/src/mame/taito/slapshot.h +++ b/src/mame/taito/slapshot.h @@ -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; diff --git a/src/mame/taito/taito_o.cpp b/src/mame/taito/taito_o.cpp index 10efdcfaf17..558c69c392f 100644 --- a/src/mame/taito/taito_o.cpp +++ b/src/mame/taito/taito_o.cpp @@ -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 ) diff --git a/src/mame/xerox/alto2.cpp b/src/mame/xerox/alto2.cpp index 91b60bbdb14..8ba13e2ef74 100644 --- a/src/mame/xerox/alto2.cpp +++ b/src/mame/xerox/alto2.cpp @@ -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);