summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Couriersud <couriersud@users.noreply.github.com>2009-08-29 19:40:02 +0000
committer Couriersud <couriersud@users.noreply.github.com>2009-08-29 19:40:02 +0000
commit1955450c39d265ed7a7dbbbdf66a34d540497400 (patch)
treee9c5d00e2f9173eb8f91d635e91aac26a86d0245
parenteb801be6cbe2fd7c9ff944e911db3c71d0ffef54 (diff)
discrete sound system
- use DISCRETE_INPUT(_num) instead of (*(node->input[_num]))
-rw-r--r--src/emu/sound/disc_dev.c56
-rw-r--r--src/emu/sound/disc_flt.c176
-rw-r--r--src/emu/sound/disc_inp.c26
-rw-r--r--src/emu/sound/disc_mth.c224
-rw-r--r--src/emu/sound/disc_wav.c140
-rw-r--r--src/emu/sound/discrete.c4
-rw-r--r--src/emu/sound/discrete.h6
-rw-r--r--src/mame/audio/dkong.c16
-rw-r--r--src/mame/audio/mario.c14
9 files changed, 331 insertions, 331 deletions
diff --git a/src/emu/sound/disc_dev.c b/src/emu/sound/disc_dev.c
index 4520ee7b018..ed664e1d9e0 100644
--- a/src/emu/sound/disc_dev.c
+++ b/src/emu/sound/disc_dev.c
@@ -141,11 +141,11 @@ struct dsd_ls624_context
*
* Jan 2004, D Renaud.
************************************************************************/
-#define DSD_555_ASTBL__RESET (! *(node->input[0]))
-#define DSD_555_ASTBL__R1 (*(node->input[1]))
-#define DSD_555_ASTBL__R2 (*(node->input[2]))
-#define DSD_555_ASTBL__C (*(node->input[3]))
-#define DSD_555_ASTBL__CTRLV (*(node->input[4]))
+#define DSD_555_ASTBL__RESET (! DISCRETE_INPUT(0))
+#define DSD_555_ASTBL__R1 DISCRETE_INPUT(1)
+#define DSD_555_ASTBL__R2 DISCRETE_INPUT(2)
+#define DSD_555_ASTBL__C DISCRETE_INPUT(3)
+#define DSD_555_ASTBL__CTRLV DISCRETE_INPUT(4)
/* bit mask of the above RC inputs */
#define DSD_555_ASTBL_RC_MASK 0x0e
@@ -450,10 +450,10 @@ static DISCRETE_RESET(dsd_555_astbl)
*
* Oct 2004, D Renaud.
************************************************************************/
-#define DSD_555_MSTBL__RESET (! *(node->input[0]))
-#define DSD_555_MSTBL__TRIGGER (*(node->input[1]))
-#define DSD_555_MSTBL__R (*(node->input[2]))
-#define DSD_555_MSTBL__C (*(node->input[3]))
+#define DSD_555_MSTBL__RESET (! DISCRETE_INPUT(0))
+#define DSD_555_MSTBL__TRIGGER DISCRETE_INPUT(1)
+#define DSD_555_MSTBL__R DISCRETE_INPUT(2)
+#define DSD_555_MSTBL__C DISCRETE_INPUT(3)
static DISCRETE_STEP(dsd_555_mstbl)
{
@@ -590,13 +590,13 @@ static DISCRETE_RESET(dsd_555_mstbl)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DSD_555_CC__RESET (! *(node->input[0]))
-#define DSD_555_CC__VIN (*(node->input[1]))
-#define DSD_555_CC__R (*(node->input[2]))
-#define DSD_555_CC__C (*(node->input[3]))
-#define DSD_555_CC__RBIAS (*(node->input[4]))
-#define DSD_555_CC__RGND (*(node->input[5]))
-#define DSD_555_CC__RDIS (*(node->input[6]))
+#define DSD_555_CC__RESET (! DISCRETE_INPUT(0))
+#define DSD_555_CC__VIN DISCRETE_INPUT(1)
+#define DSD_555_CC__R DISCRETE_INPUT(2)
+#define DSD_555_CC__C DISCRETE_INPUT(3)
+#define DSD_555_CC__RBIAS DISCRETE_INPUT(4)
+#define DSD_555_CC__RGND DISCRETE_INPUT(5)
+#define DSD_555_CC__RDIS DISCRETE_INPUT(6)
/* bit mask of the above RC inputs not including DSD_555_CC__R */
#define DSD_555_CC_RC_MASK 0x78
@@ -1155,9 +1155,9 @@ static DISCRETE_RESET(dsd_555_cc)
*
* Apr 2006, D Renaud.
************************************************************************/
-#define DSD_555_VCO1__RESET (*(node->input[0])) /* reset active low */
-#define DSD_555_VCO1__VIN1 (*(node->input[1]))
-#define DSD_555_VCO1__VIN2 (*(node->input[2]))
+#define DSD_555_VCO1__RESET DISCRETE_INPUT(0) /* reset active low */
+#define DSD_555_VCO1__VIN1 DISCRETE_INPUT(1)
+#define DSD_555_VCO1__VIN2 DISCRETE_INPUT(2)
static DISCRETE_STEP(dsd_555_vco1)
{
@@ -1385,10 +1385,10 @@ static DISCRETE_RESET(dsd_555_vco1)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DSD_566__ENABLE (*(node->input[0]))
-#define DSD_566__VMOD (*(node->input[1]))
-#define DSD_566__R (*(node->input[2]))
-#define DSD_566__C (*(node->input[3]))
+#define DSD_566__ENABLE DISCRETE_INPUT(0)
+#define DSD_566__VMOD DISCRETE_INPUT(1)
+#define DSD_566__R DISCRETE_INPUT(2)
+#define DSD_566__C DISCRETE_INPUT(3)
static DISCRETE_STEP(dsd_566)
{
@@ -1575,11 +1575,11 @@ static DISCRETE_RESET(dsd_566)
*
* Dec 2007, Couriersud
************************************************************************/
-#define DSD_LS624__ENABLE (*(node->input[0]))
-#define DSD_LS624__VMOD (*(node->input[1]))
-#define DSD_LS624__VRNG (*(node->input[2]))
-#define DSD_LS624__C (*(node->input[3]))
-#define DSD_LS624__OUTTYPE (*(node->input[4]))
+#define DSD_LS624__ENABLE DISCRETE_INPUT(0)
+#define DSD_LS624__VMOD DISCRETE_INPUT(1)
+#define DSD_LS624__VRNG DISCRETE_INPUT(2)
+#define DSD_LS624__C DISCRETE_INPUT(3)
+#define DSD_LS624__OUTTYPE DISCRETE_INPUT(4)
/*
* The datasheet mentions a 600 ohm discharge. It also gives
diff --git a/src/emu/sound/disc_flt.c b/src/emu/sound/disc_flt.c
index 8d40dad1b94..3625068b74c 100644
--- a/src/emu/sound/disc_flt.c
+++ b/src/emu/sound/disc_flt.c
@@ -135,11 +135,11 @@ struct dst_rcintegrate_context
* input[4] - Voltage reference. Usually 0V.
*
************************************************************************/
-#define DST_CRFILTER__ENABLE (*(node->input[0]))
-#define DST_CRFILTER__IN (*(node->input[1]))
-#define DST_CRFILTER__R (*(node->input[2]))
-#define DST_CRFILTER__C (*(node->input[3]))
-#define DST_CRFILTER__VREF (*(node->input[4]))
+#define DST_CRFILTER__ENABLE DISCRETE_INPUT(0)
+#define DST_CRFILTER__IN DISCRETE_INPUT(1)
+#define DST_CRFILTER__R DISCRETE_INPUT(2)
+#define DST_CRFILTER__C DISCRETE_INPUT(3)
+#define DST_CRFILTER__VREF DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_crfilter)
{
@@ -176,10 +176,10 @@ static DISCRETE_RESET(dst_crfilter)
* input[3] - Filter type (initialization only)
*
************************************************************************/
-#define DST_FILTER1__ENABLE (*(node->input[0]))
-#define DST_FILTER1__IN (*(node->input[1]))
-#define DST_FILTER1__FREQ (*(node->input[2]))
-#define DST_FILTER1__TYPE (*(node->input[3]))
+#define DST_FILTER1__ENABLE DISCRETE_INPUT(0)
+#define DST_FILTER1__IN DISCRETE_INPUT(1)
+#define DST_FILTER1__FREQ DISCRETE_INPUT(2)
+#define DST_FILTER1__TYPE DISCRETE_INPUT(3)
static void calculate_filter1_coefficients(const discrete_info *disc_info, double fc, double type,
double *a1, double *b0, double *b1)
@@ -245,11 +245,11 @@ static DISCRETE_RESET(dst_filter1)
* input[4] - Filter type (initialization only)
*
************************************************************************/
-#define DST_FILTER2__ENABLE (*(node->input[0]))
-#define DST_FILTER2__IN (*(node->input[1]))
-#define DST_FILTER2__FREQ (*(node->input[2]))
-#define DST_FILTER2__DAMP (*(node->input[3]))
-#define DST_FILTER2__TYPE (*(node->input[4]))
+#define DST_FILTER2__ENABLE DISCRETE_INPUT(0)
+#define DST_FILTER2__IN DISCRETE_INPUT(1)
+#define DST_FILTER2__FREQ DISCRETE_INPUT(2)
+#define DST_FILTER2__DAMP DISCRETE_INPUT(3)
+#define DST_FILTER2__TYPE DISCRETE_INPUT(4)
static void calculate_filter2_coefficients(const discrete_info *disc_info,
double fc, double d, double type,
@@ -338,10 +338,10 @@ static DISCRETE_RESET(dst_filter2)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DST_OP_AMP_FILT__ENABLE (*(node->input[0]))
-#define DST_OP_AMP_FILT__INP1 (*(node->input[1]))
-#define DST_OP_AMP_FILT__INP2 (*(node->input[2]))
-#define DST_OP_AMP_FILT__TYPE (*(node->input[3]))
+#define DST_OP_AMP_FILT__ENABLE DISCRETE_INPUT(0)
+#define DST_OP_AMP_FILT__INP1 DISCRETE_INPUT(1)
+#define DST_OP_AMP_FILT__INP2 DISCRETE_INPUT(2)
+#define DST_OP_AMP_FILT__TYPE DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_op_amp_filt)
{
@@ -553,10 +553,10 @@ static DISCRETE_RESET(dst_op_amp_filt)
* input[3] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCDISC__ENABLE (*(node->input[0]))
-#define DST_RCDISC__IN (*(node->input[1]))
-#define DST_RCDISC__R (*(node->input[2]))
-#define DST_RCDISC__C (*(node->input[3]))
+#define DST_RCDISC__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISC__IN DISCRETE_INPUT(1)
+#define DST_RCDISC__R DISCRETE_INPUT(2)
+#define DST_RCDISC__C DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_rcdisc)
{
@@ -610,12 +610,12 @@ static DISCRETE_RESET(dst_rcdisc)
* input[5] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCDISC2__ENABLE (*(node->input[0]))
-#define DST_RCDISC2__IN0 (*(node->input[1]))
-#define DST_RCDISC2__R0 (*(node->input[2]))
-#define DST_RCDISC2__IN1 (*(node->input[3]))
-#define DST_RCDISC2__R1 (*(node->input[4]))
-#define DST_RCDISC2__C (*(node->input[5]))
+#define DST_RCDISC2__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISC2__IN0 DISCRETE_INPUT(1)
+#define DST_RCDISC2__R0 DISCRETE_INPUT(2)
+#define DST_RCDISC2__IN1 DISCRETE_INPUT(3)
+#define DST_RCDISC2__R1 DISCRETE_INPUT(4)
+#define DST_RCDISC2__C DISCRETE_INPUT(5)
static DISCRETE_STEP(dst_rcdisc2)
{
@@ -656,12 +656,12 @@ static DISCRETE_RESET(dst_rcdisc2)
* input[6] - Diode Junction voltage (initialization only)
*
************************************************************************/
-#define DST_RCDISC3__ENABLE (*(node->input[0]))
-#define DST_RCDISC3__IN (*(node->input[1]))
-#define DST_RCDISC3__R1 (*(node->input[2]))
-#define DST_RCDISC3__R2 (*(node->input[3]))
-#define DST_RCDISC3__C (*(node->input[4]))
-#define DST_RCDISC3__DJV (*(node->input[6]))
+#define DST_RCDISC3__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISC3__IN DISCRETE_INPUT(1)
+#define DST_RCDISC3__R1 DISCRETE_INPUT(2)
+#define DST_RCDISC3__R2 DISCRETE_INPUT(3)
+#define DST_RCDISC3__C DISCRETE_INPUT(4)
+#define DST_RCDISC3__DJV DISCRETE_INPUT(6)
static DISCRETE_STEP(dst_rcdisc3)
{
@@ -735,14 +735,14 @@ static DISCRETE_RESET(dst_rcdisc3)
* input[4] - circuit type (initialization only)
*
************************************************************************/
-#define DST_RCDISC4__ENABLE (*(node->input[0]))
-#define DST_RCDISC4__IN (*(node->input[1]))
-#define DST_RCDISC4__R1 (*(node->input[2]))
-#define DST_RCDISC4__R2 (*(node->input[3]))
-#define DST_RCDISC4__R3 (*(node->input[4]))
-#define DST_RCDISC4__C1 (*(node->input[5]))
-#define DST_RCDISC4__VP (*(node->input[6]))
-#define DST_RCDISC4__TYPE (*(node->input[7]))
+#define DST_RCDISC4__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISC4__IN DISCRETE_INPUT(1)
+#define DST_RCDISC4__R1 DISCRETE_INPUT(2)
+#define DST_RCDISC4__R2 DISCRETE_INPUT(3)
+#define DST_RCDISC4__R3 DISCRETE_INPUT(4)
+#define DST_RCDISC4__C1 DISCRETE_INPUT(5)
+#define DST_RCDISC4__VP DISCRETE_INPUT(6)
+#define DST_RCDISC4__TYPE DISCRETE_INPUT(7)
static DISCRETE_STEP(dst_rcdisc4)
{
@@ -851,10 +851,10 @@ static DISCRETE_RESET( dst_rcdisc4)
* input[3] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCDISC5__ENABLE (*(node->input[0]))
-#define DST_RCDISC5__IN (*(node->input[1]))
-#define DST_RCDISC5__R (*(node->input[2]))
-#define DST_RCDISC5__C (*(node->input[3]))
+#define DST_RCDISC5__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISC5__IN DISCRETE_INPUT(1)
+#define DST_RCDISC5__R DISCRETE_INPUT(2)
+#define DST_RCDISC5__C DISCRETE_INPUT(3)
static DISCRETE_STEP( dst_rcdisc5)
{
@@ -915,14 +915,14 @@ static DISCRETE_RESET( dst_rcdisc5)
* input[8] - Voltage Value (initialization only)
*
************************************************************************/
-#define DST_RCDISC_MOD__IN1 (*(node->input[0]))
-#define DST_RCDISC_MOD__IN2 (*(node->input[1]))
-#define DST_RCDISC_MOD__R1 (*(node->input[2]))
-#define DST_RCDISC_MOD__R2 (*(node->input[3]))
-#define DST_RCDISC_MOD__R3 (*(node->input[4]))
-#define DST_RCDISC_MOD__R4 (*(node->input[5]))
-#define DST_RCDISC_MOD__C (*(node->input[6]))
-#define DST_RCDISC_MOD__VP (*(node->input[7]))
+#define DST_RCDISC_MOD__IN1 DISCRETE_INPUT(0)
+#define DST_RCDISC_MOD__IN2 DISCRETE_INPUT(1)
+#define DST_RCDISC_MOD__R1 DISCRETE_INPUT(2)
+#define DST_RCDISC_MOD__R2 DISCRETE_INPUT(3)
+#define DST_RCDISC_MOD__R3 DISCRETE_INPUT(4)
+#define DST_RCDISC_MOD__R4 DISCRETE_INPUT(5)
+#define DST_RCDISC_MOD__C DISCRETE_INPUT(6)
+#define DST_RCDISC_MOD__VP DISCRETE_INPUT(7)
static DISCRETE_STEP(dst_rcdisc_mod)
{
@@ -1008,11 +1008,11 @@ static DISCRETE_RESET(dst_rcdisc_mod)
* input[4] - Voltage reference. Usually 0V.
*
************************************************************************/
-#define DST_RCFILTER__ENABLE (*(node->input[0]))
-#define DST_RCFILTER__VIN (*(node->input[1]))
-#define DST_RCFILTER__R (*(node->input[2]))
-#define DST_RCFILTER__C (*(node->input[3]))
-#define DST_RCFILTER__VREF (*(node->input[4]))
+#define DST_RCFILTER__ENABLE DISCRETE_INPUT(0)
+#define DST_RCFILTER__VIN DISCRETE_INPUT(1)
+#define DST_RCFILTER__R DISCRETE_INPUT(2)
+#define DST_RCFILTER__C DISCRETE_INPUT(3)
+#define DST_RCFILTER__VREF DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_rcfilter)
{
@@ -1053,11 +1053,11 @@ static DISCRETE_RESET(dst_rcfilter)
* input[4] - Voltage reference. Usually 0V.
*
************************************************************************/
-#define DST_RCFILTER_SW__ENABLE (*(node->input[0]))
-#define DST_RCFILTER_SW__VIN (*(node->input[1]))
-#define DST_RCFILTER_SW__SWITCH (*(node->input[2]))
-#define DST_RCFILTER_SW__R (*(node->input[3]))
-#define DST_RCFILTER_SW__C(x) (*(node->input[4+x]))
+#define DST_RCFILTER_SW__ENABLE DISCRETE_INPUT(0)
+#define DST_RCFILTER_SW__VIN DISCRETE_INPUT(1)
+#define DST_RCFILTER_SW__SWITCH DISCRETE_INPUT(2)
+#define DST_RCFILTER_SW__R DISCRETE_INPUT(3)
+#define DST_RCFILTER_SW__C(x) DISCRETE_INPUT(4+x)
#define CD4066_ON_RES 270
#define DST_RCFILTER_SW_ITERATIONS (10)
@@ -1173,13 +1173,13 @@ static DISCRETE_RESET(dst_rcfilter_sw)
* input[5] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCINTEGRATE__IN1 (*(node->input[0]))
-#define DST_RCINTEGRATE__R1 (*(node->input[1]))
-#define DST_RCINTEGRATE__R2 (*(node->input[2]))
-#define DST_RCINTEGRATE__R3 (*(node->input[3]))
-#define DST_RCINTEGRATE__C (*(node->input[4]))
-#define DST_RCINTEGRATE__VP (*(node->input[5]))
-#define DST_RCINTEGRATE__TYPE (*(node->input[6]))
+#define DST_RCINTEGRATE__IN1 DISCRETE_INPUT(0)
+#define DST_RCINTEGRATE__R1 DISCRETE_INPUT(1)
+#define DST_RCINTEGRATE__R2 DISCRETE_INPUT(2)
+#define DST_RCINTEGRATE__R3 DISCRETE_INPUT(3)
+#define DST_RCINTEGRATE__C DISCRETE_INPUT(4)
+#define DST_RCINTEGRATE__VP DISCRETE_INPUT(5)
+#define DST_RCINTEGRATE__TYPE DISCRETE_INPUT(6)
/* Ebers-Moll large signal model
* Couriersud:
@@ -1298,9 +1298,9 @@ static DISCRETE_RESET(dst_rcintegrate)
*
* 2008, couriersud
************************************************************************/
-#define DST_SALLEN_KEY__ENABLE (*(node->input[0]))
-#define DST_SALLEN_KEY__INP0 (*(node->input[1]))
-#define DST_SALLEN_KEY__TYPE (*(node->input[2]))
+#define DST_SALLEN_KEY__ENABLE DISCRETE_INPUT(0)
+#define DST_SALLEN_KEY__INP0 DISCRETE_INPUT(1)
+#define DST_SALLEN_KEY__TYPE DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_sallen_key)
{
@@ -1359,10 +1359,10 @@ static DISCRETE_RESET(dst_sallen_key)
* input[3] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCFILTERN__ENABLE (*(node->input[0]))
-#define DST_RCFILTERN__IN (*(node->input[1]))
-#define DST_RCFILTERN__R (*(node->input[2]))
-#define DST_RCFILTERN__C (*(node->input[3]))
+#define DST_RCFILTERN__ENABLE DISCRETE_INPUT(0)
+#define DST_RCFILTERN__IN DISCRETE_INPUT(1)
+#define DST_RCFILTERN__R DISCRETE_INPUT(2)
+#define DST_RCFILTERN__C DISCRETE_INPUT(3)
static DISCRETE_RESET(dst_rcfilterN)
{
@@ -1392,10 +1392,10 @@ static DISCRETE_RESET(dst_rcfilterN)
* input[3] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCDISCN__ENABLE (*(node->input[0]))
-#define DST_RCDISCN__IN (*(node->input[1]))
-#define DST_RCDISCN__R (*(node->input[2]))
-#define DST_RCDISCN__C (*(node->input[3]))
+#define DST_RCDISCN__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISCN__IN DISCRETE_INPUT(1)
+#define DST_RCDISCN__R DISCRETE_INPUT(2)
+#define DST_RCDISCN__C DISCRETE_INPUT(3)
static DISCRETE_RESET(dst_rcdiscN)
{
@@ -1449,12 +1449,12 @@ static DISCRETE_STEP(dst_rcdiscN)
* input[5] - Capacitor Value (initialization only)
*
************************************************************************/
-#define DST_RCDISC2N__ENABLE (*(node->input[0]))
-#define DST_RCDISC2N__IN0 (*(node->input[1]))
-#define DST_RCDISC2N__R0 (*(node->input[2]))
-#define DST_RCDISC2N__IN1 (*(node->input[3]))
-#define DST_RCDISC2N__R1 (*(node->input[4]))
-#define DST_RCDISC2N__C (*(node->input[5]))
+#define DST_RCDISC2N__ENABLE DISCRETE_INPUT(0)
+#define DST_RCDISC2N__IN0 DISCRETE_INPUT(1)
+#define DST_RCDISC2N__R0 DISCRETE_INPUT(2)
+#define DST_RCDISC2N__IN1 DISCRETE_INPUT(3)
+#define DST_RCDISC2N__R1 DISCRETE_INPUT(4)
+#define DST_RCDISC2N__C DISCRETE_INPUT(5)
struct dss_rcdisc2_context
{
diff --git a/src/emu/sound/disc_inp.c b/src/emu/sound/disc_inp.c
index 8258d6b3fd4..af7d028d27d 100644
--- a/src/emu/sound/disc_inp.c
+++ b/src/emu/sound/disc_inp.c
@@ -16,9 +16,9 @@
************************************************************************/
-#define DSS_INPUT__GAIN (*(node->input[0]))
-#define DSS_INPUT__OFFSET (*(node->input[1]))
-#define DSS_INPUT__INIT (*(node->input[2]))
+#define DSS_INPUT__GAIN DISCRETE_INPUT(0)
+#define DSS_INPUT__OFFSET DISCRETE_INPUT(1)
+#define DSS_INPUT__INIT DISCRETE_INPUT(2)
struct dss_adjustment_context
@@ -134,12 +134,12 @@ WRITE8_DEVICE_HANDLER(discrete_sound_w)
* input[6] -
*
************************************************************************/
-#define DSS_ADJUSTMENT__MIN (*(node->input[0]))
-#define DSS_ADJUSTMENT__MAX (*(node->input[1]))
-#define DSS_ADJUSTMENT__LOG (*(node->input[2]))
-#define DSS_ADJUSTMENT__PORT (*(node->input[3]))
-#define DSS_ADJUSTMENT__PMIN (*(node->input[4]))
-#define DSS_ADJUSTMENT__PMAX (*(node->input[5]))
+#define DSS_ADJUSTMENT__MIN DISCRETE_INPUT(0)
+#define DSS_ADJUSTMENT__MAX DISCRETE_INPUT(1)
+#define DSS_ADJUSTMENT__LOG DISCRETE_INPUT(2)
+#define DSS_ADJUSTMENT__PORT DISCRETE_INPUT(3)
+#define DSS_ADJUSTMENT__PMIN DISCRETE_INPUT(4)
+#define DSS_ADJUSTMENT__PMAX DISCRETE_INPUT(5)
static DISCRETE_STEP(dss_adjustment)
{
@@ -208,7 +208,7 @@ static DISCRETE_RESET(dss_adjustment)
* input[0] - Constant value
*
************************************************************************/
-#define DSS_CONSTANT__INIT (*(node->input[0]))
+#define DSS_CONSTANT__INIT DISCRETE_INPUT(0)
static DISCRETE_RESET(dss_constant)
{
@@ -272,9 +272,9 @@ static DISCRETE_STEP(dss_input_pulse)
* input[2] - Offset value
*
************************************************************************/
-#define DSS_INPUT_STREAM__STREAM (*(node->input[0]))
-#define DSS_INPUT_STREAM__GAIN (*(node->input[1]))
-#define DSS_INPUT_STREAM__OFFSET (*(node->input[2]))
+#define DSS_INPUT_STREAM__STREAM DISCRETE_INPUT(0)
+#define DSS_INPUT_STREAM__GAIN DISCRETE_INPUT(1)
+#define DSS_INPUT_STREAM__OFFSET DISCRETE_INPUT(2)
static DISCRETE_STEP(dss_input_stream)
{
diff --git a/src/emu/sound/disc_mth.c b/src/emu/sound/disc_mth.c
index 09bd83518a3..24098d107a5 100644
--- a/src/emu/sound/disc_mth.c
+++ b/src/emu/sound/disc_mth.c
@@ -180,11 +180,11 @@ struct dst_tvca_op_amp_context
* input[4] - Channel3 input value
*
************************************************************************/
-#define DST_ADDER__ENABLE (*(node->input[0]))
-#define DST_ADDER__IN0 (*(node->input[1]))
-#define DST_ADDER__IN1 (*(node->input[2]))
-#define DST_ADDER__IN2 (*(node->input[3]))
-#define DST_ADDER__IN3 (*(node->input[4]))
+#define DST_ADDER__ENABLE DISCRETE_INPUT(0)
+#define DST_ADDER__IN0 DISCRETE_INPUT(1)
+#define DST_ADDER__IN1 DISCRETE_INPUT(2)
+#define DST_ADDER__IN2 DISCRETE_INPUT(3)
+#define DST_ADDER__IN3 DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_adder)
{
@@ -209,7 +209,7 @@ static DISCRETE_STEP(dst_adder)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DST_COMP_ADDER__SELECT (*(node->input[0]))
+#define DST_COMP_ADDER__SELECT DISCRETE_INPUT(0)
static DISCRETE_STEP(dst_comp_adder)
{
@@ -267,11 +267,11 @@ static DISCRETE_RESET(dst_comp_adder)
* input[4] - Clamp output when disabled
*
************************************************************************/
-#define DST_CLAMP__ENABLE (*(node->input[0]))
-#define DST_CLAMP__IN (*(node->input[1]))
-#define DST_CLAMP__MIN (*(node->input[2]))
-#define DST_CLAMP__MAX (*(node->input[3]))
-#define DST_CLAMP__CLAMP (*(node->input[4]))
+#define DST_CLAMP__ENABLE DISCRETE_INPUT(0)
+#define DST_CLAMP__IN DISCRETE_INPUT(1)
+#define DST_CLAMP__MIN DISCRETE_INPUT(2)
+#define DST_CLAMP__MAX DISCRETE_INPUT(3)
+#define DST_CLAMP__CLAMP DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_clamp)
{
@@ -300,9 +300,9 @@ static DISCRETE_STEP(dst_clamp)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DST_DAC_R1__ENABLE (*(node->input[0]))
-#define DST_DAC_R1__DATA (*(node->input[1]))
-#define DST_DAC_R1__VON (*(node->input[2]))
+#define DST_DAC_R1__ENABLE DISCRETE_INPUT(0)
+#define DST_DAC_R1__DATA DISCRETE_INPUT(1)
+#define DST_DAC_R1__VON DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_dac_r1)
{
@@ -426,7 +426,7 @@ static DISCRETE_RESET(dst_dac_r1)
* Dec 2004, D Renaud.
************************************************************************/
#define DST_DIODE_MIX_INP_OFFSET 0
-#define DST_DIODE_MIX__INP(addr) (*(node->input[DST_DIODE_MIX_INP_OFFSET + addr]))
+#define DST_DIODE_MIX__INP(addr) DISCRETE_INPUT(DST_DIODE_MIX_INP_OFFSET + addr)
static DISCRETE_STEP(dst_diode_mix)
{
@@ -480,9 +480,9 @@ static DISCRETE_RESET(dst_diode_mix)
* input[2] - Divisor
*
************************************************************************/
-#define DST_DIVIDE__ENABLE (*(node->input[0]))
-#define DST_DIVIDE__IN (*(node->input[1]))
-#define DST_DIVIDE__DIV (*(node->input[2]))
+#define DST_DIVIDE__ENABLE DISCRETE_INPUT(0)
+#define DST_DIVIDE__IN DISCRETE_INPUT(1)
+#define DST_DIVIDE__DIV DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_divide)
{
@@ -515,10 +515,10 @@ static DISCRETE_STEP(dst_divide)
* input[3] - Final addition offset
*
************************************************************************/
-#define DST_GAIN__ENABLE (*(node->input[0]))
-#define DST_GAIN__IN (*(node->input[1]))
-#define DST_GAIN__GAIN (*(node->input[2]))
-#define DST_GAIN__OFFSET (*(node->input[3]))
+#define DST_GAIN__ENABLE DISCRETE_INPUT(0)
+#define DST_GAIN__IN DISCRETE_INPUT(1)
+#define DST_GAIN__GAIN DISCRETE_INPUT(2)
+#define DST_GAIN__OFFSET DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_gain)
{
@@ -545,8 +545,8 @@ static DISCRETE_STEP(dst_gain)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DST_INTEGRATE__TRG0 (*(node->input[0]))
-#define DST_INTEGRATE__TRG1 (*(node->input[1]))
+#define DST_INTEGRATE__TRG0 DISCRETE_INPUT(0)
+#define DST_INTEGRATE__TRG1 DISCRETE_INPUT(1)
static int dst_trigger_function(int trig0, int trig1, int trig2, int function)
{
@@ -660,8 +660,8 @@ static DISCRETE_RESET(dst_integrate)
* input[1] - input[0] value
*
************************************************************************/
-#define DST_LOGIC_INV__ENABLE (*(node->input[0]))
-#define DST_LOGIC_INV__IN (*(node->input[1]))
+#define DST_LOGIC_INV__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_INV__IN DISCRETE_INPUT(1)
static DISCRETE_STEP(dst_logic_inv)
{
@@ -684,10 +684,10 @@ static DISCRETE_STEP(dst_logic_inv)
* input[2] - To bit
*
************************************************************************/
-#define DST_BITS_DECODE__IN (*(node->input[0]))
-#define DST_BITS_DECODE__FROM (*(node->input[1]))
-#define DST_BITS_DECODE__TO (*(node->input[2]))
-#define DST_BITS_DECODE__VOUT (*(node->input[3]))
+#define DST_BITS_DECODE__IN DISCRETE_INPUT(0)
+#define DST_BITS_DECODE__FROM DISCRETE_INPUT(1)
+#define DST_BITS_DECODE__TO DISCRETE_INPUT(2)
+#define DST_BITS_DECODE__VOUT DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_bits_decode)
{
@@ -724,11 +724,11 @@ static DISCRETE_RESET(dst_bits_decode)
* input[4] - input[3] value
*
************************************************************************/
-#define DST_LOGIC_AND__ENABLE (*(node->input[0]))
-#define DST_LOGIC_AND__IN0 (*(node->input[1]))
-#define DST_LOGIC_AND__IN1 (*(node->input[2]))
-#define DST_LOGIC_AND__IN2 (*(node->input[3]))
-#define DST_LOGIC_AND__IN3 (*(node->input[4]))
+#define DST_LOGIC_AND__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_AND__IN0 DISCRETE_INPUT(1)
+#define DST_LOGIC_AND__IN1 DISCRETE_INPUT(2)
+#define DST_LOGIC_AND__IN2 DISCRETE_INPUT(3)
+#define DST_LOGIC_AND__IN3 DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_logic_and)
{
@@ -753,11 +753,11 @@ static DISCRETE_STEP(dst_logic_and)
* input[4] - input[3] value
*
************************************************************************/
-#define DST_LOGIC_NAND__ENABLE (*(node->input[0]))
-#define DST_LOGIC_NAND__IN0 (*(node->input[1]))
-#define DST_LOGIC_NAND__IN1 (*(node->input[2]))
-#define DST_LOGIC_NAND__IN2 (*(node->input[3]))
-#define DST_LOGIC_NAND__IN3 (*(node->input[4]))
+#define DST_LOGIC_NAND__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_NAND__IN0 DISCRETE_INPUT(1)
+#define DST_LOGIC_NAND__IN1 DISCRETE_INPUT(2)
+#define DST_LOGIC_NAND__IN2 DISCRETE_INPUT(3)
+#define DST_LOGIC_NAND__IN3 DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_logic_nand)
{
@@ -782,11 +782,11 @@ static DISCRETE_STEP(dst_logic_nand)
* input[4] - input[3] value
*
************************************************************************/
-#define DST_LOGIC_OR__ENABLE (*(node->input[0]))
-#define DST_LOGIC_OR__IN0 (*(node->input[1]))
-#define DST_LOGIC_OR__IN1 (*(node->input[2]))
-#define DST_LOGIC_OR__IN2 (*(node->input[3]))
-#define DST_LOGIC_OR__IN3 (*(node->input[4]))
+#define DST_LOGIC_OR__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_OR__IN0 DISCRETE_INPUT(1)
+#define DST_LOGIC_OR__IN1 DISCRETE_INPUT(2)
+#define DST_LOGIC_OR__IN2 DISCRETE_INPUT(3)
+#define DST_LOGIC_OR__IN3 DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_logic_or)
{
@@ -811,11 +811,11 @@ static DISCRETE_STEP(dst_logic_or)
* input[4] - input[3] value
*
************************************************************************/
-#define DST_LOGIC_NOR__ENABLE (*(node->input[0]))
-#define DST_LOGIC_NOR__IN0 (*(node->input[1]))
-#define DST_LOGIC_NOR__IN1 (*(node->input[2]))
-#define DST_LOGIC_NOR__IN2 (*(node->input[3]))
-#define DST_LOGIC_NOR__IN3 (*(node->input[4]))
+#define DST_LOGIC_NOR__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_NOR__IN0 DISCRETE_INPUT(1)
+#define DST_LOGIC_NOR__IN1 DISCRETE_INPUT(2)
+#define DST_LOGIC_NOR__IN2 DISCRETE_INPUT(3)
+#define DST_LOGIC_NOR__IN3 DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_logic_nor)
{
@@ -838,9 +838,9 @@ static DISCRETE_STEP(dst_logic_nor)
* input[2] - input[1] value
*
************************************************************************/
-#define DST_LOGIC_XOR__ENABLE (*(node->input[0]))
-#define DST_LOGIC_XOR__IN0 (*(node->input[1]))
-#define DST_LOGIC_XOR__IN1 (*(node->input[2]))
+#define DST_LOGIC_XOR__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_XOR__IN0 DISCRETE_INPUT(1)
+#define DST_LOGIC_XOR__IN1 DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_logic_xor)
{
@@ -863,9 +863,9 @@ static DISCRETE_STEP(dst_logic_xor)
* input[2] - input[1] value
*
************************************************************************/
-#define DST_LOGIC_XNOR__ENABLE (*(node->input[0]))
-#define DST_LOGIC_XNOR__IN0 (*(node->input[1]))
-#define DST_LOGIC_XNOR__IN1 (*(node->input[2]))
+#define DST_LOGIC_XNOR__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_XNOR__IN0 DISCRETE_INPUT(1)
+#define DST_LOGIC_XNOR__IN1 DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_logic_nxor)
{
@@ -891,11 +891,11 @@ static DISCRETE_STEP(dst_logic_nxor)
* input[4] - data
*
************************************************************************/
-#define DST_LOGIC_DFF__ENABLE (*(node->input[0]))
-#define DST_LOGIC_DFF__RESET !(*(node->input[1]))
-#define DST_LOGIC_DFF__SET !(*(node->input[2]))
-#define DST_LOGIC_DFF__CLOCK (*(node->input[3]))
-#define DST_LOGIC_DFF__DATA (*(node->input[4]))
+#define DST_LOGIC_DFF__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_DFF__RESET !DISCRETE_INPUT(1)
+#define DST_LOGIC_DFF__SET !DISCRETE_INPUT(2)
+#define DST_LOGIC_DFF__CLOCK DISCRETE_INPUT(3)
+#define DST_LOGIC_DFF__DATA DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_logic_dff)
{
@@ -940,12 +940,12 @@ static DISCRETE_RESET(dst_logic_ff)
* input[5] - K
*
************************************************************************/
-#define DST_LOGIC_JKFF__ENABLE (*(node->input[0]))
-#define DST_LOGIC_JKFF__RESET !(*(node->input[1]))
-#define DST_LOGIC_JKFF__SET !(*(node->input[2]))
-#define DST_LOGIC_JKFF__CLOCK (*(node->input[3]))
-#define DST_LOGIC_JKFF__J (*(node->input[4]))
-#define DST_LOGIC_JKFF__K (*(node->input[5]))
+#define DST_LOGIC_JKFF__ENABLE DISCRETE_INPUT(0)
+#define DST_LOGIC_JKFF__RESET !DISCRETE_INPUT(1)
+#define DST_LOGIC_JKFF__SET !DISCRETE_INPUT(2)
+#define DST_LOGIC_JKFF__CLOCK DISCRETE_INPUT(3)
+#define DST_LOGIC_JKFF__J DISCRETE_INPUT(4)
+#define DST_LOGIC_JKFF__K DISCRETE_INPUT(5)
static DISCRETE_STEP(dst_logic_jkff)
{
@@ -1001,9 +1001,9 @@ static DISCRETE_STEP(dst_logic_jkff)
*
* Feb 2007, D Renaud.
************************************************************************/
-#define DST_LOOKUP_TABLE__ENABLE (*(node->input[0]))
-#define DST_LOOKUP_TABLE__IN (*(node->input[1]))
-#define DST_LOOKUP_TABLE__SIZE (*(node->input[2]))
+#define DST_LOOKUP_TABLE__ENABLE DISCRETE_INPUT(0)
+#define DST_LOOKUP_TABLE__IN DISCRETE_INPUT(1)
+#define DST_LOOKUP_TABLE__SIZE DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_lookup_table)
{
@@ -1068,8 +1068,8 @@ static DISCRETE_STEP(dst_lookup_table)
* The voltage is then modified by an inverting amp formula.
* v = vRef + (rF/rI) * (vRef - (i * r))
*/
-#define DST_MIXER__ENABLE (*(node->input[0]))
-#define DST_MIXER__IN(bit) (*(node->input[bit + 1]))
+#define DST_MIXER__ENABLE DISCRETE_INPUT(0)
+#define DST_MIXER__IN(bit) DISCRETE_INPUT(bit + 1)
static DISCRETE_STEP(dst_mixer)
{
@@ -1334,9 +1334,9 @@ static DISCRETE_RESET(dst_mixer)
*
* Dec 2004, D Renaud.
************************************************************************/
-#define DST_MULTIPLEX__ENABLE (*(node->input[0]))
-#define DST_MULTIPLEX__ADDR (*(node->input[1]))
-#define DST_MULTIPLEX__INP(addr) (*(node->input[2 + addr]))
+#define DST_MULTIPLEX__ENABLE DISCRETE_INPUT(0)
+#define DST_MULTIPLEX__ADDR DISCRETE_INPUT(1)
+#define DST_MULTIPLEX__INP(addr) DISCRETE_INPUT(2 + addr)
static DISCRETE_STEP(dst_multiplex)
{
@@ -1385,11 +1385,11 @@ static DISCRETE_RESET(dst_multiplex)
*
* Complete re-write Jan 2004, D Renaud.
************************************************************************/
-#define DST_ONESHOT__RESET (*(node->input[0]))
-#define DST_ONESHOT__TRIG (*(node->input[1]))
-#define DST_ONESHOT__AMP (*(node->input[2]))
-#define DST_ONESHOT__WIDTH (*(node->input[3]))
-#define DST_ONESHOT__TYPE (int)(*(node->input[4]))
+#define DST_ONESHOT__RESET DISCRETE_INPUT(0)
+#define DST_ONESHOT__TRIG DISCRETE_INPUT(1)
+#define DST_ONESHOT__AMP DISCRETE_INPUT(2)
+#define DST_ONESHOT__WIDTH DISCRETE_INPUT(3)
+#define DST_ONESHOT__TYPE (int)DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_oneshot)
{
@@ -1475,12 +1475,12 @@ static DISCRETE_RESET(dst_oneshot)
* input[5] - Clamp value when disabled
*
************************************************************************/
-#define DST_RAMP__ENABLE (*(node->input[0]))
-#define DST_RAMP__DIR (*(node->input[1]))
-#define DST_RAMP__GRAD (*(node->input[2]))
-#define DST_RAMP__START (*(node->input[3]))
-#define DST_RAMP__END (*(node->input[4]))
-#define DST_RAMP__CLAMP (*(node->input[5]))
+#define DST_RAMP__ENABLE DISCRETE_INPUT(0)
+#define DST_RAMP__DIR DISCRETE_INPUT(1)
+#define DST_RAMP__GRAD DISCRETE_INPUT(2)
+#define DST_RAMP__START DISCRETE_INPUT(3)
+#define DST_RAMP__END DISCRETE_INPUT(4)
+#define DST_RAMP__CLAMP DISCRETE_INPUT(5)
static DISCRETE_STEP(dst_ramp)
{
@@ -1530,10 +1530,10 @@ static DISCRETE_RESET(dst_ramp)
* input[3] - clock type
*
************************************************************************/
-#define DST_SAMPHOLD__ENABLE (*(node->input[0]))
-#define DST_SAMPHOLD__IN0 (*(node->input[1]))
-#define DST_SAMPHOLD__CLOCK (*(node->input[2]))
-#define DST_SAMPHOLD__TYPE (*(node->input[3]))
+#define DST_SAMPHOLD__ENABLE DISCRETE_INPUT(0)
+#define DST_SAMPHOLD__IN0 DISCRETE_INPUT(1)
+#define DST_SAMPHOLD__CLOCK DISCRETE_INPUT(2)
+#define DST_SAMPHOLD__TYPE DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_samphold)
{
@@ -1594,10 +1594,10 @@ static DISCRETE_RESET(dst_samphold)
* input[3] - input[1]
*
************************************************************************/
-#define DSS_SWITCH__ENABLE (*(node->input[0]))
-#define DSS_SWITCH__SWITCH (*(node->input[1]))
-#define DSS_SWITCH__IN0 (*(node->input[2]))
-#define DSS_SWITCH__IN1 (*(node->input[3]))
+#define DSS_SWITCH__ENABLE DISCRETE_INPUT(0)
+#define DSS_SWITCH__SWITCH DISCRETE_INPUT(1)
+#define DSS_SWITCH__IN0 DISCRETE_INPUT(2)
+#define DSS_SWITCH__IN1 DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_switch)
{
@@ -1621,10 +1621,10 @@ static DISCRETE_STEP(dst_switch)
* input[3] - Threshold for enable
*
************************************************************************/
-#define DSS_ASWITCH__ENABLE (*(node->input[0]))
-#define DSS_ASWITCH__CTRL (*(node->input[1]))
-#define DSS_ASWITCH__IN (*(node->input[2]))
-#define DSS_ASWITCH__THRESHOLD (*(node->input[3]))
+#define DSS_ASWITCH__ENABLE DISCRETE_INPUT(0)
+#define DSS_ASWITCH__CTRL DISCRETE_INPUT(1)
+#define DSS_ASWITCH__IN DISCRETE_INPUT(2)
+#define DSS_ASWITCH__THRESHOLD DISCRETE_INPUT(3)
static DISCRETE_STEP(dst_aswitch)
@@ -1651,11 +1651,11 @@ static DISCRETE_STEP(dst_aswitch)
* input[5] - Channel4 input value
*
************************************************************************/
-#define DST_TRANSFORM__IN0 (*(node->input[0]))
-#define DST_TRANSFORM__IN1 (*(node->input[1]))
-#define DST_TRANSFORM__IN2 (*(node->input[2]))
-#define DST_TRANSFORM__IN3 (*(node->input[3]))
-#define DST_TRANSFORM__IN4 (*(node->input[4]))
+#define DST_TRANSFORM__IN0 DISCRETE_INPUT(0)
+#define DST_TRANSFORM__IN1 DISCRETE_INPUT(1)
+#define DST_TRANSFORM__IN2 DISCRETE_INPUT(2)
+#define DST_TRANSFORM__IN3 DISCRETE_INPUT(3)
+#define DST_TRANSFORM__IN4 DISCRETE_INPUT(4)
#define MAX_TRANS_STACK 16
@@ -1783,9 +1783,9 @@ static DISCRETE_STEP(dst_transform)
*
* Mar 2007, D Renaud.
************************************************************************/
-#define DST_OP_AMP__ENABLE (*(node->input[0]))
-#define DST_OP_AMP__INP0 (*(node->input[1]))
-#define DST_OP_AMP__INP1 (*(node->input[2]))
+#define DST_OP_AMP__ENABLE DISCRETE_INPUT(0)
+#define DST_OP_AMP__INP0 DISCRETE_INPUT(1)
+#define DST_OP_AMP__INP1 DISCRETE_INPUT(2)
static DISCRETE_STEP(dst_op_amp)
{
@@ -1889,7 +1889,7 @@ static DISCRETE_RESET(dst_op_amp)
*
* Mar 2007, D Renaud.
************************************************************************/
-#define DST_OP_AMP_1SHT__TRIGGER (*(node->input[0]))
+#define DST_OP_AMP_1SHT__TRIGGER DISCRETE_INPUT(0)
static DISCRETE_STEP(dst_op_amp_1sht)
{
@@ -1960,11 +1960,11 @@ static DISCRETE_RESET(dst_op_amp_1sht)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DST_TVCA_OP_AMP__TRG0 (*(node->input[0]))
-#define DST_TVCA_OP_AMP__TRG1 (*(node->input[1]))
-#define DST_TVCA_OP_AMP__TRG2 (*(node->input[2]))
-#define DST_TVCA_OP_AMP__INP0 (*(node->input[3]))
-#define DST_TVCA_OP_AMP__INP1 (*(node->input[4]))
+#define DST_TVCA_OP_AMP__TRG0 DISCRETE_INPUT(0)
+#define DST_TVCA_OP_AMP__TRG1 DISCRETE_INPUT(1)
+#define DST_TVCA_OP_AMP__TRG2 DISCRETE_INPUT(2)
+#define DST_TVCA_OP_AMP__INP0 DISCRETE_INPUT(3)
+#define DST_TVCA_OP_AMP__INP1 DISCRETE_INPUT(4)
static DISCRETE_STEP(dst_tvca_op_amp)
{
diff --git a/src/emu/sound/disc_wav.c b/src/emu/sound/disc_wav.c
index 33d698fc94d..fc88ccc8f7a 100644
--- a/src/emu/sound/disc_wav.c
+++ b/src/emu/sound/disc_wav.c
@@ -170,13 +170,13 @@ struct dss_trianglewave_context
*
* Jan 2004, D Renaud.
************************************************************************/
-#define DSS_COUNTER__ENABLE (*(node->input[0]))
-#define DSS_COUNTER__RESET (*(node->input[1]))
-#define DSS_COUNTER__CLOCK (*(node->input[2]))
-#define DSS_COUNTER__MAX (*(node->input[3]))
-#define DSS_COUNTER__DIR (*(node->input[4]))
-#define DSS_COUNTER__INIT (*(node->input[5]))
-#define DSS_COUNTER__CLOCK_TYPE (*(node->input[6]))
+#define DSS_COUNTER__ENABLE DISCRETE_INPUT(0)
+#define DSS_COUNTER__RESET DISCRETE_INPUT(1)
+#define DSS_COUNTER__CLOCK DISCRETE_INPUT(2)
+#define DSS_COUNTER__MAX DISCRETE_INPUT(3)
+#define DSS_COUNTER__DIR DISCRETE_INPUT(4)
+#define DSS_COUNTER__INIT DISCRETE_INPUT(5)
+#define DSS_COUNTER__CLOCK_TYPE DISCRETE_INPUT(6)
#define DSS_7492__CLOCK_TYPE DSS_COUNTER__MAX
static const int disc_7492_count[6] = {0x00, 0x01, 0x02, 0x04, 0x05, 0x06};
@@ -318,12 +318,12 @@ static DISCRETE_RESET(dss_counter)
* also passed dss_lfsr_context structure
*
************************************************************************/
-#define DSS_LFSR_NOISE__ENABLE (*(node->input[0]))
-#define DSS_LFSR_NOISE__RESET (*(node->input[1]))
-#define DSS_LFSR_NOISE__CLOCK (*(node->input[2]))
-#define DSS_LFSR_NOISE__AMP (*(node->input[3]))
-#define DSS_LFSR_NOISE__FEED (*(node->input[4]))
-#define DSS_LFSR_NOISE__BIAS (*(node->input[5]))
+#define DSS_LFSR_NOISE__ENABLE DISCRETE_INPUT(0)
+#define DSS_LFSR_NOISE__RESET DISCRETE_INPUT(1)
+#define DSS_LFSR_NOISE__CLOCK DISCRETE_INPUT(2)
+#define DSS_LFSR_NOISE__AMP DISCRETE_INPUT(3)
+#define DSS_LFSR_NOISE__FEED DISCRETE_INPUT(4)
+#define DSS_LFSR_NOISE__BIAS DISCRETE_INPUT(5)
INLINE int dss_lfsr_function(const discrete_info *disc_info, int myfunc, int in0, int in1, int bitmask)
{
@@ -539,10 +539,10 @@ static DISCRETE_RESET(dss_lfsr)
* input3 - DC Bias value
*
************************************************************************/
-#define DSS_NOISE__ENABLE (*(node->input[0]))
-#define DSS_NOISE__FREQ (*(node->input[1]))
-#define DSS_NOISE__AMP (*(node->input[2]))
-#define DSS_NOISE__BIAS (*(node->input[3]))
+#define DSS_NOISE__ENABLE DISCRETE_INPUT(0)
+#define DSS_NOISE__FREQ DISCRETE_INPUT(1)
+#define DSS_NOISE__AMP DISCRETE_INPUT(2)
+#define DSS_NOISE__BIAS DISCRETE_INPUT(3)
static DISCRETE_STEP(dss_noise)
{
@@ -603,12 +603,12 @@ static DISCRETE_RESET(dss_noise)
*
* Mar 2004, D Renaud.
************************************************************************/
- #define DSS_NOTE__ENABLE (*(node->input[0]))
- #define DSS_NOTE__CLOCK (*(node->input[1]))
- #define DSS_NOTE__DATA (*(node->input[2]))
- #define DSS_NOTE__MAX1 (*(node->input[3]))
- #define DSS_NOTE__MAX2 (*(node->input[4]))
- #define DSS_NOTE__CLOCK_TYPE (*(node->input[5]))
+ #define DSS_NOTE__ENABLE DISCRETE_INPUT(0)
+ #define DSS_NOTE__CLOCK DISCRETE_INPUT(1)
+ #define DSS_NOTE__DATA DISCRETE_INPUT(2)
+ #define DSS_NOTE__MAX1 DISCRETE_INPUT(3)
+ #define DSS_NOTE__MAX2 DISCRETE_INPUT(4)
+ #define DSS_NOTE__CLOCK_TYPE DISCRETE_INPUT(5)
static DISCRETE_STEP(dss_note)
{
@@ -730,9 +730,9 @@ static DISCRETE_RESET(dss_note)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DSS_OP_AMP_OSC__ENABLE (*(node->input[0]))
-#define DSS_OP_AMP_OSC__VMOD1 (*(node->input[1]))
-#define DSS_OP_AMP_OSC__VMOD2 (*(node->input[2]))
+#define DSS_OP_AMP_OSC__ENABLE DISCRETE_INPUT(0)
+#define DSS_OP_AMP_OSC__VMOD1 DISCRETE_INPUT(1)
+#define DSS_OP_AMP_OSC__VMOD2 DISCRETE_INPUT(2)
/* The inputs on a norton op-amp are (info->vP - OP_AMP_NORTON_VBE) */
/* which is the same as the output high voltage. We will define them */
@@ -1048,12 +1048,12 @@ static DISCRETE_RESET(dss_op_amp_osc)
* input5 - Initial Phase
*
************************************************************************/
-#define DSS_SAWTOOTHWAVE__ENABLE (*(node->input[0]))
-#define DSS_SAWTOOTHWAVE__FREQ (*(node->input[1]))
-#define DSS_SAWTOOTHWAVE__AMP (*(node->input[2]))
-#define DSS_SAWTOOTHWAVE__BIAS (*(node->input[3]))
-#define DSS_SAWTOOTHWAVE__GRAD (*(node->input[4]))
-#define DSS_SAWTOOTHWAVE__PHASE (*(node->input[5]))
+#define DSS_SAWTOOTHWAVE__ENABLE DISCRETE_INPUT(0)
+#define DSS_SAWTOOTHWAVE__FREQ DISCRETE_INPUT(1)
+#define DSS_SAWTOOTHWAVE__AMP DISCRETE_INPUT(2)
+#define DSS_SAWTOOTHWAVE__BIAS DISCRETE_INPUT(3)
+#define DSS_SAWTOOTHWAVE__GRAD DISCRETE_INPUT(4)
+#define DSS_SAWTOOTHWAVE__PHASE DISCRETE_INPUT(5)
static DISCRETE_STEP(dss_sawtoothwave)
{
@@ -1111,9 +1111,9 @@ static DISCRETE_RESET(dss_sawtoothwave)
*
* Mar 2004, D Renaud.
************************************************************************/
-#define DSS_SCHMITT_OSC__ENABLE (int)(*(node->input[0]))
-#define DSS_SCHMITT_OSC__VIN (*(node->input[1]))
-#define DSS_SCHMITT_OSC__AMP (*(node->input[2]))
+#define DSS_SCHMITT_OSC__ENABLE (int)DISCRETE_INPUT(0)
+#define DSS_SCHMITT_OSC__VIN DISCRETE_INPUT(1)
+#define DSS_SCHMITT_OSC__AMP DISCRETE_INPUT(2)
static DISCRETE_STEP(dss_schmitt_osc)
{
@@ -1228,11 +1228,11 @@ static DISCRETE_RESET(dss_schmitt_osc)
* input4 - Starting phase
*
************************************************************************/
-#define DSS_SINEWAVE__ENABLE (*(node->input[0]))
-#define DSS_SINEWAVE__FREQ (*(node->input[1]))
-#define DSS_SINEWAVE__AMPL (*(node->input[2]))
-#define DSS_SINEWAVE__BIAS (*(node->input[3]))
-#define DSS_SINEWAVE__PHASE (*(node->input[4]))
+#define DSS_SINEWAVE__ENABLE DISCRETE_INPUT(0)
+#define DSS_SINEWAVE__FREQ DISCRETE_INPUT(1)
+#define DSS_SINEWAVE__AMPL DISCRETE_INPUT(2)
+#define DSS_SINEWAVE__BIAS DISCRETE_INPUT(3)
+#define DSS_SINEWAVE__PHASE DISCRETE_INPUT(4)
static DISCRETE_STEP(dss_sinewave)
{
@@ -1286,12 +1286,12 @@ static DISCRETE_RESET(dss_sinewave)
* input5 - Start Phase
*
************************************************************************/
-#define DSS_SQUAREWAVE__ENABLE (*(node->input[0]))
-#define DSS_SQUAREWAVE__FREQ (*(node->input[1]))
-#define DSS_SQUAREWAVE__AMP (*(node->input[2]))
-#define DSS_SQUAREWAVE__DUTY (*(node->input[3]))
-#define DSS_SQUAREWAVE__BIAS (*(node->input[4]))
-#define DSS_SQUAREWAVE__PHASE (*(node->input[5]))
+#define DSS_SQUAREWAVE__ENABLE DISCRETE_INPUT(0)
+#define DSS_SQUAREWAVE__FREQ DISCRETE_INPUT(1)
+#define DSS_SQUAREWAVE__AMP DISCRETE_INPUT(2)
+#define DSS_SQUAREWAVE__DUTY DISCRETE_INPUT(3)
+#define DSS_SQUAREWAVE__BIAS DISCRETE_INPUT(4)
+#define DSS_SQUAREWAVE__PHASE DISCRETE_INPUT(5)
static DISCRETE_STEP(dss_squarewave)
{
@@ -1352,12 +1352,12 @@ static DISCRETE_RESET(dss_squarewave)
* input5 - Start Phase
*
************************************************************************/
-#define DSS_SQUAREWFIX__ENABLE (*(node->input[0]))
-#define DSS_SQUAREWFIX__FREQ (*(node->input[1]))
-#define DSS_SQUAREWFIX__AMP (*(node->input[2]))
-#define DSS_SQUAREWFIX__DUTY (*(node->input[3]))
-#define DSS_SQUAREWFIX__BIAS (*(node->input[4]))
-#define DSS_SQUAREWFIX__PHASE (*(node->input[5]))
+#define DSS_SQUAREWFIX__ENABLE DISCRETE_INPUT(0)
+#define DSS_SQUAREWFIX__FREQ DISCRETE_INPUT(1)
+#define DSS_SQUAREWFIX__AMP DISCRETE_INPUT(2)
+#define DSS_SQUAREWFIX__DUTY DISCRETE_INPUT(3)
+#define DSS_SQUAREWFIX__BIAS DISCRETE_INPUT(4)
+#define DSS_SQUAREWFIX__PHASE DISCRETE_INPUT(5)
static DISCRETE_STEP(dss_squarewfix)
{
@@ -1430,12 +1430,12 @@ static DISCRETE_RESET(dss_squarewfix)
* input5 - Initial Time Shift
*
************************************************************************/
-#define DSS_SQUAREWAVE2__ENABLE (*(node->input[0]))
-#define DSS_SQUAREWAVE2__AMP (*(node->input[1]))
-#define DSS_SQUAREWAVE2__T_OFF (*(node->input[2]))
-#define DSS_SQUAREWAVE2__T_ON (*(node->input[3]))
-#define DSS_SQUAREWAVE2__BIAS (*(node->input[4]))
-#define DSS_SQUAREWAVE2__SHIFT (*(node->input[5]))
+#define DSS_SQUAREWAVE2__ENABLE DISCRETE_INPUT(0)
+#define DSS_SQUAREWAVE2__AMP DISCRETE_INPUT(1)
+#define DSS_SQUAREWAVE2__T_OFF DISCRETE_INPUT(2)
+#define DSS_SQUAREWAVE2__T_ON DISCRETE_INPUT(3)
+#define DSS_SQUAREWAVE2__BIAS DISCRETE_INPUT(4)
+#define DSS_SQUAREWAVE2__SHIFT DISCRETE_INPUT(5)
static DISCRETE_STEP(dss_squarewave2)
{
@@ -1501,12 +1501,12 @@ static DISCRETE_RESET(dss_squarewave2)
* input4 - Desc
*
************************************************************************/
-#define DSS_INVERTER_OSC__ENABLE (*(node->input[0]))
-#define DSS_INVERTER_OSC__MOD (*(node->input[1]))
-#define DSS_INVERTER_OSC__RC (*(node->input[2]))
-#define DSS_INVERTER_OSC__RP (*(node->input[3]))
-#define DSS_INVERTER_OSC__C (*(node->input[4]))
-#define DSS_INVERTER_OSC__R2 (*(node->input[5]))
+#define DSS_INVERTER_OSC__ENABLE DISCRETE_INPUT(0)
+#define DSS_INVERTER_OSC__MOD DISCRETE_INPUT(1)
+#define DSS_INVERTER_OSC__RC DISCRETE_INPUT(2)
+#define DSS_INVERTER_OSC__RP DISCRETE_INPUT(3)
+#define DSS_INVERTER_OSC__C DISCRETE_INPUT(4)
+#define DSS_INVERTER_OSC__R2 DISCRETE_INPUT(5)
INLINE double dss_inverter_tftab(node_description *node, double x)
{
@@ -1678,11 +1678,11 @@ static DISCRETE_RESET(dss_inverter_osc)
* input4 - Initial Phase
*
************************************************************************/
-#define DSS_TRIANGLEWAVE__ENABLE (*(node->input[0]))
-#define DSS_TRIANGLEWAVE__FREQ (*(node->input[1]))
-#define DSS_TRIANGLEWAVE__AMP (*(node->input[2]))
-#define DSS_TRIANGLEWAVE__BIAS (*(node->input[3]))
-#define DSS_TRIANGLEWAVE__PHASE (*(node->input[4]))
+#define DSS_TRIANGLEWAVE__ENABLE DISCRETE_INPUT(0)
+#define DSS_TRIANGLEWAVE__FREQ DISCRETE_INPUT(1)
+#define DSS_TRIANGLEWAVE__AMP DISCRETE_INPUT(2)
+#define DSS_TRIANGLEWAVE__BIAS DISCRETE_INPUT(3)
+#define DSS_TRIANGLEWAVE__PHASE DISCRETE_INPUT(4)
static DISCRETE_STEP(dss_trianglewave)
{
@@ -1735,7 +1735,7 @@ static DISCRETE_RESET(dss_trianglewave)
* input2 - gain scaling factor
*
************************************************************************/
-#define DSS_ADSR__ENABLE (*(node->input[0]))
+#define DSS_ADSR__ENABLE DISCRETE_INPUT(0)
static DISCRETE_STEP(dss_adsrenv)
{
diff --git a/src/emu/sound/discrete.c b/src/emu/sound/discrete.c
index c7e35012339..360c469c308 100644
--- a/src/emu/sound/discrete.c
+++ b/src/emu/sound/discrete.c
@@ -144,7 +144,7 @@ static void *task_callback(void *param, int threadid)
static DISCRETE_STEP( dso_task )
{
discrete_task_context *ctx = (discrete_task_context *) node->context;
- *(ctx->ptr++) = (double) *(node->input[0]);
+ *(ctx->ptr++) = (double) DISCRETE_INPUT(0);
}
static DISCRETE_RESET( dso_task )
@@ -159,7 +159,7 @@ static DISCRETE_STEP( dso_output )
/* Add gain to the output and put into the buffers */
/* Clipping will be handled by the main sound system */
- val = (*node->input[0]) * (*node->input[1]);
+ val = DISCRETE_INPUT(0) * DISCRETE_INPUT(1);
**output = val;
(*output)++;
}
diff --git a/src/emu/sound/discrete.h b/src/emu/sound/discrete.h
index 4c208bd3842..73246b643fa 100644
--- a/src/emu/sound/discrete.h
+++ b/src/emu/sound/discrete.h
@@ -3367,6 +3367,8 @@
#define DISCRETE_CUSTOM_MODULE(_basename, _context_type) \
{ DST_CUSTOM, "CUSTOM", 1, sizeof(_context_type), DISCRETE_RESET_NAME(_basename), DISCRETE_STEP_NAME(_basename) }
+#define DISCRETE_INPUT(_num) (*(node->input[_num]))
+
/*************************************
*
* Core constants
@@ -4085,6 +4087,7 @@ enum {
#define NODE_START NODE_00
#define NODE_END NODE_SPECIAL
+#define IS_VALUE_A_NODE(val) (((val) > NODE_START) && ((val) <= NODE_END))
/*************************************
@@ -4415,9 +4418,6 @@ enum
#define DISCRETE_OUTPUT(OPNODE,GAIN) { NODE_SPECIAL, DSO_OUTPUT , 2, { OPNODE,NODE_NC }, { 0,GAIN }, NULL, "DISCRETE_OUTPUT" },
-
-#define IS_VALUE_A_NODE(val) (((val) > NODE_START) && ((val) <= NODE_END))
-
/*************************************
*
* Interface to the external world
diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c
index 576e6e6325a..7ca85899e37 100644
--- a/src/mame/audio/dkong.c
+++ b/src/mame/audio/dkong.c
@@ -284,14 +284,14 @@ static const discrete_op_amp_filt_info dkong_sallen_key_info =
* Gnd Gnd
*
************************************************************************/
-#define DKONG_CUSTOM_IN1 (*(node->input[0]))
-#define DKONG_CUSTOM_IN2 (*(node->input[1]))
-#define DKONG_CUSTOM_R1 (*(node->input[2]))
-#define DKONG_CUSTOM_R2 (*(node->input[3]))
-#define DKONG_CUSTOM_R3 (*(node->input[4]))
-#define DKONG_CUSTOM_R4 (*(node->input[5]))
-#define DKONG_CUSTOM_C (*(node->input[6]))
-#define DKONG_CUSTOM_V (*(node->input[7]))
+#define DKONG_CUSTOM_IN1 DISCRETE_INPUT(0)
+#define DKONG_CUSTOM_IN2 DISCRETE_INPUT(1)
+#define DKONG_CUSTOM_R1 DISCRETE_INPUT(2)
+#define DKONG_CUSTOM_R2 DISCRETE_INPUT(3)
+#define DKONG_CUSTOM_R3 DISCRETE_INPUT(4)
+#define DKONG_CUSTOM_R4 DISCRETE_INPUT(5)
+#define DKONG_CUSTOM_C DISCRETE_INPUT(6)
+#define DKONG_CUSTOM_V DISCRETE_INPUT(7)
struct dkong_custom_mixer_context
{
diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c
index 247c7dc1559..575d6d35db1 100644
--- a/src/mame/audio/mario.c
+++ b/src/mame/audio/mario.c
@@ -169,13 +169,13 @@
* -||-
* C2
************************************************************************/
-#define MARIO_CUSTOM_VOUT (*(node->input[0]))
-#define MARIO_CUSTOM_IN1 (*(node->input[1]))
-#define MARIO_CUSTOM_IN2 (*(node->input[2]))
-#define MARIO_CUSTOM_C1 (*(node->input[3]))
-#define MARIO_CUSTOM_C2 (*(node->input[4]))
-#define MARIO_CUSTOM_R1 (*(node->input[5]))
-#define MARIO_CUSTOM_C3 (*(node->input[6]))
+#define MARIO_CUSTOM_VOUT DISCRETE_INPUT(0)
+#define MARIO_CUSTOM_IN1 DISCRETE_INPUT(1)
+#define MARIO_CUSTOM_IN2 DISCRETE_INPUT(2)
+#define MARIO_CUSTOM_C1 DISCRETE_INPUT(3)
+#define MARIO_CUSTOM_C2 DISCRETE_INPUT(4)
+#define MARIO_CUSTOM_R1 DISCRETE_INPUT(5)
+#define MARIO_CUSTOM_C3 DISCRETE_INPUT(6)
struct mario_custom_run_context
{