discrete lookups removal (nw)

This commit is contained in:
Miodrag Milanovic 2013-04-12 07:32:37 +00:00
parent 4570c897cf
commit 056c7d387c
38 changed files with 179 additions and 219 deletions

View File

@ -92,7 +92,8 @@ public:
m_laserdisc(*this, "laserdisc"),
m_port_bank(0),
m_phillips_code(0) ,
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
required_device<pioneer_pr8210_device> m_laserdisc;
@ -115,6 +116,7 @@ public:
virtual void machine_reset();
TIMER_CALLBACK_MEMBER(cliff_irq_callback);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
@ -172,10 +174,9 @@ READ8_MEMBER(cliffhgr_state::cliff_irq_ack_r)
WRITE8_MEMBER(cliffhgr_state::cliff_sound_overlay_w)
{
device_t *device = machine().device("discrete");
/* audio */
discrete_sound_w(device, space, CLIFF_ENABLE_SND_1, data & 1);
discrete_sound_w(device, space, CLIFF_ENABLE_SND_2, (data >> 1) & 1);
discrete_sound_w(m_discrete, space, CLIFF_ENABLE_SND_1, data & 1);
discrete_sound_w(m_discrete, space, CLIFF_ENABLE_SND_2, (data >> 1) & 1);
// bit 4 (data & 0x10) is overlay related?
}

View File

