summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/firetrk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/firetrk.c')
-rw-r--r--src/mame/audio/firetrk.c478
1 files changed, 239 insertions, 239 deletions
diff --git a/src/mame/audio/firetrk.c b/src/mame/audio/firetrk.c
index a8caeef5eda..d0cda3aa275 100644
--- a/src/mame/audio/firetrk.c
+++ b/src/mame/audio/firetrk.c
@@ -62,11 +62,11 @@ WRITE8_MEMBER(firetrk_state::firetrk_xtndply_w)
}
-#define FIRETRUCK_HSYNC 15750.0 /* not checked */
-#define FIRETRUCK_1V FIRETRUCK_HSYNC/2
-#define FIRETRUCK_2V FIRETRUCK_1V/2
-#define FIRETRUCK_8V FIRETRUCK_1V/8
-#define FIRETRUCK_64V FIRETRUCK_1V/64
+#define FIRETRUCK_HSYNC 15750.0 /* not checked */
+#define FIRETRUCK_1V FIRETRUCK_HSYNC/2
+#define FIRETRUCK_2V FIRETRUCK_1V/2
+#define FIRETRUCK_8V FIRETRUCK_1V/8
+#define FIRETRUCK_64V FIRETRUCK_1V/64
/************************************************************************/
/* firetrk Sound System Analog emulation by K.Wilkins Feb 2001 */
@@ -77,78 +77,78 @@ WRITE8_MEMBER(firetrk_state::firetrk_xtndply_w)
static const discrete_lfsr_desc firetrk_lfsr={
DISC_CLK_IS_FREQ,
- 16, /* Bit Length */
- 0, /* Reset Value */
- 0, /* Use Bit 0 as XOR input 0 */
- 14, /* Use Bit 14 as XOR input 1 */
- DISC_LFSR_XNOR, /* Feedback stage1 is XNOR */
- DISC_LFSR_OR, /* Feedback stage2 is just stage 1 output OR with external feed */
- DISC_LFSR_REPLACE, /* Feedback stage3 replaces the shifted register contents */
- 0x000001, /* Everything is shifted into the first bit only */
- 0, /* Output is not inverted */
- 15 /* Output bit */
+ 16, /* Bit Length */
+ 0, /* Reset Value */
+ 0, /* Use Bit 0 as XOR input 0 */
+ 14, /* Use Bit 14 as XOR input 1 */
+ DISC_LFSR_XNOR, /* Feedback stage1 is XNOR */
+ DISC_LFSR_OR, /* Feedback stage2 is just stage 1 output OR with external feed */
+ DISC_LFSR_REPLACE, /* Feedback stage3 replaces the shifted register contents */
+ 0x000001, /* Everything is shifted into the first bit only */
+ 0, /* Output is not inverted */
+ 15 /* Output bit */
};
static const discrete_dac_r1_ladder firetrk_motor_v_dac =
{
- 4, // size of ladder
- {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R24, R23, R22, R21
- 4.4, // 5V - diode junction (0.6V)
- RES_K(68), // R25
- 0, // no rGnd
- CAP_U(10) // C24
+ 4, // size of ladder
+ {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R24, R23, R22, R21
+ 4.4, // 5V - diode junction (0.6V)
+ RES_K(68), // R25
+ 0, // no rGnd
+ CAP_U(10) // C24
};
static const discrete_555_cc_desc firetrk_motor_vco =
{
DISC_555_OUT_DC | DISC_555_OUT_SQW,
- 5, // B+ voltage of 555
+ 5, // B+ voltage of 555
DEFAULT_555_VALUES,
- 0.7 // Q2 junction voltage
+ 0.7 // Q2 junction voltage
};
static const discrete_dac_r1_ladder firetrk_motor_out_dac =
{
- 4, // size of ladder
- {RES_K(10), 0,0, RES_K(10)}, // R74, -, -, R73
+ 4, // size of ladder
+ {RES_K(10), 0,0, RES_K(10)}, // R74, -, -, R73
DEFAULT_TTL_V_LOGIC_1,
- 0, // no rBias
- 0, // no rGnd
- CAP_U(0.1) // C43
+ 0, // no rBias
+ 0, // no rGnd
+ CAP_U(0.1) // C43
};
static const discrete_dac_r1_ladder firetrk_siren_cv_dac =
{
- 4, // size of ladder
- {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R46, R47, R45, R48
- 5, // 5V
- RES_K(100), // R49
- RES_K(390), // R44
- CAP_U(10) // C30
+ 4, // size of ladder
+ {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R46, R47, R45, R48
+ 5, // 5V
+ RES_K(100), // R49
+ RES_K(390), // R44
+ CAP_U(10) // C30
};
static const discrete_555_desc firetrk_siren_555 =
{
DISC_555_OUT_SQW | DISC_555_OUT_DC,
- 5, // B+ voltage of 555
+ 5, // B+ voltage of 555
DEFAULT_555_VALUES
};
static const discrete_dac_r1_ladder firetrk_bang_dac =
{
- 4, // size of ladder
- {RES_K(8.2), RES_K(3.9), RES_K(2.2), RES_K(1), 0,0,0,0}, // R37, R35, R36, R34
- 0, // no vBias
- 0, // no rBias
- 0, // no rGnd
- 0 // no smoothing cap
+ 4, // size of ladder
+ {RES_K(8.2), RES_K(3.9), RES_K(2.2), RES_K(1), 0,0,0,0}, // R37, R35, R36, R34
+ 0, // no vBias
+ 0, // no rBias
+ 0, // no rGnd
+ 0 // no smoothing cap
};
static const discrete_schmitt_osc_desc firetrk_screech_osc =
{
- RES_K(2.2), // R29
- 330, // R16
- CAP_U(2.2), // C8
+ RES_K(2.2), // R29
+ 330, // R16
+ CAP_U(2.2), // C8
DEFAULT_74LS14_VALUES,
DISC_SCHMITT_OSC_IN_IS_LOGIC | DISC_SCHMITT_OSC_ENAB_IS_NOR
};
@@ -157,26 +157,26 @@ static const discrete_mixer_desc firetrk_mixer =
{
DISC_MIXER_IS_OP_AMP,
{RES_K(4.7), RES_K(22), RES_K(31.333), RES_K(33), RES_K(10.5456), RES_K(32), RES_K(150)}, // R54, R55, R72||(R70+R71), R53, R56 + R37||R35||R36||R34, R58 + R73||R74, R52
- {0}, // No variable resistor nodes
+ {0}, // No variable resistor nodes
{CAP_U(0.22), CAP_U(0.22), CAP_U(0.01), CAP_U(0.22), CAP_U(0.22), 0, CAP_U(0.22)}, // C34, C32, C44, C35, C33, NA, C31
- 0, // No rI
- RES_K(22), // R43
- 0, // No Filter
- CAP_U(10), // C12
- 5.0 * 820 / (270 + 820), // vBias = 5V * R51/(R41+R51)
- 3400 // final gain
+ 0, // No rI
+ RES_K(22), // R43
+ 0, // No Filter
+ CAP_U(10), // C12
+ 5.0 * 820 / (270 + 820), // vBias = 5V * R51/(R41+R51)
+ 3400 // final gain
};
-#define FIRETRUCK_ATTRACT_INV NODE_09
+#define FIRETRUCK_ATTRACT_INV NODE_09
/* Nodes - Sounds */
-#define FIRETRUCK_NOISE NODE_11
-#define FIRETRUCK_MOTORSND NODE_12
-#define FIRETRUCK_HORNSND NODE_13
-#define FIRETRUCK_SIRENSND NODE_14
-#define FIRETRUCK_BANGSND NODE_15
-#define FIRETRUCK_SCREECHSND NODE_16
-#define FIRETRUCK_BELLSND NODE_17
-#define FIRETRUCK_XTNDPLYSND NODE_18
+#define FIRETRUCK_NOISE NODE_11
+#define FIRETRUCK_MOTORSND NODE_12
+#define FIRETRUCK_HORNSND NODE_13
+#define FIRETRUCK_SIRENSND NODE_14
+#define FIRETRUCK_BANGSND NODE_15
+#define FIRETRUCK_SCREECHSND NODE_16
+#define FIRETRUCK_BELLSND NODE_17
+#define FIRETRUCK_XTNDPLYSND NODE_18
DISCRETE_SOUND_START(firetrk)
/************************************************/
@@ -201,26 +201,26 @@ DISCRETE_SOUND_START(firetrk)
/* summed as the output of the circuit. */
/************************************************/
DISCRETE_ADJUSTMENT(NODE_20,
- RES_K(260), // R26 + R27 @ max
- RES_K(10), // R26 + R27 @ min
+ RES_K(260), // R26 + R27 @ max
+ RES_K(10), // R26 + R27 @ min
DISC_LOGADJ, "R27")
- DISCRETE_DAC_R1(NODE_21, // base of Q1
- FIRETRUCK_MOTOR_DATA, // IC F8, pins 2,5,6,9
+ DISCRETE_DAC_R1(NODE_21, // base of Q1
+ FIRETRUCK_MOTOR_DATA, // IC F8, pins 2,5,6,9
DEFAULT_TTL_V_LOGIC_1,
&firetrk_motor_v_dac)
- DISCRETE_555_CC(NODE_22, 1, // IC B9 pin 3, always enabled
- NODE_21, // vIn
- NODE_20, // current adjust
- CAP_U(0.01), // C25
- RES_M(1), 0, 0, // R28, no rGnd, no rDis
+ DISCRETE_555_CC(NODE_22, 1, // IC B9 pin 3, always enabled
+ NODE_21, // vIn
+ NODE_20, // current adjust
+ CAP_U(0.01), // C25
+ RES_M(1), 0, 0, // R28, no rGnd, no rDis
&firetrk_motor_vco)
- DISCRETE_COUNTER_7492(NODE_23, 1, FIRETRUCK_ATTRACT_EN, // IC A9, QB-QD
- NODE_22, DISC_CLK_ON_F_EDGE) // from IC B9, pin 3
- DISCRETE_TRANSFORM2(NODE_24, NODE_23, 0x04, "01&") // IC A9, pin 8
- DISCRETE_COUNTER(NODE_25, 1, FIRETRUCK_ATTRACT_EN, // IC A9, pin 12
- NODE_24, // from IC A9, pin 8
+ DISCRETE_COUNTER_7492(NODE_23, 1, FIRETRUCK_ATTRACT_EN, // IC A9, QB-QD
+ NODE_22, DISC_CLK_ON_F_EDGE) // from IC B9, pin 3
+ DISCRETE_TRANSFORM2(NODE_24, NODE_23, 0x04, "01&") // IC A9, pin 8
+ DISCRETE_COUNTER(NODE_25, 1, FIRETRUCK_ATTRACT_EN, // IC A9, pin 12
+ NODE_24, // from IC A9, pin 8
0, 1, 1, 0, DISC_CLK_ON_F_EDGE)
- DISCRETE_TRANSFORM3(NODE_26, NODE_23, 2, NODE_25, "01*2+") // Mix QA and QB-D together
+ DISCRETE_TRANSFORM3(NODE_26, NODE_23, 2, NODE_25, "01*2+") // Mix QA and QB-D together
DISCRETE_DAC_R1(FIRETRUCK_MOTORSND, NODE_26,
DEFAULT_TTL_V_LOGIC_1,
&firetrk_motor_out_dac)
@@ -240,15 +240,15 @@ DISCRETE_SOUND_START(firetrk)
/* 0000 = 666Hz with 35% duty cycle */
/* 1111 = 526Hz with 63% duty cycle */
/************************************************/
- DISCRETE_DAC_R1(NODE_40, // IC E9, pin 7
- FIRETRUCK_SIREN_DATA, // IC F8, pins 15,16,12,19
+ DISCRETE_DAC_R1(NODE_40, // IC E9, pin 7
+ FIRETRUCK_SIREN_DATA, // IC F8, pins 15,16,12,19
DEFAULT_TTL_V_LOGIC_1,
&firetrk_siren_cv_dac)
DISCRETE_555_ASTABLE_CV(FIRETRUCK_SIRENSND, FIRETRUCK_ATTRACT_INV,
- RES_K(2.2), // R60
- RES_K(10), // R59
- CAP_U(0.1), // C37
- NODE_40, // CV is straight from DAC because op-amp E9 is just x1 buffer
+ RES_K(2.2), // R60
+ RES_K(10), // R59
+ CAP_U(0.1), // C37
+ NODE_40, // CV is straight from DAC because op-amp E9 is just x1 buffer
&firetrk_siren_555)
/************************************************/
@@ -262,10 +262,10 @@ DISCRETE_SOUND_START(firetrk)
/************************************************/
DISCRETE_LFSR_NOISE(FIRETRUCK_NOISE, FIRETRUCK_ATTRACT_INV, FIRETRUCK_ATTRACT_INV, FIRETRUCK_2V, 1.0, 0, 0.5, &firetrk_lfsr)
- DISCRETE_SWITCH(NODE_50, 1, FIRETRUCK_NOISE, 0, // Enable gate K9
- FIRETRUCK_CRASH_DATA) // IC K9, pins 3,6,11,8
- DISCRETE_DAC_R1(FIRETRUCK_BANGSND, // Bang
- NODE_50, // from enable gates K9
+ DISCRETE_SWITCH(NODE_50, 1, FIRETRUCK_NOISE, 0, // Enable gate K9
+ FIRETRUCK_CRASH_DATA) // IC K9, pins 3,6,11,8
+ DISCRETE_DAC_R1(FIRETRUCK_BANGSND, // Bang
+ NODE_50, // from enable gates K9
DEFAULT_TTL_V_LOGIC_1,
&firetrk_bang_dac)
@@ -281,17 +281,17 @@ DISCRETE_SOUND_START(firetrk)
/* counter. */
/************************************************/
DISCRETE_RCDISC2(NODE_70, FIRETRUCK_BELL_EN,
- 4.4, 10, // Q3 instantally charges C42
- 0, RES_K(33), // discharges through R66
- CAP_U(10)) // C42
+ 4.4, 10, // Q3 instantally charges C42
+ 0, RES_K(33), // discharges through R66
+ CAP_U(10)) // C42
DISCRETE_TRANSFORM2(NODE_71, NODE_70,
- 5.0 * 680 / (RES_K(10) + 680), // vRef = 5V * R64 / (R65 + R64)
- "01<") // Output is low until vIn drops below vRef
- DISCRETE_COUNTER(NODE_72, 1, NODE_71, FIRETRUCK_HSYNC, 0, 15, 1, 0, DISC_CLK_IS_FREQ) // IC B10
+ 5.0 * 680 / (RES_K(10) + 680), // vRef = 5V * R64 / (R65 + R64)
+ "01<") // Output is low until vIn drops below vRef
+ DISCRETE_COUNTER(NODE_72, 1, NODE_71, FIRETRUCK_HSYNC, 0, 15, 1, 0, DISC_CLK_IS_FREQ) // IC B10
DISCRETE_TRANSFORM4(FIRETRUCK_BELLSND, NODE_72,
- 8, // count 0-7 allow cap voltage to output. 8-15 ground output.
- NODE_70, // scale logic to cap voltage
- RES_K(47) / (RES_K(47) + RES_K(47) + RES_K(47)), // to drop voltage per divider R72 / (R70+R71+R72)
+ 8, // count 0-7 allow cap voltage to output. 8-15 ground output.
+ NODE_70, // scale logic to cap voltage
+ RES_K(47) / (RES_K(47) + RES_K(47) + RES_K(47)), // to drop voltage per divider R72 / (R70+R71+R72)
"01<2*3*")
/************************************************/
@@ -317,47 +317,47 @@ DISCRETE_SOUND_END
static const discrete_dac_r1_ladder superbug_motor_v_dac =
{
- 4, // size of ladder
- {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R8, R9, R6, R7
- 4.4, // 5V - diode junction (0.6V)
- RES_K(68), // R10
- 0, // no rGnd
- CAP_U(10) // C20
+ 4, // size of ladder
+ {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R8, R9, R6, R7
+ 4.4, // 5V - diode junction (0.6V)
+ RES_K(68), // R10
+ 0, // no rGnd
+ CAP_U(10) // C20
};
static const discrete_555_cc_desc superbug_motor_vco =
{
DISC_555_OUT_DC | DISC_555_OUT_SQW,
- 5, // B+ voltage of 555
+ 5, // B+ voltage of 555
DEFAULT_555_VALUES,
- 0.7 // Q1 junction voltage
+ 0.7 // Q1 junction voltage
};
static const discrete_dac_r1_ladder superbug_motor_out_dac =
{
- 4, // size of ladder
- {RES_K(10), 0,0, RES_K(10)}, // R34, -, -, R32
+ 4, // size of ladder
+ {RES_K(10), 0,0, RES_K(10)}, // R34, -, -, R32
DEFAULT_TTL_V_LOGIC_1,
- 0, // no rBias
- 0, // no rGnd
- CAP_U(0.1) // C26
+ 0, // no rBias
+ 0, // no rGnd
+ CAP_U(0.1) // C26
};
static const discrete_dac_r1_ladder superbug_bang_dac =
{
- 4, // size of ladder
- {RES_K(8.2), RES_K(3.9), RES_K(2.2), RES_K(1), 0,0,0,0}, // R28, R28, R27, R26
- 0, // no vBias
- 0, // no rBias
- 0, // no rGnd
- CAP_U(0.1) // C25
+ 4, // size of ladder
+ {RES_K(8.2), RES_K(3.9), RES_K(2.2), RES_K(1), 0,0,0,0}, // R28, R28, R27, R26
+ 0, // no vBias
+ 0, // no rBias
+ 0, // no rGnd
+ CAP_U(0.1) // C25
};
static const discrete_schmitt_osc_desc superbug_screech_osc =
{
- RES_K(2.2), // R30
- 330, // R52
- CAP_U(2.2), // C27
+ RES_K(2.2), // R30
+ 330, // R52
+ CAP_U(2.2), // C27
DEFAULT_7414_VALUES,
DISC_SCHMITT_OSC_IN_IS_LOGIC | DISC_SCHMITT_OSC_ENAB_IS_NOR
};
@@ -366,24 +366,24 @@ static const discrete_mixer_desc superbug_mixer =
{
DISC_MIXER_IS_RESISTOR,
{RES_K(15), RES_K(10.5456), RES_K(33), RES_K(4.7)}, // R54, R55, R72||(R70+R71), R53, R56 + R37||R35||R36||R34, R58 + R73||R74, R52
- {0}, // No variable resistor nodes
- {0}, // No caps
- 0, // No rI
- RES_K(5), // R63
- 0, // No Filter
- CAP_U(0.1), // C35
- 0, // not used in resistor network
- 33000 // final gain
+ {0}, // No variable resistor nodes
+ {0}, // No caps
+ 0, // No rI
+ RES_K(5), // R63
+ 0, // No Filter
+ CAP_U(0.1), // C35
+ 0, // not used in resistor network
+ 33000 // final gain
};
/* Nodes - Inputs */
-#define SUPERBUG_ATTRACT_INV NODE_09
+#define SUPERBUG_ATTRACT_INV NODE_09
/* Nodes - Sounds */
-#define SUPERBUG_NOISE NODE_10
-#define SUPERBUG_MOTORSND NODE_11
-#define SUPERBUG_BANGSND NODE_12
-#define SUPERBUG_SCREECHSND NODE_13
-#define SUPERBUG_ASRSND NODE_14
+#define SUPERBUG_NOISE NODE_10
+#define SUPERBUG_MOTORSND NODE_11
+#define SUPERBUG_BANGSND NODE_12
+#define SUPERBUG_SCREECHSND NODE_13
+#define SUPERBUG_ASRSND NODE_14
DISCRETE_SOUND_START(superbug)
/************************************************/
@@ -404,28 +404,28 @@ DISCRETE_SOUND_START(superbug)
/* drive a modulo 12 counter. */
/************************************************/
DISCRETE_ADJUSTMENT(NODE_20,
- RES_K(260), // R12 + R62 @ max
- RES_K(10), // R12 + R62 @ min
+ RES_K(260), // R12 + R62 @ max
+ RES_K(10), // R12 + R62 @ min
DISC_LOGADJ, "R62")
- DISCRETE_DAC_R1(NODE_21, // base of Q1
- SUPERBUG_SPEED_DATA, // IC B5, pins 3, 14, 6, 11
+ DISCRETE_DAC_R1(NODE_21, // base of Q1
+ SUPERBUG_SPEED_DATA, // IC B5, pins 3, 14, 6, 11
DEFAULT_TTL_V_LOGIC_1,
&superbug_motor_v_dac)
- DISCRETE_555_CC(NODE_22, 1, // IC A6 pin 3, always enabled
- NODE_21, // vIn
- NODE_20, // current adjust
- CAP_U(0.01), // C21
- RES_M(3.3), 0, 0, // R11, no rGnd, no rDis
+ DISCRETE_555_CC(NODE_22, 1, // IC A6 pin 3, always enabled
+ NODE_21, // vIn
+ NODE_20, // current adjust
+ CAP_U(0.01), // C21
+ RES_M(3.3), 0, 0, // R11, no rGnd, no rDis
&superbug_motor_vco)
- DISCRETE_COUNTER_7492(NODE_23, 1, SUPERBUG_ATTRACT_EN, // IC A7, QB-QD
- NODE_22, DISC_CLK_ON_F_EDGE) // from IC A6, pin 3
- DISCRETE_TRANSFORM2(NODE_24, NODE_23, 0x04, "01&") // IC A7, pin 8-QD
- DISCRETE_TRANSFORM2(NODE_25, NODE_23, 0x01, "01&") // IC A7, pin 11-QB
- DISCRETE_LOGIC_XOR(NODE_26, NODE_24, NODE_25) // Gate A9, pin 8
- DISCRETE_COUNTER(NODE_27, 1, SUPERBUG_ATTRACT_EN, // IC A7, pin 12-QA
- NODE_26, // from IC A9, pin 8
+ DISCRETE_COUNTER_7492(NODE_23, 1, SUPERBUG_ATTRACT_EN, // IC A7, QB-QD
+ NODE_22, DISC_CLK_ON_F_EDGE) // from IC A6, pin 3
+ DISCRETE_TRANSFORM2(NODE_24, NODE_23, 0x04, "01&") // IC A7, pin 8-QD
+ DISCRETE_TRANSFORM2(NODE_25, NODE_23, 0x01, "01&") // IC A7, pin 11-QB
+ DISCRETE_LOGIC_XOR(NODE_26, NODE_24, NODE_25) // Gate A9, pin 8
+ DISCRETE_COUNTER(NODE_27, 1, SUPERBUG_ATTRACT_EN, // IC A7, pin 12-QA
+ NODE_26, // from IC A9, pin 8
0, 1, 1, 0, DISC_CLK_ON_F_EDGE)
- DISCRETE_TRANSFORM3(NODE_28, NODE_23, 2, NODE_27, "01*2+") // Mix QA and QB-D together
+ DISCRETE_TRANSFORM3(NODE_28, NODE_23, 2, NODE_27, "01*2+") // Mix QA and QB-D together
DISCRETE_DAC_R1(SUPERBUG_MOTORSND, NODE_28,
DEFAULT_TTL_V_LOGIC_1,
&superbug_motor_out_dac)
@@ -439,12 +439,12 @@ DISCRETE_SOUND_START(superbug)
/* Output is binary weighted with 4 bits of */
/* crash volume. */
/************************************************/
- DISCRETE_LFSR_NOISE(SUPERBUG_NOISE, SUPERBUG_ATTRACT_INV, SUPERBUG_ATTRACT_INV, FIRETRUCK_2V, 1.0, 0, 0.5, &firetrk_lfsr) // Same as firetrk
+ DISCRETE_LFSR_NOISE(SUPERBUG_NOISE, SUPERBUG_ATTRACT_INV, SUPERBUG_ATTRACT_INV, FIRETRUCK_2V, 1.0, 0, 0.5, &firetrk_lfsr) // Same as firetrk
- DISCRETE_SWITCH(NODE_40, 1, SUPERBUG_NOISE, 0, // Enable gate C8
- SUPERBUG_CRASH_DATA) // IC D8, pins 3,14,6,11
- DISCRETE_DAC_R1(SUPERBUG_BANGSND, // Bang
- NODE_40, // from enable gates C8
+ DISCRETE_SWITCH(NODE_40, 1, SUPERBUG_NOISE, 0, // Enable gate C8
+ SUPERBUG_CRASH_DATA) // IC D8, pins 3,14,6,11
+ DISCRETE_DAC_R1(SUPERBUG_BANGSND, // Bang
+ NODE_40, // from enable gates C8
DEFAULT_TTL_V_LOGIC_1,
&superbug_bang_dac)
@@ -477,68 +477,68 @@ DISCRETE_SOUND_END
/* Both cars use same parts for v_dac, vco and out_dac */
static const discrete_dac_r1_ladder montecar_motor_v_dac =
{
- 4, // size of ladder
- {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R44, R43, R46, R45
- 4.4, // 5V - diode junction (0.6V)
- RES_K(68), // R80
- 0, // no rGnd
- CAP_U(4.7) // C77
+ 4, // size of ladder
+ {RES_M(2.2), RES_M(1), RES_K(470), RES_K(220), 0,0,0,0}, // R44, R43, R46, R45
+ 4.4, // 5V - diode junction (0.6V)
+ RES_K(68), // R80
+ 0, // no rGnd
+ CAP_U(4.7) // C77
};
static const discrete_555_cc_desc montecar_motor_vco =
{
DISC_555_OUT_DC | DISC_555_OUT_SQW,
- 5, // B+ voltage of 555
+ 5, // B+ voltage of 555
DEFAULT_555_VALUES,
- 0.7 // Q1 junction voltage
+ 0.7 // Q1 junction voltage
};
static const discrete_dac_r1_ladder montecar_motor_out_dac =
{
- 4, // size of ladder
- {RES_K(10), RES_K(10), 0, RES_K(10)}, // R31, R30, -, R29
+ 4, // size of ladder
+ {RES_K(10), RES_K(10), 0, RES_K(10)}, // R31, R30, -, R29
DEFAULT_TTL_V_LOGIC_1,
- 0, // no rBias
- 0, // no rGnd
- CAP_U(0.1) // C53
+ 0, // no rBias
+ 0, // no rGnd
+ CAP_U(0.1) // C53
};
static const discrete_comp_adder_table montecar_drone_vol_res =
{
DISC_COMP_P_RESISTOR,
- 0, // no default
- 4, // # of resistors
- {RES_K(100.25), RES_K(47.25), RES_K(22.25), RES_K(10.25), 0,0,0,0} // R105, R104, R103, R102 (250 added to all for 4066 resistance)
+ 0, // no default
+ 4, // # of resistors
+ {RES_K(100.25), RES_K(47.25), RES_K(22.25), RES_K(10.25), 0,0,0,0} // R105, R104, R103, R102 (250 added to all for 4066 resistance)
};
static const discrete_dac_r1_ladder montecar_bang_dac =
{
- 4, // size of ladder
- {RES_K(8.2), RES_K(3.9), RES_K(2.2), RES_K(1), 0,0,0,0}, // R39, R42, R41, R40
- 0, // no vBias
- 0, // no rBias
- 0, // no rGnd
- 0 // no cSmoothing
+ 4, // size of ladder
+ {RES_K(8.2), RES_K(3.9), RES_K(2.2), RES_K(1), 0,0,0,0}, // R39, R42, R41, R40
+ 0, // no vBias
+ 0, // no rBias
+ 0, // no rGnd
+ 0 // no cSmoothing
};
static const discrete_op_amp_filt_info montecar_bang_filt =
{
- 1.0/(1.0/RES_K(8.2) + 1.0/RES_K(3.9) + 1.0/RES_K(2.2) + 1.0/RES_K(1)) + RES_K(3.3), // R39, R42, R41, R40, r82
+ 1.0/(1.0/RES_K(8.2) + 1.0/RES_K(3.9) + 1.0/RES_K(2.2) + 1.0/RES_K(1)) + RES_K(3.3), // R39, R42, R41, R40, r82
0,
- 680, // R83
+ 680, // R83
0,
- RES_K(330), // r84
- CAP_U(.1), // c79
- CAP_U(.1), // c78
+ RES_K(330), // r84
+ CAP_U(.1), // c79
+ CAP_U(.1), // c78
0,
5, 12, 0
};
static const discrete_schmitt_osc_desc montecar_screech_osc =
{
- RES_K(2.2), // R54
- 330, // R53
- CAP_U(2.2), // C57
+ RES_K(2.2), // R54
+ 330, // R53
+ CAP_U(2.2), // C57
DEFAULT_74LS14_VALUES,
DISC_SCHMITT_OSC_IN_IS_LOGIC | DISC_SCHMITT_OSC_ENAB_IS_NOR
};
@@ -547,31 +547,31 @@ static const discrete_mixer_desc montecar_mixer =
{
DISC_MIXER_IS_OP_AMP,
{RES_K(15), RES_K(33), RES_K(10), RES_K(10), RES_K(13.3333)}, // R93, R97, R96, variable , R95 + R31||R30||R29
- {0,0,0,NODE_30,0}, // Only drone has variable node
- {CAP_U(0.22), CAP_U(0.22), CAP_U(0.22), CAP_U(1), CAP_U(1)}, // C83, C84, C85, C88, C47
- RES_K(27), // R92
- RES_K(82), // R98
- 0, // No Filter
- CAP_U(0.22), // C6
- 5, // vRef
- 5000 // final gain
+ {0,0,0,NODE_30,0}, // Only drone has variable node
+ {CAP_U(0.22), CAP_U(0.22), CAP_U(0.22), CAP_U(1), CAP_U(1)}, // C83, C84, C85, C88, C47
+ RES_K(27), // R92
+ RES_K(82), // R98
+ 0, // No Filter
+ CAP_U(0.22), // C6
+ 5, // vRef
+ 5000 // final gain
};
-#define MONTECAR_ATTRACT_EN NODE_09
+#define MONTECAR_ATTRACT_EN NODE_09
/* Nodes - Sounds */
-#define MONTECAR_NOISE NODE_15
-#define MONTECAR_MOTORSND NODE_10 // MotorAud1
-#define MONTECAR_BEEPSND NODE_11
-#define MONTECAR_DRONE_MOTORSND NODE_12 // MotorAud2
-#define MONTECAR_BANGSND NODE_13
-#define MONTECAR_SCREECHSND NODE_14
+#define MONTECAR_NOISE NODE_15
+#define MONTECAR_MOTORSND NODE_10 // MotorAud1
+#define MONTECAR_BEEPSND NODE_11
+#define MONTECAR_DRONE_MOTORSND NODE_12 // MotorAud2
+#define MONTECAR_BANGSND NODE_13
+#define MONTECAR_SCREECHSND NODE_14
DISCRETE_SOUND_START(montecar)
/************************************************/
/* Input register mapping for montecar */
/************************************************/
- DISCRETE_INPUT_DATA (MONTECAR_MOTOR_DATA) // Motor 1-4
- DISCRETE_INPUT_DATA (MONTECAR_DRONE_MOTOR_DATA) // Motor 5-8
+ DISCRETE_INPUT_DATA (MONTECAR_MOTOR_DATA) // Motor 1-4
+ DISCRETE_INPUT_DATA (MONTECAR_DRONE_MOTOR_DATA) // Motor 5-8
DISCRETE_INPUTX_DATA(MONTECAR_CRASH_DATA, -1, 0x0f, 0)
DISCRETE_INPUT_LOGIC(MONTECAR_SKID_EN )
DISCRETE_INPUT_DATA (MONTECAR_DRONE_LOUD_DATA)
@@ -588,28 +588,28 @@ DISCRETE_SOUND_START(montecar)
/* summed as the output of the circuit. */
/************************************************/
DISCRETE_ADJUSTMENT(NODE_20,
- RES_K(260), // R87 + R89 @ max
- RES_K(10), // R87 + R89 @ min
+ RES_K(260), // R87 + R89 @ max
+ RES_K(10), // R87 + R89 @ min
DISC_LOGADJ, "R89")
- DISCRETE_DAC_R1(NODE_21, // base of Q7
- MONTECAR_MOTOR_DATA, // IC H8, pins 5, 2, 9, 6
+ DISCRETE_DAC_R1(NODE_21, // base of Q7
+ MONTECAR_MOTOR_DATA, // IC H8, pins 5, 2, 9, 6
DEFAULT_TTL_V_LOGIC_1,
&montecar_motor_v_dac)
- DISCRETE_555_CC(NODE_22, 1, // IC C9 pin 9
- NODE_21, // vIn
- NODE_20, // current adjust
- CAP_U(0.01), // C81
- RES_M(1), 0, 0, // R86, no rGnd, no rDis
+ DISCRETE_555_CC(NODE_22, 1, // IC C9 pin 9
+ NODE_21, // vIn
+ NODE_20, // current adjust
+ CAP_U(0.01), // C81
+ RES_M(1), 0, 0, // R86, no rGnd, no rDis
&montecar_motor_vco)
- DISCRETE_COUNTER_7492(NODE_23, 1, MONTECAR_ATTRACT_EN, // IC B/C9, QB-QD
- NODE_22, DISC_CLK_ON_F_EDGE) // from IC C9, pin 9
- DISCRETE_TRANSFORM2(NODE_24, NODE_23, 0x04, "01&") // IC B/C9, pin 8-QD
- DISCRETE_TRANSFORM2(NODE_25, NODE_23, 0x01, "01&") // IC B/C9, pin 11-QB
- DISCRETE_LOGIC_XOR(NODE_26, NODE_24, NODE_25) // Gate A9, pin 11
- DISCRETE_COUNTER(NODE_27, 1, MONTECAR_ATTRACT_EN, // IC B/C9, pin 12-QA
- NODE_26, // from IC A9, pin 11
+ DISCRETE_COUNTER_7492(NODE_23, 1, MONTECAR_ATTRACT_EN, // IC B/C9, QB-QD
+ NODE_22, DISC_CLK_ON_F_EDGE) // from IC C9, pin 9
+ DISCRETE_TRANSFORM2(NODE_24, NODE_23, 0x04, "01&") // IC B/C9, pin 8-QD
+ DISCRETE_TRANSFORM2(NODE_25, NODE_23, 0x01, "01&") // IC B/C9, pin 11-QB
+ DISCRETE_LOGIC_XOR(NODE_26, NODE_24, NODE_25) // Gate A9, pin 11
+ DISCRETE_COUNTER(NODE_27, 1, MONTECAR_ATTRACT_EN, // IC B/C9, pin 12-QA
+ NODE_26, // from IC A9, pin 11
0, 1, 1, 0, DISC_CLK_ON_F_EDGE)
- DISCRETE_TRANSFORM3(NODE_28, NODE_23, 2, NODE_27, "01*2+") // Mix QA and QB-D together
+ DISCRETE_TRANSFORM3(NODE_28, NODE_23, 2, NODE_27, "01*2+") // Mix QA and QB-D together
DISCRETE_DAC_R1(MONTECAR_MOTORSND, NODE_28,
DEFAULT_TTL_V_LOGIC_1,
&montecar_motor_out_dac)
@@ -620,31 +620,31 @@ DISCRETE_SOUND_START(montecar)
/* Also I shifted the frequencies up for it to */
/* sound different from the player's car. */
/************************************************/
- DISCRETE_COMP_ADDER(NODE_30, 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_COMP_ADDER(NODE_30, 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(NODE_40,
- RES_K(260), // R85 + R88 @ max
- RES_K(10), // R85 + R88 @ min
+ RES_K(260), // R85 + R88 @ max
+ RES_K(10), // R85 + R88 @ min
DISC_LOGADJ, "R88")
- DISCRETE_DAC_R1(NODE_41, // base of Q7
- MONTECAR_DRONE_MOTOR_DATA, // IC H8, pins 19, 16, 12, 15
+ DISCRETE_DAC_R1(NODE_41, // base of Q7
+ MONTECAR_DRONE_MOTOR_DATA, // IC H8, pins 19, 16, 12, 15
DEFAULT_TTL_V_LOGIC_1,
&montecar_motor_v_dac)
- DISCRETE_555_CC(NODE_42, 1, // IC C9 pin 5
- NODE_41, // vIn
- NODE_40, // current adjust
- CAP_U(0.01), // C80
- RES_M(1), 0, 0, // R81, no rGnd, no rDis
+ DISCRETE_555_CC(NODE_42, 1, // IC C9 pin 5
+ NODE_41, // vIn
+ NODE_40, // current adjust
+ CAP_U(0.01), // C80
+ RES_M(1), 0, 0, // R81, no rGnd, no rDis
&montecar_motor_vco)
- DISCRETE_COUNTER_7492(NODE_43, 1, MONTECAR_ATTRACT_EN, // IC A/B9, QB-QD
- NODE_42, DISC_CLK_ON_F_EDGE) // from IC C9, pin 5
- DISCRETE_TRANSFORM2(NODE_44, NODE_43, 0x04, "01&") // IC A/B9, pin 8-QD
- DISCRETE_TRANSFORM2(NODE_45, NODE_43, 0x01, "01&") // IC A/B9, pin 11-QB
- DISCRETE_LOGIC_XOR(NODE_46, NODE_44, NODE_45) // Gate A9, pin 6
- DISCRETE_COUNTER(NODE_47, 1, MONTECAR_ATTRACT_EN, // IC A/B9, pin 12-QA
- NODE_46, // from IC A9, pin 6
+ DISCRETE_COUNTER_7492(NODE_43, 1, MONTECAR_ATTRACT_EN, // IC A/B9, QB-QD
+ NODE_42, DISC_CLK_ON_F_EDGE) // from IC C9, pin 5
+ DISCRETE_TRANSFORM2(NODE_44, NODE_43, 0x04, "01&") // IC A/B9, pin 8-QD
+ DISCRETE_TRANSFORM2(NODE_45, NODE_43, 0x01, "01&") // IC A/B9, pin 11-QB
+ DISCRETE_LOGIC_XOR(NODE_46, NODE_44, NODE_45) // Gate A9, pin 6
+ DISCRETE_COUNTER(NODE_47, 1, MONTECAR_ATTRACT_EN, // IC A/B9, pin 12-QA
+ NODE_46, // from IC A9, pin 6
0, 1, 1, 0, DISC_CLK_ON_F_EDGE)
- DISCRETE_TRANSFORM3(NODE_48, NODE_43, 2, NODE_47, "01*2+") // Mix QA and QB-D together
+ DISCRETE_TRANSFORM3(NODE_48, NODE_43, 2, NODE_47, "01*2+") // Mix QA and QB-D together
DISCRETE_DAC_R1(MONTECAR_DRONE_MOTORSND, NODE_48,
DEFAULT_TTL_V_LOGIC_1,
&montecar_motor_out_dac)
@@ -658,12 +658,12 @@ DISCRETE_SOUND_START(montecar)
/* Output is binary weighted with 4 bits of */
/* crash volume. */
/************************************************/
- DISCRETE_LFSR_NOISE(MONTECAR_NOISE, MONTECAR_ATTRACT_INV, MONTECAR_ATTRACT_INV,FIRETRUCK_2V , 1.0, 0, 0.5, &firetrk_lfsr) // Same as firetrk
+ DISCRETE_LFSR_NOISE(MONTECAR_NOISE, MONTECAR_ATTRACT_INV, MONTECAR_ATTRACT_INV,FIRETRUCK_2V , 1.0, 0, 0.5, &firetrk_lfsr) // Same as firetrk
- DISCRETE_SWITCH(NODE_50, 1, MONTECAR_NOISE, 0, // Enable gate A9
- MONTECAR_CRASH_DATA) // IC J8, pins 3,6,11,14
- DISCRETE_DAC_R1(NODE_51, // Bang
- NODE_50, // from enable gates A9
+ DISCRETE_SWITCH(NODE_50, 1, MONTECAR_NOISE, 0, // Enable gate A9
+ MONTECAR_CRASH_DATA) // IC J8, pins 3,6,11,14
+ DISCRETE_DAC_R1(NODE_51, // Bang
+ NODE_50, // from enable gates A9
DEFAULT_TTL_V_LOGIC_1,
&montecar_bang_dac)
DISCRETE_OP_AMP_FILTER(MONTECAR_BANGSND, 1, NODE_51, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &montecar_bang_filt)