mirror of
https://github.com/holub/mame
synced 2025-07-02 08:39:21 +03:00
namco, polepos: Clean up some line write handlers (nw)
This commit is contained in:
parent
c8f7418d2a
commit
c5db561a10
@ -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++)
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user