@ -36,8 +36,7 @@ INPUT_CHANGED_MEMBER(firetrk_state::service_mode_switch_changed)
INPUT_CHANGED_MEMBER(firetrk_state::firetrk_horn_changed)
{
device_t *discrete = machine().device("discrete");
discrete_sound_w(discrete, generic_space(), FIRETRUCK_HORN_EN, newval);
discrete_sound_w(m_discrete, generic_space(), FIRETRUCK_HORN_EN, newval);
}
@ -74,8 +73,6 @@ TIMER_CALLBACK_MEMBER(firetrk_state::periodic_callback)
WRITE8_MEMBER(firetrk_state::firetrk_output_w)
{
device_t *discrete = machine().device("discrete");
/* BIT0 => START1 LAMP */
set_led_status(machine(), 0, !(data & 0x01));
@ -89,7 +86,7 @@ WRITE8_MEMBER(firetrk_state::firetrk_output_w)
set_led_status(machine(), 3, !(data & 0x08));
/* BIT4 => ATTRACT */
discrete_sound_w(discrete, space, FIRETRUCK_ATTRACT_EN, data & 0x10);
discrete_sound_w(m_discrete, space, FIRETRUCK_ATTRACT_EN, data & 0x10);
coin_lockout_w(machine(), 0, !(data & 0x10));
coin_lockout_w(machine(), 1, !(data & 0x10));
@ -99,19 +96,17 @@ WRITE8_MEMBER(firetrk_state::firetrk_output_w)
/* BIT6 => UNUSED */
/* BIT7 => BELL OUT */
discrete_sound_w(discrete, space, FIRETRUCK_BELL_EN, data & 0x80);
discrete_sound_w(m_discrete, space, FIRETRUCK_BELL_EN, data & 0x80);
}
WRITE8_MEMBER(firetrk_state::superbug_output_w)
{
device_t *discrete = machine().device("discrete");
/* BIT0 => START LAMP */
set_led_status(machine(), 0, offset & 0x01);
/* BIT1 => ATTRACT */
discrete_sound_w(discrete, space, SUPERBUG_ATTRACT_EN, offset & 0x02);
discrete_sound_w(m_discrete, space, SUPERBUG_ATTRACT_EN, offset & 0x02);
coin_lockout_w(machine(), 0, !(offset & 0x02));
coin_lockout_w(machine(), 1, !(offset & 0x02));
@ -125,8 +120,6 @@ WRITE8_MEMBER(firetrk_state::superbug_output_w)
WRITE8_MEMBER(firetrk_state::montecar_output_1_w)
{
device_t *discrete = machine().device("discrete");
/* BIT0 => START LAMP */
set_led_status(machine(), 0, !(data & 0x01));
@ -134,7 +127,7 @@ WRITE8_MEMBER(firetrk_state::montecar_output_1_w)
set_led_status(machine(), 1, !(data & 0x02));
/* BIT2 => ATTRACT */
discrete_sound_w(discrete, space, MONTECAR_ATTRACT_INV, data & 0x04);
discrete_sound_w(m_discrete, space, MONTECAR_ATTRACT_INV, data & 0x04);
/* BIT3 => UNUSED */
/* BIT4 => UNUSED */
@ -152,12 +145,10 @@ WRITE8_MEMBER(firetrk_state::montecar_output_1_w)
WRITE8_MEMBER(firetrk_state::montecar_output_2_w)
{
device_t *discrete = machine().device("discrete");
m_flash = data & 0x80;
discrete_sound_w(discrete, space, MONTECAR_BEEPER_EN, data & 0x10);
discrete_sound_w(discrete, space, MONTECAR_DRONE_LOUD_DATA, data & 0x0f);
discrete_sound_w(m_discrete, space, MONTECAR_BEEPER_EN, data & 0x10);
discrete_sound_w(m_discrete, space, MONTECAR_DRONE_LOUD_DATA, data & 0x0f);
}

View File

@ -962,7 +962,8 @@ public:
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
m_colorram(*this, "colorram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_colorram;
@ -1007,6 +1008,7 @@ public:
DECLARE_PALETTE_INIT(wcrdxtnd);
UINT32 screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
optional_device<discrete_device> m_discrete;
};
@ -1358,13 +1360,12 @@ WRITE8_MEMBER(goldnpkr_state::lamps_a_w)
WRITE8_MEMBER(goldnpkr_state::sound_w)
{
device_t *device = machine().device("discrete");
/* 555 voltage controlled */
logerror("Sound Data: %2x\n",data & 0x0f);
/* discrete sound is connected to PIA1, portA: bits 0-3 */
discrete_sound_w(device, space, NODE_01, data >> 3 & 0x01);
discrete_sound_w(device, space, NODE_10, data & 0x07);
discrete_sound_w(m_discrete, space, NODE_01, data >> 3 & 0x01);
discrete_sound_w(m_discrete, space, NODE_10, data & 0x07);
}

View File

@ -238,7 +238,6 @@ WRITE8_MEMBER(grchamp_state::led_board_w)
WRITE8_MEMBER(grchamp_state::cpu1_outputs_w)
{
device_t *discrete = machine().device("discrete");
UINT8 diff = data ^ m_cpu1_out[offset];
m_cpu1_out[offset] = data;
@ -301,18 +300,18 @@ WRITE8_MEMBER(grchamp_state::cpu1_outputs_w)
/* bit 2-4: ATTACK UP 1-3 */
/* bit 5-6: SIFT 1-2 */
/* bit 7: ENGINE CS */
discrete_sound_w(discrete, space, GRCHAMP_ENGINE_CS_EN, data & 0x80);
discrete_sound_w(discrete, space, GRCHAMP_SIFT_DATA, (data >> 5) & 0x03);
discrete_sound_w(discrete, space, GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07);
discrete_sound_w(discrete, space, GRCHAMP_IDLING_EN, data & 0x02);
discrete_sound_w(discrete, space, GRCHAMP_FOG_EN, data & 0x01);
discrete_sound_w(m_discrete, space, GRCHAMP_ENGINE_CS_EN, data & 0x80);
discrete_sound_w(m_discrete, space, GRCHAMP_SIFT_DATA, (data >> 5) & 0x03);
discrete_sound_w(m_discrete, space, GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07);
discrete_sound_w(m_discrete, space, GRCHAMP_IDLING_EN, data & 0x02);
discrete_sound_w(m_discrete, space, GRCHAMP_FOG_EN, data & 0x01);
break;
case 0x0d: /* OUTD */
/* bit 0-3: ATTACK SPEED 1-4 */
/* bit 4-7: PLAYER SPEED 1-4 */
discrete_sound_w(discrete, space, GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f);
discrete_sound_w(discrete, space, GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f);
discrete_sound_w(m_discrete, space, GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f);
discrete_sound_w(m_discrete, space, GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f);
break;
default:
@ -410,14 +409,12 @@ READ8_MEMBER(grchamp_state::main_to_sub_comm_r)
WRITE8_MEMBER(grchamp_state::grchamp_portA_0_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, GRCHAMP_A_DATA, data);
discrete_sound_w(m_discrete, space, GRCHAMP_A_DATA, data);
}
WRITE8_MEMBER(grchamp_state::grchamp_portB_0_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, GRCHAMP_B_DATA, 255-data);
discrete_sound_w(m_discrete, space, GRCHAMP_B_DATA, 255-data);
}
WRITE8_MEMBER(grchamp_state::grchamp_portA_2_w)

View File

@ -179,7 +179,6 @@ READ8_MEMBER(hitme_state::hitme_port_3_r)
WRITE8_MEMBER(hitme_state::output_port_0_w)
{
device_t *device = machine().device("discrete");
/*
Note: We compute the timeout time on a write here. Unfortunately, the situation is
kind of weird, because the discrete sound system is also affected by this timeout.
@ -191,16 +190,15 @@ WRITE8_MEMBER(hitme_state::output_port_0_w)
attotime duration = attotime(0, ATTOSECONDS_PER_SECOND * 0.45 * 6.8e-6 * resistance * (data + 1));
m_timeout_time = machine().time() + duration;
discrete_sound_w(device, space, HITME_DOWNCOUNT_VAL, data);
discrete_sound_w(device, space, HITME_OUT0, 1);
discrete_sound_w(m_discrete, space, HITME_DOWNCOUNT_VAL, data);
discrete_sound_w(m_discrete, space, HITME_OUT0, 1);
}
WRITE8_MEMBER(hitme_state::output_port_1_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, HITME_ENABLE_VAL, data);
discrete_sound_w(device, space, HITME_OUT1, 1);
discrete_sound_w(m_discrete, space, HITME_ENABLE_VAL, data);
discrete_sound_w(m_discrete, space, HITME_OUT1, 1);
}

View File

@ -68,13 +68,11 @@ READ8_MEMBER(madalien_state::madalien_sound_command_r)
WRITE8_MEMBER(madalien_state::madalien_portA_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, MADALIEN_8910_PORTA, data);
discrete_sound_w(m_discrete, space, MADALIEN_8910_PORTA, data);
}
WRITE8_MEMBER(madalien_state::madalien_portB_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, MADALIEN_8910_PORTB, data);
discrete_sound_w(m_discrete, space, MADALIEN_8910_PORTB, data);
}

View File

@ -864,7 +864,7 @@ MACHINE_CONFIG_END
void mw8080bw_state::maze_update_discrete()
{
maze_write_discrete(machine().device("discrete"), m_maze_tone_timing_state);
maze_write_discrete(m_discrete, m_maze_tone_timing_state);
}

View File

@ -668,14 +668,12 @@ WRITE8_MEMBER(norautp_state::soundlamps_w)
xxxx ---- * Discrete Sound Lines.
*/
device_t *discrete = machine().device("discrete");
output_set_lamp_value(8, (data >> 0) & 1); /* DEAL / DRAW lamp */
output_set_lamp_value(9, (data >> 1) & 1); /* BET / COLLECT lamp */
/* the 4 MSB are for discrete sound */
discrete_sound_w(discrete, space, NORAUTP_SND_EN, (data >> 7) & 0x01);
discrete_sound_w(discrete, space, NORAUTP_FREQ_DATA, (data >> 4) & 0x07);
discrete_sound_w(m_discrete, space, NORAUTP_SND_EN, (data >> 7) & 0x01);
discrete_sound_w(m_discrete, space, NORAUTP_FREQ_DATA, (data >> 4) & 0x07);
// popmessage("sound bits 4-5-6-7: %02x, %02x, %02x, %02x", ((data >> 4) & 0x01), ((data >> 5) & 0x01), ((data >> 6) & 0x01), ((data >> 7) & 0x01));
}

View File

@ -147,15 +147,13 @@ WRITE8_MEMBER(skydiver_state::skydiver_nmion_w)
INTERRUPT_GEN_MEMBER(skydiver_state::skydiver_interrupt)
{
device_t *discrete = machine().device("discrete");
/* Convert range data to divide value and write to sound */
address_space &space = machine().firstcpu->space(AS_PROGRAM);
discrete_sound_w(discrete, space, SKYDIVER_RANGE_DATA, (0x01 << (~m_videoram[0x394] & 0x07)) & 0xff); // Range 0-2
discrete_sound_w(m_discrete, space, SKYDIVER_RANGE_DATA, (0x01 << (~m_videoram[0x394] & 0x07)) & 0xff); // Range 0-2
discrete_sound_w(discrete, space, SKYDIVER_RANGE3_EN, m_videoram[0x394] & 0x08); // Range 3 - note disable
discrete_sound_w(discrete, space, SKYDIVER_NOTE_DATA, ~m_videoram[0x395] & 0xff); // Note - freq
discrete_sound_w(discrete, space, SKYDIVER_NOISE_DATA, m_videoram[0x396] & 0x0f); // NAM - Noise Amplitude
discrete_sound_w(m_discrete, space, SKYDIVER_RANGE3_EN, m_videoram[0x394] & 0x08); // Range 3 - note disable
discrete_sound_w(m_discrete, space, SKYDIVER_NOTE_DATA, ~m_videoram[0x395] & 0xff); // Note - freq
discrete_sound_w(m_discrete, space, SKYDIVER_NOISE_DATA, m_videoram[0x396] & 0x0f); // NAM - Noise Amplitude
if (m_nmion)
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
@ -171,14 +169,12 @@ INTERRUPT_GEN_MEMBER(skydiver_state::skydiver_interrupt)
WRITE8_MEMBER(skydiver_state::skydiver_sound_enable_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SKYDIVER_SOUND_EN, offset);
discrete_sound_w(m_discrete, space, SKYDIVER_SOUND_EN, offset);
}
WRITE8_MEMBER(skydiver_state::skydiver_whistle_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01);
discrete_sound_w(m_discrete, space, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01);
}

