mirror of
https://github.com/holub/mame
synced 2025-04-24 01:11:11 +03:00
Breakout: Hooked up antenna and free game dip switch as well.
[Couriersud]
This commit is contained in:
parent
42fdc36a0b
commit
33d543883f
@ -58,13 +58,21 @@ NETLIST_START(diode_models)
|
||||
NET_MODEL(".model LedGreen D(IS=93.2p RS=42M N=4.61 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)")
|
||||
NET_MODEL(".model LedBlue D(IS=93.2p RS=42M N=7.47 BV=5 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=5 type=LED)")
|
||||
NET_MODEL(".model LedWhite D(Is=0.27n Rs=5.65 N=6.79 Cjo=42p Iave=30m Vpk=5 type=LED)")
|
||||
NET_MODEL(".model 1N4001 D(Is=14.11n N=1.984 Rs=33.89m Ikf=94.81 Xti=3 Eg=1.11 Cjo=25.89p M=.44 Vj=.3245 Fc=.5 Bv=75 Ibv=10u Tt=5.7u Iave=1 Vpk=50 mfg=GI type=silicon)")
|
||||
NETLIST_END()
|
||||
|
||||
NETLIST_START(bjt_models)
|
||||
NET_MODEL(".MODEL BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)")
|
||||
NET_MODEL(".model BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)")
|
||||
NET_MODEL(".model BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)")
|
||||
NET_MODEL(".model 2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=110 Xtb=1.5 Br=10.45 Rc=15 Cjc=66.2p Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n VCEO=45V ICrating=150M MFG=Toshiba)")
|
||||
NET_MODEL(".model 2SC1815 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)")
|
||||
NET_MODEL(".model 2N3643 NPN(IS=14.34E-15 ISE=14.34E-15 ISC=0 XTI=3 BF=255.9 BR=6.092 IKF=0.2847 IKR=0 XTB=1.5 VAF=74.03 VAR=28 VJE=0.65 VJC=0.65 RE=0.1 RC=1 RB=10 CJE=22.01E-12 CJC=7.306E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.307 NC=2 MJE=0.377 MJC=0.3416 TF=411.1E-12 TR=46.91E-9 ITF=0.6 VTF=1.7 XTF=3 EG=1.11 KF=0 AF=1 VCEO=30 ICRATING=500m MFG=NSC)")
|
||||
NET_MODEL(".model 2N3645 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)")
|
||||
// 3644 = 3645 Difference between 3644 and 3645 is voltage rating. 3644: VCBO=45, 3645: VCBO=60
|
||||
NET_MODEL(".model 2N3644 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)")
|
||||
NET_MODEL(".model BC817-25 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)")
|
||||
// 2N5190 = BC817-25
|
||||
NET_MODEL(".model 2N5190 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)")
|
||||
NETLIST_END()
|
||||
|
||||
|
||||
|
@ -91,70 +91,17 @@ static Astable555Desc b2_555_desc(OHM(560.0), M_OHM(1.8), U_FARAD(0.1));
|
||||
|
||||
static Mono555Desc c9_555_desc(OHM(47000.0), U_FARAD(1.0)); // R33, C21
|
||||
|
||||
//check these values
|
||||
//static Paddle1HorizontalDesc pad1_desc(15047.0, 47.0, &c9_555_desc);
|
||||
|
||||
static CapacitorDesc c32_desc(U_FARAD(0.1));
|
||||
static CapacitorDesc c36_desc(N_FARAD(1.0)); //0.001uF = 1nF
|
||||
static CapacitorDesc c37_desc(P_FARAD(330.0));
|
||||
|
||||
#if 0
|
||||
static BufferDesc pad_en_buf_desc(DELAY_NS(15.0), DELAY_NS(15.0)); // Prevents 12ns glitch on PAD_EN_n signal from resetting C9. TODO: is this accurate?
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
static VIDEO_DESC( breakout )
|
||||
VIDEO_RESISTANCE(1, K_OHM(0.0))
|
||||
VIDEO_RESISTANCE(2, K_OHM(3.9))
|
||||
VIDEO_RESISTANCE(3, K_OHM(3.9))
|
||||
VIDEO_RESISTANCE(4, K_OHM(3.9))
|
||||
VIDEO_RESISTANCE(5, K_OHM(3.9))
|
||||
VIDEO_RESISTANCE(6, K_OHM(3.9))
|
||||
//VIDEO_RESISTANCE(Video::HBLANK_PIN, K_OHM(0.0))
|
||||
VIDEO_ORIENTATION(ROTATE_90)
|
||||
VIDEO_CONTRAST(4.0)
|
||||
|
||||
// Values guessed based on screenshots. TODO: Make more accurate
|
||||
// X, Y, W, H, R, G, B
|
||||
VIDEO_OVERLAY( 15.570e-6, 0.0, 1.911e-6, -1.0, 0.80, 0.15, 0.05 ) // Red Bricks
|
||||
VIDEO_OVERLAY( 17.481e-6, 0.0, 1.956e-6, -1.0, 0.95, 0.65, 0.05 ) // Amber Bricks
|
||||
VIDEO_OVERLAY( 19.437e-6, 0.0, 1.956e-6, -1.0, 0.05, 0.65, 0.25 ) // Green Bricks
|
||||
VIDEO_OVERLAY( 21.393e-6, 0.0, 1.955e-6, -1.0, 0.95, 0.95, 0.20 ) // Yellow Bricks
|
||||
VIDEO_OVERLAY( 51.345e-6, 0.0, 1.956e-6, -1.0, 0.05, 0.65, 0.95 ) // Blue Paddle
|
||||
|
||||
// TODO: Different overlays for cocktail cabinet
|
||||
VIDEO_DESC_END
|
||||
|
||||
static AUDIO_DESC( breakout )
|
||||
AUDIO_RESISTANCE(1, K_OHM(47.0))
|
||||
AUDIO_RESISTANCE(2, K_OHM(47.0))
|
||||
AUDIO_RESISTANCE(3, K_OHM(47.0))
|
||||
AUDIO_RESISTANCE(4, K_OHM(47.0))
|
||||
AUDIO_GAIN(3.0)
|
||||
VIDEO_DESC_END
|
||||
#endif
|
||||
|
||||
static Mono9602Desc n8_desc(K_OHM(33.0), U_FARAD(100.0), K_OHM(5.6), P_FARAD(0)); // No capacitor on 2nd 9602
|
||||
static Mono9602Desc f3_desc(K_OHM(47.0), U_FARAD(1.0), K_OHM(47.0), U_FARAD(1.0));
|
||||
|
||||
static Mono9602Desc a7_desc(K_OHM(68.0), U_FARAD(1.0), K_OHM(22.0), U_FARAD(10.0));
|
||||
static Mono9602Desc a8_desc(K_OHM(27.0), U_FARAD(1.0), K_OHM(27.0), U_FARAD(1.0));
|
||||
|
||||
#if 0
|
||||
static Dipswitch53137Desc dipswitch1_desc("bonus_credit", "Bonus Credit", 3, "None", "100", "200", "300", "400", "500", "600", "700", "800");
|
||||
#endif
|
||||
|
||||
//static DipswitchDesc dipswitch2_desc("cabinet_type", "Cabinet Type", 0, "Normal", "Cocktail");
|
||||
//static DipswitchDesc dipswitch3_desc("coinage", "Coinage", 0, "1 Coin / 1 Credit", "1 Coin / 2 Credits");
|
||||
//static DipswitchDesc dipswitch4_desc("ball_count", "Ball Count", 0, "3", "5");
|
||||
|
||||
CIRCUIT_LAYOUT( breakout )
|
||||
#if 0
|
||||
CHIP("S1", 53137, &dipswitch1_desc)
|
||||
CHIP("S2", DIPSWITCH, &dipswitch2_desc)
|
||||
CHIP("S3", DIPSWITCH, &dipswitch3_desc)
|
||||
CHIP("S4", DIPSWITCH, &dipswitch4_desc)
|
||||
#endif
|
||||
|
||||
#if (SLOW_BUT_ACCURATE)
|
||||
SOLVER(Solver, 48000)
|
||||
@ -165,8 +112,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
PARAM(Solver.GS_THRESHOLD, 2)
|
||||
//PARAM(Solver.SOR_FACTOR, 1)
|
||||
#endif
|
||||
//CHIP("CLOCK", CLOCK_14_318_MHZ)
|
||||
MAINCLOCK(Y1, 14318000.0)
|
||||
|
||||
// DIPSWITCH - Free game
|
||||
SWITCH(S1_1)
|
||||
@ -188,17 +133,92 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
ANALOG_INPUT(V5, 5)
|
||||
ALIAS(VCC, V5)
|
||||
//#define VCC "V5", Q
|
||||
#define GNDD "GND", Q
|
||||
|
||||
//CHIP("Y1", CLOCK_14_318_MHZ) //Y1
|
||||
#define GNDD "ttllow", Q
|
||||
#define P "ttlhigh", Q
|
||||
|
||||
//----------------------------------------------------------------
|
||||
// Clock circuit
|
||||
//----------------------------------------------------------------
|
||||
#if 1 || (SLOW_BUT_ACCURATE)
|
||||
MAINCLOCK(Y1, 14318000.0)
|
||||
CHIP("F1", 9316)
|
||||
NET_C(Y1.Q, F1.2)
|
||||
|
||||
CONNECTION("F1", 14, "H1", 13)
|
||||
CONNECTION("F1", 13, "H1", 12)
|
||||
CONNECTION("F1", 15, "E1", 5)
|
||||
CONNECTION(P, "F1", 1)
|
||||
CONNECTION(P, "F1", 7)
|
||||
CONNECTION(P, "F1", 10)
|
||||
CONNECTION(GNDD, "F1", 3)
|
||||
CONNECTION(P, "F1", 4)
|
||||
CONNECTION(GNDD, "F1", 5)
|
||||
CONNECTION(GNDD, "F1", 6)
|
||||
CONNECTION("E1", 6, "F1", 9)
|
||||
|
||||
#define CKBH "F1", 13
|
||||
#define DICECLOCK "H1", 11
|
||||
#else
|
||||
/* This works with bugs. The DICECLOCK (Y2) duty cycles are out of sync.
|
||||
* Speed gain is from 50% to 60% and not what would have been expected.
|
||||
*/
|
||||
MAINCLOCK(Y1, 14318000.0 / 2.0)
|
||||
#define CKBH "Y1", Q
|
||||
CLOCK(Y2, 14318000.0 / 3.5)
|
||||
#define DICECLOCK "Y2", Q
|
||||
|
||||
NET_C(ttlhigh, H1.13)
|
||||
NET_C(ttlhigh, H1.12)
|
||||
NET_C(ttlhigh, E1.5)
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------
|
||||
// Startup / Antenna latch
|
||||
//----------------------------------------------------------------
|
||||
|
||||
TTL_INPUT(antenna, 0)
|
||||
|
||||
DIODE(CR3, "1N914")
|
||||
DIODE(CR4, "1N914")
|
||||
DIODE(CR5, "1N914")
|
||||
DIODE(CR7, "1N914")
|
||||
|
||||
QBJT_EB(Q1, "2N3644")
|
||||
QBJT_EB(Q2, "2N3643")
|
||||
QBJT_EB(Q3, "2N3643")
|
||||
CAP(C19, CAP_U(0.1))
|
||||
CAP(C16, CAP_U(0.1))
|
||||
|
||||
RES(R25, 100)
|
||||
RES(R26, 330)
|
||||
RES(R27, 100)
|
||||
RES(R31, 220)
|
||||
RES(R32, 100)
|
||||
|
||||
NET_C(GND, CR5.A, Q2.E, C16.2, R25.2, Q3.E)
|
||||
NET_C(CR5.K, Q2.B, antenna)
|
||||
NET_C(Q2.C, C16.1, R25.1, Q3.B, R27.2)
|
||||
NET_C(R27.1, CR7.A, R31.2) //CR7.K == IN
|
||||
NET_C(R31.1, Q1.C)
|
||||
NET_C(Q3.C, R26.2, CR3.A, CR4.A, E9.5) // E9.6 = Q Q3.C=QQ CR3.K = COIN*1 CR4.K = COIN*2
|
||||
NET_C(R26.1, Q1.B, C19.2, R32.2)
|
||||
NET_C(Q1.E, C19.1, R32.1, V5)
|
||||
|
||||
#define LAT_Q "E9", 6
|
||||
#define Q_n "Q3", C
|
||||
#define COIN1_n "F8", 5
|
||||
#define COIN2_n "H9", 5
|
||||
|
||||
CONNECTION("CR7", K, "D8", 11) //set
|
||||
CONNECTION("CR3", K, COIN1_n) //reset
|
||||
CONNECTION("CR4", K, COIN2_n) //reset
|
||||
|
||||
|
||||
CHIP_CAPACITOR(C32, &c32_desc)
|
||||
CHIP_CAPACITOR(C36, &c36_desc)
|
||||
CHIP_CAPACITOR(C37, &c37_desc)
|
||||
#if 0
|
||||
CHIP("PAD_EN_BUF", BUFFER, &pad_en_buf_desc)
|
||||
#endif
|
||||
|
||||
CHIP("A3", 7474)
|
||||
CHIP("A4", 7408)
|
||||
CHIP("A5", 7400)
|
||||
@ -243,7 +263,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CHIP("E8", 7474)
|
||||
CHIP("E9", 7404)
|
||||
|
||||
CHIP("F1", 9316)
|
||||
CHIP("F2", 7411)
|
||||
CHIP_9602_Mono(F3, &f3_desc)
|
||||
CHIP("F4", 7474)
|
||||
@ -315,13 +334,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
//LM380 //speaker amplifier
|
||||
//LM323 //regulator
|
||||
|
||||
#if 0
|
||||
CHIP("PAD1", PADDLE1_HORIZONTAL_INPUT, &pad1_desc)
|
||||
PADDLE_CONNECTION("PAD1", "C9")
|
||||
#endif
|
||||
|
||||
CHIP_LATCH(LATCH)
|
||||
|
||||
//HSYNC and VSYNC
|
||||
#define H1_d "L1", 14
|
||||
#define H2_d "L1", 13
|
||||
@ -380,19 +392,12 @@ CIRCUIT_LAYOUT( breakout )
|
||||
#define SCORE "D3", 5
|
||||
#define VERT_TRIG_n "H1", 8
|
||||
|
||||
#define DICECLOCK "H1", 11
|
||||
#define SCLOCK "K1", 15
|
||||
#define CKBH "F1", 13
|
||||
|
||||
#define PAD_n "K3", 8
|
||||
#define PAD_EN_n "C2", 8
|
||||
|
||||
//#define P VCC
|
||||
#define P "ttlhigh", Q
|
||||
|
||||
#define COIN "L9", 6
|
||||
#define COIN1_n "F8", 5
|
||||
#define COIN2_n "H9", 5
|
||||
#define CREDIT_1_OR_2 "L9", 3
|
||||
#define CREDIT_1_OR_2_n "F9", 8
|
||||
#define CREDIT2 "F9", 6
|
||||
@ -421,9 +426,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
#define FREE_GAME_TONE "N7", 3
|
||||
#define BONUS_COIN "L9", 11
|
||||
|
||||
//#define Q "E9", 6
|
||||
#define LAT_Q "E9", 6
|
||||
#define Q_n "LATCH", 3
|
||||
#define SBD_n "D2", 11
|
||||
|
||||
#define PLAY_CP "D2", 8
|
||||
@ -517,10 +519,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
#define RH_SIDE "H2", 3
|
||||
#define TOP_BOUND "K4", 6
|
||||
|
||||
// CONNECTION(CREDIT_1_OR_2, "CREDIT_LIGHT1", 1)
|
||||
// CONNECTION(CREDIT2, "CREDIT_LIGHT2", 1)
|
||||
// CONNECTION(SERVE_WAIT_n, "SERVE_LIGHT", 1)
|
||||
|
||||
//Audio
|
||||
CONNECTION("M9", 2, "F6", 5)
|
||||
CONNECTION("M9", 2, "F7", 15)
|
||||
@ -554,16 +552,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION("A7", 6, "B9", 4)
|
||||
CONNECTION(VB_HIT_SOUND, "B9", 5)
|
||||
|
||||
#if 0
|
||||
CONNECTION(GND, "S1", 1)
|
||||
CONNECTION(P, "S1", 2)
|
||||
CONNECTION(GND, "S1", 4)
|
||||
CONNECTION(P, "S1", 3)
|
||||
CONNECTION(GND, "S1", 12)
|
||||
CONNECTION(P, "S1", 11)
|
||||
CONNECTION(GND, "S1", 9)
|
||||
CONNECTION(P, "S1", 10)
|
||||
#endif
|
||||
NET_C(S1_1.1, GND)
|
||||
NET_C(S1_2.1, GND)
|
||||
NET_C(S1_3.1, GND)
|
||||
@ -1138,23 +1126,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(P_HIT_SOUND, "D7", 4)
|
||||
CONNECTION("B8", 15, "D7", 3)
|
||||
|
||||
//Clock Generator
|
||||
CONNECTION(CKBH, "H1", 12)
|
||||
CONNECTION("F1", 14, "H1", 13)
|
||||
CONNECTION("F1", 15, "E1", 5)
|
||||
|
||||
CONNECTION(P, "F1", 1)
|
||||
CONNECTION(P, "F1", 7)
|
||||
CONNECTION(P, "F1", 10)
|
||||
CONNECTION(GNDD, "F1", 3)
|
||||
CONNECTION(P, "F1", 4)
|
||||
CONNECTION(GNDD, "F1", 5)
|
||||
CONNECTION(GNDD, "F1", 6)
|
||||
CONNECTION("E1", 6, "F1", 9)
|
||||
|
||||
//CONNECTION("Y1", 1, "F1", 2)
|
||||
NET_C(Y1.Q, F1.2)
|
||||
|
||||
// RH and LH Sides
|
||||
CONNECTION(V128, "N4", 1)
|
||||
CONNECTION(V64, "N4", 2)
|
||||
@ -1212,25 +1183,15 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(V16_d, "J8", 14)
|
||||
CONNECTION("J8", 13, "J9", 10)
|
||||
|
||||
#if 0
|
||||
CONNECTION(P, "S3", 1)
|
||||
CONNECTION(V4_d, "S3", 2)
|
||||
CONNECTION("S3", 3, "J9", 11)
|
||||
#else
|
||||
CONNECTION(V4_d, "S3", 1)
|
||||
CONNECTION("S3", 2, "J9", 11)
|
||||
RES(R15, RES_K(1))
|
||||
NET_C(R15.1, V5)
|
||||
NET_C(R15.2, S3.2)
|
||||
#endif
|
||||
|
||||
CONNECTION("J9", 8, "L9", 5)
|
||||
CONNECTION("J9", 6, "L9", 4)
|
||||
|
||||
//COIN2 circuit
|
||||
//CONNECTION("COIN2", 1, "F9", 1)
|
||||
//CONNECTION(GNDD, "F9", 1) //TODO: coin2 not implemented
|
||||
|
||||
CONNECTION("COIN2", 2, "F9", 1)
|
||||
CONNECTION("COIN2", 1, "F9", 3)
|
||||
NET_C(COIN2.Q, GND)
|
||||
@ -1311,10 +1272,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
//TODO: hows this whole latch stuff work? what about Q_n going to COIN1_n and COIN2_n
|
||||
CONNECTION(CREDIT_1_OR_2_n, "D8", 13)
|
||||
CONNECTION(EGL, "D8", 12)
|
||||
CONNECTION("LATCH", 1, "D8", 11) //set
|
||||
CONNECTION("LATCH", 2, COIN1_n) //reset
|
||||
//CONNECTION("LATCH", 3, COIN2_n) //set //TODO: coin2 here
|
||||
CONNECTION( "LATCH", 3, "E9", 5) //output
|
||||
|
||||
|
||||
CONNECTION(LAT_Q, "D6", 1)
|
||||
@ -1608,20 +1565,8 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(PSYNC, "B9", 1)
|
||||
CONNECTION(VSYNC_n, "B9", 2)
|
||||
|
||||
#if 0
|
||||
//CONNECTION("VIDEO", 1, "E2", 11)
|
||||
CONNECTION("VIDEO", 2, PLAYFIELD)
|
||||
CONNECTION("VIDEO", 3, BSYNC)
|
||||
CONNECTION("VIDEO", 4, SCORE)
|
||||
CONNECTION("VIDEO", 5, "B9", 3)
|
||||
//CONNECTION("VIDEO", 6, P)
|
||||
|
||||
CONNECTION("VIDEO", Video::HBLANK_PIN, HSYNC)
|
||||
CONNECTION("VIDEO", Video::VBLANK_PIN, "E3", 10)
|
||||
#else
|
||||
// VIDEO SUMMING
|
||||
RES(R41, RES_K(3.9))
|
||||
//RES(R42, RES_K(3.9))
|
||||
RES(R42, RES_K(3.9))
|
||||
RES(R43, RES_K(3.9))
|
||||
RES(R51, RES_K(3.9))
|
||||
@ -1653,15 +1598,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
ALIAS(videomix, R41.1)
|
||||
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Audio Summing
|
||||
CONNECTION("AUDIO", 1, "B9", 11)
|
||||
CONNECTION("AUDIO", 2, "B9", 8)
|
||||
CONNECTION("AUDIO", 3, FREE_GAME_TONE)
|
||||
CONNECTION("AUDIO", 4, "B9", 6)
|
||||
#else
|
||||
RES(R36, RES_K(47))
|
||||
RES(R37, RES_K(47))
|
||||
RES(R38, RES_K(47))
|
||||
@ -1673,26 +1610,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
NET_C(R36.1, R37.1, R38.1, R39.1)
|
||||
ALIAS(sound, R36.1)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
// RAM access
|
||||
/*CONNECTION("LOG1", 3, H4) //A
|
||||
CONNECTION("LOG1", 4, H8) //B
|
||||
CONNECTION("LOG1", 5, H16) //C
|
||||
CONNECTION("LOG1", 6, V32) //D
|
||||
CONNECTION("LOG1", 7, V64) //E
|
||||
CONNECTION("LOG1", 8, V128) //F
|
||||
CONNECTION("LOG1", 9, V16) //G
|
||||
CONNECTION("LOG1", 10, RAM_PLAYER1) //H
|
||||
CONNECTION("LOG1", 11, H32) //I
|
||||
CONNECTION("LOG1", 12, H128) //J
|
||||
CONNECTION("LOG1", 13, "H4", 8) //K
|
||||
CONNECTION("LOG1", 14, "E1", 4) //L
|
||||
CONNECTION("LOG1", 15, "F2", 12) //M
|
||||
CONNECTION("LOG1", 16, "L3", 6)*/ //N
|
||||
#endif
|
||||
|
||||
// POTS
|
||||
POT2(POTP1, RES_K(5)) // 5k
|
||||
PARAM(POTP1.DIALLOG, 1) // Log Dial ...
|
||||
@ -1745,6 +1662,28 @@ CIRCUIT_LAYOUT( breakout )
|
||||
ALIAS(CON_CREDIT1, L9.3) // CREDIT_1_OR_2
|
||||
ALIAS(CON_CREDIT2, F9.6) // CREDIT2
|
||||
|
||||
//----------------------------------------------------------------
|
||||
// Coin Counter
|
||||
//----------------------------------------------------------------
|
||||
|
||||
CONNECTION(CSW1, "E2", 1)
|
||||
CONNECTION(CSW2, "E2", 2)
|
||||
RES(R14, 150)
|
||||
QBJT_SW(Q6, "2N5190")
|
||||
DIODE(CR8, "1N4001")
|
||||
NET_C(E2.3, R14.1)
|
||||
NET_C(R14.2, Q6.B)
|
||||
NET_C(GND, Q6.E)
|
||||
NET_C(Q6.C, CR8.A)
|
||||
NET_C(CR8.K, V5)
|
||||
ALIAS(CON_T, Q6.C)
|
||||
|
||||
// Not on PCB: Coincounter
|
||||
|
||||
RES(CC_R, 20) // this is connected
|
||||
NET_C(CC_R.1, CON_T)
|
||||
NET_C(CC_R.2, V5)
|
||||
|
||||
//----------------------------------------------------------------
|
||||
// Not connected pins
|
||||
//----------------------------------------------------------------
|
||||
@ -1759,7 +1698,6 @@ CIRCUIT_LAYOUT( breakout )
|
||||
NET_C(ttlhigh, J6.3, J6.4, J6.5, J6.6)
|
||||
|
||||
NET_C(ttlhigh, E1.9, E1.11)
|
||||
NET_C(ttlhigh, E2.1, E2.2)
|
||||
|
||||
NET_C(GND, D9.1, D9.2, D9.13, D9.3, D9.4, D9.5)
|
||||
|
||||
|
@ -95,7 +95,6 @@ public:
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_video(*this, "fixfreq"),
|
||||
|
||||
m_dac(*this, "dac") /* just to have a sound device */
|
||||
{
|
||||
}
|
||||
@ -158,12 +157,23 @@ public:
|
||||
: ttl_mono_state(mconfig, type, tag),
|
||||
m_led_serve(*this, "maincpu:led_serve"),
|
||||
m_lamp_credit1(*this, "maincpu:lamp_credit1"),
|
||||
m_lamp_credit2(*this, "maincpu:lamp_credit2")
|
||||
m_lamp_credit2(*this, "maincpu:lamp_credit2"),
|
||||
m_coin_counter(*this, "maincpu:coin_counter"),
|
||||
m_sw1_1(*this, "maincpu:sw1_1"),
|
||||
m_sw1_2(*this, "maincpu:sw1_2"),
|
||||
m_sw1_3(*this, "maincpu:sw1_3"),
|
||||
m_sw1_4(*this, "maincpu:sw1_4")
|
||||
{
|
||||
}
|
||||
required_device<netlist_mame_analog_output_t> m_led_serve;
|
||||
required_device<netlist_mame_analog_output_t> m_lamp_credit1;
|
||||
required_device<netlist_mame_analog_output_t> m_lamp_credit2;
|
||||
required_device<netlist_mame_analog_output_t> m_coin_counter;
|
||||
|
||||
required_device<netlist_mame_logic_input_t> m_sw1_1;
|
||||
required_device<netlist_mame_logic_input_t> m_sw1_2;
|
||||
required_device<netlist_mame_logic_input_t> m_sw1_3;
|
||||
required_device<netlist_mame_logic_input_t> m_sw1_4;
|
||||
|
||||
NETDEV_ANALOG_CALLBACK_MEMBER(serve_cb)
|
||||
{
|
||||
@ -180,6 +190,19 @@ public:
|
||||
output_set_value("lamp_credit2", (data < 2.0) ? 0 : 1);
|
||||
}
|
||||
|
||||
NETDEV_ANALOG_CALLBACK_MEMBER(coin_counter_cb)
|
||||
{
|
||||
coin_counter_w(machine(), 0, (data > 2.0) ? 0 : 1);
|
||||
}
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(cb_free_play)
|
||||
{
|
||||
m_sw1_1->write((newval>>0) & 1);
|
||||
m_sw1_2->write((newval>>1) & 1);
|
||||
m_sw1_3->write((newval>>2) & 1);
|
||||
m_sw1_4->write((newval>>3) & 1);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
// driver_device overrides
|
||||
@ -278,6 +301,8 @@ static INPUT_PORTS_START( breakout )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw1")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw2")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "servesw")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Antenna") NETLIST_LOGIC_PORT_CHANGED("maincpu", "antenna")
|
||||
|
||||
|
||||
PORT_START("DIPS")
|
||||
PORT_DIPNAME( 0x01, 0x00, "Balls" ) PORT_DIPLOCATION("SW4:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw4")
|
||||
@ -286,18 +311,20 @@ static INPUT_PORTS_START( breakout )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw3")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw2")
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw2")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Upright ) )
|
||||
PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:1,2,3,4") PORT_CHANGED_MEMBER(DEVICE_SELF, breakout_state, cb_free_play, 0)
|
||||
PORT_DIPSETTING( 0x00, "No Free Play" )
|
||||
PORT_DIPSETTING( 0x10, "100" )
|
||||
PORT_DIPSETTING( 0x20, "200" )
|
||||
PORT_DIPSETTING( 0x30, "300" )
|
||||
PORT_DIPSETTING( 0x40, "400" )
|
||||
PORT_DIPSETTING( 0x50, "500" )
|
||||
PORT_DIPSETTING( 0x60, "600" )
|
||||
PORT_DIPSETTING( 0x70, "700" )
|
||||
PORT_DIPSETTING( 0x80, "800" )
|
||||
|
||||
#if 0
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Antenna") NETLIST_LOGIC_PORT_CHANGED("maincpu", "antenna")
|
||||
|
||||
PORT_START("VR1")
|
||||
PORT_ADJUSTER( 50, "VR1 - 50k, Paddle 1 adjustment" ) NETLIST_ANALOG_PORT_CHANGED("maincpu", "vr0")
|
||||
PORT_START("VR2")
|
||||
PORT_ADJUSTER( 50, "VR2 - 50k, Paddle 2 adjustment" ) NETLIST_ANALOG_PORT_CHANGED("maincpu", "vr1")
|
||||
#endif
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( pong, pong_state )
|
||||
@ -340,16 +367,7 @@ static MACHINE_CONFIG_START( breakout, breakout_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
MCFG_NETLIST_SETUP(breakout)
|
||||
#if 0
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "vr0", "ic_b9_R.R")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(1.0 / 100.0 * RES_K(50), RES_K(56) )
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "vr1", "ic_a9_R.R")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(1.0 / 100.0 * RES_K(50), RES_K(56) )
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot0", "ic_b9_POT.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "ic_a9_POT.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1a", "sw1a.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1b", "sw1b.POS", 0, 0x01)
|
||||
#endif
|
||||
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "POTP1.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot2", "POTP2.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw1", "COIN1.POS", 0, 0x01)
|
||||
@ -360,9 +378,14 @@ static MACHINE_CONFIG_START( breakout, breakout_state )
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw4", "S4.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw3", "S3.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw2", "S2.POS", 0, 0x01)
|
||||
#if 0
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_1", "S1_1.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_2", "S1_2.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_3", "S1_3.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_4", "S1_4.POS", 0, 0x01)
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0, 0x01)
|
||||
#endif
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "sound", breakout_state, sound_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_vid, "fixfreq")
|
||||
|
||||
@ -371,6 +394,7 @@ static MACHINE_CONFIG_START( breakout, breakout_state )
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "led_serve", "CON_P", breakout_state, serve_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "lamp_credit1", "CON_CREDIT1", breakout_state, credit1_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "lamp_credit2", "CON_CREDIT2", breakout_state, credit2_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "coin_counter", "CON_T", breakout_state, coin_counter_cb, "")
|
||||
|
||||
/* video hardware */
|
||||
MCFG_FIXFREQ_ADD("fixfreq", "screen")
|
||||
|
Loading…
Reference in New Issue
Block a user