From 27fb4e3b68d351fc9a7b07cdcb73ee0581a14a20 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 29 Nov 2024 17:55:22 -0500 Subject: Clean up sound reset handling in various Toaplan drivers --- src/mame/toaplan/batsugun.cpp | 14 ++++++++------ src/mame/toaplan/dogyuun.cpp | 12 ++++++------ src/mame/toaplan/fixeight.cpp | 10 +++++++++- src/mame/toaplan/ghox.cpp | 10 +--------- src/mame/toaplan/kbash.cpp | 8 +------- src/mame/toaplan/pipibibi.cpp | 10 ++-------- src/mame/toaplan/raizing.cpp | 2 +- src/mame/toaplan/tekipaki.cpp | 8 +------- src/mame/toaplan/vfive.cpp | 9 ++++++++- 9 files changed, 37 insertions(+), 46 deletions(-) diff --git a/src/mame/toaplan/batsugun.cpp b/src/mame/toaplan/batsugun.cpp index 9ed4b8ddace..b2c7a20299d 100644 --- a/src/mame/toaplan/batsugun.cpp +++ b/src/mame/toaplan/batsugun.cpp @@ -54,6 +54,7 @@ public: void batsugun(machine_config &config); protected: + virtual void machine_reset() override ATTR_COLD; virtual void video_start() override ATTR_COLD; required_device m_maincpu; @@ -73,7 +74,6 @@ private: void screen_vblank(int state); - void sound_reset_w(u8 data); void reset(int state); optional_shared_ptr m_shared_ram; // 8 bit RAM shared between 68K and sound CPU @@ -192,13 +192,14 @@ void batsugun_state::screen_vblank(int state) void batsugun_state::reset(int state) { - if (m_audiocpu) - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + if (state) + coin_sound_reset_w(0); } -void batsugun_state::sound_reset_w(u8 data) +void batsugun_state::machine_reset() { - m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + if (m_audiocpu.found()) + coin_sound_reset_w(0); } void batsugun_state::video_start() @@ -220,7 +221,7 @@ void batsugun_bootleg_state::fixeightbl_oki(address_map &map) void batsugun_state::coin_sound_reset_w(u8 data) { m_coincounter->coin_w(data & ~0x20); - sound_reset_w(data & 0x20); + m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); } static INPUT_PORTS_START( base ) @@ -431,6 +432,7 @@ void batsugun_bootleg_state::batsugunbl(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &batsugun_bootleg_state::batsugunbl_68k_mem); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &batsugun_bootleg_state::cpu_space_batsugunbl_map); + m_maincpu->reset_cb().set_nop(); m_vdp[0]->vint_out_cb().set_inputline(m_maincpu, M68K_IRQ_2, ASSERT_LINE); diff --git a/src/mame/toaplan/dogyuun.cpp b/src/mame/toaplan/dogyuun.cpp index 25d986bbee4..f1415b80e9f 100644 --- a/src/mame/toaplan/dogyuun.cpp +++ b/src/mame/toaplan/dogyuun.cpp @@ -53,6 +53,7 @@ public: void dogyuun_base(machine_config &config); protected: + virtual void machine_reset() override ATTR_COLD; virtual void video_start() override ATTR_COLD; u8 shared_ram_r(offs_t offset) { return m_shared_ram[offset]; } @@ -74,7 +75,6 @@ private: void screen_vblank(int state); - void sound_reset_w(u8 data); void reset(int state); required_device m_coincounter; @@ -117,13 +117,13 @@ private: void dogyuun_base_state::reset(int state) { - if (m_audiocpu != nullptr) - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + if (state) + coin_sound_reset_w(0); } -void dogyuun_base_state::sound_reset_w(u8 data) +void dogyuun_base_state::machine_reset() { - m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & m_sound_reset_bit) ? CLEAR_LINE : ASSERT_LINE); + coin_sound_reset_w(0); } void dogyuun_base_state::video_start() @@ -289,7 +289,7 @@ INPUT_PORTS_END void dogyuun_base_state::coin_sound_reset_w(u8 data) { m_coincounter->coin_w(data & ~m_sound_reset_bit); - sound_reset_w(data & m_sound_reset_bit); + m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & m_sound_reset_bit) ? CLEAR_LINE : ASSERT_LINE); } void dogyuun_state::dogyuun_68k_mem(address_map &map) diff --git a/src/mame/toaplan/fixeight.cpp b/src/mame/toaplan/fixeight.cpp index c7c6a5b7d93..0ae1d8cf9fa 100644 --- a/src/mame/toaplan/fixeight.cpp +++ b/src/mame/toaplan/fixeight.cpp @@ -83,6 +83,7 @@ public: void init_fixeight(); protected: + virtual void machine_reset() override ATTR_COLD; virtual void video_start() override ATTR_COLD; virtual void device_post_load() override; @@ -151,9 +152,16 @@ public: }; +void fixeight_state::machine_reset() +{ + if (m_audiocpu.found()) + sound_reset_w(0); +} + void fixeight_state::reset(int state) { - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + if (state) + sound_reset_w(0); } diff --git a/src/mame/toaplan/ghox.cpp b/src/mame/toaplan/ghox.cpp index 5e27529e155..64ee48b0052 100644 --- a/src/mame/toaplan/ghox.cpp +++ b/src/mame/toaplan/ghox.cpp @@ -60,7 +60,6 @@ private: template u16 ghox_h_analog_r(); u8 shared_ram_r(offs_t offset) { return m_shared_ram[offset]; } void shared_ram_w(offs_t offset, u8 data) { m_shared_ram[offset] = data; } - void reset(int state); s8 m_old_paddle_h[2] = {0}; @@ -75,13 +74,6 @@ private: }; -void ghox_state::reset(int state) -{ - if (m_audiocpu != nullptr) - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); -} - - void ghox_state::video_start() { m_screen->register_screen_bitmap(m_custom_priority_bitmap); @@ -270,7 +262,7 @@ void ghox_state::ghox(machine_config &config) /* basic machine hardware */ M68000(config, m_maincpu, 10_MHz_XTAL); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &ghox_state::ghox_68k_mem); - m_maincpu->reset_cb().set(FUNC(ghox_state::reset)); + m_maincpu->reset_cb().set_inputline(m_audiocpu, INPUT_LINE_RESET); HD647180X(config, m_audiocpu, 10_MHz_XTAL); m_audiocpu->set_addrmap(AS_PROGRAM, &ghox_state::ghox_hd647180_mem_map); diff --git a/src/mame/toaplan/kbash.cpp b/src/mame/toaplan/kbash.cpp index 34e610d730c..01d4961ee51 100644 --- a/src/mame/toaplan/kbash.cpp +++ b/src/mame/toaplan/kbash.cpp @@ -54,7 +54,6 @@ public: u8 shared_ram_r(offs_t offset) { return m_shared_ram[offset]; } void shared_ram_w(offs_t offset, u8 data) { m_shared_ram[offset] = data; } - void reset(int state); optional_shared_ptr m_shared_ram; // 8 bit RAM shared between 68K and sound CPU @@ -86,11 +85,6 @@ public: optional_device m_musicoki; }; -void kbash_state::reset(int state) -{ - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); -} - void kbash_state::video_start() { m_screen->register_screen_bitmap(m_custom_priority_bitmap); @@ -301,7 +295,7 @@ void kbash_state::kbash(machine_config &config) /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); /* 16MHz Oscillator */ m_maincpu->set_addrmap(AS_PROGRAM, &kbash_state::kbash_68k_mem); - m_maincpu->reset_cb().set(FUNC(kbash_state::reset)); + m_maincpu->reset_cb().set_inputline(m_audiocpu, INPUT_LINE_RESET); /* ROM based v25 */ v25_device &audiocpu(V25(config, m_audiocpu, 16_MHz_XTAL)); /* NEC V25 type Toaplan marked CPU ??? */ diff --git a/src/mame/toaplan/pipibibi.cpp b/src/mame/toaplan/pipibibi.cpp index 24ce445602c..f3ce2f81b83 100644 --- a/src/mame/toaplan/pipibibi.cpp +++ b/src/mame/toaplan/pipibibi.cpp @@ -56,7 +56,6 @@ protected: void pipibibs_68k_mem(address_map &map) ATTR_COLD; void pipibibs_sound_z80_mem(address_map &map) ATTR_COLD; - void reset(int state); required_shared_ptr m_shared_ram; // 8 bit RAM shared between 68K and sound CPU required_device m_maincpu; @@ -84,11 +83,6 @@ private: }; -void pipibibi_state::reset(int state) -{ - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); -} - void pipibibi_state::video_start() { m_screen->register_screen_bitmap(m_custom_priority_bitmap); @@ -282,7 +276,7 @@ void pipibibi_state::pipibibs(machine_config &config) /* basic machine hardware */ M68000(config, m_maincpu, 10_MHz_XTAL); // verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &pipibibi_state::pipibibs_68k_mem); - m_maincpu->reset_cb().set(FUNC(pipibibi_state::reset)); + m_maincpu->reset_cb().set_inputline(m_audiocpu, INPUT_LINE_RESET); Z80(config, m_audiocpu, 27_MHz_XTAL/8); // verified on PCB m_audiocpu->set_addrmap(AS_PROGRAM, &pipibibi_state::pipibibs_sound_z80_mem); @@ -320,7 +314,7 @@ void pipibibi_bootleg_state::pipibibsbl(machine_config &config) M68000(config, m_maincpu, 12_MHz_XTAL); // ??? (position labeled "68000-12" but 10 MHz-rated parts used) m_maincpu->set_addrmap(AS_PROGRAM, &pipibibi_bootleg_state::pipibibi_bootleg_68k_mem); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &pipibibi_bootleg_state::cpu_space_pipibibsbl_map); - m_maincpu->reset_cb().set(FUNC(pipibibi_bootleg_state::reset)); + m_maincpu->reset_cb().set_inputline(m_audiocpu, INPUT_LINE_RESET); Z80(config, m_audiocpu, 12_MHz_XTAL / 2); // GoldStar Z8400B; clock source and divider unknown m_audiocpu->set_addrmap(AS_PROGRAM, &pipibibi_bootleg_state::pipibibs_sound_z80_mem); diff --git a/src/mame/toaplan/raizing.cpp b/src/mame/toaplan/raizing.cpp index 7344e140d97..c3499c4c67c 100644 --- a/src/mame/toaplan/raizing.cpp +++ b/src/mame/toaplan/raizing.cpp @@ -173,7 +173,7 @@ private: void raizing_base_state::reset(int state) { if (m_audiocpu != nullptr) - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + m_audiocpu->set_input_line(INPUT_LINE_RESET, state); } TILE_GET_INFO_MEMBER(raizing_base_state::get_text_tile_info) diff --git a/src/mame/toaplan/tekipaki.cpp b/src/mame/toaplan/tekipaki.cpp index 54e0c8a2a87..92505e87eaa 100644 --- a/src/mame/toaplan/tekipaki.cpp +++ b/src/mame/toaplan/tekipaki.cpp @@ -63,7 +63,6 @@ private: void tekipaki_68k_mem(address_map &map) ATTR_COLD; void hd647180_io_map(address_map &map) ATTR_COLD; - void reset(int state); required_device m_maincpu; optional_device m_audiocpu; @@ -75,11 +74,6 @@ private: }; -void tekipaki_state::reset(int state) -{ - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); -} - void tekipaki_state::video_start() { m_screen->register_screen_bitmap(m_custom_priority_bitmap); @@ -274,7 +268,7 @@ void tekipaki_state::tekipaki(machine_config &config) /* basic machine hardware */ M68000(config, m_maincpu, 10_MHz_XTAL); // 10MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &tekipaki_state::tekipaki_68k_mem); - m_maincpu->reset_cb().set(FUNC(tekipaki_state::reset)); + m_maincpu->reset_cb().set_inputline(m_audiocpu, INPUT_LINE_RESET); hd647180x_device &audiocpu(HD647180X(config, m_audiocpu, 10_MHz_XTAL)); // 16k byte ROM and 512 byte RAM are internal diff --git a/src/mame/toaplan/vfive.cpp b/src/mame/toaplan/vfive.cpp index 1fcd612f9e3..6462a729382 100644 --- a/src/mame/toaplan/vfive.cpp +++ b/src/mame/toaplan/vfive.cpp @@ -51,6 +51,7 @@ public: void vfive(machine_config &config); protected: + virtual void machine_reset() override ATTR_COLD; virtual void video_start() override ATTR_COLD; private: @@ -100,7 +101,13 @@ void vfive_state::screen_vblank(int state) void vfive_state::reset(int state) { - m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + if (state) + coin_sound_reset_w(0); +} + +void vfive_state::machine_reset() +{ + coin_sound_reset_w(0); } void vfive_state::coin_sound_reset_w(u8 data) -- cgit v1.2.3