View File

@ -62,8 +62,6 @@ int sprint2_state::service_mode()
INTERRUPT_GEN_MEMBER(sprint2_state::sprint2)
{
device_t *discrete = machine().device("discrete");
/* handle steering wheels */
if (GAME_IS_SPRINT1 || GAME_IS_SPRINT2)
@ -96,9 +94,9 @@ INTERRUPT_GEN_MEMBER(sprint2_state::sprint2)
}
address_space &space = machine().firstcpu->space(AS_PROGRAM);
discrete_sound_w(discrete, space, SPRINT2_MOTORSND1_DATA, m_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA
discrete_sound_w(discrete, space, SPRINT2_MOTORSND2_DATA, m_video_ram[0x395] & 15);
discrete_sound_w(discrete, space, SPRINT2_CRASHSND_DATA, m_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA
discrete_sound_w(m_discrete, space, SPRINT2_MOTORSND1_DATA, m_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA
discrete_sound_w(m_discrete, space, SPRINT2_MOTORSND2_DATA, m_video_ram[0x395] & 15);
discrete_sound_w(m_discrete, space, SPRINT2_CRASHSND_DATA, m_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA
/* interrupts and watchdog are disabled during service mode */
@ -202,32 +200,28 @@ WRITE8_MEMBER(sprint2_state::sprint2_wram_w)
WRITE8_MEMBER(sprint2_state::sprint2_attract_w)
{
device_t *device = machine().device("discrete");
m_attract = offset & 1;
// also DOMINOS_ATTRACT_EN
discrete_sound_w(device, space, SPRINT2_ATTRACT_EN, m_attract);
discrete_sound_w(m_discrete, space, SPRINT2_ATTRACT_EN, m_attract);
}
WRITE8_MEMBER(sprint2_state::sprint2_noise_reset_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT2_NOISE_RESET, 0);
discrete_sound_w(m_discrete, space, SPRINT2_NOISE_RESET, 0);
}
WRITE8_MEMBER(sprint2_state::sprint2_skid1_w)
{
device_t *device = machine().device("discrete");
// also DOMINOS_TUMBLE_EN
discrete_sound_w(device, space, SPRINT2_SKIDSND1_EN, offset & 1);
discrete_sound_w(m_discrete, space, SPRINT2_SKIDSND1_EN, offset & 1);
}
WRITE8_MEMBER(sprint2_state::sprint2_skid2_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT2_SKIDSND2_EN, offset & 1);
discrete_sound_w(m_discrete, space, SPRINT2_SKIDSND2_EN, offset & 1);
}

View File

@ -185,45 +185,36 @@ WRITE8_MEMBER(sprint4_state::sprint4_lockout_w)
WRITE8_MEMBER(sprint4_state::sprint4_screech_1_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT4_SCREECH_EN_1, offset & 1);
discrete_sound_w(m_discrete, space, SPRINT4_SCREECH_EN_1, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_screech_2_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT4_SCREECH_EN_2, offset & 1);
discrete_sound_w(m_discrete, space, SPRINT4_SCREECH_EN_2, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_screech_3_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT4_SCREECH_EN_3, offset & 1);
discrete_sound_w(m_discrete, space, SPRINT4_SCREECH_EN_3, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_screech_4_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT4_SCREECH_EN_4, offset & 1);
discrete_sound_w(m_discrete, space, SPRINT4_SCREECH_EN_4, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_bang_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT4_BANG_DATA, data & 0x0f);
discrete_sound_w(m_discrete, space, SPRINT4_BANG_DATA, data & 0x0f);
}
WRITE8_MEMBER(sprint4_state::sprint4_attract_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, SPRINT4_ATTRACT_EN, data & 1);
discrete_sound_w(m_discrete, space, SPRINT4_ATTRACT_EN, data & 1);
}

