From c5db561a10f78604c6bb57a324c67bcaa3670852 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 1 May 2018 16:56:13 -0400 Subject: [PATCH] namco, polepos: Clean up some line write handlers (nw) --- src/devices/sound/namco.cpp | 32 +++++++++++--------------------- src/devices/sound/namco.h | 5 +++-- src/mame/audio/polepos.cpp | 14 ++++++++++++-- src/mame/drivers/gaplus.cpp | 2 +- src/mame/drivers/jrpacman.cpp | 2 +- src/mame/drivers/mappy.cpp | 6 +++--- src/mame/drivers/pacman.cpp | 6 +++--- src/mame/drivers/pengo.cpp | 2 +- src/mame/drivers/polepos.cpp | 21 ++++----------------- src/mame/includes/polepos.h | 7 +++---- src/mame/video/polepos.cpp | 9 +++------ 11 files changed, 45 insertions(+), 61 deletions(-) diff --git a/src/devices/sound/namco.cpp b/src/devices/sound/namco.cpp index 04e73d03b81..99c016996ed 100644 --- a/src/devices/sound/namco.cpp +++ b/src/devices/sound/namco.cpp @@ -55,7 +55,7 @@ namco_audio_device::namco_audio_device(const machine_config &mconfig, device_typ , m_soundregs(nullptr) , m_wavedata(nullptr) , m_wave_size(0) - , m_sound_enable(0) + , m_sound_enable(false) , m_stream(nullptr) , m_namco_clock(0) , m_sample_rate(0) @@ -104,7 +104,7 @@ void namco_audio_device::device_start() m_stream = machine().sound().stream_alloc(*this, 0, 1, 192000); /* start with sound enabled, many games don't have a sound enable register */ - m_sound_enable = 1; + m_sound_enable = true; /* register with the save state system */ save_pointer(NAME(m_soundregs), 0x400); @@ -245,6 +245,12 @@ uint32_t namco_audio_device::namco_update_one(stream_sample_t *buffer, int lengt } +WRITE_LINE_MEMBER(namco_audio_device::sound_enable_w) +{ + m_sound_enable = state; +} + + /********************************************************************************/ /* pacman register map @@ -263,11 +269,6 @@ uint32_t namco_audio_device::namco_update_one(stream_sample_t *buffer, int lengt 0x1f: ch 2 volume */ -WRITE_LINE_MEMBER(namco_device::pacman_sound_enable_w) -{ - m_sound_enable = state; -} - WRITE8_MEMBER( namco_device::pacman_sound_w ) { sound_channel *voice; @@ -410,11 +411,6 @@ it select the 54XX/52XX outputs on those channels 0x3f ch 7 */ -void namco_device::polepos_sound_enable(int enable) -{ - m_sound_enable = enable; -} - READ8_MEMBER( namco_device::polepos_sound_r ) { return m_soundregs[offset]; @@ -491,11 +487,6 @@ WRITE8_MEMBER( namco_device::polepos_sound_w ) 0x3e ch 7 waveform select & frequency */ -WRITE_LINE_MEMBER(namco_15xx_device::mappy_sound_enable) -{ - m_sound_enable = state; -} - WRITE8_MEMBER(namco_15xx_device::namco_15xx_w) { sound_channel *voice; @@ -675,7 +666,7 @@ void namco_audio_device::sound_stream_update(sound_stream &stream, stream_sample memset(outputs[1], 0, samples * sizeof(*outputs[1])); /* if no sound, we're done */ - if (m_sound_enable == 0) + if (!m_sound_enable) return; /* loop over each voice and add its contribution */ @@ -782,9 +773,8 @@ void namco_audio_device::sound_stream_update(sound_stream &stream, stream_sample memset(buffer, 0, samples * sizeof(*buffer)); /* if no sound, we're done */ - - if (m_sound_enable == 0) - return; + if (!m_sound_enable) + return; /* loop over each voice and add its contribution */ for (voice = m_channel_list; voice < m_last_channel; voice++) diff --git a/src/devices/sound/namco.h b/src/devices/sound/namco.h index f9d7b68a17e..560090cb71d 100644 --- a/src/devices/sound/namco.h +++ b/src/devices/sound/namco.h @@ -21,6 +21,8 @@ public: void set_voices(int voices) { m_voices = voices; } void set_stereo(int stereo) { m_stereo = stereo; } + DECLARE_WRITE_LINE_MEMBER(sound_enable_w); + protected: static constexpr unsigned MAX_VOICES = 8; static constexpr unsigned MAX_VOLUME = 16; @@ -62,7 +64,7 @@ protected: /* global sound parameters */ int m_wave_size; - int32_t m_sound_enable; + bool m_sound_enable; sound_stream *m_stream; int m_namco_clock; int m_sample_rate; @@ -82,7 +84,6 @@ class namco_device : public namco_audio_device public: namco_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE_LINE_MEMBER(pacman_sound_enable_w); DECLARE_WRITE8_MEMBER(pacman_sound_w); void polepos_sound_enable(int enable); diff --git a/src/mame/audio/polepos.cpp b/src/mame/audio/polepos.cpp index ef575abc899..cd3ee6a62c7 100644 --- a/src/mame/audio/polepos.cpp +++ b/src/mame/audio/polepos.cpp @@ -326,10 +326,20 @@ void polepos_sound_device::sound_stream_update(sound_stream &stream, stream_samp } +WRITE_LINE_MEMBER(polepos_sound_device::clson_w) +{ + if (!state) + { + polepos_engine_sound_lsb_w(machine().dummy_space(), 0, 0); + polepos_engine_sound_msb_w(machine().dummy_space(), 0, 0); + } +} + + /************************************/ /* Write LSB of engine sound */ /************************************/ -WRITE8_MEMBER( polepos_sound_device::polepos_engine_sound_lsb_w ) +WRITE8_MEMBER(polepos_sound_device::polepos_engine_sound_lsb_w) { /* Update stream first so all samples at old frequency are updated. */ m_stream->update(); @@ -340,7 +350,7 @@ WRITE8_MEMBER( polepos_sound_device::polepos_engine_sound_lsb_w ) /************************************/ /* Write MSB of engine sound */ /************************************/ -WRITE8_MEMBER( polepos_sound_device::polepos_engine_sound_msb_w ) +WRITE8_MEMBER(polepos_sound_device::polepos_engine_sound_msb_w) { m_stream->update(); m_sample_msb = data & 63; diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp index f263fa7bec0..2bba7af5040 100644 --- a/src/mame/drivers/gaplus.cpp +++ b/src/mame/drivers/gaplus.cpp @@ -190,7 +190,7 @@ WRITE8_MEMBER(gaplus_state::sreset_w) int bit = !BIT(offset, 11); m_subcpu->set_input_line(INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); m_subcpu2->set_input_line(INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - m_namco_15xx->mappy_sound_enable(bit); + m_namco_15xx->sound_enable_w(bit); } WRITE8_MEMBER(gaplus_state::freset_w) diff --git a/src/mame/drivers/jrpacman.cpp b/src/mame/drivers/jrpacman.cpp index 754b8dce531..753abfdf388 100644 --- a/src/mame/drivers/jrpacman.cpp +++ b/src/mame/drivers/jrpacman.cpp @@ -284,7 +284,7 @@ MACHINE_CONFIG_START(jrpacman_state::jrpacman) MCFG_DEVICE_ADD("latch1", LS259, 0) // 5P MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(jrpacman_state, irq_mask_w)) - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w)) + MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(jrpacman_state, flipscreen_w)) MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(jrpacman_state, coin_counter_w)) diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp index 3128cc35005..a7083a7a13b 100644 --- a/src/mame/drivers/mappy.cpp +++ b/src/mame/drivers/mappy.cpp @@ -1328,7 +1328,7 @@ MACHINE_CONFIG_START(mappy_state::superpac_common) MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 2M on CPU board MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mappy_state, int_on_2_w)) MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(mappy_state, int_on_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(DEVWRITELINE("namco", namco_15xx_device, mappy_sound_enable)) + MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(DEVWRITELINE("namco", namco_15xx_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(DEVWRITELINE("namcoio_1", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("namcoio_2", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT @@ -1443,7 +1443,7 @@ MACHINE_CONFIG_START(mappy_state::phozon) MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mappy_state, int_on_2_w)) MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(mappy_state, int_on_w)) MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(mappy_state, int_on_3_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(DEVWRITELINE("namco", namco_15xx_device, mappy_sound_enable)) + MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(DEVWRITELINE("namco", namco_15xx_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(DEVWRITELINE("namcoio_1", namco58xx_device, set_reset_line)) MCFG_DEVCB_INVERT MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("namcoio_2", namco56xx_device, set_reset_line)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT @@ -1506,7 +1506,7 @@ MACHINE_CONFIG_START(mappy_state::mappy_common) MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mappy_state, int_on_2_w)) MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(mappy_state, int_on_w)) MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(mappy_state, mappy_flip_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(DEVWRITELINE("namco", namco_15xx_device, mappy_sound_enable)) + MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(DEVWRITELINE("namco", namco_15xx_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(DEVWRITELINE("namcoio_1", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("namcoio_2", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp index 9bce8a1400e..e8f2eea7002 100644 --- a/src/mame/drivers/pacman.cpp +++ b/src/mame/drivers/pacman.cpp @@ -3528,7 +3528,7 @@ MACHINE_CONFIG_START(pacman_state::pacman) MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 74LS259 at 8K or 4099 at 7K MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pacman_state, irq_mask_w)) - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w)) + MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(pacman_state, flipscreen_w)) //MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(OUTPUT("led0")) //MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(OUTPUT("led1")) @@ -3590,7 +3590,7 @@ MACHINE_CONFIG_START(pacman_state::birdiy) MCFG_DEVICE_REPLACE("mainlatch", LS259, 0) MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(pacman_state, irq_mask_w)) - //MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w)) + //MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(pacman_state, flipscreen_w)) //MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(OUTPUT("led0")) //MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(OUTPUT("led1")) @@ -3667,7 +3667,7 @@ MACHINE_CONFIG_START(pacman_state::alibaba) MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(pacman_state, coin_lockout_global_w)) MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(pacman_state, coin_counter_w)) MCFG_DEVICE_ADD("latch2", LS259, 0) - MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w)) + MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(pacman_state, flipscreen_w)) MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(pacman_state, irq_mask_w)) MACHINE_CONFIG_END diff --git a/src/mame/drivers/pengo.cpp b/src/mame/drivers/pengo.cpp index f4281c83544..e60be39059a 100644 --- a/src/mame/drivers/pengo.cpp +++ b/src/mame/drivers/pengo.cpp @@ -385,7 +385,7 @@ MACHINE_CONFIG_START(pengo_state::pengo) MCFG_DEVICE_ADD("latch", LS259, 0) // U27 MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pengo_state, irq_mask_w)) - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w)) + MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(pengo_state, pengo_palettebank_w)) MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(pengo_state, flipscreen_w)) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(pengo_state, coin_counter_1_w)) diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp index 27267925df8..0c8ce4307d0 100644 --- a/src/mame/drivers/polepos.cpp +++ b/src/mame/drivers/polepos.cpp @@ -295,16 +295,6 @@ WRITE_LINE_MEMBER(polepos_state::iosel_w) // polepos_mcu_enable_w(offset,data); } -WRITE_LINE_MEMBER(polepos_state::clson_w) -{ - m_namco_sound->polepos_sound_enable(state); - if (!state) - { - machine().device("polepos")->polepos_engine_sound_lsb_w(machine().dummy_space(), 0, 0); - machine().device("polepos")->polepos_engine_sound_msb_w(machine().dummy_space(), 0, 0); - } -} - WRITE_LINE_MEMBER(polepos_state::gasel_w) { m_adc_input = state; @@ -315,11 +305,6 @@ WRITE_LINE_MEMBER(polepos_state::sb0_w) m_auto_start_mask = !state; } -WRITE_LINE_MEMBER(polepos_state::chacl_w) -{ - polepos_chacl_w(machine().dummy_space(), 0, state); -} - template WRITE16_MEMBER(polepos_state::polepos_z8002_nvi_enable_w) { data &= 1; @@ -914,7 +899,8 @@ MACHINE_CONFIG_START(polepos_state::polepos) MCFG_DEVICE_ADD("latch", LS259, 0) // at 8E on polepos MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(CLEARLINE("maincpu", 0)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(polepos_state, iosel_w)) - MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(polepos_state, clson_w)) + MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("polepos", polepos_sound_device, clson_w)) MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(polepos_state, gasel_w)) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub2", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT @@ -1026,7 +1012,8 @@ MACHINE_CONFIG_START(polepos_state::topracern) MCFG_DEVICE_ADD("latch", LS259, 0) MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(CLEARLINE("maincpu", 0)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(polepos_state, iosel_w)) - MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(polepos_state, clson_w)) + MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(DEVWRITELINE("namco", namco_device, sound_enable_w)) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("polepos", polepos_sound_device, clson_w)) MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(polepos_state, gasel_w)) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub2", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h index 8719ae8323e..5927c110b1a 100644 --- a/src/mame/includes/polepos.h +++ b/src/mame/includes/polepos.h @@ -94,7 +94,6 @@ public: DECLARE_READ8_MEMBER(polepos_adc_r); DECLARE_READ8_MEMBER(polepos_ready_r); DECLARE_WRITE_LINE_MEMBER(iosel_w); - DECLARE_WRITE_LINE_MEMBER(clson_w); DECLARE_WRITE_LINE_MEMBER(gasel_w); DECLARE_WRITE_LINE_MEMBER(sb0_w); DECLARE_WRITE_LINE_MEMBER(chacl_w); @@ -113,7 +112,6 @@ public: DECLARE_READ8_MEMBER(polepos_view_r); DECLARE_WRITE8_MEMBER(polepos_view_w); DECLARE_WRITE16_MEMBER(polepos_view16_hscroll_w); - DECLARE_WRITE8_MEMBER(polepos_chacl_w); DECLARE_READ16_MEMBER(polepos_alpha16_r); DECLARE_WRITE16_MEMBER(polepos_alpha16_w); DECLARE_READ8_MEMBER(polepos_alpha_r); @@ -170,8 +168,9 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; public: - DECLARE_WRITE8_MEMBER( polepos_engine_sound_lsb_w ); - DECLARE_WRITE8_MEMBER( polepos_engine_sound_msb_w ); + DECLARE_WRITE_LINE_MEMBER(clson_w); + DECLARE_WRITE8_MEMBER(polepos_engine_sound_lsb_w); + DECLARE_WRITE8_MEMBER(polepos_engine_sound_msb_w); private: uint32_t m_current_position; diff --git a/src/mame/video/polepos.cpp b/src/mame/video/polepos.cpp index e1e7813f267..355af8b52dc 100644 --- a/src/mame/video/polepos.cpp +++ b/src/mame/video/polepos.cpp @@ -291,13 +291,10 @@ WRITE16_MEMBER(polepos_state::polepos_view16_hscroll_w) m_bg_tilemap->set_scrollx(0,m_scroll); } -WRITE8_MEMBER(polepos_state::polepos_chacl_w) +WRITE_LINE_MEMBER(polepos_state::chacl_w) { - if (m_chacl != (data & 1)) - { - m_chacl = data & 1; - m_tx_tilemap->mark_all_dirty(); - } + m_chacl = state; + m_tx_tilemap->mark_all_dirty(); }