1 // license:BSD-3-Clause
2 // copyright-holders:Ryan Holtz
3 //
4 // Netlist for Fire One
5 //
6 // Derived from the schematics in the manual.
7 //
8 // Known problems/issues:
9 //
10 //    * Slow!
11 //
12 
13 #include "netlist/devices/net_lib.h"
14 
15 //
16 // Main netlist
17 //
18 
19 NETLIST_START(fireone)
20 	SOLVER(Solver, 48000)
21 
22 	ANALOG_INPUT(V12, 12)
23 	ANALOG_INPUT(VM12, -12)
24 	ANALOG_INPUT(V5, 5)
25 	ALIAS(VCC, V5)
26 
27 	NET_MODEL("PIT8253PORT FAMILY(TYPE=NMOS OVL=0.05 OVH=0.05 ORL=100.0 ORH=0.5k)")
28 
29 	TTL_INPUT(LTORP, 0)         // active high
30 	TTL_INPUT(LSHPHT, 0)        // active high
31 	TTL_INPUT(LBOOM, 0)         // active high
32 	TTL_INPUT(SOUND_OFF_L, 0)   // active high
33 	TTL_INPUT(SOUND_OFF_R, 0)   // active high
34 	TTL_INPUT(RTORP, 0)         // active high
35 	TTL_INPUT(RSHPHT, 0)        // active high
36 	TTL_INPUT(RBOOM, 0)         // active high
37 	TTL_INPUT(TORPCOLL, 0)      // active high
38 	TTL_INPUT(SUBENG, 0)        // active high
39 	TTL_INPUT(ALERT, 0)         // active high
40 	//TTL_INPUT(SONAR_ENABLE, 0)    // active high
41 	TTL_INPUT(SONAR_SYNC, 0)    // active low
42 
43 	LOGIC_INPUT(MUSIC_A,   0, "PIT8253PORT")
44 	LOGIC_INPUT(MUSIC_B,   0, "PIT8253PORT")
45 	LOGIC_INPUT(MUSIC_C,   0, "PIT8253PORT")
46 
47 	NET_C(VCC, LTORP.VCC, LSHPHT.VCC, LBOOM.VCC, SOUND_OFF_L.VCC, SOUND_OFF_R.VCC, RTORP.VCC, RSHPHT.VCC, RBOOM.VCC, TORPCOLL.VCC, SUBENG.VCC, ALERT.VCC, SONAR_SYNC.VCC)
48 	NET_C(GND, LTORP.GND, LSHPHT.GND, LBOOM.GND, SOUND_OFF_L.GND, SOUND_OFF_R.GND, RTORP.GND, RSHPHT.GND, RBOOM.GND, TORPCOLL.GND, SUBENG.GND, ALERT.GND, SONAR_SYNC.GND)
49 	NET_C(VCC, MUSIC_A.VCC, MUSIC_B.VCC, MUSIC_C.VCC)
50 	NET_C(GND, MUSIC_A.GND, MUSIC_B.GND, MUSIC_C.GND)
51 
52 	TTL_7406_GATE(IC27_A)
53 	TTL_7406_GATE(IC27_B)
54 	TTL_7406_GATE(IC27_C)
55 	TTL_7406_GATE(IC27_D)
56 	NET_C(VCC, IC27_A.VCC, IC27_B.VCC, IC27_C.VCC, IC27_D.VCC)
57 	NET_C(GND, IC27_A.GND, IC27_B.GND, IC27_C.GND, IC27_D.GND)
58 
59 	//CD4070_GATE(IC41_A)
60 	//CD4070_GATE(IC41_B)
61 	CD4070_GATE(IC41_C)
62 	CD4070_GATE(IC41_D)
63 	NET_C(V12, /*IC41_A.VDD, IC41_B.VDD,*/ IC41_C.VDD, IC41_D.VDD)
64 	NET_C(GND, /*IC41_A.VSS, IC41_B.VSS,*/ IC41_C.VSS, IC41_D.VSS)
65 
66 	CD4006_DIP(IC40)
67 	NET_C(V12, IC40.14)
68 	NET_C(GND, IC40.7)
69 
70 	CD4017_DIP(IC25)
71 	NET_C(V12, IC25.16)
72 	NET_C(GND, IC25.8)
73 
74 	CD4013(IC3_A)
75 	CD4013(IC3_B)
76 	NET_C(V12, IC3_A.VDD, IC3_B.VDD)
77 	NET_C(GND, IC3_A.VSS, IC3_A.SET, IC3_A.RESET, IC3_B.VSS, IC3_B.SET)
78 
79 	MC1558_DIP(IC6)
80 	NET_C(IC6.8, V12)
81 	NET_C(IC6.4, VM12)
82 
83 	MC1558_DIP(IC16)
84 	NET_C(IC16.8, V12)
85 	NET_C(IC16.4, VM12)
86 
87 	MC1558_DIP(IC17)
88 	NET_C(IC17.8, V12)
89 	NET_C(IC17.4, VM12)
90 
91 	NE555(IC29)
92 
93 	SUBMODEL(NE556_DIP, IC31)
94 	NET_C(IC31.14, V5)
95 	NET_C(IC31.7, GND)
96 
97 	MC3340_DIP(IC28)
98 	NET_C(IC28.8, V12)
99 	NET_C(IC28.3, GND)
100 
101 	MC3340_DIP(IC30)
102 	NET_C(IC30.8, V12)
103 	NET_C(IC30.3, GND)
104 
105 	SUBMODEL(ICL8038_DIP, IC15)
106 	NET_C(V12, IC15.6)
107 	NET_C(GND, IC15.11)
108 
109 	LM3900(IC2_A)
110 	LM3900(IC2_D)
111 	LM3900(IC4_A)
112 	LM3900(IC4_B)
113 	LM3900(IC4_D)
114 	LM3900(IC14_A)
115 	LM3900(IC14_B)
116 	LM3900(IC14_C)
117 	LM3900(IC14_D)
118 	NET_C(V12, IC2_A.VCC, IC2_D.VCC, IC4_A.VCC, IC4_B.VCC, IC4_D.VCC, IC14_A.VCC, IC14_B.VCC, IC14_C.VCC, IC14_D.VCC)
119 	NET_C(GND, IC2_A.GND, IC2_D.GND, IC4_A.GND, IC4_B.GND, IC4_D.GND, IC14_A.GND, IC14_B.GND, IC14_C.GND, IC14_D.GND)
120 
121 	RES(R1, RES_K(560))
122 	RES(R2, RES_K(560))
123 	RES(R3, RES_K(560))
124 	RES(R4, RES_K(560))
125 	RES(R5, RES_K(560))
126 	RES(R6, RES_K(560))
127 	RES(R8, RES_M(2))
128 	RES(R9, RES_K(820))
129 	RES(R10, RES_K(220))
130 	RES(R11, RES_K(620))
131 	RES(R12, RES_K(3.9))
132 	RES(R13, RES_K(3.9))
133 	RES(R14, RES_K(3.9))
134 	RES(R15, RES_M(5.6))
135 	RES(R16, RES_K(680))
136 	RES(R17, RES_K(10))
137 	RES(R18, RES_K(1))
138 	RES(R19, RES_K(150))
139 	RES(R20, RES_K(2))
140 	RES(R21, RES_K(180))
141 	RES(R22, RES_K(180))
142 	RES(R23, RES_K(130))
143 	RES(R24, RES_K(10))
144 	RES(R25, RES_K(2))
145 	RES(R26, RES_K(68))
146 	RES(R27, RES_K(270))
147 	RES(R28, RES_K(10))
148 	RES(R29, RES_K(130))
149 	RES(R31, RES_K(560))
150 	RES(R32, RES_K(220))
151 	RES(R33, RES_M(1.2))
152 	RES(R34, RES_K(12))
153 	RES(R35, RES_K(1))
154 	RES(R36, RES_K(15))
155 	RES(R37, RES_K(15))
156 	RES(R38, RES_K(820))
157 	RES(R39, RES_M(1))
158 	RES(R40, RES_K(220))
159 	RES(R41, RES_K(680))
160 	RES(R42, RES_K(820))
161 	RES(R43, RES_K(12))
162 	RES(R44, RES_K(560))
163 	RES(R45, RES_M(1.2))
164 	RES(R46, RES_K(680))
165 	RES(R47, RES_M(1.2))
166 	RES(R48, RES_K(12))
167 	RES(R49, RES_M(1.2))
168 	RES(R50, RES_K(820))
169 	RES(R51, RES_M(5.6))
170 	RES(R52, RES_K(680))
171 	RES(R53, RES_K(680))
172 	RES(R54, RES_M(2))
173 	RES(R55, RES_K(1))
174 	RES(R56, RES_K(10))
175 	RES(R57, RES_K(680))
176 	RES(R58, RES_M(1))
177 	RES(R59, RES_K(43))
178 	RES(R60, RES_K(43))
179 	RES(R61, RES_K(150))
180 	RES(R62, RES_M(1))
181 	//RES(R63, RES_K(82))
182 	POT(R64, RES_K(10))
183 	POT(R65, RES_K(10))
184 	RES(R66, RES_K(27))
185 	RES(R67, RES_K(68))
186 	RES(R68, RES_K(100))
187 	RES(R69, RES_M(1))
188 	RES(R70, RES_K(10))
189 	RES(R71, RES_K(16))
190 	RES(R72, RES_K(68))
191 	RES(R73, RES_K(47))
192 	RES(R74, RES_K(12))
193 	RES(R75, RES_K(120))
194 	RES(R76, RES_K(33))
195 	RES(R77, RES_K(33))
196 	RES(R78, RES_K(150))
197 	RES(R79, RES_K(130))
198 	RES(R80, RES_K(130))
199 	RES(R81, RES_K(560))
200 	RES(R82, RES_K(160))
201 	RES(R83, RES_M(1))
202 	RES(R84, RES_K(100))
203 	RES(R85, RES_K(270))
204 	RES(R86, RES_K(16))
205 	RES(R87, RES_K(100))
206 	RES(R94, RES_K(1))
207 	RES(R95, RES_K(1))
208 	RES(R96, RES_K(1))
209 	RES(R99, RES_K(1))
210 	RES(R100, RES_K(1))
211 	//RES(R101, RES_K(10))
212 	RES(R102, RES_K(3))
213 	RES(R103, RES_K(3))
214 	RES(R104, RES_M(1))
215 	RES(R105, RES_K(100))
216 	RES(R106, RES_K(100))
217 	RES(R107, RES_K(47))
218 	RES(R108, RES_K(20))
219 	RES(R109, RES_K(560))
220 	RES(R110, RES_K(1))
221 	RES(R116, RES_K(4.7))
222 	RES(R117, RES_K(20))
223 	RES(R118, RES_K(560))
224 	RES(R119, RES_K(560))
225 	RES(R120, RES_K(5.6))
226 	RES(R122, RES_K(2.7))
227 	RES(R123, RES_K(100))
228 	RES(R124, RES_K(3))
229 	RES(R125, RES_K(3))
230 	RES(R126, RES_K(6.8))
231 	RES(R127, RES_K(8.2))
232 	RES(R132, RES_M(1))
233 	RES(R133, RES_M(1))
234 	RES(R134, RES_M(1))
235 	RES(R135, RES_M(1))
236 	RES(R137, RES_K(5.6))
237 	RES(R138, RES_K(47))
238 	RES(R139, 100)
239 	RES(R140, RES_K(10))
240 	RES(R141, RES_K(3))
241 	//RES(R142, RES_K(56))
242 	//RES(R143, RES_K(56))
243 	RES(R144, RES_K(100))
244 	RES(R150, RES_K(100))
245 
246 	CAP(C3, CAP_U(1.0))
247 	CAP(C4, CAP_U(0.1))
248 	CAP(C6, CAP_U(4.7))
249 	CAP(C7, CAP_U(0.33))
250 	CAP(C8, CAP_U(0.33))
251 	CAP(C10, CAP_U(0.1))
252 	CAP(C11, CAP_U(2.2))
253 	CAP(C12, CAP_U(2.2))
254 	CAP(C13, CAP_U(4.7))
255 	CAP(C14, CAP_U(2.2))
256 	CAP(C15, CAP_U(1.0))
257 	CAP(C16, CAP_U(10))
258 	CAP(C17, CAP_U(0.1))
259 	CAP(C18, CAP_U(0.1))
260 	CAP(C20, CAP_U(10))
261 	CAP(C22, CAP_U(0.033))
262 	CAP(C23, CAP_U(0.33))
263 	CAP(C26, CAP_U(0.022))
264 	CAP(C27, CAP_U(0.022))
265 	CAP(C35, CAP_U(0.0022))
266 	CAP(C37, CAP_U(0.0022))
267 	CAP(C38, CAP_U(0.1))
268 	CAP(C39, CAP_U(0.0022))
269 	CAP(C40, CAP_U(0.033))
270 	CAP(C41, CAP_U(1.0))
271 	CAP(C42, CAP_U(1.0))
272 	CAP(C44, CAP_U(0.0047))
273 	CAP(C45, CAP_U(0.1))
274 	CAP(C48, CAP_U(0.1))
275 	CAP(C49, CAP_U(0.0022))
276 	CAP(C50, CAP_U(1.0))
277 	CAP(C51, CAP_U(0.1))
278 	CAP(C52, CAP_U(0.1))
279 	CAP(C55, CAP_U(0.1))
280 	CAP(C70, CAP_U(1.0))
281 	CAP(C72, CAP_U(2.2))
282 	CAP(C73, CAP_U(1.0))
283 	CAP(C74, CAP_U(1.0))
284 	CAP(C75, CAP_U(0.1))
285 	CAP(C80, CAP_U(1.0))
286 	CAP(C81, CAP_U(0.1))
287 	CAP(C82, CAP_U(0.1))
288 	CAP(C84, CAP_U(0.1))
289 	CAP(C85, CAP_U(2.2))
290 	CAP(C97, CAP_U(0.0022))
291 	CAP(C98, CAP_U(0.0022))
292 	CAP(C100, CAP_U(0.22))
293 	//CAP(C102, CAP_U(0.001))
294 	CAP(C106, CAP_U(0.1))
295 	CAP(C109, CAP_U(0.1))
296 	CAP(C114, CAP_U(0.1))
297 	CAP(C121, CAP_U(0.001))
298 	CAP(C122, CAP_U(0.001))
299 
300 	DIODE(D1, "1N914")
301 	DIODE(D2, "1N914")
302 	DIODE(D3, "1N914")
303 	DIODE(D4, "1N914")
304 	DIODE(D5, "1N914")
305 	DIODE(D6, "1N914")
306 	DIODE(D7, "1N914")
307 	DIODE(D8, "1N914")
308 	DIODE(D9, "1N914")
309 	DIODE(D10, "1N914")
310 	DIODE(D11, "1N914")
311 	DIODE(D12, "1N914")
312 	DIODE(D13, "1N914")
313 	DIODE(D14, "1N914")
314 	DIODE(D15, "1N914")
315 
316 	QBJT_EB(Q1, "2N3704")
317 	QBJT_EB(Q2, "2N3704")
318 
319 	// Noise Generator
320 	CLOCK(HLE_SONAR_CLOCK, 1000)
321 	NET_C(HLE_SONAR_CLOCK.GND, GND)
322 	NET_C(HLE_SONAR_CLOCK.VCC, V12)
323 
324 	SWITCH2(SONAR_ENABLE)
325 	NET_C(SONAR_ENABLE.1, HLE_SONAR_CLOCK.Q)
326 	NET_C(SONAR_ENABLE.2, GND)
327 	NET_C(SONAR_ENABLE.Q, IC40.3)
328 
329 	NET_C(IC40.1, IC40.12, IC41_C.A)
330 	NET_C(IC40.4, IC41_C.Q)
331 	NET_C(IC40.5, IC41_D.Q)
332 	NET_C(R141.1, IC40.6, IC40.10, C45.1)
333 	ALIAS(NOISE_A, R141.1)
334 	NET_C(R141.2, R140.1)
335 	NET_C(R140.2, V12)
336 	ALIAS(NOISE, R140.1)
337 	NET_C(IC40.8, IC41_C.B)
338 	NET_C(IC40.13, IC41_D.A)
339 
340 	// Sonar
341 	NET_C(IC27_A.A, SONAR_SYNC.Q)
342 	NET_C(IC27_A.Y, R70.1, IC25.15, IC41_D.B)
343 	NET_C(R70.2, V12, IC29.RESET)
344 	NET_C(IC29.GND, GND)
345 	NET_C(IC29.VCC, V12)
346 	NET_C(IC29.DISCH, R110.1, R107.1)
347 	NET_C(R110.2, V12)
348 	NET_C(IC29.THRESH, IC29.TRIG, R107.2, C72.1)
349 	NET_C(C72.2, GND)
350 	NET_C(IC29.OUT, D3.K, IC3_A.CLOCK)
351 	NET_C(IC3_A.QQ, IC3_A.DATA)
352 	NET_C(IC3_A.Q, D2.K, IC25.14)
353 	NET_C(IC25.13, GND)
354 	NET_C(IC25.2, R36.1)
355 	NET_C(IC25.4, R72.1)
356 	NET_C(IC25.10, R73.1)
357 	NET_C(IC25.11, R75.1)
358 	NET_C(R36.2, R72.2, R73.2, R75.2, D3.A, D2.A, R19.2, Q2.C)
359 	NET_C(NOISE_A, R138.1)
360 	NET_C(R138.2, C100.1, R137.1)
361 	NET_C(C100.2, GND)
362 	NET_C(R137.2, R139.1, C27.1, C26.1, R19.1)
363 	NET_C(R139.2, GND)
364 	NET_C(IC6.3, GND)
365 	NET_C(IC6.2, R38.1, C27.2)
366 	NET_C(IC6.1, R37.1, R38.2, R85.1, R27.1, C26.2)
367 	NET_C(R37.2, D7.A, D8.K, IC6.5)
368 	NET_C(D7.K, GND)
369 	NET_C(D8.A, GND)
370 	NET_C(IC6.6, R35.1, R39.1)
371 	NET_C(R35.2, C23.1)
372 	NET_C(C23.2, GND)
373 	NET_C(IC6.7, R56.1, R39.2)
374 	NET_C(R56.2, D14.K, Q2.B)
375 	NET_C(D14.A, GND)
376 	NET_C(Q2.E, GND)
377 
378 	ALIAS(MIX_L, R27.2)
379 	ALIAS(MIX_R, R85.2)
380 
381 	// Low Filter
382 	NET_C(C45.2, R68.1)
383 	NET_C(R68.2, IC16.6, R66.1)
384 	NET_C(IC16.5, GND)
385 	NET_C(R66.2, IC16.7, R71.1)
386 	NET_C(R71.2, R86.1, C51.1)
387 	NET_C(R86.2, C55.1, IC17.5)
388 	NET_C(C55.2, GND)
389 	NET_C(C51.2, IC17.7, R82.1)
390 	NET_C(R82.2, IC17.6, R123.1)
391 	NET_C(R123.2, GND)
392 	ALIAS(RUMBLE, IC17.7)
393 
394 	// Submarine Engine
395 	NET_C(IC31.4, V5)
396 	NET_C(IC31.1, R120.1, R122.1)
397 	NET_C(R120.2, V5)
398 	NET_C(IC31.2, IC31.6, IC31.11, R122.2, C85.1)
399 	NET_C(C85.2, GND)
400 	NET_C(IC31.5, GND)
401 	NET_C(IC31.13, R126.1, R127.1)
402 	NET_C(R126.2, V5)
403 	NET_C(IC31.8, IC31.12, R127.2, C84.1)
404 	NET_C(C84.2, GND)
405 	NET_C(IC31.10, SUBENG.Q)
406 	NET_C(IC31.9, R124.1)
407 	NET_C(R124.2, R125.1, C114.1)
408 	NET_C(C114.2, GND)
409 	NET_C(R125.2, R79.1, R80.1, C52.1)
410 	NET_C(C52.2, GND)
411 	NET_C(R79.2, MIX_L)
412 	NET_C(R80.2, MIX_R)
413 
414 	// Ship Explosion (L)
415 	NET_C(RUMBLE, R87.1)
416 	NET_C(R87.2, R84.1, C80.1)
417 	NET_C(R84.2, GND)
418 	NET_C(IC30.1, C80.2)
419 	NET_C(IC30.7, R117.1)
420 	NET_C(IC30.6, C81.1)
421 	NET_C(C81.2, GND)
422 	NET_C(LBOOM.Q, IC27_C.A)
423 	NET_C(IC27_C.Y, R103.1)
424 	NET_C(R103.2, R104.1, C70.1)
425 	NET_C(C70.2, GND)
426 	NET_C(R104.2, IC17.3, R83.1)
427 	NET_C(R83.2, V5)
428 	NET_C(IC17.1, IC17.2, IC30.2)
429 	NET_C(R117.2, MIX_L)
430 
431 	// Ship Explosion (R)
432 	NET_C(RUMBLE, R105.1)
433 	NET_C(R105.2, R106.1, C74.1)
434 	NET_C(R106.2, GND)
435 	NET_C(IC28.1, C74.2)
436 	NET_C(IC28.7, R108.1)
437 	NET_C(IC28.6, C75.1)
438 	NET_C(C75.2, GND)
439 	NET_C(RBOOM.Q, IC27_D.A)
440 	NET_C(IC27_D.Y, R102.1)
441 	NET_C(R102.2, R69.1, C73.1)
442 	NET_C(C73.2, GND)
443 	NET_C(R69.2, IC16.3, R62.1)
444 	NET_C(R62.2, V5)
445 	NET_C(IC16.1, IC16.2, IC28.2)
446 	NET_C(R108.2, MIX_R)
447 
448 	// Torpedo (L)
449 	NET_C(LTORP.Q, R100.1, D10.A, D11.A)
450 	NET_C(R100.2, V5)
451 	NET_C(D10.K, C7.1, R46.1)
452 	NET_C(D11.K, C14.1, R53.1)
453 	NET_C(C7.2, C14.2, R132.2, R133.2, GND)
454 	NET_C(R53.2, IC14_C.PLUS)
455 	NET_C(R51.1, V12)
456 	NET_C(R51.2, C42.1, R54.1, IC14_C.MINUS)
457 	NET_C(R54.2, C42.2, IC14_C.OUT, R57.1)
458 	NET_C(R57.2, R46.2, IC14_B.PLUS)
459 	NET_C(NOISE, R42.1)
460 	NET_C(R42.2, R47.1, IC14_B.MINUS)
461 	NET_C(R47.2, C35.1, IC14_B.OUT)
462 	NET_C(C35.2, R132.1, C98.1)
463 	NET_C(C98.2, R133.1, R118.1)
464 	NET_C(R118.2, MIX_L)
465 
466 	// Torpedo (R)
467 	NET_C(RTORP.Q, R55.1, D12.A, D9.A)
468 	NET_C(R55.2, V5)
469 	NET_C(D12.K, C8.1, R52.1)
470 	NET_C(D9.K, C12.1, R16.1)
471 	NET_C(C8.2, C12.2, R134.2, R135.2, GND)
472 	NET_C(R16.2, IC2_A.PLUS)
473 	NET_C(R15.1, V12)
474 	NET_C(R15.2, C3.1, R8.1, IC2_A.MINUS)
475 	NET_C(R8.2, C3.2, IC2_A.OUT, R41.1)
476 	NET_C(R41.2, R52.2, IC14_A.PLUS)
477 	NET_C(NOISE, R50.1)
478 	NET_C(R50.2, R49.1, IC14_A.MINUS)
479 	NET_C(R49.2, C37.1, IC14_A.OUT)
480 	NET_C(C37.2, R134.1, C97.1)
481 	NET_C(C97.2, R135.1, R109.1)
482 	NET_C(R109.2, MIX_R)
483 
484 	// Ship Partial Hit (L)
485 	NET_C(LSHPHT.Q, R94.1, D6.A)
486 	NET_C(R94.2, V5)
487 	NET_C(D6.K, C13.1, R32.1)
488 	NET_C(C13.2, C49.2, C22.2, GND)
489 	NET_C(R32.2, IC4_D.PLUS)
490 	NET_C(NOISE, R31.1)
491 	NET_C(R31.2, R33.1, IC4_D.MINUS)
492 	NET_C(R33.2, R34.1, IC4_D.OUT)
493 	NET_C(R34.2, C49.1, R74.1)
494 	NET_C(R74.2, C22.1, R78.1)
495 	NET_C(R78.2, MIX_L)
496 
497 	// Ship Partial Hit (R)
498 	NET_C(RSHPHT.Q, R99.1, D13.A)
499 	NET_C(R99.2, V5)
500 	NET_C(D13.K, C6.1, R40.1)
501 	NET_C(C6.2, C39.2, C40.2, GND)
502 	NET_C(R40.2, IC14_D.PLUS)
503 	NET_C(NOISE, R44.1)
504 	NET_C(R44.2, R45.1, IC14_D.MINUS)
505 	NET_C(R45.2, R48.1, IC14_D.OUT)
506 	NET_C(R48.2, C39.1, R43.1)
507 	NET_C(R43.2, C40.1, R61.1)
508 	NET_C(R61.2, MIX_L)
509 
510 	// Torpedo Collision
511 	NET_C(TORPCOLL.Q, R95.1, D1.A)
512 	NET_C(R95.2, V5)
513 	NET_C(D1.K, C11.1, R10.1)
514 	NET_C(C11.2, C4.2, C38.2, GND)
515 	NET_C(R10.2, IC2_D.PLUS)
516 	NET_C(NOISE, R11.1)
517 	NET_C(R11.2, R9.1, IC2_D.MINUS)
518 	NET_C(R9.2, R12.1, IC2_D.OUT)
519 	NET_C(R12.2, C4.1, R13.1)
520 	NET_C(R13.2, C38.1, R76.1, R77.1)
521 	NET_C(R77.2, MIX_L)
522 	NET_C(R76.2, MIX_R)
523 
524 	// Alert
525 	NET_C(ALERT.Q, IC27_B.A)
526 	NET_C(IC27_B.Y, R96.2, D15.A, IC3_B.RESET)
527 	NET_C(D15.K, C41.2, Q1.C, IC15.8)
528 	NET_C(R14.2, R17.1, Q1.B)
529 	NET_C(Q1.E, R58.1)
530 	NET_C(IC15.10, C44.1)
531 	NET_C(IC15.4, R59.2)
532 	NET_C(IC15.5, R60.2)
533 	NET_C(IC15.9, R116.2, IC3_B.CLOCK)
534 	NET_C(IC3_B.QQ, IC3_B.DATA)
535 	NET_C(IC3_B.Q, R18.1)
536 	NET_C(R18.2, C10.1, R119.1, R81.1)
537 	NET_C(V12, R96.1, C41.1, R14.1, R116.1, R59.1, R60.1)
538 	NET_C(GND, R17.2, R58.2, C44.2, C10.2)
539 	NET_C(R119.2, MIX_L)
540 	NET_C(R81.2, MIX_R)
541 
542 	// Mixers (shared)
543 	NET_C(SOUND_OFF_L.Q, D4.A)
544 	NET_C(SOUND_OFF_R.Q, D5.A)
545 
546 	// Music
547 	NET_C(MUSIC_A.Q, R1.1, R4.1)
548 	NET_C(MUSIC_B.Q, R5.1, R6.1)
549 	NET_C(MUSIC_C.Q, R3.1, R2.1)
550 	NET_C(R1.2, R3.2, R5.2, MIX_L)
551 	NET_C(R2.2, R4.2, R6.2, MIX_R)
552 
553 	// Mixer (L)
554 	NET_C(MIX_L, C15.1)
555 	NET_C(R25.1, V12)
556 	NET_C(R25.2, C16.1, C48.1, R23.1)
557 	NET_C(C16.2, C48.2, C82.2, R64.1, R144.2, GND)
558 	NET_C(R23.2, IC4_A.PLUS)
559 	NET_C(D4.K, C82.1, R24.1)
560 	NET_C(R24.2, C15.2, IC4_A.MINUS, R26.1, C121.1)
561 	NET_C(C121.2, R26.2, IC4_A.OUT, R21.1)
562 	NET_C(R21.2, R64.3)
563 	NET_C(R64.2, C106.1)
564 	NET_C(C106.2, R144.1)
565 	ALIAS(OUT_L, C106.2)
566 
567 	// Mixer (R)
568 	NET_C(MIX_R, C50.1)
569 	NET_C(R20.1, V12)
570 	NET_C(R20.2, C20.1, C18.1, R29.1)
571 	NET_C(C20.2, C18.2, C17.2, R65.1, R150.2, GND)
572 	NET_C(R29.2, IC4_B.PLUS)
573 	NET_C(D5.K, C17.1, R28.1)
574 	NET_C(R28.2, C50.2, IC4_B.MINUS, R67.1, C122.1)
575 	NET_C(C122.2, R67.2, IC4_B.OUT, R22.1)
576 	NET_C(R22.2, R65.3)
577 	NET_C(R65.2, C109.1)
578 	NET_C(C109.2, R150.1)
579 	ALIAS(OUT_R, C109.2)
580 
581 	// Separate each input into the summing network
582 	OPTIMIZE_FRONTIER(R27.1, RES_K(270), 50) // SONAR (L)
583 	OPTIMIZE_FRONTIER(R77.1, RES_K(33), 50) // TORPCOLL (L)
584 	OPTIMIZE_FRONTIER(R78.1, RES_K(150), 50) // L SHPHT
585 	OPTIMIZE_FRONTIER(R79.1, RES_K(130), 50) // SUBENG (L)
586 	OPTIMIZE_FRONTIER(R117.1, RES_K(20), 50) // L BOOM
587 	OPTIMIZE_FRONTIER(R118.1, RES_K(560), 50) // L TORP
588 
589 	OPTIMIZE_FRONTIER(R85.1, RES_K(270), 50) // SONAR (R)
590 	OPTIMIZE_FRONTIER(R76.1, RES_K(33), 50) // TORPCOLL (R)
591 	OPTIMIZE_FRONTIER(R61.1, RES_K(150), 50) // R SHPHT
592 	OPTIMIZE_FRONTIER(R80.1, RES_K(130), 50) // SUBENG (R)
593 	OPTIMIZE_FRONTIER(R108.1, RES_K(20), 50) // R BOOM
594 	OPTIMIZE_FRONTIER(R109.1, RES_K(560), 50) // R TORP
595 
596 	OPTIMIZE_FRONTIER(R138.1, RES_K(47), 50) // Isolation for NOISE_A going into SONAR section
597 	OPTIMIZE_FRONTIER(R42.1, RES_K(820), 50) // Isolation for NOISE going into L TORP section
598 	OPTIMIZE_FRONTIER(R50.1, RES_K(820), 50) // Isolation for NOISE going into R TORP section
599 	OPTIMIZE_FRONTIER(R31.1, RES_K(560), 50) // Isolation for NOISE going into L SHPHT section
600 	OPTIMIZE_FRONTIER(R44.1, RES_K(560), 50) // Isolation for NOISE going into R SHPHT section
601 	OPTIMIZE_FRONTIER(R11.1, RES_K(620), 50) // Isolation for NOISE going into TORPCOLL section
602 	OPTIMIZE_FRONTIER(R87.1, RES_K(100), 50) // Isolation for RUMBLE going into L BOOM section
603 	OPTIMIZE_FRONTIER(R105.1, RES_K(100), 50) // Isolation for RUMBLE going into R BOOM section
604 NETLIST_END()
605