View File

@ -23,33 +23,32 @@ INTERRUPT_GEN_MEMBER(starshp1_state::starshp1_interrupt)
WRITE8_MEMBER(starshp1_state::starshp1_audio_w)
{
device_t *device = machine().device("discrete");
data &= 1;
switch (offset & 7)
{
case 0:
m_attract = data;
discrete_sound_w(device, space, STARSHP1_ATTRACT, data);
discrete_sound_w(m_discrete, space, STARSHP1_ATTRACT, data);
break;
case 1:
m_phasor = data;
discrete_sound_w(device, space, STARSHP1_PHASOR_ON, data);
discrete_sound_w(m_discrete, space, STARSHP1_PHASOR_ON, data);
break;
case 2:
discrete_sound_w(device, space, STARSHP1_KICKER, data);
discrete_sound_w(m_discrete, space, STARSHP1_KICKER, data);
break;
case 3:
discrete_sound_w(device, space, STARSHP1_SL1, data);
discrete_sound_w(m_discrete, space, STARSHP1_SL1, data);
break;
case 4:
discrete_sound_w(device, space, STARSHP1_SL2, data);
discrete_sound_w(m_discrete, space, STARSHP1_SL2, data);
break;
case 5:
discrete_sound_w(device, space, STARSHP1_MOLVL, data);
discrete_sound_w(m_discrete, space, STARSHP1_MOLVL, data);
break;
case 6:
discrete_sound_w(device, space, STARSHP1_NOISE_FREQ, data);
discrete_sound_w(m_discrete, space, STARSHP1_NOISE_FREQ, data);
break;
}
@ -102,20 +101,19 @@ WRITE8_MEMBER(starshp1_state::starshp1_analog_in_w)
WRITE8_MEMBER(starshp1_state::starshp1_analog_out_w)
{
device_t *device = machine().device("discrete");
switch (offset & 7)
{
case 1:
m_ship_size = data;
break;
case 2:
discrete_sound_w(device, space, STARSHP1_NOISE_AMPLITUDE, data);
discrete_sound_w(m_discrete, space, STARSHP1_NOISE_AMPLITUDE, data);
break;
case 3:
discrete_sound_w(device, space, STARSHP1_TONE_PITCH, data);
discrete_sound_w(m_discrete, space, STARSHP1_TONE_PITCH, data);
break;
case 4:
discrete_sound_w(device, space, STARSHP1_MOTOR_SPEED, data);
discrete_sound_w(m_discrete, space, STARSHP1_MOTOR_SPEED, data);
break;
case 5:
m_circle_hpos = data;

View File

@ -45,42 +45,38 @@ WRITE8_MEMBER(tank8_state::tank8_int_reset_w)
WRITE8_MEMBER(tank8_state::tank8_crash_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, TANK8_CRASH_EN, data);
discrete_sound_w(m_discrete, space, TANK8_CRASH_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_explosion_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, TANK8_EXPLOSION_EN, data);
discrete_sound_w(m_discrete, space, TANK8_EXPLOSION_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_bugle_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, TANK8_BUGLE_EN, data);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_bug_w)
{
device_t *device = machine().device("discrete");
/* D0 and D1 determine the on/off time off the square wave */
switch(data & 3) {
case 0:
discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0);
discrete_sound_w(device, space, TANK8_BUGLE_DATA2,4.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA1,8.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA2,4.0);
break;
case 1:
discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0);
discrete_sound_w(device, space, TANK8_BUGLE_DATA2,7.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA1,8.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA2,7.0);
break;
case 2:
discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0);
discrete_sound_w(device, space, TANK8_BUGLE_DATA2,2.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA1,8.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA2,2.0);
break;
case 3:
discrete_sound_w(device, space, TANK8_BUGLE_DATA1,16.0);
discrete_sound_w(device, space, TANK8_BUGLE_DATA2,4.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA1,16.0);
discrete_sound_w(m_discrete, space, TANK8_BUGLE_DATA2,4.0);
break;
}
@ -88,14 +84,12 @@ WRITE8_MEMBER(tank8_state::tank8_bug_w)
WRITE8_MEMBER(tank8_state::tank8_attract_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, TANK8_ATTRACT_EN, data);
discrete_sound_w(m_discrete, space, TANK8_ATTRACT_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_motor_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
discrete_sound_w(m_discrete, space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
}
static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )

