summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/vicdual.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/vicdual.cpp')
-rw-r--r--src/mame/audio/vicdual.cpp155
1 files changed, 56 insertions, 99 deletions
diff --git a/src/mame/audio/vicdual.cpp b/src/mame/audio/vicdual.cpp
index b3bd59c288f..01a4482f60b 100644
--- a/src/mame/audio/vicdual.cpp
+++ b/src/mame/audio/vicdual.cpp
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:Derrick Renaud, Couriersud
+// copyright-holders:Derrick Renaud, Couriersud, Aaron Giles
/*************************************************************************
VIC Dual Game board
@@ -9,6 +9,8 @@
#include "emu.h"
#include "includes/vicdual.h"
+#include "audio/nl_brdrline.h"
+
/************************************************************************
* frogs Sound System Analog emulation
@@ -479,104 +481,7 @@ void vicdual_state::invho2_audio_w(uint8_t data)
}
-/************************************************************************
- * brdrline Sound System Analog emulation
- * May 2006, Derrick Renaud
- ************************************************************************/
-#if 0
-
-
-/* Discrete Sound Input Nodes */
-#define BRDRLINE_GUN_TRG_EN NODE_01
-#define BRDRLINE_JEEP_ON_EN NODE_02
-#define BRDRLINE_POINT_TRG_EN NODE_03
-#define BRDRLINE_HIT_TRG_EN NODE_04
-#define BRDRLINE_ANIMAL_TRG_EN NODE_05
-#define BRDRLINE_EMAR_TRG_EN NODE_06
-#define BRDRLINE_WALK_TRG_EN NODE_07
-#define BRDRLINE_CRY_TRG_EN NODE_08
-
-/* Nodes - Sounds */
-#define BRDRLINE_GUN_TRG_SND NODE_91
-#define BRDRLINE_JEEP_ON_SND NODE_92
-#define BRDRLINE_POINT_TRG_SND NODE_93
-#define BRDRLINE_HIT_TRG_SND NODE_94
-#define BRDRLINE_ANIMAL_TRG_SND NODE_95
-#define BRDRLINE_EMAR_TRG_SND NODE_96
-#define BRDRLINE_WALK_TRG_SND NODE_97
-#define BRDRLINE_CRY_TRG_SND NODE_98
-
-DISCRETE_SOUND_START(brdrline_discrete)
- /************************************************
- * Input register mapping
- ************************************************/
- DISCRETE_INPUT_LOGIC(BRDRLINE_GUN_TRG_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_JEEP_ON_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_POINT_TRG_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_HIT_TRG_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_ANIMAL_TRG_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_EMAR_TRG_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_WALK_TRG_EN)
- DISCRETE_INPUT_LOGIC(BRDRLINE_CRY_TRG_EN)
-
- /************************************************
- * GUN TRG
- ************************************************/
- DISCRETE_LFSR_NOISE(NODE_10, 1, 1,CLK,AMPL,FEED,BIAS,LFSRTB)
- DISCRETE_MIXER2(NODE_11, 1, NODE_10,IN1,INFO)
- DISCRETE_FILTER2(NODE_12, 1, NODE_11,FREQ,DAMP,TYPE)
- DISCRETE_ONESHOT(NODE_13, BRDRLINE_GUN_TRG_EN, DEFAULT_TTL_V_LOGIC_1,
- TIME_OF_74LS123(RES_K(47), CAP_U(1)), // R155, C73
- DISC_ONESHOT_FEDGE | DISC_ONESHOT_RETRIG | DISC_OUT_ACTIVE_LOW)
- DISCRETE_RCDISC4(NODE_14, 1, NODE_13,RVAL0,RVAL1,RVAL2,CVAL,VP,TYPE)
- DISCRETE_VCA(BRDRLINE_GUN_TRG_SND, 1, NODE_12, NODE_14,TYPE)
-
- /************************************************
- * JEEP ON
- ************************************************/
- DISCRETE_555_ASTABLE(NODE_20, BRDRLINE_JEEP_ON_EN,
- RES_K(1), // R150
- RES_K(33), // R153
- CAP_U(.1), // C72
- OPTIONS)
- DISCRETE_COUNTER(NODE_21, 1, 1, NODE_20,MIN,MAX,DIR,INIT0, DISC_CLK_BY_COUNT)
- DISCRETE_COUNTER(NODE_22, 1, 1, NODE_20,MIN,MAX,DIR,INIT0, DISC_CLK_BY_COUNT)
- DISCRETE_TRANSFORM3(NODE,INP0,INP1,INP2,FUNCT)
- DISCRETE_DAC_R1(NODE,DATA,VDATA,LADDER)
-
- /************************************************
- * POINT TRG
- ************************************************/
-
- /************************************************
- * HIT TRG
- ************************************************/
-
- /************************************************
- * ANIMAL TRG
- ************************************************/
-
- /************************************************
- * EMAR TRG
- ************************************************/
-
- /************************************************
- * WALK TRG
- ************************************************/
-
- /************************************************
- * CRY TRG
- ************************************************/
-
- /************************************************
- * Mixer
- ************************************************/
-
- DISCRETE_OUTPUT(NODE_90, 1)
-
-DISCRETE_SOUND_END
-#endif
-
+/*
static const char *const brdrline_sample_names[] =
{
"*brdrline",
@@ -630,3 +535,55 @@ void vicdual_state::brdrline_audio_aux_w(uint8_t data)
else // boot sample
m_samples->start(0, 0);
}
+*/
+
+
+
+/*************************************
+ *
+ * Borderline
+ *
+ *************************************/
+
+borderline_audio_device::borderline_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
+ device_t(mconfig, BORDERLINE_AUDIO, tag, owner, clock),
+ device_mixer_interface(mconfig, *this),
+ m_input_line(*this, "sound_nl:in_%u", 0)
+{
+}
+
+void borderline_audio_device::device_add_mconfig(machine_config &config)
+{
+ NETLIST_SOUND(config, "sound_nl", 48000)
+ .set_source(NETLIST_NAME(brdrline))
+ .add_route(ALL_OUTPUTS, *this, 1.0);
+
+ NETLIST_LOGIC_INPUT(config, m_input_line[7], "GUN_TRG.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[6], "JEEP_ON.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[5], "POINT_TRG.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[4], "HIT_TRG.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[3], "WALK_TRG.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[2], "EMAR_TRG.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[1], "CRY_TRG.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_input_line[0], "ANIMAL_TRG.IN", 0);
+
+ NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(1.0, 0.0);
+}
+
+void borderline_audio_device::device_start()
+{
+ save_item(NAME(m_input_state));
+}
+
+void borderline_audio_device::write(u8 value)
+{
+ if (value != m_input_state)
+ {
+ m_input_state = value;
+ for (int index = 0; index < 8; index++)
+ if (m_input_line[index] != nullptr)
+ m_input_line[index]->write_line(BIT(m_input_state, index));
+ }
+}
+
+DEFINE_DEVICE_TYPE(BORDERLINE_AUDIO, borderline_audio_device, "borderline_audio", "Borderline Sound Board")