diff --git a/src/emu/sound/disc_inp.c b/src/emu/sound/disc_inp.c index 48572b6aebe..58612b234cc 100644 --- a/src/emu/sound/disc_inp.c +++ b/src/emu/sound/disc_inp.c @@ -87,6 +87,9 @@ WRITE8_HANDLER(discrete_sound_w) stream_update(info->discrete_stream); *node_data = new_data; + + /* Update the node output here so we don't have to do it each step */ + node->output[0] = *node_data * DSS_INPUT__GAIN + DSS_INPUT__OFFSET; } } else @@ -109,37 +112,29 @@ WRITE8_HANDLER(discrete_sound_w) * input[6] - * ************************************************************************/ -#define DSS_ADJUSTMENT__ENABLE (*(node->input[0])) -#define DSS_ADJUSTMENT__MIN (*(node->input[1])) -#define DSS_ADJUSTMENT__MAX (*(node->input[2])) -#define DSS_ADJUSTMENT__LOG (*(node->input[3])) -#define DSS_ADJUSTMENT__PORT (*(node->input[4])) -#define DSS_ADJUSTMENT__PMIN (*(node->input[5])) -#define DSS_ADJUSTMENT__PMAX (*(node->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])) static void dss_adjustment_step(node_description *node) { - if (DSS_ADJUSTMENT__ENABLE) - { - struct dss_adjustment_context *context = node->context; - INT32 rawportval = input_port_read_direct(context->port); + struct dss_adjustment_context *context = node->context; + INT32 rawportval = input_port_read_direct(context->port); - /* only recompute if the value changed from last time */ - if (rawportval != context->lastpval) - { - double portval = (double)(rawportval - context->pmin) * context->pscale; - double scaledval = portval * context->scale + context->min; - - context->lastpval = rawportval; - if (DSS_ADJUSTMENT__LOG == 0) - node->output[0] = scaledval; - else - node->output[0] = pow(10, scaledval); - } - } - else + /* only recompute if the value changed from last time */ + if (rawportval != context->lastpval) { - node->output[0] = 0; + double portval = (double)(rawportval - context->pmin) * context->pscale; + double scaledval = portval * context->scale + context->min; + + context->lastpval = rawportval; + if (DSS_ADJUSTMENT__LOG == 0) + node->output[0] = scaledval; + else + node->output[0] = pow(10, scaledval); } } @@ -191,7 +186,7 @@ static void dss_adjustment_reset(node_description *node) ************************************************************************/ #define DSS_CONSTANT__INIT (*(node->input[0])) -static void dss_constant_step(node_description *node) +static void dss_constant_reset(node_description *node) { node->output[0]= DSS_CONSTANT__INIT; } @@ -207,13 +202,6 @@ static void dss_constant_step(node_description *node) * input[3] - Current data value * ************************************************************************/ -static void dss_input_step(node_description *node) -{ - UINT8 *node_data = node->context; - - node->output[0] = *node_data * DSS_INPUT__GAIN + DSS_INPUT__OFFSET; -} - static void dss_input_reset(node_description *node) { UINT8 *node_data = node->context; @@ -231,7 +219,7 @@ static void dss_input_reset(node_description *node) *node_data = (DSS_INPUT__INIT == 0) ? 1 : 0; break; } - dss_input_step(node); + node->output[0] = *node_data * DSS_INPUT__GAIN + DSS_INPUT__OFFSET; } static void dss_input_pulse_step(node_description *node) diff --git a/src/emu/sound/discrete.c b/src/emu/sound/discrete.c index 15fbdabb737..07dfb18dfd4 100644 --- a/src/emu/sound/discrete.c +++ b/src/emu/sound/discrete.c @@ -169,10 +169,10 @@ static const discrete_module module_list[] = /* from disc_inp.c */ { DSS_ADJUSTMENT ,"DSS_ADJUSTMENT" , 1 ,sizeof(struct dss_adjustment_context) ,dss_adjustment_reset ,dss_adjustment_step }, - { DSS_CONSTANT ,"DSS_CONSTANT" , 1 ,0 ,NULL ,dss_constant_step }, - { DSS_INPUT_DATA ,"DSS_INPUT_DATA" , 1 ,sizeof(UINT8) ,dss_input_reset ,dss_input_step }, - { DSS_INPUT_LOGIC ,"DSS_INPUT_LOGIC" , 1 ,sizeof(UINT8) ,dss_input_reset ,dss_input_step }, - { DSS_INPUT_NOT ,"DSS_INPUT_NOT" , 1 ,sizeof(UINT8) ,dss_input_reset ,dss_input_step }, + { DSS_CONSTANT ,"DSS_CONSTANT" , 1 ,0 ,dss_constant_reset ,NULL }, + { DSS_INPUT_DATA ,"DSS_INPUT_DATA" , 1 ,sizeof(UINT8) ,dss_input_reset ,NULL }, + { DSS_INPUT_LOGIC ,"DSS_INPUT_LOGIC" , 1 ,sizeof(UINT8) ,dss_input_reset ,NULL }, + { DSS_INPUT_NOT ,"DSS_INPUT_NOT" , 1 ,sizeof(UINT8) ,dss_input_reset ,NULL }, { DSS_INPUT_PULSE ,"DSS_INPUT_PULSE" , 1 ,sizeof(UINT8) ,dss_input_reset ,dss_input_pulse_step }, { DSS_INPUT_STREAM,"DSS_INPUT_STREAM", 1 ,0 ,dss_input_stream_reset,dss_input_stream_step}, diff --git a/src/emu/sound/discrete.h b/src/emu/sound/discrete.h index 475a8dedddb..cb58c95e570 100644 --- a/src/emu/sound/discrete.h +++ b/src/emu/sound/discrete.h @@ -125,9 +125,9 @@ * DISCRETE_SOUND_START(STRUCTURENAME) * DISCRETE_SOUND_END * - * DISCRETE_ADJUSTMENT(NODE,ENAB,MIN,MAX,LOGLIN,PORT) - * DISCRETE_ADJUSTMENT_TAG(NODE,ENAB,MIN,MAX,LOGLIN,TAG) - * DISCRETE_ADJUSTMENTX(NODE,ENAB,MIN,MAX,LOGLIN,PORT,PMIN,PMAX) + * DISCRETE_ADJUSTMENT(NODE,MIN,MAX,LOGLIN,PORT) + * DISCRETE_ADJUSTMENT_TAG(NODE,MIN,MAX,LOGLIN,TAG) + * DISCRETE_ADJUSTMENTX(NODE,MIN,MAX,LOGLIN,PORT,PMIN,PMAX) * DISCRETE_CONSTANT(NODE,CONST0) * DISCRETE_INPUT_DATA(NODE) * DISCRETE_INPUTX_DATA(NODE,GAIN,OFFSET,INIT) @@ -272,14 +272,12 @@ * Declaration syntax * * DISCRETE_ADJUSTMENT(name of node, - * enable node or static value, * static minimum value the node can take, * static maximum value the node can take, * log/linear scale 0=Linear !0=Logarithmic, * input port number of the adjuster) * * DISCRETE_ADJUSTMENT_TAG(name of node, - * enable node or static value, * static minimum value the node can take, * static maximum value the node can take, * log/linear scale 0=Linear !0=Logarithmic, @@ -292,7 +290,7 @@ * * Example config line * - * DISCRETE_ADJUSTMENT(NODE_01,1,0.0,5.0,DISC_LINADJ,0,5) + * DISCRETE_ADJUSTMENT(NODE_01,0.0,5.0,DISC_LINADJ,0,5) * * Define an adjustment slider that takes a 0-100 input from input * port #5, scaling between 0.0 and 5.0. Adjustment scaling is Linear. @@ -3930,9 +3928,9 @@ enum #define DISCRETE_SOUND_END { NODE_00, DSS_NULL , 0, { NODE_NC }, { 0 } ,NULL ,"End Marker" } }; /* from disc_inp.c */ -#define DISCRETE_ADJUSTMENT(NODE,ENAB,MIN,MAX,LOGLIN,PORT) { NODE, DSS_ADJUSTMENT , 7, { ENAB,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { ENAB,MIN,MAX,LOGLIN,PORT,0 ,100 }, NULL , "DISCRETE_ADJUSTMENT" }, -#define DISCRETE_ADJUSTMENT_TAG(NODE,ENAB,MIN,MAX,LOGLIN,TAG) { NODE, DSS_ADJUSTMENT , 7, { ENAB,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { ENAB,MIN,MAX,LOGLIN,0 ,0 ,100 }, TAG , "DISCRETE_ADJUSTMENT_TAG" }, -#define DISCRETE_ADJUSTMENTX(NODE,ENAB,MIN,MAX,LOGLIN,PORT,PMIN,PMAX) { NODE, DSS_ADJUSTMENT , 7, { ENAB,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { ENAB,MIN,MAX,LOGLIN,PORT,PMIN,PMAX }, NULL , "DISCRETE_ADJUSTMENTX" }, +#define DISCRETE_ADJUSTMENT(NODE,MIN,MAX,LOGLIN,PORT) { NODE, DSS_ADJUSTMENT , 7, { NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { MIN,MAX,LOGLIN,PORT,0 ,100 }, NULL , "DISCRETE_ADJUSTMENT" }, +#define DISCRETE_ADJUSTMENT_TAG(NODE,MIN,MAX,LOGLIN,TAG) { NODE, DSS_ADJUSTMENT , 7, { NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { MIN,MAX,LOGLIN,0 ,0 ,100 }, TAG , "DISCRETE_ADJUSTMENT_TAG" }, +#define DISCRETE_ADJUSTMENTX(NODE,MIN,MAX,LOGLIN,PORT,PMIN,PMAX) { NODE, DSS_ADJUSTMENT , 7, { NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC,NODE_NC }, { MIN,MAX,LOGLIN,PORT,PMIN,PMAX }, NULL , "DISCRETE_ADJUSTMENTX" }, #define DISCRETE_CONSTANT(NODE,CONST) { NODE, DSS_CONSTANT , 1, { NODE_NC }, { CONST } ,NULL ,"Constant" }, #define DISCRETE_INPUT_DATA(NODE) { NODE, DSS_INPUT_DATA , 3, { NODE_NC,NODE_NC,NODE_NC }, { 1,0,0 }, NULL, "Input Data" }, #define DISCRETE_INPUTX_DATA(NODE,GAIN,OFFSET,INIT) { NODE, DSS_INPUT_DATA , 3, { NODE_NC,NODE_NC,NODE_NC }, { GAIN,OFFSET,INIT }, NULL, "InputX Data" }, diff --git a/src/mame/audio/8080bw.c b/src/mame/audio/8080bw.c index 058c365eb3e..5976f08a97d 100644 --- a/src/mame/audio/8080bw.c +++ b/src/mame/audio/8080bw.c @@ -429,10 +429,10 @@ DISCRETE_SOUND_START(polaris) /* We will cheat and just use the controls to scale the amplitude. */ /* It is the same as taking the (0 to 50k)/50k */ - DISCRETE_ADJUSTMENT_TAG(POLARIS_ADJ_VR1, 1, 0, 1, DISC_LINADJ, "VR1") - DISCRETE_ADJUSTMENT_TAG(POLARIS_ADJ_VR2, 1, 0, 1, DISC_LINADJ, "VR2") + DISCRETE_ADJUSTMENT_TAG(POLARIS_ADJ_VR1, 0, 1, DISC_LINADJ, "VR1") + DISCRETE_ADJUSTMENT_TAG(POLARIS_ADJ_VR2, 0, 1, DISC_LINADJ, "VR2") /* Extra cheating for VR3. We will include the resistor scaling. */ - DISCRETE_ADJUSTMENT_TAG(POLARIS_ADJ_VR3, 1, 0, 0.5376, DISC_LINADJ, "VR3") + DISCRETE_ADJUSTMENT_TAG(POLARIS_ADJ_VR3, 0, 0.5376, DISC_LINADJ, "VR3") /****************************************************************************** * @@ -724,9 +724,9 @@ DISCRETE_SOUND_START(schaser) /* We will set them to adjust the realitive */ /* gains. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(SCHASER_VR1, 1, 0, RES_K(50)/(RES_K(50) + RES_K(470)), DISC_LINADJ, "VR1") - DISCRETE_ADJUSTMENT_TAG(SCHASER_VR2, 1, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(2)), DISC_LINADJ, "VR2") - DISCRETE_ADJUSTMENT_TAG(SCHASER_VR3, 1, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(10)), DISC_LINADJ, "VR3") + DISCRETE_ADJUSTMENT_TAG(SCHASER_VR1, 0, RES_K(50)/(RES_K(50) + RES_K(470)), DISC_LINADJ, "VR1") + DISCRETE_ADJUSTMENT_TAG(SCHASER_VR2, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(2)), DISC_LINADJ, "VR2") + DISCRETE_ADJUSTMENT_TAG(SCHASER_VR3, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(10)), DISC_LINADJ, "VR3") /************************************************/ /* Dot selection just selects between 4V and 8V */ diff --git a/src/mame/audio/canyon.c b/src/mame/audio/canyon.c index 1dbb4f4cfb8..a1684504fb2 100644 --- a/src/mame/audio/canyon.c +++ b/src/mame/audio/canyon.c @@ -123,7 +123,7 @@ DISCRETE_SOUND_START(canyon) /* 0k = 214Hz. 250k = 4416Hz */ /************************************************/ DISCRETE_RCFILTER(NODE_20, 1, CANYON_MOTOR1_DATA, 123000, 1e-6) - DISCRETE_ADJUSTMENT_TAG(NODE_21, 1, (214.0-27.0)/12/15, (4416.0-27.0)/12/15, DISC_LOGADJ, "MOTOR1") + DISCRETE_ADJUSTMENT_TAG(NODE_21, (214.0-27.0)/12/15, (4416.0-27.0)/12/15, DISC_LOGADJ, "MOTOR1") DISCRETE_MULTIPLY(NODE_22, 1, NODE_20, NODE_21) DISCRETE_MULTADD(NODE_23, 1, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */ @@ -146,7 +146,7 @@ DISCRETE_SOUND_START(canyon) /* it to sound different from motor 1. */ /************************************************/ DISCRETE_RCFILTER(NODE_40, 1, CANYON_MOTOR2_DATA, 123000, 1e-6) - DISCRETE_ADJUSTMENT_TAG(NODE_41, 1, (214.0-27.0)/12/15, (4416.0-27.0)/12/15, DISC_LOGADJ, "MOTOR2") + DISCRETE_ADJUSTMENT_TAG(NODE_41, (214.0-27.0)/12/15, (4416.0-27.0)/12/15, DISC_LOGADJ, "MOTOR2") DISCRETE_MULTIPLY(NODE_42, 1, NODE_40, NODE_41) DISCRETE_MULTADD(NODE_43, 1, NODE_42, 2, 27.0/6) /* F1 = /12*2 = /6 */ @@ -187,13 +187,13 @@ DISCRETE_SOUND_START(canyon) /* frequency, then decays at the rate set by */ /* a 68k resistor and 22uf capacitor. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_70, 1, 50000, 100000, DISC_LINADJ, "WHISTLE1") /* R59 */ + DISCRETE_ADJUSTMENT_TAG(NODE_70, 50000, 100000, DISC_LINADJ, "WHISTLE1") /* R59 */ DISCRETE_MULTADD(NODE_71, 1, CANYON_WHISTLE1_EN, 3.05-0.33, 0.33) DISCRETE_RCDISC2(NODE_72, CANYON_WHISTLE1_EN, NODE_71, 1.0, NODE_71, 68000.0, 2.2e-5) /* CV */ DISCRETE_555_ASTABLE_CV(NODE_73, CANYON_WHISTLE1_EN, 33000, NODE_70, 1e-8, NODE_72, &canyonWhistl555) DISCRETE_MULTIPLY(CANYON_WHISTLESND1, CANYON_WHISTLE1_EN, NODE_73, 519.4/3.3) - DISCRETE_ADJUSTMENT_TAG(NODE_75, 1, 50000, 100000, DISC_LINADJ, "WHISTLE2") /* R69 */ + DISCRETE_ADJUSTMENT_TAG(NODE_75, 50000, 100000, DISC_LINADJ, "WHISTLE2") /* R69 */ DISCRETE_MULTADD(NODE_76, 1, CANYON_WHISTLE2_EN, 3.05-0.33, 0.33) DISCRETE_RCDISC2(NODE_77, CANYON_WHISTLE2_EN, NODE_76, 1.0, NODE_76, 68000.0, 2.2e-5) /* CV */ DISCRETE_555_ASTABLE_CV(NODE_78, CANYON_WHISTLE2_EN, 33000, NODE_75, 1e-8, NODE_77, &canyonWhistl555) diff --git a/src/mame/audio/circus.c b/src/mame/audio/circus.c index 7c676e8bf18..3a60f24073c 100644 --- a/src/mame/audio/circus.c +++ b/src/mame/audio/circus.c @@ -124,8 +124,8 @@ DISCRETE_SOUND_START(crash) DISCRETE_INPUT_LOGIC(CRASH_MUSIC_BIT) DISCRETE_INPUT_PULSE(CRASH_BEEPER_EN, 1) - DISCRETE_ADJUSTMENT_TAG(CRASH_R63, 1, 0, 5.0*RES_K(100)/(RES_K(47+100))-0.5, DISC_LINADJ, "R63") - DISCRETE_ADJUSTMENT_TAG(CRASH_R39, 1, 0, 1, DISC_LINADJ, "R39") + DISCRETE_ADJUSTMENT_TAG(CRASH_R63, 0, 5.0*RES_K(100)/(RES_K(47+100))-0.5, DISC_LINADJ, "R63") + DISCRETE_ADJUSTMENT_TAG(CRASH_R39, 0, 1, DISC_LINADJ, "R39") /************************************************/ /* Music is just a 1 bit DAC */ diff --git a/src/mame/audio/crbaloon.c b/src/mame/audio/crbaloon.c index bd25e45f131..ed4954cca87 100644 --- a/src/mame/audio/crbaloon.c +++ b/src/mame/audio/crbaloon.c @@ -97,8 +97,8 @@ static DISCRETE_SOUND_START(crbaloon) DISCRETE_INPUT_LOGIC(CRBALOON_MUSIC_EN) DISCRETE_INPUT_DATA (CRBALOON_MUSIC_DATA) - DISCRETE_ADJUSTMENT_TAG(CRBALOON_VR2, 1, 0, 0.5, DISC_LINADJ, "VR2") - DISCRETE_ADJUSTMENT_TAG(CRBALOON_VR3, 1, 0, 1, DISC_LINADJ, "VR3") + DISCRETE_ADJUSTMENT_TAG(CRBALOON_VR2, 0, 0.5, DISC_LINADJ, "VR2") + DISCRETE_ADJUSTMENT_TAG(CRBALOON_VR3, 0, 1, DISC_LINADJ, "VR3") /************************************************ * Laugh is a VCO modulated by a constant diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c index 0cdc685ffed..2b117c20511 100644 --- a/src/mame/audio/dkong.c +++ b/src/mame/audio/dkong.c @@ -271,7 +271,7 @@ static DISCRETE_SOUND_START(dkong2b) DISCRETE_INPUT_LOGIC(DS_DAC_DISCHARGE) DISCRETE_INPUT_DATA(DS_DAC) // Mixing - DAC - DISCRETE_ADJUSTMENT_TAG(DS_ADJ_DAC, 1, 0, 1, DISC_LINADJ, "VR2") + DISCRETE_ADJUSTMENT_TAG(DS_ADJ_DAC, 0, 1, DISC_LINADJ, "VR2") /************************************************/ /* SIGNALS */ @@ -534,7 +534,7 @@ static DISCRETE_SOUND_START(radarscp) DISCRETE_INPUT_DATA(DS_DAC) // Mixing - DAC - DISCRETE_ADJUSTMENT_TAG(DS_ADJ_DAC, 1, 0, 1, DISC_LINADJ, "VR2") + DISCRETE_ADJUSTMENT_TAG(DS_ADJ_DAC, 0, 1, DISC_LINADJ, "VR2") /************************************************/ /* SIGNALS */ diff --git a/src/mame/audio/dragrace.c b/src/mame/audio/dragrace.c index 766153f0050..4fb78dbe2f6 100644 --- a/src/mame/audio/dragrace.c +++ b/src/mame/audio/dragrace.c @@ -92,7 +92,7 @@ DISCRETE_SOUND_START(dragrace) /* NOTE: freqs are ripped from Sprint for now. */ /************************************************/ DISCRETE_RCFILTER(NODE_20, 1, DRAGRACE_MOTOR1_DATA, 119898, 2.2e-6) - DISCRETE_ADJUSTMENT_TAG(NODE_21, 1, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR1") + DISCRETE_ADJUSTMENT_TAG(NODE_21, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR1") DISCRETE_MULTIPLY(NODE_22, 1, NODE_20, NODE_21) DISCRETE_MULTADD(NODE_23, 1, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */ @@ -115,7 +115,7 @@ DISCRETE_SOUND_START(dragrace) /* it to sound different from car1. */ /************************************************/ DISCRETE_RCFILTER(NODE_40, 1, DRAGRACE_MOTOR2_DATA, 119898, 2.2e-6) - DISCRETE_ADJUSTMENT_TAG(NODE_41, 1, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR2") + DISCRETE_ADJUSTMENT_TAG(NODE_41, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR2") DISCRETE_MULTIPLY(NODE_42, 1, NODE_40, NODE_41) DISCRETE_MULTADD(NODE_43, 1, NODE_42, 2, 27.0/6) /* F1 = /12*2 = /6 */ diff --git a/src/mame/audio/firetrk.c b/src/mame/audio/firetrk.c index 40ba64dc893..9610001e2a7 100644 --- a/src/mame/audio/firetrk.c +++ b/src/mame/audio/firetrk.c @@ -207,7 +207,7 @@ DISCRETE_SOUND_START(firetrk) /* drive a modulo 12 counter, with div6 & div12 */ /* summed as the output of the circuit. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_20, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_20, RES_K(260), // R26 + R27 @ max RES_K(10), // R26 + R27 @ min DISC_LOGADJ, "R27") @@ -411,7 +411,7 @@ DISCRETE_SOUND_START(superbug) /* latch (4 bit). This freqency is then used to */ /* drive a modulo 12 counter. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_20, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_20, RES_K(260), // R12 + R62 @ max RES_K(10), // R12 + R62 @ min DISC_LOGADJ, "R62") @@ -596,7 +596,7 @@ DISCRETE_SOUND_START(montecar) /* driver a modulo 12 counter, with div6, 4 & 3 */ /* summed as the output of the circuit. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_20, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_20, RES_K(260), // R87 + R89 @ max RES_K(10), // R87 + R89 @ min DISC_LOGADJ, "R89") @@ -631,7 +631,7 @@ DISCRETE_SOUND_START(montecar) /************************************************/ DISCRETE_COMP_ADDER(NODE_30, 1, MONTECAR_DRONE_LOUD_DATA, &montecar_drone_vol_res) // make sure to change the node value in the mixer table if you change this node number - DISCRETE_ADJUSTMENT_TAG(NODE_40, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_40, RES_K(260), // R85 + R88 @ max RES_K(10), // R85 + R88 @ min DISC_LOGADJ, "R88") diff --git a/src/mame/audio/hitme.c b/src/mame/audio/hitme.c index 8d93697648e..4e68d3fbd7e 100644 --- a/src/mame/audio/hitme.c +++ b/src/mame/audio/hitme.c @@ -42,7 +42,7 @@ DISCRETE_SOUND_START(hitme) DISCRETE_INPUT_PULSE(HITME_OUT1, 0) /* This represents the resistor at R3, which controls the speed of the sound effects */ - DISCRETE_ADJUSTMENT_TAG(HITME_GAME_SPEED,1,0.0,25000.0,DISC_LINADJ,"R3") + DISCRETE_ADJUSTMENT_TAG(HITME_GAME_SPEED,0.0,25000.0,DISC_LINADJ,"R3") /* The clock for the main downcounter is a "404", or LS123 retriggerable multivibrator. * It is clocked by IPH2 (8.945MHz/16 = 559kHz), then triggers a pulse which is adjustable diff --git a/src/mame/audio/mw8080bw.c b/src/mame/audio/mw8080bw.c index 5b4a6600e11..9975508fb70 100644 --- a/src/mame/audio/mw8080bw.c +++ b/src/mame/audio/mw8080bw.c @@ -749,7 +749,7 @@ static DISCRETE_SOUND_START(boothill) /* The low value of the pot is set to 75000. A real 1M pot will never go to 0 anyways. This will give the control more apparent volume range. The music way overpowers the rest of the sounds anyways. */ - DISCRETE_ADJUSTMENT_TAG(BOOTHILL_MUSIC_ADJ, 1, RES_M(1), 75000, DISC_LOGADJ, "MUSIC_ADJ") + DISCRETE_ADJUSTMENT_TAG(BOOTHILL_MUSIC_ADJ, RES_M(1), 75000, DISC_LOGADJ, "MUSIC_ADJ") /************************************************ * Tone generator @@ -942,8 +942,8 @@ static DISCRETE_SOUND_START(checkmat) /* This is needed because the original controls are infinite, but the UI only gives 100 steps. */ /* Also real variable resistors never hit 0 ohms. There is always some resistance. */ /* R309 mostly just increases the Boom clipping, making it sound bassier. */ - DISCRETE_ADJUSTMENT_TAG(CHECKMAT_R309, 1, RES_K(100), 1000, DISC_LOGADJ, "R309") - DISCRETE_ADJUSTMENT_TAG(CHECKMAT_R411, 1, RES_M(1), 1000, DISC_LOGADJ, "R411") + DISCRETE_ADJUSTMENT_TAG(CHECKMAT_R309, RES_K(100), 1000, DISC_LOGADJ, "R309") + DISCRETE_ADJUSTMENT_TAG(CHECKMAT_R411, RES_M(1), 1000, DISC_LOGADJ, "R411") /************************************************ * Boom Sound @@ -1218,7 +1218,7 @@ static DISCRETE_SOUND_START(desertgu) /* The low value of the pot is set to 75000. A real 1M pot will never go to 0 anyways. */ /* This will give the control more apparent volume range. */ /* The music way overpowers the rest of the sounds anyways. */ - DISCRETE_ADJUSTMENT_TAG(DESERTGU_MUSIC_ADJ, 1, RES_M(1), 75000, DISC_LOGADJ, "MUSIC_ADJ") + DISCRETE_ADJUSTMENT_TAG(DESERTGU_MUSIC_ADJ, RES_M(1), 75000, DISC_LOGADJ, "MUSIC_ADJ") /************************************************ * Tone generator @@ -1513,7 +1513,7 @@ static DISCRETE_SOUND_START(dplay) /* The low value of the pot is set to 1000. A real 1M pot will never go to 0 anyways. */ /* This will give the control more apparent volume range. */ /* The music way overpowers the rest of the sounds anyways. */ - DISCRETE_ADJUSTMENT_TAG(DPLAY_MUSIC_ADJ, 1, RES_M(1), 1000, DISC_LOGADJ, "MUSIC_ADJ") + DISCRETE_ADJUSTMENT_TAG(DPLAY_MUSIC_ADJ, RES_M(1), 1000, DISC_LOGADJ, "MUSIC_ADJ") /************************************************ * Music and Tone Generator @@ -1942,7 +1942,7 @@ static DISCRETE_SOUND_START(clowns) /* The low value of the pot is set to 7000. A real 1M pot will never go to 0 anyways. */ /* This will give the control more apparent volume range. */ /* The music way overpowers the rest of the sounds anyways. */ - DISCRETE_ADJUSTMENT_TAG(CLOWNS_MUSIC_ADJ, 1, RES_M(1), 7000, DISC_LOGADJ, "MUSIC_ADJ") + DISCRETE_ADJUSTMENT_TAG(CLOWNS_MUSIC_ADJ, RES_M(1), 7000, DISC_LOGADJ, "MUSIC_ADJ") /************************************************ * Tone generator diff --git a/src/mame/audio/nitedrvr.c b/src/mame/audio/nitedrvr.c index b814849a87c..bbbc2b4c6e8 100644 --- a/src/mame/audio/nitedrvr.c +++ b/src/mame/audio/nitedrvr.c @@ -80,7 +80,7 @@ DISCRETE_SOUND_START(nitedrvr) /* 0k = 214Hz. 250k = 4416Hz */ /************************************************/ DISCRETE_RCFILTER(NODE_20, 1, NITEDRVR_MOTOR_DATA, 123037, 2.2e-6) - DISCRETE_ADJUSTMENT_TAG(NODE_21, 1, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR") + DISCRETE_ADJUSTMENT_TAG(NODE_21, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, "MOTOR") DISCRETE_MULTIPLY(NODE_22, 1, NODE_20, NODE_21) DISCRETE_MULTADD(NODE_23, 1, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */ diff --git a/src/mame/audio/skydiver.c b/src/mame/audio/skydiver.c index 472297dbca6..4b2e444319c 100644 --- a/src/mame/audio/skydiver.c +++ b/src/mame/audio/skydiver.c @@ -123,14 +123,14 @@ DISCRETE_SOUND_START(skydiver) /* frequency, then decays at the rate set by */ /* a 68k resistor and 22uf capacitor. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_30, 1, 250000, 50000, DISC_LINADJ, "WHISTLE1") /* R66 */ + DISCRETE_ADJUSTMENT_TAG(NODE_30, 250000, 50000, DISC_LINADJ, "WHISTLE1") /* R66 */ DISCRETE_MULTADD(NODE_31, 1, SKYDIVER_WHISTLE1_EN, 3.05-0.33, 0.33) DISCRETE_RCDISC2(NODE_32, SKYDIVER_WHISTLE1_EN, NODE_31, 1.0, NODE_31, 68000.0, 2.2e-5) /* CV */ DISCRETE_SWITCH(NODE_33, 1, SKYDIVER_OCT1_EN, 1e-8, 1e-8 + 3.3e-9) /* Cap C73 & C58 */ DISCRETE_555_ASTABLE_CV(NODE_34, SKYDIVER_WHISTLE1_EN, 100000, NODE_30, NODE_33, NODE_32, &skydiverWhistl555) DISCRETE_MULTIPLY(SKYDIVER_WHISTLE1_SND, SKYDIVER_WHISTLE1_EN, NODE_34, 228.5/3.3) - DISCRETE_ADJUSTMENT_TAG(NODE_35, 1, 250000, 50000, DISC_LINADJ, "WHISTLE2") /* R65 */ + DISCRETE_ADJUSTMENT_TAG(NODE_35, 250000, 50000, DISC_LINADJ, "WHISTLE2") /* R65 */ DISCRETE_MULTADD(NODE_36, 1, SKYDIVER_WHISTLE2_EN, 3.05-0.33, 0.33) DISCRETE_RCDISC2(NODE_37, SKYDIVER_WHISTLE2_EN, NODE_36, 1.0, NODE_36, 68000.0, 2.2e-5) /* CV */ DISCRETE_SWITCH(NODE_38, 1, SKYDIVER_OCT2_EN, 1e-8, 1e-8 + 3.3e-9) /* Cap C72 & C59 */ diff --git a/src/mame/audio/sprint2.c b/src/mame/audio/sprint2.c index b48aba794b2..3f65907ff54 100644 --- a/src/mame/audio/sprint2.c +++ b/src/mame/audio/sprint2.c @@ -122,7 +122,7 @@ DISCRETE_SOUND_START(sprint2) /* and are output thru a DAC */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_20, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_20, RES_K(260), // R21 + R23 @ max RES_K(10), // R21 + R23 @ min DISC_LOGADJ, "MOTOR1") @@ -160,7 +160,7 @@ DISCRETE_SOUND_START(sprint2) /************************************************/ /* Car2 motor sound */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_40, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_40, RES_K(260), // R21 + R23 @ max RES_K(10), // R21 + R23 @ min DISC_LOGADJ, "MOTOR2") @@ -245,7 +245,7 @@ DISCRETE_SOUND_START(sprint1) /* and are output thru a DAC */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_20, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_20, RES_K(260), // R21 + R23 @ max RES_K(10), // R21 + R23 @ min DISC_LOGADJ, "MOTOR") @@ -370,7 +370,7 @@ DISCRETE_SOUND_START(dominos) DISCRETE_INPUT_DATA (DOMINOS_AMP_DATA) // IC C4 DISCRETE_INPUT_LOGIC(DOMINOS_ATTRACT_EN) - DISCRETE_ADJUSTMENT_TAG(DOMINOS_R23, 1, + DISCRETE_ADJUSTMENT_TAG(DOMINOS_R23, RES_K(60), // R21 + R23 @ max RES_K(10), // R21 + R23 @ min DISC_LINADJ, "R23") diff --git a/src/mame/audio/sprint4.c b/src/mame/audio/sprint4.c index f5e9426a4ae..b370af7b476 100644 --- a/src/mame/audio/sprint4.c +++ b/src/mame/audio/sprint4.c @@ -175,7 +175,6 @@ static const discrete_mixer_desc sprint4_mixer = DEFAULT_TTL_V_LOGIC_1, /* VDATA */ \ &sprint4_motor_freq_DAC) /* LADDER */ \ DISCRETE_ADJUSTMENT_TAG(SPRINT4_PLAYER_MOTOR_NODE(2, _plr), \ - 1, /* ENAB */ \ RES_K(10) + RES_K(250), /* MIN */ \ RES_K(10), /* MAX */ \ DISC_LOGADJ, /* LOGLIN */ \ diff --git a/src/mame/audio/tank8.c b/src/mame/audio/tank8.c index c424d356c78..aa94c1a8c8b 100644 --- a/src/mame/audio/tank8.c +++ b/src/mame/audio/tank8.c @@ -247,7 +247,7 @@ DISCRETE_SOUND_START(tank8) DISCRETE_ADDER2(NODE_125, 1 , NODE_122, NODE_124 ) DISCRETE_MULTIPLY(NODE_126, 1, NODE_120, NODE_125 ) DISCRETE_RCFILTER(NODE_127, 1, NODE_126, RES_K(47), CAP_U(0.1)) - DISCRETE_ADJUSTMENT_TAG(NODE_128, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_128, 1.0, // min gain of E5 1.0 + 100.0/22, // max gain of E5 = 1 + r132/r101 DISC_LINADJ, "CRASH") diff --git a/src/mame/audio/triplhnt.c b/src/mame/audio/triplhnt.c index 018d8ed0c2b..7fcab051523 100644 --- a/src/mame/audio/triplhnt.c +++ b/src/mame/audio/triplhnt.c @@ -131,7 +131,7 @@ DISCRETE_SOUND_START(triplhnt) /************************************************/ /* Bear Roar is a VCO with noise mixed in. */ /************************************************/ - DISCRETE_ADJUSTMENT_TAG(NODE_20, 1, + DISCRETE_ADJUSTMENT_TAG(NODE_20, 10000, // R86 + R88 @ 0 260000, // R86 + R88 @ max DISC_LOGADJ, "BEAR") diff --git a/src/mame/audio/vicdual.c b/src/mame/audio/vicdual.c index f23aaaf9d25..09f4cd9d21b 100644 --- a/src/mame/audio/vicdual.c +++ b/src/mame/audio/vicdual.c @@ -74,7 +74,7 @@ static DISCRETE_SOUND_START(frogs) DISCRETE_INPUT_NOT(FROGS_CAPTURE_EN) DISCRETE_INPUT_NOT(FROGS_SPLASH_EN) - DISCRETE_ADJUSTMENT_TAG(FROGS_R93, 1, RES_M(1), RES_K(10), DISC_LOGADJ, "R93") + DISCRETE_ADJUSTMENT_TAG(FROGS_R93, RES_M(1), RES_K(10), DISC_LOGADJ, "R93") DISCRETE_555_MSTABLE(NODE_30, 1, FROGS_TONGUE_EN, RES_K(100), CAP_U(1), &frogsZip555m)