View File

@ -33,8 +33,7 @@ void triplhnt_state::triplhnt_set_collision(int code)
void triplhnt_state::triplhnt_update_misc(address_space &space, int offset)
{
samples_device *samples = space.machine().device<samples_device>("samples");
device_t *discrete = space.machine().device("discrete");
samples_device *samples = machine().device<samples_device>("samples");
UINT8 is_witch_hunt;
UINT8 bit = offset >> 1;
@ -64,16 +63,16 @@ void triplhnt_state::triplhnt_update_misc(address_space &space, int offset)
m_sprite_zoom = (m_misc_flags >> 4) & 1;
m_sprite_bank = (m_misc_flags >> 7) & 1;
set_led_status(space.machine(), 0, m_misc_flags & 0x02);
set_led_status(machine(), 0, m_misc_flags & 0x02);
coin_lockout_w(space.machine(), 0, !(m_misc_flags & 0x08));
coin_lockout_w(space.machine(), 1, !(m_misc_flags & 0x08));
coin_lockout_w(machine(), 0, !(m_misc_flags & 0x08));
coin_lockout_w(machine(), 1, !(m_misc_flags & 0x08));
discrete_sound_w(discrete, space, TRIPLHNT_SCREECH_EN, m_misc_flags & 0x04); // screech
discrete_sound_w(discrete, space, TRIPLHNT_LAMP_EN, m_misc_flags & 0x02); // Lamp is used to reset noise
discrete_sound_w(discrete, space, TRIPLHNT_BEAR_EN, m_misc_flags & 0x80); // bear
discrete_sound_w(m_discrete, space, TRIPLHNT_SCREECH_EN, m_misc_flags & 0x04); // screech
discrete_sound_w(m_discrete, space, TRIPLHNT_LAMP_EN, m_misc_flags & 0x02); // Lamp is used to reset noise
discrete_sound_w(m_discrete, space, TRIPLHNT_BEAR_EN, m_misc_flags & 0x80); // bear
is_witch_hunt = space.machine().root_device().ioport("0C09")->read() == 0x40;
is_witch_hunt = ioport("0C09")->read() == 0x40;
bit = ~m_misc_flags & 0x40;
/* if we're not playing the sample yet, start it */

View File

@ -103,7 +103,8 @@ class uapce_state : public pce_common_state
{
public:
uapce_state(const machine_config &mconfig, device_type type, const char *tag)
: pce_common_state(mconfig, type, tag) { }
: pce_common_state(mconfig, type, tag),
m_discrete(*this, "discrete") { }
UINT8 m_jamma_if_control_latch;
DECLARE_WRITE8_MEMBER(jamma_if_control_latch_w);
@ -111,6 +112,7 @@ public:
DECLARE_READ8_MEMBER(jamma_if_read_dsw);
virtual UINT8 joy_read();
virtual void machine_reset();
required_device<discrete_device> m_discrete;
};
#define UAPCE_SOUND_EN NODE_10
@ -157,7 +159,7 @@ WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w)
752 Hz (D-3) square wave to be output on the common audio path.
(1= Tone output ON, 0= Tone output OFF) */
discrete_sound_w(machine().device("discrete"), space, UAPCE_SOUND_EN, BIT(data,3));
discrete_sound_w(m_discrete, space, UAPCE_SOUND_EN, BIT(data,3));
/* D2 : Not latched, though software writes to this bit like it is. */

View File

@ -129,23 +129,19 @@ WRITE8_MEMBER(ultratnk_state::ultratnk_lockout_w)
WRITE8_MEMBER(ultratnk_state::ultratnk_fire_1_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, ULTRATNK_FIRE_EN_1, offset & 1);
discrete_sound_w(m_discrete, space, ULTRATNK_FIRE_EN_1, offset & 1);
}
WRITE8_MEMBER(ultratnk_state::ultratnk_fire_2_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, ULTRATNK_FIRE_EN_2, offset & 1);
discrete_sound_w(m_discrete, space, ULTRATNK_FIRE_EN_2, offset & 1);
}
WRITE8_MEMBER(ultratnk_state::ultratnk_attract_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, ULTRATNK_ATTRACT_EN, data & 1);
discrete_sound_w(m_discrete, space, ULTRATNK_ATTRACT_EN, data & 1);
}
WRITE8_MEMBER(ultratnk_state::ultratnk_explosion_w)
{
device_t *device = machine().device("discrete");
discrete_sound_w(device, space, ULTRATNK_EXPLOSION_DATA, data & 15);
discrete_sound_w(m_discrete, space, ULTRATNK_EXPLOSION_DATA, data & 15);
}

