namco, polepos: Clean up some line write handlers (nw)

This commit is contained in:
AJR 2018-05-01 16:56:13 -04:00
parent c8f7418d2a
commit c5db561a10
11 changed files with 45 additions and 61 deletions

View File

@ -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++)

View File

@ -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);

View File

@ -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;

View File

@ -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)

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -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_sound_device>("polepos")->polepos_engine_sound_lsb_w(machine().dummy_space(), 0, 0);
machine().device<polepos_sound_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<bool sub1> 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

View File

@ -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;

View File

@ -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();
}