Replace some *_DEVICE_HANDLER with _MEMBER calls, mostly audio (no whatsnew)

This commit is contained in:
Miodrag Milanovic 2012-09-28 08:39:43 +00:00
parent e1f7a289f3
commit 8701f68d97
97 changed files with 940 additions and 941 deletions

View File

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

View File

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

View File

@ -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. */

View File

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

View File

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

View File

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

View File

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

View File

@ -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<cchasm_state>();
if (state) /* rising edge */
{
drvstate->m_output[0] ^= 0x7f;
drvstate->m_channel_active[0] = 1;
device->machine().device<dac_device>("dac1")->write_unsigned8(drvstate->m_output[0]);
m_output[0] ^= 0x7f;
m_channel_active[0] = 1;
machine().device<dac_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<cchasm_state>();
if (state) /* rising edge */
{
drvstate->m_output[1] ^= 0x7f;
drvstate->m_channel_active[1] = 1;
device->machine().device<dac_device>("dac2")->write_unsigned8(drvstate->m_output[0]);
m_output[1] ^= 0x7f;
m_channel_active[1] = 1;
machine().device<dac_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 )

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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<harddriv_state>();
/* DAC L */
if (!state->m_dacmute)
downcast<dac_device *>(device)->write_signed16(data ^ 0x8000);
if (!m_dacmute)
downcast<dac_device *>(machine().device("dac"))->write_signed16(data ^ 0x8000);
}

View File

@ -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 */
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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<pia6821_device *>(device));
machine().scheduler().synchronize(FUNC(deferred_sndpia1_porta_w), data, (void *)downcast<pia6821_device *>(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<pia6821_device *>(device);
pia6821_device *pia = downcast<pia6821_device *>(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<pia6821_device *>(device);
pia6821_device *pia = downcast<pia6821_device *>(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 */
};

View File

@ -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<redalert_state>();
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<redalert_state>();
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<redalert_state>();
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<redalert_state>();
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 */

View File

@ -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<segag80r_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[0];
state->m_sound_state[0] = data;
samples_device *samples = machine().device<samples_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<segag80r_state>();
/*
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<segag80r_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[1];
state->m_sound_state[1] = data;
samples_device *samples = machine().device<samples_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<segag80r_state>();
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<segag80r_state>();
/*
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<segag80r_state>();
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;
}

View File

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

View File

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

View File

@ -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<pia6821_device *>(device);
pia6821_device *pia = downcast<pia6821_device *>(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);
}

View File

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

View File

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

View File

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

View File

@ -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<suna8_state>();
if( data )
{
samples_device *samples = downcast<samples_device *>(device);
samples_device *samples = downcast<samples_device *>(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<suna8_state>();
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<samples_device *>(device);
samples->start_raw(0, &state->m_samplebuf[0x800*state->m_sample], 0x0800, 4000);
samples_device *samples = downcast<samples_device *>(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<suna8_state>();
state->m_sample = data & 0xf;
m_sample = data & 0xf;
}
SAMPLES_START( suna8_sh_start )

View File

@ -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_device>("samples");
samples_device *samples = machine().device<samples_device>("samples");
#endif
turbo_state *state = space.machine().driver_data<turbo_state>();
#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_device>("samples");
turbo_state *state = space.machine().driver_data<turbo_state>();
UINT8 diff = data ^ state->m_sound_state[1];
state->m_sound_state[1] = data;
samples_device *samples = machine().device<samples_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_device>("samples");
turbo_state *state = space.machine().driver_data<turbo_state>();
samples_device *samples = machine().device<samples_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<turbo_state>();
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_device>("samples");
turbo_state *state = space.machine().driver_data<turbo_state>();
UINT8 diff = data ^ state->m_sound_state[1];
state->m_sound_state[1] = data;
samples_device *samples = machine().device<samples_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_device>("samples");
turbo_state *state = space.machine().driver_data<turbo_state>();
UINT8 diff = data ^ state->m_sound_state[2];
state->m_sound_state[2] = data;
samples_device *samples = machine().device<samples_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_device>("samples");
turbo_state *state = space.machine().driver_data<turbo_state>();
UINT8 diff = data ^ state->m_sound_state[0];
state->m_sound_state[0] = data;
samples_device *samples = machine().device<samples_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_device>("samples");
turbo_state *state = space.machine().driver_data<turbo_state>();
UINT8 diff = data ^ state->m_sound_state[1];
state->m_sound_state[1] = data;
samples_device *samples = machine().device<samples_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);
}

View File

@ -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<zaxxon_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[0];
state->m_sound_state[0] = data;
samples_device *samples = machine().device<samples_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<zaxxon_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[1];
state->m_sound_state[1] = data;
samples_device *samples = machine().device<samples_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<zaxxon_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[2];
state->m_sound_state[2] = data;
samples_device *samples = machine().device<samples_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<zaxxon_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[1];
state->m_sound_state[1] = data;
samples_device *samples = machine().device<samples_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<zaxxon_state>();
samples_device *samples = space.machine().device<samples_device>("samples");
UINT8 diff = data ^ state->m_sound_state[2];
state->m_sound_state[2] = data;
samples_device *samples = machine().device<samples_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);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -266,7 +266,6 @@ void circus_state::machine_start()
m_maincpu = machine().device<cpu_device>("maincpu");
m_samples = machine().device<samples_device>("samples");
m_discrete = machine().device("discrete");
save_item(NAME(m_clown_x));
save_item(NAME(m_clown_y));

View File

@ -61,7 +61,6 @@ void circusc_state::machine_start()
m_audiocpu = machine().device<cpu_device>("audiocpu");
m_dac = machine().device<dac_device>("dac");
m_discrete = machine().device("fltdisc");
save_item(NAME(m_sn_latch));
}

View File

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

View File

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

View File

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

View File

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

View File

@ -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<UINT8> m_videoram;
required_shared_ptr<UINT8> 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 /* ?? */

View File

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

View File

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

View File

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

View File

@ -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<cpu_device>("maincpu");
m_discrete = machine().device("discrete");
save_item(NAME(m_misc_flags));
save_item(NAME(m_flip_screen));

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 */
};

View File

@ -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<timer_device> m_schaser_effect_555_timer;
optional_device<timer_device> m_claybust_gun_on;
required_device<discrete_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;

View File

@ -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<UINT8> m_ram1;
optional_shared_ptr<UINT8> m_ram2;
required_device<discrete_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 );

View File

@ -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<UINT8> m_videoram;
required_device<discrete_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 );