View File

@ -134,7 +134,6 @@ WRITE8_MEMBER(videopin_state::videopin_led_w)
WRITE8_MEMBER(videopin_state::videopin_out1_w)
{
device_t *device = machine().device("discrete");
/* D0 => OCTAVE0 */
/* D1 => OCTACE1 */
/* D2 => OCTAVE2 */
@ -152,13 +151,12 @@ WRITE8_MEMBER(videopin_state::videopin_out1_w)
coin_lockout_global_w(machine(), ~data & 0x08);
/* Convert octave data to divide value and write to sound */
discrete_sound_w(device, space, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe);
discrete_sound_w(m_discrete, space, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe);
}
WRITE8_MEMBER(videopin_state::videopin_out2_w)
{
device_t *device = machine().device("discrete");
/* D0 => VOL0 */
/* D1 => VOL1 */
/* D2 => VOL2 */
@ -170,18 +168,17 @@ WRITE8_MEMBER(videopin_state::videopin_out2_w)
coin_counter_w(machine(), 0, data & 0x10);
discrete_sound_w(device, space, VIDEOPIN_BELL_EN, data & 0x40); // Bell
discrete_sound_w(device, space, VIDEOPIN_BONG_EN, data & 0x20); // Bong
discrete_sound_w(device, space, VIDEOPIN_ATTRACT_EN, data & 0x80); // Attract
discrete_sound_w(device, space, VIDEOPIN_VOL_DATA, data & 0x07); // Vol0,1,2
discrete_sound_w(m_discrete, space, VIDEOPIN_BELL_EN, data & 0x40); // Bell
discrete_sound_w(m_discrete, space, VIDEOPIN_BONG_EN, data & 0x20); // Bong
discrete_sound_w(m_discrete, space, VIDEOPIN_ATTRACT_EN, data & 0x80); // Attract
discrete_sound_w(m_discrete, space, VIDEOPIN_VOL_DATA, data & 0x07); // Vol0,1,2
}
WRITE8_MEMBER(videopin_state::videopin_note_dvsr_w)
{
device_t *device = machine().device("discrete");
/* note data */
discrete_sound_w(device, space, VIDEOPIN_NOTE_DATA, ~data &0xff);
discrete_sound_w(m_discrete, space, VIDEOPIN_NOTE_DATA, ~data &0xff);
}

View File

@ -174,8 +174,6 @@ Stephh's notes (based on the games Z80 code and some tests) :
WRITE8_MEMBER(wiz_state::sound_command_w)
{
device_t *discrete = machine().device("discrete");
switch (offset)
{
// 0x90 triggers a jump to non-existant address(development system?) and must be filtered
@ -185,14 +183,14 @@ WRITE8_MEMBER(wiz_state::sound_command_w)
// explosion sound trigger(analog?)
case 0x08:
discrete_sound_w(discrete, space, STINGER_BOOM_EN1, m_dsc1);
discrete_sound_w(discrete, space, STINGER_BOOM_EN2, m_dsc1^=1);
discrete_sound_w(m_discrete, space, STINGER_BOOM_EN1, m_dsc1);
discrete_sound_w(m_discrete, space, STINGER_BOOM_EN2, m_dsc1^=1);
break;
// player shot sound trigger(analog?)
case 0x0a:
discrete_sound_w(discrete, space, STINGER_SHOT_EN1, m_dsc0);
discrete_sound_w(discrete, space, STINGER_SHOT_EN2, m_dsc0^=1);
discrete_sound_w(m_discrete, space, STINGER_SHOT_EN1, m_dsc0);
discrete_sound_w(m_discrete, space, STINGER_SHOT_EN2, m_dsc0^=1);
break;
}
}

View File

@ -25,7 +25,8 @@ public:
m_field_videoram(*this, "field_videoram"),
m_spriteram(*this, "spriteram"),
m_scroll_register(*this, "scroll_register"),
m_maincpu(*this, "maincpu"){ }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete"){ }
/* video-related */
required_shared_ptr<UINT8> m_alphap1_videoram;
@ -59,6 +60,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
DECLARE_WRITE8_MEMBER(atarifb_out1_w);
DECLARE_WRITE8_MEMBER(atarifb4_out1_w);
DECLARE_WRITE8_MEMBER(abaseb_out1_w);

View File

@ -19,7 +19,8 @@ public:
m_centerram(*this, "centerram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_subcpu(*this, "sub") { }
m_subcpu(*this, "sub"),
m_discrete(*this, "discrete") { }
UINT8 m_cpu0_out[16];
UINT8 m_cpu1_out[16];
@ -82,6 +83,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<cpu_device> m_subcpu;
required_device<discrete_device> m_discrete;
};
/* Discrete Sound Input Nodes */

View File

@ -18,7 +18,8 @@ public:
hitme_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
@ -45,6 +46,7 @@ public:
UINT8 read_port_and_t0( int port );
UINT8 read_port_and_t0_and_hblank( int port );
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};

View File

@ -28,7 +28,8 @@ public:
m_edge2_pos(*this, "edge2_pos"),
m_scroll(*this, "scroll"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_discrete(*this, "discrete") { }
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_charram;
@ -72,6 +73,7 @@ public:
inline UINT8 shift_common(UINT8 hi, UINT8 lo);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in video/madalien.c -----------*/

View File

@ -11,7 +11,8 @@ class norautp_state : public driver_device
public:
norautp_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) ,
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
UINT16 *m_np_vram;
UINT16 m_np_addr;
@ -30,6 +31,7 @@ public:
virtual void palette_init();
UINT32 screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in audio/norautp.c -----------*/

