summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/starshp1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/starshp1.c')
-rw-r--r--src/mame/audio/starshp1.c266
1 files changed, 133 insertions, 133 deletions
diff --git a/src/mame/audio/starshp1.c b/src/mame/audio/starshp1.c
index 55538402757..7d55483f926 100644
--- a/src/mame/audio/starshp1.c
+++ b/src/mame/audio/starshp1.c
@@ -9,92 +9,92 @@
/* voltage out for each 1/256 step of MC1408 circuit */
-#define MC1408_DAC(v_ref, r, rf) ((double)v_ref / (double)r * (double)rf / 256.0)
+#define MC1408_DAC(v_ref, r, rf) ((double)v_ref / (double)r * (double)rf / 256.0)
-#define OP_AMP_NON_INVERT_GAIN(ri, rf) ((double)rf / (double)ri + 1)
+#define OP_AMP_NON_INVERT_GAIN(ri, rf) ((double)rf / (double)ri + 1)
/* Discrete Sound Input Nodes */
/* see "starshp1.h" */
/* Nodes - Sounds */
-#define STARSHP1_PHASOR_SND NODE_13
-#define STARSHP1_NOISE_SND NODE_14
-#define STARSHP1_MOTOR_SND NODE_15
-#define STARSHP1_SL1_SND NODE_16
-#define STARSHP1_SL2_SND NODE_17
+#define STARSHP1_PHASOR_SND NODE_13
+#define STARSHP1_NOISE_SND NODE_14
+#define STARSHP1_MOTOR_SND NODE_15
+#define STARSHP1_SL1_SND NODE_16
+#define STARSHP1_SL2_SND NODE_17
/* Timing signals */
-#define STARSHP1_HSYNC 15750 /* per manual */
-#define STARSHP1_S1V STARSHP1_HSYNC / 2
-#define STARSHP1_S128V STARSHP1_S1V / 128
+#define STARSHP1_HSYNC 15750 /* per manual */
+#define STARSHP1_S1V STARSHP1_HSYNC / 2
+#define STARSHP1_S128V STARSHP1_S1V / 128
/* R/C values */
-#define STARSHP1_R4 RES_K(1)
-#define STARSHP1_R54 RES_K(47)
-#define STARSHP1_R55 RES_K(22)
-#define STARSHP1_R58 RES_K(1)
-#define STARSHP1_R59 RES_K(1)
-#define STARSHP1_R60 RES_K(6.8)
-#define STARSHP1_R61 RES_K(10)
-#define STARSHP1_R62 750
-#define STARSHP1_R63 RES_K(22)
-#define STARSHP1_R64 RES_K(10)
-#define STARSHP1_R65 RES_K(3.3)
-#define STARSHP1_R66 RES_K(33)
-#define STARSHP1_R67 RES_K(1)
-#define STARSHP1_R68 RES_K(3.3)
-#define STARSHP1_R69 RES_K(330)
-#define STARSHP1_R70 RES_K(10)
-#define STARSHP1_R71 RES_K(6.8)
-#define STARSHP1_R72 RES_K(47)
-#define STARSHP1_R74 RES_K(100)
-#define STARSHP1_R75 RES_K(47)
-#define STARSHP1_R76 RES_K(5)
-#define STARSHP1_R123 RES_K(1)
-#define STARSHP1_R124 RES_K(1)
-#define STARSHP1_R126 RES_K(1)
-#define STARSHP1_R151 RES_K(10)
-#define STARSHP1_R152 RES_K(1.5)
-#define STARSHP1_C34 CAP_U(0.1)
-#define STARSHP1_C36 CAP_U(2.2)
-#define STARSHP1_C45 CAP_U(0.1)
-#define STARSHP1_C46 CAP_U(0.1)
-#define STARSHP1_C47 CAP_U(0.015)
-#define STARSHP1_C59 CAP_U(0.22)
-#define STARSHP1_C61 CAP_U(0.01)
-#define STARSHP1_C63 CAP_U(0.1)
-#define STARSHP1_C78 CAP_U(0.1)
+#define STARSHP1_R4 RES_K(1)
+#define STARSHP1_R54 RES_K(47)
+#define STARSHP1_R55 RES_K(22)
+#define STARSHP1_R58 RES_K(1)
+#define STARSHP1_R59 RES_K(1)
+#define STARSHP1_R60 RES_K(6.8)
+#define STARSHP1_R61 RES_K(10)
+#define STARSHP1_R62 750
+#define STARSHP1_R63 RES_K(22)
+#define STARSHP1_R64 RES_K(10)
+#define STARSHP1_R65 RES_K(3.3)
+#define STARSHP1_R66 RES_K(33)
+#define STARSHP1_R67 RES_K(1)
+#define STARSHP1_R68 RES_K(3.3)
+#define STARSHP1_R69 RES_K(330)
+#define STARSHP1_R70 RES_K(10)
+#define STARSHP1_R71 RES_K(6.8)
+#define STARSHP1_R72 RES_K(47)
+#define STARSHP1_R74 RES_K(100)
+#define STARSHP1_R75 RES_K(47)
+#define STARSHP1_R76 RES_K(5)
+#define STARSHP1_R123 RES_K(1)
+#define STARSHP1_R124 RES_K(1)
+#define STARSHP1_R126 RES_K(1)
+#define STARSHP1_R151 RES_K(10)
+#define STARSHP1_R152 RES_K(1.5)
+#define STARSHP1_C34 CAP_U(0.1)
+#define STARSHP1_C36 CAP_U(2.2)
+#define STARSHP1_C45 CAP_U(0.1)
+#define STARSHP1_C46 CAP_U(0.1)
+#define STARSHP1_C47 CAP_U(0.015)
+#define STARSHP1_C59 CAP_U(0.22)
+#define STARSHP1_C61 CAP_U(0.01)
+#define STARSHP1_C63 CAP_U(0.1)
+#define STARSHP1_C78 CAP_U(0.1)
/* Convert DAC value to voltage out at IC E10, pin 4 */
-#define STARSHP1_MC1408_GAIN MC1408_DAC(5.0, STARSHP1_R4, STARSHP1_R62)
+#define STARSHP1_MC1408_GAIN MC1408_DAC(5.0, STARSHP1_R4, STARSHP1_R62)
/* Gain at IC E10, pin 12 */
-#define STARSHP1_TONE_PITCH_GAIN OP_AMP_NON_INVERT_GAIN(STARSHP1_R63, STARSHP1_R64)
+#define STARSHP1_TONE_PITCH_GAIN OP_AMP_NON_INVERT_GAIN(STARSHP1_R63, STARSHP1_R64)
-#define STARSHP1_NOISE_AMPLITUDE_GAIN RES_VOLTAGE_DIVIDER(STARSHP1_R124, STARSHP1_R123)
+#define STARSHP1_NOISE_AMPLITUDE_GAIN RES_VOLTAGE_DIVIDER(STARSHP1_R124, STARSHP1_R123)
/* tweak to apply compensation filter at pin 6 */
-#define STARSHP1_FAKE_MC3340_COMPENSATION_R RES_K(6.2)
+#define STARSHP1_FAKE_MC3340_COMPENSATION_R RES_K(6.2)
/* Discrete info structures */
static const discrete_lfsr_desc starshp1_lfsr={
DISC_CLK_IS_FREQ,
- 16, /* Bit Length */
- 0, /* Reset Value */
- 13, /* 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 */
+ 13, /* 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_555_desc starshp1_556_c10 =
{
DISC_555_OUT_ENERGY,
- 5, /* B+ voltage of 555 */
+ 5, /* B+ voltage of 555 */
DEFAULT_555_VALUES
};
@@ -123,30 +123,30 @@ static const discrete_mixer_desc starshp1_555_b10_mix_r =
static const discrete_555_desc starshp1_555_b10 =
{
DISC_555_OUT_ENERGY,
- 5, /* B+ voltage of 555 */
- NODE_50, /* charge voltage */
- DEFAULT_TTL_V_LOGIC_1 /* cheat and use and anti-alias IC A10 level */
+ 5, /* B+ voltage of 555 */
+ NODE_50, /* charge voltage */
+ DEFAULT_TTL_V_LOGIC_1 /* cheat and use and anti-alias IC A10 level */
};
static const discrete_mixer_desc starshp1_final_mix =
{
DISC_MIXER_IS_RESISTOR,
{STARSHP1_R66, STARSHP1_R126, STARSHP1_R59 + STARSHP1_R60, STARSHP1_R74, STARSHP1_R75},
- {0}, /* no resistor nodes */
+ {0}, /* no resistor nodes */
{0, STARSHP1_C78, 0, 0, 0},
0,
STARSHP1_R76,
- 0, /* no cF */
+ 0, /* no cF */
STARSHP1_C63,
- 0, /* vRef */
- 1 /* gain */
+ 0, /* vRef */
+ 1 /* gain */
};
DISCRETE_SOUND_START( starshp1 )
/************************************************
- * Input register mapping
- ************************************************/
+ * Input register mapping
+ ************************************************/
// DISCRETE_INPUTX_DATA(STARSHP1_NOISE_AMPLITUDE, STARSHP1_MC1408_GAIN * STARSHP1_NOISE_AMPLITUDE_GAIN, 0, 0)
/* Fake the MC1408, no where near correct */
DISCRETE_INPUTX_DATA(STARSHP1_NOISE_AMPLITUDE, -4.0/255, 4, 0)
@@ -158,131 +158,131 @@ DISCRETE_SOUND_START( starshp1 )
DISCRETE_INPUT_LOGIC(STARSHP1_KICKER)
DISCRETE_INPUT_LOGIC(STARSHP1_PHASOR_ON)
DISCRETE_INPUT_NOT (STARSHP1_MOLVL)
- DISCRETE_INPUT_NOT (STARSHP1_ATTRACT) /* Inverted by Q9 */
+ DISCRETE_INPUT_NOT (STARSHP1_ATTRACT) /* Inverted by Q9 */
/************************************************
- * Noise
- ************************************************/
- DISCRETE_LFSR_NOISE(NODE_20, /* IC B9, pin 13 */
- 1, /* ENAB */
- STARSHP1_KICKER, /* IC B9 & C9, pin 9 */
- STARSHP1_S1V, /* IC B9 & C9, pin 8 */
- 1, /* 1 p/p */
- 0, /* no feed */
- 1.0 / 2, /* shift to 0/1 */
+ * Noise
+ ************************************************/
+ DISCRETE_LFSR_NOISE(NODE_20, /* IC B9, pin 13 */
+ 1, /* ENAB */
+ STARSHP1_KICKER, /* IC B9 & C9, pin 9 */
+ STARSHP1_S1V, /* IC B9 & C9, pin 8 */
+ 1, /* 1 p/p */
+ 0, /* no feed */
+ 1.0 / 2, /* shift to 0/1 */
&starshp1_lfsr)
/* calculate noise level */
- DISCRETE_SWITCH( NODE_21, /* voltage at R151 & R152 junction */
+ DISCRETE_SWITCH( NODE_21, /* voltage at R151 & R152 junction */
NODE_20,
STARSHP1_NOISE_FREQ,
DEFAULT_TTL_V_LOGIC_1 * RES_VOLTAGE_DIVIDER(STARSHP1_R151, STARSHP1_R152),
DEFAULT_TTL_V_LOGIC_1)
/* fake MC3340 */
- DISCRETE_MULTIPLY( NODE_22,
+ DISCRETE_MULTIPLY( NODE_22,
NODE_21,
STARSHP1_NOISE_AMPLITUDE)
- DISCRETE_RCFILTER( NODE_23,
+ DISCRETE_RCFILTER( NODE_23,
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,
+ DISCRETE_RCFILTER( NODE_24,
NODE_22,
STARSHP1_FAKE_MC3340_COMPENSATION_R,
STARSHP1_C61 + STARSHP1_C59)
- DISCRETE_SWITCH( STARSHP1_NOISE_SND,
- 1, /* ENAB */
+ DISCRETE_SWITCH( STARSHP1_NOISE_SND,
+ 1, /* ENAB */
STARSHP1_NOISE_FREQ,
NODE_23,
NODE_24)
/************************************************
- * Phasor
- ************************************************/
- DISCRETE_555_ASTABLE(NODE_30, /* IC C10, pin 9 */
- STARSHP1_PHASOR_ON, /* RESET */
+ * Phasor
+ ************************************************/
+ DISCRETE_555_ASTABLE(NODE_30, /* IC C10, pin 9 */
+ STARSHP1_PHASOR_ON, /* RESET */
STARSHP1_R70,
STARSHP1_R69,
STARSHP1_C46,
&starshp1_556_c10)
/* compensate for internal 555 CV resistors */
- DISCRETE_MIXER2( NODE_31,
- 1, /* ENAB */
- NODE_30, /* IC C10, pin 9 */
- 5, /* 555 B+ */
+ DISCRETE_MIXER2( NODE_31,
+ 1, /* ENAB */
+ NODE_30, /* IC C10, pin 9 */
+ 5, /* 555 B+ */
&starshp1_556_c10_cv)
- DISCRETE_555_ASTABLE_CV(STARSHP1_PHASOR_SND, /* IC C10, pin 5 */
- STARSHP1_PHASOR_ON, /* RESET */
+ DISCRETE_555_ASTABLE_CV(STARSHP1_PHASOR_SND, /* IC C10, pin 5 */
+ STARSHP1_PHASOR_ON, /* RESET */
STARSHP1_R68,
STARSHP1_R67,
STARSHP1_C45,
- NODE_31, /* IC C10, pin 3 */
+ NODE_31, /* IC C10, pin 3 */
&starshp1_556_c10)
/************************************************
- * Motor
- ************************************************/
- DISCRETE_SQUAREWFIX(NODE_40, /* S128V signal */
- 1, /* ENAB */
+ * Motor
+ ************************************************/
+ DISCRETE_SQUAREWFIX(NODE_40, /* S128V signal */
+ 1, /* ENAB */
STARSHP1_S128V,
DEFAULT_TTL_V_LOGIC_1,
- 50, /* DUTY */
- DEFAULT_TTL_V_LOGIC_1 / 2, /* BIAS */
- 0) /* PHASE */
- DISCRETE_MIXER2( NODE_41, /* voltage at R54 & R55 junction */
- 1, /* ENAB */
- NODE_40, /* IC E10, pin 12 */
- 5, /* 5V to R55 */
+ 50, /* DUTY */
+ DEFAULT_TTL_V_LOGIC_1 / 2, /* BIAS */
+ 0) /* PHASE */
+ DISCRETE_MIXER2( NODE_41, /* voltage at R54 & R55 junction */
+ 1, /* ENAB */
+ NODE_40, /* IC E10, pin 12 */
+ 5, /* 5V to R55 */
&starshp1_566_a9_mix_r)
- DISCRETE_566( NODE_42, /* IC A9, pin 4 */
- STARSHP1_MOTOR_SPEED, /* IC A9, pin 5 */
+ DISCRETE_566( NODE_42, /* IC A9, pin 4 */
+ STARSHP1_MOTOR_SPEED, /* IC A9, pin 5 */
RES_2_PARALLEL(STARSHP1_R54, STARSHP1_R55),
STARSHP1_C34,
- 5, -10, NODE_41, /* VPOS,VNEG,VCHARGE */
+ 5, -10, NODE_41, /* VPOS,VNEG,VCHARGE */
DISC_566_OUT_DC | DISC_566_OUT_TRIANGLE)
DISCRETE_SWITCH(NODE_43,
- 1, /* ENAB */
- STARSHP1_MOLVL, /* SWITCH */
+ 1, /* ENAB */
+ STARSHP1_MOLVL, /* SWITCH */
STARSHP1_R59 + RES_2_PARALLEL(STARSHP1_R58, STARSHP1_R60 + STARSHP1_R76),
STARSHP1_R59 + STARSHP1_R60 + STARSHP1_R76)
DISCRETE_CRFILTER(NODE_44,
- NODE_42, /* IN0 */
- NODE_43, /* RVAL*/
+ NODE_42, /* IN0 */
+ NODE_43, /* RVAL*/
STARSHP1_C36)
- DISCRETE_SWITCH(NODE_45, /* gain affect of voltage divider */
- 1, /* ENAB */
- STARSHP1_MOLVL, /* SWITCH */
+ DISCRETE_SWITCH(NODE_45, /* gain affect of voltage divider */
+ 1, /* ENAB */
+ STARSHP1_MOLVL, /* SWITCH */
RES_VOLTAGE_DIVIDER(STARSHP1_R59, STARSHP1_R58), 1)
- DISCRETE_MULTIPLY( STARSHP1_MOTOR_SND,
+ DISCRETE_MULTIPLY( STARSHP1_MOTOR_SND,
NODE_44,
NODE_45)
/************************************************
- * SL1, SL2
- ************************************************/
- DISCRETE_MIXER2( NODE_50, /* voltage at R65 & R71 junction */
- 1, /* ENAB */
- STARSHP1_TONE_PITCH, /* IC E10, pin 12 */
- 10, /* 10V to R71 */
+ * SL1, SL2
+ ************************************************/
+ DISCRETE_MIXER2( NODE_50, /* voltage at R65 & R71 junction */
+ 1, /* ENAB */
+ STARSHP1_TONE_PITCH, /* IC E10, pin 12 */
+ 10, /* 10V to R71 */
&starshp1_555_b10_mix_r)
- DISCRETE_555_ASTABLE(NODE_51, /* IC B10, pin 3 */
- 1, /* RESET */
+ DISCRETE_555_ASTABLE(NODE_51, /* IC B10, pin 3 */
+ 1, /* RESET */
RES_2_PARALLEL(STARSHP1_R65, STARSHP1_R71),
STARSHP1_R72,
STARSHP1_C47,
&starshp1_555_b10)
/* use switch instead of logic AND, so we can switch between
- * 0V and the anti-aliased TTL level out that we set NODE_51 to. */
- DISCRETE_ONOFF( STARSHP1_SL1_SND, /* IC A10, pin 11 */
+ * 0V and the anti-aliased TTL level out that we set NODE_51 to. */
+ DISCRETE_ONOFF( STARSHP1_SL1_SND, /* IC A10, pin 11 */
STARSHP1_SL1, NODE_51)
- DISCRETE_ONOFF( STARSHP1_SL2_SND, /* IC A10, pin 8 */
+ DISCRETE_ONOFF( STARSHP1_SL2_SND, /* IC A10, pin 8 */
STARSHP1_SL2, NODE_51)
/************************************************
- * Mixing and output
- ************************************************/
- DISCRETE_MIXER5( NODE_90,
- STARSHP1_ATTRACT, /* ENAB */
+ * Mixing and output
+ ************************************************/
+ DISCRETE_MIXER5( NODE_90,
+ STARSHP1_ATTRACT, /* ENAB */
STARSHP1_PHASOR_SND,
STARSHP1_NOISE_SND,
STARSHP1_MOTOR_SND,