View File

@ -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<UINT8> m_videoram;
required_device<discrete_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 );

View File

@ -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<UINT8> m_videoram;
required_shared_ptr<UINT8> m_motion;
required_device<discrete_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 );

View File

@ -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<discrete_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 -----------*/

View File

@ -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<UINT8> m_videoram;
required_device<discrete_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 );

View File

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

View File

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

View File

@ -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<UINT8> m_videoram;
@ -19,7 +20,7 @@ public:
/* devices */
cpu_device *m_maincpu;
samples_device *m_samples;
device_t *m_discrete;
required_device<discrete_device> m_discrete;
/* game id */
int m_game_id;

View File

@ -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<UINT8> m_spritebank;
@ -40,7 +41,7 @@ public:
required_device<sn76496_new_device> m_sn_1;
required_device<sn76496_new_device> m_sn_2;
dac_device *m_dac;
device_t *m_discrete;
required_device<discrete_device> m_discrete;
UINT8 m_irq_mask;
DECLARE_READ8_MEMBER(circusc_sh_timer_r);

View File

@ -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<UINT8> m_trucky;
@ -26,7 +27,7 @@ public:
required_shared_ptr<UINT8> m_carimage;
required_shared_ptr<UINT8> m_cary;
required_shared_ptr<UINT8> m_videoram;
required_device<discrete_device> m_discrete;
/* misc */
UINT8 m_misc;
UINT8 m_ic_h3_data;

View File

@ -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<UINT8> m_videoram;
required_shared_ptr<UINT8> m_colorram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_pc3092_data;
required_device<discrete_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 -----------*/

View File

@ -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<UINT8> 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<discrete_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 -----------*/

View File

@ -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<UINT8> m_playfield_ram;
@ -42,7 +43,7 @@ public:
int m_gear[2];
/* devices */
device_t *m_discrete;
required_device<discrete_device> m_discrete;
DECLARE_WRITE8_MEMBER(dragrace_misc_w);
DECLARE_WRITE8_MEMBER(dragrace_misc_clear_w);
DECLARE_READ8_MEMBER(dragrace_input_r);

View File

@ -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<UINT8> m_drone_x;
optional_shared_ptr<UINT8> m_drone_y;
optional_shared_ptr<UINT8> m_drone_rot;
required_device<discrete_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 );

View File

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

View File

@ -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<UINT8> m_videoram;
required_shared_ptr<UINT8> m_mask;
required_device<discrete_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 );

View File

@ -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<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_videoram;
required_device<discrete_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 );

View File

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

View File

@ -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<cpu_device> m_maincpu;
required_shared_ptr<UINT8> m_main_ram;
optional_shared_ptr<UINT8> m_colorram;
required_device<discrete_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 );

View File

@ -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<UINT8> m_videoram;
@ -43,7 +44,7 @@ public:
/* devices */
cpu_device *m_maincpu;
device_t *m_discrete;
required_device<discrete_device> m_discrete;
DECLARE_READ8_MEMBER(nitedrvr_steering_reset_r);
DECLARE_WRITE8_MEMBER(nitedrvr_steering_reset_w);
DECLARE_READ8_MEMBER(nitedrvr_in0_r);

View File

@ -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<UINT8> m_playfield_ram;
required_shared_ptr<UINT8> m_sprite_ram;
required_device<discrete_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 );

View File

@ -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<UINT8> m_playfield_ram;
required_shared_ptr<UINT8> m_hpos_ram;
required_shared_ptr<UINT8> m_vpos_ram;
required_device<discrete_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 );

View File

@ -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<sn76489_new_device> m_sn1;
@ -54,6 +55,7 @@ public:
UINT8 m_palette_bank;
UINT8 m_leds;
required_shared_ptr<UINT8> m_scanline_latch;
required_device<discrete_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);
};

View File

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

View File

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

View File

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

View File

@ -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<UINT8> m_pos_ram;
required_shared_ptr<UINT8> m_alpha_num_ram;
required_shared_ptr<UINT8> m_obj_ram;
required_device<discrete_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 );

View File

@ -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<UINT8> m_ram;
required_device<discrete_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 );

View File

@ -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<UINT8> m_pos_v_ram;
required_shared_ptr<UINT8> m_pos_d_ram;
required_shared_ptr<UINT8> m_team;
required_device<discrete_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 );

View File

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

View File

@ -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<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_videoram;
required_device<discrete_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 );

View File

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

View File

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

View File

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

View File

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

View File

@ -277,7 +277,6 @@ void nitedrvr_state::machine_start()
{
m_maincpu = machine().device<cpu_device>("maincpu");
m_discrete = machine().device("discrete");
save_item(NAME(m_gear));
save_item(NAME(m_track));