View File

@ -25,7 +25,8 @@ public:
skydiver_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram") ,
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
required_shared_ptr<UINT8> m_videoram;
int m_nmion;
@ -55,6 +56,7 @@ public:
INTERRUPT_GEN_MEMBER(skydiver_interrupt);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in audio/skydiver.c -----------*/

View File

@ -27,7 +27,8 @@ public:
sprint2_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_video_ram(*this, "video_ram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
int m_attract;
int m_steering[2];
@ -74,6 +75,7 @@ public:
inline int get_sprite_y(UINT8 *video_ram, int n);
int service_mode();
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in audio/sprint2.c -----------*/

View File

@ -4,7 +4,8 @@ public:
sprint4_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
required_shared_ptr<UINT8> m_videoram;
int m_da_latch;
@ -43,4 +44,5 @@ public:
void screen_eof_sprint4(screen_device &screen, bool state);
TIMER_CALLBACK_MEMBER(nmi_callback);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};

View File

@ -39,7 +39,8 @@ public:
m_hpos_ram(*this, "hpos_ram"),
m_vpos_ram(*this, "vpos_ram"),
m_obj_ram(*this, "obj_ram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
int m_analog_in_select;
int m_attract;
@ -98,6 +99,7 @@ public:
int point_in_circle(int x, int y, int center_x, int center_y, int r);
int circle_collision(const rectangle &rect);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in audio/starshp1.c -----------*/

View File

@ -33,7 +33,8 @@ public:
m_pos_v_ram(*this, "pos_v_ram"),
m_pos_d_ram(*this, "pos_d_ram"),
m_team(*this, "team"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
int m_collision_index;
required_shared_ptr<UINT8> m_video_ram;
@ -70,6 +71,7 @@ public:
void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect);
void tank8_set_collision(int index);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in audio/tank8.c -----------*/

View File

@ -26,7 +26,8 @@ public:
m_hpos_ram(*this, "hpos_ram"),
m_orga_ram(*this, "orga_ram"),
m_code_ram(*this, "code_ram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
UINT8 m_cmos[16];
UINT8 m_da_latch;
@ -57,6 +58,7 @@ public:
void triplhnt_set_collision(int code);
void triplhnt_update_misc(address_space &space, int offset);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};

View File

@ -4,6 +4,7 @@
*************************************************************************/
#include "sound/discrete.h"
class ultratnk_state : public driver_device
{
@ -11,7 +12,8 @@ public:
ultratnk_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
required_shared_ptr<UINT8> m_videoram;
int m_da_latch;
@ -44,4 +46,5 @@ public:
void screen_eof_ultratnk(screen_device &screen, bool state);
TIMER_CALLBACK_MEMBER(nmi_callback);
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};

View File

@ -21,7 +21,8 @@ public:
videopin_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_video_ram(*this, "video_ram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete") { }
attotime m_time_pushed;
attotime m_time_released;
@ -47,6 +48,7 @@ public:
void update_plunger();
double calc_plunger_pos();
required_device<cpu_device> m_maincpu;
required_device<discrete_device> m_discrete;
};
/*----------- defined in audio/videopin.c -----------*/

View File

@ -1,3 +1,5 @@
#include "sound/discrete.h"
class wiz_state : public driver_device
{
public:
@ -12,7 +14,8 @@ public:
m_spriteram(*this, "spriteram"),
m_sprite_bank(*this, "sprite_bank"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_discrete(*this, "discrete") { }
int m_dsc0;
int m_dsc1;
@ -60,4 +63,5 @@ public:
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, UINT8* sprite_ram,int bank);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
optional_device<discrete_device> m_discrete;
};

View File

