From 1a263d82f2ac49f8223e892cd3e39728e31e3d2c Mon Sep 17 00:00:00 2001 From: Couriersud Date: Mon, 5 Oct 2009 22:01:48 +0000 Subject: Discrete update - fix some "const" weirdness I introduced - fix VREF in CRFILTER_VREF and RCFILTER_VREF. VREF never got used since it was only a static parameter. - Removed enable from CR_FILTER* and RC_FILTER* - Updated drivers accordingly. - Use EXPECTED/UNEXPECTED to help the compiler --- src/emu/sound/disc_dev.c | 8 +++---- src/emu/sound/disc_flt.c | 46 +++++++++++++++------------------------- src/emu/sound/disc_inp.c | 4 ++-- src/emu/sound/disc_mth.c | 6 +++--- src/emu/sound/disc_sys.c | 4 ++-- src/emu/sound/discrete.c | 30 +++++++++++++++++++++++--- src/emu/sound/discrete.h | 31 ++++++++++++++------------- src/mame/audio/8080bw.c | 18 ++++++++-------- src/mame/audio/asteroid.c | 26 ++++++++++++----------- src/mame/audio/avalnche.c | 2 +- src/mame/audio/blockade.c | 2 +- src/mame/audio/canyon.c | 18 ++++++++-------- src/mame/audio/circus.c | 6 +++--- src/mame/audio/cliffhgr.c | 4 ++-- src/mame/audio/crbaloon.c | 8 +++---- src/mame/audio/dkong.c | 28 ++++++++++++------------- src/mame/audio/dragrace.c | 26 ++++++++++++----------- src/mame/audio/galaxian.c | 2 +- src/mame/audio/hitme.c | 2 +- src/mame/audio/irem.c | 4 ++-- src/mame/audio/llander.c | 2 +- src/mame/audio/m79amb.c | 15 ++++++------- src/mame/audio/madalien.c | 4 ++-- src/mame/audio/mario.c | 32 ++++++++++++++-------------- src/mame/audio/mw8080bw.c | 51 +++++++++++++-------------------------------- src/mame/audio/nitedrvr.c | 12 +++++------ src/mame/audio/phoenix.c | 2 -- src/mame/audio/poolshrk.c | 2 +- src/mame/audio/qix.c | 4 ++-- src/mame/audio/skyraid.c | 2 -- src/mame/audio/snk6502.c | 6 +++--- src/mame/audio/spiders.c | 2 +- src/mame/audio/sprint8.c | 4 +--- src/mame/audio/starshp1.c | 2 -- src/mame/audio/tank8.c | 20 +++++++++--------- src/mame/drivers/btime.c | 4 ++-- src/mame/drivers/galaxian.c | 2 +- src/mame/drivers/ironhors.c | 2 +- 38 files changed, 213 insertions(+), 230 deletions(-) (limited to 'src') diff --git a/src/emu/sound/disc_dev.c b/src/emu/sound/disc_dev.c index 21f69c774ea..7dc15b780f4 100644 --- a/src/emu/sound/disc_dev.c +++ b/src/emu/sound/disc_dev.c @@ -691,7 +691,7 @@ static DISCRETE_STEP(dsd_555_cc) UINT8 flip_flop = context->flip_flop; - if (DSD_555_CC__RESET) + if (UNEXPECTED(DSD_555_CC__RESET)) { /* We are in RESET */ node->output[0] = 0; @@ -1723,14 +1723,14 @@ static DISCRETE_STEP(dsd_ls624) sample_t = node->info->sample_time; /* Change in time */ //dt = LS624_T(DSD_LS624__C, DSD_LS624__VRNG, DSD_LS624__VMOD) / 2.0; - if (DSD_LS624__VMOD > 0.001) + if (EXPECTED(DSD_LS624__VMOD > 0.001)) dt = 0.5 / LS624_F(DSD_LS624__VMOD); else /* close enough to 0, so we can speed things up by no longer call pow() */ dt = context->dt_vmod_at_0; t = context->remain; en += (double) context->state * t; - while (t + dt <= sample_t) + while (EXPECTED(t + dt <= sample_t)) { en += (double) context->state * dt; context->state = (1 - context->state); @@ -1750,7 +1750,7 @@ static DISCRETE_STEP(dsd_ls624) break; case DISC_LS624_OUT_LOGIC: /* filter out randomness */ - if (cntf + cntr > 1) + if (UNEXPECTED(cntf + cntr > 1)) node->output[0] = 1; else node->output[0] = context->state; diff --git a/src/emu/sound/disc_flt.c b/src/emu/sound/disc_flt.c index e1175c4c16b..f6cc22918f0 100644 --- a/src/emu/sound/disc_flt.c +++ b/src/emu/sound/disc_flt.c @@ -96,8 +96,9 @@ struct dst_rcdisc4_context struct dst_rcfilter_context { - double exponent; double vCap; + double vRef; + double exponent; }; struct dst_rcfilter_sw_context @@ -137,25 +138,18 @@ struct dst_rcintegrate_context * input[4] - Voltage reference. Usually 0V. * ************************************************************************/ -#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) +#define DST_CRFILTER__IN DISCRETE_INPUT(0) +#define DST_CRFILTER__R DISCRETE_INPUT(1) +#define DST_CRFILTER__C DISCRETE_INPUT(2) +#define DST_CRFILTER__VREF DISCRETE_INPUT(3) static DISCRETE_STEP(dst_crfilter) { struct dst_rcfilter_context *context = (struct dst_rcfilter_context *)node->context; - if(DST_CRFILTER__ENABLE) - { - node->output[0] = DST_CRFILTER__IN - context->vCap; - context->vCap += ((DST_CRFILTER__IN - DST_CRFILTER__VREF) - context->vCap) * context->exponent; - } - else - { - node->output[0] = 0; - } + node->output[0] = DST_CRFILTER__IN - context->vCap; + //context->vCap += ((DST_CRFILTER__IN - context->vRef) - context->vCap) * context->exponent; + context->vCap += (node->output[0] - context->vRef) * context->exponent; } static DISCRETE_RESET(dst_crfilter) @@ -164,6 +158,7 @@ static DISCRETE_RESET(dst_crfilter) context->exponent = RC_CHARGE_EXP(DST_CRFILTER__R * DST_CRFILTER__C); context->vCap = 0; + context->vRef = DST_CRFILTER__VREF; node->output[0] = DST_CRFILTER__IN; } @@ -1017,11 +1012,10 @@ static DISCRETE_RESET(dst_rcdisc_mod) * input[4] - Voltage reference. Usually 0V. * ************************************************************************/ -#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) +#define DST_RCFILTER__VIN DISCRETE_INPUT(0) +#define DST_RCFILTER__R DISCRETE_INPUT(1) +#define DST_RCFILTER__C DISCRETE_INPUT(2) +#define DST_RCFILTER__VREF DISCRETE_INPUT(3) static DISCRETE_STEP(dst_rcfilter) { @@ -1031,15 +1025,8 @@ static DISCRETE_STEP(dst_rcfilter) /* Next Value = PREV + (INPUT_VALUE - PREV)*(1-(EXP(-TIMEDELTA/RC))) */ /************************************************************************/ - if(DST_RCFILTER__ENABLE) - { - context->vCap += ((DST_RCFILTER__VIN - DST_RCFILTER__VREF - context->vCap) * context->exponent); - node->output[0] = context->vCap + DST_RCFILTER__VREF; - } - else - { - node->output[0] = 0; - } + context->vCap += ((DST_RCFILTER__VIN - node->output[0]) * context->exponent); + node->output[0] = context->vCap + context->vRef; } static DISCRETE_RESET(dst_rcfilter) @@ -1047,6 +1034,7 @@ static DISCRETE_RESET(dst_rcfilter) struct dst_rcfilter_context *context = (struct dst_rcfilter_context *)node->context; context->exponent = RC_CHARGE_EXP(DST_RCFILTER__R * DST_RCFILTER__C); + context->vRef = DST_RCFILTER__VREF; context->vCap = 0; node->output[0] = 0; } diff --git a/src/emu/sound/disc_inp.c b/src/emu/sound/disc_inp.c index 686d782bcd6..187a189fa19 100644 --- a/src/emu/sound/disc_inp.c +++ b/src/emu/sound/disc_inp.c @@ -155,7 +155,7 @@ static DISCRETE_STEP(dss_adjustment) INT32 rawportval = input_port_read_direct(context->port); /* only recompute if the value changed from last time */ - if (rawportval != context->lastpval) + if (UNEXPECTED(rawportval != context->lastpval)) { double portval = (double)(rawportval - context->pmin) * context->pscale; double scaledval = portval * context->scale + context->min; @@ -288,7 +288,7 @@ static DISCRETE_STEP(dss_input_stream) /* the context pointer is set to point to the current input stream data in discrete_stream_update */ struct dss_input_context *context = (struct dss_input_context *)node->context; - if (context->ptr) + if (EXPECTED(context->ptr)) { node->output[0] = (*context->ptr) * context->gain + context->offset; context->ptr++; diff --git a/src/emu/sound/disc_mth.c b/src/emu/sound/disc_mth.c index 839dc74c12b..eb117875c20 100644 --- a/src/emu/sound/disc_mth.c +++ b/src/emu/sound/disc_mth.c @@ -1404,7 +1404,7 @@ static DISCRETE_STEP(dst_oneshot) /* If the state is triggered we will need to countdown later */ int do_count = context->state; - if (DST_ONESHOT__RESET) + if (UNEXPECTED(DST_ONESHOT__RESET)) { /* Hold in Reset */ node->output[0] = 0; @@ -1413,7 +1413,7 @@ static DISCRETE_STEP(dst_oneshot) else { /* are we at an edge? */ - if (trigger != context->last_trig) + if (UNEXPECTED(trigger != context->last_trig)) { /* There has been a trigger edge */ context->last_trig = trigger; @@ -1441,7 +1441,7 @@ static DISCRETE_STEP(dst_oneshot) } } - if (do_count) + if (UNEXPECTED(do_count)) { context->countdown -= node->info->sample_time; if(context->countdown <= 0.0) diff --git a/src/emu/sound/disc_sys.c b/src/emu/sound/disc_sys.c index 48580ca40a9..2d9b113c322 100644 --- a/src/emu/sound/disc_sys.c +++ b/src/emu/sound/disc_sys.c @@ -36,7 +36,7 @@ struct dso_wavelog_context * *************************************/ -static void task_check(discrete_task *task, const discrete_task *dest_task) +static void task_check(discrete_task *task, discrete_task *dest_task) { int inputnum; const linked_list_entry *node_entry; @@ -87,7 +87,7 @@ static void task_check(discrete_task *task, const discrete_task *dest_task) /* register into source list */ source = auto_alloc(dest_node->info->device->machine, discrete_source_node); linked_list_add(dest_node->info, - (linked_list_entry **) (FPTR) &dest_task->source_list, + &dest_task->source_list, source); source->task = task; source->output_node = i; diff --git a/src/emu/sound/discrete.c b/src/emu/sound/discrete.c index 7e05d39b532..ef090be819b 100644 --- a/src/emu/sound/discrete.c +++ b/src/emu/sound/discrete.c @@ -80,7 +80,7 @@ struct _task_info static void init_nodes(discrete_info *info, const linked_list_entry *block_list, const device_config *device); static void find_input_nodes(const discrete_info *info); -static node_description *discrete_find_node(const discrete_info *info, const int node); +static node_description *discrete_find_node(const discrete_info *info, int node); static DEVICE_RESET( discrete ); static STREAM_UPDATE( discrete_stream_update ); static STREAM_UPDATE( buffer_stream_update ); @@ -345,7 +345,7 @@ INLINE void step_nodes_in_list(const linked_list_entry *list) * *************************************/ -static node_description *discrete_find_node(const discrete_info *info, const int node) +static node_description *discrete_find_node(const discrete_info *info,int node) { if (node < NODE_START || node > NODE_END) return NULL; return info->indexed_node[NODE_INDEX(node)]; @@ -939,6 +939,29 @@ static void init_nodes(discrete_info *info, const linked_list_entry *block_list, * *************************************/ +/* attempt to group all static node parameters together. + * Has a negative impact on performance - but it should + * reduce memory bandwidth - this is weird. */ +#if 0 +static double dbuf[10240]; +static int dbufptr = 0; + +static double *getDoublePtr(double val) +{ + int i; + for (i=0; iinput[inputnum] = &(block->initial[inputnum]); + node->input[inputnum] = &(node->block->initial[inputnum]); + //node->input[inputnum] = getDoublePtr(node->block->initial[inputnum]); } } } diff --git a/src/emu/sound/discrete.h b/src/emu/sound/discrete.h index 35a5823cf52..6403a01e223 100644 --- a/src/emu/sound/discrete.h +++ b/src/emu/sound/discrete.h @@ -3715,6 +3715,8 @@ struct _discrete_module struct _node_description { + const discrete_module *module; /* Node's module info */ + double output[DISCRETE_MAX_OUTPUTS]; /* The node's last output value */ int active_inputs; /* Number of active inputs on this node type */ @@ -3724,9 +3726,8 @@ struct _node_description void * context; /* Contextual information specific to this node type */ const void * custom; /* Custom function specific initialisation data */ - const discrete_module *module; /* Node's module info */ - const discrete_sound_block *block; /* Points to the node's setup block. */ const discrete_info *info; /* Points to the parent */ + const discrete_sound_block *block; /* Points to the node's setup block. */ osd_ticks_t run_time; }; @@ -3745,8 +3746,8 @@ struct _node_description typedef struct _linked_list_entry linked_list_entry; struct _linked_list_entry { - const void *ptr; linked_list_entry *next; + const void *ptr; }; typedef struct _discrete_task discrete_task; @@ -3754,24 +3755,24 @@ struct _discrete_task { const linked_list_entry *list; - int task_group; - int numbuffered; - double *ptr[DISCRETE_MAX_TASK_OUTPUTS]; - double *node_buf[DISCRETE_MAX_TASK_OUTPUTS]; - node_description *nodes[DISCRETE_MAX_TASK_OUTPUTS]; - double *source[DISCRETE_MAX_TASK_OUTPUTS]; + int task_group; + int numbuffered; + double *ptr[DISCRETE_MAX_TASK_OUTPUTS]; + double *node_buf[DISCRETE_MAX_TASK_OUTPUTS]; + const node_description *nodes[DISCRETE_MAX_TASK_OUTPUTS]; + const double *source[DISCRETE_MAX_TASK_OUTPUTS]; /* list of source nodes */ - linked_list_entry *source_list; /* discrete_source_node */ + linked_list_entry *source_list; /* discrete_source_node */ }; typedef struct _discrete_source_node discrete_source_node; struct _discrete_source_node { const discrete_task *task; + const double *ptr; int output_node; double buffer; - double *ptr; }; struct _discrete_info @@ -4436,8 +4437,8 @@ enum #define DISCRETE_FILTER2(NODE,ENAB,INP0,FREQ,DAMP,TYPE) { NODE, DST_FILTER2 , 5, { ENAB,INP0,NODE_NC,NODE_NC,NODE_NC }, { ENAB,INP0,FREQ,DAMP,TYPE }, NULL, "DISCRETE_FILTER2" }, /* Component specific */ #define DISCRETE_SALLEN_KEY_FILTER(NODE,ENAB,INP0,TYPE,INFO) { NODE, DST_SALLEN_KEY , 3, { ENAB,INP0,NODE_NC }, { ENAB,INP0,TYPE }, INFO, "DISCRETE_SALLEN_KEY_FILTER" }, -#define DISCRETE_CRFILTER(NODE,ENAB,INP0,RVAL,CVAL) { NODE, DST_CRFILTER , 4, { ENAB,INP0,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL }, NULL, "DISCRETE_CRFILTER" }, -#define DISCRETE_CRFILTER_VREF(NODE,ENAB,INP0,RVAL,CVAL,VREF) { NODE, DST_CRFILTER , 5, { ENAB,INP0,NODE_NC,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL,VREF }, NULL, "DISCRETE_CRFILTER_VREF" }, +#define DISCRETE_CRFILTER(NODE,INP0,RVAL,CVAL) { NODE, DST_CRFILTER , 4, { INP0,NODE_NC,NODE_NC }, { INP0,RVAL,CVAL }, NULL, "DISCRETE_CRFILTER" }, +#define DISCRETE_CRFILTER_VREF(NODE,INP0,RVAL,CVAL,VREF) { NODE, DST_CRFILTER , 5, { INP0,NODE_NC,NODE_NC,NODE_NC }, { INP0,RVAL,CVAL,VREF }, NULL, "DISCRETE_CRFILTER_VREF" }, #define DISCRETE_OP_AMP_FILTER(NODE,ENAB,INP0,INP1,TYPE,INFO) { NODE, DST_OP_AMP_FILT , 4, { ENAB,INP0,INP1,NODE_NC }, { ENAB,INP0,INP1,TYPE }, INFO, "DISCRETE_OP_AMP_FILTER" }, #define DISCRETE_RCDISC(NODE,ENAB,INP0,RVAL,CVAL) { NODE, DST_RCDISC , 4, { ENAB,INP0,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL }, NULL, "DISCRETE_RCDISC" }, #define DISCRETE_RCDISC2(NODE,SWITCH,INP0,RVAL0,INP1,RVAL1,CVAL) { NODE, DST_RCDISC2 , 6, { SWITCH,INP0,NODE_NC,INP1,NODE_NC,NODE_NC }, { SWITCH,INP0,RVAL0,INP1,RVAL1,CVAL }, NULL, "DISCRETE_RCDISC2" }, @@ -4445,9 +4446,9 @@ enum #define DISCRETE_RCDISC4(NODE,ENAB,INP0,RVAL0,RVAL1,RVAL2,CVAL,VP,TYPE) { NODE, DST_RCDISC4 , 8, { ENAB,INP0,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL0,RVAL1,RVAL2,CVAL,VP,TYPE }, NULL, "DISCRETE_RCDISC4" }, #define DISCRETE_RCDISC5(NODE,ENAB,INP0,RVAL,CVAL) { NODE, DST_RCDISC5 , 4, { ENAB,INP0,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL }, NULL, "DISCRETE_RCDISC5" }, #define DISCRETE_RCDISC_MODULATED(NODE,INP0,INP1,RVAL0,RVAL1,RVAL2,RVAL3,CVAL,VP) { NODE, DST_RCDISC_MOD, 8, { INP0,INP1,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { INP0,INP1,RVAL0,RVAL1,RVAL2,RVAL3,CVAL,VP }, NULL, "DISCRETE_RCDISC_MODULATED" }, -#define DISCRETE_RCFILTER(NODE,ENAB,INP0,RVAL,CVAL) { NODE, DST_RCFILTER , 4, { ENAB,INP0,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL }, NULL, "DISCRETE_RCFILTER" }, +#define DISCRETE_RCFILTER(NODE,INP0,RVAL,CVAL) { NODE, DST_RCFILTER , 3, { INP0,NODE_NC,NODE_NC }, { INP0,RVAL,CVAL }, NULL, "DISCRETE_RCFILTER" }, +#define DISCRETE_RCFILTER_VREF(NODE,INP0,RVAL,CVAL,VREF) { NODE, DST_RCFILTER , 4, { INP0,NODE_NC,NODE_NC,NODE_NC }, { INP0,RVAL,CVAL,VREF }, NULL, "DISCRETE_RCFILTER_VREF" }, #define DISCRETE_RCFILTER_SW(NODE,ENAB,INP0,SW,RVAL,CVAL1,CVAL2,CVAL3,CVAL4) { NODE, DST_RCFILTER_SW, 8, { ENAB,INP0,SW,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { ENAB,INP0,SW,RVAL,CVAL1,CVAL2,CVAL3,CVAL4 }, NULL, "DISCRETE_RCFILTER_SW" }, -#define DISCRETE_RCFILTER_VREF(NODE,ENAB,INP0,RVAL,CVAL,VREF) { NODE, DST_RCFILTER , 5, { ENAB,INP0,NODE_NC,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL,VREF }, NULL, "DISCRETE_RCFILTER_VREF" }, #define DISCRETE_RCINTEGRATE(NODE,INP0,RVAL0,RVAL1,RVAL2,CVAL,vP,TYPE) { NODE, DST_RCINTEGRATE , 7, { INP0,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { INP0,RVAL0,RVAL1,RVAL2,CVAL,vP,TYPE }, NULL, "DISCRETE_RCINTEGRATE" }, /* For testing - seem to be buggered. Use versions not ending in N. */ #define DISCRETE_RCDISCN(NODE,ENAB,INP0,RVAL,CVAL) { NODE, DST_RCDISCN , 4, { ENAB,INP0,NODE_NC,NODE_NC }, { ENAB,INP0,RVAL,CVAL }, NULL, "DISCRETE_RCDISCN" }, diff --git a/src/mame/audio/8080bw.c b/src/mame/audio/8080bw.c index 426e51267db..b1d379e8565 100644 --- a/src/mame/audio/8080bw.c +++ b/src/mame/audio/8080bw.c @@ -263,7 +263,7 @@ DISCRETE_SOUND_START(indianbt) * Final Mixing and Output * ******************************************************************************/ - DISCRETE_CRFILTER(NODE_90, 1, NODE_22, RES_K(10), CAP_U(0.1)) + DISCRETE_CRFILTER(NODE_90, NODE_22, RES_K(10), CAP_U(0.1)) DISCRETE_OUTPUT(NODE_90, 21000) @@ -574,8 +574,8 @@ DISCRETE_SOUND_START(polaris) ******************************************************************************/ DISCRETE_OP_AMP_TRIG_VCA(NODE_70, POLARIS_SX3_EN, 0, 0, POLARIS_NOISE_LO, 0, &polaris_exp_tvca_info) - DISCRETE_RCFILTER(NODE_71, 1, NODE_70, 560.0, CAP_U(.22)) - DISCRETE_RCFILTER(POLARIS_EXPLOSIONSND, 1, NODE_71, RES_K(6.8), CAP_U(.22)) + DISCRETE_RCFILTER(NODE_71, NODE_70, 560.0, CAP_U(.22)) + DISCRETE_RCFILTER(POLARIS_EXPLOSIONSND, NODE_71, RES_K(6.8), CAP_U(.22)) /****************************************************************************** * @@ -759,22 +759,22 @@ DISCRETE_SOUND_START(schaser) DISCRETE_SQUAREWFIX(NODE_20, 1, SCHASER_4V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0) DISCRETE_SQUAREWFIX(NODE_21, 1, SCHASER_8V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0) DISCRETE_SWITCH(NODE_22, SCHASER_DOT_EN, SCHASER_DOT_SEL, NODE_20, NODE_21) - DISCRETE_RCFILTER(NODE_23, 1, NODE_22, 560, CAP_U(.1)) - DISCRETE_RCFILTER(NODE_24, 1, NODE_23, RES_K(6.8) + 560, CAP_U(.1)) + DISCRETE_RCFILTER(NODE_23, NODE_22, 560, CAP_U(.1)) + DISCRETE_RCFILTER(NODE_24, NODE_23, RES_K(6.8) + 560, CAP_U(.1)) DISCRETE_MULTIPLY(SCHASER_DOT_SND, NODE_24, SCHASER_VR3) /************************************************/ /* Explosion/Effect filtering */ /************************************************/ - DISCRETE_RCFILTER(NODE_30, 1, SCHASER_EXP_STREAM, 560, CAP_U(.1)) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, RES_K(6.8) + 560, CAP_U(.1)) - DISCRETE_CRFILTER(NODE_32, 1, NODE_31, RES_K(6.8) + 560 + RES_K(2) + RES_K(50), CAP_U(1)) + DISCRETE_RCFILTER(NODE_30, SCHASER_EXP_STREAM, 560, CAP_U(.1)) + DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(6.8) + 560, CAP_U(.1)) + DISCRETE_CRFILTER(NODE_32, NODE_31, RES_K(6.8) + 560 + RES_K(2) + RES_K(50), CAP_U(1)) DISCRETE_MULTIPLY(SCHASER_EXP_SND, NODE_32, SCHASER_VR2) /************************************************/ /* Music is just a 1 bit DAC */ /************************************************/ - DISCRETE_CRFILTER(NODE_40, 1, SCHASER_MUSIC_BIT, RES_K(470) + RES_K(50), CAP_U(.01)) + DISCRETE_CRFILTER(NODE_40, SCHASER_MUSIC_BIT, RES_K(470) + RES_K(50), CAP_U(.01)) DISCRETE_MULTIPLY(SCHASER_MUSIC_SND, NODE_40, SCHASER_VR1) /************************************************/ diff --git a/src/mame/audio/asteroid.c b/src/mame/audio/asteroid.c index 1a53f752c4d..623c39780a8 100644 --- a/src/mame/audio/asteroid.c +++ b/src/mame/audio/asteroid.c @@ -113,7 +113,7 @@ DISCRETE_SOUND_START(asteroid) /************************************************/ DISCRETE_DAC_R1(NODE_30, ASTEROID_THUMP_DATA, 3.5, &asteroid_thump_dac1) // CMOS DISCRETE_555_CC(NODE_31, ASTEROID_THUMP_EN, NODE_30, RES_K(22), CAP_U(0.22), 0, 0, RES_K(18), &asteroid_thump_555cc) - DISCRETE_RCFILTER(NODE_32, 1, NODE_31, RES_K(3.3), CAP_U(0.1)) + DISCRETE_RCFILTER(NODE_32, NODE_31, RES_K(3.3), CAP_U(0.1)) DISCRETE_GAIN(ASTEROID_THUMP_SND, NODE_32, 30) /************************************************/ @@ -135,7 +135,7 @@ DISCRETE_SOUND_START(asteroid) DISCRETE_TRANSFORM4(NODE_42, ASTEROID_SAUCER_SEL, -250, NODE_41, 750, "01*2+3+") // Large saucer is 250hz lower DISCRETE_TRIANGLEWAVE(NODE_43, ASTEROID_SAUCER_SND_EN, NODE_42, 76.1, 0, 0) - DISCRETE_RCFILTER(ASTEROID_SAUCER_SND, 1, NODE_43, 1, 1.0e-5) + DISCRETE_RCFILTER(ASTEROID_SAUCER_SND, NODE_43, 1, 1.0e-5) /************************************************/ /* The Ship Fire sound is produced by a 555 */ @@ -147,7 +147,7 @@ DISCRETE_SOUND_START(asteroid) DISCRETE_ADDER2(NODE_52, 1, NODE_51, 7.0) /* Amplitude */ DISCRETE_TRANSFORM3(NODE_53, 4500, NODE_50, 67, "01/2+") /* Duty */ DISCRETE_SQUAREWAVE(NODE_54, ASTEROID_SHIP_FIRE_EN, NODE_50, NODE_52, NODE_53, 0, 0) - DISCRETE_RCFILTER(ASTEROID_SHIP_FIRE_SND, 1, NODE_54, 1, 1.0e-5) + DISCRETE_RCFILTER(ASTEROID_SHIP_FIRE_SND, NODE_54, 1, 1.0e-5) /************************************************/ /* The Saucer Fire sound is produced by a 555 */ @@ -159,7 +159,7 @@ DISCRETE_SOUND_START(asteroid) DISCRETE_ADDER2(NODE_62, 1, NODE_61, 7.0) /* Amplitude */ DISCRETE_TRANSFORM3(NODE_63, 4500, NODE_60, 67, "01/2+") /* Duty */ DISCRETE_SQUAREWAVE(NODE_64, ASTEROID_SAUCER_FIRE_EN, NODE_60, NODE_62, NODE_63, 0, 0) - DISCRETE_RCFILTER(ASTEROID_SAUCER_FIRE_SND, 1, NODE_64, 2, 1.0e-5) + DISCRETE_RCFILTER(ASTEROID_SAUCER_FIRE_SND, NODE_64, 2, 1.0e-5) /************************************************/ /* Thrust noise is a gated noise source */ @@ -171,11 +171,12 @@ DISCRETE_SOUND_START(asteroid) DISCRETE_LFSR_NOISE(ASTEROID_NOISE, ASTEROID_NOISE_RESET, ASTEROID_NOISE_RESET, 12000.0, 1.0, 0, 0, &asteroid_lfsr) DISCRETE_GAIN(NODE_70, ASTEROID_NOISE, 600.0*7.6) - DISCRETE_RCFILTER(NODE_71, ASTEROID_THRUST_EN, NODE_70, 2200, 1e-6) + DISCRETE_RCFILTER(NODE_71, NODE_70, 2200, 1e-6) + DISCRETE_MULTIPLY(NODE_72, NODE_71, ASTEROID_THRUST_EN) /* TBD - replace this line with a Sallen-Key Bandpass macro */ - DISCRETE_FILTER2(NODE_72, 1, NODE_71, 89.5, (1.0 / 7.6), DISC_FILTER_BANDPASS) + DISCRETE_FILTER2(NODE_73, 1, NODE_72, 89.5, (1.0 / 7.6), DISC_FILTER_BANDPASS) /* TBD - replace this line with a Active Lowpass macro */ - DISCRETE_FILTER1(ASTEROID_THRUST_SND, 1, NODE_72, 160, DISC_FILTER_LOWPASS) + DISCRETE_FILTER1(ASTEROID_THRUST_SND, 1, NODE_73, 160, DISC_FILTER_LOWPASS) /************************************************/ /* Explosion generation circuit, pitch and vol */ @@ -195,7 +196,7 @@ DISCRETE_SOUND_START(asteroid) DISCRETE_SQUAREWFIX(NODE_82, 1, NODE_80, 1.0, NODE_81, 1.0/2, 0) /* Pitch clock */ DISCRETE_SAMPLHOLD(NODE_83, ASTEROID_NOISE, NODE_82, DISC_SAMPHOLD_REDGE) DISCRETE_MULTIPLY(NODE_84, NODE_83, ASTEROID_EXPLODE_DATA) - DISCRETE_RCFILTER(ASTEROID_EXPLODE_SND, 1, NODE_84, 3042, 1e-6) + DISCRETE_RCFILTER(ASTEROID_EXPLODE_SND, NODE_84, 3042, 1e-6) /************************************************/ /* Life enable is just 3KHz tone from the clock */ @@ -241,11 +242,12 @@ DISCRETE_SOUND_START(astdelux) DISCRETE_LFSR_NOISE(ASTEROID_NOISE, ASTEROID_NOISE_RESET, ASTEROID_NOISE_RESET, 12000.0, 1.0, 0, 0, &asteroid_lfsr) DISCRETE_GAIN(NODE_70, ASTEROID_NOISE, 1000.0*7.6) - DISCRETE_RCFILTER(NODE_71, ASTEROID_THRUST_EN, NODE_70, 2200, 1e-6) + DISCRETE_RCFILTER(NODE_71, NODE_70, 2200, 1e-6) + DISCRETE_MULTIPLY(NODE_72, NODE_71, ASTEROID_THRUST_EN) /* TBD - replace this line with a Sallen-Key Bandpass macro */ - DISCRETE_FILTER2(NODE_72, 1, NODE_71, 89.5, (1.0 / 7.6), DISC_FILTER_BANDPASS) + DISCRETE_FILTER2(NODE_73, 1, NODE_72, 89.5, (1.0 / 7.6), DISC_FILTER_BANDPASS) /* TBD - replace this line with a Active Lowpass macro */ - DISCRETE_FILTER1(ASTEROID_THRUST_SND, 1, NODE_72, 160, DISC_FILTER_LOWPASS) + DISCRETE_FILTER1(ASTEROID_THRUST_SND, 1, NODE_73, 160, DISC_FILTER_LOWPASS) /************************************************/ /* Explosion generation circuit, pitch and vol */ @@ -265,7 +267,7 @@ DISCRETE_SOUND_START(astdelux) DISCRETE_SQUAREWFIX(NODE_82, 1, NODE_80, 1.0, NODE_81, 1.0/2, 0) /* Pitch clock */ DISCRETE_SAMPLHOLD(NODE_83, ASTEROID_NOISE, NODE_82, DISC_SAMPHOLD_REDGE) DISCRETE_MULTIPLY(NODE_84, NODE_83, ASTEROID_EXPLODE_DATA) - DISCRETE_RCFILTER(ASTEROID_EXPLODE_SND, 1, NODE_84, 3042, 1e-6) + DISCRETE_RCFILTER(ASTEROID_EXPLODE_SND, NODE_84, 3042, 1e-6) /************************************************/ /* Combine all 7 sound sources with a double */ diff --git a/src/mame/audio/avalnche.c b/src/mame/audio/avalnche.c index 2965cf8d915..4c38c160a6b 100644 --- a/src/mame/audio/avalnche.c +++ b/src/mame/audio/avalnche.c @@ -117,7 +117,7 @@ DISCRETE_SOUND_START(avalnche) /************************************************/ DISCRETE_LFSR_NOISE(AVALNCHE_NOISE, AVALNCHE_ATTRACT_EN, AVALNCHE_ATTRACT_EN, 15750.0, AVALNCHE_SOUNDLVL_DATA, 0, 0, &avalnche_lfsr) DISCRETE_ADDER2(NODE_30, 1, NODE_20, AVALNCHE_NOISE) - DISCRETE_RCFILTER(AVALNCHE_SOUNDLVL_AUD0_SND, 1, NODE_30, 556.7, 1e-7) + DISCRETE_RCFILTER(AVALNCHE_SOUNDLVL_AUD0_SND, NODE_30, 556.7, 1e-7) /************************************************/ /* Final mix and output. */ diff --git a/src/mame/audio/blockade.c b/src/mame/audio/blockade.c index da04a5e01f9..c1e5616f150 100644 --- a/src/mame/audio/blockade.c +++ b/src/mame/audio/blockade.c @@ -31,7 +31,7 @@ DISCRETE_SOUND_START(blockade) /* oscillator to 0Hz. (OUT02 = FF) */ /************************************************/ DISCRETE_NOTE(BLOCKADE_NOTE, 1, 93681.5, BLOCKADE_NOTE_DATA, 255, 1, DISC_CLK_IS_FREQ | DISC_OUT_IS_ENERGY) - DISCRETE_CRFILTER(NODE_10, 1, BLOCKADE_NOTE, RES_K(35), CAP_U(.01)) + DISCRETE_CRFILTER(NODE_10, BLOCKADE_NOTE, RES_K(35), CAP_U(.01)) DISCRETE_OUTPUT(NODE_10, 7500) DISCRETE_SOUND_END diff --git a/src/mame/audio/canyon.c b/src/mame/audio/canyon.c index f2cbfdb18d6..b55e2883659 100644 --- a/src/mame/audio/canyon.c +++ b/src/mame/audio/canyon.c @@ -122,21 +122,21 @@ DISCRETE_SOUND_START(canyon) /* This adjusts the high end. */ /* 0k = 214Hz. 250k = 4416Hz */ /************************************************/ - DISCRETE_RCFILTER(NODE_20, 1, CANYON_MOTOR1_DATA, 123000, 1e-6) + DISCRETE_RCFILTER(NODE_20, CANYON_MOTOR1_DATA, 123000, 1e-6) DISCRETE_ADJUSTMENT_TAG(NODE_21, (214.0-27.0)/12/15, (4416.0-27.0)/12/15, DISC_LOGADJ, "MOTOR1") DISCRETE_MULTIPLY(NODE_22, NODE_20, NODE_21) DISCRETE_MULTADD(NODE_23, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */ DISCRETE_SQUAREWAVE(NODE_24, 1, NODE_23, (142.9/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_25, 1, NODE_24, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_25, NODE_24, 10000, 1e-7) DISCRETE_MULTADD(NODE_26, NODE_22, 3, 27.0/4) /* F2 = /12*3 = /4 */ DISCRETE_SQUAREWAVE(NODE_27, 1, NODE_26, (142.9/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_28, 1, NODE_27, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_28, NODE_27, 10000, 1e-7) DISCRETE_MULTADD(NODE_29, NODE_22, 4, 27.0/3) /* F3 = /12*4 = /3 */ DISCRETE_SQUAREWAVE(NODE_30, 1, NODE_29, (142.9/3), 100.0/3, 0, 360.0/3) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_31, NODE_30, 10000, 1e-7) DISCRETE_ADDER3(CANYON_MOTORSND1, CANYON_ATTRACT1_EN, NODE_25, NODE_28, NODE_31) @@ -145,21 +145,21 @@ DISCRETE_SOUND_START(canyon) /* for 1. But I shifted the frequencies up for */ /* it to sound different from motor 1. */ /************************************************/ - DISCRETE_RCFILTER(NODE_40, 1, CANYON_MOTOR2_DATA, 123000, 1e-6) + DISCRETE_RCFILTER(NODE_40, CANYON_MOTOR2_DATA, 123000, 1e-6) DISCRETE_ADJUSTMENT_TAG(NODE_41, (214.0-27.0)/12/15, (4416.0-27.0)/12/15, DISC_LOGADJ, "MOTOR2") DISCRETE_MULTIPLY(NODE_42, NODE_40, NODE_41) DISCRETE_MULTADD(NODE_43, NODE_42, 2, 27.0/6) /* F1 = /12*2 = /6 */ DISCRETE_SQUAREWAVE(NODE_44, 1, NODE_43, (142.9/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_45, 1, NODE_44, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_45, NODE_44, 10000, 1e-7) DISCRETE_MULTADD(NODE_46, NODE_42, 3, 27.0/4) /* F2 = /12*3 = /4 */ DISCRETE_SQUAREWAVE(NODE_47, 1, NODE_46, (142.9/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_48, 1, NODE_47, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_48, NODE_47, 10000, 1e-7) DISCRETE_MULTADD(NODE_49, NODE_42, 4, 27.0/3) /* F3 = /12*4 = /3 */ DISCRETE_SQUAREWAVE(NODE_50, 1, NODE_49, (142.9/3), 100.0/3, 0, 360.0/3) - DISCRETE_RCFILTER(NODE_51, 1, NODE_50, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_51, NODE_50, 10000, 1e-7) DISCRETE_ADDER3(CANYON_MOTORSND2, CANYON_ATTRACT2_EN, NODE_45, NODE_48, NODE_51) @@ -176,7 +176,7 @@ DISCRETE_SOUND_START(canyon) DISCRETE_LFSR_NOISE(CANYON_NOISE, NODE_60, NODE_60, 15750.0/4, 1.0, 0, 0, &canyon_lfsr) DISCRETE_MULTIPLY(NODE_61, CANYON_NOISE, CANYON_EXPLODE_DATA) - DISCRETE_RCFILTER(CANYON_EXPLODESND, 1, NODE_61, 545, 5e-6) + DISCRETE_RCFILTER(CANYON_EXPLODESND, NODE_61, 545, 5e-6) /************************************************/ /* Whistle circuit is a 555 capacitor charge */ diff --git a/src/mame/audio/circus.c b/src/mame/audio/circus.c index a5483ae896e..f9a2cc3c6d1 100644 --- a/src/mame/audio/circus.c +++ b/src/mame/audio/circus.c @@ -79,7 +79,7 @@ DISCRETE_SOUND_START(circus) /************************************************/ /* Music is just a 1 bit DAC */ /************************************************/ - DISCRETE_CRFILTER(CIRCUS_MUSIC_SND, 1, CIRCUS_MUSIC_BIT, RES_K(50), CAP_U(.1)) /* 50K is just an average value */ + DISCRETE_CRFILTER(CIRCUS_MUSIC_SND, CIRCUS_MUSIC_BIT, RES_K(50), CAP_U(.1)) /* 50K is just an average value */ DISCRETE_OUTPUT(CIRCUS_MUSIC_SND, 1) DISCRETE_SOUND_END @@ -161,8 +161,8 @@ DISCRETE_SOUND_START(robotbwl) /************************************************/ /* Music is just a 1 bit DAC */ /************************************************/ - DISCRETE_RCFILTER(NODE_20, 1, ROBOTBWL_MUSIC_BIT, RES_K(10), CAP_U(.47)) - DISCRETE_CRFILTER(ROBOTBWL_MUSIC_SND, 1, NODE_20, RES_K(10) + RES_K(22), CAP_U(.1)) + DISCRETE_RCFILTER(NODE_20, ROBOTBWL_MUSIC_BIT, RES_K(10), CAP_U(.47)) + DISCRETE_CRFILTER(ROBOTBWL_MUSIC_SND, NODE_20, RES_K(10) + RES_K(22), CAP_U(.1)) DISCRETE_OUTPUT(ROBOTBWL_MUSIC_SND, 1) DISCRETE_SOUND_END diff --git a/src/mame/audio/cliffhgr.c b/src/mame/audio/cliffhgr.c index 09d4879465d..9df92f0457e 100644 --- a/src/mame/audio/cliffhgr.c +++ b/src/mame/audio/cliffhgr.c @@ -37,8 +37,8 @@ DISCRETE_SOUND_START(cliffhgr) DISCRETE_ONOFF(NODE_05,CLIFF_ENABLE_SND_1,NODE_03) DISCRETE_ONOFF(NODE_06,CLIFF_ENABLE_SND_2,NODE_04) - DISCRETE_RCFILTER(NODE_07,1,NODE_05,1.0/(1.0/RES_K(4.7)+1.0/RES_K(10)), CAP_U(0.1)) - DISCRETE_RCFILTER(NODE_08,1,NODE_06,1.0/(1.0/RES_K(5.1)+1.0/RES_K(12)), CAP_U(0.1)) + DISCRETE_RCFILTER(NODE_07,NODE_05,1.0/(1.0/RES_K(4.7)+1.0/RES_K(10)), CAP_U(0.1)) + DISCRETE_RCFILTER(NODE_08,NODE_06,1.0/(1.0/RES_K(5.1)+1.0/RES_K(12)), CAP_U(0.1)) DISCRETE_GAIN(NODE_09,NODE_07,RES_K(10)/(RES_K(4.7)+RES_K(10))) DISCRETE_GAIN(NODE_10,NODE_08,RES_K(12)/(RES_K(5.1)+RES_K(12))) diff --git a/src/mame/audio/crbaloon.c b/src/mame/audio/crbaloon.c index a0ece719362..d84f3718fb2 100644 --- a/src/mame/audio/crbaloon.c +++ b/src/mame/audio/crbaloon.c @@ -105,14 +105,14 @@ static DISCRETE_SOUND_START(crbaloon) * square wave. ************************************************/ DISCRETE_555_ASTABLE(NODE_10, 1, RES_K(10), RES_K(100), CAP_U(1), &desc_crbaloon_laugh_osc) - DISCRETE_CRFILTER_VREF(NODE_11, 1, NODE_10, + DISCRETE_CRFILTER_VREF(NODE_11, NODE_10, 1.0/(1.0/RES_K(5) + 1.0/RES_K(10) + 1.0/RES_K(100)), // 5k & 10k are 555 internal CAP_U(10), /* The following will calculate the reference control voltage with no signal applied to the cap. */ 5.0* (1.0/(1.0/RES_K(10) + 1.0/RES_K(100))) / (RES_K(5)+(1.0/(1.0/RES_K(10) + 1.0/RES_K(100)))) ) DISCRETE_555_ASTABLE_CV(NODE_12, CRBALOON_LAUGH_EN, RES_K(1), RES_K(22), CAP_U(.1), NODE_11, &desc_crbaloon_laugh_osc) DISCRETE_MULTIPLY(NODE_13, NODE_12, CRBALOON_VR2) - DISCRETE_CRFILTER(CRBALOON_LAUGH_SND, 1, NODE_13, RES_K(20), CAP_U(1)) + DISCRETE_CRFILTER(CRBALOON_LAUGH_SND, NODE_13, RES_K(20), CAP_U(1)) /************************************************ * Music Generator is amplitude modulated by a @@ -124,13 +124,13 @@ static DISCRETE_SOUND_START(crbaloon) DISCRETE_ONOFF(NODE_22, CRBALOON_MUSIC_EN, NODE_21) // DISCRETE_RAMP(NODE_21, 1, RAMP, GRAD, MIN, MAX, CLAMP) DISCRETE_MULTIPLY(NODE_23, NODE_22, CRBALOON_VR3) - DISCRETE_CRFILTER(CRBALOON_MUSIC_SND, 1, NODE_23, RES_K(50), CAP_U(1)) + DISCRETE_CRFILTER(CRBALOON_MUSIC_SND, NODE_23, RES_K(50), CAP_U(1)) /************************************************ * Final mix and output. ************************************************/ DISCRETE_ADDER2(NODE_90, 1, CRBALOON_LAUGH_SND, CRBALOON_MUSIC_SND) - DISCRETE_CRFILTER(NODE_91, 1, NODE_90, RES_K(100), CAP_U(1)) + DISCRETE_CRFILTER(NODE_91, NODE_90, RES_K(100), CAP_U(1)) DISCRETE_OUTPUT(NODE_91, 65000.0/12) diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c index e033131c634..76fa04e54a7 100644 --- a/src/mame/audio/dkong.c +++ b/src/mame/audio/dkong.c @@ -439,7 +439,7 @@ static DISCRETE_SOUND_START(dkong2b) /* Trigger */ DISCRETE_RCDISC_MODULATED(NODE_60,DS_SOUND0_INV,NODE_55,DK_R36,DK_R18,DK_R35,DK_R17,DK_C25,DK_SUP_V) /* Filter and divide - omitted C22 */ - DISCRETE_CRFILTER(NODE_61, 1, NODE_60, DK_R15+DK_R16, DK_C23) + DISCRETE_CRFILTER(NODE_61, NODE_60, DK_R15+DK_R16, DK_C23) DISCRETE_MULTIPLY(DS_OUT_SOUND2, NODE_61, DK_R15/(DK_R15+DK_R16)) DISCRETE_TASK_END() @@ -486,10 +486,10 @@ static DISCRETE_SOUND_START(dkong2b) /* Amplifier: internal amplifier */ DISCRETE_ADDER2(NODE_289,1,NODE_288,5.0*43.0/(100.0+43.0)) DISCRETE_RCINTEGRATE(NODE_294,NODE_289,0,150,1000, CAP_U(33),DK_SUP_V,DISC_RC_INTEGRATE_TYPE3) - DISCRETE_CRFILTER(NODE_295,1,NODE_294, RES_K(50), DK_C13) + DISCRETE_CRFILTER(NODE_295,NODE_294, RES_K(50), DK_C13) /*DISCRETE_CRFILTER(NODE_295,1,NODE_294, 1000, DK_C13) */ /* EZV20 equivalent filter circuit ... */ - DISCRETE_CRFILTER(NODE_296,1,NODE_295, RES_K(1), CAP_U(4.7)) + DISCRETE_CRFILTER(NODE_296,NODE_295, RES_K(1), CAP_U(4.7)) #if DK_NO_FILTERS DISCRETE_OUTPUT(NODE_288, 32767.0/5.0 * 10) #else @@ -704,7 +704,7 @@ static DISCRETE_SOUND_START(radarscp) DISCRETE_555_ASTABLE_CV(NODE_43, DS_SOUND6, RES_K(47), RES_K(27), RS_C49, NODE_42, &radarscp_555_vco_desc) DISCRETE_RCDISC_MODULATED(NODE_44,DS_SOUND0_INV,NODE_43,RS_R39,RS_R18,RS_R37,RS_R38,RS_C22,DK_SUP_V) - DISCRETE_CRFILTER(NODE_45, 1, NODE_44, RS_R15+RS_R16, RS_C33) + DISCRETE_CRFILTER(NODE_45, NODE_44, RS_R15+RS_R16, RS_C33) DISCRETE_MULTIPLY(DS_OUT_SOUND0, NODE_45, RS_R15/(RS_R15+RS_R16)) /************************************************/ @@ -721,7 +721,7 @@ static DISCRETE_SOUND_START(radarscp) DISCRETE_RCINTEGRATE(NODE_55,NODE_52,RS_R46, RS_R46,0,RS_C45,DK_SUP_V,DISC_RC_INTEGRATE_TYPE1) DISCRETE_TRANSFORM4(NODE_56, NODE_55, DS_SOUND7,NODE_54,2.5, "01*23<*") - DISCRETE_CRFILTER(NODE_57, 1, NODE_56, RS_R43+RS_R44, RS_C46) + DISCRETE_CRFILTER(NODE_57, NODE_56, RS_R43+RS_R44, RS_C46) DISCRETE_MULTIPLY(DS_OUT_SOUND7, NODE_57, RS_R44/(RS_R43+RS_R44)) /************************************************/ @@ -753,7 +753,7 @@ static DISCRETE_SOUND_START(radarscp) /* Amplifier: internal amplifier */ DISCRETE_ADDER2(NODE_289,1,NODE_288,5.0*43.0/(100.0+43.0)) DISCRETE_RCINTEGRATE(NODE_294,NODE_289,0,150,1000, CAP_U(33),DK_SUP_V,DISC_RC_INTEGRATE_TYPE3) - DISCRETE_CRFILTER(NODE_295,1,NODE_294, 1000, DK_C13) + DISCRETE_CRFILTER(NODE_295,NODE_294, 1000, DK_C13) DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 3) DISCRETE_SOUND_END @@ -894,13 +894,13 @@ DISCRETE_TASK_START(1) DISCRETE_LS123(NODE_110, DS_SOUND0_INV, JR_R8, JR_C14) DISCRETE_TRANSFORM2(NODE_111, TTL_HIGH, NODE_110, "01-") - DISCRETE_RCFILTER(NODE_112, 1, NODE_111, JR_R10, JR_C17) + DISCRETE_RCFILTER(NODE_112, NODE_111, JR_R10, JR_C17) DISCRETE_74LS624(NODE_113, NODE_112, DK_SUP_V, JR_C18, DISC_LS624_OUT_ENERGY) DISCRETE_LOGIC_XOR(NODE_115, NODE_105, NODE_106) DISCRETE_TRANSFORM2(NODE_116, NODE_107, TTL_HIGH, "0!1*") - DISCRETE_RCFILTER(NODE_117, 1, NODE_116, JR_R11, JR_C16) + DISCRETE_RCFILTER(NODE_117, NODE_116, JR_R11, JR_C16) DISCRETE_74LS624(NODE_118, NODE_117, DK_SUP_V, JR_C19, DISC_LS624_OUT_COUNT_F) DISCRETE_LOGIC_NAND(NODE_120, NODE_115, NODE_110) @@ -921,8 +921,8 @@ DISCRETE_TASK_START(1) /* The following circuit does not match 100%, however works. * To be exact, we need a C-R-C-R circuit, we actually do not have. */ - DISCRETE_CRFILTER_VREF(NODE_16, 1, NODE_15, JR_R4, JR_C23, 2.5) - DISCRETE_RCFILTER(DS_OUT_SOUND1, 1, NODE_16, JR_R19, JR_C21) + DISCRETE_CRFILTER_VREF(NODE_16, NODE_15, JR_R4, JR_C23, 2.5) + DISCRETE_RCFILTER(DS_OUT_SOUND1, NODE_16, JR_R19, JR_C21) DISCRETE_TASK_END() /************************************************/ @@ -937,8 +937,8 @@ DISCRETE_TASK_START(1) /* The following circuit does not match 100%, however works. * To be exact, we need a C-R-C-R circuit, we actually do not have. */ - DISCRETE_CRFILTER_VREF(NODE_27, 1, NODE_26, JR_R6, JR_C30, 2.5) - DISCRETE_RCFILTER(DS_OUT_SOUND2, 1, NODE_27, JR_R2, JR_C25) + DISCRETE_CRFILTER_VREF(NODE_27, NODE_26, JR_R6, JR_C30, 2.5) + DISCRETE_RCFILTER(DS_OUT_SOUND2, NODE_27, JR_R2, JR_C25) DISCRETE_TASK_END() /************************************************/ @@ -947,7 +947,7 @@ DISCRETE_TASK_END() DISCRETE_TASK_START(1) DISCRETE_LOGIC_INVERT(DS_SOUND9,DS_SOUND9_INV) - DISCRETE_RCFILTER(NODE_90, 1, DS_SOUND9_INV, JR_R14, JR_C26) + DISCRETE_RCFILTER(NODE_90, DS_SOUND9_INV, JR_R14, JR_C26) DISCRETE_MULTIPLY(NODE_91, NODE_90, TTL_HIGH) DISCRETE_74LS624( NODE_92, NODE_91, DK_SUP_V, JR_C37, DISC_LS624_OUT_ENERGY) DISCRETE_ENERGY_NAND(NODE_93, NODE_92, DS_SOUND9) @@ -986,7 +986,7 @@ DISCRETE_TASK_START(2) /* Amplifier: internal amplifier * Just a 1:n amplifier without filters - just the output filter */ - DISCRETE_CRFILTER(NODE_295,1,NODE_288, 1000, JR_C13) + DISCRETE_CRFILTER(NODE_295,NODE_288, 1000, JR_C13) DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 10) DISCRETE_TASK_END() diff --git a/src/mame/audio/dragrace.c b/src/mame/audio/dragrace.c index d46b6f2902f..b1109c1586a 100644 --- a/src/mame/audio/dragrace.c +++ b/src/mame/audio/dragrace.c @@ -91,21 +91,21 @@ DISCRETE_SOUND_START(dragrace) /* 0k = 214Hz. 250k = 4416Hz */ /* NOTE: freqs are ripped from Sprint for now. */ /************************************************/ - DISCRETE_RCFILTER(NODE_20, 1, DRAGRACE_MOTOR1_DATA, 119898, 2.2e-6) + DISCRETE_RCFILTER(NODE_20, DRAGRACE_MOTOR1_DATA, 119898, 2.2e-6) DISCRETE_ADJUSTMENT_TAG(NODE_21, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR1") DISCRETE_MULTIPLY(NODE_22, NODE_20, NODE_21) DISCRETE_MULTADD(NODE_23, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */ DISCRETE_SQUAREWAVE(NODE_24, 1, NODE_23, (581.6/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_25, 1, NODE_24, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_25, NODE_24, 10000, 1e-7) DISCRETE_MULTADD(NODE_26, NODE_22, 3, 27.0/4) /* F2 = /12*3 = /4 */ DISCRETE_SQUAREWAVE(NODE_27, 1, NODE_26, (581.6/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_28, 1, NODE_27, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_28, NODE_27, 10000, 1e-7) DISCRETE_MULTADD(NODE_29, NODE_22, 4, 27.0/3) /* F3 = /12*4 = /3 */ DISCRETE_SQUAREWAVE(NODE_30, 1, NODE_29, (581.6/3), 100.0/3, 0, 360.0/3) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_31, NODE_30, 10000, 1e-7) DISCRETE_ADDER3(DRAGRACE_MOTOR1_SND, DRAGRACE_MOTOR1_EN, NODE_25, NODE_28, NODE_31) @@ -114,21 +114,21 @@ DISCRETE_SOUND_START(dragrace) /* Car1. But I shifted the frequencies up for */ /* it to sound different from car1. */ /************************************************/ - DISCRETE_RCFILTER(NODE_40, 1, DRAGRACE_MOTOR2_DATA, 119898, 2.2e-6) + DISCRETE_RCFILTER(NODE_40, DRAGRACE_MOTOR2_DATA, 119898, 2.2e-6) DISCRETE_ADJUSTMENT_TAG(NODE_41, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR2") DISCRETE_MULTIPLY(NODE_42, NODE_40, NODE_41) DISCRETE_MULTADD(NODE_43, NODE_42, 2, 27.0/6) /* F1 = /12*2 = /6 */ DISCRETE_SQUAREWAVE(NODE_44, 1, NODE_43, (581.6/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_45, 1, NODE_44, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_45, NODE_44, 10000, 1e-7) DISCRETE_MULTADD(NODE_46, NODE_42, 3, 27.0/4) /* F2 = /12*3 = /4 */ DISCRETE_SQUAREWAVE(NODE_47, 1, NODE_46, (581.6/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_48, 1, NODE_47, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_48, NODE_47, 10000, 1e-7) DISCRETE_MULTADD(NODE_49, NODE_42, 4, 27.0/3) /* F3 = /12*4 = /3 */ DISCRETE_SQUAREWAVE(NODE_50, 1, NODE_49, (581.6/3), 100.0/3, 0, 360.0/3) - DISCRETE_RCFILTER(NODE_51, 1, NODE_50, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_51, NODE_50, 10000, 1e-7) DISCRETE_ADDER3(DRAGRACE_MOTOR2_SND, DRAGRACE_MOTOR2_EN, NODE_45, NODE_48, NODE_51) @@ -144,11 +144,13 @@ DISCRETE_SOUND_START(dragrace) DISCRETE_RAMP(NODE_61, DRAGRACE_EXPLODE1_EN, DRAGRACE_EXPLODE1_EN, (1000.0-0.0)/1, 1000.0, 0.0, 1000.0) DISCRETE_MULTIPLY(NODE_62, DRAGRACE_NOISE, NODE_61) - DISCRETE_RCFILTER(DRAGRACE_EXPLODE1_SND, DRAGRACE_KLEXPL1_EN, NODE_62, 1500, 2.2e-7) - + DISCRETE_RCFILTER(NODE_63, NODE_62, 1500, 2.2e-7) + DISCRETE_MULTIPLY(DRAGRACE_EXPLODE1_SND, NODE_63, DRAGRACE_KLEXPL1_EN) + DISCRETE_RAMP(NODE_66, DRAGRACE_EXPLODE2_EN, DRAGRACE_EXPLODE2_EN, (1000.0-0.0)/1, 1000.0, 0.0, 1000.0) DISCRETE_MULTIPLY(NODE_67, DRAGRACE_NOISE, NODE_66) - DISCRETE_RCFILTER(DRAGRACE_EXPLODE2_SND, DRAGRACE_KLEXPL2_EN, NODE_67, 1500, 2.2e-7) + DISCRETE_RCFILTER(NODE_68, NODE_67, 1500, 2.2e-7) + DISCRETE_MULTIPLY(DRAGRACE_EXPLODE2_SND, NODE_68, DRAGRACE_KLEXPL2_EN) /************************************************/ /* Skid circuits takes the noise output from */ @@ -165,7 +167,7 @@ DISCRETE_SOUND_START(dragrace) /************************************************/ DISCRETE_INVERT(NODE_70, DRAGRACE_NOISE) DISCRETE_MULTADD(NODE_71, NODE_70, 940.0-630.0, ((940.0-630.0)/2)+630.0) - DISCRETE_RCFILTER(NODE_72, 1, NODE_71, 1000, 1e-5) + DISCRETE_RCFILTER(NODE_72, NODE_71, 1000, 1e-5) DISCRETE_SQUAREWAVE(NODE_73, 1, NODE_72, 407.8, 31.5, 0, 0.0) DISCRETE_ONOFF(DRAGRACE_SCREECH1_SND, DRAGRACE_SCREECH1_EN, NODE_73) DISCRETE_ONOFF(DRAGRACE_SCREECH2_SND, DRAGRACE_SCREECH2_EN, NODE_73) diff --git a/src/mame/audio/galaxian.c b/src/mame/audio/galaxian.c index d1ba96b4270..1098add2109 100644 --- a/src/mame/audio/galaxian.c +++ b/src/mame/audio/galaxian.c @@ -344,7 +344,7 @@ static DISCRETE_SOUND_START(galaxian) DISCRETE_LOGIC_INVERT(NODE_170, GAL_INP_FIRE) DISCRETE_MULTIPLY(NODE_171, TTL_OUT, GAL_INP_FIRE) DISCRETE_MULTIPLY(NODE_172, TTL_OUT, NODE_170) // inverted - DISCRETE_RCFILTER(NODE_173, 1, NODE_172, GAL_R47, GAL_C28) + DISCRETE_RCFILTER(NODE_173, NODE_172, GAL_R47, GAL_C28) /* Mix noise and 163 */ DISCRETE_TRANSFORM5(NODE_177, NODE_152, TTL_OUT, 1.0/GAL_R46, NODE_173, 1.0/GAL_R48, "01*2*34*+" ) diff --git a/src/mame/audio/hitme.c b/src/mame/audio/hitme.c index a73aeaca817..d3a28140ffc 100644 --- a/src/mame/audio/hitme.c +++ b/src/mame/audio/hitme.c @@ -73,7 +73,7 @@ DISCRETE_SOUND_START(hitme) DISCRETE_555_ASTABLE(NODE_24,1,22e3,39e3,NODE_23,&desc_hitme_555) /* The output of the 555 timer is fed through a simple CR filter in the amp stage. */ - DISCRETE_CRFILTER(HITME_FINAL_SND,1,NODE_24,1e3,50e-6) + DISCRETE_CRFILTER(HITME_FINAL_SND,NODE_24,1e3,50e-6) /* We scale the final output of 3.8 to 16-bit range and output it at full volume */ DISCRETE_OUTPUT(HITME_FINAL_SND,32000.0/3.8) diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c index 67614ab4b7d..fb6022a0b4f 100644 --- a/src/mame/audio/irem.c +++ b/src/mame/audio/irem.c @@ -327,12 +327,12 @@ static DISCRETE_SOUND_START( m52_sound_c ) /* Sallen - Key Filter */ /* TODO: R12, C30: This looks like a band pass */ - DISCRETE_RCFILTER(NODE_25, 1, NODE_20, M52_R12, M52_C30) + DISCRETE_RCFILTER(NODE_25, NODE_20, M52_R12, M52_C30) DISCRETE_SALLEN_KEY_FILTER(NODE_30, 1, NODE_25, DISC_SALLEN_KEY_LOW_PASS, &m52_sound_c_sallen_key) /* Mix signals */ DISCRETE_MIXER2(NODE_40, 1, NODE_10, NODE_25, &m52_sound_c_mix1) - DISCRETE_CRFILTER(NODE_45, 1, NODE_40, M52_R10+M52_R9, M52_C28) + DISCRETE_CRFILTER(NODE_45, NODE_40, M52_R10+M52_R9, M52_C28) DISCRETE_OUTPUT(NODE_40, 18.0) diff --git a/src/mame/audio/llander.c b/src/mame/audio/llander.c index 04a92b2f72c..3030750da89 100644 --- a/src/mame/audio/llander.c +++ b/src/mame/audio/llander.c @@ -59,7 +59,7 @@ DISCRETE_SOUND_START(llander) DISCRETE_INPUT_PULSE(LLANDER_NOISE_RESET, 1) DISCRETE_LFSR_NOISE(NODE_20, 1, LLANDER_NOISE_RESET, 12000, 1, 0, 0, &llander_lfsr) // 12KHz Noise source for thrust - DISCRETE_RCFILTER(LLANDER_NOISE, 1, NODE_20, 2247, 1e-6) + DISCRETE_RCFILTER(LLANDER_NOISE, NODE_20, 2247, 1e-6) DISCRETE_SQUAREWFIX(LLANDER_TONE_3K_SND, LLANDER_TONE3K_EN, 3000, 9.2, 50, 0, 0) // 3KHz diff --git a/src/mame/audio/m79amb.c b/src/mame/audio/m79amb.c index 37447b88e9d..9f555adfc64 100644 --- a/src/mame/audio/m79amb.c +++ b/src/mame/audio/m79amb.c @@ -233,9 +233,9 @@ DISCRETE_SOUND_START( m79amb ) 12, 0, 12, /* VPOS,VNEG,VCHARGE */ DISC_566_OUT_DC | DISC_566_OUT_TRIANGLE) DISCRETE_CRFILTER(NODE_53, - M79AMB_MC_CONTROL_EN, /* Q13 */ NODE_52, M79AMB_R41 + M79AMB_R42 + M79AMB_R43, M79AMB_C22) - DISCRETE_GAIN(M79AMB_MC_SND, NODE_53, RES_VOLTAGE_DIVIDER(M79AMB_R41 + M79AMB_R42, 2200))//M79AMB_R43)) + DISCRETE_MULTIPLY(NODE_54, NODE_53, M79AMB_MC_CONTROL_EN) + DISCRETE_GAIN(M79AMB_MC_SND, NODE_54, RES_VOLTAGE_DIVIDER(M79AMB_R41 + M79AMB_R42, 2200))//M79AMB_R43)) /************************************************ * Tank, Truck, Jeep @@ -249,11 +249,9 @@ DISCRETE_SOUND_START( m79amb ) M79AMB_TANK_TRUCK_JEEP_EN, /* Q16, Q17 */ NODE_60) DISCRETE_CRFILTER(NODE_62, - 1, /* ENAB */ NODE_61, M79AMB_R48 + M79AMB_R49, M79AMB_C26) DISCRETE_GAIN(NODE_63, NODE_62, RES_VOLTAGE_DIVIDER(M79AMB_R48, M79AMB_R49)) DISCRETE_RCFILTER(M79AMB_TANK_TRUCK_JEEP_SND, - 1, /* ENAB */ NODE_63, RES_2_PARALLEL(M79AMB_R48, M79AMB_R49), M79AMB_C27) /************************************************ @@ -273,9 +271,9 @@ DISCRETE_SOUND_START( m79amb ) 12, 0, 12, /* VPOS,VNEG,VCHARGE */ DISC_566_OUT_DC | DISC_566_OUT_TRIANGLE) DISCRETE_CRFILTER(NODE_73, - M79AMB_WHISTLE_A_EN, /* Q16, Q17 */ NODE_72, M79AMB_R57 + M79AMB_R58 + M79AMB_R59, M79AMB_C31) - DISCRETE_GAIN(M79AMB_WHISTLE_A_SND, NODE_73, RES_VOLTAGE_DIVIDER(M79AMB_R57 + M79AMB_R58, M79AMB_R59)) + DISCRETE_MULTIPLY(NODE_74, NODE_73, M79AMB_WHISTLE_A_EN) /* Q16, Q17 */ + DISCRETE_GAIN(M79AMB_WHISTLE_A_SND, NODE_74, RES_VOLTAGE_DIVIDER(M79AMB_R57 + M79AMB_R58, M79AMB_R59)) /************************************************ * Whisle B @@ -294,9 +292,9 @@ DISCRETE_SOUND_START( m79amb ) 12, 0, 12, /* VPOS,VNEG,VCHARGE */ DISC_566_OUT_DC | DISC_566_OUT_TRIANGLE) DISCRETE_CRFILTER(NODE_83, - M79AMB_WHISTLE_B_EN, /* Q19, Q20*/ NODE_82, M79AMB_R67 + M79AMB_R68 + M79AMB_R69, M79AMB_C35) - DISCRETE_GAIN(M79AMB_WHISTLE_B_SND, NODE_83, RES_VOLTAGE_DIVIDER(M79AMB_R67 + M79AMB_R68, M79AMB_R69)) + DISCRETE_MULTIPLY(NODE_84, NODE_83, M79AMB_WHISTLE_B_EN) /* Q19, Q20*/ + DISCRETE_GAIN(M79AMB_WHISTLE_B_SND, NODE_84, RES_VOLTAGE_DIVIDER(M79AMB_R67 + M79AMB_R68, M79AMB_R69)) /************************************************ * Mixer @@ -312,7 +310,6 @@ DISCRETE_SOUND_START( m79amb ) M79AMB_WHISTLE_B_SND, &m79amb_final_mix) DISCRETE_RCFILTER(NODE_91, - 1, /* ENAB */ NODE_90, M79AMB_R86, M79AMB_C41) DISCRETE_OUTPUT(NODE_91, 32000.0/5) diff --git a/src/mame/audio/madalien.c b/src/mame/audio/madalien.c index f1dfa83e9ef..674d16fe724 100644 --- a/src/mame/audio/madalien.c +++ b/src/mame/audio/madalien.c @@ -222,13 +222,13 @@ DISCRETE_SOUND_START( madalien ) 15, 1, 0, DISC_CLK_BY_COUNT) // 4-bit binary up counter DISCRETE_DAC_R1(NODE_55, NODE_54, DEFAULT_TTL_V_LOGIC_1, &madalien_effect1a_dac) DISCRETE_DAC_R1(NODE_56, NODE_54, DEFAULT_TTL_V_LOGIC_1, &madalien_effect1b_dac) - DISCRETE_RCFILTER(NODE_57, 1, NODE_56, RES_K(22)/2 + RES_K(22), CAP_U(.033)) + DISCRETE_RCFILTER(NODE_57, NODE_56, RES_K(22)/2 + RES_K(22), CAP_U(.033)) DISCRETE_COMP_ADDER(NODE_59, MADALIEN_8910_PORTB_23, &madalien_effect_1b_vol_r) /************************************************ * Enemy motor ************************************************/ - DISCRETE_CRFILTER(NODE_60, 1, MADALIEN_8910_PORTB_7, RES_K(100), CAP_U(4.7)) + DISCRETE_CRFILTER(NODE_60, MADALIEN_8910_PORTB_7, RES_K(100), CAP_U(4.7)) // 2 diodes clamp it positive. DISCRETE_CLAMP(NODE_62, NODE_60, 0, 12) // the 0.047uF cap to ground just removes real world spikes. diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c index 5f50a648bfa..03d7aea83af 100644 --- a/src/mame/audio/mario.c +++ b/src/mame/audio/mario.c @@ -1,7 +1,6 @@ #include "driver.h" #include "cpu/z80/z80.h" #include "cpu/mcs48/mcs48.h" -#include "sound/dac.h" #include "sound/ay8910.h" #include "sound/discrete.h" @@ -203,16 +202,16 @@ static DISCRETE_STEP( mario_custom_run ) double sample_t = node->info->sample_time; double vn, exponent, t = 0; - int update_exponent = 0; + int update_exponent; double t1, t2; - if (MARIO_CUSTOM_IN1 > 0.001) + if (EXPECTED(MARIO_CUSTOM_IN1 > 0.001)) t1 = 0.5 / LS624_F(MARIO_CUSTOM_IN1, 1); else /* close enough to 0, so we can speed things up by no longer call pow() */ t1 = context->dt_in1_at_0; - if (MARIO_CUSTOM_IN2 > 0.001) + if (EXPECTED(MARIO_CUSTOM_IN2 > 0.001)) t2 = 0.5 / LS624_F(MARIO_CUSTOM_IN2, 2); else t2 = context->dt_in2_at_0; @@ -222,9 +221,10 @@ static DISCRETE_STEP( mario_custom_run ) /* state before time advance */ vn = (double) (context->state1 ^ context->state2); vn *= MARIO_CUSTOM_VOUT; + update_exponent = 0; if (context->remain1 < context->remain2) { - if (context->remain1 < sample_t) + if (EXPECTED(context->remain1 < sample_t)) { t = context->remain1; update_exponent = 1; @@ -242,7 +242,7 @@ static DISCRETE_STEP( mario_custom_run ) } else { - if (context->remain2 < sample_t) + if (EXPECTED(context->remain2 < sample_t)) { t = context->remain2; update_exponent = 1; @@ -259,7 +259,7 @@ static DISCRETE_STEP( mario_custom_run ) } } - if (update_exponent) + if (EXPECTED(update_exponent)) exponent = RC_CHARGE_EXP_DT(context->r1_c3, t); else exponent = context->exponent_c3; @@ -313,7 +313,7 @@ static DISCRETE_SOUND_START(mario) DISCRETE_TASK_START(1) DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1) DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, MR_C14) - DISCRETE_RCFILTER(NODE_11, 1, NODE_10, MR_R6, MR_C3 ) + DISCRETE_RCFILTER(NODE_11, NODE_10, MR_R6, MR_C3 ) DISCRETE_CUSTOM7(NODE_12, NODE_10, NODE_11, NODE_11, MR_C6, MR_C17, MR_MIXER_RPAR, MR_C31, &mario_custom_run_info) DISCRETE_MULTIPLY(DS_OUT_SOUND0, NODE_12, MR_MIXER_RPAR / MR_R20) @@ -326,7 +326,7 @@ static DISCRETE_SOUND_START(mario) DISCRETE_TASK_START(1) DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1) DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, MR_C15) - DISCRETE_RCFILTER(NODE_21, 1, NODE_20, MR_R7, MR_C4 ) + DISCRETE_RCFILTER(NODE_21, NODE_20, MR_R7, MR_C4 ) DISCRETE_CUSTOM7(NODE_22, NODE_20, NODE_21, NODE_21, MR_C5, MR_C16, MR_MIXER_RPAR, MR_C31, &mario_custom_run_info) DISCRETE_MULTIPLY(DS_OUT_SOUND1, NODE_22, MR_MIXER_RPAR / MR_R19) @@ -344,17 +344,17 @@ static DISCRETE_SOUND_START(mario) DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, MR_C41) DISCRETE_TRANSFORM2(NODE_111, NODE_110, TTL_HIGH, "0!1*") - DISCRETE_RCFILTER(NODE_112, 1, NODE_111, MR_R65, MR_C44) + DISCRETE_RCFILTER(NODE_112, NODE_111, MR_R65, MR_C44) DISCRETE_74LS624(NODE_113, NODE_112, RUN_VCO_VOLTAGE /*VSS*/, MR_C40, DISC_LS624_OUT_LOGIC) DISCRETE_LOGIC_XOR(NODE_115, NODE_102, NODE_113) - DISCRETE_RCFILTER(NODE_117, 1, NODE_104, MR_R64, MR_C43) + DISCRETE_RCFILTER(NODE_117, NODE_104, MR_R64, MR_C43) DISCRETE_74LS624(NODE_118, NODE_117, RUN_VCO_VOLTAGE /*VSS*/, MR_C39, DISC_LS624_OUT_COUNT_F) DISCRETE_LOGIC_AND(NODE_120, NODE_115, NODE_110) DISCRETE_MULTIPLY(NODE_121, NODE_120, TTL_HIGH * MR_MIXER_RPAR / MR_R41) - DISCRETE_RCFILTER(DS_OUT_SOUND7, 1, NODE_121, MR_MIXER_RPAR, MR_C31) + DISCRETE_RCFILTER(DS_OUT_SOUND7, NODE_121, MR_MIXER_RPAR, MR_C31) DISCRETE_TASK_END() /************************************************/ @@ -368,10 +368,10 @@ static DISCRETE_SOUND_START(mario) DISCRETE_TASK_START(1) DISCRETE_INPUT_BUFFER(DS_DAC, 0) DISCRETE_MULTIPLY(NODE_170, DS_DAC, TTL_HIGH/256.0) - DISCRETE_RCFILTER(NODE_171, 1, NODE_170, RES_K(750), CAP_P(200)) + DISCRETE_RCFILTER(NODE_171, NODE_170, RES_K(750), CAP_P(200)) DISCRETE_MULTIPLY(NODE_172, NODE_171, MR_MIXER_RPAR / MR_R40) - DISCRETE_RCFILTER(DS_OUT_DAC, 1, NODE_172, MR_MIXER_RPAR, MR_C31) + DISCRETE_RCFILTER(DS_OUT_DAC, NODE_172, MR_MIXER_RPAR, MR_C31) DISCRETE_TASK_END() @@ -385,9 +385,9 @@ static DISCRETE_SOUND_START(mario) /* Amplifier: internal amplifier * Just a 1:n amplifier without filters and no output capacitor */ - DISCRETE_CRFILTER(NODE_296, 1, NODE_295, RES_2_PARALLEL(MR_R42, MR_R43), MR_C32) + DISCRETE_CRFILTER(NODE_296, NODE_295, RES_2_PARALLEL(MR_R42, MR_R43), MR_C32) /* EZV20 (Monitor) ouput capacitor / Speaker */ - DISCRETE_CRFILTER(NODE_297, 1, NODE_296, 6, CAP_U(22)) + DISCRETE_CRFILTER(NODE_297, NODE_296, 6, CAP_U(22)) DISCRETE_OUTPUT(NODE_297, 32767.0/5.0 * 10) //DISCRETE_WAVELOG1(DS_OUT_SOUND0, 32767/5.0) //DISCRETE_WAVELOG2(NODE_296, 32767/5.0 * 2, DS_SOUND7_INV, 10000) diff --git a/src/mame/audio/mw8080bw.c b/src/mame/audio/mw8080bw.c index 30447fd4e34..53ffb0f4850 100644 --- a/src/mame/audio/mw8080bw.c +++ b/src/mame/audio/mw8080bw.c @@ -327,7 +327,7 @@ static DISCRETE_SOUND_START(tornbase) /* 47K resistor (R601) and 0.047uF capacitor (C601) There is also a 50K pot acting as a volume control, but we output at the maximum volume as MAME has its own volume adjustment */ - DISCRETE_CRFILTER(TORNBASE_TONE_SND_FILT, 1, TORNBASE_TONE_SND, RES_K(47), CAP_U(0.047)) + DISCRETE_CRFILTER(TORNBASE_TONE_SND_FILT, TORNBASE_TONE_SND, RES_K(47), CAP_U(0.047)) /* amplify for output */ DISCRETE_OUTPUT(TORNBASE_TONE_SND_FILT, 32767) @@ -554,7 +554,6 @@ static DISCRETE_SOUND_START(maze) /* The following circuits remove DC poping noises when the tone is switched in/out. */ DISCRETE_CRFILTER_VREF(NODE_40, - 1, /* ENAB */ NODE_36, /* IN0 */ RES_K(250), /* R311, R312, R402, R403 in parallel */ CAP_U(0.1), /* c301 */ @@ -565,12 +564,10 @@ static DISCRETE_SOUND_START(maze) 2.5, /* INP0 - center voltage of R402, R403 */ NODE_40) /* INP1 */ DISCRETE_CRFILTER(NODE_42, - 1, /* ENAB */ NODE_41, /* IN0 */ RES_K(56 + 390), /* R404 + R405 */ CAP_P(0.01) ) /* C401 */ DISCRETE_RCFILTER(NODE_43, - 1, /* ENAB */ NODE_42, /* IN0 */ RES_K(56), /* R404 */ CAP_P(4700) ) /* C400 */ @@ -788,23 +785,23 @@ static DISCRETE_SOUND_START(boothill) DISCRETE_LFSR_NOISE(BOOTHILL_NOISE, 1, 1, 7700, 12.0, 0, 12.0/2, &midway_lfsr) DISCRETE_OP_AMP_TRIG_VCA(NODE_30, BOOTHILL_LEFT_SHOT_EN, 0, 0, BOOTHILL_NOISE, 0, &boothill_shot_tvca_info) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, RES_K(12), CAP_U(.01)) - DISCRETE_RCFILTER(BOOTHILL_L_SHOT_SND, 1, NODE_31, RES_K(12) + RES_K(68), CAP_U(.0022)) + DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(12), CAP_U(.01)) + DISCRETE_RCFILTER(BOOTHILL_L_SHOT_SND, NODE_31, RES_K(12) + RES_K(68), CAP_U(.0022)) DISCRETE_OP_AMP_TRIG_VCA(NODE_35, BOOTHILL_RIGHT_SHOT_EN, 0, 0, BOOTHILL_NOISE, 0, &boothill_shot_tvca_info) - DISCRETE_RCFILTER(NODE_36, 1, NODE_35, RES_K(12), CAP_U(.01)) - DISCRETE_RCFILTER(BOOTHILL_R_SHOT_SND, 1, NODE_36, RES_K(12) + RES_K(68), CAP_U(.0033)) + DISCRETE_RCFILTER(NODE_36, NODE_35, RES_K(12), CAP_U(.01)) + DISCRETE_RCFILTER(BOOTHILL_R_SHOT_SND, NODE_36, RES_K(12) + RES_K(68), CAP_U(.0033)) /************************************************ * Hit sounds ************************************************/ DISCRETE_OP_AMP_TRIG_VCA(NODE_40, BOOTHILL_LEFT_HIT_EN, 0, 0, BOOTHILL_NOISE, 0, &boothill_hit_tvca_info) - DISCRETE_RCFILTER(NODE_41, 1, NODE_40, RES_K(12), CAP_U(.033)) - DISCRETE_RCFILTER(BOOTHILL_L_HIT_SND, 1, NODE_41, RES_K(12) + RES_K(100), CAP_U(.0033)) + DISCRETE_RCFILTER(NODE_41, NODE_40, RES_K(12), CAP_U(.033)) + DISCRETE_RCFILTER(BOOTHILL_L_HIT_SND, NODE_41, RES_K(12) + RES_K(100), CAP_U(.0033)) DISCRETE_OP_AMP_TRIG_VCA(NODE_45, BOOTHILL_RIGHT_HIT_EN, 0, 0, BOOTHILL_NOISE, 0, &boothill_hit_tvca_info) - DISCRETE_RCFILTER(NODE_46, 1, NODE_45, RES_K(12), CAP_U(.0033)) - DISCRETE_RCFILTER(BOOTHILL_R_HIT_SND, 1, NODE_46, RES_K(12) + RES_K(100), CAP_U(.0022)) + DISCRETE_RCFILTER(NODE_46, NODE_45, RES_K(12), CAP_U(.0033)) + DISCRETE_RCFILTER(BOOTHILL_R_HIT_SND, NODE_46, RES_K(12) + RES_K(100), CAP_U(.0022)) /************************************************ * Combine all sound sources. @@ -1030,7 +1027,6 @@ static DISCRETE_SOUND_START(checkmat) /* The following circuits remove DC poping noises when the tone is switched in/out. */ DISCRETE_CRFILTER_VREF(NODE_31, - 1, /* ENAB */ NODE_30, /* IN0 */ RES_K(250), /* R409, R415, R414, R413 in parallel */ CAP_U(0.1), /* c401 */ @@ -1041,12 +1037,10 @@ static DISCRETE_SOUND_START(checkmat) 2.5, /* INP0 - center voltage of R413, R414 */ NODE_31) /* INP1 */ DISCRETE_CRFILTER(NODE_33, - 1, /* ENAB */ NODE_32, /* IN0 */ RES_K(56 + 47 + 200), /* R412 + R408 + part of R411 */ CAP_P(0.01) ) /* C404 */ DISCRETE_RCFILTER(CHECKMAT_TONE_SND, - 1, /* ENAB */ NODE_33, /* IN0 */ RES_K(56), /* R412 */ CAP_P(4700) ) /* C403 */ @@ -1236,8 +1230,8 @@ static DISCRETE_SOUND_START(desertgu) DISCRETE_LFSR_NOISE(DESERTGU_NOISE, 1, 1, 7515, 12.0, 0, 12.0/2, &midway_lfsr) DISCRETE_OP_AMP_TRIG_VCA(NODE_30, DESERTGU_RIFLE_SHOT_EN, 0, 0, DESERTGU_NOISE, 0, &desertgu_rifle_shot_tvca_info) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, RES_K(12), CAP_U(.01)) - DISCRETE_CRFILTER(DESERTGU_RIFLE_SHOT_SND, 1, NODE_31, RES_K(12) + RES_K(68), CAP_U(.0022)) + DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(12), CAP_U(.01)) + DISCRETE_CRFILTER(DESERTGU_RIFLE_SHOT_SND, NODE_31, RES_K(12) + RES_K(68), CAP_U(.0022)) /************************************************ * Bottle hit sound @@ -1909,8 +1903,8 @@ static DISCRETE_SOUND_START(clowns) DISCRETE_LFSR_NOISE(CLOWNS_NOISE, 1, 1, 7700, 12.0, 0, 12.0/2, &midway_lfsr) DISCRETE_OP_AMP_TRIG_VCA(NODE_30, CLOWNS_POP_TOP_EN, CLOWNS_POP_MIDDLE_EN, CLOWNS_POP_BOTTOM_EN, CLOWNS_NOISE, 0, &clowns_pop_tvca_info) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, RES_K(15), CAP_U(.01)) - DISCRETE_CRFILTER(NODE_32, 1, NODE_31, RES_K(15) + RES_K(39), CAP_U(.01)) + DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(15), CAP_U(.01)) + DISCRETE_CRFILTER(NODE_32, NODE_31, RES_K(15) + RES_K(39), CAP_U(.01)) DISCRETE_GAIN(CLOWNS_POP_SND, NODE_32, RES_K(39)/(RES_K(15) + RES_K(39))) /************************************************ @@ -2190,11 +2184,9 @@ static const discrete_mixer_desc spacwalk_mixer = ************************************************/ #define SPACWALK_SPRINGBOARD_HIT_CIRCUIT(_num) \ DISCRETE_RCFILTER(NODE_RELATIVE(NODE_29, _num), \ - 1, /* ENAB */ \ SPACWALK_NOISE, /* IN0 */ \ RES_K(330), CAP_U(.1)) \ DISCRETE_RCFILTER(NODE_RELATIVE(NODE_31, _num), \ - 1, /* ENAB */ \ NODE_RELATIVE(NODE_29, _num), /* IN0 */ \ RES_K(330) + RES_K(150), CAP_U(.1)) \ DISCRETE_OP_AMP_VCO1(NODE_RELATIVE(NODE_33, _num), /* IC M2-3, pin 5 */ \ @@ -2253,11 +2245,9 @@ DISCRETE_GAIN(NODE_RELATIVE(SPACWALK_SPRINGBOARD_HIT1_SND, _num - 1), SPACWALK_NOISE, 0, /* IN0, IN1 */ &spacwalk_hit_tvca_info) DISCRETE_RCFILTER(NODE_21, - 1, /* ENAB */ NODE_20, /* IN0 */ SPACWALK_R307, SPACWALK_C303) DISCRETE_RCFILTER(SPACWALK_TARGET_HIT_SND, - 1, /* ENAB */ NODE_21, /* IN0 */ SPACWALK_R307 + SPACWALK_R308, SPACWALK_C304) @@ -2284,7 +2274,6 @@ DISCRETE_GAIN(NODE_RELATIVE(SPACWALK_SPRINGBOARD_HIT1_SND, _num - 1), NODE_50, /* VMOD1 */ &spacwalk_sb_miss_vco) DISCRETE_CRFILTER(NODE_53, - 1, /* ENAB */ NODE_52, /* IN0 */ SPACWALK_R417, SPACWALK_C453) /* this filter type probably does not work right. I need to test it. */ @@ -2308,11 +2297,9 @@ DISCRETE_GAIN(NODE_RELATIVE(SPACWALK_SPRINGBOARD_HIT1_SND, _num - 1), NODE_60, /* VMOD1*/ &spacwalk_spaceship_vco) DISCRETE_RCFILTER(NODE_62, - 1, /* ENAB */ NODE_61, /* IN0 */ RES_K(1), CAP_U(0.15)) DISCRETE_RCFILTER(SPACWALK_SPACE_SHIP_SND, - 1, /* ENAB */ NODE_62, /* IN0 */ RES_K(1) + RES_K(10), CAP_U(0.015)) @@ -2427,7 +2414,7 @@ static DISCRETE_SOUND_START(dogpatch) /************************************************ * Filter it to be AC. ************************************************/ - DISCRETE_CRFILTER(NODE_91, 1, MIDWAY_TONE_SND, RES_K(100), CAP_U(0.1)) + DISCRETE_CRFILTER(NODE_91, MIDWAY_TONE_SND, RES_K(100), CAP_U(0.1)) DISCRETE_OUTPUT(NODE_91, 5000) @@ -2806,7 +2793,6 @@ static DISCRETE_SOUND_START(spcenctr) DISC_OP_AMP_FILTER_IS_BAND_PASS_1M | DISC_OP_AMP_IS_NORTON, &spcenctr_enemy_ship_shot_filt) DISCRETE_CRFILTER(SPCENCTR_ENEMY_SHIP_SHOT_SND, - 1, /* ENAB */ NODE_23, /* IN0 */ RES_K(1.8), /* R116 */ CAP_U(0.1) ) /* C104 */ @@ -2833,7 +2819,6 @@ static DISCRETE_SOUND_START(spcenctr) 0, /* MIN */ 12) /* MAX */ DISCRETE_CRFILTER(NODE_34, - 1, /* ENAB */ SPCENCTR_NOISE, /* IN0 */ RES_M(1) + RES_K(330), /* R507, R509 */ CAP_U(0.1) ) /* C503 */ @@ -2911,12 +2896,10 @@ static DISCRETE_SOUND_START(spcenctr) 0, /* no IN1 */ &spcenctr_explosion_tvca) DISCRETE_RCFILTER(NODE_71, - 1, /* ENAB */ NODE_70, /* IN0 */ RES_K(1.8), /* R405 */ CAP_U(0.22) ) /* C401 */ DISCRETE_RCFILTER(SPCENCTR_EXPLOSION_SND, - 1, /* ENAB */ NODE_71, /* IN0 */ RES_K(1.8) + RES_K(3.6), /* R405 + R406 */ CAP_U(0.22) ) /* C402 */ @@ -3177,7 +3160,6 @@ static DISCRETE_SOUND_START(bowler) 0, /* no IN1 */ &bowler_fowl_tvca) DISCRETE_CRFILTER(BOWLER_FOWL_SND, - 1, /* ENAB */ NODE_21, /* IN0 */ RES_K(68), /* R1120 */ CAP_U(0.1) ) /* C1048 */ @@ -3741,12 +3723,10 @@ static const discrete_mixer_desc invaders_mixer = CAP_U(0.1), /* C29 */ \ &invaders_thump_555) \ DISCRETE_RCFILTER(INVADERS_NODE(32, _board), \ - 1, /* ENAB */ \ INVADERS_NODE(31, _board), /* IN0 */ \ 100, /* R132 */ \ CAP_U(4.7) ) /* C31 */ \ DISCRETE_RCFILTER(INVADERS_NODE(INVADERS_FLEET_SND, _board), \ - 1, /* ENAB */ \ INVADERS_NODE(32, _board), /* IN0 */ \ 100 + 100, /* R132 + R133 */ \ CAP_U(10) ) /* C32 */ @@ -3822,12 +3802,10 @@ static const discrete_mixer_desc invaders_mixer = 0, /* no IN1 */ \ &invaders_explosion_tvca) \ DISCRETE_RCFILTER(INVADERS_NODE(62, _board), \ - 1, /* ENAB */ \ INVADERS_NODE(61, _board), /* IN0 */ \ RES_K(5.6), /* R84 */ \ CAP_U(0.1) ) /* C27 */ \ DISCRETE_RCFILTER(INVADERS_NODE(INVADERS_EXPLOSION_SND, _board), \ - 1, /* ENAB */ \ INVADERS_NODE(62, _board), /* IN0 */ \ RES_K(5.6) + RES_K(6.8), /* R84 + R85 */ \ CAP_U(0.1) ) /* C28 */ @@ -3856,7 +3834,6 @@ static const discrete_mixer_desc invaders_mixer = 0, /* MIN */ \ 12) /* MAX */ \ DISCRETE_CRFILTER(INVADERS_NODE(74, _board), \ - 1, /* ENAB */ \ INVADERS_NOISE, /* IN0 */ \ RES_M(1) + RES_K(330), /* R29, R11 */ \ CAP_U(0.1) ) /* C57 */ \ diff --git a/src/mame/audio/nitedrvr.c b/src/mame/audio/nitedrvr.c index c0ecb12b437..379b8dd278d 100644 --- a/src/mame/audio/nitedrvr.c +++ b/src/mame/audio/nitedrvr.c @@ -79,21 +79,21 @@ DISCRETE_SOUND_START(nitedrvr) /* This adjusts the high end. */ /* 0k = 214Hz. 250k = 4416Hz */ /************************************************/ - DISCRETE_RCFILTER(NODE_20, 1, NITEDRVR_MOTOR_DATA, 123037, 2.2e-6) + DISCRETE_RCFILTER(NODE_20, NITEDRVR_MOTOR_DATA, 123037, 2.2e-6) DISCRETE_ADJUSTMENT_TAG(NODE_21, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR") DISCRETE_MULTIPLY(NODE_22, NODE_20, NODE_21) DISCRETE_MULTADD(NODE_23, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */ DISCRETE_SQUAREWAVE(NODE_24, 1, NODE_23, (786.7/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_25, 1, NODE_24, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_25, NODE_24, 10000, 1e-7) DISCRETE_MULTADD(NODE_26, NODE_22, 3, 27.0/4) /* F2 = /12*3 = /4 */ DISCRETE_SQUAREWAVE(NODE_27, 1, NODE_26, (786.7/3), 50.0, 0, 0) - DISCRETE_RCFILTER(NODE_28, 1, NODE_27, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_28, NODE_27, 10000, 1e-7) DISCRETE_MULTADD(NODE_29, NODE_22, 4, 27.0/3) /* F3 = /12*4 = /3 */ DISCRETE_SQUAREWAVE(NODE_30, 1, NODE_29, (786.7/3), 100.0/3, 0, 360.0/3) - DISCRETE_RCFILTER(NODE_31, 1, NODE_30, 10000, 1e-7) + DISCRETE_RCFILTER(NODE_31, NODE_30, 10000, 1e-7) DISCRETE_ADDER3(NITEDRVR_MOTOR_SND, NITEDRVR_ATTRACT_EN, NODE_25, NODE_28, NODE_31) @@ -108,7 +108,7 @@ DISCRETE_SOUND_START(nitedrvr) DISCRETE_LFSR_NOISE(NITEDRVR_NOISE, NITEDRVR_CRASH_EN, NITEDRVR_CRASH_EN, 15750.0/2/4, 1.0, 0, 0, &nitedrvr_lfsr) DISCRETE_MULTIPLY(NODE_62, NITEDRVR_NOISE, NITEDRVR_BANG_DATA) - DISCRETE_RCFILTER(NITEDRVR_BANG_SND, 1, NODE_62, 545.6, 3.3e-7) + DISCRETE_RCFILTER(NITEDRVR_BANG_SND, NODE_62, 545.6, 3.3e-7) /************************************************/ /* Skid circuits ripped from other drivers */ @@ -127,7 +127,7 @@ DISCRETE_SOUND_START(nitedrvr) /* the duty variance is so small we ignore it */ /************************************************/ DISCRETE_INVERT(NODE_70, NITEDRVR_NOISE) - DISCRETE_RCFILTER(NODE_71, 1, NODE_70, 1000, 1e-5) + DISCRETE_RCFILTER(NODE_71, NODE_70, 1000, 1e-5) DISCRETE_MULTADD(NODE_72, NODE_71, 940.0-630.0, ((940.0-630.0)/2)+630.0) DISCRETE_SQUAREWAVE(NITEDRVR_SCREECH1_SND, NITEDRVR_SKID1_EN, NODE_72, 226.9, 31.5, 0, 0.0) diff --git a/src/mame/audio/phoenix.c b/src/mame/audio/phoenix.c index 441d1b3278b..69e048ab012 100644 --- a/src/mame/audio/phoenix.c +++ b/src/mame/audio/phoenix.c @@ -370,7 +370,6 @@ DISCRETE_SOUND_START(phoenix) NODE_22, NODE_23) DISCRETE_RCFILTER(NODE_25, - 1, NODE_24, 1.0/(1.0/RES_K(10) + 1.0/RES_K(100)), /* R19, R20 */ CAP_U(.047)) /* C5 */ @@ -429,7 +428,6 @@ DISCRETE_SOUND_START(phoenix) &phoenix_effect2_mixer2) /* C22 charging is R45 in parallel with R46, R42 and the 555 CV internal resistance */ DISCRETE_RCFILTER(NODE_37, - 1, /* ENAB */ NODE_36, 1.0/ (1.0/RES_K(5.1) + (1.0/(RES_K(5.1) + 1.0/(1.0/RES_K(10) + 1.0/RES_K(5) + 1.0/RES_K(10)) ))), CAP_U(100)) /* R45, R46, R42, internal 555 Rs, C22 */ diff --git a/src/mame/audio/poolshrk.c b/src/mame/audio/poolshrk.c index 1f6c8d1938f..1d127a7c459 100644 --- a/src/mame/audio/poolshrk.c +++ b/src/mame/audio/poolshrk.c @@ -74,7 +74,7 @@ DISCRETE_SOUND_START(poolshrk) /* Bump is just a triggered 128V signal */ /************************************************/ DISCRETE_SQUAREWFIX(NODE_20, POOLSHRK_BUMP_EN, 15750.0/2.0/128.0, 3.4, 50.0, 3.4/2, 0.0) // 128V signal 3.4V - DISCRETE_RCFILTER(POOLSHRK_BUMP_SND, 1, NODE_20, 470, 4.7e-6) // Filtered by R53/C14 + DISCRETE_RCFILTER(POOLSHRK_BUMP_SND, NODE_20, 470, 4.7e-6) // Filtered by R53/C14 /************************************************/ /* Score is a triggered 0-15 count of the */ diff --git a/src/mame/audio/qix.c b/src/mame/audio/qix.c index 5739c1651a1..4cf817aeeef 100644 --- a/src/mame/audio/qix.c +++ b/src/mame/audio/qix.c @@ -78,8 +78,8 @@ static DISCRETE_SOUND_START(qix) DISCRETE_SWITCH(NODE_22, 1, QIX_VOL_DATA_R, QIX_DAC_DATA, NODE_21) /* Filter the DC using the lowest case filter. */ - DISCRETE_CRFILTER(NODE_13, 1, NODE_12, RES_K(1.5), CAP_U(1)) - DISCRETE_CRFILTER(NODE_23, 1, NODE_22, RES_K(1.5), CAP_U(1)) + DISCRETE_CRFILTER(NODE_13, NODE_12, RES_K(1.5), CAP_U(1)) + DISCRETE_CRFILTER(NODE_23, NODE_22, RES_K(1.5), CAP_U(1)) DISCRETE_OUTPUT(NODE_13, 1) DISCRETE_OUTPUT(NODE_23, 1) diff --git a/src/mame/audio/skyraid.c b/src/mame/audio/skyraid.c index f15d60495e5..e0244528db4 100644 --- a/src/mame/audio/skyraid.c +++ b/src/mame/audio/skyraid.c @@ -341,7 +341,6 @@ DISCRETE_SOUND_START( skyraid ) * Jet, Plane sound ************************************************/ DISCRETE_RCFILTER(NODE_30, /* IC J6, pin 5 */ - 1, /* ENAB */ SKYRAID_PLANE_SWEEP_EN, /* IN0 */ RES_2_PARALLEL(SKYRAID_R25, SKYRAID_R24), SKYRAID_C49) DISCRETE_566(NODE_31, /* IC J6, pin 3 */ @@ -391,7 +390,6 @@ DISCRETE_SOUND_START( skyraid ) SKYRAID_PLANE_SND, &skyraid_mixer) DISCRETE_CRFILTER(NODE_93, - 1, /* ENAB */ NODE_92, /* IN0 */ SKYRAID_R122 + RES_6_PARALLEL(SKYRAID_R120, SKYRAID_R32, SKYRAID_R29, SKYRAID_R30, SKYRAID_R31, RES_2_PARALLEL(SKYRAID_R27, SKYRAID_R28)), SKYRAID_C93) diff --git a/src/mame/audio/snk6502.c b/src/mame/audio/snk6502.c index 0344e4def49..4f679b731d5 100644 --- a/src/mame/audio/snk6502.c +++ b/src/mame/audio/snk6502.c @@ -365,9 +365,9 @@ DISCRETE_SOUND_START( fantasy ) DISCRETE_SWITCH(NODE_11, 1, FANTASY_NOISE_LOGIC, 0, NODE_10) DISCRETE_OP_AMP_FILTER(NODE_20, 1, NODE_11, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &fantasy_filter) - DISCRETE_RCFILTER(NODE_21, 1, NODE_20, RES_K(22), CAP_U(.01)) - DISCRETE_RCFILTER(NODE_22, 1, NODE_21, RES_K(22) + RES_K(22), CAP_P(2200)) - DISCRETE_RCFILTER(NODE_23, 1, NODE_22, RES_K(22) + RES_K(22) + RES_K(22), CAP_U(.001)) + DISCRETE_RCFILTER(NODE_21, NODE_20, RES_K(22), CAP_U(.01)) + DISCRETE_RCFILTER(NODE_22, NODE_21, RES_K(22) + RES_K(22), CAP_P(2200)) + DISCRETE_RCFILTER(NODE_23, NODE_22, RES_K(22) + RES_K(22) + RES_K(22), CAP_U(.001)) DISCRETE_OUTPUT(NODE_23, 32760.0/12) DISCRETE_SOUND_END diff --git a/src/mame/audio/spiders.c b/src/mame/audio/spiders.c index 7e8d63b8c81..0073c89674d 100644 --- a/src/mame/audio/spiders.c +++ b/src/mame/audio/spiders.c @@ -137,7 +137,7 @@ static DISCRETE_SOUND_START(spiders) // Fire envelope DISCRETE_MULTIPLY(NODE_41, DEFAULT_TTL_V_LOGIC_1, SPIDERS_FIRE_EN) - DISCRETE_RCFILTER(NODE_42, 1, NODE_41,RES_K(2.2),CAP_U(47)) //R11, C11 + DISCRETE_RCFILTER(NODE_42, NODE_41,RES_K(2.2),CAP_U(47)) //R11, C11 DISCRETE_TRANSFORM4(NODE_43, NODE_40, NODE_42, 2.5, 24.5,"012*3/-") DISCRETE_555_ASTABLE_CV(NODE_44, 1, RES_K(10), RES_K(22), CAP_N(100), NODE_43, &spiders_fire_555a) //R10, R18, C12 diff --git a/src/mame/audio/sprint8.c b/src/mame/audio/sprint8.c index af7b4157418..81841261d48 100644 --- a/src/mame/audio/sprint8.c +++ b/src/mame/audio/sprint8.c @@ -158,7 +158,7 @@ static const discrete_mixer_desc sprint8_mixer = * we will just tell the monostable it was triggered once and ignore C17/R40. */ #define SPRINT8_MOTOR_CIRCUIT(_car) \ -DISCRETE_RCFILTER(NODE_RELATIVE(NODE_30, _car - 1), 1, NODE_RELATIVE(SPRINT8_MOTOR1_EN, _car - 1), SPRINT8_R89, SPRINT8_C26) \ +DISCRETE_RCFILTER(NODE_RELATIVE(NODE_30, _car - 1), NODE_RELATIVE(SPRINT8_MOTOR1_EN, _car - 1), SPRINT8_R89, SPRINT8_C26) \ DISCRETE_ADDER2(NODE_RELATIVE(NODE_40, _car - 1), 1, NODE_RELATIVE(NODE_30, _car - 1), 0.7) /* add Q21 shift */ \ DISCRETE_555_ASTABLE_CV(NODE_RELATIVE(NODE_50, _car - 1), 1, SPRINT8_R39, 0, SPRINT8_C27, NODE_RELATIVE(NODE_40, _car - 1), &sprint8_motor_555a_desc) \ DISCRETE_555_MSTABLE(NODE_RELATIVE(NODE_60, _car - 1), 1, NODE_RELATIVE(NODE_50, _car - 1), SPRINT8_R41, SPRINT8_C28, &sprint8_motor_555m_desc) \ @@ -200,7 +200,6 @@ DISCRETE_SOUND_START( sprint8 ) DISCRETE_TASK_START(1) DISCRETE_GAIN(NODE_70, SPRINT8_NOISE, DEFAULT_TTL_V_LOGIC_1 * RES_VOLTAGE_DIVIDER(SPRINT8_R148, SPRINT8_R147)) DISCRETE_CRFILTER_VREF(NODE_71, - 1, /* ENAB */ NODE_70, /* IN0 */ RES_2_PARALLEL(SPRINT8_R148, SPRINT8_R147) + RES_2_PARALLEL(RES_K(5), RES_K(10)), SPRINT8_C90, @@ -227,7 +226,6 @@ DISCRETE_SOUND_START( sprint8 ) &sprint8_crash_screech_mixer) DISCRETE_CRFILTER_VREF(NODE_76, - 1, /* ENAB */ NODE_75, /* IN0 */ SPRINT8_R93 + SPRINT8_R91, SPRINT8_C63, 5) /* VREF */ diff --git a/src/mame/audio/starshp1.c b/src/mame/audio/starshp1.c index a733f13a8ef..b3da5304d17 100644 --- a/src/mame/audio/starshp1.c +++ b/src/mame/audio/starshp1.c @@ -186,13 +186,11 @@ DISCRETE_SOUND_START( starshp1 ) NODE_21, STARSHP1_NOISE_AMPLITUDE) DISCRETE_RCFILTER( NODE_23, - 1, /* ENAB */ NODE_22, STARSHP1_FAKE_MC3340_COMPENSATION_R, STARSHP1_C61) /* when NOISE_FREQ is high (NOISE_FREQ_INV is low), C59 is in circuit */ DISCRETE_RCFILTER( NODE_24, - 1, /* ENAB */ NODE_22, STARSHP1_FAKE_MC3340_COMPENSATION_R, STARSHP1_C61 + STARSHP1_C59) diff --git a/src/mame/audio/tank8.c b/src/mame/audio/tank8.c index 4e9e4e2025d..6cd5c9c3ba9 100644 --- a/src/mame/audio/tank8.c +++ b/src/mame/audio/tank8.c @@ -150,56 +150,56 @@ DISCRETE_SOUND_START(tank8) DISCRETE_LOGIC_INVERT(NODE_30, TANK8_MOTOR1_EN) DISCRETE_DAC_R1(NODE_32, TANK8_MOTOR1_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_33, NODE_30, RES_K(220), RES_K(39), CAP_U(0.22), NODE_32, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_34, 1, NODE_33, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_34, NODE_33, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_35, 1, NODE_34, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR1, 1, NODE_35, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_40, TANK8_MOTOR2_EN) DISCRETE_DAC_R1(NODE_42, TANK8_MOTOR2_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_43, NODE_40, RES_K(220), RES_K(39), CAP_U(0.22), NODE_42, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_44, 1, NODE_43, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_44, NODE_43, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_45, 1, NODE_44, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR2, 1, NODE_45, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_50, TANK8_MOTOR3_EN) DISCRETE_DAC_R1(NODE_52, TANK8_MOTOR3_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_53, NODE_50, RES_K(220), RES_K(39), CAP_U(0.22), NODE_52, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_54, 1 , NODE_53, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_54, NODE_53, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_55, 1, NODE_54, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR3, 1, NODE_55, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_60, TANK8_MOTOR4_EN) DISCRETE_DAC_R1(NODE_62, TANK8_MOTOR4_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_63, NODE_60, RES_K(220), RES_K(39), CAP_U(0.22), NODE_62, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_64, 1, NODE_63, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_64, NODE_63, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_65, 1, NODE_64, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR4, 1, NODE_65, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_70, TANK8_MOTOR5_EN) DISCRETE_DAC_R1(NODE_72, TANK8_MOTOR5_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_73, NODE_70, RES_K(220), RES_K(39), CAP_U(0.22), NODE_72, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_74, 1, NODE_73, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_74, NODE_73, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_75, 1, NODE_74, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR5, 1, NODE_75, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_80, TANK8_MOTOR6_EN) DISCRETE_DAC_R1(NODE_82, TANK8_MOTOR6_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_83, NODE_80, RES_K(220), RES_K(39), CAP_U(0.22), NODE_82, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_84, 1, NODE_83, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_84, NODE_83, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_85, 1, NODE_84, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR6, 1, NODE_85, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_90, TANK8_MOTOR7_EN) DISCRETE_DAC_R1(NODE_92, TANK8_MOTOR7_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_93, NODE_90, RES_K(220), RES_K(39), CAP_U(0.22), NODE_92, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_94, 1, NODE_93, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_94, NODE_93, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_95, 1, NODE_94, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR7, 1, NODE_95, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) DISCRETE_LOGIC_INVERT(NODE_100, TANK8_MOTOR8_EN) DISCRETE_DAC_R1(NODE_102, TANK8_MOTOR8_EN, 3.6, &tank8_dac) DISCRETE_555_ASTABLE_CV(NODE_103, NODE_100, RES_K(220), RES_K(39), CAP_U(0.22), NODE_102, &tank8_555_a) - DISCRETE_CRFILTER_VREF(NODE_104, 1, NODE_103, RES_K(22), CAP_U(0.001), 5.0) + DISCRETE_CRFILTER_VREF(NODE_104, NODE_103, RES_K(22), CAP_U(0.001), 5.0) DISCRETE_555_MSTABLE(NODE_105, 1, NODE_104, RES_K(56), CAP_U(0.1), &tank8_555_m) DISCRETE_OP_AMP_FILTER(TANK8_MOTOR8, 1, NODE_105, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &tank8_filt) @@ -213,7 +213,7 @@ DISCRETE_SOUND_START(tank8) DISCRETE_DIVIDE(NODE_111,1,TANK8_BUGLE_DATA2,7875.0) DISCRETE_SQUAREWAVE2(NODE_112,TANK8_BUGLE_EN,3.4, NODE_110, NODE_111,1.7,0) DISCRETE_RCDISC3(NODE_113,1, NODE_112, RES_K(10),RES_K(1),CAP_U(0.1), 0.5) - DISCRETE_CRFILTER(TANK8_BUGLE, 1, NODE_113, RES_K(47), CAP_U(.01)) + DISCRETE_CRFILTER(TANK8_BUGLE, NODE_113, RES_K(47), CAP_U(.01)) /************************************************/ /* Noise generator is built from 2 shift */ @@ -246,7 +246,7 @@ DISCRETE_SOUND_START(tank8) /************************************************/ DISCRETE_ADDER2(NODE_125, 1 , NODE_122, NODE_124 ) DISCRETE_MULTIPLY(NODE_126, NODE_120, NODE_125 ) - DISCRETE_RCFILTER(NODE_127, 1, NODE_126, RES_K(47), CAP_U(0.1)) + DISCRETE_RCFILTER(NODE_127, NODE_126, RES_K(47), CAP_U(0.1)) DISCRETE_ADJUSTMENT_TAG(NODE_128, 1.0, // min gain of E5 1.0 + 100.0/22, // max gain of E5 = 1 + r132/r101 diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index ad6a46ec171..f04f959a407 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -1392,7 +1392,7 @@ static DISCRETE_SOUND_START( btime_sound ) DISCRETE_OP_AMP_FILTER(NODE_30, 1, NODE_04, NODE_NC, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &btime_opamp_desc) DISCRETE_MIXER2(NODE_40, 1, NODE_22, NODE_30, &btime_sound_mixer_desc) - DISCRETE_CRFILTER(NODE_41, 1, NODE_40, RES_K(10), CAP_U(10)) + DISCRETE_CRFILTER(NODE_41, NODE_40, RES_K(10), CAP_U(10)) /* Amplifier is upc1181H3 * @@ -1405,7 +1405,7 @@ static DISCRETE_SOUND_START( btime_sound ) */ /* Assuming a 4 Ohm impedance speaker */ - DISCRETE_CRFILTER(NODE_43, 1, NODE_41, 3.0, CAP_U(100)) + DISCRETE_CRFILTER(NODE_43, NODE_41, 3.0, CAP_U(100)) DISCRETE_OUTPUT(NODE_43, 32767.0 / 5. * 35.0) diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index aab045b80f1..11eb44496d6 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -1709,7 +1709,7 @@ static DISCRETE_SOUND_START( konami_sound ) /* belongs here. */ /* Input impedance of a M51516L is typically 30k (datasheet) */ - DISCRETE_CRFILTER(NODE_40,1,NODE_30,RES_K(30),CAP_U(0.15)) + DISCRETE_CRFILTER(NODE_40,NODE_30,RES_K(30),CAP_U(0.15)) DISCRETE_OUTPUT(NODE_40, 10.0 ) diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c index 1a95160adb8..12d3f215c87 100644 --- a/src/mame/drivers/ironhors.c +++ b/src/mame/drivers/ironhors.c @@ -310,7 +310,7 @@ static DISCRETE_SOUND_START( ironhors ) DISCRETE_MIXER3(NODE_30, 1, NODE_21, NODE_22, NODE_23, &ironhors_mixer_desc) - DISCRETE_RCFILTER(NODE_31,1,NODE_04, RES_K(1), CAP_N(33) ) + DISCRETE_RCFILTER(NODE_31,NODE_04, RES_K(1), CAP_N(33) ) DISCRETE_MIXER2(NODE_33, 1, NODE_30, NODE_31, &ironhors_mixer_desc_final) DISCRETE_OUTPUT(NODE_33, 5.0 ) -- cgit v1.2.3