From 8701f68d97b164048819770461ba82836a2896a6 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Fri, 28 Sep 2012 08:39:43 +0000 Subject: [PATCH] Replace some *_DEVICE_HANDLER with _MEMBER calls, mostly audio (no whatsnew) --- src/mame/audio/8080bw.c | 35 +++-- src/mame/audio/asteroid.c | 24 +-- src/mame/audio/avalnche.c | 18 +-- src/mame/audio/blockade.c | 4 +- src/mame/audio/bsktball.c | 14 +- src/mame/audio/bzone.c | 6 +- src/mame/audio/canyon.c | 16 +- src/mame/audio/cchasm.c | 22 ++- src/mame/audio/cinemat.c | 37 +++-- src/mame/audio/copsnrob.c | 15 +- src/mame/audio/crbaloon.c | 12 +- src/mame/audio/dkong.c | 34 ++--- src/mame/audio/firetrk.c | 35 +++-- src/mame/audio/harddriv.c | 7 +- src/mame/audio/llander.c | 14 +- src/mame/audio/m79amb.c | 20 +-- src/mame/audio/mario.c | 14 +- src/mame/audio/micro3d.c | 3 +- src/mame/audio/mw8080bw.c | 279 +++++++++++++++++------------------ src/mame/audio/orbit.c | 20 +-- src/mame/audio/poolshrk.c | 16 +- src/mame/audio/qix.c | 65 ++++---- src/mame/audio/redalert.c | 69 +++++---- src/mame/audio/segag80r.c | 88 +++++------ src/mame/audio/senjyo.c | 7 +- src/mame/audio/skyraid.c | 14 +- src/mame/audio/spiders.c | 24 +-- src/mame/audio/sprint8.c | 16 +- src/mame/audio/starwars.c | 19 +-- src/mame/audio/subs.c | 20 +-- src/mame/audio/suna8.c | 25 ++-- src/mame/audio/turbo.c | 126 ++++++++-------- src/mame/audio/zaxxon.c | 45 +++--- src/mame/drivers/8080bw.c | 16 +- src/mame/drivers/asteroid.c | 18 +-- src/mame/drivers/avalnche.c | 10 +- src/mame/drivers/blockade.c | 2 +- src/mame/drivers/bsktball.c | 6 +- src/mame/drivers/bzone.c | 2 +- src/mame/drivers/canyon.c | 8 +- src/mame/drivers/circus.c | 1 - src/mame/drivers/circusc.c | 1 - src/mame/drivers/crbaloon.c | 10 +- src/mame/drivers/dragrace.c | 3 - src/mame/drivers/firetrk.c | 28 ++-- src/mame/drivers/harddriv.c | 2 +- src/mame/drivers/m79amb.c | 29 +--- src/mame/drivers/mario.c | 4 +- src/mame/drivers/micro3d.c | 2 +- src/mame/drivers/mw8080bw.c | 70 ++++----- src/mame/drivers/orbit.c | 9 +- src/mame/drivers/poolshrk.c | 8 +- src/mame/drivers/skyraid.c | 2 +- src/mame/drivers/spiders.c | 8 +- src/mame/drivers/sprint8.c | 8 +- src/mame/drivers/subs.c | 10 +- src/mame/drivers/suna8.c | 12 +- src/mame/drivers/turbo.c | 16 +- src/mame/drivers/zaxxon.c | 10 +- src/mame/includes/8080bw.h | 14 +- src/mame/includes/asteroid.h | 21 ++- src/mame/includes/avalnche.h | 13 +- src/mame/includes/blockade.h | 8 +- src/mame/includes/bsktball.h | 11 +- src/mame/includes/bzone.h | 10 +- src/mame/includes/canyon.h | 15 +- src/mame/includes/cchasm.h | 2 + src/mame/includes/cinemat.h | 4 + src/mame/includes/circus.h | 5 +- src/mame/includes/circusc.h | 7 +- src/mame/includes/copsnrob.h | 5 +- src/mame/includes/crbaloon.h | 11 +- src/mame/includes/dkong.h | 10 +- src/mame/includes/dragrace.h | 5 +- src/mame/includes/firetrk.h | 18 ++- src/mame/includes/harddriv.h | 3 +- src/mame/includes/m79amb.h | 30 +++- src/mame/includes/mario.h | 13 +- src/mame/includes/micro3d.h | 3 +- src/mame/includes/mw8080bw.h | 59 ++++---- src/mame/includes/nitedrvr.h | 5 +- src/mame/includes/orbit.h | 15 +- src/mame/includes/poolshrk.h | 13 +- src/mame/includes/qix.h | 13 +- src/mame/includes/redalert.h | 7 + src/mame/includes/segag80r.h | 8 + src/mame/includes/senjyo.h | 1 + src/mame/includes/skyraid.h | 8 +- src/mame/includes/spiders.h | 15 +- src/mame/includes/sprint8.h | 13 +- src/mame/includes/starwars.h | 3 + src/mame/includes/subs.h | 15 +- src/mame/includes/suna8.h | 6 +- src/mame/includes/turbo.h | 19 +-- src/mame/includes/zaxxon.h | 13 +- src/mame/machine/mw8080bw.c | 1 - src/mame/machine/nitedrvr.c | 1 - 97 files changed, 940 insertions(+), 941 deletions(-) diff --git a/src/mame/audio/8080bw.c b/src/mame/audio/8080bw.c index 5c09f5d2f9c..5e11e6c71c0 100644 --- a/src/mame/audio/8080bw.c +++ b/src/mame/audio/8080bw.c @@ -279,9 +279,9 @@ WRITE8_MEMBER(_8080bw_state::indianbt_sh_port_2_w) m_port_2_last_extra = data; } -WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w ) +WRITE8_MEMBER(_8080bw_state::indianbt_sh_port_3_w) { - discrete_sound_w(device, space, INDIANBT_MUSIC_DATA, data); + discrete_sound_w(m_discrete, space, INDIANBT_MUSIC_DATA, data); } @@ -597,50 +597,49 @@ DISCRETE_SOUND_START(polaris) DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w ) +WRITE8_MEMBER(_8080bw_state::polaris_sh_port_1_w) { - discrete_sound_w(device, space, POLARIS_MUSIC_DATA, data); + discrete_sound_w(m_discrete, space, POLARIS_MUSIC_DATA, data); } -WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w ) +WRITE8_MEMBER(_8080bw_state::polaris_sh_port_2_w) { /* 0x01 - SX0 - Shot */ - discrete_sound_w(device, space, POLARIS_SX0_EN, data & 0x01); + discrete_sound_w(m_discrete, space, POLARIS_SX0_EN, data & 0x01); /* 0x02 - SX1 - Ship Hit (Sub) */ - discrete_sound_w(device, space, POLARIS_SX1_EN, data & 0x02); + discrete_sound_w(m_discrete, space, POLARIS_SX1_EN, data & 0x02); /* 0x04 - SX2 - Ship */ - discrete_sound_w(device, space, POLARIS_SX2_EN, data & 0x04); + discrete_sound_w(m_discrete, space, POLARIS_SX2_EN, data & 0x04); /* 0x08 - SX3 - Explosion */ - discrete_sound_w(device, space, POLARIS_SX3_EN, data & 0x08); + discrete_sound_w(m_discrete, space, POLARIS_SX3_EN, data & 0x08); /* 0x10 - SX4 */ /* 0x20 - SX5 - Sound Enable */ - discrete_sound_w(device, space, POLARIS_SX5_EN, data & 0x20); + discrete_sound_w(m_discrete, space, POLARIS_SX5_EN, data & 0x20); } -WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w ) +WRITE8_MEMBER(_8080bw_state::polaris_sh_port_3_w) { - _8080bw_state *state = space.machine().driver_data<_8080bw_state>(); - coin_lockout_global_w(space.machine(), data & 0x04); /* SX8 */ + coin_lockout_global_w(machine(), data & 0x04); /* SX8 */ - state->m_c8080bw_flip_screen = data & 0x20; /* SX11 */ + m_c8080bw_flip_screen = data & 0x20; /* SX11 */ /* 0x01 - SX6 - Plane Down */ - discrete_sound_w(device, space, POLARIS_SX6_EN, data & 0x01); + discrete_sound_w(m_discrete, space, POLARIS_SX6_EN, data & 0x01); /* 0x02 - SX7 - Plane Up */ - discrete_sound_w(device, space, POLARIS_SX7_EN, data & 0x02); + discrete_sound_w(m_discrete, space, POLARIS_SX7_EN, data & 0x02); /* 0x08 - SX9 - Hit */ - discrete_sound_w(device, space, POLARIS_SX9_EN, data & 0x08); + discrete_sound_w(m_discrete, space, POLARIS_SX9_EN, data & 0x08); /* 0x10 - SX10 - Hit */ - discrete_sound_w(device, space, POLARIS_SX10_EN, data & 0x10); + discrete_sound_w(m_discrete, space, POLARIS_SX10_EN, data & 0x10); } diff --git a/src/mame/audio/asteroid.c b/src/mame/audio/asteroid.c index b6cc6990d72..1f1c00f10ab 100644 --- a/src/mame/audio/asteroid.c +++ b/src/mame/audio/asteroid.c @@ -278,9 +278,9 @@ DISCRETE_SOUND_START(astdelux) DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( asteroid_explode_w ) +WRITE8_MEMBER(asteroid_state::asteroid_explode_w) { - discrete_sound_w(device,space,ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume + discrete_sound_w(m_discrete,space,ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume /* We will modify the pitch data to send the divider value. */ switch ((data&0xc0)) { @@ -297,27 +297,27 @@ WRITE8_DEVICE_HANDLER( asteroid_explode_w ) data = 5; break; } - discrete_sound_w(device, space, ASTEROID_EXPLODE_PITCH, data); + discrete_sound_w(m_discrete, space, ASTEROID_EXPLODE_PITCH, data); } -WRITE8_DEVICE_HANDLER( asteroid_thump_w ) +WRITE8_MEMBER(asteroid_state::asteroid_thump_w) { - discrete_sound_w(device, space, ASTEROID_THUMP_EN, data & 0x10); - discrete_sound_w(device, space, ASTEROID_THUMP_DATA, data & 0x0f); + discrete_sound_w(m_discrete, space, ASTEROID_THUMP_EN, data & 0x10); + discrete_sound_w(m_discrete, space, ASTEROID_THUMP_DATA, data & 0x0f); } -WRITE8_DEVICE_HANDLER( asteroid_sounds_w ) +WRITE8_MEMBER(asteroid_state::asteroid_sounds_w) { - discrete_sound_w(device, space, NODE_RELATIVE(ASTEROID_SAUCER_SND_EN, offset), data & 0x80); + discrete_sound_w(m_discrete, space, NODE_RELATIVE(ASTEROID_SAUCER_SND_EN, offset), data & 0x80); } -WRITE8_DEVICE_HANDLER( astdelux_sounds_w ) +WRITE8_MEMBER(asteroid_state::astdelux_sounds_w) { /* Only ever activates the thrusters in Astdelux */ - discrete_sound_w(device, space, ASTEROID_THRUST_EN, data & 0x80); + discrete_sound_w(m_discrete, space, ASTEROID_THRUST_EN, data & 0x80); } -WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w ) +WRITE8_MEMBER(asteroid_state::asteroid_noise_reset_w) { - discrete_sound_w(device, space, ASTEROID_NOISE_RESET, 0); + discrete_sound_w(m_discrete, space, ASTEROID_NOISE_RESET, 0); } diff --git a/src/mame/audio/avalnche.c b/src/mame/audio/avalnche.c index 6bc3ce3f046..fea25c7b0b7 100644 --- a/src/mame/audio/avalnche.c +++ b/src/mame/audio/avalnche.c @@ -20,33 +20,33 @@ Avalanche memory audio output handlers ***************************************************************************/ -WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w ) +WRITE8_MEMBER(avalnche_state::avalnche_noise_amplitude_w) { - discrete_sound_w(device, space, AVALNCHE_SOUNDLVL_DATA, data & 0x3f); + discrete_sound_w(m_discrete, space, AVALNCHE_SOUNDLVL_DATA, data & 0x3f); } -WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w ) +WRITE8_MEMBER(avalnche_state::avalnche_attract_enable_w) { - discrete_sound_w(device, space, AVALNCHE_ATTRACT_EN, data & 0x01); + discrete_sound_w(m_discrete, space, AVALNCHE_ATTRACT_EN, data & 0x01); } -WRITE8_DEVICE_HANDLER( avalnche_audio_w ) +WRITE8_MEMBER(avalnche_state::avalnche_audio_w) { int bit = data & 0x01; switch (offset & 0x07) { case 0x00: /* AUD0 */ - discrete_sound_w(device, space, AVALNCHE_AUD0_EN, bit); + discrete_sound_w(m_discrete, space, AVALNCHE_AUD0_EN, bit); break; case 0x01: /* AUD1 */ - discrete_sound_w(device, space, AVALNCHE_AUD1_EN, bit); + discrete_sound_w(m_discrete, space, AVALNCHE_AUD1_EN, bit); break; case 0x02: /* AUD2 */ default: - discrete_sound_w(device, space, AVALNCHE_AUD2_EN, bit); + discrete_sound_w(m_discrete, space, AVALNCHE_AUD2_EN, bit); break; } } @@ -128,7 +128,7 @@ DISCRETE_SOUND_END Catch memory audio output handlers ***************************************************************************/ -WRITE8_HANDLER( catch_audio_w ) +WRITE8_MEMBER(avalnche_state::catch_audio_w) { /* Different from avalnche, it plays a sound (offset 0/1/2) on data bit 0 rising edge. There's no indication that the game silences sound, it's probably done automatically. */ diff --git a/src/mame/audio/blockade.c b/src/mame/audio/blockade.c index 8891f00ac74..70728f0169a 100644 --- a/src/mame/audio/blockade.c +++ b/src/mame/audio/blockade.c @@ -36,9 +36,9 @@ DISCRETE_SOUND_START(blockade) DISCRETE_OUTPUT(NODE_10, 7500) DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( blockade_sound_freq_w ) +WRITE8_MEMBER(blockade_state::blockade_sound_freq_w) { - discrete_sound_w(device,space,BLOCKADE_NOTE_DATA, data); + discrete_sound_w(m_discrete,space,BLOCKADE_NOTE_DATA, data); return; } diff --git a/src/mame/audio/bsktball.c b/src/mame/audio/bsktball.c index 578f8fd5c8b..e667254424f 100644 --- a/src/mame/audio/bsktball.c +++ b/src/mame/audio/bsktball.c @@ -10,20 +10,20 @@ /*************************************************************************** Sound handlers ***************************************************************************/ -WRITE8_DEVICE_HANDLER( bsktball_bounce_w ) +WRITE8_MEMBER(bsktball_state::bsktball_bounce_w) { - discrete_sound_w(device, space, BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd - discrete_sound_w(device, space, BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce + discrete_sound_w(m_discrete, space, BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd + discrete_sound_w(m_discrete, space, BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce } -WRITE8_DEVICE_HANDLER( bsktball_note_w ) +WRITE8_MEMBER(bsktball_state::bsktball_note_w) { - discrete_sound_w(device, space, BSKTBALL_NOTE_DATA, data); // Note + discrete_sound_w(m_discrete, space, BSKTBALL_NOTE_DATA, data); // Note } -WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w ) +WRITE8_MEMBER(bsktball_state::bsktball_noise_reset_w) { - discrete_sound_w(device, space, BSKTBALL_NOISE_EN, offset & 0x01); + discrete_sound_w(m_discrete, space, BSKTBALL_NOISE_EN, offset & 0x01); } diff --git a/src/mame/audio/bzone.c b/src/mame/audio/bzone.c index 1739f92924b..759a790b81a 100644 --- a/src/mame/audio/bzone.c +++ b/src/mame/audio/bzone.c @@ -387,12 +387,12 @@ static const pokey_interface bzone_pokey_interface = DEVCB_INPUT_PORT("IN3") }; -WRITE8_DEVICE_HANDLER( bzone_sounds_w ) +WRITE8_MEMBER(bzone_state::bzone_sounds_w) { - discrete_sound_w(device, space, BZ_INPUT, data); + discrete_sound_w(m_discrete, space, BZ_INPUT, data); output_set_value("startled", (data >> 6) & 1); - space.machine().sound().system_enable(data & 0x20); + machine().sound().system_enable(data & 0x20); } diff --git a/src/mame/audio/canyon.c b/src/mame/audio/canyon.c index bfc5e129b2a..f3e663a4a51 100644 --- a/src/mame/audio/canyon.c +++ b/src/mame/audio/canyon.c @@ -14,27 +14,27 @@ * *************************************/ -WRITE8_DEVICE_HANDLER( canyon_motor_w ) +WRITE8_MEMBER(canyon_state::canyon_motor_w) { - discrete_sound_w(device, space, NODE_RELATIVE(CANYON_MOTOR1_DATA, (offset & 0x01)), data & 0x0f); + discrete_sound_w(m_discrete, space, NODE_RELATIVE(CANYON_MOTOR1_DATA, (offset & 0x01)), data & 0x0f); } -WRITE8_DEVICE_HANDLER( canyon_explode_w ) +WRITE8_MEMBER(canyon_state::canyon_explode_w) { - discrete_sound_w(device, space, CANYON_EXPLODE_DATA, data >> 4); + discrete_sound_w(m_discrete, space, CANYON_EXPLODE_DATA, data >> 4); } -WRITE8_DEVICE_HANDLER( canyon_attract_w ) +WRITE8_MEMBER(canyon_state::canyon_attract_w) { - discrete_sound_w(device, space, NODE_RELATIVE(CANYON_ATTRACT1_EN, (offset & 0x01)), offset & 0x02); + discrete_sound_w(m_discrete, space, NODE_RELATIVE(CANYON_ATTRACT1_EN, (offset & 0x01)), offset & 0x02); } -WRITE8_DEVICE_HANDLER( canyon_whistle_w ) +WRITE8_MEMBER(canyon_state::canyon_whistle_w) { - discrete_sound_w(device, space, NODE_RELATIVE(CANYON_WHISTLE1_EN, (offset & 0x01)), offset & 0x02); + discrete_sound_w(m_discrete, space, NODE_RELATIVE(CANYON_WHISTLE1_EN, (offset & 0x01)), offset & 0x02); } diff --git a/src/mame/audio/cchasm.c b/src/mame/audio/cchasm.c index 4ad0c80f547..06e50e4a18c 100644 --- a/src/mame/audio/cchasm.c +++ b/src/mame/audio/cchasm.c @@ -96,25 +96,23 @@ READ16_MEMBER(cchasm_state::cchasm_io_r) } -static WRITE_LINE_DEVICE_HANDLER( ctc_timer_1_w ) +WRITE_LINE_MEMBER(cchasm_state::ctc_timer_1_w) { - cchasm_state *drvstate = device->machine().driver_data(); if (state) /* rising edge */ { - drvstate->m_output[0] ^= 0x7f; - drvstate->m_channel_active[0] = 1; - device->machine().device("dac1")->write_unsigned8(drvstate->m_output[0]); + m_output[0] ^= 0x7f; + m_channel_active[0] = 1; + machine().device("dac1")->write_unsigned8(m_output[0]); } } -static WRITE_LINE_DEVICE_HANDLER( ctc_timer_2_w ) +WRITE_LINE_MEMBER(cchasm_state::ctc_timer_2_w) { - cchasm_state *drvstate = device->machine().driver_data(); if (state) /* rising edge */ { - drvstate->m_output[1] ^= 0x7f; - drvstate->m_channel_active[1] = 1; - device->machine().device("dac2")->write_unsigned8(drvstate->m_output[0]); + m_output[1] ^= 0x7f; + m_channel_active[1] = 1; + machine().device("dac2")->write_unsigned8(m_output[0]); } } @@ -122,8 +120,8 @@ Z80CTC_INTERFACE( cchasm_ctc_intf ) { DEVCB_CPU_INPUT_LINE("audiocpu", INPUT_LINE_IRQ0), /* interrupt handler */ DEVCB_NULL, /* ZC/TO0 callback */ - DEVCB_LINE(ctc_timer_1_w), /* ZC/TO1 callback */ - DEVCB_LINE(ctc_timer_2_w) /* ZC/TO2 callback */ + DEVCB_DRIVER_LINE_MEMBER(cchasm_state,ctc_timer_1_w), /* ZC/TO1 callback */ + DEVCB_DRIVER_LINE_MEMBER(cchasm_state,ctc_timer_2_w) /* ZC/TO2 callback */ }; SOUND_START( cchasm ) diff --git a/src/mame/audio/cinemat.c b/src/mame/audio/cinemat.c index 7e49507b57f..e1114112e22 100644 --- a/src/mame/audio/cinemat.c +++ b/src/mame/audio/cinemat.c @@ -1331,42 +1331,39 @@ static void demon_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bits_ } -static READ8_DEVICE_HANDLER( sound_porta_r ) +READ8_MEMBER(cinemat_state::sound_porta_r) { - cinemat_state *state = space.machine().driver_data(); /* bits 0-3 are the sound data; bit 4 is the data ready */ - return state->m_sound_fifo[state->m_sound_fifo_out] | ((state->m_sound_fifo_in != state->m_sound_fifo_out) << 4); + return m_sound_fifo[m_sound_fifo_out] | ((m_sound_fifo_in != m_sound_fifo_out) << 4); } -static READ8_DEVICE_HANDLER( sound_portb_r ) +READ8_MEMBER(cinemat_state::sound_portb_r) { - cinemat_state *state = space.machine().driver_data(); - return state->m_last_portb_write; + return m_last_portb_write; } -static WRITE8_DEVICE_HANDLER( sound_portb_w ) +WRITE8_MEMBER(cinemat_state::sound_portb_w) { - cinemat_state *state = space.machine().driver_data(); /* watch for a 0->1 edge on bit 0 ("shift out") to advance the data pointer */ - if ((data & 1) != (state->m_last_portb_write & 1) && (data & 1) != 0) - state->m_sound_fifo_out = (state->m_sound_fifo_out + 1) % 16; + if ((data & 1) != (m_last_portb_write & 1) && (data & 1) != 0) + m_sound_fifo_out = (m_sound_fifo_out + 1) % 16; /* watch for a 0->1 edge of bit 1 ("hard reset") to reset the FIFO */ - if ((data & 2) != (state->m_last_portb_write & 2) && (data & 2) != 0) - state->m_sound_fifo_in = state->m_sound_fifo_out = 0; + if ((data & 2) != (m_last_portb_write & 2) && (data & 2) != 0) + m_sound_fifo_in = m_sound_fifo_out = 0; /* bit 2 controls the global mute */ - if ((data & 4) != (state->m_last_portb_write & 4)) - space.machine().sound().system_mute(data & 4); + if ((data & 4) != (m_last_portb_write & 4)) + machine().sound().system_mute(data & 4); /* remember the last value written */ - state->m_last_portb_write = data; + m_last_portb_write = data; } -static WRITE8_DEVICE_HANDLER( sound_output_w ) +WRITE8_MEMBER(cinemat_state::sound_output_w) { logerror("sound_output = %02X\n", data); } @@ -1376,10 +1373,10 @@ static const ay8910_interface demon_ay8910_interface_1 = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - DEVCB_HANDLER(sound_porta_r), - DEVCB_HANDLER(sound_portb_r), + DEVCB_DRIVER_MEMBER(cinemat_state,sound_porta_r), + DEVCB_DRIVER_MEMBER(cinemat_state,sound_portb_r), DEVCB_NULL, - DEVCB_HANDLER(sound_portb_w) + DEVCB_DRIVER_MEMBER(cinemat_state,sound_portb_w) }; static const ay8910_interface demon_ay8910_interface_3 = @@ -1389,7 +1386,7 @@ static const ay8910_interface demon_ay8910_interface_3 = DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, - DEVCB_HANDLER(sound_output_w) + DEVCB_DRIVER_MEMBER(cinemat_state,sound_output_w) }; diff --git a/src/mame/audio/copsnrob.c b/src/mame/audio/copsnrob.c index 7795f81b794..9bef723a5fd 100644 --- a/src/mame/audio/copsnrob.c +++ b/src/mame/audio/copsnrob.c @@ -688,7 +688,6 @@ DISCRETE_SOUND_END WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w) { - device_t *device = machine().device("discrete"); UINT8 latched_data = m_ic_h3_data; UINT8 special_data = data & 0x01; @@ -704,27 +703,27 @@ WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w) switch (offset) { case 0x00: - discrete_sound_w(device, space, COPSNROB_MOTOR3_INV, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_MOTOR3_INV, special_data); break; case 0x01: - discrete_sound_w(device, space, COPSNROB_MOTOR2_INV, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_MOTOR2_INV, special_data); break; case 0x02: - discrete_sound_w(device, space, COPSNROB_MOTOR1_INV, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_MOTOR1_INV, special_data); break; case 0x03: - discrete_sound_w(device, space, COPSNROB_MOTOR0_INV, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_MOTOR0_INV, special_data); break; case 0x04: - discrete_sound_w(device, space, COPSNROB_SCREECH_INV, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_SCREECH_INV, special_data); break; case 0x05: - discrete_sound_w(device, space, COPSNROB_CRASH_INV, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_CRASH_INV, special_data); break; case 0x06: @@ -733,7 +732,7 @@ WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w) break; case 0x07: - discrete_sound_w(device, space, COPSNROB_AUDIO_ENABLE, special_data); + discrete_sound_w(m_discrete, space, COPSNROB_AUDIO_ENABLE, special_data); //machine().sound().system_mute(special_data); break; diff --git a/src/mame/audio/crbaloon.c b/src/mame/audio/crbaloon.c index 4a7340f48d2..f5397435557 100644 --- a/src/mame/audio/crbaloon.c +++ b/src/mame/audio/crbaloon.c @@ -30,15 +30,15 @@ -WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq ) +WRITE8_MEMBER(crbaloon_state::crbaloon_audio_set_music_freq) { - discrete_sound_w(device, space, CRBALOON_MUSIC_DATA, data); + discrete_sound_w(m_discrete, space, CRBALOON_MUSIC_DATA, data); } -WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable ) +WRITE8_MEMBER(crbaloon_state::crbaloon_audio_set_music_enable) { - discrete_sound_w(device, space, CRBALOON_MUSIC_EN, data); + discrete_sound_w(m_discrete, space, CRBALOON_MUSIC_EN, data); } @@ -64,9 +64,9 @@ void crbaloon_audio_set_appear_enable(device_t *sn, int enabled) } -WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable ) +WRITE8_MEMBER(crbaloon_state::crbaloon_audio_set_laugh_enable) { - discrete_sound_w(device, space, CRBALOON_LAUGH_EN, data); + discrete_sound_w(m_discrete, space, CRBALOON_LAUGH_EN, data); } diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c index a1a9050996e..4614e970d23 100644 --- a/src/mame/audio/dkong.c +++ b/src/mame/audio/dkong.c @@ -1212,8 +1212,9 @@ Addresses found at @0x510, cpu2 */ -static WRITE8_DEVICE_HANDLER( M58817_command_w ) +WRITE8_MEMBER(dkong_state::M58817_command_w) { + device_t *device = machine().device("tms"); tms5110_ctl_w(device, space, 0, data & 0x0f); tms5110_pdc_w(device, (data>>4) & 0x01); /* FIXME 0x20 is CS */ @@ -1234,8 +1235,7 @@ WRITE8_MEMBER(dkong_state::dkong_voice_w) logerror("dkong_speech_w: 0x%02x\n", data); } -static DECLARE_READ8_DEVICE_HANDLER( dkong_voice_status_r ); -static READ8_DEVICE_HANDLER( dkong_voice_status_r ) +READ8_MEMBER(dkong_state::dkong_voice_status_r) { /* only provided for documentation purposes * not actually used @@ -1243,25 +1243,25 @@ static READ8_DEVICE_HANDLER( dkong_voice_status_r ) return 0; } -static READ8_DEVICE_HANDLER( dkong_tune_r ) +READ8_MEMBER(dkong_state::dkong_tune_r) { - dkong_state *state = space.machine().driver_data(); - UINT8 page = latch8_r(state->m_dev_vp2, space, 0) & 0x47; + device_t *device = machine().device("ls175.3d"); + UINT8 page = latch8_r(m_dev_vp2, space, 0) & 0x47; if ( page & 0x40 ) { - return (latch8_r(device, space, 0) & 0x0F) | (dkong_voice_status_r(device, space, 0) << 4); + return (latch8_r(device, space, 0) & 0x0F) | (dkong_voice_status_r(space, 0) << 4); } else { - /* printf("%s:rom access\n",space.machine().describe_context()); */ - return (state->m_snd_rom[0x1000 + (page & 7) * 256 + offset]); + /* printf("%s:rom access\n",machine().describe_context()); */ + return (m_snd_rom[0x1000 + (page & 7) * 256 + offset]); } } -static WRITE8_DEVICE_HANDLER( dkong_p1_w ) +WRITE8_MEMBER(dkong_state::dkong_p1_w) { - discrete_sound_w(device,space,DS_DAC,data); + discrete_sound_w(m_discrete,space,DS_DAC,data); } @@ -1291,11 +1291,11 @@ static ADDRESS_MAP_START( dkong_sound_map, AS_PROGRAM, 8, dkong_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( dkong_sound_io_map, AS_IO, 8, dkong_state ) - AM_RANGE(0x00, 0xFF) AM_DEVREAD_LEGACY("ls175.3d", dkong_tune_r) + AM_RANGE(0x00, 0xFF) AM_READ(dkong_tune_r) AM_WRITE(dkong_voice_w) - AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_DEVREAD_LEGACY("ls175.3d", dkong_tune_r) + AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(dkong_tune_r) AM_WRITE(dkong_voice_w) - AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("discrete", dkong_p1_w) /* only write to dac */ + AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(dkong_p1_w) /* only write to dac */ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_LATCH8_READWRITE("virtual_p2") AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_LATCH8_READBIT("ls259.6h", 5) AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_LATCH8_READBIT("ls259.6h", 4) @@ -1303,7 +1303,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dkongjr_sound_io_map, AS_IO, 8, dkong_state ) AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_LATCH8_READ("ls174.3d") - AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("discrete", dkong_p1_w) /* only write to dac */ + AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(dkong_p1_w) /* only write to dac */ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_LATCH8_READWRITE("virtual_p2") AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_LATCH8_READBIT("ls259.6h", 5) AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_LATCH8_READBIT("ls259.6h", 4) @@ -1311,9 +1311,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( radarscp1_sound_io_map, AS_IO, 8, dkong_state ) AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_DEVREAD_LEGACY("ls175.3d", latch8_r) - AM_RANGE(0x00, 0xff) AM_DEVWRITE_LEGACY("discrete", dkong_p1_w) /* DAC here */ + AM_RANGE(0x00, 0xff) AM_WRITE(dkong_p1_w) /* DAC here */ AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_LATCH8_READ("virtual_p1") - AM_DEVWRITE_LEGACY("tms", M58817_command_w) + AM_WRITE(M58817_command_w) AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_LATCH8_WRITE("virtual_p2") AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_LATCH8_READBIT("ls259.6h", 5) AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_LATCH8_READBIT("ls259.6h", 4) diff --git a/src/mame/audio/firetrk.c b/src/mame/audio/firetrk.c index 47272bfee4f..a8caeef5eda 100644 --- a/src/mame/audio/firetrk.c +++ b/src/mame/audio/firetrk.c @@ -9,57 +9,56 @@ #include "sound/discrete.h" -WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w ) +WRITE8_MEMBER(firetrk_state::firetrk_skid_reset_w) { - firetrk_state *state = space.machine().driver_data(); - state->m_skid[0] = 0; - state->m_skid[1] = 0; + m_skid[0] = 0; + m_skid[1] = 0; // also SUPERBUG_SKID_EN - discrete_sound_w(device, space, FIRETRUCK_SKID_EN, 1); + discrete_sound_w(m_discrete, space, FIRETRUCK_SKID_EN, 1); } -WRITE8_DEVICE_HANDLER( montecar_skid_reset_w ) +WRITE8_MEMBER(firetrk_state::montecar_skid_reset_w) { - discrete_sound_w(device, space, MONTECAR_SKID_EN, 1); + discrete_sound_w(m_discrete, space, MONTECAR_SKID_EN, 1); } -WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w ) +WRITE8_MEMBER(firetrk_state::firetrk_crash_snd_w) { // also SUPERBUG_CRASH_DATA and MONTECAR_CRASH_DATA - discrete_sound_w(device, space, FIRETRUCK_CRASH_DATA, data >> 4); + discrete_sound_w(m_discrete, space, FIRETRUCK_CRASH_DATA, data >> 4); } -WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w ) +WRITE8_MEMBER(firetrk_state::firetrk_skid_snd_w) { // also SUPERBUG_SKID_EN and MONTECAR_SKID_EN - discrete_sound_w(device, space, FIRETRUCK_SKID_EN, 0); + discrete_sound_w(m_discrete, space, FIRETRUCK_SKID_EN, 0); } -WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w ) +WRITE8_MEMBER(firetrk_state::firetrk_motor_snd_w) { // also MONTECAR_DRONE_MOTOR_DATA - discrete_sound_w(device, space, FIRETRUCK_SIREN_DATA, data >> 4); + discrete_sound_w(m_discrete, space, FIRETRUCK_SIREN_DATA, data >> 4); // also MONTECAR_MOTOR_DATA - discrete_sound_w(device, space, FIRETRUCK_MOTOR_DATA, data & 0x0f); + discrete_sound_w(m_discrete, space, FIRETRUCK_MOTOR_DATA, data & 0x0f); } -WRITE8_DEVICE_HANDLER( superbug_motor_snd_w ) +WRITE8_MEMBER(firetrk_state::superbug_motor_snd_w) { - discrete_sound_w(device, space, SUPERBUG_SPEED_DATA, data & 0x0f); + discrete_sound_w(m_discrete, space, SUPERBUG_SPEED_DATA, data & 0x0f); } -WRITE8_DEVICE_HANDLER( firetrk_xtndply_w ) +WRITE8_MEMBER(firetrk_state::firetrk_xtndply_w) { // also SUPERBUG_ASR_EN (extended play) - discrete_sound_w(device, space, FIRETRUCK_XTNDPLY_EN, data); + discrete_sound_w(m_discrete, space, FIRETRUCK_XTNDPLY_EN, data); } diff --git a/src/mame/audio/harddriv.c b/src/mame/audio/harddriv.c index 7b7f908c794..ef64ca14307 100644 --- a/src/mame/audio/harddriv.c +++ b/src/mame/audio/harddriv.c @@ -293,13 +293,12 @@ READ16_MEMBER(harddriv_state::hdsnddsp_get_bio) * *************************************/ -WRITE16_DEVICE_HANDLER( hdsnddsp_dac_w ) +WRITE16_MEMBER(harddriv_state::hdsnddsp_dac_w) { - harddriv_state *state = space.machine().driver_data(); /* DAC L */ - if (!state->m_dacmute) - downcast(device)->write_signed16(data ^ 0x8000); + if (!m_dacmute) + downcast(machine().device("dac"))->write_signed16(data ^ 0x8000); } diff --git a/src/mame/audio/llander.c b/src/mame/audio/llander.c index 085bc9426ff..a4c2b119bef 100644 --- a/src/mame/audio/llander.c +++ b/src/mame/audio/llander.c @@ -80,17 +80,17 @@ DISCRETE_SOUND_START(llander) DISCRETE_OUTPUT(NODE_90, 65534.0/(9.2+9.2+600+1000)) // Take the output from the mixer DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( llander_snd_reset_w ) +WRITE8_MEMBER(asteroid_state::llander_snd_reset_w) { /* Resets the LFSR that is used for the white noise generator */ - discrete_sound_w(device, space, LLANDER_NOISE_RESET, 0); /* Reset */ + discrete_sound_w(m_discrete, space, LLANDER_NOISE_RESET, 0); /* Reset */ } -WRITE8_DEVICE_HANDLER( llander_sounds_w ) +WRITE8_MEMBER(asteroid_state::llander_sounds_w) { - discrete_sound_w(device, space, LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */ - discrete_sound_w(device, space, LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */ - discrete_sound_w(device, space, LLANDER_TONE6K_EN, data & 0x20); /* Tone 6KHz enable */ - discrete_sound_w(device, space, LLANDER_EXPLOD_EN, data & 0x08); /* Explosion */ + discrete_sound_w(m_discrete, space, LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */ + discrete_sound_w(m_discrete, space, LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */ + discrete_sound_w(m_discrete, space, LLANDER_TONE6K_EN, data & 0x20); /* Tone 6KHz enable */ + discrete_sound_w(m_discrete, space, LLANDER_EXPLOD_EN, data & 0x08); /* Explosion */ } diff --git a/src/mame/audio/m79amb.c b/src/mame/audio/m79amb.c index bbdf646a486..cf2a27dcc74 100644 --- a/src/mame/audio/m79amb.c +++ b/src/mame/audio/m79amb.c @@ -320,24 +320,24 @@ DISCRETE_SOUND_END /* the ports are guessed from operation */ /* the schematics do not show the actual hookup */ -WRITE8_DEVICE_HANDLER( m79amb_8000_w ) +WRITE8_MEMBER(m79amb_state::m79amb_8000_w) { /* these values are not latched */ /* they are pulsed when the port is addressed */ /* the discrete system will just trigger from them */ - discrete_sound_w(device, space, M79AMB_SHOT_EN, data & 0x01); - discrete_sound_w(device, space, M79AMB_BOOM_EN, data & 0x02); - discrete_sound_w(device, space, M79AMB_THUD_EN, data & 0x04); + discrete_sound_w(m_discrete, space, M79AMB_SHOT_EN, data & 0x01); + discrete_sound_w(m_discrete, space, M79AMB_BOOM_EN, data & 0x02); + discrete_sound_w(m_discrete, space, M79AMB_THUD_EN, data & 0x04); }; -WRITE8_DEVICE_HANDLER( m79amb_8003_w ) +WRITE8_MEMBER(m79amb_state::m79amb_8003_w) { /* Self Test goes low on reset and lights LED */ /* LED goes off on pass */ output_set_value("SELF_TEST", data & 0x01); - discrete_sound_w(device, space, M79AMB_MC_REV_EN, data & 0x02); - discrete_sound_w(device, space, M79AMB_MC_CONTROL_EN, data & 0x04); - discrete_sound_w(device, space, M79AMB_TANK_TRUCK_JEEP_EN, data & 0x08); - discrete_sound_w(device, space, M79AMB_WHISTLE_B_EN, data & 0x10); - discrete_sound_w(device, space, M79AMB_WHISTLE_A_EN, data & 0x20); + discrete_sound_w(m_discrete, space, M79AMB_MC_REV_EN, data & 0x02); + discrete_sound_w(m_discrete, space, M79AMB_MC_CONTROL_EN, data & 0x04); + discrete_sound_w(m_discrete, space, M79AMB_TANK_TRUCK_JEEP_EN, data & 0x08); + discrete_sound_w(m_discrete, space, M79AMB_WHISTLE_B_EN, data & 0x10); + discrete_sound_w(m_discrete, space, M79AMB_WHISTLE_A_EN, data & 0x20); } diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c index 7f01dd1f7d1..ba4499224d0 100644 --- a/src/mame/audio/mario.c +++ b/src/mame/audio/mario.c @@ -492,9 +492,9 @@ READ8_MEMBER(mario_state::mario_sh_tune_r) return (SND[(0x1000 + (p2 & 0x0f) * 256 + offset) & mask]); } -static WRITE8_DEVICE_HANDLER( mario_sh_sound_w ) +WRITE8_MEMBER(mario_state::mario_sh_sound_w) { - discrete_sound_w(device, space, DS_DAC, data); + discrete_sound_w(m_discrete, space, DS_DAC, data); } WRITE8_MEMBER(mario_state::mario_sh_p1_w) @@ -534,15 +534,15 @@ WRITE8_MEMBER(mario_state::mario_sh_tuneselect_w) /* Sound 0 and 1 are pulsed !*/ /* Mario running sample */ -WRITE8_DEVICE_HANDLER( mario_sh1_w ) +WRITE8_MEMBER(mario_state::mario_sh1_w) { - discrete_sound_w(device, space, DS_SOUND0_INP, 0); + discrete_sound_w(m_discrete, space, DS_SOUND0_INP, 0); } /* Luigi running sample */ -WRITE8_DEVICE_HANDLER( mario_sh2_w ) +WRITE8_MEMBER(mario_state::mario_sh2_w) { - discrete_sound_w(device, space, DS_SOUND1_INP, 0); + discrete_sound_w(m_discrete, space, DS_SOUND1_INP, 0); } /* Misc samples */ @@ -593,7 +593,7 @@ static ADDRESS_MAP_START( mario_sound_map, AS_PROGRAM, 8, mario_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( mario_sound_io_map, AS_IO, 8, mario_state ) - AM_RANGE(0x00, 0xff) AM_READ(mario_sh_tune_r) AM_DEVWRITE_LEGACY("discrete", mario_sh_sound_w) + AM_RANGE(0x00, 0xff) AM_READ(mario_sh_tune_r) AM_WRITE(mario_sh_sound_w) AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(mario_sh_p1_r, mario_sh_p1_w) AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(mario_sh_p2_r, mario_sh_p2_w) AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(mario_sh_t0_r) diff --git a/src/mame/audio/micro3d.c b/src/mame/audio/micro3d.c index 223964ed72d..87e1007c126 100644 --- a/src/mame/audio/micro3d.c +++ b/src/mame/audio/micro3d.c @@ -393,8 +393,9 @@ READ8_MEMBER(micro3d_state::micro3d_sound_io_r) } } -WRITE8_DEVICE_HANDLER( micro3d_upd7759_w ) +WRITE8_MEMBER(micro3d_state::micro3d_upd7759_w) { + device_t *device = machine().device("upd7759"); upd7759_port_w(device, space, 0, data); upd7759_start_w(device, 0); upd7759_start_w(device, 1); diff --git a/src/mame/audio/mw8080bw.c b/src/mame/audio/mw8080bw.c index 5caefa38d7f..1c02645163c 100644 --- a/src/mame/audio/mw8080bw.c +++ b/src/mame/audio/mw8080bw.c @@ -83,19 +83,19 @@ static const discrete_op_amp_tvca_info midway_music_tvca_info = }; -WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w ) +WRITE8_MEMBER(mw8080bw_state::midway_tone_generator_lo_w) { - discrete_sound_w(device, space, MIDWAY_TONE_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, MIDWAY_TONE_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, MIDWAY_TONE_DATA_L, (data >> 1) & 0x1f); + discrete_sound_w(m_discrete, space, MIDWAY_TONE_DATA_L, (data >> 1) & 0x1f); /* D6 and D7 are not connected */ } -WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w ) +WRITE8_MEMBER(mw8080bw_state::midway_tone_generator_hi_w) { - discrete_sound_w(device, space, MIDWAY_TONE_DATA_H, data & 0x3f); + discrete_sound_w(m_discrete, space, MIDWAY_TONE_DATA_H, data & 0x3f); /* D6 and D7 are not connected */ } @@ -326,19 +326,19 @@ MACHINE_CONFIG_FRAGMENT( tornbase_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( tornbase_audio_w ) +WRITE8_MEMBER(mw8080bw_state::tornbase_audio_w) { - discrete_sound_w(device, space, TORNBASE_TONE_240_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, TORNBASE_TONE_240_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, TORNBASE_TONE_960_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, TORNBASE_TONE_960_EN, (data >> 1) & 0x01); - discrete_sound_w(device, space, TORNBASE_TONE_120_EN, (data >> 2) & 0x01); + discrete_sound_w(m_discrete, space, TORNBASE_TONE_120_EN, (data >> 2) & 0x01); /* if (data & 0x08) enable SIREN sound */ /* if (data & 0x10) enable CHEER sound */ - if (tornbase_get_cabinet_type(space.machine()) == TORNBASE_CAB_TYPE_UPRIGHT_OLD) + if (tornbase_get_cabinet_type(machine()) == TORNBASE_CAB_TYPE_UPRIGHT_OLD) { /* if (data & 0x20) enable WHISTLE sound */ @@ -351,7 +351,7 @@ WRITE8_DEVICE_HANDLER( tornbase_audio_w ) /* if (data & 0x40) enable WHISTLE sound */ } - coin_counter_w(space.machine(), 0, (data >> 7) & 0x01); + coin_counter_w(machine(), 0, (data >> 7) & 0x01); } @@ -820,21 +820,21 @@ MACHINE_CONFIG_FRAGMENT( boothill_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( boothill_audio_w ) +WRITE8_MEMBER(mw8080bw_state::boothill_audio_w) { /* D0 and D1 are not connected */ - coin_counter_w(space.machine(), 0, (data >> 2) & 0x01); + coin_counter_w(machine(), 0, (data >> 2) & 0x01); - discrete_sound_w(device, space, BOOTHILL_GAME_ON_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, BOOTHILL_GAME_ON_EN, (data >> 3) & 0x01); - discrete_sound_w(device, space, BOOTHILL_LEFT_SHOT_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, BOOTHILL_LEFT_SHOT_EN, (data >> 4) & 0x01); - discrete_sound_w(device, space, BOOTHILL_RIGHT_SHOT_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, BOOTHILL_RIGHT_SHOT_EN, (data >> 5) & 0x01); - discrete_sound_w(device, space, BOOTHILL_LEFT_HIT_EN, (data >> 6) & 0x01); + discrete_sound_w(m_discrete, space, BOOTHILL_LEFT_HIT_EN, (data >> 6) & 0x01); - discrete_sound_w(device, space, BOOTHILL_RIGHT_HIT_EN, (data >> 7) & 0x01); + discrete_sound_w(m_discrete, space, BOOTHILL_RIGHT_HIT_EN, (data >> 7) & 0x01); } @@ -1049,18 +1049,18 @@ MACHINE_CONFIG_FRAGMENT( checkmat_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( checkmat_audio_w ) +WRITE8_MEMBER(mw8080bw_state::checkmat_audio_w) { - discrete_sound_w(device, space, CHECKMAT_TONE_EN, data & 0x01); + discrete_sound_w(m_discrete, space, CHECKMAT_TONE_EN, data & 0x01); - discrete_sound_w(device, space, CHECKMAT_BOOM_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, CHECKMAT_BOOM_EN, (data >> 1) & 0x01); - coin_counter_w(space.machine(), 0, (data >> 2) & 0x01); + coin_counter_w(machine(), 0, (data >> 2) & 0x01); - space.machine().sound().system_enable((data >> 3) & 0x01); + machine().sound().system_enable((data >> 3) & 0x01); - discrete_sound_w(device, space, CHECKMAT_TONE_DATA_45, (data >> 4) & 0x03); - discrete_sound_w(device, space, CHECKMAT_TONE_DATA_67, (data >> 6) & 0x03); + discrete_sound_w(m_discrete, space, CHECKMAT_TONE_DATA_45, (data >> 4) & 0x03); + discrete_sound_w(m_discrete, space, CHECKMAT_TONE_DATA_67, (data >> 6) & 0x03); } @@ -1260,35 +1260,34 @@ MACHINE_CONFIG_FRAGMENT( desertgu_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( desertgu_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::desertgu_audio_1_w) { /* D0 and D1 are not connected */ - coin_counter_w(space.machine(), 0, (data >> 2) & 0x01); + coin_counter_w(machine(), 0, (data >> 2) & 0x01); - discrete_sound_w(device, space, DESERTGU_GAME_ON_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_GAME_ON_EN, (data >> 3) & 0x01); - discrete_sound_w(device, space, DESERTGU_RIFLE_SHOT_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_RIFLE_SHOT_EN, (data >> 4) & 0x01); - discrete_sound_w(device, space, DESERTGU_BOTTLE_HIT_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_BOTTLE_HIT_EN, (data >> 5) & 0x01); - discrete_sound_w(device, space, DESERTGU_ROAD_RUNNER_HIT_EN, (data >> 6) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_ROAD_RUNNER_HIT_EN, (data >> 6) & 0x01); - discrete_sound_w(device, space, DESERTGU_CREATURE_HIT_EN, (data >> 7) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_CREATURE_HIT_EN, (data >> 7) & 0x01); } -WRITE8_DEVICE_HANDLER( desertgu_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::desertgu_audio_2_w) { - mw8080bw_state *state = space.machine().driver_data(); - discrete_sound_w(device, space, DESERTGU_ROADRUNNER_BEEP_BEEP_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_ROADRUNNER_BEEP_BEEP_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, DESERTGU_TRIGGER_CLICK_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, DESERTGU_TRIGGER_CLICK_EN, (data >> 1) & 0x01); output_set_value("Player1_Gun_Recoil", (data >> 2) & 0x01); - state->m_desertgun_controller_select = (data >> 3) & 0x01; + m_desertgun_controller_select = (data >> 3) & 0x01; /* D4-D7 are not connected */ } @@ -1527,19 +1526,19 @@ MACHINE_CONFIG_FRAGMENT( dplay_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( dplay_audio_w ) +WRITE8_MEMBER(mw8080bw_state::dplay_audio_w) { - discrete_sound_w(device, space, DPLAY_TONE_ON_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, DPLAY_TONE_ON_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, DPLAY_CHEER_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, DPLAY_CHEER_EN, (data >> 1) & 0x01); - discrete_sound_w(device, space, DPLAY_SIREN_EN, (data >> 2) & 0x01); + discrete_sound_w(m_discrete, space, DPLAY_SIREN_EN, (data >> 2) & 0x01); - discrete_sound_w(device, space, DPLAY_WHISTLE_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, DPLAY_WHISTLE_EN, (data >> 3) & 0x01); - discrete_sound_w(device, space, DPLAY_GAME_ON_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, DPLAY_GAME_ON_EN, (data >> 4) & 0x01); - coin_counter_w(space.machine(), 0, (data >> 5) & 0x01); + coin_counter_w(machine(), 0, (data >> 5) & 0x01); /* D6 and D7 are not connected */ } @@ -1946,26 +1945,25 @@ WRITE8_MEMBER(mw8080bw_state::clowns_audio_1_w) } -WRITE8_DEVICE_HANDLER( clowns_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::clowns_audio_2_w) { - mw8080bw_state *state = space.machine().driver_data(); - UINT8 rising_bits = data & ~state->m_port_2_last; + UINT8 rising_bits = data & ~m_port_2_last; - discrete_sound_w(device, space, CLOWNS_POP_BOTTOM_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, CLOWNS_POP_BOTTOM_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, CLOWNS_POP_MIDDLE_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, CLOWNS_POP_MIDDLE_EN, (data >> 1) & 0x01); - discrete_sound_w(device, space, CLOWNS_POP_TOP_EN, (data >> 2) & 0x01); + discrete_sound_w(m_discrete, space, CLOWNS_POP_TOP_EN, (data >> 2) & 0x01); - space.machine().sound().system_enable((data >> 3) & 0x01); + machine().sound().system_enable((data >> 3) & 0x01); - discrete_sound_w(device, space, CLOWNS_SPRINGBOARD_HIT_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, CLOWNS_SPRINGBOARD_HIT_EN, (data >> 4) & 0x01); - if (rising_bits & 0x20) state->m_samples->start(0, 0); /* springboard miss */ + if (rising_bits & 0x20) m_samples->start(0, 0); /* springboard miss */ /* D6 and D7 are not connected */ - state->m_port_2_last = data; + m_port_2_last = data; } @@ -2302,32 +2300,31 @@ MACHINE_CONFIG_FRAGMENT( spacwalk_audio ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::spacwalk_audio_1_w) { - mw8080bw_state *state = space.machine().driver_data(); - coin_counter_w(space.machine(), 0, (data >> 0) & 0x01); + coin_counter_w(machine(), 0, (data >> 0) & 0x01); - state->m_clowns_controller_select = (data >> 1) & 0x01; + m_clowns_controller_select = (data >> 1) & 0x01; - space.machine().sound().system_enable((data >> 2) & 0x01); + machine().sound().system_enable((data >> 2) & 0x01); - discrete_sound_w(device, space, SPACWALK_SPACE_SHIP_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_SPACE_SHIP_EN, (data >> 3) & 0x01); } -WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::spacwalk_audio_2_w) { - discrete_sound_w(device, space, SPACWALK_TARGET_HIT_BOTTOM_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_TARGET_HIT_BOTTOM_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, SPACWALK_TARGET_HIT_MIDDLE_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_TARGET_HIT_MIDDLE_EN, (data >> 1) & 0x01); - discrete_sound_w(device, space, SPACWALK_TARGET_HIT_TOP_EN, (data >> 2) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_TARGET_HIT_TOP_EN, (data >> 2) & 0x01); - discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_HIT1_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_SPRINGBOARD_HIT1_EN, (data >> 3) & 0x01); - discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_HIT2_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_SPRINGBOARD_HIT2_EN, (data >> 4) & 0x01); - discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_MISS_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, SPACWALK_SPRINGBOARD_MISS_EN, (data >> 5) & 0x01); } @@ -2534,29 +2531,29 @@ MACHINE_CONFIG_FRAGMENT( shuffle_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( shuffle_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::shuffle_audio_1_w) { - discrete_sound_w(device, space, SHUFFLE_CLICK_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, SHUFFLE_CLICK_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, SHUFFLE_ROLLOVER_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, SHUFFLE_ROLLOVER_EN, (data >> 1) & 0x01); - space.machine().sound().system_enable((data >> 2) & 0x01); + machine().sound().system_enable((data >> 2) & 0x01); - discrete_sound_w(device, space, NODE_29, (data >> 3) & 0x07); + discrete_sound_w(m_discrete, space, NODE_29, (data >> 3) & 0x07); - discrete_sound_w(device, space, SHUFFLE_ROLLING_3_EN, (data >> 3) & 0x01); - discrete_sound_w(device, space, SHUFFLE_ROLLING_2_EN, (data >> 4) & 0x01); - discrete_sound_w(device, space, SHUFFLE_ROLLING_1_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, SHUFFLE_ROLLING_3_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, SHUFFLE_ROLLING_2_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, SHUFFLE_ROLLING_1_EN, (data >> 5) & 0x01); /* D6 and D7 are not connected */ } -WRITE8_DEVICE_HANDLER( shuffle_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::shuffle_audio_2_w) { - discrete_sound_w(device, space, SHUFFLE_FOUL_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, SHUFFLE_FOUL_EN, (data >> 0) & 0x01); - coin_counter_w(space.machine(), 0, (data >> 1) & 0x01); + coin_counter_w(machine(), 0, (data >> 1) & 0x01); /* D2-D7 are not connected */ } @@ -2714,20 +2711,20 @@ MACHINE_CONFIG_FRAGMENT( dogpatch_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( dogpatch_audio_w ) +WRITE8_MEMBER(mw8080bw_state::dogpatch_audio_w) { /* D0, D1 and D7 are not used */ - coin_counter_w(space.machine(), 0, (data >> 2) & 0x01); + coin_counter_w(machine(), 0, (data >> 2) & 0x01); - space.machine().sound().system_enable((data >> 3) & 0x01); - discrete_sound_w(device, space, DOGPATCH_GAME_ON_EN, (data >> 3) & 0x01); + machine().sound().system_enable((data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, DOGPATCH_GAME_ON_EN, (data >> 3) & 0x01); - discrete_sound_w(device, space, DOGPATCH_LEFT_SHOT_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, DOGPATCH_LEFT_SHOT_EN, (data >> 4) & 0x01); - discrete_sound_w(device, space, DOGPATCH_RIGHT_SHOT_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, DOGPATCH_RIGHT_SHOT_EN, (data >> 5) & 0x01); - discrete_sound_w(device, space, DOGPATCH_HIT_EN, (data >> 6) & 0x01); + discrete_sound_w(m_discrete, space, DOGPATCH_HIT_EN, (data >> 6) & 0x01); } @@ -3252,50 +3249,48 @@ MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::spcenctr_audio_1_w) { - space.machine().sound().system_enable((data >> 0) & 0x01); + machine().sound().system_enable((data >> 0) & 0x01); /* D1 is marked as 'OPTIONAL SWITCH VIDEO FOR COCKTAIL', but it is never set by the software */ - discrete_sound_w(device, space, SPCENCTR_CRASH_EN, (data >> 2) & 0x01); + discrete_sound_w(m_discrete, space, SPCENCTR_CRASH_EN, (data >> 2) & 0x01); /* D3-D7 are not connected */ } -WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::spcenctr_audio_2_w) { - mw8080bw_state *state = space.machine().driver_data(); /* set WIND SOUND FREQ(data & 0x0f) 0, if no wind */ - discrete_sound_w(device, space, SPCENCTR_EXPLOSION_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, SPCENCTR_EXPLOSION_EN, (data >> 4) & 0x01); - discrete_sound_w(device, space, SPCENCTR_PLAYER_SHOT_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, SPCENCTR_PLAYER_SHOT_EN, (data >> 5) & 0x01); /* D6 and D7 are not connected */ - state->m_port_2_last = data; + m_port_2_last = data; } -WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w ) +WRITE8_MEMBER(mw8080bw_state::spcenctr_audio_3_w) { - mw8080bw_state *state = space.machine().driver_data(); /* if (data & 0x01) enable SCREECH (hit the sides) sound */ - discrete_sound_w(device, space, SPCENCTR_ENEMY_SHIP_SHOT_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, SPCENCTR_ENEMY_SHIP_SHOT_EN, (data >> 1) & 0x01); - state->m_spcenctr_strobe_state = (data >> 2) & 0x01; + m_spcenctr_strobe_state = (data >> 2) & 0x01; output_set_value("LAMP", (data >> 3) & 0x01); - discrete_sound_w(device, space, SPCENCTR_BONUS_EN, (data >> 4) & 0x01); + discrete_sound_w(m_discrete, space, SPCENCTR_BONUS_EN, (data >> 4) & 0x01); - sn76477_enable_w(state->m_sn, (data >> 5) & 0x01); /* saucer sound */ + sn76477_enable_w(m_sn, (data >> 5) & 0x01); /* saucer sound */ /* D6 and D7 are not connected */ } @@ -3461,15 +3456,15 @@ MACHINE_CONFIG_FRAGMENT( bowler_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( bowler_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::bowler_audio_1_w) { /* D0 - selects controller on the cocktail PCB */ - coin_counter_w(space.machine(), 0, (data >> 1) & 0x01); + coin_counter_w(machine(), 0, (data >> 1) & 0x01); - space.machine().sound().system_enable((data >> 2) & 0x01); + machine().sound().system_enable((data >> 2) & 0x01); - discrete_sound_w(device, space, BOWLER_FOWL_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, BOWLER_FOWL_EN, (data >> 3) & 0x01); /* D4 - appears to be a screen flip, but it's shown unconnected on the schematics for both the @@ -4184,34 +4179,32 @@ MACHINE_CONFIG_FRAGMENT( invaders_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( invaders_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::invaders_audio_1_w) { - mw8080bw_state *state = space.machine().driver_data(); - sn76477_enable_w(state->m_sn, (~data >> 0) & 0x01); /* saucer sound */ + sn76477_enable_w(m_sn, (~data >> 0) & 0x01); /* saucer sound */ - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); - space.machine().sound().system_enable(data & 0x20); + machine().sound().system_enable(data & 0x20); /* D6 and D7 are not connected */ } -WRITE8_DEVICE_HANDLER( invaders_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::invaders_audio_2_w) { - mw8080bw_state *state = space.machine().driver_data(); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); /* the flip screen line is only connected on the cocktail PCB */ - if (invaders_is_cabinet_cocktail(space.machine())) + if (invaders_is_cabinet_cocktail(machine())) { - state->m_invaders_flip_screen = (data >> 5) & 0x01; + m_invaders_flip_screen = (data >> 5) & 0x01; } /* D6 and D7 are not connected */ @@ -4589,20 +4582,20 @@ MACHINE_CONFIG_FRAGMENT( blueshrk_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( blueshrk_audio_w ) +WRITE8_MEMBER(mw8080bw_state::blueshrk_audio_w) { - discrete_sound_w(device, space, BLUESHRK_GAME_ON_EN, (data >> 0) & 0x01); + discrete_sound_w(m_discrete, space, BLUESHRK_GAME_ON_EN, (data >> 0) & 0x01); - discrete_sound_w(device, space, BLUESHRK_SHOT_EN, (data >> 1) & 0x01); + discrete_sound_w(m_discrete, space, BLUESHRK_SHOT_EN, (data >> 1) & 0x01); - discrete_sound_w(device, space, BLUESHRK_HIT_EN, (data >> 2) & 0x01); + discrete_sound_w(m_discrete, space, BLUESHRK_HIT_EN, (data >> 2) & 0x01); - discrete_sound_w(device, space, BLUESHRK_SHARK_EN, (data >> 3) & 0x01); + discrete_sound_w(m_discrete, space, BLUESHRK_SHARK_EN, (data >> 3) & 0x01); /* if (data & 0x10) enable KILLED DIVER sound, this circuit doesn't appear to be on the schematics */ - discrete_sound_w(device, space, BLUESHRK_OCTOPUS_EN, (data >> 5) & 0x01); + discrete_sound_w(m_discrete, space, BLUESHRK_OCTOPUS_EN, (data >> 5) & 0x01); /* D6 and D7 are not connected */ } @@ -4817,51 +4810,49 @@ MACHINE_CONFIG_FRAGMENT( invad2ct_audio ) MACHINE_CONFIG_END -WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w ) +WRITE8_MEMBER(mw8080bw_state::invad2ct_audio_1_w) { - mw8080bw_state *state = space.machine().driver_data(); - sn76477_enable_w(state->m_sn1, (~data >> 0) & 0x01); /* saucer sound */ + sn76477_enable_w(m_sn1, (~data >> 0) & 0x01); /* saucer sound */ - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); - space.machine().sound().system_enable(data & 0x20); + machine().sound().system_enable(data & 0x20); /* D6 and D7 are not connected */ } -WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w ) +WRITE8_MEMBER(mw8080bw_state::invad2ct_audio_2_w) { - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); /* D5-D7 are not connected */ } -WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w ) +WRITE8_MEMBER(mw8080bw_state::invad2ct_audio_3_w) { - mw8080bw_state *state = space.machine().driver_data(); - sn76477_enable_w(state->m_sn2, (~data >> 0) & 0x01); /* saucer sound */ + sn76477_enable_w(m_sn2, (~data >> 0) & 0x01); /* saucer sound */ - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 2), data & 0x02); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 2), data & 0x04); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 2), data & 0x08); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 2), data & 0x10); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_MISSILE_EN, 2), data & 0x02); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 2), data & 0x04); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 2), data & 0x08); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 2), data & 0x10); /* D5-D7 are not connected */ } -WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w ) +WRITE8_MEMBER(mw8080bw_state::invad2ct_audio_4_w) { - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 2), data & 0x0f); - discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 2), data & 0x10); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_FLEET_DATA, 2), data & 0x0f); + discrete_sound_w(m_discrete, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 2), data & 0x10); /* D5-D7 are not connected */ } diff --git a/src/mame/audio/orbit.c b/src/mame/audio/orbit.c index 9ebb838792b..96229386e9c 100644 --- a/src/mame/audio/orbit.c +++ b/src/mame/audio/orbit.c @@ -13,26 +13,26 @@ * *************************************/ -WRITE8_DEVICE_HANDLER( orbit_note_w ) +WRITE8_MEMBER(orbit_state::orbit_note_w) { - discrete_sound_w(device, space, ORBIT_NOTE_FREQ, (~data) & 0xff); + discrete_sound_w(m_discrete, space, ORBIT_NOTE_FREQ, (~data) & 0xff); } -WRITE8_DEVICE_HANDLER( orbit_note_amp_w ) +WRITE8_MEMBER(orbit_state::orbit_note_amp_w) { - discrete_sound_w(device, space, ORBIT_ANOTE1_AMP, data & 0x0f); - discrete_sound_w(device, space, ORBIT_ANOTE2_AMP, data >> 4); + discrete_sound_w(m_discrete, space, ORBIT_ANOTE1_AMP, data & 0x0f); + discrete_sound_w(m_discrete, space, ORBIT_ANOTE2_AMP, data >> 4); } -WRITE8_DEVICE_HANDLER( orbit_noise_amp_w ) +WRITE8_MEMBER(orbit_state::orbit_noise_amp_w) { - discrete_sound_w(device, space, ORBIT_NOISE1_AMP, data & 0x0f); - discrete_sound_w(device, space, ORBIT_NOISE2_AMP, data >> 4); + discrete_sound_w(m_discrete, space, ORBIT_NOISE1_AMP, data & 0x0f); + discrete_sound_w(m_discrete, space, ORBIT_NOISE2_AMP, data >> 4); } -WRITE8_DEVICE_HANDLER( orbit_noise_rst_w ) +WRITE8_MEMBER(orbit_state::orbit_noise_rst_w) { - discrete_sound_w(device, space, ORBIT_NOISE_EN, 0); + discrete_sound_w(m_discrete, space, ORBIT_NOISE_EN, 0); } diff --git a/src/mame/audio/poolshrk.c b/src/mame/audio/poolshrk.c index b9730d4bfde..e8128659b65 100644 --- a/src/mame/audio/poolshrk.c +++ b/src/mame/audio/poolshrk.c @@ -155,22 +155,22 @@ DISCRETE_SOUND_END * *************************************/ -WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w ) +WRITE8_MEMBER(poolshrk_state::poolshrk_scratch_sound_w) { - discrete_sound_w(device, space, POOLSHRK_SCRATCH_SND, offset & 1); + discrete_sound_w(m_discrete, space, POOLSHRK_SCRATCH_SND, offset & 1); } -WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w ) +WRITE8_MEMBER(poolshrk_state::poolshrk_score_sound_w) { - discrete_sound_w(device, space, POOLSHRK_SCORE_EN, 1); /* this will trigger the sound code for 1 sample */ + discrete_sound_w(m_discrete, space, POOLSHRK_SCORE_EN, 1); /* this will trigger the sound code for 1 sample */ } -WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w ) +WRITE8_MEMBER(poolshrk_state::poolshrk_click_sound_w) { - discrete_sound_w(device, space, POOLSHRK_CLICK_EN, 1); /* this will trigger the sound code for 1 sample */ + discrete_sound_w(m_discrete, space, POOLSHRK_CLICK_EN, 1); /* this will trigger the sound code for 1 sample */ } -WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w ) +WRITE8_MEMBER(poolshrk_state::poolshrk_bump_sound_w) { - discrete_sound_w(device, space, POOLSHRK_BUMP_EN, offset & 1); + discrete_sound_w(m_discrete, space, POOLSHRK_BUMP_EN, offset & 1); } diff --git a/src/mame/audio/qix.c b/src/mame/audio/qix.c index 05627f605df..d951e100e6a 100644 --- a/src/mame/audio/qix.c +++ b/src/mame/audio/qix.c @@ -18,22 +18,22 @@ #define QIX_VOL_DATA_R NODE_04 -static WRITE_LINE_DEVICE_HANDLER( qix_pia_dint ); -static WRITE_LINE_DEVICE_HANDLER( qix_pia_sint ); + + /*************************************************************************** Audio handlers ***************************************************************************/ -static WRITE8_DEVICE_HANDLER( qix_dac_w ) +WRITE8_MEMBER(qix_state::qix_dac_w) { - discrete_sound_w(device, space, QIX_DAC_DATA, data); + discrete_sound_w(m_discrete, space, QIX_DAC_DATA, data); } -static WRITE8_DEVICE_HANDLER( qix_vol_w ) +WRITE8_MEMBER(qix_state::qix_vol_w) { - discrete_sound_w(device, space, QIX_VOL_DATA, data); + discrete_sound_w(m_discrete, space, QIX_VOL_DATA, data); } @@ -93,7 +93,7 @@ DISCRETE_SOUND_END * *************************************/ -static WRITE8_DEVICE_HANDLER( sndpia_2_warning_w ) +WRITE8_MEMBER(qix_state::sndpia_2_warning_w) { popmessage("PIA 5 write!!"); } @@ -106,17 +106,18 @@ static TIMER_CALLBACK( deferred_sndpia1_porta_w ) } -static WRITE8_DEVICE_HANDLER( sync_sndpia1_porta_w ) +WRITE8_MEMBER(qix_state::sync_sndpia1_porta_w) { + device_t *device = machine().device("sndpia1"); /* we need to synchronize this so the sound CPU doesn't drop anything important */ - space.machine().scheduler().synchronize(FUNC(deferred_sndpia1_porta_w), data, (void *)downcast(device)); + machine().scheduler().synchronize(FUNC(deferred_sndpia1_porta_w), data, (void *)downcast(device)); } -static WRITE8_DEVICE_HANDLER( slither_coinctl_w ) +WRITE8_MEMBER(qix_state::slither_coinctl_w) { - coin_lockout_w(space.machine(), 0, (~data >> 6) & 1); - coin_counter_w(space.machine(), 0, (data >> 5) & 1); + coin_lockout_w(machine(), 0, (~data >> 6) & 1); + coin_counter_w(machine(), 0, (data >> 5) & 1); } @@ -127,23 +128,23 @@ static WRITE8_DEVICE_HANDLER( slither_coinctl_w ) * *************************************/ -static WRITE_LINE_DEVICE_HANDLER( qix_pia_dint ) +WRITE_LINE_MEMBER(qix_state::qix_pia_dint) { - pia6821_device *pia = downcast(device); + pia6821_device *pia = downcast(machine().device("sndpia0")); int combined_state = pia->irq_a_state() | pia->irq_b_state(); /* DINT is connected to the data CPU's IRQ line */ - device->machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } -static WRITE_LINE_DEVICE_HANDLER( qix_pia_sint ) +WRITE_LINE_MEMBER(qix_state::qix_pia_sint) { - pia6821_device *pia = downcast(device); + pia6821_device *pia = downcast(machine().device("sndpia1")); int combined_state = pia->irq_a_state() | pia->irq_b_state(); /* SINT is connected to the sound CPU's IRQ line */ - device->machine().device("audiocpu")->execute().set_input_line(M6800_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(M6800_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -177,12 +178,12 @@ static const pia6821_interface qixsnd_pia_0_intf = DEVCB_NULL, /* line CB1 in */ DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ - DEVCB_DEVICE_HANDLER("sndpia1", sync_sndpia1_porta_w), /* port A out */ - DEVCB_DEVICE_HANDLER("discrete", qix_vol_w), /* port B out */ + DEVCB_DRIVER_MEMBER(qix_state,sync_sndpia1_porta_w), /* port A out */ + DEVCB_DRIVER_MEMBER(qix_state,qix_vol_w), /* port B out */ DEVCB_DEVICE_LINE_MEMBER("sndpia1", pia6821_device, ca1_w), /* line CA2 out */ DEVCB_DRIVER_MEMBER(qix_state,qix_flip_screen_w), /* port CB2 out */ - DEVCB_LINE(qix_pia_dint), /* IRQA */ - DEVCB_LINE(qix_pia_dint) /* IRQB */ + DEVCB_DRIVER_LINE_MEMBER(qix_state,qix_pia_dint), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(qix_state,qix_pia_dint) /* IRQB */ }; static const pia6821_interface qixsnd_pia_1_intf = @@ -194,11 +195,11 @@ static const pia6821_interface qixsnd_pia_1_intf = DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ DEVCB_DEVICE_MEMBER("sndpia0", pia6821_device, porta_w), /* port A out */ - DEVCB_DEVICE_HANDLER("discrete", qix_dac_w), /* port B out */ + DEVCB_DRIVER_MEMBER(qix_state,qix_dac_w), /* port B out */ DEVCB_DEVICE_LINE_MEMBER("sndpia0", pia6821_device, ca1_w), /* line CA2 out */ DEVCB_NULL, /* line CB2 out */ - DEVCB_LINE(qix_pia_sint), /* IRQA */ - DEVCB_LINE(qix_pia_sint) /* IRQB */ + DEVCB_DRIVER_LINE_MEMBER(qix_state,qix_pia_sint), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(qix_state,qix_pia_sint) /* IRQB */ }; static const pia6821_interface qixsnd_pia_2_intf = @@ -209,10 +210,10 @@ static const pia6821_interface qixsnd_pia_2_intf = DEVCB_NULL, /* line CB1 in */ DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ - DEVCB_HANDLER(sndpia_2_warning_w), /* port A out */ - DEVCB_HANDLER(sndpia_2_warning_w), /* port B out */ - DEVCB_HANDLER(sndpia_2_warning_w), /* line CA2 out */ - DEVCB_HANDLER(sndpia_2_warning_w), /* line CB2 out */ + DEVCB_DRIVER_MEMBER(qix_state,sndpia_2_warning_w), /* port A out */ + DEVCB_DRIVER_MEMBER(qix_state,sndpia_2_warning_w), /* port B out */ + DEVCB_DRIVER_MEMBER(qix_state,sndpia_2_warning_w), /* line CA2 out */ + DEVCB_DRIVER_MEMBER(qix_state,sndpia_2_warning_w), /* line CB2 out */ DEVCB_NULL, DEVCB_NULL }; @@ -226,11 +227,11 @@ static const pia6821_interface slithersnd_pia_0_intf = DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ DEVCB_NULL, /* port A out */ - DEVCB_HANDLER(slither_coinctl_w), /* port B out */ + DEVCB_DRIVER_MEMBER(qix_state,slither_coinctl_w), /* port B out */ DEVCB_NULL, /* line CA2 out */ DEVCB_DRIVER_MEMBER(qix_state,qix_flip_screen_w), /* port CB2 out */ - DEVCB_LINE(qix_pia_dint), /* IRQA */ - DEVCB_LINE(qix_pia_dint) /* IRQB */ + DEVCB_DRIVER_LINE_MEMBER(qix_state,qix_pia_dint), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(qix_state,qix_pia_dint) /* IRQB */ }; diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c index 77d23f6de45..8056984d3d7 100644 --- a/src/mame/audio/redalert.c +++ b/src/mame/audio/redalert.c @@ -40,7 +40,7 @@ * *************************************/ -static WRITE8_DEVICE_HANDLER( redalert_analog_w ) +WRITE8_MEMBER(redalert_state::redalert_analog_w) { /* this port triggers analog sounds D0 = Formation Aircraft? @@ -74,9 +74,9 @@ WRITE8_MEMBER(redalert_state::redalert_audio_command_w) } -static WRITE8_DEVICE_HANDLER( redalert_AY8910_w ) +WRITE8_MEMBER(redalert_state::redalert_AY8910_w) { - redalert_state *state = space.machine().driver_data(); + device_t *device = machine().device("aysnd"); /* BC2 is connected to a pull-up resistor, so BC2=1 always */ switch (data & 0x03) { @@ -86,7 +86,7 @@ static WRITE8_DEVICE_HANDLER( redalert_AY8910_w ) /* BC1=1, BDIR=0 : read from PSG */ case 0x01: - state->m_ay8910_latch_1 = ay8910_r(device, space, 0); + m_ay8910_latch_1 = ay8910_r(device, space, 0); break; /* BC1=0, BDIR=1 : write to PSG */ @@ -94,7 +94,7 @@ static WRITE8_DEVICE_HANDLER( redalert_AY8910_w ) case 0x02: case 0x03: default: - ay8910_data_address_w(device, space, data, state->m_ay8910_latch_2); + ay8910_data_address_w(device, space, data, m_ay8910_latch_2); break; } } @@ -119,14 +119,14 @@ static const ay8910_interface redalert_ay8910_interface = DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r), DEVCB_NULL, /* port A/B read */ DEVCB_NULL, - DEVCB_HANDLER(redalert_analog_w) /* port A/B write */ + DEVCB_DRIVER_MEMBER(redalert_state,redalert_analog_w) /* port A/B write */ }; static ADDRESS_MAP_START( redalert_audio_map, AS_PROGRAM, 8, redalert_state ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x0c00) AM_RAM - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0ffe) AM_READNOP AM_DEVWRITE_LEGACY("aysnd", redalert_AY8910_w) + AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0ffe) AM_READNOP AM_WRITE(redalert_AY8910_w) AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x0ffe) AM_READWRITE(redalert_ay8910_latch_1_r, redalert_ay8910_latch_2_w) AM_RANGE(0x2000, 0x6fff) AM_NOP AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_ROM @@ -159,15 +159,15 @@ WRITE8_MEMBER(redalert_state::redalert_voice_command_w) } -static WRITE_LINE_DEVICE_HANDLER( sod_callback ) +WRITE_LINE_MEMBER(redalert_state::sod_callback) { - hc55516_digit_w(device->machine().device("cvsd"), state); + hc55516_digit_w(machine().device("cvsd"), state); } -static READ_LINE_DEVICE_HANDLER( sid_callback ) +READ_LINE_MEMBER(redalert_state::sid_callback) { - return hc55516_clock_state_r(device->machine().device("cvsd")); + return hc55516_clock_state_r(machine().device("cvsd")); } @@ -175,8 +175,8 @@ static I8085_CONFIG( redalert_voice_i8085_config ) { DEVCB_NULL, /* STATUS changed callback */ DEVCB_NULL, /* INTE changed callback */ - DEVCB_LINE(sid_callback), /* SID changed callback (8085A only) */ - DEVCB_LINE(sod_callback) /* SOD changed callback (8085A only) */ + DEVCB_DRIVER_LINE_MEMBER(redalert_state,sid_callback), /* SID changed callback (8085A only) */ + DEVCB_DRIVER_LINE_MEMBER(redalert_state,sod_callback) /* SOD changed callback (8085A only) */ }; @@ -286,57 +286,54 @@ WRITE8_MEMBER(redalert_state::demoneye_audio_command_w) } -static WRITE8_DEVICE_HANDLER( demoneye_ay8910_latch_1_w ) +WRITE8_MEMBER(redalert_state::demoneye_ay8910_latch_1_w) { - redalert_state *state = space.machine().driver_data(); - state->m_ay8910_latch_1 = data; + m_ay8910_latch_1 = data; } -static READ8_DEVICE_HANDLER( demoneye_ay8910_latch_2_r ) +READ8_MEMBER(redalert_state::demoneye_ay8910_latch_2_r) { - redalert_state *state = space.machine().driver_data(); - return state->m_ay8910_latch_2; + return m_ay8910_latch_2; } -static WRITE8_DEVICE_HANDLER( demoneye_ay8910_data_w ) +WRITE8_MEMBER(redalert_state::demoneye_ay8910_data_w) { - redalert_state *state = space.machine().driver_data(); - device_t *ay1 = space.machine().device("ay1"); - device_t *ay2 = space.machine().device("ay2"); + device_t *ay1 = machine().device("ay1"); + device_t *ay2 = machine().device("ay2"); - switch (state->m_ay8910_latch_1 & 0x03) + switch (m_ay8910_latch_1 & 0x03) { case 0x00: - if (state->m_ay8910_latch_1 & 0x10) + if (m_ay8910_latch_1 & 0x10) ay8910_data_w(ay1, space, 0, data); - if (state->m_ay8910_latch_1 & 0x20) + if (m_ay8910_latch_1 & 0x20) ay8910_data_w(ay2, space, 0, data); break; case 0x01: - if (state->m_ay8910_latch_1 & 0x10) - state->m_ay8910_latch_2 = ay8910_r(ay1, space, 0); + if (m_ay8910_latch_1 & 0x10) + m_ay8910_latch_2 = ay8910_r(ay1, space, 0); - if (state->m_ay8910_latch_1 & 0x20) - state->m_ay8910_latch_2 = ay8910_r(ay2, space, 0); + if (m_ay8910_latch_1 & 0x20) + m_ay8910_latch_2 = ay8910_r(ay2, space, 0); break; case 0x03: - if (state->m_ay8910_latch_1 & 0x10) + if (m_ay8910_latch_1 & 0x10) ay8910_address_w(ay1, space, 0, data); - if (state->m_ay8910_latch_1 & 0x20) + if (m_ay8910_latch_1 & 0x20) ay8910_address_w(ay2, space, 0, data); break; default: - logerror("demoneye_ay8910_data_w called with latch %02X data %02X\n", state->m_ay8910_latch_1, data); + logerror("demoneye_ay8910_data_w called with latch %02X data %02X\n", m_ay8910_latch_1, data); break; } } @@ -363,14 +360,14 @@ static const ay8910_interface demoneye_ay8910_interface = static const pia6821_interface demoneye_pia_intf = { - DEVCB_HANDLER(demoneye_ay8910_latch_2_r), /* port A in */ + DEVCB_DRIVER_MEMBER(redalert_state,demoneye_ay8910_latch_2_r), /* port A in */ DEVCB_NULL, /* port B in */ DEVCB_NULL, /* line CA1 in */ DEVCB_NULL, /* line CB1 in */ DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ - DEVCB_HANDLER(demoneye_ay8910_data_w), /* port A out */ - DEVCB_HANDLER(demoneye_ay8910_latch_1_w), /* port B out */ + DEVCB_DRIVER_MEMBER(redalert_state,demoneye_ay8910_data_w), /* port A out */ + DEVCB_DRIVER_MEMBER(redalert_state,demoneye_ay8910_latch_1_w), /* port B out */ DEVCB_NULL, /* line CA2 out */ DEVCB_NULL, /* port CB2 out */ DEVCB_NULL, /* IRQA */ diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c index 94895676e42..328a3ec055c 100644 --- a/src/mame/audio/segag80r.c +++ b/src/mame/audio/segag80r.c @@ -376,8 +376,6 @@ WRITE8_MEMBER(segag80r_state::astrob_sound_w) static SOUND_START( sega005 ); static STREAM_UPDATE( sega005_stream_update ); static TIMER_CALLBACK( sega005_auto_timer ); -static DECLARE_WRITE8_DEVICE_HANDLER( sega005_sound_a_w ); -static DECLARE_WRITE8_DEVICE_HANDLER( sega005_sound_b_w ); /* 005 @@ -458,9 +456,9 @@ static const samples_interface sega005_samples_interface = static I8255A_INTERFACE( ppi8255_005_intf ) { DEVCB_NULL, /* Port A read */ - DEVCB_HANDLER(sega005_sound_a_w), /* Port A write */ + DEVCB_DRIVER_MEMBER(segag80r_state,sega005_sound_a_w), /* Port A write */ DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(sega005_sound_b_w), /* Port B write */ + DEVCB_DRIVER_MEMBER(segag80r_state,sega005_sound_b_w), /* Port B write */ DEVCB_NULL, /* Port C read */ DEVCB_NULL /* Port C write */ }; @@ -506,12 +504,11 @@ static SOUND_START( sega005 ) * *************************************/ -static WRITE8_DEVICE_HANDLER( sega005_sound_a_w ) +WRITE8_MEMBER(segag80r_state::sega005_sound_a_w) { - segag80r_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[0]; - state->m_sound_state[0] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[0]; + m_sound_state[0] = data; /* LARGE EXPL: channel 0 */ if ((diff & 0x01) && !(data & 0x01)) samples->start(0, 0); @@ -565,39 +562,38 @@ INLINE void sega005_update_sound_data(running_machine &machine) } -static WRITE8_DEVICE_HANDLER( sega005_sound_b_w ) +WRITE8_MEMBER(segag80r_state::sega005_sound_b_w) { - segag80r_state *state = space.machine().driver_data(); /* D6: manual timer clock (0->1) D5: 0 = manual timer, 1 = auto timer D4: 1 = hold/reset address counter to 0 D3-D0: upper 4 bits of ROM address */ - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; //mame_printf_debug("sound[%d] = %02X\n", 1, data); /* force a stream update */ - state->m_sega005_stream->update(); + m_sega005_stream->update(); /* ROM address */ - state->m_sound_addr = ((data & 0x0f) << 7) | (state->m_sound_addr & 0x7f); + m_sound_addr = ((data & 0x0f) << 7) | (m_sound_addr & 0x7f); /* reset both sound address and square wave counters */ if (data & 0x10) { - state->m_sound_addr &= 0x780; - state->m_square_state = 0; + m_sound_addr &= 0x780; + m_square_state = 0; } /* manual clock */ if ((diff & 0x40) && (data & 0x40) && !(data & 0x20) && !(data & 0x10)) - state->m_sound_addr = (state->m_sound_addr & 0x780) | ((state->m_sound_addr + 1) & 0x07f); + m_sound_addr = (m_sound_addr & 0x780) | ((m_sound_addr + 1) & 0x07f); /* update the sound data */ - sega005_update_sound_data(space.machine()); + sega005_update_sound_data(machine()); } @@ -783,16 +779,9 @@ WRITE8_MEMBER(segag80r_state::spaceod_sound_w) *************************************/ static SOUND_START( monsterb ); -static DECLARE_WRITE8_DEVICE_HANDLER( monsterb_sound_a_w ); -static DECLARE_WRITE8_DEVICE_HANDLER( monsterb_sound_b_w ); -static DECLARE_READ8_DEVICE_HANDLER( n7751_status_r ); -static DECLARE_WRITE8_DEVICE_HANDLER( n7751_command_w ); + static DECLARE_WRITE8_DEVICE_HANDLER( n7751_rom_control_w ); - -static DECLARE_WRITE8_DEVICE_HANDLER( n7751_p2_w ); - - /* Monster Bash @@ -839,7 +828,7 @@ static ADDRESS_MAP_START( monsterb_7751_portmap, AS_IO, 8, segag80r_state ) AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(n7751_command_r) AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(n7751_rom_r) AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_device, write_unsigned8) - AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_DEVWRITE_LEGACY("audio_8243", n7751_p2_w) + AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(n7751_p2_w) AM_RANGE(MCS48_PORT_PROG, MCS48_PORT_PROG) AM_DEVWRITE_LEGACY("audio_8243", i8243_prog_w) ADDRESS_MAP_END @@ -854,11 +843,11 @@ ADDRESS_MAP_END static I8255A_INTERFACE( monsterb_ppi_intf ) { DEVCB_NULL, /* Port A read */ - DEVCB_HANDLER(monsterb_sound_a_w), /* Port A write */ + DEVCB_DRIVER_MEMBER(segag80r_state,monsterb_sound_a_w), /* Port A write */ DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(monsterb_sound_b_w), /* Port B write */ - DEVCB_HANDLER(n7751_status_r), /* Port C read */ - DEVCB_HANDLER(n7751_command_w) /* Port C write */ + DEVCB_DRIVER_MEMBER(segag80r_state,monsterb_sound_b_w), /* Port B write */ + DEVCB_DRIVER_MEMBER(segag80r_state,n7751_status_r), /* Port C read */ + DEVCB_DRIVER_MEMBER(segag80r_state,n7751_command_w) /* Port C write */ }; @@ -911,16 +900,16 @@ static SOUND_START( monsterb ) * *************************************/ -static WRITE8_DEVICE_HANDLER( monsterb_sound_a_w ) +WRITE8_MEMBER(segag80r_state::monsterb_sound_a_w) { - device_t *tms = space.machine().device("music"); + device_t *tms = machine().device("music"); int enable_val; /* Lower four data lines get decoded into 13 control lines */ tms36xx_note_w(tms, 0, data & 15); /* Top four data lines address an 82S123 ROM that enables/disables voices */ - enable_val = space.machine().root_device().memregion("prom")->base()[(data & 0xF0) >> 4]; + enable_val = machine().root_device().memregion("prom")->base()[(data & 0xF0) >> 4]; tms3617_enable_w(tms, enable_val >> 2); } @@ -932,12 +921,11 @@ static WRITE8_DEVICE_HANDLER( monsterb_sound_a_w ) * *************************************/ -static WRITE8_DEVICE_HANDLER( monsterb_sound_b_w ) +WRITE8_MEMBER(segag80r_state::monsterb_sound_b_w) { - segag80r_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; /* SHOT: channel 0 */ if ((diff & 0x01) && !(data & 0x01)) samples->start(0, 0); @@ -956,25 +944,23 @@ static WRITE8_DEVICE_HANDLER( monsterb_sound_b_w ) * *************************************/ -static READ8_DEVICE_HANDLER( n7751_status_r ) +READ8_MEMBER(segag80r_state::n7751_status_r) { - segag80r_state *state = space.machine().driver_data(); - return state->m_n7751_busy << 4; + return m_n7751_busy << 4; } -static WRITE8_DEVICE_HANDLER( n7751_command_w ) +WRITE8_MEMBER(segag80r_state::n7751_command_w) { - segag80r_state *state = space.machine().driver_data(); /* Z80 7751 control port D0-D2 = connected to 7751 port C D3 = /INT line */ - state->m_n7751_command = data & 0x07; - space.machine().device("audiocpu")->execute().set_input_line(0, ((data & 0x08) == 0) ? ASSERT_LINE : CLEAR_LINE); - space.machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); + m_n7751_command = data & 0x07; + machine().device("audiocpu")->execute().set_input_line(0, ((data & 0x08) == 0) ? ASSERT_LINE : CLEAR_LINE); + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); } @@ -1028,15 +1014,15 @@ READ8_MEMBER(segag80r_state::n7751_command_r) } -static WRITE8_DEVICE_HANDLER( n7751_p2_w ) +WRITE8_MEMBER(segag80r_state::n7751_p2_w) { - segag80r_state *state = space.machine().driver_data(); + device_t *device = machine().device("audio_8243"); /* write to P2; low 4 bits go to 8243 */ i8243_p2_w(device, space, offset, data & 0x0f); /* output of bit $80 indicates we are ready (1) or busy (0) */ /* no other outputs are used */ - state->m_n7751_busy = data >> 7; + m_n7751_busy = data >> 7; } diff --git a/src/mame/audio/senjyo.c b/src/mame/audio/senjyo.c index b25f0af4fae..c26cbe31043 100644 --- a/src/mame/audio/senjyo.c +++ b/src/mame/audio/senjyo.c @@ -12,17 +12,16 @@ const z80_daisy_config senjyo_daisy_chain[] = /* z80 pio */ -static READ8_DEVICE_HANDLER( pio_pa_r ) +READ8_MEMBER(senjyo_state::pio_pa_r) { - senjyo_state *state = space.machine().driver_data(); - return state->m_sound_cmd; + return m_sound_cmd; } Z80PIO_INTERFACE( senjyo_pio_intf ) { DEVCB_CPU_INPUT_LINE("sub", INPUT_LINE_IRQ0), - DEVCB_HANDLER(pio_pa_r), + DEVCB_DRIVER_MEMBER(senjyo_state,pio_pa_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, diff --git a/src/mame/audio/skyraid.c b/src/mame/audio/skyraid.c index 7a97a33b3d5..bba258f9747 100644 --- a/src/mame/audio/skyraid.c +++ b/src/mame/audio/skyraid.c @@ -283,7 +283,7 @@ DISCRETE_SOUND_START( skyraid ) DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( skyraid_sound_w ) +WRITE8_MEMBER(skyraid_state::skyraid_sound_w) { /* BIT0 => PLANE SWEEP */ /* BIT1 => MISSILE */ @@ -292,10 +292,10 @@ WRITE8_DEVICE_HANDLER( skyraid_sound_w ) /* BIT4 => PLANE ON */ /* BIT5 => ATTRACT */ - discrete_sound_w(device, space, SKYRAID_PLANE_SWEEP_EN, data & 0x01); - discrete_sound_w(device, space, SKYRAID_MISSILE_EN, data & 0x02); - discrete_sound_w(device, space, SKYRAID_EXPLOSION_EN, data & 0x04); - set_led_status(space.machine(), 0, !(data & 0x08)); - discrete_sound_w(device, space, SKYRAID_PLANE_ON_EN, data & 0x10); - discrete_sound_w(device, space, SKYRAID_ATTRACT_EN, data & 0x20); + discrete_sound_w(m_discrete, space, SKYRAID_PLANE_SWEEP_EN, data & 0x01); + discrete_sound_w(m_discrete, space, SKYRAID_MISSILE_EN, data & 0x02); + discrete_sound_w(m_discrete, space, SKYRAID_EXPLOSION_EN, data & 0x04); + set_led_status(machine(), 0, !(data & 0x08)); + discrete_sound_w(m_discrete, space, SKYRAID_PLANE_ON_EN, data & 0x10); + discrete_sound_w(m_discrete, space, SKYRAID_ATTRACT_EN, data & 0x20); } diff --git a/src/mame/audio/spiders.c b/src/mame/audio/spiders.c index fb1a837026e..0a3e8c89d29 100644 --- a/src/mame/audio/spiders.c +++ b/src/mame/audio/spiders.c @@ -172,32 +172,32 @@ DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( spiders_audio_command_w ) +WRITE8_MEMBER(spiders_state::spiders_audio_command_w) { - pia6821_device *pia = downcast(device); + pia6821_device *pia = downcast(machine().device("pia4")); pia->set_a_input(data & 0xf8, 0); pia->ca1_w(data & 0x80 ? 1 : 0); } -WRITE8_DEVICE_HANDLER( spiders_audio_a_w ) +WRITE8_MEMBER(spiders_state::spiders_audio_a_w) { - discrete_sound_w(device, space, SPIDER_WEB_SOUND_MOD_DATA, 1 + (data & 4) * 8 + (data & 2) * 4 + (data & 1) * 2); + discrete_sound_w(m_discrete, space, SPIDER_WEB_SOUND_MOD_DATA, 1 + (data & 4) * 8 + (data & 2) * 4 + (data & 1) * 2); } -WRITE8_DEVICE_HANDLER( spiders_audio_b_w ) +WRITE8_MEMBER(spiders_state::spiders_audio_b_w) { - discrete_sound_w(device, space, SPIDERS_WEB_SOUND_DATA, data); + discrete_sound_w(m_discrete, space, SPIDERS_WEB_SOUND_DATA, data); } -WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w ) +WRITE8_MEMBER(spiders_state::spiders_audio_ctrl_w) { - discrete_sound_w(device, space, SPIDERS_FIRE_EN, data & 0x10 ? 1 : 0); - discrete_sound_w(device, space, SPIDERS_EXP_EN, data & 0x08 ? 1 : 0); - discrete_sound_w(device, space, SPIDERS_SUPER_WEB_EXPL_EN, data & 0x04 ? 1 : 0); - discrete_sound_w(device, space, SPIDERS_SUPER_WEB_EN, data & 0x02 ? 1 : 0); - discrete_sound_w(device, space, SPIDERS_X_EN, data & 0x01 ? 1 : 0); + discrete_sound_w(m_discrete, space, SPIDERS_FIRE_EN, data & 0x10 ? 1 : 0); + discrete_sound_w(m_discrete, space, SPIDERS_EXP_EN, data & 0x08 ? 1 : 0); + discrete_sound_w(m_discrete, space, SPIDERS_SUPER_WEB_EXPL_EN, data & 0x04 ? 1 : 0); + discrete_sound_w(m_discrete, space, SPIDERS_SUPER_WEB_EN, data & 0x02 ? 1 : 0); + discrete_sound_w(m_discrete, space, SPIDERS_X_EN, data & 0x01 ? 1 : 0); } diff --git a/src/mame/audio/sprint8.c b/src/mame/audio/sprint8.c index 2fa5a29cddf..06900a09800 100644 --- a/src/mame/audio/sprint8.c +++ b/src/mame/audio/sprint8.c @@ -293,22 +293,22 @@ DISCRETE_SOUND_START( sprint8 ) DISCRETE_SOUND_END -WRITE8_DEVICE_HANDLER( sprint8_crash_w ) +WRITE8_MEMBER(sprint8_state::sprint8_crash_w) { - discrete_sound_w(device, space, SPRINT8_CRASH_EN, data & 0x01); + discrete_sound_w(m_discrete, space, SPRINT8_CRASH_EN, data & 0x01); } -WRITE8_DEVICE_HANDLER( sprint8_screech_w ) +WRITE8_MEMBER(sprint8_state::sprint8_screech_w) { - discrete_sound_w(device, space, SPRINT8_SCREECH_EN, data & 0x01); + discrete_sound_w(m_discrete, space, SPRINT8_SCREECH_EN, data & 0x01); } -WRITE8_DEVICE_HANDLER( sprint8_attract_w ) +WRITE8_MEMBER(sprint8_state::sprint8_attract_w) { - discrete_sound_w(device, space, SPRINT8_ATTRACT_EN, data & 0x01); + discrete_sound_w(m_discrete, space, SPRINT8_ATTRACT_EN, data & 0x01); } -WRITE8_DEVICE_HANDLER( sprint8_motor_w ) +WRITE8_MEMBER(sprint8_state::sprint8_motor_w) { - discrete_sound_w(device, space, NODE_RELATIVE(SPRINT8_MOTOR1_EN, offset & 0x07), data & 0x01); + discrete_sound_w(m_discrete, space, NODE_RELATIVE(SPRINT8_MOTOR1_EN, offset & 0x07), data & 0x01); } diff --git a/src/mame/audio/starwars.c b/src/mame/audio/starwars.c index ae9668c15e4..54c5d1e3583 100644 --- a/src/mame/audio/starwars.c +++ b/src/mame/audio/starwars.c @@ -29,7 +29,7 @@ SOUND_START( starwars ) * *************************************/ -static READ8_DEVICE_HANDLER( r6532_porta_r ) +READ8_MEMBER(starwars_state::r6532_porta_r) { /* Configured as follows: */ /* d7 (in) Main Ready Flag */ @@ -42,14 +42,15 @@ static READ8_DEVICE_HANDLER( r6532_porta_r ) /* d1 (out) TMS5220 Not Read */ /* d0 (out) TMS5220 Not Write */ /* Note: bit 4 is always set to avoid sound self test */ - UINT8 olddata = riot6532_porta_in_get(device); + UINT8 olddata = riot6532_porta_in_get(machine().device("riot")); - return (olddata & 0xc0) | 0x10 | (tms5220_readyq_r(space.machine().device("tms")) << 2); + return (olddata & 0xc0) | 0x10 | (tms5220_readyq_r(machine().device("tms")) << 2); } -static WRITE8_DEVICE_HANDLER( r6532_porta_w ) +WRITE8_MEMBER(starwars_state::r6532_porta_w) { + device_t *device = machine().device("tms"); /* handle 5220 read */ tms5220_rsq_w(device, (data & 2)>>1); /* handle 5220 write */ @@ -57,19 +58,19 @@ static WRITE8_DEVICE_HANDLER( r6532_porta_w ) } -static WRITE_LINE_DEVICE_HANDLER( snd_interrupt ) +WRITE_LINE_MEMBER(starwars_state::snd_interrupt) { - device->machine().device("audiocpu")->execute().set_input_line(M6809_IRQ_LINE, state); + machine().device("audiocpu")->execute().set_input_line(M6809_IRQ_LINE, state); } const riot6532_interface starwars_riot6532_intf = { - DEVCB_HANDLER(r6532_porta_r), + DEVCB_DRIVER_MEMBER(starwars_state,r6532_porta_r), DEVCB_DEVICE_HANDLER("tms", tms5220_status_r), - DEVCB_DEVICE_HANDLER("tms", r6532_porta_w), + DEVCB_DRIVER_MEMBER(starwars_state,r6532_porta_w), DEVCB_DEVICE_HANDLER("tms", tms5220_data_w), - DEVCB_LINE(snd_interrupt) + DEVCB_DRIVER_LINE_MEMBER(starwars_state,snd_interrupt) }; diff --git a/src/mame/audio/subs.c b/src/mame/audio/subs.c index 77302a72c6a..b996bbbb097 100644 --- a/src/mame/audio/subs.c +++ b/src/mame/audio/subs.c @@ -12,30 +12,30 @@ sub sound functions ***************************************************************************/ -WRITE8_DEVICE_HANDLER( subs_sonar1_w ) +WRITE8_MEMBER(subs_state::subs_sonar1_w) { - discrete_sound_w(device, space, SUBS_SONAR1_EN, offset & 0x01); + discrete_sound_w(m_discrete, space, SUBS_SONAR1_EN, offset & 0x01); } -WRITE8_DEVICE_HANDLER( subs_sonar2_w ) +WRITE8_MEMBER(subs_state::subs_sonar2_w) { - discrete_sound_w(device, space, SUBS_SONAR2_EN, offset & 0x01); + discrete_sound_w(m_discrete, space, SUBS_SONAR2_EN, offset & 0x01); } -WRITE8_DEVICE_HANDLER( subs_crash_w ) +WRITE8_MEMBER(subs_state::subs_crash_w) { - discrete_sound_w(device, space, SUBS_CRASH_EN, offset & 0x01); + discrete_sound_w(m_discrete, space, SUBS_CRASH_EN, offset & 0x01); } -WRITE8_DEVICE_HANDLER( subs_explode_w ) +WRITE8_MEMBER(subs_state::subs_explode_w) { - discrete_sound_w(device, space, SUBS_EXPLODE_EN, offset & 0x01); + discrete_sound_w(m_discrete, space, SUBS_EXPLODE_EN, offset & 0x01); } -WRITE8_DEVICE_HANDLER( subs_noise_reset_w ) +WRITE8_MEMBER(subs_state::subs_noise_reset_w) { /* Pulse noise reset */ - discrete_sound_w(device, space, SUBS_NOISE_RESET, 0); + discrete_sound_w(m_discrete, space, SUBS_NOISE_RESET, 0); } diff --git a/src/mame/audio/suna8.c b/src/mame/audio/suna8.c index 8ff04514cce..820b9c6a7f3 100644 --- a/src/mame/audio/suna8.c +++ b/src/mame/audio/suna8.c @@ -11,41 +11,38 @@ #include "includes/suna8.h" -WRITE8_DEVICE_HANDLER( suna8_play_samples_w ) +WRITE8_MEMBER(suna8_state::suna8_play_samples_w) { - suna8_state *state = space.machine().driver_data(); if( data ) { - samples_device *samples = downcast(device); + samples_device *samples = downcast(machine().device("samples")); if( ~data & 0x10 ) { - samples->start_raw(0, &state->m_samplebuf[0x800*state->m_sample], 0x0800, 4000); + samples->start_raw(0, &m_samplebuf[0x800*m_sample], 0x0800, 4000); } else if( ~data & 0x08 ) { - state->m_sample &= 3; - samples->start_raw(0, &state->m_samplebuf[0x800*(state->m_sample+7)], 0x0800, 4000); + m_sample &= 3; + samples->start_raw(0, &m_samplebuf[0x800*(m_sample+7)], 0x0800, 4000); } } } -WRITE8_DEVICE_HANDLER( rranger_play_samples_w ) +WRITE8_MEMBER(suna8_state::rranger_play_samples_w) { - suna8_state *state = space.machine().driver_data(); if( data ) { - if(( state->m_sample != 0 ) && ( ~data & 0x30 )) // don't play state->m_sample zero when the bit is active + if(( m_sample != 0 ) && ( ~data & 0x30 )) // don't play m_sample zero when the bit is active { - samples_device *samples = downcast(device); - samples->start_raw(0, &state->m_samplebuf[0x800*state->m_sample], 0x0800, 4000); + samples_device *samples = downcast(machine().device("samples")); + samples->start_raw(0, &m_samplebuf[0x800*m_sample], 0x0800, 4000); } } } -WRITE8_DEVICE_HANDLER( suna8_samples_number_w ) +WRITE8_MEMBER(suna8_state::suna8_samples_number_w) { - suna8_state *state = space.machine().driver_data(); - state->m_sample = data & 0xf; + m_sample = data & 0xf; } SAMPLES_START( suna8_sh_start ) diff --git a/src/mame/audio/turbo.c b/src/mame/audio/turbo.c index 44c280c6672..7a40f1dc302 100644 --- a/src/mame/audio/turbo.c +++ b/src/mame/audio/turbo.c @@ -69,16 +69,15 @@ if (!((data >> 4) & 1)) mame_printf_debug("/TRIG4\n"); * *************************************/ -WRITE8_DEVICE_HANDLER( turbo_sound_a_w ) +WRITE8_MEMBER(turbo_state::turbo_sound_a_w) { #if (!DISCRETE_TEST) - samples_device *samples = space.machine().device("samples"); + samples_device *samples = machine().device("samples"); #endif - turbo_state *state = space.machine().driver_data(); #if (!DISCRETE_TEST) - UINT8 diff = data ^ state->m_sound_state[0]; + UINT8 diff = data ^ m_sound_state[0]; #endif - state->m_sound_state[0] = data; + m_sound_state[0] = data; #if (!DISCRETE_TEST) @@ -98,7 +97,7 @@ WRITE8_DEVICE_HANDLER( turbo_sound_a_w ) if ((diff & 0x10) && !(data & 0x10)) samples->start(1, 3); /* OSEL0 */ - state->m_turbo_osel = (state->m_turbo_osel & 6) | ((data >> 5) & 1); + m_turbo_osel = (m_turbo_osel & 6) | ((data >> 5) & 1); /* /SLIP: channel 2 */ if ((diff & 0x40) && !(data & 0x40)) samples->start(2, 4); @@ -107,31 +106,30 @@ WRITE8_DEVICE_HANDLER( turbo_sound_a_w ) if ((diff & 0x80) && !(data & 0x80)) samples->start(3, 5); /* update any samples */ - turbo_update_samples(state, samples); + turbo_update_samples(this, samples); #else - if (((data ^ state->m_last_sound_a) & 0x1e) && (state->m_last_sound_a & 0x1e) != 0x1e) - space.machine().scheduler().timer_set(attotime::from_hz(20000), FUNC(update_sound_a), data); + if (((data ^ m_last_sound_a) & 0x1e) && (m_last_sound_a & 0x1e) != 0x1e) + machine().scheduler().timer_set(attotime::from_hz(20000), FUNC(update_sound_a), data); else update_sound_a(data); - state->m_last_sound_a = data; + m_last_sound_a = data; #endif } -WRITE8_DEVICE_HANDLER( turbo_sound_b_w ) +WRITE8_MEMBER(turbo_state::turbo_sound_b_w) { - samples_device *samples = space.machine().device("samples"); - turbo_state *state = space.machine().driver_data(); - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; /* ACC0-ACC5 */ - state->m_turbo_accel = data & 0x3f; - output_set_value("tachometer", state->m_turbo_accel); + m_turbo_accel = data & 0x3f; + output_set_value("tachometer", m_turbo_accel); /* /AMBU: channel 4 */ if ((diff & 0x40) && !(data & 0x40) && !samples->playing(4)) samples->start(4, 8, true); @@ -141,26 +139,25 @@ WRITE8_DEVICE_HANDLER( turbo_sound_b_w ) if ((diff & 0x80) && !(data & 0x80)) samples->start(2, 6); /* update any samples */ - turbo_update_samples(state, samples); + turbo_update_samples(this, samples); } -WRITE8_DEVICE_HANDLER( turbo_sound_c_w ) +WRITE8_MEMBER(turbo_state::turbo_sound_c_w) { - samples_device *samples = space.machine().device("samples"); - turbo_state *state = space.machine().driver_data(); + samples_device *samples = machine().device("samples"); /* OSEL1-2 */ - state->m_turbo_osel = (state->m_turbo_osel & 1) | ((data & 3) << 1); + m_turbo_osel = (m_turbo_osel & 1) | ((data & 3) << 1); /* BSEL0-1 */ - state->m_turbo_bsel = (data >> 2) & 3; + m_turbo_bsel = (data >> 2) & 3; /* SPEED0-3 */ output_set_value("speed", (data >> 4) & 0x0f); /* update any samples */ - turbo_update_samples(state, samples); + turbo_update_samples(this, samples); } @@ -295,10 +292,9 @@ MACHINE_CONFIG_END * *************************************/ -WRITE8_DEVICE_HANDLER( subroc3d_sound_a_w ) +WRITE8_MEMBER(turbo_state::subroc3d_sound_a_w) { - turbo_state *state = space.machine().driver_data(); - state->m_sound_state[0] = data; + m_sound_state[0] = data; /* DIS0-3 contained in bits 0-3 */ /* DIR0-2 contained in bits 4-6 */ @@ -325,68 +321,66 @@ INLINE void subroc3d_update_volume(samples_device *samples, int leftchan, UINT8 } -WRITE8_DEVICE_HANDLER( subroc3d_sound_b_w ) +WRITE8_MEMBER(turbo_state::subroc3d_sound_b_w) { - samples_device *samples = space.machine().device("samples"); - turbo_state *state = space.machine().driver_data(); - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; /* bit 0 latches direction/volume for missile */ if ((diff & 0x01) && (data & 0x01)) { - state->m_subroc3d_mdis = state->m_sound_state[0] & 0x0f; - state->m_subroc3d_mdir = (state->m_sound_state[0] >> 4) & 0x07; + m_subroc3d_mdis = m_sound_state[0] & 0x0f; + m_subroc3d_mdir = (m_sound_state[0] >> 4) & 0x07; if (!samples->playing(0)) { samples->start(0, 0, true); samples->start(1, 0, true); } - subroc3d_update_volume(samples, 0, state->m_subroc3d_mdis, state->m_subroc3d_mdir); + subroc3d_update_volume(samples, 0, m_subroc3d_mdis, m_subroc3d_mdir); } /* bit 1 latches direction/volume for torpedo */ if ((diff & 0x02) && (data & 0x02)) { - state->m_subroc3d_tdis = state->m_sound_state[0] & 0x0f; - state->m_subroc3d_tdir = (state->m_sound_state[0] >> 4) & 0x07; + m_subroc3d_tdis = m_sound_state[0] & 0x0f; + m_subroc3d_tdir = (m_sound_state[0] >> 4) & 0x07; if (!samples->playing(2)) { samples->start(2, 1, true); samples->start(3, 1, true); } - subroc3d_update_volume(samples, 2, state->m_subroc3d_tdis, state->m_subroc3d_tdir); + subroc3d_update_volume(samples, 2, m_subroc3d_tdis, m_subroc3d_tdir); } /* bit 2 latches direction/volume for fighter */ if ((diff & 0x04) && (data & 0x04)) { - state->m_subroc3d_fdis = state->m_sound_state[0] & 0x0f; - state->m_subroc3d_fdir = (state->m_sound_state[0] >> 4) & 0x07; + m_subroc3d_fdis = m_sound_state[0] & 0x0f; + m_subroc3d_fdir = (m_sound_state[0] >> 4) & 0x07; if (!samples->playing(4)) { samples->start(4, 2, true); samples->start(5, 2, true); } - subroc3d_update_volume(samples, 4, state->m_subroc3d_fdis, state->m_subroc3d_fdir); + subroc3d_update_volume(samples, 4, m_subroc3d_fdis, m_subroc3d_fdir); } /* bit 3 latches direction/volume for hit */ if ((diff & 0x08) && (data & 0x08)) { - state->m_subroc3d_hdis = state->m_sound_state[0] & 0x0f; - state->m_subroc3d_hdir = (state->m_sound_state[0] >> 4) & 0x07; - subroc3d_update_volume(samples, 6, state->m_subroc3d_hdis, state->m_subroc3d_hdir); + m_subroc3d_hdis = m_sound_state[0] & 0x0f; + m_subroc3d_hdir = (m_sound_state[0] >> 4) & 0x07; + subroc3d_update_volume(samples, 6, m_subroc3d_hdis, m_subroc3d_hdir); } } -WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w ) +WRITE8_MEMBER(turbo_state::subroc3d_sound_c_w) { - samples_device *samples = space.machine().device("samples"); - turbo_state *state = space.machine().driver_data(); - UINT8 diff = data ^ state->m_sound_state[2]; - state->m_sound_state[2] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[2]; + m_sound_state[2] = data; /* /FIRE TRIG */ /* FIRE SELECT */ @@ -400,8 +394,8 @@ WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w ) /* /HIT TRIG -> HIT.L/R: channels 6+7 */ if ((diff & 0x08) && (data & 0x08)) { - samples->start(6, (state->m_sound_state[0] & 0x80) ? 4 : 3); - samples->start(7, (state->m_sound_state[0] & 0x80) ? 4 : 3); + samples->start(6, (m_sound_state[0] & 0x80) ? 4 : 3); + samples->start(7, (m_sound_state[0] & 0x80) ? 4 : 3); } /* /ALARM TRIG -> ALARM.M: channel 10 */ @@ -415,7 +409,7 @@ WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w ) samples->set_volume(11, (data & 0x40) ? 0 : 1.0); /* /GAME START */ - space.machine().sound().system_mute(data & 0x80); + machine().sound().system_mute(data & 0x80); } @@ -505,12 +499,11 @@ static void buckrog_update_samples(turbo_state *state, samples_device *samples) } -WRITE8_DEVICE_HANDLER( buckrog_sound_a_w ) +WRITE8_MEMBER(turbo_state::buckrog_sound_a_w) { - samples_device *samples = space.machine().device("samples"); - turbo_state *state = space.machine().driver_data(); - UINT8 diff = data ^ state->m_sound_state[0]; - state->m_sound_state[0] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[0]; + m_sound_state[0] = data; /* clock HIT DIS from bits 0-2 */ if ((diff & 0x10) && (data & 0x10)) @@ -519,8 +512,8 @@ WRITE8_DEVICE_HANDLER( buckrog_sound_a_w ) /* clock ACC from bits 0-3 */ if ((diff & 0x20) && (data & 0x20)) { - state->m_buckrog_myship = data & 0x0f; - buckrog_update_samples(state, samples); + m_buckrog_myship = data & 0x0f; + buckrog_update_samples(this, samples); } /* /ALARM0: channel 0 */ @@ -531,12 +524,11 @@ WRITE8_DEVICE_HANDLER( buckrog_sound_a_w ) } -WRITE8_DEVICE_HANDLER( buckrog_sound_b_w ) +WRITE8_MEMBER(turbo_state::buckrog_sound_b_w) { - samples_device *samples = space.machine().device("samples"); - turbo_state *state = space.machine().driver_data(); - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; /* /ALARM3: channel 0 */ if ((diff & 0x01) && !(data & 0x01)) samples->start(0, 2); @@ -554,7 +546,7 @@ WRITE8_DEVICE_HANDLER( buckrog_sound_b_w ) if ((diff & 0x10) && !(data & 0x10)) { samples->start(3, 7); - buckrog_update_samples(state, samples); + buckrog_update_samples(this, samples); } /* /REBOUND: channel 4 */ @@ -564,12 +556,12 @@ WRITE8_DEVICE_HANDLER( buckrog_sound_b_w ) if ((diff & 0x40) && (data & 0x40) && !samples->playing(5)) { samples->start(5, 8, true); - buckrog_update_samples(state, samples); + buckrog_update_samples(this, samples); } if ((diff & 0x40) && !(data & 0x40) && samples->playing(5)) samples->stop(5); /* GAME ON */ - space.machine().sound().system_enable(data & 0x80); + machine().sound().system_enable(data & 0x80); } diff --git a/src/mame/audio/zaxxon.c b/src/mame/audio/zaxxon.c index d53eb569d2a..dae483102a1 100644 --- a/src/mame/audio/zaxxon.c +++ b/src/mame/audio/zaxxon.c @@ -110,12 +110,11 @@ MACHINE_CONFIG_END * *************************************/ -WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w ) +WRITE8_MEMBER(zaxxon_state::zaxxon_sound_a_w) { - zaxxon_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[0]; - state->m_sound_state[0] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[0]; + m_sound_state[0] = data; /* PLAYER SHIP A/B: volume */ samples->set_volume(10, 0.5 + 0.157 * (data & 0x03)); @@ -146,12 +145,11 @@ WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w ) } -WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w ) +WRITE8_MEMBER(zaxxon_state::zaxxon_sound_b_w) { - zaxxon_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; /* S-EXP: channel 4 */ if ((diff & 0x10) && !(data & 0x10)) samples->start(4, 4); @@ -164,12 +162,11 @@ WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w ) } -WRITE8_DEVICE_HANDLER( zaxxon_sound_c_w ) +WRITE8_MEMBER(zaxxon_state::zaxxon_sound_c_w) { - zaxxon_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[2]; - state->m_sound_state[2] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[2]; + m_sound_state[2] = data; /* SHOT: channel 7 */ if ((diff & 0x01) && !(data & 0x01)) samples->start(7, 7); @@ -221,12 +218,11 @@ MACHINE_CONFIG_END * *************************************/ -WRITE8_DEVICE_HANDLER( congo_sound_b_w ) +WRITE8_MEMBER(zaxxon_state::congo_sound_b_w) { - zaxxon_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[1]; - state->m_sound_state[1] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[1]; + m_sound_state[1] = data; /* bit 7 = mute */ @@ -235,12 +231,11 @@ WRITE8_DEVICE_HANDLER( congo_sound_b_w ) } -WRITE8_DEVICE_HANDLER( congo_sound_c_w ) +WRITE8_MEMBER(zaxxon_state::congo_sound_c_w) { - zaxxon_state *state = space.machine().driver_data(); - samples_device *samples = space.machine().device("samples"); - UINT8 diff = data ^ state->m_sound_state[2]; - state->m_sound_state[2] = data; + samples_device *samples = machine().device("samples"); + UINT8 diff = data ^ m_sound_state[2]; + m_sound_state[2] = data; /* BASS DRUM: channel 1 */ if ((diff & 0x01) && !(data & 0x01)) samples->start(1, 1); diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 33f542c220a..3709416472a 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -470,8 +470,8 @@ static ADDRESS_MAP_START( astropal_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1") AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ_PORT("IN3") - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", invaders_audio_1_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", invaders_audio_2_w) + AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w) + AM_RANGE(0x05, 0x05) AM_WRITE(invaders_audio_2_w) AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) ADDRESS_MAP_END @@ -1393,11 +1393,11 @@ MACHINE_START_MEMBER(_8080bw_state,polaris) static ADDRESS_MAP_START( polaris_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") - AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("discrete", polaris_sh_port_1_w) + AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE(polaris_sh_port_1_w) AM_RANGE(0x03, 0x03) AM_DEVREADWRITE_LEGACY("mb14241", mb14241_shift_result_r, mb14241_shift_data_w) - AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("discrete", polaris_sh_port_2_w) + AM_RANGE(0x04, 0x04) AM_WRITE(polaris_sh_port_2_w) AM_RANGE(0x05, 0x05) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", polaris_sh_port_3_w) + AM_RANGE(0x06, 0x06) AM_WRITE(polaris_sh_port_3_w) ADDRESS_MAP_END @@ -1748,7 +1748,7 @@ static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) AM_RANGE(0x05, 0x05) AM_WRITE(indianbt_sh_port_2_w) AM_RANGE(0x06, 0x06) AM_WRITENOP /* sound ? */ - AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("discrete", indianbt_sh_port_3_w) + AM_RANGE(0x07, 0x07) AM_WRITE(indianbt_sh_port_3_w) ADDRESS_MAP_END @@ -2103,9 +2103,9 @@ static ADDRESS_MAP_START( vortex_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) - AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("discrete", invaders_audio_1_w) + AM_RANGE(0x01, 0x01) AM_WRITE(invaders_audio_1_w) AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("discrete", invaders_audio_2_w) + AM_RANGE(0x07, 0x07) AM_WRITE(invaders_audio_2_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c index a503034739e..5aafded6348 100644 --- a/src/mame/drivers/asteroid.c +++ b/src/mame/drivers/asteroid.c @@ -245,10 +245,10 @@ static ADDRESS_MAP_START( asteroid_map, AS_PROGRAM, 8, asteroid_state ) AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w) AM_RANGE(0x3200, 0x3200) AM_WRITE(asteroid_bank_switch_w) AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3600, 0x3600) AM_DEVWRITE_LEGACY("discrete", asteroid_explode_w) - AM_RANGE(0x3a00, 0x3a00) AM_DEVWRITE_LEGACY("discrete", asteroid_thump_w) - AM_RANGE(0x3c00, 0x3c05) AM_DEVWRITE_LEGACY("discrete", asteroid_sounds_w) - AM_RANGE(0x3e00, 0x3e00) AM_DEVWRITE_LEGACY("discrete", asteroid_noise_reset_w) + AM_RANGE(0x3600, 0x3600) AM_WRITE(asteroid_explode_w) + AM_RANGE(0x3a00, 0x3a00) AM_WRITE(asteroid_thump_w) + AM_RANGE(0x3c00, 0x3c05) AM_WRITE(asteroid_sounds_w) + AM_RANGE(0x3e00, 0x3e00) AM_WRITE(asteroid_noise_reset_w) AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x4000) AM_RANGE(0x5000, 0x57ff) AM_ROM /* vector rom */ AM_RANGE(0x6800, 0x7fff) AM_ROM @@ -268,13 +268,13 @@ static ADDRESS_MAP_START( astdelux_map, AS_PROGRAM, 8, asteroid_state ) AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w) AM_RANGE(0x3200, 0x323f) AM_DEVWRITE("earom", atari_vg_earom_device, write) AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3600, 0x3600) AM_DEVWRITE_LEGACY("discrete", asteroid_explode_w) + AM_RANGE(0x3600, 0x3600) AM_WRITE(asteroid_explode_w) AM_RANGE(0x3a00, 0x3a00) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w) AM_RANGE(0x3c00, 0x3c01) AM_WRITE(astdelux_led_w) - AM_RANGE(0x3c03, 0x3c03) AM_DEVWRITE_LEGACY("discrete", astdelux_sounds_w) + AM_RANGE(0x3c03, 0x3c03) AM_WRITE(astdelux_sounds_w) AM_RANGE(0x3c04, 0x3c04) AM_WRITE(astdelux_bank_switch_w) AM_RANGE(0x3c05, 0x3c07) AM_WRITE(astdelux_coin_counter_w) - AM_RANGE(0x3e00, 0x3e00) AM_DEVWRITE_LEGACY("discrete", asteroid_noise_reset_w) + AM_RANGE(0x3e00, 0x3e00) AM_WRITE(asteroid_noise_reset_w) AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x4000) AM_RANGE(0x4800, 0x57ff) AM_ROM /* vector rom */ AM_RANGE(0x6000, 0x7fff) AM_ROM @@ -291,8 +291,8 @@ static ADDRESS_MAP_START( llander_map, AS_PROGRAM, 8, asteroid_state ) AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w) AM_RANGE(0x3200, 0x3200) AM_WRITE(llander_led_w) AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3c00, 0x3c00) AM_DEVWRITE_LEGACY("discrete", llander_sounds_w) - AM_RANGE(0x3e00, 0x3e00) AM_DEVWRITE_LEGACY("discrete", llander_snd_reset_w) + AM_RANGE(0x3c00, 0x3c00) AM_WRITE(llander_sounds_w) + AM_RANGE(0x3e00, 0x3e00) AM_WRITE(llander_snd_reset_w) AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x4000) AM_RANGE(0x4800, 0x5fff) AM_ROM /* vector rom */ AM_RANGE(0x6000, 0x7fff) AM_ROM diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c index 8ad7b3a7ed4..905d9d6cbd2 100644 --- a/src/mame/drivers/avalnche.c +++ b/src/mame/drivers/avalnche.c @@ -117,12 +117,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, avalnche_state ) AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READNOP AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE(watchdog_reset_w) AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w) - AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE_LEGACY("discrete", avalnche_attract_enable_w) + AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_WRITE(avalnche_attract_enable_w) AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE(avalance_video_invert_w) AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_2_lamp_w) - AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_DEVWRITE_LEGACY("discrete", avalnche_audio_w) + AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_WRITE(avalnche_audio_w) AM_RANGE(0x4007, 0x4007) AM_MIRROR(0x0ff8) AM_WRITE(avalance_start_lamp_w) - AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_DEVWRITE_LEGACY("discrete", avalnche_noise_amplitude_w) + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_WRITE(avalnche_noise_amplitude_w) AM_RANGE(0x6000, 0x7fff) AM_ROM ADDRESS_MAP_END @@ -135,10 +135,10 @@ static ADDRESS_MAP_START( catch_map, AS_PROGRAM, 8, avalnche_state ) AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READNOP AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE(watchdog_reset_w) AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w) -// AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE_LEGACY("discrete", avalnche_attract_enable_w) /* It is attract_enable just like avalnche, but not hooked up yet. */ +// AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_WRITE(avalnche_attract_enable_w) /* It is attract_enable just like avalnche, but not hooked up yet. */ AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE(avalance_video_invert_w) AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_2_lamp_w) - AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(catch_audio_w) + AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_WRITE(catch_audio_w) AM_RANGE(0x4007, 0x4007) AM_MIRROR(0x0ff8) AM_WRITE(avalance_start_lamp_w) AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_WRITE(catch_coin_counter_w) AM_RANGE(0x7000, 0x7fff) AM_ROM diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c index eb999714e7c..685e6dd1741 100644 --- a/src/mame/drivers/blockade.c +++ b/src/mame/drivers/blockade.c @@ -126,7 +126,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( main_io_map, AS_IO, 8, blockade_state ) AM_RANGE(0x01, 0x01) AM_READWRITE(blockade_input_port_0_r, blockade_coin_latch_w) AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") - AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("discrete", blockade_sound_freq_w) + AM_RANGE(0x02, 0x02) AM_WRITE(blockade_sound_freq_w) AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2") AM_RANGE(0x04, 0x04) AM_WRITE(blockade_env_on_w) AM_RANGE(0x08, 0x08) AM_WRITE(blockade_env_off_w) diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c index 4d8b843fecb..5da7b71a682 100644 --- a/src/mame/drivers/bsktball.c +++ b/src/mame/drivers/bsktball.c @@ -80,15 +80,15 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bsktball_state ) AM_RANGE(0x0802, 0x0802) AM_READ_PORT("IN1") AM_RANGE(0x0803, 0x0803) AM_READ_PORT("DSW") AM_RANGE(0x1000, 0x1000) AM_WRITENOP /* Timer Reset */ - AM_RANGE(0x1010, 0x1010) AM_DEVWRITE_LEGACY("discrete", bsktball_bounce_w) /* Crowd Amp / Bounce */ + AM_RANGE(0x1010, 0x1010) AM_WRITE(bsktball_bounce_w) /* Crowd Amp / Bounce */ AM_RANGE(0x1022, 0x1023) AM_WRITENOP /* Coin Counter */ AM_RANGE(0x1024, 0x1025) AM_WRITE(bsktball_led1_w) /* LED 1 */ AM_RANGE(0x1026, 0x1027) AM_WRITE(bsktball_led2_w) /* LED 2 */ AM_RANGE(0x1028, 0x1029) AM_WRITE(bsktball_ld1_w) /* LD 1 */ AM_RANGE(0x102a, 0x102b) AM_WRITE(bsktball_ld2_w) /* LD 2 */ - AM_RANGE(0x102c, 0x102d) AM_DEVWRITE_LEGACY("discrete", bsktball_noise_reset_w) /* Noise Reset */ + AM_RANGE(0x102c, 0x102d) AM_WRITE(bsktball_noise_reset_w) /* Noise Reset */ AM_RANGE(0x102e, 0x102f) AM_WRITE(bsktball_nmion_w) /* NMI On */ - AM_RANGE(0x1030, 0x1030) AM_DEVWRITE_LEGACY("discrete", bsktball_note_w) /* Music Ckt Note Dvsr */ + AM_RANGE(0x1030, 0x1030) AM_WRITE(bsktball_note_w) /* Music Ckt Note Dvsr */ AM_RANGE(0x1800, 0x1bbf) AM_RAM_WRITE(bsktball_videoram_w) AM_SHARE("videoram") /* DISPLAY */ AM_RANGE(0x1bc0, 0x1bff) AM_RAM AM_SHARE("motion") AM_RANGE(0x1c00, 0x1cff) AM_RAM diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c index ff1a3881fab..36e7a1ff6c8 100644 --- a/src/mame/drivers/bzone.c +++ b/src/mame/drivers/bzone.c @@ -311,7 +311,7 @@ static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8, bzone_state ) AM_RANGE(0x1810, 0x1810) AM_DEVREAD_LEGACY("mathbox", mathbox_lo_r) AM_RANGE(0x1818, 0x1818) AM_DEVREAD_LEGACY("mathbox", mathbox_hi_r) AM_RANGE(0x1820, 0x182f) AM_DEVREADWRITE("pokey", pokey_device, read, write) - AM_RANGE(0x1840, 0x1840) AM_DEVWRITE_LEGACY("discrete", bzone_sounds_w) + AM_RANGE(0x1840, 0x1840) AM_WRITE(bzone_sounds_w) AM_RANGE(0x1860, 0x187f) AM_DEVWRITE_LEGACY("mathbox", mathbox_go_w) AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000) AM_RANGE(0x3000, 0x7fff) AM_ROM diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c index 9e5707a4b99..18e2fb73c34 100644 --- a/src/mame/drivers/canyon.c +++ b/src/mame/drivers/canyon.c @@ -108,12 +108,12 @@ WRITE8_MEMBER(canyon_state::canyon_led_w) static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, canyon_state ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM - AM_RANGE(0x0400, 0x0401) AM_DEVWRITE_LEGACY("discrete", canyon_motor_w) - AM_RANGE(0x0500, 0x0500) AM_DEVWRITE_LEGACY("discrete", canyon_explode_w) + AM_RANGE(0x0400, 0x0401) AM_WRITE(canyon_motor_w) + AM_RANGE(0x0500, 0x0500) AM_WRITE(canyon_explode_w) AM_RANGE(0x0501, 0x0501) AM_WRITE(watchdog_reset_w) /* watchdog, disabled in service mode */ - AM_RANGE(0x0600, 0x0603) AM_DEVWRITE_LEGACY("discrete", canyon_whistle_w) + AM_RANGE(0x0600, 0x0603) AM_WRITE(canyon_whistle_w) AM_RANGE(0x0680, 0x0683) AM_WRITE(canyon_led_w) - AM_RANGE(0x0700, 0x0703) AM_DEVWRITE_LEGACY("discrete", canyon_attract_w) + AM_RANGE(0x0700, 0x0703) AM_WRITE(canyon_attract_w) AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(canyon_videoram_w) AM_SHARE("videoram") AM_RANGE(0x1000, 0x17ff) AM_READ(canyon_switches_r) AM_WRITENOP /* sloppy code writes here */ AM_RANGE(0x1800, 0x1fff) AM_READ(canyon_options_r) diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c index f48ae100ba2..8cc9979822a 100644 --- a/src/mame/drivers/circus.c +++ b/src/mame/drivers/circus.c @@ -266,7 +266,6 @@ void circus_state::machine_start() m_maincpu = machine().device("maincpu"); m_samples = machine().device("samples"); - m_discrete = machine().device("discrete"); save_item(NAME(m_clown_x)); save_item(NAME(m_clown_y)); diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c index f90d0bc4a46..084406325d0 100644 --- a/src/mame/drivers/circusc.c +++ b/src/mame/drivers/circusc.c @@ -61,7 +61,6 @@ void circusc_state::machine_start() m_audiocpu = machine().device("audiocpu"); m_dac = machine().device("dac"); - m_discrete = machine().device("fltdisc"); save_item(NAME(m_sn_latch)); } diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c index cbad9c243d6..ca9ea7c1466 100644 --- a/src/mame/drivers/crbaloon.c +++ b/src/mame/drivers/crbaloon.c @@ -156,7 +156,6 @@ READ8_MEMBER(crbaloon_state::pc3259_r) WRITE8_MEMBER(crbaloon_state::port_sound_w) { - device_t *discrete = machine().device("discrete"); device_t *sn = machine().device("snsnd"); /* D0 - interrupt enable - also goes to PC3259 as /HTCTRL */ @@ -167,7 +166,7 @@ WRITE8_MEMBER(crbaloon_state::port_sound_w) machine().sound().system_enable((data & 0x02) ? TRUE : FALSE); /* D2 - unlabeled - music enable */ - crbaloon_audio_set_music_enable(discrete, space, 0, (data & 0x04) ? TRUE : FALSE); + crbaloon_audio_set_music_enable(space, 0, (data & 0x04) ? TRUE : FALSE); /* D3 - EXPLOSION */ crbaloon_audio_set_explosion_enable(sn, (data & 0x08) ? TRUE : FALSE); @@ -179,7 +178,7 @@ WRITE8_MEMBER(crbaloon_state::port_sound_w) crbaloon_audio_set_appear_enable(sn, (data & 0x20) ? TRUE : FALSE); /* D6 - unlabeled - laugh enable */ - crbaloon_audio_set_laugh_enable(discrete, space, 0, (data & 0x40) ? TRUE : FALSE); + crbaloon_audio_set_laugh_enable(space, 0, (data & 0x40) ? TRUE : FALSE); /* D7 - unlabeled - goes to PC3259 pin 16 */ @@ -221,7 +220,7 @@ static ADDRESS_MAP_START( main_io_map, AS_IO, 8, crbaloon_state ) AM_RANGE(0x00, 0x00) AM_WRITENOP /* not connected */ AM_RANGE(0x01, 0x01) AM_WRITENOP /* watchdog */ AM_RANGE(0x02, 0x04) AM_WRITEONLY AM_SHARE("spriteram") - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", crbaloon_audio_set_music_freq) + AM_RANGE(0x05, 0x05) AM_WRITE(crbaloon_audio_set_music_freq) AM_RANGE(0x06, 0x06) AM_WRITE(port_sound_w) AM_RANGE(0x07, 0x0b) AM_WRITE(pc3092_w) AM_SHARE("pc3092_data") AM_RANGE(0x0c, 0x0c) AM_WRITENOP /* MSK - to PC3259 */ @@ -340,11 +339,10 @@ GFXDECODE_END void crbaloon_state::machine_reset() { address_space &space = machine().device("maincpu")->memory().space(AS_IO); - device_t *discrete = machine().device("discrete"); pc3092_reset(); port_sound_w(space, 0, 0); - crbaloon_audio_set_music_freq(discrete, space, 0, 0); + crbaloon_audio_set_music_freq(space, 0, 0); } diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c index 3944d186971..f34a918be03 100644 --- a/src/mame/drivers/dragrace.c +++ b/src/mame/drivers/dragrace.c @@ -311,9 +311,6 @@ void dragrace_state::palette_init() void dragrace_state::machine_start() { - - m_discrete = machine().device("discrete"); - save_item(NAME(m_misc_flags)); save_item(NAME(m_gear)); } diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index f6e8dd02b7f..deaa3e353bf 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -320,19 +320,19 @@ static ADDRESS_MAP_START( firetrk_map, AS_PROGRAM, 8, firetrk_state ) AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("scroll_y") AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("scroll_x") AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w) - AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_reset_w) + AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_WRITE(firetrk_skid_reset_w) AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("car_rot") AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w) AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE(watchdog_reset_w) AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_SHARE("blink") - AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_motor_snd_w) - AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w) - AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w) + AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_WRITE(firetrk_motor_snd_w) + AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_WRITE(firetrk_crash_snd_w) + AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_WRITE(firetrk_skid_snd_w) AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("drone_x") AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("drone_y") AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("drone_rot") AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(firetrk_output_w) - AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_xtndply_w) + AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_WRITE(firetrk_xtndply_w) AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(firetrk_input_r) AM_WRITENOP AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(firetrk_dip_r) AM_RANGE(0x2000, 0x3fff) AM_ROM @@ -345,18 +345,18 @@ static ADDRESS_MAP_START( superbug_map, AS_PROGRAM, 8, firetrk_state ) AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("scroll_y") AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("scroll_x") AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w) - AM_RANGE(0x0160, 0x0160) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_reset_w) + AM_RANGE(0x0160, 0x0160) AM_MIRROR(0x001f) AM_WRITE(firetrk_skid_reset_w) AM_RANGE(0x0180, 0x0180) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("car_rot") AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w) AM_RANGE(0x01c0, 0x01c0) AM_MIRROR(0x001f) AM_WRITE(watchdog_reset_w) AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_SHARE("blink") AM_RANGE(0x0200, 0x0207) AM_MIRROR(0x0018) AM_READ(firetrk_input_r) - AM_RANGE(0x0220, 0x0220) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_xtndply_w) + AM_RANGE(0x0220, 0x0220) AM_MIRROR(0x001f) AM_WRITE(firetrk_xtndply_w) AM_RANGE(0x0240, 0x0243) AM_MIRROR(0x001c) AM_READ(firetrk_dip_r) AM_RANGE(0x0260, 0x026f) AM_MIRROR(0x0010) AM_WRITE(superbug_output_w) - AM_RANGE(0x0280, 0x0280) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", superbug_motor_snd_w) - AM_RANGE(0x02a0, 0x02a0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w) - AM_RANGE(0x02c0, 0x02c0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w) + AM_RANGE(0x0280, 0x0280) AM_MIRROR(0x001f) AM_WRITE(superbug_motor_snd_w) + AM_RANGE(0x02a0, 0x02a0) AM_MIRROR(0x001f) AM_WRITE(firetrk_crash_snd_w) + AM_RANGE(0x02c0, 0x02c0) AM_MIRROR(0x001f) AM_WRITE(firetrk_skid_snd_w) AM_RANGE(0x0400, 0x041f) AM_RAM AM_SHARE("alpha_num_ram") AM_RANGE(0x0500, 0x05ff) AM_RAM AM_SHARE("playfield_ram") AM_RANGE(0x0800, 0x1fff) AM_ROM @@ -374,10 +374,10 @@ static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8, firetrk_state ) AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("car_rot") AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w) AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", montecar_skid_reset_w) - AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_motor_snd_w) - AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w) - AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w) + AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE(montecar_skid_reset_w) + AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_WRITE(firetrk_motor_snd_w) + AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_WRITE(firetrk_crash_snd_w) + AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_WRITE(firetrk_skid_snd_w) AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("drone_x") AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("drone_y") AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_SHARE("drone_rot") diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c index dd98dc8198b..3ff8befcd11 100644 --- a/src/mame/drivers/harddriv.c +++ b/src/mame/drivers/harddriv.c @@ -679,7 +679,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_state ) - AM_RANGE(0, 0) AM_READ(hdsnddsp_rom_r) AM_DEVWRITE_LEGACY("dac", hdsnddsp_dac_w) + AM_RANGE(0, 0) AM_READWRITE(hdsnddsp_rom_r, hdsnddsp_dac_w) AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r) AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r) AM_RANGE(1, 2) AM_WRITENOP diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c index 7ec11167e88..0a0a6b7f85b 100644 --- a/src/mame/drivers/m79amb.c +++ b/src/mame/drivers/m79amb.c @@ -58,31 +58,6 @@ and two large (paddles pretending to be) guns. #include "includes/m79amb.h" #include "cpu/i8085/i8085.h" -class m79amb_state : public driver_device -{ -public: - m79amb_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_videoram(*this, "videoram"), - m_mask(*this, "mask"){ } - - /* memory pointers */ - required_shared_ptr m_videoram; - required_shared_ptr m_mask; - - /* misc */ - UINT8 m_lut_gun1[0x100]; - UINT8 m_lut_gun2[0x100]; - DECLARE_WRITE8_MEMBER(ramtek_videoram_w); - DECLARE_READ8_MEMBER(gray5bit_controller0_r); - DECLARE_READ8_MEMBER(gray5bit_controller1_r); - DECLARE_WRITE8_MEMBER(m79amb_8002_w); - DECLARE_DRIVER_INIT(m79amb); - UINT32 screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(m79amb_interrupt); -}; - - WRITE8_MEMBER(m79amb_state::ramtek_videoram_w) { m_videoram[offset] = data & ~*m_mask; @@ -141,10 +116,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, m79amb_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(ramtek_videoram_w) AM_SHARE("videoram") AM_RANGE(0x6000, 0x63ff) AM_RAM /* ?? */ - AM_RANGE(0x8000, 0x8000) AM_READ_PORT("8000") AM_DEVWRITE_LEGACY("discrete", m79amb_8000_w) + AM_RANGE(0x8000, 0x8000) AM_READ_PORT("8000") AM_WRITE(m79amb_8000_w) AM_RANGE(0x8001, 0x8001) AM_WRITEONLY AM_SHARE("mask") AM_RANGE(0x8002, 0x8002) AM_READ_PORT("8002") AM_WRITE(m79amb_8002_w) - AM_RANGE(0x8003, 0x8003) AM_DEVWRITE_LEGACY("discrete", m79amb_8003_w) + AM_RANGE(0x8003, 0x8003) AM_WRITE(m79amb_8003_w) AM_RANGE(0x8004, 0x8004) AM_READ(gray5bit_controller0_r) AM_RANGE(0x8005, 0x8005) AM_READ(gray5bit_controller1_r) AM_RANGE(0xc000, 0xc07f) AM_RAM /* ?? */ diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c index 3a6d6a1ecab..68a4a6e8777 100644 --- a/src/mame/drivers/mario.c +++ b/src/mame/drivers/mario.c @@ -138,8 +138,8 @@ static ADDRESS_MAP_START( mario_map, AS_PROGRAM, 8, mario_state ) AM_RANGE(0x6000, 0x6fff) AM_RAM AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("spriteram") /* physical sprite ram */ AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(mario_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_DEVWRITE_LEGACY("discrete", mario_sh1_w) /* Mario run sample */ - AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_DEVWRITE_LEGACY("discrete", mario_sh2_w) /* Luigi run sample */ + AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_WRITE(mario_sh1_w) /* Mario run sample */ + AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE(mario_sh2_w) /* Luigi run sample */ AM_RANGE(0x7d00, 0x7d00) AM_WRITE(mario_scroll_w) AM_RANGE(0x7e80, 0x7e80) AM_WRITE(mario_gfxbank_w) AM_RANGE(0x7e82, 0x7e82) AM_WRITE(mario_flip_w) diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c index efaf9043bdd..803a90bf361 100644 --- a/src/mame/drivers/micro3d.c +++ b/src/mame/drivers/micro3d.c @@ -274,7 +274,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( soundmem_io, AS_IO, 8, micro3d_state ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_RANGE(0xfd00, 0xfd01) AM_DEVREADWRITE_LEGACY("ym2151", ym2151_r, ym2151_w) - AM_RANGE(0xfe00, 0xfe00) AM_DEVWRITE_LEGACY("upd7759", micro3d_upd7759_w) + AM_RANGE(0xfe00, 0xfe00) AM_WRITE(micro3d_upd7759_w) AM_RANGE(0xff00, 0xff00) AM_WRITE(micro3d_snd_dac_a) AM_RANGE(0xff01, 0xff01) AM_WRITE(micro3d_snd_dac_b) AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(micro3d_sound_io_r, micro3d_sound_io_w) diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c index db5a0c8dd6d..b050744484c 100644 --- a/src/mame/drivers/mw8080bw.c +++ b/src/mame/drivers/mw8080bw.c @@ -618,7 +618,7 @@ WRITE8_MEMBER(mw8080bw_state::tornbase_io_w) { if (offset & 0x01) - tornbase_audio_w(machine().device("discrete"), space, 0, data); + tornbase_audio_w(space, 0, data); if (offset & 0x02) mb14241_shift_count_w(m_mb14241, space, 0, data); @@ -991,10 +991,10 @@ static ADDRESS_MAP_START( boothill_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", boothill_audio_w) + AM_RANGE(0x03, 0x03) AM_WRITE(boothill_audio_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_hi_w) + AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) + AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) ADDRESS_MAP_END @@ -1069,7 +1069,7 @@ MACHINE_CONFIG_END WRITE8_MEMBER(mw8080bw_state::checkmat_io_w) { - if (offset & 0x01) checkmat_audio_w(m_discrete, space, 0, data); + if (offset & 0x01) checkmat_audio_w(space, 0, data); if (offset & 0x02) watchdog_reset_w(space, 0, data); } @@ -1217,11 +1217,11 @@ static ADDRESS_MAP_START( desertgu_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", desertgu_audio_1_w) + AM_RANGE(0x03, 0x03) AM_WRITE(desertgu_audio_1_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_hi_w) - AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("discrete", desertgu_audio_2_w) + AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) + AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) + AM_RANGE(0x07, 0x07) AM_WRITE(desertgu_audio_2_w) ADDRESS_MAP_END @@ -1339,10 +1339,10 @@ static ADDRESS_MAP_START( dplay_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", dplay_audio_w) + AM_RANGE(0x03, 0x03) AM_WRITE(dplay_audio_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_hi_w) + AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) + AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) ADDRESS_MAP_END @@ -1727,9 +1727,9 @@ static ADDRESS_MAP_START( clowns_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) AM_RANGE(0x03, 0x03) AM_WRITE(clowns_audio_1_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_hi_w) - AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("discrete", clowns_audio_2_w) + AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) + AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) + AM_RANGE(0x07, 0x07) AM_WRITE(clowns_audio_2_w) ADDRESS_MAP_END @@ -1863,11 +1863,11 @@ static ADDRESS_MAP_START( spacwalk_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", spacwalk_audio_1_w) + AM_RANGE(0x03, 0x03) AM_WRITE(spacwalk_audio_1_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_hi_w) - AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("discrete", spacwalk_audio_2_w) + AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) + AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) + AM_RANGE(0x07, 0x07) AM_WRITE(spacwalk_audio_2_w) ADDRESS_MAP_END static INPUT_PORTS_START( spacwalk ) @@ -1959,8 +1959,8 @@ static ADDRESS_MAP_START( shuffle_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_MIRROR(0x08) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_MIRROR(0x08) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) AM_RANGE(0x04, 0x04) AM_MIRROR(0x08) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_MIRROR(0x08) AM_DEVWRITE_LEGACY("discrete", shuffle_audio_1_w) - AM_RANGE(0x06, 0x06) AM_MIRROR(0x08) AM_DEVWRITE_LEGACY("discrete", shuffle_audio_2_w) + AM_RANGE(0x05, 0x05) AM_MIRROR(0x08) AM_WRITE(shuffle_audio_1_w) + AM_RANGE(0x06, 0x06) AM_MIRROR(0x08) AM_WRITE(shuffle_audio_2_w) ADDRESS_MAP_END @@ -2036,10 +2036,10 @@ static ADDRESS_MAP_START( dogpatch_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", dogpatch_audio_w) + AM_RANGE(0x03, 0x03) AM_WRITE(dogpatch_audio_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("discrete", midway_tone_generator_hi_w) + AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) + AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) ADDRESS_MAP_END @@ -2163,13 +2163,13 @@ WRITE8_MEMBER(mw8080bw_state::spcenctr_io_w) watchdog_reset_w(space, 0, data); /* - - - - - 0 1 0 */ else if ((offset & 0x5f) == 0x01) - spcenctr_audio_1_w(m_discrete, space, 0, data); /* - 0 - 0 0 0 0 1 */ + spcenctr_audio_1_w(space, 0, data); /* - 0 - 0 0 0 0 1 */ else if ((offset & 0x5f) == 0x09) - spcenctr_audio_2_w(m_discrete, space, 0, data); /* - 0 - 0 1 0 0 1 */ + spcenctr_audio_2_w(space, 0, data); /* - 0 - 0 1 0 0 1 */ else if ((offset & 0x5f) == 0x11) - spcenctr_audio_3_w(m_discrete, space, 0, data); /* - 0 - 1 0 0 0 1 */ + spcenctr_audio_3_w(space, 0, data); /* - 0 - 1 0 0 0 1 */ else if ((offset & 0x07) == 0x03) { /* - - - - - 0 1 1 */ @@ -2430,7 +2430,7 @@ static ADDRESS_MAP_START( bowler_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", bowler_audio_1_w) + AM_RANGE(0x05, 0x05) AM_WRITE(bowler_audio_1_w) AM_RANGE(0x06, 0x06) AM_WRITE(bowler_audio_2_w) AM_RANGE(0x07, 0x07) AM_WRITE(bowler_lights_1_w) AM_RANGE(0x08, 0x08) AM_WRITE(bowler_audio_3_w) @@ -2611,9 +2611,9 @@ static ADDRESS_MAP_START( invaders_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", invaders_audio_1_w) + AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w) AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", invaders_audio_2_w) + AM_RANGE(0x05, 0x05) AM_WRITE(invaders_audio_2_w) AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) ADDRESS_MAP_END @@ -2743,7 +2743,7 @@ static ADDRESS_MAP_START( blueshrk_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", blueshrk_audio_w) + AM_RANGE(0x03, 0x03) AM_WRITE(blueshrk_audio_w) AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) ADDRESS_MAP_END @@ -2821,13 +2821,13 @@ static ADDRESS_MAP_START( invad2ct_io_map, AS_IO, 8, mw8080bw_state ) AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2") AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) - AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("discrete", invad2ct_audio_3_w) + AM_RANGE(0x01, 0x01) AM_WRITE(invad2ct_audio_3_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", invad2ct_audio_1_w) + AM_RANGE(0x03, 0x03) AM_WRITE(invad2ct_audio_1_w) AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", invad2ct_audio_2_w) + AM_RANGE(0x05, 0x05) AM_WRITE(invad2ct_audio_2_w) AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("discrete", invad2ct_audio_4_w) + AM_RANGE(0x07, 0x07) AM_WRITE(invad2ct_audio_4_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index cc1b52d1a42..873739051d4 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -112,11 +112,11 @@ static ADDRESS_MAP_START( orbit_map, AS_PROGRAM, 8, orbit_state ) AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x07ff) AM_READ_PORT("BUTTONS") AM_RANGE(0x3000, 0x33bf) AM_MIRROR(0x0400) AM_RAM_WRITE(orbit_playfield_w) AM_SHARE("playfield_ram") AM_RANGE(0x33c0, 0x33ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("sprite_ram") - AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_note_w) - AM_RANGE(0x3900, 0x3900) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_noise_amp_w) - AM_RANGE(0x3a00, 0x3a00) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_note_amp_w) + AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x00ff) AM_WRITE(orbit_note_w) + AM_RANGE(0x3900, 0x3900) AM_MIRROR(0x00ff) AM_WRITE(orbit_noise_amp_w) + AM_RANGE(0x3a00, 0x3a00) AM_MIRROR(0x00ff) AM_WRITE(orbit_note_amp_w) AM_RANGE(0x3c00, 0x3c0f) AM_MIRROR(0x00f0) AM_WRITE(orbit_misc_w) - AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_noise_rst_w) + AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00ff) AM_WRITE(orbit_noise_rst_w) AM_RANGE(0x3f00, 0x3f00) AM_MIRROR(0x00ff) AM_WRITE(watchdog_reset_w) AM_RANGE(0x6000, 0x7fff) AM_ROM ADDRESS_MAP_END @@ -273,7 +273,6 @@ void orbit_state::machine_start() { m_maincpu = machine().device("maincpu"); - m_discrete = machine().device("discrete"); save_item(NAME(m_misc_flags)); save_item(NAME(m_flip_screen)); diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c index f0a82546031..a5f18d8621b 100644 --- a/src/mame/drivers/poolshrk.c +++ b/src/mame/drivers/poolshrk.c @@ -104,12 +104,12 @@ static ADDRESS_MAP_START( poolshrk_cpu_map, AS_PROGRAM, 8, poolshrk_state ) AM_RANGE(0x0800, 0x080f) AM_MIRROR(0x23f0) AM_WRITEONLY AM_SHARE("hpos_ram") AM_RANGE(0x0c00, 0x0c0f) AM_MIRROR(0x23f0) AM_WRITEONLY AM_SHARE("vpos_ram") AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x2000) AM_READWRITE(poolshrk_input_r, poolshrk_watchdog_w) - AM_RANGE(0x1400, 0x17ff) AM_MIRROR(0x2000) AM_DEVWRITE_LEGACY("discrete", poolshrk_scratch_sound_w) - AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x2000) AM_DEVWRITE_LEGACY("discrete", poolshrk_score_sound_w) - AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x2000) AM_DEVWRITE_LEGACY("discrete", poolshrk_click_sound_w) + AM_RANGE(0x1400, 0x17ff) AM_MIRROR(0x2000) AM_WRITE(poolshrk_scratch_sound_w) + AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x2000) AM_WRITE(poolshrk_score_sound_w) + AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x2000) AM_WRITE(poolshrk_click_sound_w) AM_RANGE(0x4000, 0x4000) AM_NOP /* diagnostic ROM location */ AM_RANGE(0x6000, 0x63ff) AM_WRITE(poolshrk_da_latch_w) - AM_RANGE(0x6400, 0x67ff) AM_DEVWRITE_LEGACY("discrete", poolshrk_bump_sound_w) + AM_RANGE(0x6400, 0x67ff) AM_WRITE(poolshrk_bump_sound_w) AM_RANGE(0x6800, 0x6bff) AM_READ(poolshrk_irq_reset_r) AM_RANGE(0x6c00, 0x6fff) AM_WRITE(poolshrk_led_w) AM_RANGE(0x7000, 0x7fff) AM_ROM diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c index 0fdff4c0509..87f36632236 100644 --- a/src/mame/drivers/skyraid.c +++ b/src/mame/drivers/skyraid.c @@ -78,7 +78,7 @@ static ADDRESS_MAP_START( skyraid_map, AS_PROGRAM, 8, skyraid_state ) AM_RANGE(0x1400, 0x1401) AM_READ_PORT("SYSTEM") AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_SHARE("obj_ram") AM_RANGE(0x4000, 0x4000) AM_WRITE(skyraid_scroll_w) - AM_RANGE(0x4400, 0x4400) AM_DEVWRITE_LEGACY("discrete", skyraid_sound_w) + AM_RANGE(0x4400, 0x4400) AM_WRITE(skyraid_sound_w) AM_RANGE(0x4800, 0x4800) AM_WRITE(skyraid_range_w) AM_RANGE(0x5000, 0x5000) AM_WRITE(watchdog_reset_w) AM_RANGE(0x5800, 0x5800) AM_WRITE(skyraid_offset_w) diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c index 4fd91802236..6f6c61d1ea5 100644 --- a/src/mame/drivers/spiders.c +++ b/src/mame/drivers/spiders.c @@ -326,8 +326,8 @@ static const pia6821_interface pia_3_intf = DEVCB_NULL, /* line CB1 in */ DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ - DEVCB_DEVICE_HANDLER("discrete", spiders_audio_ctrl_w), /* port A out */ - DEVCB_DEVICE_HANDLER("pia4", spiders_audio_command_w), /* port B out */ + DEVCB_DRIVER_MEMBER(spiders_state, spiders_audio_ctrl_w), /* port A out */ + DEVCB_DRIVER_MEMBER(spiders_state, spiders_audio_command_w), /* port B out */ DEVCB_NULL, /* line CA2 out */ DEVCB_NULL, /* port CB2 out */ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_irq), /* IRQA */ @@ -350,8 +350,8 @@ static const pia6821_interface pia_4_intf = DEVCB_NULL, /* line CB1 in */ DEVCB_NULL, /* line CA2 in */ DEVCB_NULL, /* line CB2 in */ - DEVCB_DEVICE_HANDLER("discrete", spiders_audio_a_w), /* port A out */ - DEVCB_DEVICE_HANDLER("discrete", spiders_audio_b_w), /* port B out */ + DEVCB_DRIVER_MEMBER(spiders_state, spiders_audio_a_w), /* port A out */ + DEVCB_DRIVER_MEMBER(spiders_state, spiders_audio_b_w), /* port B out */ DEVCB_NULL, /* line CA2 out */ DEVCB_NULL, /* port CB2 out */ DEVCB_DRIVER_LINE_MEMBER(spiders_state,audio_cpu_irq), /* IRQA */ diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c index 656574feea9..d28f196eed0 100644 --- a/src/mame/drivers/sprint8.c +++ b/src/mame/drivers/sprint8.c @@ -110,13 +110,13 @@ static ADDRESS_MAP_START( sprint8_map, AS_PROGRAM, 8, sprint8_state ) AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_SHARE("pos_d_ram") AM_RANGE(0x1c30, 0x1c37) AM_WRITE(sprint8_lockout_w) AM_RANGE(0x1d00, 0x1d00) AM_WRITE(sprint8_int_reset_w) - AM_RANGE(0x1d01, 0x1d01) AM_DEVWRITE_LEGACY("discrete", sprint8_crash_w) - AM_RANGE(0x1d02, 0x1d02) AM_DEVWRITE_LEGACY("discrete", sprint8_screech_w) + AM_RANGE(0x1d01, 0x1d01) AM_WRITE(sprint8_crash_w) + AM_RANGE(0x1d02, 0x1d02) AM_WRITE(sprint8_screech_w) AM_RANGE(0x1d03, 0x1d03) AM_WRITENOP AM_RANGE(0x1d04, 0x1d04) AM_WRITENOP AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_SHARE("team") - AM_RANGE(0x1d06, 0x1d06) AM_DEVWRITE_LEGACY("discrete", sprint8_attract_w) - AM_RANGE(0x1e00, 0x1e07) AM_DEVWRITE_LEGACY("discrete", sprint8_motor_w) + AM_RANGE(0x1d06, 0x1d06) AM_WRITE(sprint8_attract_w) + AM_RANGE(0x1e00, 0x1e07) AM_WRITE(sprint8_motor_w) AM_RANGE(0x1f00, 0x1f00) AM_WRITENOP /* probably a watchdog, disabled in service mode */ AM_RANGE(0x2000, 0x3fff) AM_ROM AM_RANGE(0xf800, 0xffff) AM_ROM diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c index 7ebb98ea41a..ff69a7a6e15 100644 --- a/src/mame/drivers/subs.c +++ b/src/mame/drivers/subs.c @@ -47,7 +47,7 @@ void subs_state::palette_init() static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, subs_state ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) - AM_RANGE(0x0000, 0x0000) AM_DEVWRITE_LEGACY("discrete", subs_noise_reset_w) + AM_RANGE(0x0000, 0x0000) AM_WRITE(subs_noise_reset_w) AM_RANGE(0x0000, 0x0007) AM_READ(subs_control_r) AM_RANGE(0x0020, 0x0020) AM_WRITE(subs_steer_reset_w) AM_RANGE(0x0020, 0x0027) AM_READ(subs_coin_r) @@ -55,11 +55,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, subs_state ) AM_RANGE(0x0060, 0x0063) AM_READ(subs_options_r) AM_RANGE(0x0060, 0x0061) AM_WRITE(subs_lamp1_w) AM_RANGE(0x0062, 0x0063) AM_WRITE(subs_lamp2_w) - AM_RANGE(0x0064, 0x0065) AM_DEVWRITE_LEGACY("discrete", subs_sonar2_w) - AM_RANGE(0x0066, 0x0067) AM_DEVWRITE_LEGACY("discrete", subs_sonar1_w) + AM_RANGE(0x0064, 0x0065) AM_WRITE(subs_sonar2_w) + AM_RANGE(0x0066, 0x0067) AM_WRITE(subs_sonar1_w) // Schematics show crash and explode reversed. But this is proper. - AM_RANGE(0x0068, 0x0069) AM_DEVWRITE_LEGACY("discrete", subs_explode_w) - AM_RANGE(0x006a, 0x006b) AM_DEVWRITE_LEGACY("discrete", subs_crash_w) + AM_RANGE(0x0068, 0x0069) AM_WRITE(subs_explode_w) + AM_RANGE(0x006a, 0x006b) AM_WRITE(subs_crash_w) AM_RANGE(0x006c, 0x006d) AM_WRITE(subs_invert1_w) AM_RANGE(0x006e, 0x006f) AM_WRITE(subs_invert2_w) AM_RANGE(0x0090, 0x009f) AM_SHARE("spriteram") diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index 9b7afa43bcf..458c725abe5 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -1607,8 +1607,8 @@ static const ay8910_interface hardhead_ay8910_interface = AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, - DEVCB_DEVICE_HANDLER("samples", suna8_play_samples_w), - DEVCB_DEVICE_HANDLER("samples", suna8_samples_number_w) + DEVCB_DRIVER_MEMBER(suna8_state, suna8_play_samples_w), + DEVCB_DRIVER_MEMBER(suna8_state, suna8_samples_number_w) }; static const samples_interface suna8_samples_interface = @@ -1676,8 +1676,8 @@ static const ym2203_interface rranger_ym2203_interface = AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, - DEVCB_DEVICE_HANDLER("samples", rranger_play_samples_w), - DEVCB_DEVICE_HANDLER("samples", suna8_samples_number_w), + DEVCB_DRIVER_MEMBER(suna8_state, rranger_play_samples_w), + DEVCB_DRIVER_MEMBER(suna8_state, suna8_samples_number_w), }, DEVCB_NULL }; @@ -1856,8 +1856,8 @@ static const ay8910_interface starfigh_ay8910_interface = AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, - DEVCB_DEVICE_HANDLER("samples", suna8_play_samples_w), - DEVCB_DEVICE_HANDLER("samples", suna8_samples_number_w) + DEVCB_DRIVER_MEMBER(suna8_state, suna8_play_samples_w), + DEVCB_DRIVER_MEMBER(suna8_state, suna8_samples_number_w) }; static MACHINE_CONFIG_START( starfigh, suna8_state ) diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c index 59696e64a6f..b2ab435729a 100644 --- a/src/mame/drivers/turbo.c +++ b/src/mame/drivers/turbo.c @@ -282,11 +282,11 @@ static I8255_INTERFACE(turbo_8255_intf_1) static I8255_INTERFACE(turbo_8255_intf_2) { DEVCB_NULL, - DEVCB_HANDLER(turbo_sound_a_w), + DEVCB_DRIVER_MEMBER(turbo_state,turbo_sound_a_w), DEVCB_NULL, - DEVCB_HANDLER(turbo_sound_b_w), + DEVCB_DRIVER_MEMBER(turbo_state,turbo_sound_b_w), DEVCB_NULL, - DEVCB_HANDLER(turbo_sound_c_w) + DEVCB_DRIVER_MEMBER(turbo_state,turbo_sound_c_w) }; static I8255_INTERFACE(turbo_8255_intf_3) @@ -355,11 +355,11 @@ static I8255_INTERFACE(subroc3d_8255_intf_0) static I8255_INTERFACE(subroc3d_8255_intf_1) { DEVCB_NULL, - DEVCB_HANDLER(subroc3d_sound_a_w), + DEVCB_DRIVER_MEMBER(turbo_state,subroc3d_sound_a_w), DEVCB_NULL, - DEVCB_HANDLER(subroc3d_sound_b_w), + DEVCB_DRIVER_MEMBER(turbo_state,subroc3d_sound_b_w), DEVCB_NULL, - DEVCB_HANDLER(subroc3d_sound_c_w) + DEVCB_DRIVER_MEMBER(turbo_state,subroc3d_sound_c_w) }; @@ -424,9 +424,9 @@ static I8255_INTERFACE(buckrog_8255_intf_0) static I8255_INTERFACE(buckrog_8255_intf_1) { DEVCB_NULL, - DEVCB_HANDLER(buckrog_sound_a_w), + DEVCB_DRIVER_MEMBER(turbo_state,buckrog_sound_a_w), DEVCB_NULL, - DEVCB_HANDLER(buckrog_sound_b_w), + DEVCB_DRIVER_MEMBER(turbo_state,buckrog_sound_b_w), DEVCB_NULL, DEVCB_DRIVER_MEMBER(turbo_state,buckrog_ppi1c_w) }; diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c index 4d2503513e2..dc28213e16b 100644 --- a/src/mame/drivers/zaxxon.c +++ b/src/mame/drivers/zaxxon.c @@ -884,11 +884,11 @@ INPUT_PORTS_END static I8255A_INTERFACE( zaxxon_ppi_intf ) { DEVCB_NULL, /* Port A read */ - DEVCB_HANDLER(zaxxon_sound_a_w), /* Port A write */ + DEVCB_DRIVER_MEMBER(zaxxon_state, zaxxon_sound_a_w), /* Port A write */ DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(zaxxon_sound_b_w), /* Port B write */ + DEVCB_DRIVER_MEMBER(zaxxon_state, zaxxon_sound_b_w), /* Port B write */ DEVCB_NULL, /* Port C read */ - DEVCB_HANDLER(zaxxon_sound_c_w) /* Port C write */ + DEVCB_DRIVER_MEMBER(zaxxon_state, zaxxon_sound_c_w) /* Port C write */ }; static I8255A_INTERFACE( congo_ppi_intf ) @@ -896,9 +896,9 @@ static I8255A_INTERFACE( congo_ppi_intf ) DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r), /* Port A read */ DEVCB_NULL, /* Port A write */ DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(congo_sound_b_w), /* Port B write */ + DEVCB_DRIVER_MEMBER(zaxxon_state, congo_sound_b_w), /* Port B write */ DEVCB_NULL, /* Port C read */ - DEVCB_HANDLER(congo_sound_c_w) /* Port C write */ + DEVCB_DRIVER_MEMBER(zaxxon_state, congo_sound_c_w) /* Port C write */ }; diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h index 06aec4e7ea2..05e60e274d7 100644 --- a/src/mame/includes/8080bw.h +++ b/src/mame/includes/8080bw.h @@ -16,13 +16,14 @@ public: _8080bw_state(const machine_config &mconfig, device_type type, const char *tag) : mw8080bw_state(mconfig, type, tag), m_schaser_effect_555_timer(*this, "schaser_sh_555"), - m_claybust_gun_on(*this, "claybust_gun") + m_claybust_gun_on(*this, "claybust_gun"), + m_discrete(*this, "discrete") { } /* devices/memory pointers */ optional_device m_schaser_effect_555_timer; optional_device m_claybust_gun_on; - + required_device m_discrete; device_t *m_speaker; @@ -108,18 +109,17 @@ public: INTERRUPT_GEN_MEMBER(polaris_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(claybust_gun_callback); TIMER_DEVICE_CALLBACK_MEMBER(schaser_effect_555_cb); + DECLARE_WRITE8_MEMBER(indianbt_sh_port_3_w); + DECLARE_WRITE8_MEMBER(polaris_sh_port_1_w); + DECLARE_WRITE8_MEMBER(polaris_sh_port_2_w); + DECLARE_WRITE8_MEMBER(polaris_sh_port_3_w); }; /*----------- defined in audio/8080bw.c -----------*/ extern const samples_interface lrescue_samples_interface; -DECLARE_WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w ); DISCRETE_SOUND_EXTERN( indianbt ); - -DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w ); -DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w ); DISCRETE_SOUND_EXTERN( polaris ); extern const sn76477_interface schaser_sn76477_interface; diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h index 589add9f3a9..4847566d715 100644 --- a/src/mame/includes/asteroid.h +++ b/src/mame/includes/asteroid.h @@ -12,10 +12,12 @@ public: asteroid_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_ram1(*this, "ram1"), - m_ram2(*this, "ram2"){ } + m_ram2(*this, "ram2"), + m_discrete(*this, "discrete") { } optional_shared_ptr m_ram1; optional_shared_ptr m_ram2; + required_device m_discrete; DECLARE_WRITE8_MEMBER(astdelux_coin_counter_w); DECLARE_WRITE8_MEMBER(llander_led_w); DECLARE_READ8_MEMBER(asteroid_IN0_r); @@ -32,6 +34,13 @@ public: INTERRUPT_GEN_MEMBER(asteroid_interrupt); INTERRUPT_GEN_MEMBER(asterock_interrupt); INTERRUPT_GEN_MEMBER(llander_interrupt); + DECLARE_WRITE8_MEMBER(asteroid_explode_w); + DECLARE_WRITE8_MEMBER(asteroid_thump_w); + DECLARE_WRITE8_MEMBER(asteroid_sounds_w); + DECLARE_WRITE8_MEMBER(astdelux_sounds_w); + DECLARE_WRITE8_MEMBER(asteroid_noise_reset_w); + DECLARE_WRITE8_MEMBER(llander_snd_reset_w); + DECLARE_WRITE8_MEMBER(llander_sounds_w); }; /*----------- defined in audio/asteroid.c -----------*/ @@ -39,16 +48,6 @@ public: DISCRETE_SOUND_EXTERN( asteroid ); DISCRETE_SOUND_EXTERN( astdelux ); -DECLARE_WRITE8_DEVICE_HANDLER( asteroid_explode_w ); -DECLARE_WRITE8_DEVICE_HANDLER( asteroid_thump_w ); -DECLARE_WRITE8_DEVICE_HANDLER( asteroid_sounds_w ); -DECLARE_WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w ); -DECLARE_WRITE8_DEVICE_HANDLER( astdelux_sounds_w ); - - /*----------- defined in audio/llander.c -----------*/ DISCRETE_SOUND_EXTERN( llander ); - -DECLARE_WRITE8_DEVICE_HANDLER( llander_snd_reset_w ); -DECLARE_WRITE8_DEVICE_HANDLER( llander_sounds_w ); diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h index 88a8d79b377..eeef5490022 100644 --- a/src/mame/includes/avalnche.h +++ b/src/mame/includes/avalnche.h @@ -12,10 +12,12 @@ class avalnche_state : public driver_device public: avalnche_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete") { } /* video-related */ required_shared_ptr m_videoram; + required_device m_discrete; UINT8 m_avalance_video_inverted; DECLARE_WRITE8_MEMBER(avalance_video_invert_w); @@ -26,13 +28,12 @@ public: virtual void machine_start(); virtual void machine_reset(); UINT32 screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + DECLARE_WRITE8_MEMBER(avalnche_noise_amplitude_w); + DECLARE_WRITE8_MEMBER(avalnche_attract_enable_w); + DECLARE_WRITE8_MEMBER(avalnche_audio_w); + DECLARE_WRITE8_MEMBER(catch_audio_w); }; /*----------- defined in audio/avalnche.c -----------*/ - DISCRETE_SOUND_EXTERN( avalnche ); -DECLARE_WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w ); -DECLARE_WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w ); -DECLARE_WRITE8_DEVICE_HANDLER( avalnche_audio_w ); -DECLARE_WRITE8_HANDLER( catch_audio_w ); diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h index 5a3509ee265..d4d381be26c 100644 --- a/src/mame/includes/blockade.h +++ b/src/mame/includes/blockade.h @@ -6,10 +6,11 @@ class blockade_state : public driver_device public: blockade_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete"){ } required_shared_ptr m_videoram; - + required_device m_discrete; /* video-related */ tilemap_t *m_bg_tilemap; @@ -28,11 +29,10 @@ public: virtual void palette_init(); UINT32 screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(blockade_interrupt); + DECLARE_WRITE8_MEMBER(blockade_sound_freq_w); }; /*----------- defined in audio/blockade.c -----------*/ extern const samples_interface blockade_samples_interface; DISCRETE_SOUND_EXTERN( blockade ); - -DECLARE_WRITE8_DEVICE_HANDLER( blockade_sound_freq_w ); diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h index 6ff0d8ef341..c2eac984c81 100644 --- a/src/mame/includes/bsktball.h +++ b/src/mame/includes/bsktball.h @@ -19,11 +19,13 @@ public: bsktball_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_videoram(*this, "videoram"), - m_motion(*this, "motion"){ } + m_motion(*this, "motion"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_videoram; required_shared_ptr m_motion; + required_device m_discrete; /* video-related */ tilemap_t *m_bg_tilemap; @@ -57,12 +59,11 @@ public: virtual void palette_init(); UINT32 screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(bsktball_scanline); + DECLARE_WRITE8_MEMBER(bsktball_bounce_w); + DECLARE_WRITE8_MEMBER(bsktball_note_w); + DECLARE_WRITE8_MEMBER(bsktball_noise_reset_w); }; /*----------- defined in audio/bsktball.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( bsktball_bounce_w ); -DECLARE_WRITE8_DEVICE_HANDLER( bsktball_note_w ); -DECLARE_WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w ); - DISCRETE_SOUND_EXTERN( bsktball ); diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h index da00703a629..fb2a9ef36d7 100644 --- a/src/mame/includes/bzone.h +++ b/src/mame/includes/bzone.h @@ -5,6 +5,7 @@ *************************************************************************/ #include "devlegcy.h" +#include "sound/discrete.h" #define BZONE_MASTER_CLOCK (XTAL_12_096MHz) #define BZONE_CLOCK_3KHZ (MASTER_CLOCK / 4096) @@ -13,8 +14,11 @@ class bzone_state : public driver_device { public: bzone_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_discrete(*this, "discrete") { } + required_device m_discrete; + UINT8 m_analog_data; UINT8 m_rb_input_select; DECLARE_WRITE8_MEMBER(bzone_coin_counter_w); @@ -27,13 +31,11 @@ public: virtual void machine_start(); DECLARE_MACHINE_START(redbaron); INTERRUPT_GEN_MEMBER(bzone_interrupt); + DECLARE_WRITE8_MEMBER(bzone_sounds_w); }; /*----------- defined in audio/bzone.c -----------*/ - -DECLARE_WRITE8_DEVICE_HANDLER( bzone_sounds_w ); - MACHINE_CONFIG_EXTERN( bzone_audio ); /*----------- defined in audio/redbaron.c -----------*/ diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h index faad369c86e..54e9380ec55 100644 --- a/src/mame/includes/canyon.h +++ b/src/mame/includes/canyon.h @@ -22,11 +22,14 @@ class canyon_state : public driver_device public: canyon_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_videoram; + required_device m_discrete; + /* video-related */ tilemap_t *m_bg_tilemap; DECLARE_READ8_MEMBER(canyon_switches_r); @@ -37,14 +40,12 @@ public: virtual void video_start(); virtual void palette_init(); UINT32 screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE8_MEMBER(canyon_motor_w); + DECLARE_WRITE8_MEMBER(canyon_explode_w); + DECLARE_WRITE8_MEMBER(canyon_attract_w); + DECLARE_WRITE8_MEMBER(canyon_whistle_w); }; /*----------- defined in audio/canyon.c -----------*/ - -DECLARE_WRITE8_DEVICE_HANDLER( canyon_motor_w ); -DECLARE_WRITE8_DEVICE_HANDLER( canyon_explode_w ); -DECLARE_WRITE8_DEVICE_HANDLER( canyon_attract_w ); -DECLARE_WRITE8_DEVICE_HANDLER( canyon_whistle_w ); - DISCRETE_SOUND_EXTERN( canyon ); diff --git a/src/mame/includes/cchasm.h b/src/mame/includes/cchasm.h index 8afe7c1e2e9..e1ad9386bf7 100644 --- a/src/mame/includes/cchasm.h +++ b/src/mame/includes/cchasm.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE_LINE_MEMBER(cchasm_6840_irq); virtual void video_start(); TIMER_CALLBACK_MEMBER(cchasm_refresh_end); + DECLARE_WRITE_LINE_MEMBER(ctc_timer_1_w); + DECLARE_WRITE_LINE_MEMBER(ctc_timer_2_w); }; /*----------- defined in audio/cchasm.c -----------*/ diff --git a/src/mame/includes/cinemat.h b/src/mame/includes/cinemat.h index 5b89b8f94ea..83615dc0262 100644 --- a/src/mame/includes/cinemat.h +++ b/src/mame/includes/cinemat.h @@ -66,6 +66,10 @@ public: DECLARE_VIDEO_START(cinemat_qb3color); UINT32 screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + DECLARE_READ8_MEMBER(sound_porta_r); + DECLARE_READ8_MEMBER(sound_portb_r); + DECLARE_WRITE8_MEMBER(sound_portb_w); + DECLARE_WRITE8_MEMBER(sound_output_w); }; /*----------- defined in audio/cinemat.c -----------*/ diff --git a/src/mame/includes/circus.h b/src/mame/includes/circus.h index b264ae01348..9141069af3a 100644 --- a/src/mame/includes/circus.h +++ b/src/mame/includes/circus.h @@ -5,7 +5,8 @@ class circus_state : public driver_device public: circus_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_videoram; @@ -19,7 +20,7 @@ public: /* devices */ cpu_device *m_maincpu; samples_device *m_samples; - device_t *m_discrete; + required_device m_discrete; /* game id */ int m_game_id; diff --git a/src/mame/includes/circusc.h b/src/mame/includes/circusc.h index ddd7f847855..ff39d0f9dbc 100644 --- a/src/mame/includes/circusc.h +++ b/src/mame/includes/circusc.h @@ -6,7 +6,7 @@ #include "sound/dac.h" #include "sound/sn76496.h" - +#include "sound/discrete.h" class circusc_state : public driver_device { public: @@ -19,7 +19,8 @@ public: m_spriteram_2(*this, "spriteram_2"), m_spriteram(*this, "spriteram"), m_sn_1(*this, "sn1"), - m_sn_2(*this, "sn2"){ } + m_sn_2(*this, "sn2"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_spritebank; @@ -40,7 +41,7 @@ public: required_device m_sn_1; required_device m_sn_2; dac_device *m_dac; - device_t *m_discrete; + required_device m_discrete; UINT8 m_irq_mask; DECLARE_READ8_MEMBER(circusc_sh_timer_r); diff --git a/src/mame/includes/copsnrob.h b/src/mame/includes/copsnrob.h index 531b4ffdcd3..56cca584330 100644 --- a/src/mame/includes/copsnrob.h +++ b/src/mame/includes/copsnrob.h @@ -17,7 +17,8 @@ public: m_bulletsram(*this, "bulletsram"), m_carimage(*this, "carimage"), m_cary(*this, "cary"), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_trucky; @@ -26,7 +27,7 @@ public: required_shared_ptr m_carimage; required_shared_ptr m_cary; required_shared_ptr m_videoram; - + required_device m_discrete; /* misc */ UINT8 m_misc; UINT8 m_ic_h3_data; diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h index f3e440034b9..0f3a83b9467 100644 --- a/src/mame/includes/crbaloon.h +++ b/src/mame/includes/crbaloon.h @@ -4,6 +4,7 @@ Crazy Ballooon *************************************************************************/ +#include "sound/discrete.h" #define CRBALOON_MASTER_XTAL (XTAL_9_987MHz) @@ -16,12 +17,14 @@ public: m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), m_spriteram(*this, "spriteram"), - m_pc3092_data(*this, "pc3092_data"){ } + m_pc3092_data(*this, "pc3092_data"), + m_discrete(*this, "discrete"){ } required_shared_ptr m_videoram; required_shared_ptr m_colorram; required_shared_ptr m_spriteram; required_shared_ptr m_pc3092_data; + required_device m_discrete; UINT16 m_collision_address; UINT8 m_collision_address_clear; tilemap_t *m_bg_tilemap; @@ -38,17 +41,17 @@ public: virtual void palette_init(); UINT32 screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); + DECLARE_WRITE8_MEMBER(crbaloon_audio_set_music_freq); + DECLARE_WRITE8_MEMBER(crbaloon_audio_set_music_enable); + DECLARE_WRITE8_MEMBER(crbaloon_audio_set_laugh_enable); }; /*----------- defined in audio/crbaloon.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq ); -DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable ); void crbaloon_audio_set_explosion_enable(device_t *sn, int enabled); void crbaloon_audio_set_breath_enable(device_t *sn, int enabled); void crbaloon_audio_set_appear_enable(device_t *sn, int enabled); -DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable ); MACHINE_CONFIG_EXTERN( crbaloon_audio ); /*----------- defined in video/crbaloon.c -----------*/ diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h index eda1fb05068..9b9458b412d 100644 --- a/src/mame/includes/dkong.h +++ b/src/mame/includes/dkong.h @@ -82,7 +82,8 @@ public: : driver_device(mconfig, type, tag), m_video_ram(*this,"video_ram"), m_sprite_ram(*this,"sprite_ram"), - m_vidhw(DKONG_BOARD) { } + m_vidhw(DKONG_BOARD), + m_discrete(*this, "discrete") { } /* memory pointers */ required_shared_ptr m_video_ram; @@ -108,7 +109,8 @@ public: const UINT8 * m_color_codes; emu_timer * m_scanline_timer; INT8 m_vidhw; /* Selected video hardware RS Conversion / TKG04 */ - + + required_device m_discrete; /* radar scope */ UINT8 * m_gfx4; @@ -218,6 +220,10 @@ public: INTERRUPT_GEN_MEMBER(s2650_interrupt); INTERRUPT_GEN_MEMBER(vblank_irq); TIMER_CALLBACK_MEMBER(scanline_callback); + DECLARE_WRITE8_MEMBER(M58817_command_w); + DECLARE_READ8_MEMBER(dkong_voice_status_r); + DECLARE_READ8_MEMBER(dkong_tune_r); + DECLARE_WRITE8_MEMBER(dkong_p1_w); }; /*----------- defined in audio/dkong.c -----------*/ diff --git a/src/mame/includes/dragrace.h b/src/mame/includes/dragrace.h index 979c28579c3..ac8029ed48a 100644 --- a/src/mame/includes/dragrace.h +++ b/src/mame/includes/dragrace.h @@ -28,7 +28,8 @@ public: dragrace_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_playfield_ram(*this, "playfield_ram"), - m_position_ram(*this, "position_ram"){ } + m_position_ram(*this, "position_ram"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_playfield_ram; @@ -42,7 +43,7 @@ public: int m_gear[2]; /* devices */ - device_t *m_discrete; + required_device m_discrete; DECLARE_WRITE8_MEMBER(dragrace_misc_w); DECLARE_WRITE8_MEMBER(dragrace_misc_clear_w); DECLARE_READ8_MEMBER(dragrace_input_r); diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h index ef84a05c661..b1cf04f00a5 100644 --- a/src/mame/includes/firetrk.h +++ b/src/mame/includes/firetrk.h @@ -43,7 +43,8 @@ public: m_blink(*this, "blink"), m_drone_x(*this, "drone_x"), m_drone_y(*this, "drone_y"), - m_drone_rot(*this, "drone_rot"){ } + m_drone_rot(*this, "drone_rot"), + m_discrete(*this, "discrete"){ } UINT8 m_in_service_mode; UINT32 m_dial[2]; @@ -59,6 +60,7 @@ public: optional_shared_ptr m_drone_x; optional_shared_ptr m_drone_y; optional_shared_ptr m_drone_rot; + required_device m_discrete; UINT8 m_flash; UINT8 m_crash[2]; UINT8 m_skid[2]; @@ -106,18 +108,18 @@ public: UINT32 screen_update_montecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(firetrk_interrupt); TIMER_CALLBACK_MEMBER(periodic_callback); + DECLARE_WRITE8_MEMBER(firetrk_skid_reset_w); + DECLARE_WRITE8_MEMBER(montecar_skid_reset_w); + DECLARE_WRITE8_MEMBER(firetrk_crash_snd_w); + DECLARE_WRITE8_MEMBER(firetrk_skid_snd_w); + DECLARE_WRITE8_MEMBER(firetrk_motor_snd_w); + DECLARE_WRITE8_MEMBER(superbug_motor_snd_w); + DECLARE_WRITE8_MEMBER(firetrk_xtndply_w); }; /*----------- defined in audio/firetrk.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w ); -DECLARE_WRITE8_DEVICE_HANDLER( montecar_skid_reset_w ); -DECLARE_WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w ); -DECLARE_WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w ); -DECLARE_WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w ); -DECLARE_WRITE8_DEVICE_HANDLER( superbug_motor_snd_w ); -DECLARE_WRITE8_DEVICE_HANDLER( firetrk_xtndply_w ); DISCRETE_SOUND_EXTERN( firetrk ); DISCRETE_SOUND_EXTERN( superbug ); diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h index c395fc88a74..8bb968339dc 100644 --- a/src/mame/includes/harddriv.h +++ b/src/mame/includes/harddriv.h @@ -220,6 +220,7 @@ public: INTERRUPT_GEN_MEMBER(hd68k_irq_gen); TIMER_CALLBACK_MEMBER(deferred_adsp_bank_switch); TIMER_CALLBACK_MEMBER(rddsp32_sync_cb); + DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w); }; @@ -342,8 +343,6 @@ DECLARE_READ16_HANDLER( hdds3_speedup_r ); /*----------- defined in audio/harddriv.c -----------*/ void hdsnd_init(running_machine &machine); -DECLARE_WRITE16_DEVICE_HANDLER( hdsnddsp_dac_w ); - /*----------- defined in video/harddriv.c -----------*/ diff --git a/src/mame/includes/m79amb.h b/src/mame/includes/m79amb.h index 38590e8308b..a34fadda189 100644 --- a/src/mame/includes/m79amb.h +++ b/src/mame/includes/m79amb.h @@ -1,9 +1,35 @@ #include "sound/discrete.h" +class m79amb_state : public driver_device +{ +public: + m79amb_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) , + m_videoram(*this, "videoram"), + m_mask(*this, "mask"), + m_discrete(*this, "discrete"){ } + + /* memory pointers */ + required_shared_ptr m_videoram; + required_shared_ptr m_mask; + + required_device m_discrete; + + /* misc */ + UINT8 m_lut_gun1[0x100]; + UINT8 m_lut_gun2[0x100]; + DECLARE_WRITE8_MEMBER(ramtek_videoram_w); + DECLARE_READ8_MEMBER(gray5bit_controller0_r); + DECLARE_READ8_MEMBER(gray5bit_controller1_r); + DECLARE_WRITE8_MEMBER(m79amb_8002_w); + DECLARE_DRIVER_INIT(m79amb); + UINT32 screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(m79amb_interrupt); + DECLARE_WRITE8_MEMBER(m79amb_8000_w); + DECLARE_WRITE8_MEMBER(m79amb_8003_w); +}; /*----------- defined in audio/m79amb.c -----------*/ DISCRETE_SOUND_EXTERN( m79amb ); -DECLARE_WRITE8_DEVICE_HANDLER( m79amb_8000_w ); -DECLARE_WRITE8_DEVICE_HANDLER( m79amb_8003_w ); diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h index e17f7e95ebd..9888669a26d 100644 --- a/src/mame/includes/mario.h +++ b/src/mame/includes/mario.h @@ -1,6 +1,8 @@ #ifndef MARIO_H_ #define MARIO_H_ +#include "sound/discrete.h" + /* * From the schematics: * @@ -36,7 +38,8 @@ public: mario_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_spriteram(*this, "spriteram"), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete"){ } /* memory pointers */ @@ -57,6 +60,7 @@ public: required_shared_ptr m_spriteram; required_shared_ptr m_videoram; + required_device m_discrete; tilemap_t *m_bg_tilemap; int m_monitor; @@ -83,14 +87,13 @@ public: virtual void palette_init(); UINT32 screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); + DECLARE_WRITE8_MEMBER(mario_sh_sound_w); + DECLARE_WRITE8_MEMBER(mario_sh1_w); + DECLARE_WRITE8_MEMBER(mario_sh2_w); }; /*----------- defined in audio/mario.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( mario_sh1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( mario_sh2_w ); - - MACHINE_CONFIG_EXTERN( mario_audio ); MACHINE_CONFIG_EXTERN( masao_audio ); diff --git a/src/mame/includes/micro3d.h b/src/mame/includes/micro3d.h index d25f4c6d2f2..b153b86fa93 100644 --- a/src/mame/includes/micro3d.h +++ b/src/mame/includes/micro3d.h @@ -117,6 +117,7 @@ public: INTERRUPT_GEN_MEMBER(micro3d_vblank); TIMER_CALLBACK_MEMBER(mac_done_callback); TIMER_CALLBACK_MEMBER(adc_done_callback); + DECLARE_WRITE8_MEMBER(micro3d_upd7759_w); }; struct micro3d_vtx @@ -134,8 +135,6 @@ void micro3d_duart_tx(device_t *device, int channel, UINT8 data); /*----------- defined in audio/micro3d.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( micro3d_upd7759_w ); - void micro3d_noise_sh_w(running_machine &machine, UINT8 data); class micro3d_sound_device : public device_t, diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h index 1d675becdd0..5dde47366c5 100644 --- a/src/mame/includes/mw8080bw.h +++ b/src/mame/includes/mw8080bw.h @@ -38,14 +38,16 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this,"maincpu"), m_main_ram(*this, "main_ram"), - m_colorram(*this, "colorram") + m_colorram(*this, "colorram"), + m_discrete(*this, "discrete") { } /* device/memory pointers */ required_device m_maincpu; required_shared_ptr m_main_ram; optional_shared_ptr m_colorram; - + required_device m_discrete; + /* sound-related */ UINT8 m_port_1_last; UINT8 m_port_2_last; @@ -76,8 +78,7 @@ public: samples_device *m_samples2; device_t *m_sn1; device_t *m_sn2; - device_t *m_sn; - device_t *m_discrete; + device_t *m_sn; DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r); DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r); @@ -147,6 +148,31 @@ public: TIMER_CALLBACK_MEMBER(maze_tone_timing_timer_callback); TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback); TIMER_DEVICE_CALLBACK_MEMBER(spcenctr_strobe_timer_callback); + DECLARE_WRITE8_MEMBER(midway_tone_generator_lo_w); + DECLARE_WRITE8_MEMBER(midway_tone_generator_hi_w); + DECLARE_WRITE8_MEMBER(tornbase_audio_w); + DECLARE_WRITE8_MEMBER(boothill_audio_w); + DECLARE_WRITE8_MEMBER(checkmat_audio_w); + DECLARE_WRITE8_MEMBER(desertgu_audio_1_w); + DECLARE_WRITE8_MEMBER(desertgu_audio_2_w); + DECLARE_WRITE8_MEMBER(dplay_audio_w); + DECLARE_WRITE8_MEMBER(clowns_audio_2_w); + DECLARE_WRITE8_MEMBER(spacwalk_audio_1_w); + DECLARE_WRITE8_MEMBER(spacwalk_audio_2_w); + DECLARE_WRITE8_MEMBER(shuffle_audio_1_w); + DECLARE_WRITE8_MEMBER(shuffle_audio_2_w); + DECLARE_WRITE8_MEMBER(dogpatch_audio_w); + DECLARE_WRITE8_MEMBER(spcenctr_audio_1_w); + DECLARE_WRITE8_MEMBER(spcenctr_audio_2_w); + DECLARE_WRITE8_MEMBER(spcenctr_audio_3_w); + DECLARE_WRITE8_MEMBER(bowler_audio_1_w); + DECLARE_WRITE8_MEMBER(invaders_audio_1_w); + DECLARE_WRITE8_MEMBER(invaders_audio_2_w); + DECLARE_WRITE8_MEMBER(blueshrk_audio_w); + DECLARE_WRITE8_MEMBER(invad2ct_audio_1_w); + DECLARE_WRITE8_MEMBER(invad2ct_audio_2_w); + DECLARE_WRITE8_MEMBER(invad2ct_audio_3_w); + DECLARE_WRITE8_MEMBER(invad2ct_audio_4_w); }; @@ -200,15 +226,12 @@ int invaders_is_cabinet_cocktail(running_machine &machine); /*----------- defined in audio/mw8080bw.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w ); -DECLARE_WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w ); MACHINE_CONFIG_EXTERN( seawolf_audio ); MACHINE_CONFIG_EXTERN( gunfight_audio ); MACHINE_CONFIG_EXTERN( tornbase_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( tornbase_audio_w ); MACHINE_CONFIG_EXTERN( zzzap_audio ); @@ -216,56 +239,34 @@ MACHINE_CONFIG_EXTERN( maze_audio ); void maze_write_discrete(device_t *device, UINT8 maze_tone_timing_state); MACHINE_CONFIG_EXTERN( boothill_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( boothill_audio_w ); MACHINE_CONFIG_EXTERN( checkmat_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( checkmat_audio_w ); MACHINE_CONFIG_EXTERN( desertgu_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( desertgu_audio_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( desertgu_audio_2_w ); MACHINE_CONFIG_EXTERN( dplay_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( dplay_audio_w ); MACHINE_CONFIG_EXTERN( gmissile_audio ); MACHINE_CONFIG_EXTERN( m4_audio ); MACHINE_CONFIG_EXTERN( clowns_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( clowns_audio_2_w ); MACHINE_CONFIG_EXTERN( spacwalk_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w ); MACHINE_CONFIG_EXTERN( shuffle_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( shuffle_audio_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( shuffle_audio_2_w ); MACHINE_CONFIG_EXTERN( dogpatch_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( dogpatch_audio_w ); MACHINE_CONFIG_EXTERN( spcenctr_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w ); -DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w ); MACHINE_CONFIG_EXTERN( phantom2_audio ); MACHINE_CONFIG_EXTERN( bowler_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( bowler_audio_1_w ); MACHINE_CONFIG_EXTERN( invaders_samples_audio ); MACHINE_CONFIG_EXTERN( invaders_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( invaders_audio_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( invaders_audio_2_w ); MACHINE_CONFIG_EXTERN( blueshrk_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( blueshrk_audio_w ); MACHINE_CONFIG_EXTERN( invad2ct_audio ); -DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w ); -DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w ); -DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w ); diff --git a/src/mame/includes/nitedrvr.h b/src/mame/includes/nitedrvr.h index 96923a5a168..5da43fa3568 100644 --- a/src/mame/includes/nitedrvr.h +++ b/src/mame/includes/nitedrvr.h @@ -21,7 +21,8 @@ public: nitedrvr_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_videoram(*this, "videoram"), - m_hvc(*this, "hvc"){ } + m_hvc(*this, "hvc"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_videoram; @@ -43,7 +44,7 @@ public: /* devices */ cpu_device *m_maincpu; - device_t *m_discrete; + required_device m_discrete; DECLARE_READ8_MEMBER(nitedrvr_steering_reset_r); DECLARE_WRITE8_MEMBER(nitedrvr_steering_reset_w); DECLARE_READ8_MEMBER(nitedrvr_in0_r); diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h index 9932f52c6a5..c6110ce2db0 100644 --- a/src/mame/includes/orbit.h +++ b/src/mame/includes/orbit.h @@ -21,11 +21,14 @@ public: orbit_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_playfield_ram(*this, "playfield_ram"), - m_sprite_ram(*this, "sprite_ram"){ } + m_sprite_ram(*this, "sprite_ram"), + m_discrete(*this, "discrete"){ } /* memory pointers */ required_shared_ptr m_playfield_ram; required_shared_ptr m_sprite_ram; + + required_device m_discrete; /* video-related */ tilemap_t *m_bg_tilemap; @@ -36,7 +39,6 @@ public: /* devices */ cpu_device *m_maincpu; - device_t *m_discrete; DECLARE_WRITE8_MEMBER(orbit_misc_w); DECLARE_WRITE8_MEMBER(orbit_playfield_w); TILE_GET_INFO_MEMBER(get_tile_info); @@ -47,10 +49,11 @@ public: INTERRUPT_GEN_MEMBER(orbit_interrupt); TIMER_CALLBACK_MEMBER(irq_off); TIMER_DEVICE_CALLBACK_MEMBER(nmi_32v); + DECLARE_WRITE8_MEMBER(orbit_note_w); + DECLARE_WRITE8_MEMBER(orbit_note_amp_w); + DECLARE_WRITE8_MEMBER(orbit_noise_amp_w); + DECLARE_WRITE8_MEMBER(orbit_noise_rst_w); }; /*----------- defined in audio/orbit.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( orbit_note_w ); -DECLARE_WRITE8_DEVICE_HANDLER( orbit_note_amp_w ); -DECLARE_WRITE8_DEVICE_HANDLER( orbit_noise_amp_w ); -DECLARE_WRITE8_DEVICE_HANDLER( orbit_noise_rst_w ); + DISCRETE_SOUND_EXTERN( orbit ); diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h index 1309e39159b..bfd51d20891 100644 --- a/src/mame/includes/poolshrk.h +++ b/src/mame/includes/poolshrk.h @@ -15,12 +15,14 @@ public: : driver_device(mconfig, type, tag) , m_playfield_ram(*this, "playfield_ram"), m_hpos_ram(*this, "hpos_ram"), - m_vpos_ram(*this, "vpos_ram"){ } + m_vpos_ram(*this, "vpos_ram"), + m_discrete(*this, "discrete"){ } int m_da_latch; required_shared_ptr m_playfield_ram; required_shared_ptr m_hpos_ram; required_shared_ptr m_vpos_ram; + required_device m_discrete; tilemap_t* m_bg_tilemap; DECLARE_WRITE8_MEMBER(poolshrk_da_latch_w); DECLARE_WRITE8_MEMBER(poolshrk_led_w); @@ -32,13 +34,12 @@ public: virtual void video_start(); virtual void palette_init(); UINT32 screen_update_poolshrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE8_MEMBER(poolshrk_scratch_sound_w); + DECLARE_WRITE8_MEMBER(poolshrk_score_sound_w); + DECLARE_WRITE8_MEMBER(poolshrk_click_sound_w); + DECLARE_WRITE8_MEMBER(poolshrk_bump_sound_w); }; /*----------- defined in audio/poolshrk.c -----------*/ - -DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w ); -DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w ); -DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w ); -DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w ); DISCRETE_SOUND_EXTERN( poolshrk ); diff --git a/src/mame/includes/qix.h b/src/mame/includes/qix.h index 59cefdf2b1a..c6d61c3cf3f 100644 --- a/src/mame/includes/qix.h +++ b/src/mame/includes/qix.h @@ -9,7 +9,7 @@ #include "video/mc6845.h" #include "machine/6821pia.h" #include "sound/sn76496.h" - +#include "sound/discrete.h" #define MAIN_CLOCK_OSC 20000000 /* 20 MHz */ #define SLITHER_CLOCK_OSC 21300000 /* 21.3 MHz */ @@ -33,7 +33,8 @@ public: m_videoram_address(*this, "videoram_addr"), m_videoram_mask(*this, "videoram_mask"), m_paletteram(*this, "paletteram"), - m_scanline_latch(*this, "scanline_latch") { } + m_scanline_latch(*this, "scanline_latch"), + m_discrete(*this, "discrete") { } /* devices */ optional_device m_sn1; @@ -54,6 +55,7 @@ public: UINT8 m_palette_bank; UINT8 m_leds; required_shared_ptr m_scanline_latch; + required_device m_discrete; pen_t m_pens[NUM_PENS]; DECLARE_WRITE8_MEMBER(zookeep_bankswitch_w); DECLARE_WRITE8_MEMBER(qix_data_firq_w); @@ -97,6 +99,13 @@ public: DECLARE_READ8_MEMBER(slither_trak_ud_r); DECLARE_WRITE_LINE_MEMBER(display_enable_changed); DECLARE_WRITE8_MEMBER(qix_flip_screen_w); + DECLARE_WRITE8_MEMBER(qix_dac_w); + DECLARE_WRITE8_MEMBER(qix_vol_w); + DECLARE_WRITE8_MEMBER(sndpia_2_warning_w); + DECLARE_WRITE8_MEMBER(sync_sndpia1_porta_w); + DECLARE_WRITE8_MEMBER(slither_coinctl_w); + DECLARE_WRITE_LINE_MEMBER(qix_pia_dint); + DECLARE_WRITE_LINE_MEMBER(qix_pia_sint); }; diff --git a/src/mame/includes/redalert.h b/src/mame/includes/redalert.h index 836492d3597..6e854168a2f 100644 --- a/src/mame/includes/redalert.h +++ b/src/mame/includes/redalert.h @@ -41,6 +41,13 @@ public: UINT32 screen_update_demoneye(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_panther(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(redalert_vblank_interrupt); + DECLARE_WRITE8_MEMBER(redalert_analog_w); + DECLARE_WRITE8_MEMBER(redalert_AY8910_w); + DECLARE_WRITE_LINE_MEMBER(sod_callback); + DECLARE_READ_LINE_MEMBER(sid_callback); + DECLARE_WRITE8_MEMBER(demoneye_ay8910_latch_1_w); + DECLARE_READ8_MEMBER(demoneye_ay8910_latch_2_r); + DECLARE_WRITE8_MEMBER(demoneye_ay8910_data_w); }; /*----------- defined in audio/redalert.c -----------*/ diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h index 11ccc30af29..d980e891d7e 100644 --- a/src/mame/includes/segag80r.h +++ b/src/mame/includes/segag80r.h @@ -102,6 +102,14 @@ public: INTERRUPT_GEN_MEMBER(segag80r_vblank_start); INTERRUPT_GEN_MEMBER(sindbadm_vblank_start); TIMER_CALLBACK_MEMBER(vblank_latch_clear); + DECLARE_WRITE8_MEMBER(sega005_sound_a_w); + DECLARE_WRITE8_MEMBER(sega005_sound_b_w); + DECLARE_WRITE8_MEMBER(monsterb_sound_a_w); + DECLARE_WRITE8_MEMBER(monsterb_sound_b_w); + DECLARE_READ8_MEMBER(n7751_status_r); + DECLARE_WRITE8_MEMBER(n7751_command_w); + DECLARE_WRITE8_MEMBER(n7751_rom_control_w); + DECLARE_WRITE8_MEMBER(n7751_p2_w); }; diff --git a/src/mame/includes/senjyo.h b/src/mame/includes/senjyo.h index 1d42befacfe..6f6667100dc 100644 --- a/src/mame/includes/senjyo.h +++ b/src/mame/includes/senjyo.h @@ -83,6 +83,7 @@ public: virtual void video_start(); UINT32 screen_update_senjyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(senjyo_interrupt); + DECLARE_READ8_MEMBER(pio_pa_r); }; /*----------- defined in audio/senjyo.c -----------*/ diff --git a/src/mame/includes/skyraid.h b/src/mame/includes/skyraid.h index 33a0e21d4ef..7266e184b3f 100644 --- a/src/mame/includes/skyraid.h +++ b/src/mame/includes/skyraid.h @@ -7,7 +7,8 @@ public: : driver_device(mconfig, type, tag) , m_pos_ram(*this, "pos_ram"), m_alpha_num_ram(*this, "alpha_num_ram"), - m_obj_ram(*this, "obj_ram"){ } + m_obj_ram(*this, "obj_ram"), + m_discrete(*this, "discrete"){ } int m_analog_range; int m_analog_offset; @@ -17,7 +18,7 @@ public: required_shared_ptr m_pos_ram; required_shared_ptr m_alpha_num_ram; required_shared_ptr m_obj_ram; - + required_device m_discrete; bitmap_ind16 m_helper; DECLARE_READ8_MEMBER(skyraid_port_0_r); DECLARE_WRITE8_MEMBER(skyraid_range_w); @@ -26,9 +27,8 @@ public: virtual void video_start(); virtual void palette_init(); UINT32 screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE8_MEMBER(skyraid_sound_w); }; /*----------- defined in audio/skyraid.c -----------*/ DISCRETE_SOUND_EXTERN( skyraid ); -DECLARE_WRITE8_DEVICE_HANDLER( skyraid_sound_w ); - diff --git a/src/mame/includes/spiders.h b/src/mame/includes/spiders.h index f0272ce7480..00c552996f6 100644 --- a/src/mame/includes/spiders.h +++ b/src/mame/includes/spiders.h @@ -3,7 +3,7 @@ Sigma Spiders hardware ***************************************************************************/ - +#include "sound/discrete.h" #define NUM_PENS (8) @@ -12,9 +12,11 @@ class spiders_state : public driver_device public: spiders_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_ram(*this, "ram"){ } + m_ram(*this, "ram"), + m_discrete(*this, "discrete"){ } required_shared_ptr m_ram; + required_device m_discrete; UINT8 m_flipscreen; UINT16 m_gfx_rom_address; UINT8 m_gfx_rom_ctrl_mode; @@ -31,12 +33,11 @@ public: virtual void machine_start(); INTERRUPT_GEN_MEMBER(update_pia_1); DECLARE_WRITE8_MEMBER(ic60_74123_output_changed); + DECLARE_WRITE8_MEMBER(spiders_audio_command_w); + DECLARE_WRITE8_MEMBER(spiders_audio_a_w); + DECLARE_WRITE8_MEMBER(spiders_audio_b_w); + DECLARE_WRITE8_MEMBER(spiders_audio_ctrl_w); }; /*----------- defined in audio/spiders.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_command_w ); -DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_b_w ); -DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w ); - MACHINE_CONFIG_EXTERN( spiders_audio ); diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h index 0e3adc02be4..32f56e5185b 100644 --- a/src/mame/includes/sprint8.h +++ b/src/mame/includes/sprint8.h @@ -9,7 +9,8 @@ public: m_pos_h_ram(*this, "pos_h_ram"), m_pos_v_ram(*this, "pos_v_ram"), m_pos_d_ram(*this, "pos_d_ram"), - m_team(*this, "team"){ } + m_team(*this, "team"), + m_discrete(*this, "discrete"){ } int m_steer_dir[8]; int m_steer_flag[8]; @@ -21,6 +22,7 @@ public: required_shared_ptr m_pos_v_ram; required_shared_ptr m_pos_d_ram; required_shared_ptr m_team; + required_device m_discrete; tilemap_t* m_tilemap1; tilemap_t* m_tilemap2; bitmap_ind16 m_helper1; @@ -39,6 +41,10 @@ public: void screen_eof_sprint8(screen_device &screen, bool state); TIMER_CALLBACK_MEMBER(sprint8_collision_callback); TIMER_DEVICE_CALLBACK_MEMBER(input_callback); + DECLARE_WRITE8_MEMBER(sprint8_crash_w); + DECLARE_WRITE8_MEMBER(sprint8_screech_w); + DECLARE_WRITE8_MEMBER(sprint8_attract_w); + DECLARE_WRITE8_MEMBER(sprint8_motor_w); }; /*----------- defined in drivers/sprint8.c -----------*/ @@ -47,8 +53,3 @@ void sprint8_set_collision(running_machine &machine, int n); /*----------- defined in audio/sprint8.c -----------*/ DISCRETE_SOUND_EXTERN( sprint8 ); - -DECLARE_WRITE8_DEVICE_HANDLER( sprint8_crash_w ); -DECLARE_WRITE8_DEVICE_HANDLER( sprint8_screech_w ); -DECLARE_WRITE8_DEVICE_HANDLER( sprint8_attract_w ); -DECLARE_WRITE8_DEVICE_HANDLER( sprint8_motor_w ); diff --git a/src/mame/includes/starwars.h b/src/mame/includes/starwars.h index cafffae3cbc..6155d1f4b0d 100644 --- a/src/mame/includes/starwars.h +++ b/src/mame/includes/starwars.h @@ -63,6 +63,9 @@ public: DECLARE_DRIVER_INIT(starwars); virtual void machine_reset(); TIMER_CALLBACK_MEMBER(math_run_clear); + DECLARE_READ8_MEMBER(r6532_porta_r); + DECLARE_WRITE8_MEMBER(r6532_porta_w); + DECLARE_WRITE_LINE_MEMBER(snd_interrupt); }; diff --git a/src/mame/includes/subs.h b/src/mame/includes/subs.h index 0df9e94d535..abf56a18549 100644 --- a/src/mame/includes/subs.h +++ b/src/mame/includes/subs.h @@ -22,10 +22,12 @@ public: subs_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_spriteram(*this, "spriteram"), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_discrete(*this, "discrete"){ } required_shared_ptr m_spriteram; required_shared_ptr m_videoram; + required_device m_discrete; int m_steering_buf1; int m_steering_buf2; int m_steering_val1; @@ -45,14 +47,13 @@ public: UINT32 screen_update_subs_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_subs_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(subs_interrupt); + DECLARE_WRITE8_MEMBER(subs_sonar1_w); + DECLARE_WRITE8_MEMBER(subs_sonar2_w); + DECLARE_WRITE8_MEMBER(subs_crash_w); + DECLARE_WRITE8_MEMBER(subs_explode_w); + DECLARE_WRITE8_MEMBER(subs_noise_reset_w); }; /*----------- defined in audio/subs.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( subs_noise_reset_w ); -DECLARE_WRITE8_DEVICE_HANDLER( subs_sonar2_w ); -DECLARE_WRITE8_DEVICE_HANDLER( subs_sonar1_w ); -DECLARE_WRITE8_DEVICE_HANDLER( subs_crash_w ); -DECLARE_WRITE8_DEVICE_HANDLER( subs_explode_w ); - DISCRETE_SOUND_EXTERN( subs ); diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h index f6d995855d4..fdee1006a48 100644 --- a/src/mame/includes/suna8.h +++ b/src/mame/includes/suna8.h @@ -106,11 +106,11 @@ public: UINT32 screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(brickzn_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(hardhea2_interrupt); + DECLARE_WRITE8_MEMBER(suna8_play_samples_w); + DECLARE_WRITE8_MEMBER(rranger_play_samples_w); + DECLARE_WRITE8_MEMBER(suna8_samples_number_w); }; /*----------- defined in audio/suna8.c -----------*/ -DECLARE_WRITE8_DEVICE_HANDLER( suna8_play_samples_w ); -DECLARE_WRITE8_DEVICE_HANDLER( rranger_play_samples_w ); -DECLARE_WRITE8_DEVICE_HANDLER( suna8_samples_number_w ); SAMPLES_START( suna8_sh_start ); diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h index 0a2b699b590..87214e75d2e 100644 --- a/src/mame/includes/turbo.h +++ b/src/mame/includes/turbo.h @@ -132,6 +132,14 @@ public: UINT32 screen_update_subroc3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(delayed_i8255_w); + DECLARE_WRITE8_MEMBER(turbo_sound_a_w); + DECLARE_WRITE8_MEMBER(turbo_sound_b_w); + DECLARE_WRITE8_MEMBER(turbo_sound_c_w); + DECLARE_WRITE8_MEMBER(subroc3d_sound_a_w); + DECLARE_WRITE8_MEMBER(subroc3d_sound_b_w); + DECLARE_WRITE8_MEMBER(subroc3d_sound_c_w); + DECLARE_WRITE8_MEMBER(buckrog_sound_a_w); + DECLARE_WRITE8_MEMBER(buckrog_sound_b_w); }; @@ -139,14 +147,3 @@ public: MACHINE_CONFIG_EXTERN( turbo_samples ); MACHINE_CONFIG_EXTERN( subroc3d_samples ); MACHINE_CONFIG_EXTERN( buckrog_samples ); - -DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_b_w ); -DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_c_w ); - -DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_b_w ); -DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w ); - -DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_b_w ); diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h index 03a8d223541..ef64c7fbca2 100644 --- a/src/mame/includes/zaxxon.h +++ b/src/mame/includes/zaxxon.h @@ -73,17 +73,14 @@ public: UINT32 screen_update_razmataz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_congo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_int); + DECLARE_WRITE8_MEMBER(zaxxon_sound_a_w); + DECLARE_WRITE8_MEMBER(zaxxon_sound_b_w); + DECLARE_WRITE8_MEMBER(zaxxon_sound_c_w); + DECLARE_WRITE8_MEMBER(congo_sound_b_w); + DECLARE_WRITE8_MEMBER(congo_sound_c_w); }; /*----------- defined in audio/zaxxon.c -----------*/ - -DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w ); -DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_c_w ); - -DECLARE_WRITE8_DEVICE_HANDLER( congo_sound_b_w ); -DECLARE_WRITE8_DEVICE_HANDLER( congo_sound_c_w ); - MACHINE_CONFIG_EXTERN( zaxxon_samples ); MACHINE_CONFIG_EXTERN( congo_samples ); diff --git a/src/mame/machine/mw8080bw.c b/src/mame/machine/mw8080bw.c index 181cb313ffd..c75034d9e37 100644 --- a/src/mame/machine/mw8080bw.c +++ b/src/mame/machine/mw8080bw.c @@ -104,7 +104,6 @@ MACHINE_START_MEMBER(mw8080bw_state,mw8080bw) m_sn = machine().device("snsnd"); m_sn1 = machine().device("sn1"); m_sn2 = machine().device("sn2"); - m_discrete = machine().device("discrete"); m_mb14241 = machine().device("mb14241"); } diff --git a/src/mame/machine/nitedrvr.c b/src/mame/machine/nitedrvr.c index 3e2102225c8..1126d33ba2a 100644 --- a/src/mame/machine/nitedrvr.c +++ b/src/mame/machine/nitedrvr.c @@ -277,7 +277,6 @@ void nitedrvr_state::machine_start() { m_maincpu = machine().device("maincpu"); - m_discrete = machine().device("discrete"); save_item(NAME(m_gear)); save_item(NAME(m_track));