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