- Fixed a bug in pitch volume circuit

- Renamed inputs for better readability
This commit is contained in:
Couriersud 2009-08-09 15:50:00 +00:00
parent e0d1e470c0
commit c4765b716b

View File

@ -586,18 +586,18 @@ MACHINE_DRIVER_END
#define DISCRETE_BITSET(_N, _N1, _B, _OV) DISCRETE_TRANSFORM4(_N, _N1, (1 << ((_B)-1)), 0, _OV, "01&2>3*") #define DISCRETE_BITSET(_N, _N1, _B, _OV) DISCRETE_TRANSFORM4(_N, _N1, (1 << ((_B)-1)), 0, _OV, "01&2>3*")
/* 74LS259 */ /* 74LS259 */
#define GAL_9M_Q4_Q7 NODE_10 #define GAL_INP_BG_DAC NODE_10 /* at 9M Q4 to Q7 in schematics */
#define GAL_9L_Q0 NODE_20 /* FS1 */ #define GAL_INP_FS1 NODE_20 /* FS1 9L Q0 */
#define GAL_9L_Q1 NODE_21 /* FS2 */ #define GAL_INP_FS2 NODE_21 /* FS2 9L Q1 */
#define GAL_9L_Q2 NODE_22 /* FS3 */ #define GAL_INP_FS3 NODE_22 /* FS3 9L Q2 */
#define GAL_9L_Q3 NODE_23 /* HIT */ #define GAL_INP_HIT NODE_23 /* HIT 9L Q3 */
//#define GAL_9L_Q4 NODE_24 //#define GAL_9L_Q4 NODE_24
#define GAL_9L_Q5 NODE_25 /* FIRE */ #define GAL_INP_FIRE NODE_25 /* FIRE 9L Q5 */
#define GAL_9L_Q6 NODE_26 /* VOL1 */ #define GAL_INP_VOL1 NODE_26 /* VOL1 9L Q6 */
#define GAL_9L_Q7 NODE_27 /* VOL2 */ #define GAL_INP_VOL2 NODE_27 /* VOL2 9L Q7 */
#define GAL_6T NODE_28 #define GAL_INP_PITCH_HIGH NODE_28 /* at 6T in schematics */
#define TTL_OUT (4) #define TTL_OUT (4)
@ -618,7 +618,6 @@ MACHINE_DRIVER_END
#define GAL_R28 RES_K(100) #define GAL_R28 RES_K(100)
#define GAL_R29 RES_K(220) #define GAL_R29 RES_K(220)
#define GAL_R30 RES_K(10) #define GAL_R30 RES_K(10)
#define GAL_R31 RES_K(47) #define GAL_R31 RES_K(47)
#define GAL_R32 RES_K(47) #define GAL_R32 RES_K(47)
@ -693,7 +692,7 @@ static const discrete_555_desc galaxian_555_vco_desc =
static const discrete_555_desc galaxian_555_fire_vco_desc = static const discrete_555_desc galaxian_555_fire_vco_desc =
{ {
DISC_555_OUT_ENERGY | DISC_555_OUT_DC, DISC_555_OUT_DC,
5.0, 5.0,
DEFAULT_555_CHARGE, DEFAULT_555_CHARGE,
1.0 // Logic output 1.0 // Logic output
@ -730,7 +729,7 @@ static const discrete_mixer_desc galaxian_mixer_desc =
{ {
DISC_MIXER_IS_RESISTOR, DISC_MIXER_IS_RESISTOR,
{GAL_R51, 0, GAL_R50, 0, GAL_R34, GAL_R40, GAL_R43}, /* A, C, C, D */ {GAL_R51, 0, GAL_R50, 0, GAL_R34, GAL_R40, GAL_R43}, /* A, C, C, D */
{0, GAL_9L_Q6, 0, GAL_9L_Q7, 0, 0, 0}, {0, GAL_INP_VOL1, 0, GAL_INP_VOL2, 0, 0, 0},
{0,0,0,0,0,0,GAL_C26}, {0,0,0,0,0,0,GAL_C26},
0, GAL_R91, 0, GAL_R91,
0, 0,
@ -752,40 +751,40 @@ static DISCRETE_SOUND_START(galaxian)
/************************************************/ /************************************************/
/* Input register mapping for galaxian */ /* Input register mapping for galaxian */
/************************************************/ /************************************************/
DISCRETE_INPUT_DATA(GAL_9M_Q4_Q7) DISCRETE_INPUT_DATA(GAL_INP_BG_DAC)
/* FS1 to FS3 */ /* FS1 to FS3 */
DISCRETE_INPUT_LOGIC(GAL_9L_Q0) DISCRETE_INPUT_LOGIC(GAL_INP_FS1)
DISCRETE_INPUT_LOGIC(GAL_9L_Q1) DISCRETE_INPUT_LOGIC(GAL_INP_FS2)
DISCRETE_INPUT_LOGIC(GAL_9L_Q2) DISCRETE_INPUT_LOGIC(GAL_INP_FS3)
/* HIT */ /* HIT */
DISCRETE_INPUTX_DATA(GAL_9L_Q3, TTL_OUT, 0, 0) DISCRETE_INPUTX_DATA(GAL_INP_HIT, TTL_OUT, 0, 0)
/* FIRE */ /* FIRE */
DISCRETE_INPUT_LOGIC(GAL_9L_Q5) DISCRETE_INPUT_LOGIC(GAL_INP_FIRE)
/* Turns on / off resistors in mixer */ /* Turns on / off resistors in mixer */
DISCRETE_INPUTX_DATA(GAL_9L_Q6, GAL_R49, 0, 0) DISCRETE_INPUTX_DATA(GAL_INP_VOL1, GAL_R49, 0, 0)
DISCRETE_INPUTX_DATA(GAL_9L_Q7, GAL_R52, 0, 0) DISCRETE_INPUTX_DATA(GAL_INP_VOL2, GAL_R52, 0, 0)
/* Pitch */ /* Pitch */
DISCRETE_INPUT_DATA(GAL_6T) DISCRETE_INPUT_DATA(GAL_INP_PITCH_HIGH)
/************************************************/ /************************************************/
/* Background */ /* Background */
/************************************************/ /************************************************/
DISCRETE_DAC_R1(NODE_100, 1, GAL_9M_Q4_Q7, TTL_OUT, &galaxian_bck_dac) DISCRETE_DAC_R1(NODE_100, 1, GAL_INP_BG_DAC, TTL_OUT, &galaxian_bck_dac)
DISCRETE_555_CC(NODE_105, 1, NODE_100, GAL_R21, GAL_C15, 0, 0, 0, &galaxian_bck_vco) DISCRETE_555_CC(NODE_105, 1, NODE_100, GAL_R21, GAL_C15, 0, 0, 0, &galaxian_bck_vco)
// Next is mult/add opamp circuit // Next is mult/add opamp circuit
DISCRETE_MULTADD(NODE_110, 1, NODE_105, GAL_R33/RES_3_PARALLEL(GAL_R31,GAL_R32,GAL_R33), DISCRETE_MULTADD(NODE_110, 1, NODE_105, GAL_R33/RES_3_PARALLEL(GAL_R31,GAL_R32,GAL_R33),
-5.0*GAL_R33/GAL_R31) -5.0*GAL_R33/GAL_R31)
DISCRETE_CLAMP(NODE_111,1,NODE_110,0.0,5.0,0.0) DISCRETE_CLAMP(NODE_111,1,NODE_110,0.0,5.0,0.0)
// The three 555 // The three 555
DISCRETE_555_ASTABLE_CV(NODE_115, GAL_9L_Q0, GAL_R22, GAL_R23, GAL_C17, NODE_111, &galaxian_555_vco_desc) DISCRETE_555_ASTABLE_CV(NODE_115, GAL_INP_FS1, GAL_R22, GAL_R23, GAL_C17, NODE_111, &galaxian_555_vco_desc)
DISCRETE_555_ASTABLE_CV(NODE_116, GAL_9L_Q1, GAL_R25, GAL_R26, GAL_C18, NODE_111, &galaxian_555_vco_desc) DISCRETE_555_ASTABLE_CV(NODE_116, GAL_INP_FS2, GAL_R25, GAL_R26, GAL_C18, NODE_111, &galaxian_555_vco_desc)
DISCRETE_555_ASTABLE_CV(NODE_117, GAL_9L_Q2, GAL_R28, GAL_R29, GAL_C19, NODE_111, &galaxian_555_vco_desc) DISCRETE_555_ASTABLE_CV(NODE_117, GAL_INP_FS3, GAL_R28, GAL_R29, GAL_C19, NODE_111, &galaxian_555_vco_desc)
DISCRETE_MIXER3(NODE_120, 1, NODE_115, NODE_116, NODE_117, &galaxian_bck_mixer_desc) DISCRETE_MIXER3(NODE_120, 1, NODE_115, NODE_116, NODE_117, &galaxian_bck_mixer_desc)
@ -794,9 +793,9 @@ static DISCRETE_SOUND_START(galaxian)
/************************************************/ /************************************************/
/* Needs to be replaced by timer ... */ /* Needs to be replaced by timer ... */
DISCRETE_BITSET(NODE_133, GAL_6T, 1, TTL_OUT) /* QA 74393 */ DISCRETE_BITSET(NODE_133, GAL_INP_PITCH_HIGH, 1, TTL_OUT) /* QA 74393 */
DISCRETE_BITSET(NODE_134, GAL_6T, 3, TTL_OUT) /* QC 74393 */ DISCRETE_BITSET(NODE_134, GAL_INP_PITCH_HIGH, 3, TTL_OUT) /* QC 74393 */
DISCRETE_BITSET(NODE_135, GAL_6T, 4, TTL_OUT) /* QD 74393 */ DISCRETE_BITSET(NODE_135, GAL_INP_PITCH_HIGH, 4, TTL_OUT) /* QD 74393 */
/************************************************/ /************************************************/
/* HIT */ /* HIT */
@ -812,22 +811,24 @@ static DISCRETE_SOUND_START(galaxian)
/* Not 100% correct - Factor 2 to account for being always enabled */ /* Not 100% correct - Factor 2 to account for being always enabled */
DISCRETE_RCDISC5(NODE_155, 1, GAL_9L_Q3, (GAL_R35 + GAL_R36)*2, GAL_C21) DISCRETE_RCDISC5(NODE_155, 1, GAL_INP_HIT, (GAL_R35 + GAL_R36)*2, GAL_C21)
DISCRETE_MULTIPLY(NODE_156, 1, NODE_152, NODE_155) DISCRETE_MULTIPLY(NODE_156, 1, NODE_152, NODE_155)
DISCRETE_OP_AMP_FILTER(NODE_157, 1, NODE_156, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &galaxian_bandpass_desc) DISCRETE_OP_AMP_FILTER(NODE_157, 1, NODE_156, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &galaxian_bandpass_desc)
/************************************************/ /************************************************/
/* FIRE */ /* FIRE */
/************************************************/ /************************************************/
DISCRETE_LOGIC_INVERT(NODE_160, 1, GAL_9L_Q5) DISCRETE_LOGIC_INVERT(NODE_160, 1, GAL_INP_FIRE)
DISCRETE_MULTIPLY(NODE_161, 1, TTL_OUT, GAL_9L_Q5) DISCRETE_MULTIPLY(NODE_161, 1, TTL_OUT, GAL_INP_FIRE)
DISCRETE_MULTIPLY(NODE_162, 1, TTL_OUT, NODE_160) // inverted DISCRETE_MULTIPLY(NODE_162, 1, TTL_OUT, NODE_160) // inverted
DISCRETE_RCFILTER(NODE_163, 1, NODE_162, GAL_R47, GAL_C28) DISCRETE_RCFILTER(NODE_163, 1, NODE_162, GAL_R47, GAL_C28)
/* Mix noise and 163 */ /* Mix noise and 163 */
DISCRETE_MULTIPLY(NODE_164, 1, TTL_OUT, NODE_152) DISCRETE_TRANSFORM5(NODE_167, NODE_152, TTL_OUT, 1.0/GAL_R46, NODE_163, 1.0/GAL_R48,
DISCRETE_MULTIPLY(NODE_165, 1, 1.0/GAL_R46, NODE_164) "01*2*34*+" )
DISCRETE_MULTIPLY(NODE_166, 1, 1.0/GAL_R48, NODE_163) //DISCRETE_MULTIPLY(NODE_164, 1, TTL_OUT, NODE_152)
DISCRETE_ADDER2(NODE_167, 1, NODE_165, NODE_166) //DISCRETE_MULTIPLY(NODE_165, 1, 1.0/GAL_R46, NODE_164)
//DISCRETE_MULTIPLY(NODE_166, 1, 1.0/GAL_R48, NODE_163)
//DISCRETE_ADDER2(NODE_167, 1, NODE_165, NODE_166)
DISCRETE_MULTIPLY(NODE_168, 1, RES_2_PARALLEL(GAL_R46, GAL_R48), NODE_167) DISCRETE_MULTIPLY(NODE_168, 1, RES_2_PARALLEL(GAL_R46, GAL_R48), NODE_167)
DISCRETE_RCDISC5(NODE_170, 1, NODE_161, (GAL_R41)*2, GAL_C25) DISCRETE_RCDISC5(NODE_170, 1, NODE_161, (GAL_R41)*2, GAL_C25)
@ -843,7 +844,6 @@ static DISCRETE_SOUND_START(galaxian)
DISCRETE_OUTPUT(NODE_280, 32767.0/5.0*1.5) DISCRETE_OUTPUT(NODE_280, 32767.0/5.0*1.5)
//DISCRETE_WAVELOG2(GAL_9L_Q3, 10000, NODE_156, 10000)
DISCRETE_SOUND_END DISCRETE_SOUND_END
static UINT8 lfo_val; static UINT8 lfo_val;
@ -859,7 +859,7 @@ static TIMER_CALLBACK( pitch_callback )
pitch_h++; pitch_h++;
if (pitch_h > 15) if (pitch_h > 15)
pitch_h = 0; pitch_h = 0;
discrete_sound_w(device, GAL_6T, pitch_h ); discrete_sound_w(device, GAL_INP_PITCH_HIGH, pitch_h );
} }
static SOUND_START(galaxian) static SOUND_START(galaxian)
@ -879,29 +879,29 @@ WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w )
if (lfo_val != lfo_val_new) if (lfo_val != lfo_val_new)
{ {
lfo_val = lfo_val_new; lfo_val = lfo_val_new;
discrete_sound_w(device, GAL_9M_Q4_Q7, lfo_val); discrete_sound_w(device, GAL_INP_BG_DAC, lfo_val);
} }
} }
WRITE8_DEVICE_HANDLER( galaxian_background_enable_w ) WRITE8_DEVICE_HANDLER( galaxian_background_enable_w )
{ {
discrete_sound_w(device, NODE_RELATIVE(GAL_9L_Q0, offset), data & 0x01); discrete_sound_w(device, NODE_RELATIVE(GAL_INP_FS1, offset), data & 0x01);
} }
WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w ) WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w )
{ {
discrete_sound_w(device, GAL_9L_Q3, data & 0x01); discrete_sound_w(device, GAL_INP_HIT, data & 0x01);
} }
WRITE8_DEVICE_HANDLER( galaxian_vol_w ) WRITE8_DEVICE_HANDLER( galaxian_vol_w )
{ {
discrete_sound_w(device, GAL_9L_Q6, data & 0x01); discrete_sound_w(device, NODE_RELATIVE(GAL_INP_VOL1,offset), data & 0x01);
} }
/* FIXME: rename to fire to be consistent */ /* FIXME: rename to fire to be consistent */
WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w ) WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w )
{ {
discrete_sound_w(device, GAL_9L_Q5, data & 0x01); discrete_sound_w(device, GAL_INP_FIRE, data & 0x01);
} }
/* FIXME: use timer ! -- IC 9J */ /* FIXME: use timer ! -- IC 9J */