summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-04-12 07:32:37 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-04-12 07:32:37 +0000
commit056c7d387ca68c28dced90bdc1a36701a51a8a1e (patch)
tree258340e27e7c9820332252b0f1297fa089b7ff75 /src
parent4570c897cf65fd758ea58d80e08fb286032a5a97 (diff)
discrete lookups removal (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/cliffhgr.c9
-rw-r--r--src/mame/drivers/firetrk.c23
-rw-r--r--src/mame/drivers/goldnpkr.c9
-rw-r--r--src/mame/drivers/grchamp.c21
-rw-r--r--src/mame/drivers/hitme.c10
-rw-r--r--src/mame/drivers/madalien.c6
-rw-r--r--src/mame/drivers/mw8080bw.c2
-rw-r--r--src/mame/drivers/norautp.c6
-rw-r--r--src/mame/drivers/skydiver.c16
-rw-r--r--src/mame/drivers/sprint2.c20
-rw-r--r--src/mame/drivers/sprint4.c21
-rw-r--r--src/mame/drivers/starshp1.c22
-rw-r--r--src/mame/drivers/tank8.c32
-rw-r--r--src/mame/drivers/triplhnt.c17
-rw-r--r--src/mame/drivers/uapce.c6
-rw-r--r--src/mame/drivers/ultratnk.c12
-rw-r--r--src/mame/drivers/videopin.c15
-rw-r--r--src/mame/drivers/wiz.c10
-rw-r--r--src/mame/includes/atarifb.h4
-rw-r--r--src/mame/includes/grchamp.h4
-rw-r--r--src/mame/includes/hitme.h4
-rw-r--r--src/mame/includes/madalien.h4
-rw-r--r--src/mame/includes/norautp.h4
-rw-r--r--src/mame/includes/skydiver.h4
-rw-r--r--src/mame/includes/sprint2.h4
-rw-r--r--src/mame/includes/sprint4.h4
-rw-r--r--src/mame/includes/starshp1.h4
-rw-r--r--src/mame/includes/tank8.h4
-rw-r--r--src/mame/includes/triplhnt.h4
-rw-r--r--src/mame/includes/ultratnk.h5
-rw-r--r--src/mame/includes/videopin.h4
-rw-r--r--src/mame/includes/wiz.h6
-rw-r--r--src/mame/machine/atarifb.c48
-rw-r--r--src/mame/video/skydiver.c7
-rw-r--r--src/mame/video/sprint4.c10
-rw-r--r--src/mame/video/subs.c6
-rw-r--r--src/mame/video/triplhnt.c6
-rw-r--r--src/mame/video/ultratnk.c5
38 files changed, 179 insertions, 219 deletions
diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c
index 721d0acac59..e81f1b11941 100644
--- a/src/mame/drivers/cliffhgr.c
+++ b/src/mame/drivers/cliffhgr.c
@@ -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?
}
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 511db951a94..32444e49716 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -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);
}
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index 4fd4da0a1dd..21240d16861 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -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);
}
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 5c90a3c519f..64eff6d7fdf 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -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)
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 044e6a41808..96951f57049 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -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);
}
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 76a0346c552..a81562a8be8 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -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);
}
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index a8fb85cb58f..116c8b38160 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -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);
}
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index d1da3b6d30c..a2a6bd35111 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -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));
}
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 5147d5445b6..9959754fe68 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -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);
}
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index ae95e52dbad..d14adac741b 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -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);
}
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 300eb5cdffc..27a8ae6ac8a 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -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);
}
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index 41b57704afc..84e00ddb3b9 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -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;
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 3aeffc0ee9f..28e18fd2943 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -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 )
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index 2dec3ca0235..2bf607b749e 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -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 */
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index 8a0296ca22a..9515803705b 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -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. */
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 0342cd2cc54..9f3ea7eacce 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -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);
}
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 8d35d33678a..51e13a95deb 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -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);
}
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index 14c7562fc28..385a638d075 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -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;
}
}
diff --git a/src/mame/includes/atarifb.h b/src/mame/includes/atarifb.h
index f09a0d1c026..e8e867e5647 100644
--- a/src/mame/includes/atarifb.h
+++ b/src/mame/includes/atarifb.h
@@ -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);
diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h
index b31687dc0e9..bea1d5be3bd 100644
--- a/src/mame/includes/grchamp.h
+++ b/src/mame/includes/grchamp.h
@@ -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 */
diff --git a/src/mame/includes/hitme.h b/src/mame/includes/hitme.h
index 25471a8e185..649023b7ab6 100644
--- a/src/mame/includes/hitme.h
+++ b/src/mame/includes/hitme.h
@@ -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;
};
diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h
index ea389878fa8..998239a0bb2 100644
--- a/src/mame/includes/madalien.h
+++ b/src/mame/includes/madalien.h
@@ -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 -----------*/
diff --git a/src/mame/includes/norautp.h b/src/mame/includes/norautp.h
index d631ba22c75..585dc04cad8 100644
--- a/src/mame/includes/norautp.h
+++ b/src/mame/includes/norautp.h
@@ -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 -----------*/
diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h
index 710020e8603..3c40dd7105c 100644
--- a/src/mame/includes/skydiver.h
+++ b/src/mame/includes/skydiver.h
@@ -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 -----------*/
diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h
index 2f5366d5561..91b8ed0a1bf 100644
--- a/src/mame/includes/sprint2.h
+++ b/src/mame/includes/sprint2.h
@@ -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 -----------*/
diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h
index 75263ced83a..dc4e4e342b2 100644
--- a/src/mame/includes/sprint4.h
+++ b/src/mame/includes/sprint4.h
@@ -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;
};
diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h
index e120b2bcbb4..f0eb6166e18 100644
--- a/src/mame/includes/starshp1.h
+++ b/src/mame/includes/starshp1.h
@@ -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 -----------*/
diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h
index 42886f3a96c..7a799538aac 100644
--- a/src/mame/includes/tank8.h
+++ b/src/mame/includes/tank8.h
@@ -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 -----------*/
diff --git a/src/mame/includes/triplhnt.h b/src/mame/includes/triplhnt.h
index 73557801375..abea70daf6a 100644
--- a/src/mame/includes/triplhnt.h
+++ b/src/mame/includes/triplhnt.h
@@ -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;
};
diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h
index d3339244797..7c4d9a6b749 100644
--- a/src/mame/includes/ultratnk.h
+++ b/src/mame/includes/ultratnk.h
@@ -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;
};
diff --git a/src/mame/includes/videopin.h b/src/mame/includes/videopin.h
index 9c8f6717c56..7a921e12cb9 100644
--- a/src/mame/includes/videopin.h
+++ b/src/mame/includes/videopin.h
@@ -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 -----------*/
diff --git a/src/mame/includes/wiz.h b/src/mame/includes/wiz.h
index 9ff4e782252..cd1c441de0d 100644
--- a/src/mame/includes/wiz.h
+++ b/src/mame/includes/wiz.h
@@ -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;
};
diff --git a/src/mame/machine/atarifb.c b/src/mame/machine/atarifb.c
index d7872c9d751..5850fbb486e 100644
--- a/src/mame/machine/atarifb.c
+++ b/src/mame/machine/atarifb.c
@@ -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);
diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c
index abc39f2f3dc..7d2a2982909 100644
--- a/src/mame/video/skydiver.c
+++ b/src/mame/video/skydiver.c
@@ -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;
}
}
diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c
index d04ba58914e..dd4f5719ca1 100644
--- a/src/mame/video/sprint4.c
+++ b/src/mame/video/sprint4.c
@@ -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);
}
}
diff --git a/src/mame/video/subs.c b/src/mame/video/subs.c
index b78d5e62b0a..6cad86610fb 100644
--- a/src/mame/video/subs.c
+++ b/src/mame/video/subs.c
@@ -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;
}
diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c
index a5aa49cbdb1..4a7a3c46b52 100644
--- a/src/mame/video/triplhnt.c
+++ b/src/mame/video/triplhnt.c
@@ -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;
}
diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c
index 786357ddde5..d72821a66e9 100644
--- a/src/mame/video/ultratnk.c
+++ b/src/mame/video/ultratnk.c
@@ -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);
}
}