1 // license:BSD-3-Clause
2 // copyright-holders:Olivier Galibert
3 /*
4
5 Known functional issues:
6 - Star Wars Arcade
7 * After recent changes, ship models periodically disappear for a frame or two during attract mode
8 and while in-game.
9 * There are indeterminate issues with the analog controls in-game.
10 - Virtua Fighter
11 * Gameplay mechanics - specifically, collision detection - are significantly broken due to
12 imperfect TGP RAM port emulation or hookup. This is observable in both attract mode and
13 in-game. It seems to break when both characters attack at the same time.
14
15 Sega Model 1 Hardware Overview
16 ------------------------------
17
18 Note! This document is a Work-In-Progress and covers all the dumped Sega Model 1 games, including...
19
20 Star Wars Arcade (C) Sega, 1994
21 Virtua Fighter (C) Sega, 1993
22 Virtua Racing (C) Sega, 1992
23 Wing War (C) Sega, 1994
24 Tecwar/Netmerc (C) Sega and Virtuality, 1993
25
26 The Sega Model 1 system comprises several PCB's....
27 CPU PCB - This is the main PCB. It holds the main CPU, some surface-mounted ROMs and the 3D co-processors
28 (manufactured by Fujitsu and known as 'TGP'). There are three different PCB variants, with
29 different internal 3D co-processor programs depending on game.
30 Video PCB - There is only one known revision of this PCB so any game can use this PCB. It contains a very large
31 quantity of RAM, some surface-mounted ROMs and some custom Sega video chips. The RGB and Sync is also
32 outputted from this PCB. The horizontal sync is 24kHz and requires a medium resolution (24kHz) monitor.
33 The video PCB is plugged in below the CPU PCB.
34 ROM PCB - This PCB is the same for all games, only the type and number of ROMs differ per game. The ROM PCB is
35 plugged in above the CPU PCB.
36 I/O PCB - This PCB connects the CPU PCB to the input and output controls via some multi-wire connectors.
37 Comm PCB - This PCB is used for communication when linking 2 PCBs together (generally for Virtua Racing only).
38 It plugs in below the Video PCB.
39 Sound PCB - This PCB generates the sound for the game. There is no amplification of the sound here, that is done
40 via the Amp PCB.
41 Motor PCB - This PCB is used to control the motors and steering column clutch used for the force feedback steering.
42 Amp PCB - This PCB amplifies the sound generated by the sound PCB.
43
44
45 ROM PCB
46 -------
47
48 MODEL 1 MEMORY BD 837-7893 171-6079B (C) SEGA 1992
49 |--------------------------------------------------------------------------------------------|
50 |J1 |
51 |J2 IC5 IC14 IC26 IC27 |
52 |J3 |
53 |J4 IC4 IC15 |
54 |J5 IC28 IC29 |
55 |J12 IC13 IC12 |
56 | |
57 | IC11 IC10 IC30 IC31 |
58 | |
59 | CN1 IC9 IC8 CN2 CN3 |
60 | IC32 IC33 |
61 | IC7 IC6 |
62 | 84256 84256 J11|
63 | IC41 IC42 J10|
64 | 84256 84256 J9 |
65 | IC39 IC40 J8 |
66 | J7 |
67 | 315-5478 J6 |
68 |--------------------------------------------------------------------------------------------|
69 Notes:
70 J1, J2, J4 - Jumpers to configure ROM sizes, all set to 2-3
71 J3, J5, J6, \
72 J7, J8, J9 \
73 J10, J11, | Jumpers to configure ROM sizes, all set to 1-2
74 J12 /
75 CN1, CN2, CN3 - Connectors for joining ROM PCB to CPU PCB
76 84256 - Fujitsu 84256 32k x8 SRAM (x4, DIP28)
77 315-5478 - Lattice GAL16V8A (DIP20)
78
79 IC4, IC5 - Hitachi HN27C1024 128k x16bit EPROM (DIP40)
80
81 IC14, IC15 - Intel 27C040 512k x 8bit EPROM (DIP32)
82
83 IC6, IC7, IC8,\
84 IC9, IC10, \
85 IC11, IC12, | 834000 4M mask ROM (DIP32)
86 IC13, |
87 IC39, IC40, /
88 IC41, IC42 /
89
90 IC26, IC27, \
91 IC28, IC29, | 8316200 16M mask ROM (DIP42)
92 IC30, IC31, /
93 IC32, IC33 /
94
95 IC# PCB
96 Label Virtua Racing Virtua Fighter Wing War Star Wars Arcade
97 --------------------------------------------------------------------------------
98 4 B EPR-14878A EPR-16080 EPR-16951 -
99 5 A EPR-14879A EPR-16081 EPR-16950 EPR-16467
100 14 LO EPR-14882 EPR-16082 EPR-16729 EPR-16468
101 15 HI EPR-14883 EPR-16083 EPR-16730 EPR-16469
102 6 LO MPR-14880 MPR-16084 MPR-16738 -
103 7 HI MPR-14881 MPR-16085 MPR-16737 -
104 8 LO MPR-14884 MPR-16086 MPR-16736 -
105 9 HI MPR-14885 MPR-16087 MPR-16735 -
106 10 LO MPR-14886 MPR-16088 MPR-16734 -
107 11 HI MPR-14887 MPR-16089 MPR-16733 -
108 12 LO MPR-14888 MPR-16090 - -
109 13 HI MPR-14889 MPR-16091 - -
110 39 LO MPR-14898 - MPR-16741 MPR-16472
111 40 ML MPR-14899 - MPR-16742 MPR-16473
112 41 MH MPR-14900 - MPR-16739 MPR-16474
113 42 HI MPR-14901 - MPR-16740 MPR-16475
114 26 LO MPR-14890 MPR-16096 MPR-16743 MPR-16476
115 27 HI MPR-14891 MPR-16097 MPR-16744 MPR-16477
116 28 LO MPR-14892 MPR-16098 MPR-16745 MPR-16478
117 29 HI MPR-14893 MPR-16099 MPR-16746 MPR-16479
118 30 LO MPR-14894 MPR-16100 MPR-16747 MPR-16480
119 31 HI MPR-14895 MPR-16101 MPR-16748 MPR-16481
120 32 LO MPR-14896 MPR-16102 MPR-16749 -
121 33 HI MPR-14897 MPR-16103 MPR-16750 -
122
123 - denotes socket not populated.
124
125
126 CPU PCB
127 -------
128
129 MODEL-1 CPU BOARD 837-8886171-6298C (C) SEGA 1992
130 |---------------------------------------------------------------------------------------------------------------------------------|
131 | CN2 CN1 CN4 |
132 | |---------------------------------| |---------------------------------| |---------------| |
133 | |---------------------------------| |---------------------------------| |---------------| |
134 | |
135 | OPR-14746.68 |-| 5.5V_BATT |-|
136 | |-----------| | | PC910 | |
137 | | | OPR-14747.69 | | *1 | |
138 | | SEGA | | | 84256 HM658128 PC910 | |
139 | | 315-5572 | | |CN13 |-----------| | |CN3
140 | | | | | |NEC | 84256 HM658128 PC910 | |
141 | | | | | |D70615GD-16| | |
142 | |-----------| |-| |V60 | |-|
143 | | | |
144 | | | |
145 | 32MHz |-----------| |---------| |---------| |
146 | |SEGA | |SEGA | MB8421 |
147 | OPR-14745.65 |315-5465 | |315-5338A| *2 |
148 | | | | | |
149 | |---------| |---------| |
150 | OPR-14744.64 40MHz |
151 | J6 CN5 |
152 | J5 |---------------| |
153 | J4 |---------------| |
154 | 3771 |
155 | |-----------| 3771 |-----------| |
156 | | | | | |
157 | | SEGA | | SEGA | D71051 |
158 | | 315-5572 | | COPRO | |-----------| |
159 | | | |(see notes)| | | M5M5178 OPR-14743.45 |
160 | | | | | | SEGA | M5M5178 |
161 | |-----------| |-----------| | 315-5464 | M5M5178 OPR-14742.44 |
162 | | | M5M5178 |
163 | | | |
164 | |-----------| 315-5546A |
165 | |
166 | |-----------| |-----------| |-----------| |
167 | | | | | 84256 | | |
168 | | SEGA | | SEGA | 84256 | SEGA | |
169 | | 315-5571 | | 315-5571 | 84256 | 315-5463 | |
170 | | | | | 84256 | | |
171 | | | | | | | |
172 | |-----------| |-----------| |-----------| |
173 | |
174 | CN6 |
175 | LED1 LED2 LED3 LED4 LED5 |---------------| |
176 | LED11 LED6 LED7 LED8 LED9 LED10 |---------------| |
177 |---------------------------------------------------------------------------------------------------------------------------------|
178 Notes:
179 84256 - Fujitsu 84256A-70LL 32k x8 SRAM (x6, DIP28)
180 HM658128 - Hitachi HM658128ALP-10 16k x8 SRAM (x2, DIP32)
181 M5M5178 - Mitsubishi M5M5178AP-25 8k x8 SRAM (x4, DIP28)
182 CN1, CN2 - Connectors to join CPU board to Video board
183 CN3 - Connector for power and input/output controls (joins small adapter board to a larger filter board)
184 CN4, CN5, CN6 - Connectors to join ROM board to CPU board
185 CN13 - Connector for optional daughterboard (not used)
186 3771 - Fujitsu MB3771 master reset IC (x2, DIP8)
187 5.5_BATT - NEC 5.5 volt battery
188 PC910 - Sharp PC910 opto-isolator (x3, DIP8)
189 D71051 - NEC uPD71051C-10 UART (DIP28)
190 MB8421 - Fujitsu MB8421-12LP RAM? (SDIP52)
191 *1 - Unpopulated position for Fujitsu MB8421
192 D70615GD-16 - NEC uPD70615GD-16-S V60 CPU, running at 16.000MHz (QFP120, clock 32 / 2)
193 315-5546A - Lattice GAL16V8A (DIP20)
194 315-5571 - Fujitsu MB86233 Geometrizer (IC57/IC58, QFP160)
195 315-5572 - Fujitsu MB86233 Geometrizer (different code) (IC60/IC66, QFP160)
196 COPRO - Fujitsu MB86233 Coprocessor (QFP160), differs depending on game:
197 315-5573 - Virtua Racing, Virtua Formula (original for above board part number)
198 315-5711 - Wing War, Star Wars Arcade, Netmerc
199 315-5724 - Virtua Fighter
200 315-5463 - Sega Custom (QFP160)
201 315-5464 - Sega Custom (QFP160) - Copro TGP glue chip
202 315-5465 - Sega Custom (QFP100) - Address decode, interrupts, etc
203 315-5338A - Sega Custom (QFP100) - Inputs
204 *2 - Unpopulated position for 315-5338A
205 J4, J5, J6 - Jumpers, all set to 2-3
206
207 OPR-14742.44 \
208 OPR-14743.45 - 1M SOP40 mask ROMs, tied to 315-5464
209
210 OPR-14744.64 \
211 OPR-14745.65 - 1M SOP40 mask ROMs, tied to both 315-5572's
212
213 OPR-14746.68 \
214 OPR-14747.69 - 1M SOP40 mask ROMs, tied to 315-5572 @ IC66
215
216
217 VIDEO PCB
218 ---------
219
220 837-7894 171-6080D (C) SEGA 1992
221 |---------------------------------------------------------------------------------------------------------------------------------|
222 | CN2 CN1 |
223 | |---------------------------------| |---------------------------------| |
224 | |---------------------------------| |---------------------------------| |
225 | HM65256 |
226 | J3 |
227 | HM658512 HM658512 HM658128 J2 HM65256 |
228 | |-----------| |-----------| |
229 | | | HM658128 | | |
230 | | SEGA | | SEGA | HM658128 |
231 | HM654128 HM654128 | 315-5422 | | 315-5292 | |
232 | | | | | HM658128 |
233 | | | M5M5178 | | |
234 | |-----------| |-----------| HM658128 |
235 | HM654128 HM654128 M5M5178 |
236 | |-----------| HM658128 |
237 | CY7B185 J1 | | J4 |
238 | CY7B185 | SEGA | |
239 | CY7B185 | 315-5423 | OPR-14748.16 315-5483 |
240 | CY7B185 | | |
241 | | | 315-5484 |
242 | |-----------| |
243 | |
244 | |-----------| |-----------| M5M5178 |
245 | | | | | |
246 | | SEGA | | SEGA | M5M5178 |
247 | | 315-5425 | | 315-5424 | OPR-14748.15 |
248 | | | | | |
249 | | | | | |
250 | |-----------| |-----------| |
251 | |
252 | |
253 | HM65256 HM65256 HM65256 HM65256 M5M5178 |
254 | |
255 | HM65256 HM65256 HM65256 HM65256 315-5485 M5M5178 |
256 | |
257 | HM65256 HM65256 HM65256 HM65256 M5M5178 |
258 | |
259 | HM65256 HM65256 HM65256 HM65256 36MHz 315-5486 |
260 | |
261 | HM65256 HM65256 HM65256 HM65256 315-5486 |
262 | |
263 | HM65256 HM65256 HM65256 HM65256 315-5486 |
264 | |
265 | HM65256 HM65256 HM65256 HM65256 |
266 | |
267 | HM65256 HM65256 HM65256 HM65256 CN4 CN3 LED1 |
268 |---------------------------------------------------------------------------------------------------------------------------------|
269 Notes:
270 HM65256 - Hitachi HM65256BLSP-10 32k x8 SRAM (x34, DIP28)
271 HM658128 - Hitachi HM658128ALP-10 16k x8 SRAM (x10, DIP32)
272 HM658512 - Hitachi HM658512LP-8 64k x8 SRAM (x2, DIP32)
273 M5M5178 - Mitsubishi M5M5178AP-25 8k x8 SRAM (x7, DIP28)
274 CY7B185 - Cypress CY7B185 8k x8 SRAM (x4, DIP28)
275 J1 - Jumper, set to 2-3
276 J2 - Jumper, set to 1-2
277 J3 - Jumper, set to 2-3
278 J4 - Jumper, set to 1-2
279 CN1, CN2 - Connectors to join Video board to CPU board
280 CN3 - Connector for R/G/B/Sync output (@ 24kHz)
281 CN4 - 20 pin IDC flat-cable connector (purpose unknown)
282 315-5483 - PAL CK2605 (DIP20) -- Priorities
283 315-5484 - Lattice GAL16V8A (DIP20) -- Palette bank selection
284 315-5485 - Lattice GAL16V8A (DIP20) -- Palette access address decode
285 315-5486 - Lattice GAL16V8A (x3, DIP20) -- Color clear on blank
286 315-5422 - Sega Custom (QFP160) -- Z sorting (8K*16bits + 128K*16bits storage)
287 315-5423 - Sega Custom (QFP160) -- Renderer 1
288 315-5424 - Sega Custom (QFP160) -- Renderer 2, provides opr-14748 addresses
289 315-5425 - Sega Custom (QFP160) -- Renderer 3, framebuffer management (32K*8bits + 2x256K*16bits storage)
290 315-5292 - Sega Custom (QFP160) -- Tilemaps (128k*32bits + 32K*16bits storage)
291
292 OPR-14748.15 \
293 OPR-14748.16 - 1M SOP40 mask ROMs, tied to 315-5423 & 315-5424. Note both ROMs are identical.
294
295
296 Motor PCB
297 ---------
298
299 SJ25-0155-01 838-9081
300 |------------------------------------------------------|
301 | CN6 CN7 CN8 |
302 |CN1 6A |
303 | DSW2 |
304 | |---------| 2A C4149 |
305 | |SEGA | DSW1 CN9|
306 | |315-5296 | |
307 | | | CN10|
308 | |---------| MB3759 |
309 | C11|
310 |CN2 |---------| |
311 | |SEGA | |
312 | 8MHz |315-5296 | |
313 | | | |
314 | 315-5625 |---------| |
315 | 3771 |
316 |CN3 3773 |
317 | 2A |
318 | Z80 C4149 |
319 | |
320 | 15111.12 CN12|
321 | MB3759 |
322 | M6253 6264 |
323 | |
324 |CN4 CN5 7-SEG |
325 |------------------------------------------------------|
326 Notes:
327 There are also many capacitors/transistors and other power-related components which are not shown.
328
329 315-5296 - Sega Custom (QFP100)
330 7-SEG - 7-Segment Display (x4), used for PCB status/diagnostics
331 15111.12 - ST Microelectronics M27C512 64k x8 EPROM (DIP28, labelled 'EPR-15111')
332 Z80 - Zilog Z0840004PSC Z80 CPU, running at 4.000MHz (DIP40, clock 8 / 2)
333 MB8464 - Fujitsu MB8464 8k x8 SRAM (DIP28)
334 3771 - Fujitsu MB3771 Master Reset IC (DIP8)
335 3773 - Fujitsu MB3771 Master Reset IC with Watchdog Timer (DIP8)
336 2A - Fuse, 2 Amp
337 6A - Fuse, 6 Amp
338 MB3759 - Fujitsu MB3759 Switching Regulator Controller (x2, DIP16)
339 CN1, CN2 - Connects to Left Side I/O PCB
340 CN3, CN4 - Connects to Right Side I/O PCB
341 CN5 - Connects to Steering Voltage Regulator (Left and Right Sides)
342 CN6 - Connects to Power Supply (+5V)
343 CN7, CN8 - Connects to 28VAC transformer
344 CN9 - 2 pin connector (not used?)
345 CN10 - 2 pin connector (not used?)
346 CN11 - 7 pin connector (joins to Motor and Clutch Left Side)
347 CN12 - 7 pin connector (joins to Motor and Clutch Right Side)
348 DSW1/2 - 8-position Dip Switch (x2)
349 +-------------------------------------------------+
350 |DSW1 1 2 3 4 5 6 7 8 |
351 +---------+-------+---+---+---+---+---+---+---+---+
352 |Feedback | Light |OFF|OFF|OFF| | | | | |
353 |Weight | +---+---+---+ | | | | |
354 |PL1 | /\ |ON |OFF|OFF| | | | | |
355 | | || +---+---+---+ | | | | |
356 | | |OFF|ON |OFF| | | | | |
357 | | +---+---+---+ | | | | |
358 | | |ON |ON |OFF| | | | | |
359 | | +---+---+---+ | | | | |
360 | | |OFF|OFF|ON | | | | | |
361 | | || +---+---+---+ | | | | |
362 | | \/ |ON |OFF|ON | | | | | |
363 | | +---+---+---+ | | | | |
364 | | Heavy |ON |ON |ON | | | | | |
365 +---------+-------+---+---+---+---+ | | | |
366 |Power On | Yes | |OFF| | | | |
367 |Check +-------+-----------+---+ | | | |
368 | | No | |ON | | | | |
369 +---------+-------+-----------+---+---+---+ | |
370 |Not Used | |OFF|OFF| | |
371 +---------+-----------------------+---+---+---+---+
372 |Not Used | |OFF|OFF|
373 +---------+-------------------------------+---+---+
374
375 +-------------------------------------------------+
376 |DSW2 1 2 3 4 5 6 7 8 |
377 +---------+-------+---+---+---+---+---+---+---+---+
378 |Feedback | Light |OFF|OFF|OFF| | | | | |
379 |Weight | +---+---+---+ | | | | |
380 |PL2 | /\ |ON |OFF|OFF| | | | | |
381 | | || +---+---+---+ | | | | |
382 | | |OFF|ON |OFF| | | | | |
383 | | +---+---+---+ | | | | |
384 | | |ON |ON |OFF| | | | | |
385 | | +---+---+---+ | | | | |
386 | | |OFF|OFF|ON | | | | | |
387 | | || +---+---+---+ | | | | |
388 | | \/ |ON |OFF|ON | | | | | |
389 | | +---+---+---+ | | | | |
390 | | Heavy |ON |ON |ON | | | | | |
391 +---------+-------+---+---+---+---+ | | | |
392 |Power On | Yes | |OFF| | | | |
393 |Check +-------+-----------+---+ | | | |
394 | | No | |ON | | | | |
395 +---------+-------+-----------+---+---+---+---+---+
396 |7-SEG LED|Display V.R. Value 00-80-FF |OFF|OFF|
397 | +-------------------------------+---+---+
398 | |Display Clutch Value |ON |OFF|
399 | +-------------------------------+---+---+
400 | |Data from the I/O Board (00-FF)|OFF|ON |
401 | +-------------------------------+---+---+
402 | |Data to the I/O Board (00-FF) |ON |ON |
403 +---------+-------------------------------+---+---+
404
405
406 Comm PCB
407 --------
408
409 MODEL-1 COMMUNICATION BD 837-8842 171-6293B (C) SEGA 1992
410 |--------------------------------------------------------------------------------|
411 | |
412 | MB89237A MB89374 |
413 | JP4 LED1 |
414 | 15112.17 Z80 |
415 | JP2 JP3 75179 |
416 | MB8464 315-5624 JP6 |
417 | 315-5547 |
418 | 315-5611 SW1 PC910 CN4|
419 | |
420 | PC910 CN5|
421 | MB8421 MB8431 JP7 |
422 | JP5 |
423 | JP8 CN7|
424 | CN1 CN2 |
425 | |---------------------------------| |---------------------------------| CN6|
426 | |---------------------------------| |---------------------------------| |
427 |--------------------------------------------------------------------------------|
428 Notes:
429 15112.17 - AMD AM27C100 128k x8 EPROM (DIP32, labelled 'EPR-15112')
430 Z80 - Zilog Z0840004PSC Z80 CPU, running at 4.000MHz (DIP40)
431 MB8464 - Fujitsu MB8464 8k x8 SRAM (DIP28)
432 MB8421 - Fujitsu MB8421-12LP RAM? (SDIP52)
433 MB8431 - Fujitsu MB8431-90LP RAM? (SDIP52)
434 MB89237A - Fujitsu MB89237A ? (DIP20)
435 MB89374 - Fujitsu MB89374 ? (SDIP42)
436 75179 - Texas Instruments SN75179 Differential Driver and Receiver Pair (DIP8)
437 315-5547 - AMI 18CV8PC-25 PAL (DIP20)
438 315-5624 - MMI PAL16L8BCN PAL (DIP20)
439 315-5611 - Lattice GAL16V8A PAL (DIP20)
440 PC910 - Sharp PC910 opto-isolator (x2, DIP8)
441 SW1 - Push Button Switch (purpose unknown)
442 CN1, CN2 - Connectors to join Comm board to Video board
443 CN4 - 8 pin connector (purpose unknown)
444 CN5 - 6 pin connector (purpose unknown)
445 CN6, CN7 - Connectors for network optical cable link
446 JP2 - Jumper, set to 2-3
447 JP3 - Jumper, set to 1-2
448 JP4 - Jumper, set to 1-2
449 JP5 - Jumper, shorted
450 JP6 - Jumper, not shorted
451 JP7 - Jumper, not shorted
452 JP8 - Jumper, set to 1-2
453
454
455 Sound PCB
456 ---------
457
458 MODEL-1 SOUND BD 837-8679 (C) SEGA 1992
459 |-----------------------------------------------------------| SOUND BD OPTION 837-8680 (C) SEGA 1992
460 | CN2 CN1 CN5 CN6 CN7 | |--------------------------|
461 | LED5 CN9 | | CN2 CN3 CN4 CN5 |
462 | PC910 TL062 | | uPC844C |
463 | JP5 TL062 | | LC78820 TL062 |
464 | JP3 IC8 JP6 | | |
465 | JP4 MB8464 82C51 uPC844C| | IC5 |
466 | MB8464 YM3438 | | |
467 | JP1 IC7 | | IC3 |
468 | JP2 | | IC4 |
469 | LC78820 | | LED |
470 | 315-5578 16MHz | |JP6 |---------| |
471 | | |JP5 |SEGA | |
472 | 315-5577 | |JP4 |315-5560 | |
473 | | |JP3 315-5579 | | |
474 | |---------| | |JP2 |---------| |
475 | |-----------------| |SEGA | CN8 | |JP1 CN1 |
476 | | TMP68000N-10 | |315-5560 | 315-5579 | |--------------------------|
477 | | | | | | Notes:
478 | |-----------------| JP7 |---------| IC33 | JP1, JP2 - Jumpers, both set to 2-3
479 | IC31 | JP3, JP4,- Jumpers, all set to 1-2
480 | LED1 LED2 LED3 LED4 IC32 | JP5, JP6 /
481 |DSW1 3771 20MHz | CN1, CN2 - Connectors to join Sound Option Board to Main Sound Board
482 |-----------------------------------------------------------| CN3 - 5 pin connector, unamplified sound out to Amp PCB
483 CN4, CN5 - Unamplified audio output, left/right RCA audio connectors (not used)
484 Notes:
485 TMP68000N-10- Toshiba TMP68000N-10 CPU, running at 10.000MHz (SDIP64, clock 20 / 2)
486 82C51 - Toshiba 82C51AM-10 Programmable 8-bit I/O Serial Interface (SOP28)
487 DSW1 - 4 position Dip Switch
488 MB8464 - Fujitsu MB8464 8k x8 SRAM (DIP28)
489 3771 - Fujitsu MB3771 Master Reset IC (DIP8)
490 TL062 - ST Microelectronics Dual Low Power Operational Amplifier (DIP8)
491 PC910 - Sharp PC910 opto-isolator (DIP8)
492 LC78820 - Sanyo LC78820 2-channel 18-bit D/A Converter (DIP20)
493 uPC844C - NEC uPC844C Quad High Speed Wide Band Operational Amplifier (DIP14)
494 315-5560 - Sega Custom (QFP100)
495 315-5577 - Lattice GAL16V8A (DIP20)
496 315-5578 - Lattice GAL16V8A (DIP20)
497 315-5579 - Lattice GAL16V8A (DIP20)
498 YM3438 - Yamaha YM3438 sound chip, running at 8.000MHz (DIP24, clock 16 / 2)
499 JP1, JP2 - Jumpers to configure ROM size of IC7, both set to 2-3
500 JP3, JP4 - Jumpers to configure ROM size of IC8, both set to 2-3
501 JP5, JP6 - Jumpers to configure size of RAM, both set to 2-3
502 JP7 - Jumper, set to 2-3
503 JP13, JP14, \
504 JP15, JP16, | Jumpers to configure size of ROMs at IC31, IC32 & IC33
505 JP17, JP18 / JP13 & JP14 set to 2-3, others set to 1-2
506 CN1 - 10 pin connector for power input (+5V, GND, +12V)
507 CN2 - 6 pin connector (joins to main PCB, used for sound communication from Main PCB to Sound PCB)
508 CN5 - 5 pin connector, unamplified sound out to Amp PCB
509 CN6, CN7 - Unamplified audio output, left/right RCA audio connectors (not used)
510 CN8, CN9 - Connectors to join Sound Option Board to Main Sound Board
511
512 Sound Main PCB
513 --------------
514
515 IC# PCB
516 Label Virtua Racing Virtua Fighter Wing War Star Wars Arcade
517 -----------------------------------------------------------------------------------
518 7 1024/4096 EPR-14870A EPR-16120 EPR-16751 !
519 8 1024/4096 - EPR-16121 EPR-16752 ?
520 31 27C4001 - - - ?
521 32 23C16000 MPR-14873 MPR-16122 MPR-16753 !
522 33 23C16000 - MPR-16123 MPR-16754 ?
523
524 Sound Sub PCB
525 -------------
526
527 IC# PCB
528 Label Virtua Racing Virtua Fighter Wing War Star Wars Arcade
529 -----------------------------------------------------------------------------------
530 3 27C4001 - - - ?
531 4 23C16000 MPR-14876 MPR-16124 MPR-16755 ?
532 5 23C16000 - MPR-16125 MPR-16756 ?
533
534 - denotes socket known to be not populated.
535 ! denotes known to be not dumped.
536 ? denotes unknown if socket is populated or not, but not dumped either way.
537
538
539 Audio Mix PCB
540 -------------
541
542 839-0542 (C) SEGA 1992
543 |-------------|
544 | |
545 | |
546 |CN1 CN3 CN2|
547 | |
548 | |
549 |-------------|
550 Notes:
551 This is a very small PCB with only 3 connectors on it and 4 resistors
552 which simply mixes the left/right audio into one overall output which
553 is fed into the Amp PCB.
554 CN1 - 5 pin connector, right channel audio input
555 CN2 - 5 pin connectos, mixed audio output to Amp PCB
556 CN3 - 5 pin connector, left channel audio input
557
558
559 Amp PCB
560 -------
561
562 838-10018 SJ25-0168-03
563 |----------------------------------|
564 | CN1 |
565 | 7812 CN2|
566 |CN3 |
567 | |
568 | TA8225H |
569 | |
570 | CN4|
571 | |
572 | |
573 | TA8225H |
574 | |
575 |LCH |
576 |RCH |
577 |----------------------------------|
578 Notes:
579 There are also many capacitors/transistors and other power-related
580 components which are not shown.
581
582 7812 - 12V voltage regulator
583 TA8225H - Toshiba TA8225H 45W power amplifier (x2)
584 CN1 - 3 pin connector, 12VAC power input
585 CN2 - 2 pin 12VDC power output
586 CN3 - 7 pin connector, joins to credit board and coin mech (power/credit related outputs)
587 CN4 - 4 pin connector, amplified dual (left/right) speaker audio outputs
588 RCH, LCH - RCA connectors, left/right sound input from CN2 of Audio Mix PCB
589
590
591 */
592
593 #include "emu.h"
594 #include "includes/model1.h"
595
596 #include "cpu/i386/i386.h"
597 #include "machine/clock.h"
598 #include "machine/model1io.h"
599 #include "machine/model1io2.h"
600 #include "speaker.h"
601
602 #include "vr.lh"
603 #include "model1io2.lh"
604
605 // On the real system, another 315-5338A is acting as slave
606 // and writes the data to the dual port RAM. This isn't
607 // emulated yet, data just gets written to RAM.
608
dpram_r(offs_t offset)609 u8 model1_state::dpram_r(offs_t offset)
610 {
611 // insert waitstate
612 m_maincpu->adjust_icount(-1);
613 return m_dpram->right_r(offset);
614 }
615
gen_outputs_w(uint8_t data)616 void model1_state::gen_outputs_w(uint8_t data)
617 {
618 // generic output lines, output to outx where x = bit
619 // eg. out0 = coin counter 1, see below for per-game descriptions
620 for (int i = 0; i < 8; i++)
621 m_outs[i] = BIT(data, i);
622
623 m_digits[1] = data;
624 }
625
vf_outputs_w(uint8_t data)626 void model1_state::vf_outputs_w(uint8_t data)
627 {
628 // 7654---- unknown (not used?)
629 // ----3--- start 2 lamp
630 // -----2-- start 1 lamp
631 // ------1- coin counter 2
632 // -------0 coin counter 1
633
634 machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
635 machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
636 }
637
vr_outputs_w(uint8_t data)638 void model1_state::vr_outputs_w(uint8_t data)
639 {
640 // 7------- race leader lamp
641 // -6------ vr4 (green) lamp
642 // --5----- vr3 (yellow) lamp
643 // ---4---- vr2 (blue) lamp
644 // ----3--- vr1 (red) lamp
645 // -----2-- start lamp
646 // ------1- coin counter 2
647 // -------0 coin counter 1
648
649 machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
650 machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
651 }
652
swa_outputs_w(uint8_t data)653 void model1_state::swa_outputs_w(uint8_t data)
654 {
655 // 7------- unknown (not used?)
656 // -6------ unknown (1 while in-game)
657 // --5----- unknown (not used?)
658 // ---4---- vr lamp
659 // ----3--- unknown (not used?)
660 // -----2-- start lamp
661 // ------1- coin counter 2
662 // -------0 coin counter 1
663
664 machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
665 machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
666 }
667
wingwar_outputs_w(uint8_t data)668 void model1_state::wingwar_outputs_w(uint8_t data)
669 {
670 // 7------- unknown (not used?)
671 // -6------ view selector 4 lamp
672 // --5----- view selector 3 lamp
673 // ---4---- view selector 2 lamp
674 // ----3--- view selector 1 lamp
675 // -----2-- start lamp
676 // ------1- unknown (not used?)
677 // -------0 coin counter 1
678
679 machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
680 }
681
wingwar360_outputs_w(uint8_t data)682 void model1_state::wingwar360_outputs_w(uint8_t data)
683 {
684 // 7654---- unknown (not used?)
685 // ----3--- danger lamp
686 // -----2-- start lamp
687 // ------1- coin counter 2
688 // -------0 coin counter 1
689
690 machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
691 machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
692 }
693
netmerc_outputs_w(uint8_t data)694 void model1_state::netmerc_outputs_w(uint8_t data)
695 {
696 // 76------ unknown (not used?)
697 // --54---- mvd backlights
698 // ----3--- mvd holder light
699 // -----2-- trigger/thumb motor
700 // ------1- unknown (not used?)
701 // -------0 coin counter 1
702
703 machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
704 }
705
drive_board_w(uint8_t data)706 void model1_state::drive_board_w(uint8_t data)
707 {
708 m_digits[0] = data;
709 }
710
r360_r()711 uint8_t model1_state::r360_r()
712 {
713 return m_r360_state;
714 }
715
r360_w(uint8_t data)716 void model1_state::r360_w(uint8_t data)
717 {
718 /*
719 this uses the feedback board protocol
720 command group B - these seem to be gamestates
721
722 bf = init
723 be = attract
724 bd = setup #1 (lower safety bar etc.)
725 bc = setup #2 (push emergency button)
726 bb = ready to go
727 ba = ingame
728 b9 = game over
729
730 results:
731 40 = default status
732 41 = * (setup #1 ack)
733 42 = lowered safety bar
734 43 = closed belt
735 44 = lever up
736 45 = pushed button
737 46 = game start
738 47 = game over
739 48 = lever down
740 49 = released belt
741 */
742 switch (data & 0xff)
743 {
744 case 0xbf:
745 case 0xbe:
746 m_r360_state = ~0x40;
747 break;
748
749 case 0xbd:
750 m_r360_state = ~0x44;
751 break;
752
753 case 0xbc:
754 m_r360_state = ~0x45;
755 break;
756
757 case 0xbb:
758 m_r360_state = ~0x46;
759 break;
760
761 case 0xba:
762 case 0xb9:
763 m_r360_state = ~0x40;
764 break;
765 }
766 }
767
fifoin_status_r()768 u16 model1_state::fifoin_status_r()
769 {
770 return 0xffff;
771 }
772
bank_w(offs_t offset,u16 data,u16 mem_mask)773 void model1_state::bank_w(offs_t offset, u16 data, u16 mem_mask)
774 {
775
776 if(ACCESSING_BITS_0_7) {
777 switch(data & 0xf) {
778 case 0x1: // 100000-1fffff data roms banking
779 membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000 + 0x100000*((data >> 4) & 0x7)); // netmerc has bit 0x80 set when banking, probably not a bank bit.
780 logerror("BANK %x\n", 0x1000000 + 0x100000*((data >> 4) & 0xf));
781 break;
782 case 0x2: // 200000-2fffff data roms banking (unused, all known games have only one bank)
783 break;
784 case 0xf: // f00000-ffffff program roms banking (unused, all known games have only one bank)
785 break;
786 }
787 }
788 }
789
790
791
irq_raise(int level)792 void model1_state::irq_raise(int level)
793 {
794 // logerror("irq: raising %d\n", level);
795 m_irq_status |= (1 << level);
796 m_maincpu->set_input_line(0, ASSERT_LINE);
797 }
798
IRQ_CALLBACK_MEMBER(model1_state::irq_callback)799 IRQ_CALLBACK_MEMBER(model1_state::irq_callback)
800 {
801 for (int i = 0; i < 8; i++)
802 if (BIT(m_irq_status, i))
803 {
804 m_last_irq = i;
805 break;
806 }
807
808 return m_last_irq;
809 }
810
irq_control_w(u8 data)811 void model1_state::irq_control_w(u8 data)
812 {
813 switch (data)
814 {
815 case 0x10:
816 m_irq_status = 0;
817 m_maincpu->set_input_line(0, CLEAR_LINE);
818 break;
819
820 case 0x20:
821 m_irq_status &= ~(1 << m_last_irq);
822 if (m_irq_status == 0)
823 m_maincpu->set_input_line(0, CLEAR_LINE);
824 break;
825 }
826 }
827
828 // vf
829 // 1 = fe3ed4
830 // 3 = fe3f5c
831 // other = fe3ec8 / fe3ebc
832
833 // vr
834 // 1 = fe02bc
835 // other = f302a4 / fe02b0
836
837 // swa
838 // 1 = ff504
839 // 3 = ff54c
840 // other = ff568/ff574
841
irq_init()842 void model1_state::irq_init()
843 {
844 m_maincpu->set_input_line(0, CLEAR_LINE);
845 m_m1uart->write_cts(0);
846 }
847
TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt)848 TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt)
849 {
850 int scanline = param;
851
852 if (scanline == 384)
853 {
854 if (m_m1comm != nullptr)
855 m_m1comm->check_vint_irq();
856 irq_raise(1);
857 }
858 else if(scanline == 384/2)
859 {
860 irq_raise(m_sound_irq);
861 }
862 }
863
machine_reset()864 void model1_state::machine_reset()
865 {
866 membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000);
867 irq_init();
868 copro_reset();
869
870 if (!strcmp(machine().system().name, "swa") ||
871 !strcmp(machine().system().name, "swaj"))
872 {
873 m_sound_irq = 0;
874 }
875 else
876 {
877 m_sound_irq = 3;
878 }
879 }
880
881
model1_mem(address_map & map)882 void model1_state::model1_mem(address_map &map)
883 {
884 /* ROMA */ map(0x000000, 0x0fffff).rom();
885 /* ROMO */ map(0x100000, 0x1fffff).bankr("bank1");
886 /* ROMX */ map(0x200000, 0x2fffff).rom();
887 /* ROMY */
888 /* RAMA */ map(0x400000, 0x40ffff).ram();
889 /* RAMB */ map(0x500000, 0x53ffff).ram();
890
891 /* TGP */ map(0x600000, 0x60ffff).ram().share("display_list0");
892 /* */ map(0x610000, 0x61ffff).ram().share("display_list1");
893 /* */ map(0x680000, 0x680003).rw(FUNC(model1_state::model1_listctl_r), FUNC(model1_state::model1_listctl_w));
894
895 /* SCR */ map(0x700000, 0x70ffff).rw(m_tiles, FUNC(segas24_tile_device::tile_r), FUNC(segas24_tile_device::tile_w));
896 /* */ map(0x720000, 0x720001).nopw(); // Unknown, always 0
897 /* */ map(0x740000, 0x740001).nopw(); // Horizontal synchronization register
898 /* */ map(0x760000, 0x760001).nopw(); // Vertical synchronization register
899 /* */ map(0x770000, 0x770001).nopw(); // Video synchronization switch
900 /* */ map(0x780000, 0x7fffff).rw(m_tiles, FUNC(segas24_tile_device::char_r), FUNC(segas24_tile_device::char_w));
901
902 /* OBJ */
903
904 /* COL */ map(0x900000, 0x903fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
905 /* */ map(0x910000, 0x91bfff).ram().share("color_xlat");
906
907 /* EX0 */
908 /* EX1 */
909
910 /* I/O */ map(0xc00000, 0xc00fff).r(FUNC(model1_state::dpram_r)).w(m_dpram, FUNC(mb8421_device::right_w)).umask16(0x00ff); // 2k*8-bit dual port ram
911 /* */ map(0xc40000, 0xc40003).rw(m_m1uart, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
912
913 /* CPR */ map(0xd00000, 0xd00001).rw(FUNC(model1_state::v60_copro_ram_adr_r), FUNC(model1_state::v60_copro_ram_adr_w)).mirror(0x1fffe);
914 /* */ map(0xd20000, 0xd20003).rw(FUNC(model1_state::v60_copro_ram_r), FUNC(model1_state::v60_copro_ram_w)).mirror(0x1fffc);
915 /* */ map(0xd80000, 0xd80003).rw(FUNC(model1_state::v60_copro_fifo_r), FUNC(model1_state::v60_copro_fifo_w)).mirror(0x1fffc);
916 /* */ map(0xdc0000, 0xdc0003).r(FUNC(model1_state::fifoin_status_r)).mirror(0x1fffc);
917
918 /* GLUE */ map(0xe00000, 0xe00000).w(FUNC(model1_state::irq_control_w));
919 /* */ map(0xe00004, 0xe00005).w(FUNC(model1_state::bank_w));
920 /* */ map(0xe0000c, 0xe0000f).nopw();
921
922 /* ROM0 */ map(0xf80000, 0xffffff).rom();
923 }
924
model1_io(address_map & map)925 void model1_state::model1_io(address_map &map)
926 {
927 map(0xd00000, 0xd00001).rw(FUNC(model1_state::v60_copro_ram_adr_r), FUNC(model1_state::v60_copro_ram_adr_w)).mirror(0x1fffe);
928 map(0xd20000, 0xd20003).rw(FUNC(model1_state::v60_copro_ram_r), FUNC(model1_state::v60_copro_ram_w)).mirror(0x1fffc);
929 map(0xd80000, 0xd80003).rw(FUNC(model1_state::v60_copro_fifo_r), FUNC(model1_state::v60_copro_fifo_w)).mirror(0x1fffc);
930 map(0xdc0000, 0xdc0003).r(FUNC(model1_state::fifoin_status_r)).mirror(0x1fffc);
931 }
932
model1_comm_mem(address_map & map)933 void model1_state::model1_comm_mem(address_map &map)
934 {
935 model1_mem(map);
936
937 map(0xb00000, 0xb00fff).rw(m_m1comm, FUNC(m1comm_device::share_r), FUNC(m1comm_device::share_w));
938 map(0xb01000, 0xb01000).rw(m_m1comm, FUNC(m1comm_device::cn_r), FUNC(m1comm_device::cn_w));
939 map(0xb01002, 0xb01002).rw(m_m1comm, FUNC(m1comm_device::fg_r), FUNC(m1comm_device::fg_w));
940 }
941
942 static INPUT_PORTS_START( ioboard_dipswitches )
943 PORT_START("ioboard:dsw1")
944 PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW1:1")
945 PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW1:2")
946 PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW1:3")
947 PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW1:4")
948 PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW1:5")
949 PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW1:6")
950 PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW1:7")
951 PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW1:8")
952
953 PORT_START("ioboard:dsw2")
954 PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW2:1")
955 PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW2:2")
956 PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW2:3")
957 PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW2:4")
958 PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW2:5")
959 PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW2:6")
960 PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW2:7")
961 PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW2:8")
962
963 PORT_START("ioboard:dsw3")
964 PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW3:1")
965 PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW3:2")
966 PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW3:3")
967 PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW3:4")
968 PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW3:5")
969 PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW3:6")
970 PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW3:7")
971 PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW3:8")
972 INPUT_PORTS_END
973
INPUT_PORTS_START(vf)974 static INPUT_PORTS_START( vf )
975 PORT_START("IN.0")
976 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
977 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
978 PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
979 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
980 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
981 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
982 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
983 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
984
985 PORT_START("IN.1")
986 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
987 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
988 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
989 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
990 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
991 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
992 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
993 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
994
995 PORT_START("IN.2")
996 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
997 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
998 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
999 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1000 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
1001 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
1002 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
1003 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
1004
1005 PORT_INCLUDE(ioboard_dipswitches)
1006 INPUT_PORTS_END
1007
1008 static INPUT_PORTS_START( vr )
1009 PORT_START("IN.0")
1010 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1011 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1012 PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
1013 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
1014 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
1015 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("VR1 (Red)")
1016 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("VR2 (Blue)")
1017 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("VR3 (Yellow)")
1018
1019 PORT_START("IN.1")
1020 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("VR4 (Green)")
1021 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1022 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
1023 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1024 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Shift Down")
1025 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Shift Up")
1026 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
1027 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
1028
1029 PORT_START("IN.2") /* 8Bit RX-line from drive board */
1030 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1031
1032 PORT_START("WHEEL")
1033 PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(3)
1034
1035 PORT_START("ACCEL")
1036 PORT_BIT( 0xff, 0x30, IPT_PEDAL ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16)
1037
1038 PORT_START("BRAKE")
1039 PORT_BIT( 0xff, 0x30, IPT_PEDAL2 ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16)
1040
1041 PORT_INCLUDE(ioboard_dipswitches)
1042 INPUT_PORTS_END
1043
1044 static INPUT_PORTS_START( swa )
1045 PORT_START("IN.0")
1046 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1047 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1048 PORT_SERVICE_NO_TOGGLE(0x0004, IP_ACTIVE_LOW)
1049 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
1050 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
1051 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
1052 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
1053
1054 PORT_START("IN.1")
1055 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1056 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1057 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1058 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1059 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1060 PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
1061
1062 PORT_START("IN.2")
1063 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1064
1065 PORT_START("STICK1X")
1066 PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1067
1068 PORT_START("STICK1Y")
1069 PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1070
1071 PORT_START("THROTTLE")
1072 PORT_BIT( 0xff, 0x7f, IPT_PEDAL ) PORT_MINMAX(28,200) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_REVERSE
1073
1074 PORT_START("STICK2X")
1075 PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2) PORT_REVERSE
1076
1077 PORT_START("STICK2Y")
1078 PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2)
1079
1080 PORT_INCLUDE(ioboard_dipswitches)
1081 INPUT_PORTS_END
1082
1083 static INPUT_PORTS_START( wingwar )
1084 PORT_START("IN.0")
1085 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1086 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1087 PORT_SERVICE_NO_TOGGLE(0x0004, IP_ACTIVE_LOW)
1088 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
1089 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
1090 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("View 1")
1091 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("View 2")
1092 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("View 3")
1093
1094 PORT_START("IN.1")
1095 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("View 4")
1096 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1097 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
1098 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1099 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("Machine Gun")
1100 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Missile")
1101 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("Smoke")
1102 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
1103
1104 PORT_START("STICKX")
1105 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1106
1107 PORT_START("STICKY")
1108 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
1109
1110 PORT_START("THROTTLE")
1111 PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16)
1112
1113 PORT_INCLUDE(ioboard_dipswitches)
1114 INPUT_PORTS_END
1115
1116 static INPUT_PORTS_START( wingwar360 )
1117 PORT_INCLUDE(wingwar)
1118
1119 PORT_MODIFY("IN.0")
1120 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1121 PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
1122
1123 PORT_MODIFY("IN.1")
1124 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
1125
1126 PORT_MODIFY("STICKX")
1127 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
1128
1129 PORT_MODIFY("STICKY")
1130 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1131 INPUT_PORTS_END
1132
1133 static INPUT_PORTS_START( netmerc )
1134 PORT_START("IN.0")
1135 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1136 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1137 PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
1138 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
1139 PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
1140
1141 PORT_START("IN.1")
1142 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Trigger")
1143 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Thumb")
1144 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("MVD Holder")
1145 PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
1146
1147 PORT_START("STICKX")
1148 PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1149
1150 PORT_START("STICKY")
1151 PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1152
1153 PORT_INCLUDE(ioboard_dipswitches)
1154 INPUT_PORTS_END
1155
1156
1157
1158 #define MODEL1_CPU_BOARD \
1159 ROM_REGION32_LE( 0x40000, "copro_tables", 0 ) \
1160 ROM_LOAD32_WORD("opr14742.bin", 0x000000, 0x20000, CRC(446a1085) SHA1(51b3f4d3a35a36087ea0ba4e26d6e7d17b6418e2) ) \
1161 ROM_LOAD32_WORD("opr14743.bin", 0x000002, 0x20000, CRC(e8953554) SHA1(1499f8e30ac15affc66e6f04ae031bb8680d9260) ) \
1162 \
1163 ROM_REGION32_LE( 0x80000, "other_data", 0 ) \
1164 /* 1/x table */ \
1165 ROM_LOAD32_WORD("opr-14744.58", 0x000000, 0x20000, CRC(730ea9e0) SHA1(651f1db4089a400d073b19ada299b4b08b08f372) ) \
1166 ROM_LOAD32_WORD("opr-14745.59", 0x000002, 0x20000, CRC(4c934d96) SHA1(e3349ece0e47f684d61ad11bfea4a90602287350) ) \
1167 /* 1/sqrt(x) table */ \
1168 ROM_LOAD32_WORD("opr-14746.62", 0x040000, 0x20000, CRC(2a266cbd) SHA1(34e047a93459406c22acf4c25089d1a4955f94ca) ) \
1169 ROM_LOAD32_WORD("opr-14747.63", 0x040002, 0x20000, CRC(a4ad5e19) SHA1(7d7ec300eeb9a8de1590011e37108688c092f329) ) \
1170 \
1171 ROM_REGION16_LE( 0x20000, "other_other_data", 0 ) \
1172 /* 1/(1+x) again, but bottom 16 bits only */ \
1173 ROM_LOAD("opr14748.bin", 0x000000, 0x20000, CRC(4a532cb8) SHA1(23280ebbcd6b2bc8a8e643a2d07a58d6598301b8) ) \
1174 \
1175 ROM_REGION32_LE( 0x2000, "315_5571", 0) \
1176 ROM_LOAD("315-5571.bin", 0, 0x2000, CRC(1233db2a) SHA1(06760409d40f3d9117fd3e7c7ab62dfd70aa2a4d) ) \
1177 \
1178 ROM_REGION32_LE( 0x2000, "315_5572", 0) \
1179 ROM_LOAD("315-5572.bin", 0, 0x2000, CRC(66785906) SHA1(d94a51eced65b0073fb39625927782bf264d271a) )
1180
1181 ROM_START( vf )
1182 MODEL1_CPU_BOARD
1183
1184 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1185 ROM_LOAD16_BYTE( "epr-16082.14", 0x200000, 0x80000, CRC(b23f22ee) SHA1(9fd5b5a5974703a60a54de3d2bce4301bfc0e533) ) /* Rom board with Sega ID# 834-10170 */
1186 ROM_LOAD16_BYTE( "epr-16083.15", 0x200001, 0x80000, CRC(d12c77f8) SHA1(b4aeba8d5f1ab4aec024391407a2cb58ce2e94b0) )
1187
1188 ROM_LOAD( "epr-16080.4", 0xfc0000, 0x20000, CRC(3662e1a5) SHA1(6bfceb1a7c1c7912679c907f2b7516ae9c7dda67) )
1189 ROM_LOAD( "epr-16081.5", 0xfe0000, 0x20000, CRC(6dec06ce) SHA1(7891544456bccd2fc647bccd058945ad50466636) )
1190
1191 ROM_LOAD16_BYTE( "mpr-16084.6", 0x1000000, 0x80000, CRC(483f453b) SHA1(41a5527be73f5dd1c87b2a8113235bdd247ec049) )
1192 ROM_LOAD16_BYTE( "mpr-16085.7", 0x1000001, 0x80000, CRC(5fa01277) SHA1(dfa7ddff0a7daf29071431f26b93dd8e8e5793b6) )
1193 ROM_LOAD16_BYTE( "mpr-16086.8", 0x1100000, 0x80000, CRC(deac47a1) SHA1(3a8016124e4dc579d4aae745d4af1905ad0e4fbd) )
1194 ROM_LOAD16_BYTE( "mpr-16087.9", 0x1100001, 0x80000, CRC(7a64daac) SHA1(da6a9cad4b0cb2af4299e664c0889f3fbdc25530) )
1195 ROM_LOAD16_BYTE( "mpr-16088.10", 0x1200000, 0x80000, CRC(fcda2d1e) SHA1(0f7d0f604d429a1da0d1c3f31694520bada49680) )
1196 ROM_LOAD16_BYTE( "mpr-16089.11", 0x1200001, 0x80000, CRC(39befbe0) SHA1(362c493092cd0536fadee7326ecc7f973e23fb58) )
1197 ROM_LOAD16_BYTE( "mpr-16090.12", 0x1300000, 0x80000, CRC(90c76831) SHA1(5a3c25f2a131cfbb2ad067bef1ab7b1c95645d41) )
1198 ROM_LOAD16_BYTE( "mpr-16091.13", 0x1300001, 0x80000, CRC(53115448) SHA1(af798d5b1fcb720d7288a5ac48839d9ace16a2f2) )
1199
1200 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1201 ROM_LOAD("315-5724.bin", 0, 0x2000, CRC(4b4f330e) SHA1(8809d93d47593f808faca55161999677ac7a3eb0) BAD_DUMP )
1202
1203 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1204 ROM_LOAD16_WORD_SWAP( "epr-16120.7", 0x00000, 0x20000, CRC(2bff8378) SHA1(854b08ab983e4e98cb666f2f44de9a6829b1eb52) )
1205 ROM_LOAD16_WORD_SWAP( "epr-16121.8", 0x20000, 0x20000, CRC(ff6723f9) SHA1(53498b8c103745883657dfd6efe27edfd48b356f) )
1206 ROM_RELOAD( 0x80000, 0x20000)
1207
1208 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1209 ROM_LOAD( "mpr-16122.32", 0x000000, 0x200000, CRC(568bc64e) SHA1(31fd0ef8319efe258011b4621adebb790b620770) )
1210 ROM_LOAD( "mpr-16123.33", 0x200000, 0x200000, CRC(15d78844) SHA1(37c17e38604cf7004a951408024941cd06b1d93e) )
1211
1212 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1213 ROM_LOAD( "mpr-16124.4", 0x000000, 0x200000, CRC(45520ba1) SHA1(c33e3c12639961016e5fa6b5025d0a67dff28907) )
1214 ROM_LOAD( "mpr-16125.5", 0x200000, 0x200000, CRC(9b4998b6) SHA1(0418d9b0acf79f35d0f7575c21f1be9a0ea343da) )
1215
1216 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1217 ROM_LOAD32_WORD( "mpr-16096.26", 0x000000, 0x200000, CRC(a92b0bf3) SHA1(fd3adff5f41f0b0be98df548c848eda04fc0da48) )
1218 ROM_LOAD32_WORD( "mpr-16097.27", 0x000002, 0x200000, CRC(0232955a) SHA1(df934fb6d022032620932571ff5ed176d5dcb017) )
1219 ROM_LOAD32_WORD( "mpr-16098.28", 0x400000, 0x200000, CRC(cf2e1b84) SHA1(f3d16c72344f7f218a792ce7f1dd7cad910a8c97) )
1220 ROM_LOAD32_WORD( "mpr-16099.29", 0x400002, 0x200000, CRC(20e46854) SHA1(423d3642bd2f14e68d29029c027b791de2c1ec53) )
1221 ROM_LOAD32_WORD( "mpr-16100.30", 0x800000, 0x200000, CRC(e13e983d) SHA1(120637caa2404ad4124b676fd6fcd721f30948df) )
1222 ROM_LOAD32_WORD( "mpr-16101.31", 0x800002, 0x200000, CRC(0dbed94d) SHA1(df1cddcc1d3976816bd786c2d6211a8563f6f690) )
1223 ROM_LOAD32_WORD( "mpr-16102.32", 0xc00000, 0x200000, CRC(4cb41fb6) SHA1(4a07bfad4f221508de8c931861424dcc5be3f46a) )
1224 ROM_LOAD32_WORD( "mpr-16103.33", 0xc00002, 0x200000, CRC(526d1c76) SHA1(edc8dafc9261cd0e970c3b50e3c1ca51a32a4cdf) )
1225 ROM_END
1226
1227 /*
1228 Virtua Racing
1229
1230 Sega game ID# 833-8942 VIRTUA RACING TWIN
1231 Sega ROM board ID# 834-8941
1232 */
1233 ROM_START( vr )
1234 MODEL1_CPU_BOARD
1235
1236 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1237 ROM_LOAD16_BYTE( "epr-14882.14", 0x200000, 0x80000, CRC(547d75ad) SHA1(a57c11966886c37de1d7df131ad60457669231dd) )
1238 ROM_LOAD16_BYTE( "epr-14883.15", 0x200001, 0x80000, CRC(6bfad8b1) SHA1(c1f780e456b405abd42d92f4e03e40aad88f8c22) )
1239
1240 ROM_LOAD( "epr-14878a.4", 0xfc0000, 0x20000, CRC(6d69e695) SHA1(12d3612d3dfd474b8020cdfb8ffc5dcc64e2e1a3) )
1241 ROM_LOAD( "epr-14879a.5", 0xfe0000, 0x20000, CRC(d45af9dd) SHA1(48f2bf940c78e3ae4273a56e9f32371d870e41e0) )
1242
1243 ROM_LOAD16_BYTE( "mpr-14880.6", 0x1000000, 0x80000, CRC(adc7c208) SHA1(967b6f522011f17fd2821ccbe20bcb6d4680a4a0) )
1244 ROM_LOAD16_BYTE( "mpr-14881.7", 0x1000001, 0x80000, CRC(e5ab89df) SHA1(873dea86628457e69f732158e3efb05d133eaa44) )
1245 ROM_LOAD16_BYTE( "mpr-14884.8", 0x1100000, 0x80000, CRC(6cf9c026) SHA1(f4d717958dba6b6402f5ffe7638fe0bf353b61ed) )
1246 ROM_LOAD16_BYTE( "mpr-14885.9", 0x1100001, 0x80000, CRC(f65c9262) SHA1(511a22bcfaf199737bfc5a809fd66cb4439dd386) )
1247 ROM_LOAD16_BYTE( "mpr-14886.10", 0x1200000, 0x80000, CRC(92868734) SHA1(e1dfb134dc3ba7e0b1d40681621e09ac5a222518) )
1248 ROM_LOAD16_BYTE( "mpr-14887.11", 0x1200001, 0x80000, CRC(10c7c636) SHA1(c77d55460bba4354349e473e129f21afeed05e91) )
1249 ROM_LOAD16_BYTE( "mpr-14888.12", 0x1300000, 0x80000, CRC(04bfdc5b) SHA1(bb8788a761620d0440a62ae51c3b41f70a04b5e4) )
1250 ROM_LOAD16_BYTE( "mpr-14889.13", 0x1300001, 0x80000, CRC(c49f0486) SHA1(cc2bb9059c016ba2c4f6e7508bd1687df07b8b48) )
1251
1252 ROM_REGION( 0x2000, "tgp_copro", 0 ) /* TGP program rom */
1253 ROM_LOAD("315-5573.bin", 0, 0x2000, CRC(3335a19b) SHA1(72eedfcc799ec4c7534fd7415de6631087ff6731) )
1254
1255 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1256 ROM_LOAD16_WORD_SWAP( "epr-14870a.7", 0x00000, 0x20000, CRC(919d9b75) SHA1(27be79881cc9a2b5cf37e18f1e2d87251426b428) )
1257
1258 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1259 ROM_LOAD( "mpr-14873.32", 0x000000, 0x200000, CRC(b1965190) SHA1(fc47e9ed4a44d48477bd9a35e42c26508c0f4a0c) )
1260
1261 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1262 ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) )
1263
1264 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1265 ROM_LOAD32_WORD( "mpr-14890.26", 0x000000, 0x200000, CRC(dcbe006b) SHA1(195be7fabec405ca1b4e1338d3b8d7bb4a06dd73) )
1266 ROM_LOAD32_WORD( "mpr-14891.27", 0x000002, 0x200000, CRC(25832b38) SHA1(a8d74538149c92bae661334e327b031eaca2a8f2) )
1267 ROM_LOAD32_WORD( "mpr-14892.28", 0x400000, 0x200000, CRC(5136f3ba) SHA1(ce8312975764db09bbfa2068b99559a5c1798a36) )
1268 ROM_LOAD32_WORD( "mpr-14893.29", 0x400002, 0x200000, CRC(1c531ada) SHA1(8b373ac97a3649c64f48eb3d1dd95c5833f330b6) )
1269 ROM_LOAD32_WORD( "mpr-14894.30", 0x800000, 0x200000, CRC(830a71bc) SHA1(884378e8a5afeb819daf5285d0d205986d566340) )
1270 ROM_LOAD32_WORD( "mpr-14895.31", 0x800002, 0x200000, CRC(af027ac5) SHA1(523f03d90358ddb7d0e96fd06b9a65cebfc09f24) )
1271 ROM_LOAD32_WORD( "mpr-14896.32", 0xc00000, 0x200000, CRC(382091dc) SHA1(efa266f0f6bfe36ad1c365e588fff33b01e166dd) )
1272 ROM_LOAD32_WORD( "mpr-14897.33", 0xc00002, 0x200000, CRC(74873195) SHA1(80705ec577d14570f9bba77cc26766f831c41f42) )
1273
1274 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1275 ROM_LOAD32_BYTE( "mpr-14898.39", 0x000000, 0x80000, CRC(61da2bb6) SHA1(7a12ba522d64a1aeec1ca6f5a87ee063692131f9) )
1276 ROM_LOAD32_BYTE( "mpr-14899.40", 0x000001, 0x80000, CRC(2cd58bee) SHA1(73defec823de4244a387af55fea7210edc1b314f) )
1277 ROM_LOAD32_BYTE( "mpr-14900.41", 0x000002, 0x80000, CRC(aa7c017d) SHA1(0fa2b59a8bb5f5907b2b2567e69d11c73b398dc1) )
1278 ROM_LOAD32_BYTE( "mpr-14901.42", 0x000003, 0x80000, CRC(175b7a9a) SHA1(c86602e771cd49bab425b4ba7926d2f44858bd39) )
1279
1280 ROM_REGION16_LE(0x80, "ioboard:eeprom", 0)
1281 ROM_LOAD("93c45.bin", 0x00, 0x80, CRC(65aac303) SHA1(17687fedf1578e977cae4e7c3f5c00cad4aa490d) )
1282 ROM_END
1283
1284 ROM_START( vformula )
1285 MODEL1_CPU_BOARD
1286
1287 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1288 ROM_LOAD16_BYTE( "epr-15638.14", 0x200000, 0x80000, CRC(b9db21a2) SHA1(db58c047977f5fc37f278afe7159a78e3fa6c015) )
1289 ROM_LOAD16_BYTE( "epr-15639.15", 0x200001, 0x80000, CRC(4c3796f5) SHA1(1bf312a4999a15fbc5d194627f9c0ad9dbc1f2c0) )
1290
1291 ROM_LOAD( "epr-15623.4", 0xfc0000, 0x20000, CRC(155fa5be) SHA1(a0a3fd8980c52279adbc1c64aa22e42a0b196dd9) )
1292 ROM_LOAD( "epr-15622.5", 0xfe0000, 0x20000, CRC(18007f6f) SHA1(61573742627ec027abd2cc700e79f04da5215bfd) )
1293
1294 ROM_LOAD16_BYTE( "epr-15641.6", 0x1000000, 0x80000, CRC(bf01e4d5) SHA1(53ad9ecd2de2ea1d7b446f9db61352e10a55ea05) )
1295 ROM_LOAD16_BYTE( "epr-15640.7", 0x1000001, 0x80000, CRC(3e6d83dc) SHA1(62aa552a38ee193e0dfab5d1261756fe237db42c) )
1296 ROM_LOAD16_BYTE( "mpr-14884.8", 0x1100000, 0x80000, CRC(6cf9c026) SHA1(f4d717958dba6b6402f5ffe7638fe0bf353b61ed) )
1297 ROM_LOAD16_BYTE( "mpr-14885.9", 0x1100001, 0x80000, CRC(f65c9262) SHA1(511a22bcfaf199737bfc5a809fd66cb4439dd386) )
1298 ROM_LOAD16_BYTE( "mpr-14886.10", 0x1200000, 0x80000, CRC(92868734) SHA1(e1dfb134dc3ba7e0b1d40681621e09ac5a222518) )
1299 ROM_LOAD16_BYTE( "mpr-14887.11", 0x1200001, 0x80000, CRC(10c7c636) SHA1(c77d55460bba4354349e473e129f21afeed05e91) )
1300 ROM_LOAD16_BYTE( "mpr-14888.12", 0x1300000, 0x80000, CRC(04bfdc5b) SHA1(bb8788a761620d0440a62ae51c3b41f70a04b5e4) )
1301 ROM_LOAD16_BYTE( "mpr-14889.13", 0x1300001, 0x80000, CRC(c49f0486) SHA1(cc2bb9059c016ba2c4f6e7508bd1687df07b8b48) )
1302
1303 ROM_REGION( 0x2000, "tgp_copro", 0 ) /* TGP program rom */
1304 ROM_LOAD("315-5573.bin", 0, 0x2000, CRC(3335a19b) SHA1(72eedfcc799ec4c7534fd7415de6631087ff6731) )
1305
1306 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1307 ROM_LOAD16_WORD_SWAP( "epr-14870a.7", 0x00000, 0x20000, CRC(919d9b75) SHA1(27be79881cc9a2b5cf37e18f1e2d87251426b428) )
1308
1309 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1310 ROM_LOAD( "mpr-14873.32", 0x000000, 0x200000, CRC(b1965190) SHA1(fc47e9ed4a44d48477bd9a35e42c26508c0f4a0c) )
1311
1312 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1313 ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) )
1314
1315 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1316 ROM_LOAD32_WORD( "mpr-14890.26", 0x000000, 0x200000, CRC(dcbe006b) SHA1(195be7fabec405ca1b4e1338d3b8d7bb4a06dd73) )
1317 ROM_LOAD32_WORD( "mpr-14891.27", 0x000002, 0x200000, CRC(25832b38) SHA1(a8d74538149c92bae661334e327b031eaca2a8f2) )
1318 ROM_LOAD32_WORD( "mpr-14892.28", 0x400000, 0x200000, CRC(5136f3ba) SHA1(ce8312975764db09bbfa2068b99559a5c1798a36) )
1319 ROM_LOAD32_WORD( "mpr-14893.29", 0x400002, 0x200000, CRC(1c531ada) SHA1(8b373ac97a3649c64f48eb3d1dd95c5833f330b6) )
1320 ROM_LOAD32_WORD( "mpr-14894.30", 0x800000, 0x200000, CRC(830a71bc) SHA1(884378e8a5afeb819daf5285d0d205986d566340) )
1321 ROM_LOAD32_WORD( "mpr-14895.31", 0x800002, 0x200000, CRC(af027ac5) SHA1(523f03d90358ddb7d0e96fd06b9a65cebfc09f24) )
1322 ROM_LOAD32_WORD( "mpr-14896.32", 0xc00000, 0x200000, CRC(382091dc) SHA1(efa266f0f6bfe36ad1c365e588fff33b01e166dd) )
1323 ROM_LOAD32_WORD( "mpr-14897.33", 0xc00002, 0x200000, CRC(74873195) SHA1(80705ec577d14570f9bba77cc26766f831c41f42) )
1324
1325 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1326 ROM_LOAD32_BYTE( "mpr-14898.39", 0x000000, 0x80000, CRC(61da2bb6) SHA1(7a12ba522d64a1aeec1ca6f5a87ee063692131f9) )
1327 ROM_LOAD32_BYTE( "mpr-14899.40", 0x000001, 0x80000, CRC(2cd58bee) SHA1(73defec823de4244a387af55fea7210edc1b314f) )
1328 ROM_LOAD32_BYTE( "mpr-14900.41", 0x000002, 0x80000, CRC(aa7c017d) SHA1(0fa2b59a8bb5f5907b2b2567e69d11c73b398dc1) )
1329 ROM_LOAD32_BYTE( "mpr-14901.42", 0x000003, 0x80000, CRC(175b7a9a) SHA1(c86602e771cd49bab425b4ba7926d2f44858bd39) )
1330
1331 ROM_REGION( 0x20000, "commboard", 0 ) /* Comms Board */
1332 ROM_LOAD( "epr-15624.17", 0x00000, 0x20000, CRC(9b3ba315) SHA1(0cd0983cc8b2f2d6b41617d0d0a24cc6c188e62a) )
1333 ROM_END
1334
1335
1336 ROM_START( swa )
1337 MODEL1_CPU_BOARD
1338
1339 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1340 ROM_LOAD16_BYTE( "epr-16669.14", 0x200000, 0x80000, CRC(52e5e7e4) SHA1(0eb584299d821a61ed2c27c615356eaeb18b41c6) )
1341 ROM_LOAD16_BYTE( "epr-16670.15", 0x200001, 0x80000, CRC(1e7ecabd) SHA1(62e8dd5d3a053426a1f3d94d15b04621d36d6a2c) )
1342
1343 ROM_LOAD( "epr-16668.5", 0xf80000, 0x80000, CRC(9e112425) SHA1(fc7be83b33b586780444e3426164e1cb5125f794) )
1344 ROM_RELOAD( 0x000000, 0x80000 )
1345 ROM_RELOAD( 0x080000, 0x80000 )
1346
1347 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1348 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP)
1349
1350 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1351 ROM_LOAD16_WORD_SWAP( "epr-16470.7", 0x000000, 0x020000, CRC(7da18cf7) SHA1(bd432d882d217277faee120e2577357a32eb4a6e) )
1352 ROM_RELOAD(0x80000, 0x20000)
1353
1354 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1355 ROM_LOAD( "mpr-16486.32", 0x000000, 0x200000, CRC(7df50533) SHA1(f2fb876738e37d70eb9005e5629a9ae89aa413a8) )
1356 ROM_LOAD( "mpr-16487.33", 0x200000, 0x200000, CRC(31b28dfa) SHA1(bd1ac11bf2f9161f61f8af3b9ff4c2709b7ee700) )
1357
1358 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1359 ROM_LOAD( "mpr-16484.4", 0x000000, 0x200000, CRC(9d4c334d) SHA1(8b4d903f14559fed425d225bb23ccfe8da23cbd3) )
1360 ROM_LOAD( "mpr-16485.5", 0x200000, 0x200000, CRC(95aadcad) SHA1(4276db655db9834692c3843eb96a3e3a89cb7252) )
1361
1362 ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 DSB code */
1363 ROM_LOAD( "epr-16471.2", 0x000000, 0x020000, CRC(f4ee84a4) SHA1(f12b214e6f195b0e5f49ba9f41d8e54bfcea9acc) )
1364
1365 ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB MPEG data */
1366 ROM_LOAD( "mpr-16514.57", 0x000000, 0x200000, CRC(3175b0be) SHA1(63649d053c8c17ce1746d16d0cc8202be20c302f) )
1367 ROM_LOAD( "mpr-16515.58", 0x200000, 0x200000, CRC(3114d748) SHA1(9ef090623cdd2a1d06b5d1bc4b9a07ab4eff5b76) )
1368
1369 ROM_REGION32_LE( 0xc00000, "polygons", 0 ) /* TGP model roms */
1370 ROM_LOAD32_WORD( "mpr-16476.26", 0x000000, 0x200000, CRC(d48609ae) SHA1(8c8686a5c9ca4837447a7f70ed194e2f1882b66d) )
1371 ROM_LOAD32_WORD( "mpr-16477.27", 0x000002, 0x200000, CRC(b979b082) SHA1(0c60d259093e987f3856730b57b43bde7e9562e3) )
1372 ROM_LOAD32_WORD( "mpr-16478.28", 0x400000, 0x200000, CRC(80c780f7) SHA1(2f57c5373b02765d302bcd81e24f7b7bc4181387) )
1373 ROM_LOAD32_WORD( "mpr-16479.29", 0x400002, 0x200000, CRC(e43183b3) SHA1(4e62c67cdf7a6fdac0ded86d5f9e81044b9dea8d) )
1374 ROM_LOAD32_WORD( "mpr-16480.30", 0x800000, 0x200000, CRC(3185547a) SHA1(9871937372c2c755717802117a3ad39e1a11410e) )
1375 ROM_LOAD32_WORD( "mpr-16481.31", 0x800002, 0x200000, CRC(ce8d76fe) SHA1(0406f0500d19d6707515627b4143f92a9a5db769) )
1376
1377 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1378 ROM_LOAD32_BYTE( "mpr-16472.39", 0x000000, 0x80000, CRC(5a0d7553) SHA1(ba8e08e5a0c6b7fbc10084ad7ad3edf61efb0d70) )
1379 ROM_LOAD32_BYTE( "mpr-16473.40", 0x000001, 0x80000, CRC(876c5399) SHA1(be7e40c77a385600941f11c24852cd73c71696f0) )
1380 ROM_LOAD32_BYTE( "mpr-16474.41", 0x000002, 0x80000, CRC(5864a26f) SHA1(be0c22dfff37408f6b401b1970f7fcc6fc7fbcd2) )
1381 ROM_LOAD32_BYTE( "mpr-16475.42", 0x000003, 0x80000, CRC(b9266be9) SHA1(cf195cd89c9d191b9eb8c5299f8cc154c2b4bd82) )
1382 ROM_END
1383
1384 ROM_START( swaj )
1385 MODEL1_CPU_BOARD
1386
1387 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1388 ROM_LOAD16_BYTE( "epr-16468.14", 0x200000, 0x80000, CRC(681d03c0) SHA1(4d21e26ce211466d429b84bca69a8147ff31ec6c) )
1389 ROM_LOAD16_BYTE( "epr-16469.15", 0x200001, 0x80000, CRC(6f281f7c) SHA1(6a9179e48d14838bb2a1a3f63fdd3a68ed009e03) )
1390
1391 ROM_LOAD( "epr-16467.5", 0xf80000, 0x80000, CRC(605068f5) SHA1(99d7e171ce3353477c282d7567dedb9947206f14) )
1392 ROM_RELOAD( 0x000000, 0x80000 )
1393 ROM_RELOAD( 0x080000, 0x80000 )
1394
1395 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1396 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP )
1397
1398 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1399 ROM_LOAD16_WORD_SWAP( "epr-16470.7", 0x000000, 0x020000, CRC(7da18cf7) SHA1(bd432d882d217277faee120e2577357a32eb4a6e) )
1400 ROM_RELOAD(0x80000, 0x20000)
1401
1402 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1403 ROM_LOAD( "mpr-16486.32", 0x000000, 0x200000, CRC(7df50533) SHA1(f2fb876738e37d70eb9005e5629a9ae89aa413a8) )
1404 ROM_LOAD( "mpr-16487.33", 0x200000, 0x200000, CRC(31b28dfa) SHA1(bd1ac11bf2f9161f61f8af3b9ff4c2709b7ee700) )
1405
1406 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1407 ROM_LOAD( "mpr-16484.4", 0x000000, 0x200000, CRC(9d4c334d) SHA1(8b4d903f14559fed425d225bb23ccfe8da23cbd3) )
1408 ROM_LOAD( "mpr-16485.5", 0x200000, 0x200000, CRC(95aadcad) SHA1(4276db655db9834692c3843eb96a3e3a89cb7252) )
1409
1410 ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 DSB code */
1411 ROM_LOAD( "epr-16471.2", 0x000000, 0x020000, CRC(f4ee84a4) SHA1(f12b214e6f195b0e5f49ba9f41d8e54bfcea9acc) )
1412
1413 ROM_REGION( 0x400000, "mpeg", 0 ) /* DSB MPEG data */
1414 ROM_LOAD( "mpr-16514.57", 0x000000, 0x200000, CRC(3175b0be) SHA1(63649d053c8c17ce1746d16d0cc8202be20c302f) )
1415 ROM_LOAD( "mpr-16515.58", 0x200000, 0x200000, CRC(3114d748) SHA1(9ef090623cdd2a1d06b5d1bc4b9a07ab4eff5b76) )
1416
1417 ROM_REGION32_LE( 0xc00000, "polygons", 0 ) /* TGP model roms */
1418 ROM_LOAD32_WORD( "mpr-16476.26", 0x000000, 0x200000, CRC(d48609ae) SHA1(8c8686a5c9ca4837447a7f70ed194e2f1882b66d) )
1419 ROM_LOAD32_WORD( "mpr-16477.27", 0x000002, 0x200000, CRC(b979b082) SHA1(0c60d259093e987f3856730b57b43bde7e9562e3) )
1420 ROM_LOAD32_WORD( "mpr-16478.28", 0x400000, 0x200000, CRC(80c780f7) SHA1(2f57c5373b02765d302bcd81e24f7b7bc4181387) )
1421 ROM_LOAD32_WORD( "mpr-16479.29", 0x400002, 0x200000, CRC(e43183b3) SHA1(4e62c67cdf7a6fdac0ded86d5f9e81044b9dea8d) )
1422 ROM_LOAD32_WORD( "mpr-16480.30", 0x800000, 0x200000, CRC(3185547a) SHA1(9871937372c2c755717802117a3ad39e1a11410e) )
1423 ROM_LOAD32_WORD( "mpr-16481.31", 0x800002, 0x200000, CRC(ce8d76fe) SHA1(0406f0500d19d6707515627b4143f92a9a5db769) )
1424
1425 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1426 ROM_LOAD32_BYTE( "mpr-16472.39", 0x000000, 0x80000, CRC(5a0d7553) SHA1(ba8e08e5a0c6b7fbc10084ad7ad3edf61efb0d70) )
1427 ROM_LOAD32_BYTE( "mpr-16473.40", 0x000001, 0x80000, CRC(876c5399) SHA1(be7e40c77a385600941f11c24852cd73c71696f0) )
1428 ROM_LOAD32_BYTE( "mpr-16474.41", 0x000002, 0x80000, CRC(5864a26f) SHA1(be0c22dfff37408f6b401b1970f7fcc6fc7fbcd2) )
1429 ROM_LOAD32_BYTE( "mpr-16475.42", 0x000003, 0x80000, CRC(b9266be9) SHA1(cf195cd89c9d191b9eb8c5299f8cc154c2b4bd82) )
1430 ROM_END
1431
1432
1433 ROM_START( wingwar )
1434 MODEL1_CPU_BOARD
1435
1436 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1437 ROM_LOAD16_BYTE( "epr-16729.14", 0x200000, 0x80000, CRC(7edec2cc) SHA1(3e423a868ca7c8475fbb5bc1a10526e69d94d865) )
1438 ROM_LOAD16_BYTE( "epr-16730.15", 0x200001, 0x80000, CRC(bab24dee) SHA1(26c95139c1aa7f34b6a5cce39e5bd1dd2ef0dd49) )
1439
1440 ROM_LOAD( "epr16953.4", 0xfc0000, 0x20000, CRC(c821a920) SHA1(7fc9ea5d828aac664514fa6d38f708f1ffd26220) )
1441 ROM_RELOAD( 0x000000, 0x20000 )
1442 ROM_LOAD( "epr16952.5", 0xfe0000, 0x20000, CRC(03a3ecc5) SHA1(5c4aa221302b0a0800e1af99a41ab46fe4325184) )
1443 ROM_RELOAD( 0x020000, 0x20000 )
1444
1445 ROM_LOAD16_BYTE( "mpr-16738.6", 0x1000000, 0x80000, CRC(51518ffa) SHA1(e4674ddfed4205957b14e133c6fdf6454872f324) )
1446 ROM_LOAD16_BYTE( "mpr-16737.7", 0x1000001, 0x80000, CRC(37b1379c) SHA1(98620c324268e1dd906c077ac8a8cd903b9de1f7) )
1447 ROM_LOAD16_BYTE( "mpr-16736.8", 0x1100000, 0x80000, CRC(10b6a025) SHA1(7a4f624ceb7c0b92044a5db8ff55440562ef836b) )
1448 ROM_LOAD16_BYTE( "mpr-16735.9", 0x1100001, 0x80000, CRC(c82fd198) SHA1(d9e53ae1e14dfc8e84a14c0026ef0b904863bb1b) )
1449 ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) )
1450 ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) )
1451
1452 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1453 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP )
1454
1455 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1456 ROM_LOAD16_WORD_SWAP("epr-17126.7", 0x000000, 0x20000, CRC(50178e40) SHA1(fb01aecfbe4e90adc997de0d45a63c16ef353b37) )
1457 ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) )
1458 ROM_RELOAD(0x80000, 0x20000)
1459
1460 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1461 ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) )
1462 ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) )
1463
1464 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1465 ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
1466 ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
1467
1468 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1469 ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
1470 ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
1471 ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
1472 ROM_LOAD32_WORD( "mpr-16746.29", 0x400002, 0x200000, CRC(163b312e) SHA1(6b45007d6a9d17c8a0b46d81ec84ce9bfefb1695) )
1473 ROM_LOAD32_WORD( "mpr-16747.30", 0x800000, 0x200000, CRC(7353bb12) SHA1(608c5d561e909b8ba31d53db18e6e199855eaaec) )
1474 ROM_LOAD32_WORD( "mpr-16748.31", 0x800002, 0x200000, CRC(8ce98d3a) SHA1(1978776a0e2ea817508e30ba232d5f8d9c158f70) )
1475 ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
1476 ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
1477
1478 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1479 ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
1480 ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
1481 ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
1482 ROM_LOAD32_BYTE( "mpr-16740.42", 0x000003, 0x80000, CRC(44b31007) SHA1(4bb265fea25a7bbcbb8ab080fdcf09849b18f1de) )
1483 ROM_END
1484
1485 /*
1486 wing War (US)
1487
1488 Sega game ID# 833-10844-91-01
1489 Sega ROM board ID# 834-10845-91-01
1490 Driver/Control BD ID# 837-10859 with EPR-16891
1491 837-8679 MODEL-1 SOUND BD + 837-8680 SOUND BD OPTION daughterboard with ID# 837-10858
1492 838-10141-04 Sound AMP board
1493 */
1494 ROM_START( wingwaru )
1495 MODEL1_CPU_BOARD
1496
1497 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1498 ROM_LOAD16_BYTE( "epr-16729.14", 0x200000, 0x80000, CRC(7edec2cc) SHA1(3e423a868ca7c8475fbb5bc1a10526e69d94d865) )
1499 ROM_LOAD16_BYTE( "epr-16730.15", 0x200001, 0x80000, CRC(bab24dee) SHA1(26c95139c1aa7f34b6a5cce39e5bd1dd2ef0dd49) )
1500
1501 ROM_LOAD( "epr-16951.4", 0xfc0000, 0x20000, BAD_DUMP CRC(8df5a798) SHA1(ef2756f237933ecf429dab0f362e572eb1965f4d) )
1502 ROM_RELOAD( 0x000000, 0x20000 )
1503 ROM_LOAD( "epr-16950.5", 0xfe0000, 0x20000, CRC(841e2195) SHA1(66f465aaf71955496e6f83335f7b836ad1d8c724) )
1504 ROM_RELOAD( 0x020000, 0x20000 )
1505
1506 ROM_LOAD16_BYTE( "mpr-16738.6", 0x1000000, 0x80000, CRC(51518ffa) SHA1(e4674ddfed4205957b14e133c6fdf6454872f324) )
1507 ROM_LOAD16_BYTE( "mpr-16737.7", 0x1000001, 0x80000, CRC(37b1379c) SHA1(98620c324268e1dd906c077ac8a8cd903b9de1f7) )
1508 ROM_LOAD16_BYTE( "mpr-16736.8", 0x1100000, 0x80000, CRC(10b6a025) SHA1(7a4f624ceb7c0b92044a5db8ff55440562ef836b) )
1509 ROM_LOAD16_BYTE( "mpr-16735.9", 0x1100001, 0x80000, CRC(c82fd198) SHA1(d9e53ae1e14dfc8e84a14c0026ef0b904863bb1b) )
1510 ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) )
1511 ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) )
1512
1513 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1514 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP )
1515
1516 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1517 ROM_LOAD16_WORD_SWAP("epr-16751.7", 0x000000, 0x20000, CRC(23ba5ebc) SHA1(b98aab546c5e980baeedbada4e7472eb4c588260) )
1518 ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) )
1519 ROM_RELOAD(0x80000, 0x20000)
1520
1521 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1522 ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) )
1523 ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) )
1524
1525 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1526 ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
1527 ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
1528
1529 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1530 ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
1531 ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
1532 ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
1533 ROM_LOAD32_WORD( "mpr-16746.29", 0x400002, 0x200000, CRC(163b312e) SHA1(6b45007d6a9d17c8a0b46d81ec84ce9bfefb1695) )
1534 ROM_LOAD32_WORD( "mpr-16747.30", 0x800000, 0x200000, CRC(7353bb12) SHA1(608c5d561e909b8ba31d53db18e6e199855eaaec) )
1535 ROM_LOAD32_WORD( "mpr-16748.31", 0x800002, 0x200000, CRC(8ce98d3a) SHA1(1978776a0e2ea817508e30ba232d5f8d9c158f70) )
1536 ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
1537 ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
1538
1539 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1540 ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
1541 ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
1542 ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
1543 ROM_LOAD32_BYTE( "mpr-16740.42", 0x000003, 0x80000, CRC(44b31007) SHA1(4bb265fea25a7bbcbb8ab080fdcf09849b18f1de) )
1544 ROM_END
1545
1546 ROM_START( wingwarj )
1547 MODEL1_CPU_BOARD
1548
1549 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1550 ROM_LOAD16_BYTE( "epr-16729.14", 0x200000, 0x80000, CRC(7edec2cc) SHA1(3e423a868ca7c8475fbb5bc1a10526e69d94d865) )
1551 ROM_LOAD16_BYTE( "epr-16730.15", 0x200001, 0x80000, CRC(bab24dee) SHA1(26c95139c1aa7f34b6a5cce39e5bd1dd2ef0dd49) )
1552
1553 ROM_LOAD( "epr-16728.4", 0xfc0000, 0x20000, CRC(194d58ff) SHA1(281201cbb9bb148a06fe88edeccf680f837dcc10) )
1554 ROM_RELOAD( 0x000000, 0x20000 )
1555 ROM_LOAD( "epr-16727.5", 0xfe0000, 0x20000, CRC(430380eb) SHA1(25bd81a69a9b4cdc644f912283b65b3eab988327) )
1556 ROM_RELOAD( 0x020000, 0x20000 )
1557
1558 ROM_LOAD16_BYTE( "mpr-16738.6", 0x1000000, 0x80000, CRC(51518ffa) SHA1(e4674ddfed4205957b14e133c6fdf6454872f324) )
1559 ROM_LOAD16_BYTE( "mpr-16737.7", 0x1000001, 0x80000, CRC(37b1379c) SHA1(98620c324268e1dd906c077ac8a8cd903b9de1f7) )
1560 ROM_LOAD16_BYTE( "mpr-16736.8", 0x1100000, 0x80000, CRC(10b6a025) SHA1(7a4f624ceb7c0b92044a5db8ff55440562ef836b) )
1561 ROM_LOAD16_BYTE( "mpr-16735.9", 0x1100001, 0x80000, CRC(c82fd198) SHA1(d9e53ae1e14dfc8e84a14c0026ef0b904863bb1b) )
1562 ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) )
1563 ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) )
1564
1565 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1566 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP )
1567
1568 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1569 ROM_LOAD16_WORD_SWAP("epr-16751.7", 0x000000, 0x20000, CRC(23ba5ebc) SHA1(b98aab546c5e980baeedbada4e7472eb4c588260) )
1570 ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) )
1571 ROM_RELOAD(0x80000, 0x20000)
1572
1573 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1574 ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) )
1575 ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) )
1576
1577 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1578 ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
1579 ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
1580
1581 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1582 ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
1583 ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
1584 ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
1585 ROM_LOAD32_WORD( "mpr-16746.29", 0x400002, 0x200000, CRC(163b312e) SHA1(6b45007d6a9d17c8a0b46d81ec84ce9bfefb1695) )
1586 ROM_LOAD32_WORD( "mpr-16747.30", 0x800000, 0x200000, CRC(7353bb12) SHA1(608c5d561e909b8ba31d53db18e6e199855eaaec) )
1587 ROM_LOAD32_WORD( "mpr-16748.31", 0x800002, 0x200000, CRC(8ce98d3a) SHA1(1978776a0e2ea817508e30ba232d5f8d9c158f70) )
1588 ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
1589 ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
1590
1591 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1592 ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
1593 ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
1594 ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
1595 ROM_LOAD32_BYTE( "mpr-16740.42", 0x000003, 0x80000, CRC(44b31007) SHA1(4bb265fea25a7bbcbb8ab080fdcf09849b18f1de) )
1596 ROM_END
1597
1598 // Dumper's note: As per other R360 games wingwar is just a slightly modified version with 4 roms different on the rom board.
1599
1600 ROM_START( wingwar360 )
1601 MODEL1_CPU_BOARD
1602
1603 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1604 ROM_LOAD16_BYTE( "epr-16729.14", 0x200000, 0x80000, CRC(7edec2cc) SHA1(3e423a868ca7c8475fbb5bc1a10526e69d94d865) )
1605 ROM_LOAD16_BYTE( "epr-16730.15", 0x200001, 0x80000, CRC(bab24dee) SHA1(26c95139c1aa7f34b6a5cce39e5bd1dd2ef0dd49) )
1606
1607 ROM_LOAD( "epr-17052.4", 0xfc0000, 0x20000, CRC(0f4743e7) SHA1(cc47fd1d25808728ed05d95d510733b8bd011b41) )
1608 ROM_RELOAD( 0x000000, 0x20000 )
1609 ROM_LOAD( "epr-17053.5", 0xfe0000, 0x20000, CRC(83af2415) SHA1(46dfee9db95171a3942cd32c851ec75c3d9e03da) )
1610 ROM_RELOAD( 0x020000, 0x20000 )
1611
1612 ROM_LOAD16_BYTE( "ic6_17056.bin", 0x1000000, 0x80000, CRC(5216de4d) SHA1(1463311d3f96ca7c46b8f676ee3963caddeec9e2) )
1613 ROM_LOAD16_BYTE( "ic7_17057.bin", 0x1000001, 0x80000, CRC(b21aa2db) SHA1(861e637b5ae9b2d7fe6d09a7e788a6a3ff09af6e) )
1614 ROM_LOAD16_BYTE( "mpr-16736.8", 0x1100000, 0x80000, CRC(10b6a025) SHA1(7a4f624ceb7c0b92044a5db8ff55440562ef836b) )
1615 ROM_LOAD16_BYTE( "mpr-16735.9", 0x1100001, 0x80000, CRC(c82fd198) SHA1(d9e53ae1e14dfc8e84a14c0026ef0b904863bb1b) )
1616 ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) )
1617 ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) )
1618
1619 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1620 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP )
1621
1622 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1623 ROM_LOAD16_WORD_SWAP("epr-17126.7", 0x000000, 0x20000, CRC(50178e40) SHA1(fb01aecfbe4e90adc997de0d45a63c16ef353b37) )
1624 ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) )
1625 ROM_RELOAD(0x80000, 0x20000)
1626
1627 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1628 ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) )
1629 ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) )
1630
1631 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1632 ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
1633 ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
1634
1635 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1636 ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
1637 ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
1638 ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
1639 ROM_LOAD32_WORD( "mpr-16746.29", 0x400002, 0x200000, CRC(163b312e) SHA1(6b45007d6a9d17c8a0b46d81ec84ce9bfefb1695) )
1640 ROM_LOAD32_WORD( "mpr-16747.30", 0x800000, 0x200000, CRC(7353bb12) SHA1(608c5d561e909b8ba31d53db18e6e199855eaaec) )
1641 ROM_LOAD32_WORD( "mpr-16748.31", 0x800002, 0x200000, CRC(8ce98d3a) SHA1(1978776a0e2ea817508e30ba232d5f8d9c158f70) )
1642 ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
1643 ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
1644
1645 ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
1646 ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
1647 ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
1648 ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
1649 ROM_LOAD32_BYTE( "mpr-16740.42", 0x000003, 0x80000, CRC(44b31007) SHA1(4bb265fea25a7bbcbb8ab080fdcf09849b18f1de) )
1650
1651 // Dumper's note: Video & Drive is the control board in the attendants' tower, same hardware as G-Loc R360 with the two program roms being the only difference.
1652 ROM_REGION( 0x400000, "controlboard", 0 )
1653 ROM_LOAD("ic22_18851.bin", 0x00000, 0x20000, CRC(85f75bd7) SHA1(43cc8f8c81631d71b661e55e15f3fe8803a8a7e9) )
1654 ROM_LOAD("ic67_18850.bin", 0x20000, 0x08000, CRC(45a3e9fc) SHA1(bf2d1a7acc35b72a62551bfbb55e5058d6fd6d5c) )
1655 ROM_END
1656
1657 ROM_START( netmerc )
1658 MODEL1_CPU_BOARD
1659
1660 ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASEFF ) /* v60 code */
1661 ROM_LOAD( "epr-18120.ic5", 0xf80000, 0x80000, CRC(de489762) SHA1(4e935f11e844489c5b5dc06439dc7902c4fddc9f) ) /* Rom board with Sega ID# ??? */
1662 ROM_RELOAD( 0x000000, 0x80000 )
1663
1664 ROM_LOAD16_BYTE( "epr-18122.ic6", 0x1000000, 0x80000, CRC(10581ab3) SHA1(e3f5ec4ce14a1e1a1134c8b516c371b7655f3544) )
1665 ROM_LOAD16_BYTE( "epr-18123.ic7", 0x1000001, 0x80000, CRC(27e0d848) SHA1(117f99efd0643ba92b3340171d8952b6a1a568d4) )
1666 ROM_LOAD16_BYTE( "epr-18124.ic8", 0x1100000, 0x80000, CRC(5a0e5618) SHA1(a092d05a414532aa27d4bae908b053da4255462a) )
1667 ROM_LOAD16_BYTE( "epr-18125.ic9", 0x1100001, 0x80000, CRC(bd47284f) SHA1(ae9325e6789bb956ab664c7ad9c48b80056f3916) )
1668 ROM_LOAD16_BYTE( "epr-18126.ic10", 0x1200000, 0x80000, CRC(43dc5ca8) SHA1(249ed83b90b0237ceabbed814cd42dc60dc7a174) )
1669 ROM_LOAD16_BYTE( "epr-18127.ic11", 0x1200001, 0x80000, CRC(d307a4ca) SHA1(5555235f740c1b09f6e1587d0fceb35b23d4a8a8) )
1670
1671 ROM_REGION32_LE( 0x2000, "tgp_copro", 0)
1672 ROM_LOAD("315-5711.bin", 0, 0x2000, CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP )
1673
1674 ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */
1675 ROM_LOAD16_WORD_SWAP( "epr-18121.ic7", 0x00000, 0x80000, CRC(113285b5) SHA1(5d060cee41e8d6a4a918f890c2d169d87dbcad79) )
1676 ROM_RELOAD( 0x80000, 0x20000) // ?
1677
1678 ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */
1679 ROM_LOAD( "mpr-18134.ic32", 0x000000, 0x200000, BAD_DUMP CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) )
1680 ROM_LOAD( "mpr-18135.ic33", 0x200000, 0x200000, CRC(291d17e4) SHA1(7465d5bde9ece5112932efa58b3c1c07f2b11543) )
1681
1682 ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
1683 ROM_LOAD( "mpr-18136.ic4", 0x000000, 0x200000, CRC(2a9c0aaf) SHA1(e8c52a6032ae968afcc41b3d8bfd15065057ea4a) )
1684
1685 ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
1686 ROM_LOAD32_WORD( "mpr-18128.ic26", 0x000000, 0x200000, CRC(70d8028c) SHA1(6e55028be778cd246f67e9d8cd69b9f5366bc429) )
1687 ROM_LOAD32_WORD( "mpr-18129.ic27", 0x000002, 0x200000, CRC(134feea3) SHA1(afaf9fa08c5b0ab8c9d5fdef78d829e8582cc61a) )
1688 ROM_LOAD32_WORD( "mpr-18130.ic28", 0x400000, 0x200000, CRC(c7aeae3e) SHA1(4f636178f903cd03e1b9de73a11d1105b7cdb084) )
1689 ROM_LOAD32_WORD( "mpr-18131.ic29", 0x400002, 0x200000, CRC(32683b33) SHA1(daf808853d9d85dff87eba5c081f47b4af4ae0a2) )
1690 ROM_LOAD32_WORD( "mpr-18132.ic30", 0x800000, 0x200000, CRC(a17e3ac2) SHA1(19827c06ebc3e9de63668ef07675224e169d853e) )
1691 ROM_LOAD32_WORD( "mpr-18133.ic31", 0x800002, 0x200000, CRC(f56354dd) SHA1(2ef1fe8b4995a67b70b565adf8f0ea0ad6e10094) )
1692
1693 ROM_REGION32_LE( 0x200000, "copro_data", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
1694
1695 ROM_REGION( 0x8000, "polhemus", 0 ) /* POLHEMUS board */
1696 ROM_LOAD16_BYTE( "u1", 0x0000, 0x4000, CRC(7073a312) SHA1(d2582f9520b8c8c051708dd372633112af59206e) )
1697 ROM_LOAD16_BYTE( "u2", 0x0001, 0x4000, CRC(c589f428) SHA1(98dc0114a5f89636b4e237ed954e19f1cfd186ab) )
1698 ROM_END
1699
1700 void model1_state::model1(machine_config &config)
1701 {
1702 V60(config, m_maincpu, 16000000);
1703 m_maincpu->set_addrmap(AS_PROGRAM, &model1_state::model1_mem);
1704 m_maincpu->set_addrmap(AS_IO, &model1_state::model1_io);
1705 m_maincpu->set_irq_acknowledge_callback(FUNC(model1_state::irq_callback));
1706
1707 GENERIC_FIFO_U32(config, "copro_fifo_in", 0);
1708 GENERIC_FIFO_U32(config, "copro_fifo_out", 0);
1709
1710 TIMER(config, "scantimer").configure_scanline(FUNC(model1_state::model1_interrupt), "screen", 0, 1);
1711
1712 MB86233(config, m_tgp_copro, 16000000);
1713 m_tgp_copro->set_addrmap(AS_PROGRAM, &model1_state::copro_prog_map);
1714 m_tgp_copro->set_addrmap(AS_DATA, &model1_state::copro_data_map);
1715 m_tgp_copro->set_addrmap(AS_IO, &model1_state::copro_io_map);
1716 m_tgp_copro->set_addrmap(mb86233_device::AS_RF, &model1_state::copro_rf_map);
1717
1718 S24TILE(config, m_tiles, 0, 0x3fff).set_palette(m_palette);
1719
1720 SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
1721 m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
1722 m_screen->set_raw(XTAL(16'000'000), 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/);
1723 m_screen->set_screen_update(FUNC(model1_state::screen_update_model1));
1724 m_screen->screen_vblank().set(FUNC(model1_state::screen_vblank_model1));
1725
1726 PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 8192);
1727
1728 // create SEGA_MODEL1IO device *after* SCREEN device
1729 model1io_device &ioboard(SEGA_MODEL1IO(config, "ioboard", 0));
1730 ioboard.read_callback().set(m_dpram, FUNC(mb8421_device::left_r));
1731 ioboard.write_callback().set(m_dpram, FUNC(mb8421_device::left_w));
1732 ioboard.in_callback<0>().set_ioport("IN.0");
1733 ioboard.in_callback<1>().set_ioport("IN.1");
1734
1735 MB8421(config, m_dpram, 0);
1736
1737 SEGAM1AUDIO(config, m_m1audio, 0);
1738 m_m1audio->rxd_handler().set(m_m1uart, FUNC(i8251_device::write_rxd));
1739
1740 I8251(config, m_m1uart, 8000000); // uPD71051C, clock unknown
1741 m_m1uart->txd_handler().set(m_m1audio, FUNC(segam1audio_device::write_txd));
1742
1743 clock_device &m1uart_clock(CLOCK(config, "m1uart_clock", 500000)); // 16 times 31.25MHz (standard Sega/MIDI sound data rate)
1744 m1uart_clock.signal_handler().set(m_m1uart, FUNC(i8251_device::write_txc));
1745 m1uart_clock.signal_handler().append(m_m1uart, FUNC(i8251_device::write_rxc));
1746 }
1747
vf(machine_config & config)1748 void model1_state::vf(machine_config &config)
1749 {
1750 model1(config);
1751
1752 model1io_device &ioboard(*subdevice<model1io_device>("ioboard"));
1753 ioboard.set_default_bios_tag("epr14869b");
1754 ioboard.in_callback<2>().set_ioport("IN.2");
1755 ioboard.output_callback().set(FUNC(model1_state::vf_outputs_w));
1756 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1757 }
1758
vr(machine_config & config)1759 void model1_state::vr(machine_config &config)
1760 {
1761 model1(config);
1762
1763 m_maincpu->set_addrmap(AS_PROGRAM, &model1_state::model1_comm_mem);
1764
1765 model1io_device &ioboard(*subdevice<model1io_device>("ioboard"));
1766 ioboard.drive_write_callback().set(FUNC(model1_state::drive_board_w));
1767 ioboard.an_callback<0>().set_ioport("WHEEL");
1768 ioboard.an_callback<1>().set_ioport("ACCEL");
1769 ioboard.an_callback<2>().set_ioport("BRAKE");
1770 ioboard.output_callback().set(FUNC(model1_state::vr_outputs_w));
1771 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1772
1773 M1COMM(config, "m1comm", 0).set_default_bios_tag("epr15112");
1774 }
1775
vformula(machine_config & config)1776 void model1_state::vformula(machine_config &config)
1777 {
1778 model1(config);
1779
1780 m_maincpu->set_addrmap(AS_PROGRAM, &model1_state::model1_comm_mem);
1781
1782 model1io_device &ioboard(*subdevice<model1io_device>("ioboard"));
1783 ioboard.drive_write_callback().set(FUNC(model1_state::drive_board_w));
1784 ioboard.an_callback<0>().set_ioport("WHEEL");
1785 ioboard.an_callback<1>().set_ioport("ACCEL");
1786 ioboard.an_callback<2>().set_ioport("BRAKE");
1787 ioboard.output_callback().set(FUNC(model1_state::vr_outputs_w));
1788 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1789
1790 M1COMM(config, "m1comm", 0).set_default_bios_tag("epr15624");
1791 }
1792
swa(machine_config & config)1793 void model1_state::swa(machine_config &config)
1794 {
1795 model1(config);
1796
1797 model1io_device &ioboard(*subdevice<model1io_device>("ioboard"));
1798 ioboard.set_default_bios_tag("epr14869b");
1799 ioboard.an_callback<0>().set_ioport("STICK1X");
1800 ioboard.an_callback<1>().set_ioport("STICK1Y");
1801 ioboard.an_callback<2>().set_ioport("THROTTLE");
1802 ioboard.an_callback<4>().set_ioport("STICK2X");
1803 ioboard.an_callback<5>().set_ioport("STICK2Y");
1804 ioboard.output_callback().set(FUNC(model1_state::swa_outputs_w));
1805 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1806
1807 SPEAKER(config, "dleft").front_left();
1808 SPEAKER(config, "dright").front_right();
1809 DSBZ80(config, m_dsbz80, 0);
1810 m_dsbz80->add_route(0, "dleft", 1.0);
1811 m_dsbz80->add_route(1, "dright", 1.0);
1812
1813 // Apparently m1audio has to filter out commands the DSB shouldn't see
1814 m_m1audio->rxd_handler().append(m_dsbz80, FUNC(dsbz80_device::write_txd));
1815 }
1816
wingwar(machine_config & config)1817 void model1_state::wingwar(machine_config &config)
1818 {
1819 model1(config);
1820
1821 m_maincpu->set_addrmap(AS_PROGRAM, &model1_state::model1_comm_mem);
1822
1823 model1io2_device &ioboard(SEGA_MODEL1IO2(config.replace(), "ioboard", 0));
1824 ioboard.set_default_bios_tag("epr16891");
1825 ioboard.read_callback().set(m_dpram, FUNC(mb8421_device::left_r));
1826 ioboard.write_callback().set(m_dpram, FUNC(mb8421_device::left_w));
1827 ioboard.in_callback<0>().set_ioport("IN.0");
1828 ioboard.in_callback<1>().set_ioport("IN.1");
1829 ioboard.an_callback<0>().set_ioport("STICKX");
1830 ioboard.an_callback<1>().set_ioport("STICKY");
1831 ioboard.an_callback<2>().set_ioport("THROTTLE");
1832 ioboard.output_callback().set(FUNC(model1_state::wingwar_outputs_w));
1833 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1834
1835 config.set_default_layout(layout_model1io2);
1836
1837 M1COMM(config, "m1comm", 0).set_default_bios_tag("epr15112");
1838 }
1839
wingwar360(machine_config & config)1840 void model1_state::wingwar360(machine_config &config)
1841 {
1842 wingwar(config);
1843
1844 model1io2_device &ioboard(*subdevice<model1io2_device>("ioboard"));
1845 ioboard.in_callback<2>().set(FUNC(model1_state::r360_r));
1846 ioboard.drive_write_callback().set(FUNC(model1_state::r360_w));
1847 ioboard.an_callback<2>().set_constant(0);
1848 ioboard.output_callback().set(FUNC(model1_state::wingwar360_outputs_w));
1849 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1850
1851 config.set_default_layout(layout_model1io2);
1852 }
1853
polhemus_map(address_map & map)1854 void model1_state::polhemus_map(address_map &map)
1855 {
1856 map.global_mask(0xfffff);
1857 map(0x00000, 0x03fff).ram();
1858 map(0xf8000, 0xfffff).rom().region("polhemus", 0);
1859 }
1860
netmerc(machine_config & config)1861 void model1_state::netmerc(machine_config &config)
1862 {
1863 model1(config);
1864 i386sx_device &polhemus(I386SX(config, "polhemus", 16000000));
1865 polhemus.set_addrmap(AS_PROGRAM, &model1_state::polhemus_map);
1866
1867 model1io2_device &ioboard(SEGA_MODEL1IO2(config.replace(), "ioboard", 0));
1868 ioboard.set_default_bios_tag("epr18021");
1869 ioboard.read_callback().set(m_dpram, FUNC(mb8421_device::left_r));
1870 ioboard.write_callback().set(m_dpram, FUNC(mb8421_device::left_w));
1871 ioboard.in_callback<0>().set_ioport("IN.0");
1872 ioboard.in_callback<1>().set_ioport("IN.1");
1873 ioboard.an_callback<0>().set_ioport("STICKX");
1874 ioboard.an_callback<2>().set_ioport("STICKY");
1875 ioboard.output_callback().set(FUNC(model1_state::netmerc_outputs_w));
1876 ioboard.output_callback().append(FUNC(model1_state::gen_outputs_w));
1877
1878 config.set_default_layout(layout_model1io2);
1879 }
1880
1881
1882 //**************************************************************************
1883 // SYSTEM DRIVERS
1884 //**************************************************************************
1885
1886 // YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
1887 GAME( 1993, vf, 0, vf, vf, model1_state, empty_init, ROT0, "Sega", "Virtua Fighter", MACHINE_NOT_WORKING )
1888 GAMEL(1992, vr, 0, vr, vr, model1_state, empty_init, ROT0, "Sega", "Virtua Racing", 0, layout_vr )
1889 GAME( 1993, vformula, vr, vformula, vr, model1_state, empty_init, ROT0, "Sega", "Virtua Formula", MACHINE_IMPERFECT_GRAPHICS )
1890 GAME( 1993, swa, 0, swa, swa, model1_state, empty_init, ROT0, "Sega", "Star Wars Arcade (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_CONTROLS )
1891 GAME( 1993, swaj, swa, swa, swa, model1_state, empty_init, ROT0, "Sega", "Star Wars Arcade (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_CONTROLS )
1892 GAME( 1994, wingwar, 0, wingwar, wingwar, model1_state, empty_init, ROT0, "Sega", "Wing War (World)", 0 )
1893 GAME( 1994, wingwaru, wingwar, wingwar, wingwar, model1_state, empty_init, ROT0, "Sega", "Wing War (US)", 0 )
1894 GAME( 1994, wingwarj, wingwar, wingwar, wingwar, model1_state, empty_init, ROT0, "Sega", "Wing War (Japan)", 0 )
1895 GAME( 1994, wingwar360, wingwar, wingwar360, wingwar360, model1_state, empty_init, ROT0, "Sega", "Wing War R360 (US)", 0 )
1896 GAME( 1993, netmerc, 0, netmerc, netmerc, model1_state, empty_init, ROT0, "Sega", "Sega NetMerc", MACHINE_NOT_WORKING )
1897