@ -11,27 +11,23 @@
WRITE8_MEMBER(atarifb_state::atarifb_out1_w)
{
device_t *discrete = machine().device("discrete");
m_CTRLD = data;
discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
discrete_sound_w(m_discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(m_discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(m_discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(m_discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
}
WRITE8_MEMBER(atarifb_state::atarifb4_out1_w)
{
device_t *discrete = machine().device("discrete");
m_CTRLD = data;
discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
discrete_sound_w(m_discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(m_discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(m_discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(m_discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
coin_counter_w(machine(), 1, data & 0x80);
}
@ -39,14 +35,12 @@ WRITE8_MEMBER(atarifb_state::atarifb4_out1_w)
WRITE8_MEMBER(atarifb_state::abaseb_out1_w)
{
device_t *discrete = machine().device("discrete");
m_CTRLD = data;
discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
discrete_sound_w(m_discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(m_discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(m_discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(m_discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
if (data & 0x80)
{
@ -65,8 +59,6 @@ WRITE8_MEMBER(atarifb_state::abaseb_out1_w)
WRITE8_MEMBER(atarifb_state::soccer_out1_w)
{
device_t *discrete = machine().device("discrete");
m_CTRLD = data;
/* bit 0 = whistle */
@ -77,10 +69,10 @@ WRITE8_MEMBER(atarifb_state::soccer_out1_w)
/* bit 5-6 = trackball CTRL bits */
/* bit 7 = Rule LED */
discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
discrete_sound_w(m_discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
discrete_sound_w(m_discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
discrete_sound_w(m_discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
discrete_sound_w(m_discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
// set_led_status(machine(), 0, data & 0x10); // !!!!!!!!!! Is this correct????
set_led_status(machine(), 1, data & 0x80);
@ -89,9 +81,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out1_w)
WRITE8_MEMBER(atarifb_state::atarifb_out2_w)
{
device_t *discrete = machine().device("discrete");
discrete_sound_w(discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
discrete_sound_w(m_discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
coin_counter_w (machine(), 0, data & 0x10);
}
@ -99,9 +89,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out2_w)
WRITE8_MEMBER(atarifb_state::soccer_out2_w)
{
device_t *discrete = machine().device("discrete");
discrete_sound_w(discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
discrete_sound_w(m_discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
coin_counter_w (machine(), 0, data & 0x10);
coin_counter_w (machine(), 1, data & 0x20);

View File

@ -124,7 +124,6 @@ WRITE8_MEMBER(skydiver_state::skydiver_lamp_d_w)
WRITE8_MEMBER(skydiver_state::skydiver_2000_201F_w)
{
device_t *discrete = machine().device("discrete");
int bit = offset & 0x01;
watchdog_reset_w(space,0,0);
@ -144,13 +143,13 @@ WRITE8_MEMBER(skydiver_state::skydiver_2000_201F_w)
output_set_value("lampr", bit);
break;
case (0x0a):
discrete_sound_w(discrete, space, SKYDIVER_OCT1_EN, bit);
discrete_sound_w(m_discrete, space, SKYDIVER_OCT1_EN, bit);
break;
case (0x0c):
discrete_sound_w(discrete, space, SKYDIVER_OCT2_EN, bit);
discrete_sound_w(m_discrete, space, SKYDIVER_OCT2_EN, bit);
break;
case (0x0e):
discrete_sound_w(discrete, space, SKYDIVER_NOISE_RST, bit);
discrete_sound_w(m_discrete, space, SKYDIVER_NOISE_RST, bit);
break;
}
}

View File

@ -95,8 +95,6 @@ void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state)
/* check for sprite-playfield collisions */
device_t *discrete = machine().device("discrete");
for (i = 0; i < 4; i++)
{
rectangle rect;
@ -138,10 +136,10 @@ void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state)
/* update sound status */
address_space &space = machine().driver_data()->generic_space();
discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15);
discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15);
discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15);
discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15);
discrete_sound_w(m_discrete, space, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15);
discrete_sound_w(m_discrete, space, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15);
discrete_sound_w(m_discrete, space, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15);
discrete_sound_w(m_discrete, space, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15);
}
}

View File

@ -43,8 +43,6 @@ UINT32 subs_state::screen_update_subs_left(screen_device &screen, bitmap_ind16 &
UINT8 *spriteram = m_spriteram;
int offs;
device_t *discrete = machine().device("discrete");
/* for every character in the Video RAM, check if it has been modified */
/* since last time and update it accordingly. */
for (offs = 0x400 - 1; offs >= 0; offs--)
@ -114,8 +112,8 @@ UINT32 subs_state::screen_update_subs_left(screen_device &screen, bitmap_ind16 &
/* Update sound */
address_space &space = machine().driver_data()->generic_space();
discrete_sound_w(discrete, space, SUBS_LAUNCH_DATA, spriteram[5] & 0x0f); // Launch data
discrete_sound_w(discrete, space, SUBS_CRASH_DATA, spriteram[5] >> 4); // Crash/explode data
discrete_sound_w(m_discrete, space, SUBS_LAUNCH_DATA, spriteram[5] & 0x0f); // Launch data
discrete_sound_w(m_discrete, space, SUBS_CRASH_DATA, spriteram[5] >> 4); // Crash/explode data
return 0;
}

View File

@ -104,8 +104,6 @@ void triplhnt_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
UINT32 triplhnt_state::screen_update_triplhnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *discrete = machine().device("discrete");
m_bg_tilemap->mark_all_dirty();
m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
@ -113,7 +111,7 @@ UINT32 triplhnt_state::screen_update_triplhnt(screen_device &screen, bitmap_ind1
draw_sprites(bitmap, cliprect);
address_space &space = machine().driver_data()->generic_space();
discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, m_playfield_ram[0xfa] & 15);
discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, m_playfield_ram[0xfc] & 15);
discrete_sound_w(m_discrete, space, TRIPLHNT_BEAR_ROAR_DATA, m_playfield_ram[0xfa] & 15);
discrete_sound_w(m_discrete, space, TRIPLHNT_SHOT_DATA, m_playfield_ram[0xfc] & 15);
return 0;
}

View File

@ -95,7 +95,6 @@ void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state)
{
int i;
UINT16 BG = colortable_entry_get_value(machine().colortable, 0);
device_t *discrete = machine().device("discrete");
UINT8 *videoram = m_videoram;
/* check for sprite-playfield collisions */
@ -141,8 +140,8 @@ void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state)
/* update sound status */
address_space &space = machine().driver_data()->generic_space();
discrete_sound_w(discrete, space, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15);
discrete_sound_w(discrete, space, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15);
discrete_sound_w(m_discrete, space, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15);
discrete_sound_w(m_discrete, space, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15);
}
}