1 // license:BSD-3-Clause
2 // copyright-holders:R. Belmont, smf
3 /***************************************************************************
4 
5   Konami System 573
6   ===========================================================
7   Driver by R. Belmont & smf
8 
9   NOTE: The first time you run each game, it will go through a special initialization
10   procedure.  This can be quite lengthy (in the case of Dark Horse Legend).  Let it
11   complete all the way before exiting MAME and you will not have to do it again!
12 
13   NOTE 2: The first time you run Konami 80's Gallery, it will dump you on a clock
14   setting screen.  Press DOWN to select "SAVE AND EXIT" then press player 1 START
15   to continue.
16 
17   Note 3: Some games require an installation cassette when installing from CD.
18   Go to the slot devices menu in the tab menu and change the cassette from "game"
19   to "install" and select reset. After installing you need to change the cassette
20   back to "game" and select reset.
21 
22   Note 4: Some games require you to press f2 to skip the rtc cleared note.
23 
24   -----------------------------------------------------------------------------------------
25 
26   System 573 Hardware Overview
27   Konami, 1998-2001
28 
29   This system uses Konami PSX-based hardware with an ATAPI CDROM drive.
30   Gun Mania (and probably Gun Mania Zone Plus) has no CDROM drive.
31   There is a slot for a security cart (cart is installed in CN14) and also a PCMCIA card slot.
32   The main board and CDROM drive are housed in a black metal box. Gun Mania doesn't have that box.
33   The games can be swapped by exchanging the CDROM disc and the security cart, whereby the main-board
34   FlashROMs are re-programmed after a small wait. On subsequent power-ups, there is a check to test if the
35   contents of the FlashROMs matches the CDROM, then the game boots up immediately.
36 
37   PCMCIA card slot is used by Dance Dance Revolution (2ndMIX link ver. and later),
38   GUITARFREAKS (2ndMIX link ver. and later), drummania (7thMIX and later), and Gun Mania.
39   DDR and GF: 32M flash card is used to store edit data (players can edit data by PlayStation
40   console, and send data to arcade machine via PS memory card).
41   DM and GF: network PCB unit (for e-AMUSEMENT) is connected via PCMCIA slot.
42   GM: unknown (program data is stored in flash card?)
43 
44   The games that run on this system include...
45 
46   Game                                         Year       Hardware Code     CD Code
47   ---------------------------------------------------------------------------------
48 P Anime Champ                                   2000.12    GCA07 JA          (no CD)
49 P Bass Angler                                   1998.03    GE765 JA          765 JA A02
50 P Bass Angler 2                                 1998.07    GC865 JA          865 JA A02
51 P *DAM-DDR Dance Dance Revolution for DAM       1999.11
52 P *DAM-DDR Dance Dance Revolution for DAM 2nd   2000.07
53 A Dance Dance Revolution                        1998.09    GC845 JA          845 JA(missing)/UA A01 / 845 JA A02
54 A Dance Dance Revolution Internet Ranking ver.  1998.11    GC845 JB          845 JB A01 / 845 JA/UA A02
55 A Dance Dance Revolution 2ndMIX                 1999.01    GC895 JA          895 JA A02
56 A Dance Dance Revolution 2ndMIX LINK version    1999.04    GE885 JA          885 JA A02
57 A DDR 2ndMIX with bmIIDX CLUB ver.              1999.05    GN896 JA          896 JA A01
58 A DDR 2ndMIX AND bmIIDX substream CLUB ver. 2   1999.05    GE984 JA          984 JA A01
59 D Dance Dance Revolution Solo BASS MIX          1999.08    GQ894 JA          894 JA A02
60 D Dance Dance Revolution 3rdMIX                 1999.10    GN887 AA/JA/KA    887 AA/JA/KA A02
61 D Dance Dance Revolution Solo 2000              1999.12    GC905 AA/JA       905 AA/JA A02
62 D Dance Dance Revolution 3rdMIX PLUS            2000.06    GCA22 JA          A22 JA A02
63 D Dance Dance Revolution 4thMIX                 2000.08    GCA33 JA          A33 JA A02
64 D Dance Dance Revolution 4thMIX PLUS            2000.12    GCA34 JA          A34 JA A02
65 ? *Dance Dance Revolution Kids                  2000.12
66 D Dance Dance Revolution 5thMIX                 2001.03    GCA27 JA          A27 JA A02
67 D DDRMAX Dance Dance Revolution 6thMIX          2001.10    GCB19 JA          B19 JA A02
68 D DDRMAX2 Dance Dance Revolution 7thMIX         2002.03    GCB20 JA          B20 JA A02
69 D Dance Dance Revolution EXTREME                2002.12    GCC36 JA          C36 JA A02
70 D Dance Maniax                                  2000.06    GE874 JA          874 JA A(needs redump)
71 D Dance Maniax 2ndMIX                           2000.12    GCA39 JA          A39 JA A02
72 D *Dance Maniax 2ndMIX APPEND J PARADISE        2001.04
73 A Dancing Stage                                 1999.08    GN845 EA          845 EA(needs redump)
74 D Dancing Stage Euro Mix                        2000       GE936 EA          936 EA A(needs redump)
75 D Dancing Stage Euro Mix 2                      2000       G*C23 EA          C23 EA A02
76 D Dancing Stage featuring Disney's Rave         2000.11    GCA37 JA          A37 JA A02
77 D Dancing Stage featuring DREAMS COME TRUE      1999.12    GC910 JA          910 JA/JC A02
78 A Dancing Stage featuring TRUE KiSS DESTiNATiON 1999.07    G*884 JA          884 JA A02
79 P Dark Horse Legend                             1998.03    GX706 JA          706 JA A02
80 A drummania                                     1999.07    GQ881 JA          881 JA D01 / 881 JA A02(missing, audio CD)
81 D drummania 2ndMIX                              2000.03    GE912 JA          912 JA B02
82 D drummania 3rdMIX                              2000.09    GCA23 JA          A23 JA A02
83 D drummania 4thMIX                              2001.03    GEA25 JA          A25 JA A02
84 D drummania 5thMIX                              2001.09    GCB05 JA          B05 JA A02
85 D drummania 6thMIX                              2002.02    GCB16 JA          B16 JA A02
86 N drummania 7thMIX                              2002.08    GCC07 JA          C07 JA A02
87 N drummania 7thMIX power-up ver.                2002.08    GEC07 JB          C07 JC A02
88 N drummania 8thMIX                              2003.04    GCC38 JA          C38 JA A02
89 N drummania 9thMIX                              2003.10    GCD09 JA          D09 JA A02
90 N *drummania 10thMIX                            2004.04
91 ? *Fighting Mania                               2000
92 P Fisherman's Bait                              1998.06    GE765 UA          765 UA B02
93 P Fisherman's Bait 2                            1998       GC865 UA          865 UA B02
94 P Fisherman's Bait Marlin Challenge             1999       GX889             889 AA/EA/JA/UA(needs redump)
95 P Gachagachamp                                  1999.01    GQ877 JA          GE877-JA(PCMCIA card)
96 P Great Bishi Bashi Champ                       2002.??    GBA48 JA          (no CD)
97 A GUITARFREAKS                                  1999.02    GQ886 EA/JA/UA    886 ** C02
98 A GUITARFREAKS 2ndMIX                           1999.07    GQ883 JA          929 JB B02(needs redump)
99 A *GUITARFREAKS 2ndMIX Link ver.                1999.09
100 D GUITARFREAKS 3rdMIX                           2000.04    GE949 JA          949 JA C01 / 949 JA C02
101 D GUITARFREAKS 4thMIX                           2000.08    GEA24 JA          A24 JA A02
102 D GUITARFREAKS 5thMIX                           2001.03    GCA26 JA          A26 JA A02
103 D GUITARFREAKS 6thMIX                           2001.09    GCB06 JA          B06 JA A02
104 D GUITARFREAKS 7thMIX                           2002.02    GCB17 JA          B17 JA A02
105 N GUITARFREAKS 8thMIX                           2002.08    GCC08 JA          C08 JA A02
106 N GUITARFREAKS 8thMIX power-up ver.             2002.11    GEC08 JB          C08 JB A02
107 N GUITARFREAKS 9thMIX                           2003.04    GCC39 JA          C39 JA A02
108 N GUITARFREAKS 10thMIX                          2003.10    GCD10 JA          D10 JA A02
109 N *GUITARFREAKS 11thMIX                         2004.04
110 G *Gun Mania                                    2000.07    G?906 JA          (no CD)
111 ? *Gun Mania Zone Plus                          2000.10
112 P Handle Champ                                  1997.12    GQ710 JA          (no CD)
113 P Hyper Bishi Bashi Champ                       1998.07    GC876 EA          (no CD)
114 P Hyper Bishi Bashi Champ - 2 Player            1999.08    GC908 JA          908    A02
115 P Jikkyou Powerful Pro Yakyuu EX                1998.04    GX802 JA          802 JA B02
116 P *Jikkyou Powerful Pro Yakyuu EX 98            1998.08
117 ? *Kick & Kick                                  2001
118 P Konami 80's Arcade Gallery                    1998.11    GC826 JA          826 JA A01
119 P Konami 80's AC Special                        1998       GC826 UA          826 UA A01
120 D *Mambo a GoGo                                 2001.06
121 D Punchmania Hokuto no Ken                      2000.03                      918 JA B02
122 D Punchmania Hokuto no Ken 2                    2000.12                      A09 JA A02
123 P Salary Man Champ
124 P Salary Man Champ - 2 Player                   2001.02    GCA18 JA          A18 JA(needs redump)
125 P *Step Champ                                   1999.12
126 
127 P: plain System573
128 A: uses ext. analog I/O board
129 D: uses ext. digital sound and I/O board
130 N: uses network PCB unit + ext. digital sound and I/O board
131 G: gun mania only, drives air soft gun (this game uses real BB bullet)
132 
133   Note:
134        Not all games listed above are confirmed to run on System 573.
135        * - denotes not dumped yet.
136 
137   Main PCB Layout
138   ---------------
139                                                      External controls port
140   GX700-PWB(A)B                                               ||
141   (C)1997 KONAMI CO. LTD.                                     \/
142   |-----------------------------------------------------==============-------|
143   |   CN15            CNA                     CN10                           |
144   |        CN16                                                              |
145   |                                                 |------------------------|
146   | PQ30RV21                                        |                        |
147   |                         |-------|               |                        |
148   |             KM416V256   |SONY   |               |     PCMCIA SLOT        |
149   |                         |CXD2925|               |                        |
150   |                         |-------|               |                        |
151   |                                                 |                        |
152   |                                                 |------------------------|
153   | |-----|                                        CN21                      |
154   | |32M  |  |---------|     |---------|                                     |
155   | |-----|  |SONY     |     |SONY     |                                     |
156   |          |CXD8561Q |     |CXD8530CQ|           29F016   29F016   |--|    |
157   | |-----|  |         |     |         |                             |  |    |
158   | |32M  |  |         |     |         |                             |  |    |
159   | |-----|  |---------|     |---------|           29F016   29F016   |  |    |
160   |      53.693175MHz    67.7376MHz                                  |  |    |
161   |                                     |-----|                      |  |CN14|
162   |      KM48V514      KM48V514         |9536 |    29F016   29F016   |  |    |
163   |            KM48V514       KM48V514  |     |                      |  |    |
164   |      KM48V514      KM48V514         |-----|                      |  |    |
165   |            KM48V514      KM48V514              29F016   29F016   |--|    |
166   | MC44200FT                          M48T58Y-70PC1                         |
167   |                                                                      CN12|
168   |                                    700A01.22                             |
169   |                             14.7456MHz                                   |
170   |                  |-------|                                               |
171   |                  |KONAMI |    |----|                               LA4705|
172   |   058232         |056879 |    |3644|                            SM5877   |
173   |                  |       |    |----|         ADC0834                LM358|
174   |                  |-------|            ADM485           CN4               |
175   |                              CN5                        CN3      CN17    |
176   |                                TEST_SW  DIP4 USB   CN8     RCA-L/R   CN9 |
177   |--|          JAMMA            |-------------------------------------------|
178      |---------------------------|
179   Notes:
180   CNA       - 40-pin IDE cable connector
181   CN3       - 10-pin connector labelled 'ANALOG', connected to a 9-pin DSUB connector mounted in the
182               front face of the housing, labelled 'OPTION1'
183   CN4       - 12-pin connector labelled 'EXT-OUT'
184   CN5       - 10-pin connector labelled 'EXT-IN', connected to a 9-pin DSUB connector mounted in the
185               front face of the housing, labelled 'OPTION2'
186   CN8       - 15-pin DSUB plug labelled 'VGA-DSUB15' extending from the front face of the housing
187               labelled 'RGB'. Use of this connector is optional because the video is output via the
188               standard JAMMA connector
189   CN9       - 4-pin connector for amplified stereo sound output to 2 speakers
190   CN10      - Custom 80-pin connector (for mounting an additional plug-in board for extra controls,
191               possibly with CN21 also)
192   CN12      - 4-pin CD-DA input connector (for Red-Book audio from CDROM drive to main board)
193   CN14      - 44-pin security cartridge connector. The cartridge only contains a small PCB labelled
194               'GX700-PWB(D) (C)1997 KONAMI' and has locations for 2 ICs only
195               IC1 - Small SOIC8 chip, identified as a XICOR X76F041 security supervisor containing 4X
196               128 x8 secureFLASH arrays, stamped '0038323 E9750'
197               IC2 - Solder pads for mounting of a PLCC68 or QFP68 packaged IC (not populated)
198   CN15      - 4-pin CDROM power connector
199   CN16      - 2-pin fan connector
200   CN17      - 6-pin power connector, connected to an 8-pin power plug mounted in the front face
201               of the housing. This can be left unused because the JAMMA connector supplies all power
202               requirements to the PCB
203   CN21      - Custom 30-pin connector (purpose unknown, but probably for mounting an additional
204               plug-in board with CN10 also)
205   TEST_SW   - Push-button test switch
206   DIP4      - 4-position DIP switch
207   USB       - USB connector extended from the front face of the housing labelled 'I/O'
208   RCA-L/R   - RCA connectors for left/right audio output
209   PQ30RV21  - Sharp PQ30RV21 low-power voltage regulator (5 Volt to 3 Volt)
210   LA4705    - Sanyo LA4705 15W 2-channel power amplifier (SIP18)
211   LM358     - National Semiconductor LM358 low power dual operational amplifier (SOIC8, @ 33C)
212   CXD2925Q  - Sony CXD2925Q SPU (QFP100, @ 15Q)
213   CXD8561Q  - Sony CXD8561Q GPU (QFP208, @ 10M) Also found CXD8561BQ in some units
214   CXD8530CQ - Sony CXD8530CQ R3000-based CPU (QFP208, @ 17M)
215   9536      - Xilinx XC9536 in-system-programmable CPLD (PLCC44, @ 22J)
216   3644      - Hitachi H8/3644 HD6473644H microcontroller with 32k ROM & 1k RAM (QFP64, @ 18E,
217               labelled '700 02 38920')
218   056879    - Konami 056879 custom IC (QFP120, @ 13E)
219   MC44200FT - Motorola MC44200FT Triple 8-bit Video DAC (QFP44)
220   058232    - Konami 058232 custom ceramic IC (SIP14, @ 6C)
221   SM5877    - Nippon Precision Circuits SM5877 2-channel D/A convertor (SSOP24, @32D)
222   ADM485    - Analog Devices ADM485 low power EIA RS-485 transceiver (SOIC8, @ 20C)
223   ADC0834   - National Semiconductor ADC0834 8-Bit Serial I/O A/D Converter with Multiplexer
224               Option (SOIC14, @ 24D)
225   M48T58Y-70- STMicroelectronics M48T58Y-70PC1 8k x8 Timekeeper RAM (DIP32, @ 22H)
226               Note that this is not used for protection. If you put in a new blank Timekeeper RAM
227               it will be programmed with some data on power-up. If you swap games, the Timekeeper
228               is updated with the new game data
229   29F016      Fujitsu 29F016A-90PFTN 2M x8 FlashROM (TSOP48, @ 27H/J/L/M & 31H/J/L/M)
230               Also found Sharp LH28F016S (2M x8 TSOP40) in some units
231   KM416V256 - Samsung Electronics KM416V256BT-7 256k x 16 DRAM (TSOP44/40, @ 11Q labelled 'SPUDR4M')
232   KM48V514  - Samsung Electronics KM48V514BJ-6 512k x 8 EDO DRAM (SOJ28, @ 16G/H, 14G/H, 12G/H, 9G/H labelled 'HDR4M8SJ')
233               Also found NEC 424805AL-A60 in some units
234   32M       - NEC D481850GF-A12 128k x 32Bit x 2 Banks SGRAM (QFP100, @ 4P & 4L)
235               Also found Samsung KM4132G271Q-12 in some units
236   Software  -
237               - 700A01.22G 4M MaskROM (DIP32, @ 22G). AMD 27C040 is also used
238               - SONY ATAPI CDROM drive, with CDROM disc containing program + graphics + sound
239                 Some System 573 units contain a CR-583 drive dated October 1997, some contain a
240                 CR-587 drive dated March 1998. Note that the CR-587 will not read CDR discs ;-)
241 
242 
243   Auxillary Controls PCB
244   ----------------------
245 
246   GE765-PWB(B)A (C)1998 KONAMI CO. LTD.
247   |-----------------------------|
248   |          CN33     C2242     |
249   |                   C2242     |
250   |       NRPS11-G1A            |
251   |                         CN35|
252   |  D4701                      |
253   |        74LS14     PC817     |-----------------|
254   |                                               |
255   |  PAL         PAL                              |
256   | (E765B1)    (E765B2)         LCX245           |
257   |                                               |
258   |  74LS174     PAL                              |
259   |             (E765B1)                          |
260   |                                               |
261   |              74LS174       CN31               |
262   |-----------------------------------------------|
263   Notes: (all IC's shown)
264         This PCB is known to be used for the fishing reel controls on all of the fishing games (at least).
265 
266         CN31       - Connector joining this PCB to the MAIN PCB
267         CN33       - Connector used to join the external controls connector mounted on the outside of the
268                      metal case to this PCB.
269         CN35       - Power connector
270         NRPS11-G1A - Relay?
271         D4701      - NEC uPD4701 Encoder (SOP24)
272         C2242      - 2SC2242 Transistor
273         PC817      - Sharp PC817 Photo-coupler IC (DIP4)
274         PAL        - AMD PALCE16V8Q, stamped 'E765Bx' (DIP20)
275 
276 
277  GE877-PWB(C) (C)1998 KONAMI
278   |----------------------|
279 |--       JAMMA OUT      --|
280 |                          |
281 |      CN6                 |
282 |     CN5  CN4  CN3  CN2   |
283 |                          |
284 |                          |
285 |         JAMMA IN         |
286 |--------------------------|
287  Notes: This PCB is used for Gachagachamp. No ICs.
288 
289         CN5 - To control lever unit (1P). uses 9 pins out of 15 pins of B15P-SHF-1AA
290         CN6 - To control lever unit (2P). uses 9 pins out of 14 pins of B14P-SHF-1AA
291         (CN4, CN3, CN2 is printed pattern only, no actual connector)
292 
293 
294   PCMCIA Flash Card
295   -----------------
296 
297   Front
298 
299   |----PCMCIA CONNECTOR-----|
300   |                         |
301   | HT04A MB624018 MB624019 |
302   | AT28C16                 |
303   |                         |
304   | 29F017A.1L   29F017A.1U |
305   | 90PFTR       90PFTN     |
306   |                         |
307   | 29F017A.2L   29F017A.2U |
308   | 90PFTN       90PFTR     |
309   |                         |
310   | 29F017A.3L   29F017A.3U |
311   | 90PFTR       90PFTN     |
312   |                         |
313   | 29F017A.4L   29F017A.4U |
314   | 90PFTN       90PFTR     |
315   |                         |
316   |------------------SWITCH-|
317 
318   Back
319 
320   |----PCMCIA CONNECTOR-----|
321   |                         |
322   |                         |
323   |                         |
324   |                         |
325   | 29F017A.5U   29F017A.5L |
326   | 90PFTR       90PFTN     |
327   |                         |
328   | 29F017A.6U   29F017A.6L |
329   | 90PFTN       90PFTR     |
330   |                         |
331   | 29F017A.7U   29F017A.7L |
332   | 90PFTR       90PFTN     |
333   |                         |
334   | 29F017A.8U   29F017A.8L |
335   | 90PFTN       90PFTR     |
336   |                         |
337   |-SWITCH------------------|
338 
339   Texas Instruments HT04A
340   Fujitsu MB624018 CMOS GATE ARRAY
341   Fujitsu MB624019 CMOS GATE ARRAY
342   Atmel AT28C16 16K (2K x 8) Parallel EEPROM
343   Fujitsu 29F017A-90PFTR 16M (2M x 8) BIT Flash Memory Reverse Pinout (Gachaga Champ card used 29F017-12PFTR instead)
344   Fujitsu 29F017A-90PFTN 16M (2M x 8) BIT Flash Memory Standard Pinout
345 
346   */
347 
348 #include "emu.h"
349 #include "cpu/psx/psx.h"
350 #include "bus/ata/ataintf.h"
351 #include "bus/ata/cr589.h"
352 #include "machine/adc083x.h"
353 #include "machine/bankdev.h"
354 #include "machine/ds2401.h"
355 #include "machine/linflash.h"
356 #include "machine/k573cass.h"
357 #include "machine/k573dio.h"
358 #include "machine/k573mcr.h"
359 #include "machine/k573msu.h"
360 #include "machine/k573npu.h"
361 #include "machine/mb89371.h"
362 #include "machine/ram.h"
363 #include "machine/timekpr.h"
364 #include "machine/upd4701.h"
365 #include "sound/spu.h"
366 #include "sound/cdda.h"
367 #include "video/psx.h"
368 #include "cdrom.h"
369 #include "romload.h"
370 #include "screen.h"
371 #include "speaker.h"
372 
373 #define VERBOSE_LEVEL ( 0 )
374 
375 #define ATAPI_CYCLES_PER_SECTOR ( 5000 )  // plenty of time to allow DMA setup etc.  BIOS requires this be at least 2000, individual games may vary.
376 
377 class ksys573_state : public driver_device
378 {
379 public:
ksys573_state(const machine_config & mconfig,device_type type,const char * tag)380 	ksys573_state( const machine_config &mconfig, device_type type, const char *tag ) :
381 		driver_device(mconfig, type, tag),
382 		m_pads(*this, "PADS"),
383 		m_analog0(*this, "analog0"),
384 		m_analog1(*this, "analog1"),
385 		m_analog2(*this, "analog2"),
386 		m_analog3(*this, "analog3"),
387 		m_psxirq(*this, "maincpu:irq"),
388 		m_ata(*this, "ata"),
389 		m_image(*this, "ata:0:cr589"),
390 		m_pccard1(*this, "pccard1"),
391 		m_pccard2(*this, "pccard2"),
392 		m_h8_response(*this, "h8_response"),
393 		m_maincpu(*this, "maincpu"),
394 		m_ram(*this, "maincpu:ram"),
395 		m_flashbank(*this, "flashbank"),
396 		m_out1(*this, "OUT1"),
397 		m_out2(*this, "OUT2"),
398 		m_cd(*this, "CD"),
399 		m_upd4701(*this, "upd4701"),
400 		m_stage(*this, "STAGE"),
401 		m_gunx(*this, "GUNX"),
402 		m_sensor(*this, "SENSOR"),
403 		m_encoder(*this, "ENCODER"),
404 		m_gunmania_id(*this, "gunmania_id"),
405 		m_duart(*this, "mb89371"),
406 		m_lamps(*this, "lamp%u", 0U)
407 	{ }
408 
409 	void drmn9m(machine_config &config);
410 	void drmn10m(machine_config &config);
411 	void gtfrk10m(machine_config &config);
412 	void gtfrk11m(machine_config &config);
413 	void gtfrk10mb(machine_config &config);
414 	void ddr(machine_config &config);
415 	void pnchmn(machine_config &config);
416 	void gtrfrk7m(machine_config &config);
417 	void ddr3m(machine_config &config);
418 	void hyperbbc(machine_config &config);
419 	void pnchmn2(machine_config &config);
420 	void ddrsolo(machine_config &config);
421 	void ddrsbm(machine_config &config);
422 	void ddr3mp(machine_config &config);
423 	void dsftkd(machine_config &config);
424 	void dsfdcta(machine_config &config);
425 	void mamboagga(machine_config &config);
426 	void gunmania(machine_config &config);
427 	void hypbbc2p(machine_config &config);
428 	void gtrfrk2m(machine_config &config);
429 	void gtrfrk5m(machine_config &config);
430 	void ddrs2k(machine_config &config);
431 	void stepchmp(machine_config& config);
432 	void animechmp(machine_config &config);
433 	void salarymc(machine_config &config);
434 	void gbbchmp(machine_config &config);
435 	void ddr2ml(machine_config &config);
436 	void konami573(machine_config &config);
437 	void drmn2m(machine_config &config);
438 	void gtrfrk3m(machine_config &config);
439 	void mamboagg(machine_config &config);
440 	void gtrfrks(machine_config &config);
441 	void gchgchmp(machine_config &config);
442 	void ddr5m(machine_config &config);
443 	void drmn4m(machine_config &config);
444 	void fbaitbc(machine_config &config);
445 	void ddr4ms(machine_config &config);
446 	void dsfdr(machine_config &config);
447 	void konami573x(machine_config &config);
448 	void ddrusa(machine_config &config);
449 	void dsem(machine_config &config);
450 	void dmx(machine_config &config);
451 	void drmn(machine_config &config);
452 	void k573d(machine_config &config);
453 	void k573a(machine_config &config);
454 	void pccard1_16mb(machine_config &config);
455 	void pccard1_32mb(machine_config &config);
456 	void pccard2_32mb(machine_config &config);
457 	void pccard2_64mb(machine_config &config);
458 	void cassx(machine_config &config);
459 	void cassxi(machine_config &config);
460 	void cassy(machine_config &config);
461 	void cassyi(machine_config &config);
462 	void cassyyi(machine_config &config);
463 	void casszi(machine_config &config);
464 	void cassxzi(machine_config &config);
465 
466 	void init_serlamp();
467 	void init_pnchmn();
468 	void init_ddr();
469 	void init_hyperbbc();
470 	void init_drmn();
471 
472 	DECLARE_CUSTOM_INPUT_MEMBER( gn845pwbb_read );
473 	DECLARE_READ_LINE_MEMBER( gunmania_tank_shutter_sensor );
474 	DECLARE_READ_LINE_MEMBER( gunmania_cable_holder_sensor );
475 
476 	DECLARE_READ_LINE_MEMBER( h8_d0_r );
477 	DECLARE_READ_LINE_MEMBER( h8_d1_r );
478 	DECLARE_READ_LINE_MEMBER( h8_d2_r );
479 	DECLARE_READ_LINE_MEMBER( h8_d3_r );
480 
481 	DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b7 );
482 	DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b6 );
483 	DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b5 );
484 	DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b4 );
485 	DECLARE_WRITE_LINE_MEMBER( dmx_lamps_b0 );
486 	DECLARE_WRITE_LINE_MEMBER( dmx_lamps_b1 );
487 	DECLARE_WRITE_LINE_MEMBER( dmx_lamps_b2 );
488 	DECLARE_WRITE_LINE_MEMBER( dmx_lamps_b3 );
489 	DECLARE_WRITE_LINE_MEMBER( dmx_lamps_b4 );
490 	DECLARE_WRITE_LINE_MEMBER( dmx_lamps_b5 );
491 	DECLARE_WRITE_LINE_MEMBER( mamboagg_lamps_b3 );
492 	DECLARE_WRITE_LINE_MEMBER( mamboagg_lamps_b4 );
493 	DECLARE_WRITE_LINE_MEMBER( mamboagg_lamps_b5 );
494 	DECLARE_WRITE_LINE_MEMBER( serial_lamp_reset );
495 	DECLARE_WRITE_LINE_MEMBER( serial_lamp_data );
496 	DECLARE_WRITE_LINE_MEMBER( stepchmp_lamp_clock );
497 	DECLARE_WRITE_LINE_MEMBER( animechmp_lamp_clock );
498 	DECLARE_WRITE_LINE_MEMBER( salarymc_lamp_clock );
499 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_red );
500 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_green );
501 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_blue );
502 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_start );
503 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_strobe1 );
504 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_strobe2 );
505 	DECLARE_WRITE_LINE_MEMBER( hyperbbc_lamp_strobe3 );
506 
507 	WRITE_LINE_MEMBER( h8_clk_w );
508 
509 	double m_pad_position[ 6 ];
510 	optional_ioport m_pads;
511 
512 private:
513 
514 	uint16_t control_r(offs_t offset, uint16_t mem_mask = ~0);
515 	void control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
516 	void atapi_reset_w(uint16_t data);
517 	void security_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
518 	uint16_t security_r(offs_t offset, uint16_t mem_mask = ~0);
519 	uint16_t ge765pwbba_r(offs_t offset, uint16_t mem_mask = ~0);
520 	void ge765pwbba_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
521 	uint16_t gx700pwbf_io_r(offs_t offset, uint16_t mem_mask = ~0);
522 	void gx700pwbf_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
523 	void gunmania_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
524 	uint16_t gunmania_r(offs_t offset, uint16_t mem_mask = ~0);
525 	DECLARE_MACHINE_RESET( konami573 );
526 	DECLARE_WRITE_LINE_MEMBER( ata_interrupt );
527 
528 	TIMER_CALLBACK_MEMBER( atapi_xfer_end );
529 	void ddr_output_callback(offs_t offset, uint8_t data);
530 	void ddrsolo_output_callback(offs_t offset, uint8_t data);
531 	void drmn_output_callback(offs_t offset, uint8_t data);
532 	void dmx_output_callback(offs_t offset, uint8_t data);
533 	void mamboagg_output_callback(offs_t offset, uint8_t data);
534 	void punchmania_output_callback(offs_t offset, uint8_t data);
535 	double analogue_inputs_callback(uint8_t input);
536 
537 	void cdrom_dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size );
538 	void cdrom_dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size );
539 	DECLARE_WRITE_LINE_MEMBER( sys573_vblank );
540 
541 	void punchmania_cassette_install(device_t *device);
542 	void stepchmp_cassette_install(device_t* device);
543 	void animechmp_cassette_install(device_t *device);
544 	void salarymc_cassette_install(device_t *device);
545 	void hyperbbc_cassette_install(device_t *device);
546 	void hyprbbc2_cassette_install(device_t *device);
547 	void hypbbc2p_cassette_install(device_t *device);
548 	static void cr589_config(device_t *device);
549 	void fbaitbc_map(address_map &map);
550 	void flashbank_map(address_map &map);
551 	void gunmania_map(address_map &map);
552 	void gbbchmp_map(address_map &map);
553 	void konami573_map(address_map &map);
554 	void konami573a_map(address_map &map);
555 	void konami573d_map(address_map &map);
556 
machine_start()557 	virtual void machine_start() override { m_lamps.resolve(); }
558 	virtual void driver_start() override;
559 
560 	required_ioport m_analog0;
561 	required_ioport m_analog1;
562 	required_ioport m_analog2;
563 	required_ioport m_analog3;
564 
565 	inline void ATTR_PRINTF( 3,4 ) verboselog( int n_level, const char *s_fmt, ... );
566 	void update_disc();
567 	void gx700pwbf_output( int offset, uint8_t data );
568 	void gx700pwfbf_init( void ( ksys573_state::*output_callback_func )( ATTR_UNUSED offs_t offset, ATTR_UNUSED uint8_t data ) );
569 	void gn845pwbb_do_w( int offset, int data );
570 	void gn845pwbb_clk_w( int offset, int data );
571 
572 	required_device<psxirq_device> m_psxirq;
573 
574 	required_device<ata_interface_device> m_ata;
575 	optional_device<atapi_hle_device> m_image;
576 	required_device<pccard_slot_device> m_pccard1;
577 	required_device<pccard_slot_device> m_pccard2;
578 	cdrom_file *m_available_cdroms[ 2 ];
579 	emu_timer *m_atapi_timer;
580 	int m_atapi_xferbase;
581 	int m_atapi_xfersize;
582 
583 	uint32_t m_control;
584 	uint16_t m_n_security_control;
585 
586 	required_region_ptr<uint8_t> m_h8_response;
587 	int m_h8_index;
588 	int m_h8_clk;
589 
590 	uint8_t m_gx700pwbf_output_data[ 4 ];
591 	void ( ksys573_state::*m_gx700pwfbf_output_callback )( ATTR_UNUSED offs_t offset, ATTR_UNUSED uint8_t data );
592 
593 	uint32_t m_stage_mask;
594 	struct
595 	{
596 		int DO;
597 		int clk;
598 		int shift;
599 		int state;
600 		int bit;
601 	} m_stage_state[ 2 ];
602 
603 	int m_serial_lamp_bits;
604 	int m_serial_lamp_shift;
605 	int m_serial_lamp_data;
606 	int m_serial_lamp_clock;
607 
608 	int m_hyperbbc_lamp_red;
609 	int m_hyperbbc_lamp_green;
610 	int m_hyperbbc_lamp_blue;
611 	int m_hyperbbc_lamp_start;
612 	int m_hyperbbc_lamp_strobe1;
613 	int m_hyperbbc_lamp_strobe2;
614 	int m_hyperbbc_lamp_strobe3;
615 
616 	uint32_t *m_p_n_psxram;
617 
618 	int m_tank_shutter_position;
619 	int m_cable_holder_release;
620 
621 	required_device<psxcpu_device> m_maincpu;
622 	required_device<ram_device> m_ram;
623 	required_device<address_map_bank_device> m_flashbank;
624 	required_ioport m_out1;
625 	required_ioport m_out2;
626 	required_ioport m_cd;
627 	optional_device<upd4701_device> m_upd4701;
628 	optional_ioport m_stage;
629 	optional_ioport m_gunx;
630 	optional_ioport m_sensor;
631 	optional_ioport m_encoder;
632 	optional_device<ds2401_device> m_gunmania_id;
633 	optional_device<mb89371_device> m_duart;
634 	output_finder<2> m_lamps;
635 };
636 
verboselog(int n_level,const char * s_fmt,...)637 void ATTR_PRINTF( 3,4 )  ksys573_state::verboselog( int n_level, const char *s_fmt, ... )
638 {
639 	if( VERBOSE_LEVEL >= n_level )
640 	{
641 		va_list v;
642 		char buf[ 32768 ];
643 		va_start( v, s_fmt );
644 		vsprintf( buf, s_fmt, v );
645 		va_end( v );
646 		logerror( "%s: %s", machine().describe_context(), buf );
647 	}
648 }
649 
konami573_map(address_map & map)650 void ksys573_state::konami573_map(address_map &map)
651 {
652 	map(0x1f000000, 0x1f3fffff).m(m_flashbank, FUNC(address_map_bank_device::amap16));
653 	map(0x1f400000, 0x1f400003).portr("IN0").portw("OUT0");
654 	map(0x1f400004, 0x1f400007).portr("IN1");
655 	map(0x1f400008, 0x1f40000b).portr("IN2");
656 	map(0x1f40000c, 0x1f40000f).portr("IN3");
657 	map(0x1f480000, 0x1f48000f).rw(m_ata, FUNC(ata_interface_device::cs0_r), FUNC(ata_interface_device::cs0_w));
658 	map(0x1f500000, 0x1f500001).rw(FUNC(ksys573_state::control_r), FUNC(ksys573_state::control_w));    // Konami can't make a game without a "control" register.
659 	map(0x1f560000, 0x1f560001).w(FUNC(ksys573_state::atapi_reset_w));
660 	map(0x1f5c0000, 0x1f5c0003).nopw();                // watchdog?
661 	map(0x1f600000, 0x1f600003).portw("LAMPS");
662 	map(0x1f620000, 0x1f623fff).rw("m48t58", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)).umask32(0x00ff00ff);
663 	map(0x1f6a0000, 0x1f6a0001).rw(FUNC(ksys573_state::security_r), FUNC(ksys573_state::security_w));
664 }
665 
flashbank_map(address_map & map)666 void ksys573_state::flashbank_map(address_map &map)
667 {
668 	map(0x0000000, 0x03fffff).rw("29f016a.31m", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0x00ff);
669 	map(0x0000000, 0x03fffff).rw("29f016a.27m", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0xff00);
670 	map(0x0400000, 0x07fffff).rw("29f016a.31l", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0x00ff);
671 	map(0x0400000, 0x07fffff).rw("29f016a.27l", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0xff00);
672 	map(0x0800000, 0x0bfffff).rw("29f016a.31j", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0x00ff);
673 	map(0x0800000, 0x0bfffff).rw("29f016a.27j", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0xff00);
674 	map(0x0c00000, 0x0ffffff).rw("29f016a.31h", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0x00ff);
675 	map(0x0c00000, 0x0ffffff).rw("29f016a.27h", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)).umask16(0xff00);
676 	map(0x4000000, 0x7ffffff).rw("pccard1", FUNC(pccard_slot_device::read_memory), FUNC(pccard_slot_device::write_memory));
677 	map(0x8000000, 0xbffffff).rw("pccard2", FUNC(pccard_slot_device::read_memory), FUNC(pccard_slot_device::write_memory));
678 }
679 
konami573d_map(address_map & map)680 void ksys573_state::konami573d_map(address_map &map)
681 {
682 	konami573_map(map);
683 	map(0x1f640000, 0x1f6400ff).m("k573dio", FUNC(k573dio_device::amap));
684 }
685 
konami573a_map(address_map & map)686 void ksys573_state::konami573a_map(address_map &map)
687 {
688 	konami573_map(map);
689 	map(0x1f640000, 0x1f6400ff).rw(FUNC(ksys573_state::gx700pwbf_io_r), FUNC(ksys573_state::gx700pwbf_io_w));
690 }
691 
fbaitbc_map(address_map & map)692 void ksys573_state::fbaitbc_map(address_map &map)
693 {
694 	konami573_map(map);
695 	map(0x1f640000, 0x1f6400ff).rw(FUNC(ksys573_state::ge765pwbba_r), FUNC(ksys573_state::ge765pwbba_w));
696 }
697 
gunmania_map(address_map & map)698 void ksys573_state::gunmania_map(address_map &map)
699 {
700 	konami573_map(map);
701 	map(0x1f640000, 0x1f6400ff).rw(FUNC(ksys573_state::gunmania_r), FUNC(ksys573_state::gunmania_w));
702 }
703 
gbbchmp_map(address_map & map)704 void ksys573_state::gbbchmp_map(address_map& map)
705 {
706 	konami573_map(map);
707 	// The game waits until transmit is ready, but the chip may not actually be present.
708 	map(0x1f640000, 0x1f640007).rw(m_duart, FUNC(mb89371_device::read), FUNC(mb89371_device::write)).umask32(0x00ff00ff);
709 }
710 
control_r(offs_t offset,uint16_t mem_mask)711 uint16_t ksys573_state::control_r(offs_t offset, uint16_t mem_mask)
712 {
713 	verboselog( 2, "control_r( %08x, %08x ) %08x\n", offset, mem_mask, m_control );
714 
715 	return m_control;
716 }
717 
control_w(offs_t offset,uint16_t data,uint16_t mem_mask)718 void ksys573_state::control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
719 {
720 	COMBINE_DATA( &m_control );
721 
722 	verboselog( 2, "control_w( %08x, %08x, %08x )\n", offset, mem_mask, data );
723 
724 	m_out2->write( data, mem_mask );
725 
726 	m_flashbank->set_bank( m_control & 0x3f );
727 }
728 
TIMER_CALLBACK_MEMBER(ksys573_state::atapi_xfer_end)729 TIMER_CALLBACK_MEMBER( ksys573_state::atapi_xfer_end )
730 {
731 	/// TODO: respect timing of data from ATAPI device.
732 
733 	m_atapi_timer->adjust( attotime::never );
734 
735 	for( int i = 0; i < m_atapi_xfersize; i++ )
736 	{
737 		uint32_t d = m_ata->cs0_r(0) << 0;
738 		d |= m_ata->cs0_r(0) << 16;
739 
740 		m_p_n_psxram[ m_atapi_xferbase / 4 ] = d;
741 		m_atapi_xferbase += 4;
742 	}
743 
744 	/// HACK: konami80s only works if you dma more data than requested
745 	if( ( m_ata->cs1_r(6) & 8 ) != 0 )
746 	{
747 		m_atapi_timer->adjust( m_maincpu->cycles_to_attotime( ( ATAPI_CYCLES_PER_SECTOR * ( m_atapi_xfersize / 64 ) ) ) );
748 	}
749 }
750 
WRITE_LINE_MEMBER(ksys573_state::ata_interrupt)751 WRITE_LINE_MEMBER( ksys573_state::ata_interrupt )
752 {
753 	m_psxirq->intin10( state );
754 }
755 
atapi_reset_w(uint16_t data)756 void ksys573_state::atapi_reset_w(uint16_t data)
757 {
758 	if( !( data & 1 ) )
759 	{
760 		m_ata->reset();
761 	}
762 }
763 
cdrom_dma_read(uint32_t * ram,uint32_t n_address,int32_t n_size)764 void ksys573_state::cdrom_dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size )
765 {
766 	verboselog( 2, "cdrom_dma_read( %08x, %08x )\n", n_address, n_size );
767 //  osd_printf_debug( "DMA read: address %08x size %08x\n", n_address, n_size );
768 }
769 
cdrom_dma_write(uint32_t * ram,uint32_t n_address,int32_t n_size)770 void ksys573_state::cdrom_dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size )
771 {
772 	m_p_n_psxram = ram;
773 
774 	verboselog( 2, "cdrom_dma_write( %08x, %08x )\n", n_address, n_size );
775 //  osd_printf_debug( "DMA write: address %08x size %08x\n", n_address, n_size );
776 
777 	m_atapi_xferbase = n_address;
778 	m_atapi_xfersize = n_size;
779 	// set a transfer complete timer ( Note: CYCLES_PER_SECTOR can't be lower than 2000 or the BIOS ends up "out of order" )
780 	m_atapi_timer->adjust( m_maincpu->cycles_to_attotime( ( ATAPI_CYCLES_PER_SECTOR * ( n_size / 512 ) ) ) );
781 }
782 
security_w(offs_t offset,uint16_t data,uint16_t mem_mask)783 void ksys573_state::security_w(offs_t offset, uint16_t data, uint16_t mem_mask)
784 {
785 	COMBINE_DATA( &m_n_security_control );
786 
787 	verboselog( 2, "security_w( %08x, %08x, %08x )\n", offset, mem_mask, data );
788 
789 	m_out1->write( data, mem_mask );
790 }
791 
security_r(offs_t offset,uint16_t mem_mask)792 uint16_t ksys573_state::security_r(offs_t offset, uint16_t mem_mask)
793 {
794 	uint16_t data = m_n_security_control;
795 	verboselog( 2, "security_r( %08x, %08x ) %08x\n", offset, mem_mask, data );
796 	return data;
797 }
798 
update_disc()799 void ksys573_state::update_disc()
800 {
801 	int cd = m_cd->read();
802 	cdrom_file *new_cdrom;
803 
804 	if( m_available_cdroms[ 1 ] != nullptr )
805 	{
806 		new_cdrom = m_available_cdroms[ cd ];
807 	}
808 	else
809 	{
810 		new_cdrom = m_available_cdroms[ 0 ];
811 	}
812 
813 	if( m_image != nullptr )
814 	{
815 		void *current_cdrom = nullptr;
816 		m_image->GetDevice( &current_cdrom );
817 
818 		if( current_cdrom != new_cdrom )
819 		{
820 			current_cdrom = new_cdrom;
821 
822 			m_image->SetDevice( new_cdrom );
823 		}
824 	}
825 }
826 
driver_start()827 void ksys573_state::driver_start()
828 {
829 	m_atapi_timer = machine().scheduler().timer_alloc( timer_expired_delegate( FUNC( ksys573_state::atapi_xfer_end ),this ) );
830 	m_atapi_timer->adjust( attotime::never );
831 
832 	m_available_cdroms[ 0 ] = cdrom_open(machine().rom_load().get_disk_handle(":cdrom0"));
833 	m_available_cdroms[ 1 ] = cdrom_open(machine().rom_load().get_disk_handle(":cdrom1"));
834 
835 	m_n_security_control = 0;
836 	m_control = 0;
837 
838 	save_item( NAME( m_n_security_control ) );
839 	save_item( NAME( m_control ) );
840 }
841 
MACHINE_RESET_MEMBER(ksys573_state,konami573)842 MACHINE_RESET_MEMBER( ksys573_state,konami573 )
843 {
844 	update_disc();
845 
846 	m_h8_index = 0;
847 	m_h8_clk = 0;
848 }
849 
WRITE_LINE_MEMBER(ksys573_state::sys573_vblank)850 WRITE_LINE_MEMBER(ksys573_state::sys573_vblank)
851 {
852 	update_disc();
853 
854 	/// TODO: emulate the memory controller board
855 	if( strcmp( machine().system().name, "ddr2ml" ) == 0 )
856 	{
857 		/* patch out security-plate error */
858 
859 		uint32_t *p_n_psxram = (uint32_t *) m_ram->pointer();
860 
861 		/* install cd */
862 
863 		/* 801e1540: jal $801e1f7c */
864 		if( p_n_psxram[ 0x1e1540 / 4 ] == 0x0c0787df )
865 		{
866 			/* 801e1540: j $801e1560 */
867 			p_n_psxram[ 0x1e1540 / 4 ] = 0x08078558;
868 		}
869 
870 		/* flash */
871 
872 		/* 8001f850: jal $80031fd8 */
873 		if( p_n_psxram[ 0x1f850 / 4 ] == 0x0c00c7f6 )
874 		{
875 			/* 8001f850: j $8001f888 */
876 			p_n_psxram[ 0x1f850 / 4 ] = 0x08007e22;
877 		}
878 	}
879 	else if( strcmp( machine().system().name, "ddr2mla" ) == 0 )
880 	{
881 		/* patch out security-plate error */
882 
883 		uint32_t *p_n_psxram = (uint32_t *) m_ram->pointer();
884 
885 		/* 8001f850: jal $8003221c */
886 		if( p_n_psxram[ 0x1f850 / 4 ] == 0x0c00c887 )
887 		{
888 			/* 8001f850: j $8001f888 */
889 			p_n_psxram[ 0x1f850 / 4 ] = 0x08007e22;
890 		}
891 	}
892 }
893 
894 // H8 check at startup (JVS related)
895 
WRITE_LINE_MEMBER(ksys573_state::h8_clk_w)896 WRITE_LINE_MEMBER( ksys573_state::h8_clk_w )
897 {
898 	if( m_h8_clk != state )
899 	{
900 		if( state )
901 		{
902 			if( m_h8_index < m_h8_response.length() - 1 )
903 			{
904 				m_h8_index++;
905 			}
906 		}
907 
908 		m_h8_clk = state;
909 	}
910 }
911 
READ_LINE_MEMBER(ksys573_state::h8_d0_r)912 READ_LINE_MEMBER( ksys573_state::h8_d0_r )
913 {
914 	return ( m_h8_response[ m_h8_index ] >> 0 ) & 1;
915 }
916 
READ_LINE_MEMBER(ksys573_state::h8_d1_r)917 READ_LINE_MEMBER( ksys573_state::h8_d1_r )
918 {
919 	return ( m_h8_response[ m_h8_index ] >> 1 ) & 1;
920 }
921 
READ_LINE_MEMBER(ksys573_state::h8_d2_r)922 READ_LINE_MEMBER( ksys573_state::h8_d2_r )
923 {
924 	return ( m_h8_response[ m_h8_index ] >> 2 ) & 1;
925 }
926 
READ_LINE_MEMBER(ksys573_state::h8_d3_r)927 READ_LINE_MEMBER( ksys573_state::h8_d3_r )
928 {
929 	return ( m_h8_response[ m_h8_index ] >> 3 ) & 1;
930 }
931 
932 
933 /*
934 GE765-PWB(B)A
935 
936 todo:
937   find out what offset 4 is
938   fix reel type detection
939   find adc0834 SARS
940 
941 */
942 
ge765pwbba_r(offs_t offset,uint16_t mem_mask)943 uint16_t ksys573_state::ge765pwbba_r(offs_t offset, uint16_t mem_mask)
944 {
945 	switch( offset )
946 	{
947 	case 0x4c:
948 	case 0x4d:
949 		return m_upd4701->read_y(offset & 1);
950 
951 	default:
952 		verboselog( 0, "ge765pwbba_r: unhandled offset %08x %08x\n", offset, mem_mask );
953 		break;
954 	}
955 
956 	verboselog( 2, "ge765pwbba_r( %08x, %08x )\n", offset, mem_mask );
957 	return 0;
958 }
959 
ge765pwbba_w(offs_t offset,uint16_t data,uint16_t mem_mask)960 void ksys573_state::ge765pwbba_w(offs_t offset, uint16_t data, uint16_t mem_mask)
961 {
962 	switch( offset )
963 	{
964 	case 0x08:
965 		break;
966 
967 	case 0x40:
968 		output().set_value( "motor", data & 0xff );
969 		break;
970 
971 	case 0x44:
972 		output().set_value( "brake", data & 0xff );
973 		break;
974 
975 	case 0x50:
976 		m_upd4701->resety_w( 1 );
977 		m_upd4701->resety_w( 0 );
978 		break;
979 
980 	default:
981 		verboselog( 0, "ge765pwbba_w: unhandled offset %08x %08x %08x\n", offset, mem_mask, data );
982 		break;
983 	}
984 
985 	verboselog( 2, "ge765pwbba_w( %08x, %08x, %08x )\n", offset, mem_mask, data );
986 }
987 
988 /*
989 
990 GX700-PWB(F)
991 
992 Analogue I/O board
993 
994 */
995 
gx700pwbf_io_r(offs_t offset,uint16_t mem_mask)996 uint16_t ksys573_state::gx700pwbf_io_r(offs_t offset, uint16_t mem_mask)
997 {
998 	uint32_t data = 0;
999 	switch( offset )
1000 	{
1001 	case 0x40:
1002 		/* result not used? */
1003 		break;
1004 
1005 	case 0x44:
1006 		/* result not used? */
1007 		break;
1008 
1009 	case 0x48:
1010 		/* result not used? */
1011 		break;
1012 
1013 	case 0x4c:
1014 		/* result not used? */
1015 		break;
1016 
1017 	default:
1018 //      printf( "gx700pwbf_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data );
1019 		break;
1020 	}
1021 
1022 	verboselog( 2, "gx700pwbf_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data );
1023 
1024 	return data;
1025 }
1026 
gx700pwbf_output(int offset,uint8_t data)1027 void ksys573_state::gx700pwbf_output( int offset, uint8_t data )
1028 {
1029 	if( m_gx700pwfbf_output_callback != nullptr )
1030 	{
1031 		int i;
1032 		static const int shift[] = { 7, 6, 1, 0, 5, 4, 3, 2 };
1033 		for( i = 0; i < 8; i++ )
1034 		{
1035 			int oldbit = ( m_gx700pwbf_output_data[ offset ] >> shift[ i ] ) & 1;
1036 			int newbit = ( data >> shift[ i ] ) & 1;
1037 			if( oldbit != newbit )
1038 			{
1039 				( this->*m_gx700pwfbf_output_callback )( ( offset * 8 ) + i, newbit );
1040 			}
1041 		}
1042 	}
1043 	m_gx700pwbf_output_data[ offset ] = data;
1044 }
1045 
gx700pwbf_io_w(offs_t offset,uint16_t data,uint16_t mem_mask)1046 void ksys573_state::gx700pwbf_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
1047 {
1048 	verboselog( 2, "gx700pwbf_io_w( %08x, %08x, %08x )\n", offset, mem_mask, data );
1049 
1050 	switch( offset )
1051 	{
1052 	case 0x40:
1053 		gx700pwbf_output( 0, data & 0xff );
1054 		break;
1055 
1056 	case 0x44:
1057 		gx700pwbf_output( 1, data & 0xff );
1058 		break;
1059 
1060 	case 0x48:
1061 		gx700pwbf_output( 2, data & 0xff );
1062 		break;
1063 
1064 	case 0x4c:
1065 		gx700pwbf_output( 3, data & 0xff );
1066 		break;
1067 
1068 	default:
1069 //      printf( "gx700pwbf_io_w( %08x, %08x, %08x )\n", offset, mem_mask, data );
1070 		break;
1071 	}
1072 }
1073 
gx700pwfbf_init(void (ksys573_state::* output_callback_func)(ATTR_UNUSED offs_t offset,ATTR_UNUSED uint8_t data))1074 void ksys573_state::gx700pwfbf_init( void ( ksys573_state::*output_callback_func )( ATTR_UNUSED offs_t offset, ATTR_UNUSED uint8_t data ) )
1075 {
1076 	memset( m_gx700pwbf_output_data, 0, sizeof( m_gx700pwbf_output_data ) );
1077 
1078 	m_gx700pwfbf_output_callback = output_callback_func;
1079 
1080 	save_item( NAME( m_gx700pwbf_output_data ) );
1081 }
1082 
1083 /*
1084 
1085 GN845-PWB( B )
1086 
1087 DDR Stage Multiplexor
1088 
1089 */
1090 
1091 #define DDR_STAGE_IDLE ( 0 )
1092 #define DDR_STAGE_INIT ( 1 )
1093 
1094 static const int mask[] =
1095 {
1096 	0, 6, 2, 4,
1097 	0, 4, 0, 4,
1098 	0, 4, 0, 4,
1099 	0, 4, 0, 4,
1100 	0, 4, 0, 4,
1101 	0, 4, 0, 6
1102 };
1103 
gn845pwbb_do_w(int offset,int data)1104 void ksys573_state::gn845pwbb_do_w( int offset, int data )
1105 {
1106 	m_stage_state[ offset ].DO = !data;
1107 }
1108 
gn845pwbb_clk_w(int offset,int data)1109 void ksys573_state::gn845pwbb_clk_w( int offset, int data )
1110 {
1111 	int clk = !data;
1112 
1113 	if( clk != m_stage_state[ offset ].clk )
1114 	{
1115 		m_stage_state[ offset ].clk = clk;
1116 
1117 		if( clk )
1118 		{
1119 			m_stage_state[ offset ].shift = ( m_stage_state[ offset ].shift >> 1 ) | ( m_stage_state[ offset ].DO << 12 );
1120 
1121 			switch( m_stage_state[ offset ].state )
1122 			{
1123 			case DDR_STAGE_IDLE:
1124 				if( m_stage_state[ offset ].shift == 0xc90 )
1125 				{
1126 					m_stage_state[ offset ].state = DDR_STAGE_INIT;
1127 					m_stage_state[ offset ].bit = 0;
1128 					m_stage_mask = 0xfffff9f9;
1129 				}
1130 				break;
1131 
1132 			case DDR_STAGE_INIT:
1133 				m_stage_state[ offset ].bit++;
1134 				if( m_stage_state[ offset ].bit < 22 )
1135 				{
1136 					int a = ( ( ( ( ~0x06 ) | mask[ m_stage_state[ 0 ].bit ] ) & 0xff ) << 8 );
1137 					int b = ( ( ( ( ~0x06 ) | mask[ m_stage_state[ 1 ].bit ] ) & 0xff ) << 0 );
1138 
1139 					m_stage_mask = 0xffff0000 | a | b;
1140 				}
1141 				else
1142 				{
1143 					m_stage_state[ offset ].bit = 0;
1144 					m_stage_state[ offset ].state = DDR_STAGE_IDLE;
1145 
1146 					m_stage_mask = 0xffffffff;
1147 				}
1148 				break;
1149 			}
1150 		}
1151 	}
1152 
1153 	verboselog( 2, "stage: %dp data clk=%d state=%d d0=%d shift=%08x bit=%d stage_mask=%08x\n", offset + 1, clk,
1154 		m_stage_state[ offset ].state, m_stage_state[ offset ].DO, m_stage_state[ offset ].shift, m_stage_state[ offset ].bit, m_stage_mask );
1155 }
1156 
CUSTOM_INPUT_MEMBER(ksys573_state::gn845pwbb_read)1157 CUSTOM_INPUT_MEMBER( ksys573_state::gn845pwbb_read )
1158 {
1159 	return m_stage->read() & m_stage_mask;
1160 }
1161 
ddr_output_callback(offs_t offset,uint8_t data)1162 void ksys573_state::ddr_output_callback(offs_t offset, uint8_t data)
1163 {
1164 	switch( offset )
1165 	{
1166 	case 0:
1167 		output().set_value( "foot 1p up", !data );
1168 		break;
1169 
1170 	case 1:
1171 		output().set_value( "foot 1p left", !data );
1172 		break;
1173 
1174 	case 2:
1175 		output().set_value( "foot 1p right", !data );
1176 		break;
1177 
1178 	case 3:
1179 		output().set_value( "foot 1p down", !data );
1180 		break;
1181 
1182 	case 4:
1183 		gn845pwbb_do_w( 0, !data );
1184 		break;
1185 
1186 	case 7:
1187 		gn845pwbb_clk_w( 0, !data );
1188 		break;
1189 
1190 	case 8:
1191 		output().set_value( "foot 2p up", !data );
1192 		break;
1193 
1194 	case 9:
1195 		output().set_value( "foot 2p left", !data );
1196 		break;
1197 
1198 	case 10:
1199 		output().set_value( "foot 2p right", !data );
1200 		break;
1201 
1202 	case 11:
1203 		output().set_value( "foot 2p down", !data );
1204 		break;
1205 
1206 	case 12:
1207 		gn845pwbb_do_w( 1, !data );
1208 		break;
1209 
1210 	case 15:
1211 		gn845pwbb_clk_w( 1, !data );
1212 		break;
1213 
1214 	case 17:
1215 		m_lamps[0] = data ? 0 : 1; // start 1
1216 		break;
1217 
1218 	case 18:
1219 		m_lamps[1] = data ? 0 : 1; // start 2
1220 		break;
1221 
1222 	case 20:
1223 		output().set_value( "body right low", !data );
1224 		break;
1225 
1226 	case 21:
1227 		output().set_value( "body left low", !data );
1228 		break;
1229 
1230 	case 22:
1231 		output().set_value( "body left high", !data );
1232 		break;
1233 
1234 	case 23:
1235 		output().set_value( "body right high", !data );
1236 		break;
1237 
1238 	case 28: // digital
1239 	case 30: // analogue
1240 		output().set_value( "speaker", !data );
1241 		break;
1242 
1243 	default:
1244 //      printf( "%d=%d\n", offset, data );
1245 		break;
1246 	}
1247 }
1248 
init_ddr()1249 void ksys573_state::init_ddr()
1250 {
1251 	m_stage_mask = 0xffffffff;
1252 	gx700pwfbf_init( &ksys573_state::ddr_output_callback );
1253 
1254 	save_item( NAME( m_stage_mask ) );
1255 }
1256 
1257 /* Guitar freaks */
1258 
WRITE_LINE_MEMBER(ksys573_state::gtrfrks_lamps_b7)1259 WRITE_LINE_MEMBER( ksys573_state::gtrfrks_lamps_b7 )
1260 {
1261 	output().set_value( "spot left", state );
1262 }
1263 
WRITE_LINE_MEMBER(ksys573_state::gtrfrks_lamps_b6)1264 WRITE_LINE_MEMBER( ksys573_state::gtrfrks_lamps_b6 )
1265 {
1266 	output().set_value( "spot right", state );
1267 }
1268 
WRITE_LINE_MEMBER(ksys573_state::gtrfrks_lamps_b5)1269 WRITE_LINE_MEMBER( ksys573_state::gtrfrks_lamps_b5 )
1270 {
1271 	m_lamps[0] = state ? 1 : 0; // start left
1272 }
1273 
WRITE_LINE_MEMBER(ksys573_state::gtrfrks_lamps_b4)1274 WRITE_LINE_MEMBER( ksys573_state::gtrfrks_lamps_b4 )
1275 {
1276 	m_lamps[1] = state ? 1 : 0; // start right
1277 }
1278 
1279 /* ddr solo */
1280 
ddrsolo_output_callback(offs_t offset,uint8_t data)1281 void ksys573_state::ddrsolo_output_callback(offs_t offset, uint8_t data)
1282 {
1283 	switch( offset )
1284 	{
1285 	case 4:
1286 	case 7:
1287 	case 12:
1288 	case 15:
1289 		/* DDR stage i/o */
1290 		break;
1291 
1292 	case 8:
1293 		output().set_value( "extra 4", !data );
1294 		break;
1295 
1296 	case 9:
1297 		output().set_value( "extra 2", !data );
1298 		break;
1299 
1300 	case 10:
1301 		output().set_value( "extra 1", !data );
1302 		break;
1303 
1304 	case 11:
1305 		output().set_value( "extra 3", !data );
1306 		break;
1307 
1308 	case 16:
1309 		output().set_value( "speaker", !data );
1310 		break;
1311 
1312 	case 20:
1313 		m_lamps[0] = data ? 0 : 1; // start
1314 		break;
1315 
1316 	case 21:
1317 		output().set_value( "body center", !data );
1318 		break;
1319 
1320 	case 22:
1321 		output().set_value( "body right", !data );
1322 		break;
1323 
1324 	case 23:
1325 		output().set_value( "body left", !data );
1326 		break;
1327 
1328 	default:
1329 //      printf( "%d=%d\n", offset, data );
1330 		break;
1331 	}
1332 }
1333 
1334 /* drummania */
1335 
drmn_output_callback(offs_t offset,uint8_t data)1336 void ksys573_state::drmn_output_callback(offs_t offset, uint8_t data)
1337 {
1338 	switch( offset )
1339 	{
1340 	case 0: // drmn2+
1341 	case 16: // drmn
1342 		output().set_value( "hi-hat", !data );
1343 		break;
1344 
1345 	case 1: // drmn2+
1346 	case 17: // drmn
1347 		output().set_value( "high tom", !data );
1348 		break;
1349 
1350 	case 2: // drmn2+
1351 	case 18: // drmn
1352 		output().set_value( "low tom", !data );
1353 		break;
1354 
1355 	case 3: // drmn2+
1356 	case 19: // drmn
1357 		output().set_value( "snare", !data );
1358 		break;
1359 
1360 	case 8: // drmn2+
1361 	case 30: // drmn
1362 		output().set_value( "spot left & right", !data );
1363 		break;
1364 
1365 	case 9: // drmn2+
1366 	case 31: // drmn
1367 		output().set_value( "neon top", data );
1368 		break;
1369 
1370 	case 11: // drmn2+
1371 	case 27: // drmn
1372 		output().set_value( "neon woofer", data );
1373 		break;
1374 
1375 	case 12: // drmn2+
1376 	case 20: // drmn
1377 		output().set_value( "cymbal", !data );
1378 		break;
1379 
1380 	case 13: // drmn2+
1381 	case 21: // drmn
1382 		m_lamps[0] = data ? 1 : 0; // start
1383 		break;
1384 
1385 	case 14: // drmn2+
1386 	case 22: // drmn
1387 		output().set_value( "select button", data );
1388 		break;
1389 
1390 	case 23: // drmn
1391 	case 26: // drmn
1392 		break;
1393 
1394 	default:
1395 //      printf( "%d=%d\n", offset, data );
1396 		break;
1397 	}
1398 }
1399 
init_drmn()1400 void ksys573_state::init_drmn()
1401 {
1402 	gx700pwfbf_init( &ksys573_state::drmn_output_callback );
1403 }
1404 
1405 /* dance maniax */
1406 
dmx_output_callback(offs_t offset,uint8_t data)1407 void ksys573_state::dmx_output_callback(offs_t offset, uint8_t data)
1408 {
1409 	switch( offset )
1410 	{
1411 	case 0:
1412 		output().set_value( "blue io 8", !data );
1413 		break;
1414 
1415 	case 1:
1416 		output().set_value( "blue io 9", !data );
1417 		break;
1418 
1419 	case 2:
1420 		output().set_value( "red io 9", !data );
1421 		break;
1422 
1423 	case 3:
1424 		output().set_value( "red io 8", !data );
1425 		break;
1426 
1427 	case 4:
1428 		output().set_value( "blue io 6", !data );
1429 		break;
1430 
1431 	case 5:
1432 		output().set_value( "blue io 7", !data );
1433 		break;
1434 
1435 	case 6:
1436 		output().set_value( "red io 7", !data );
1437 		break;
1438 
1439 	case 7:
1440 		output().set_value( "red io 6", !data );
1441 		break;
1442 
1443 	case 8:
1444 		output().set_value( "blue io 4", !data );
1445 		break;
1446 
1447 	case 9:
1448 		output().set_value( "blue io 5", !data );
1449 		break;
1450 
1451 	case 10:
1452 		output().set_value( "red io 5", !data );
1453 		break;
1454 
1455 	case 11:
1456 		output().set_value( "red io 4", !data );
1457 		break;
1458 
1459 	case 12:
1460 		output().set_value( "blue io 10", !data );
1461 		break;
1462 
1463 	case 13:
1464 		output().set_value( "blue io 11", !data );
1465 		break;
1466 
1467 	case 14:
1468 		output().set_value( "red io 11", !data );
1469 		break;
1470 
1471 	case 15:
1472 		output().set_value( "red io 10", !data );
1473 		break;
1474 
1475 	case 16:
1476 		output().set_value( "blue io 0", !data );
1477 		break;
1478 
1479 	case 17:
1480 		output().set_value( "blue io 1", !data );
1481 		break;
1482 
1483 	case 18:
1484 		output().set_value( "red io 1", !data );
1485 		break;
1486 
1487 	case 19:
1488 		output().set_value( "red io 0", !data );
1489 		break;
1490 
1491 	case 20:
1492 		output().set_value( "blue io 2", !data );
1493 		break;
1494 
1495 	case 21:
1496 		output().set_value( "blue io 3", !data );
1497 		break;
1498 
1499 	case 22:
1500 		output().set_value( "red io 3", !data );
1501 		break;
1502 
1503 	case 23:
1504 		output().set_value( "red io 2", !data );
1505 		break;
1506 
1507 	case 28:
1508 		output().set_value( "yellow spot light", !data );
1509 		break;
1510 
1511 	case 29:
1512 		output().set_value( "blue spot light", !data );
1513 		break;
1514 
1515 	case 31:
1516 		output().set_value( "pink spot light", !data );
1517 		break;
1518 
1519 	default:
1520 //      printf( "%d=%d\n", offset, data );
1521 		break;
1522 	}
1523 }
1524 
WRITE_LINE_MEMBER(ksys573_state::dmx_lamps_b0)1525 WRITE_LINE_MEMBER( ksys573_state::dmx_lamps_b0 )
1526 {
1527 	output().set_value( "left 2p", state );
1528 }
1529 
WRITE_LINE_MEMBER(ksys573_state::dmx_lamps_b1)1530 WRITE_LINE_MEMBER( ksys573_state::dmx_lamps_b1 )
1531 {
1532 	m_lamps[1] = state ? 1 : 0; // start 1p
1533 }
1534 
WRITE_LINE_MEMBER(ksys573_state::dmx_lamps_b2)1535 WRITE_LINE_MEMBER( ksys573_state::dmx_lamps_b2 )
1536 {
1537 	output().set_value( "right 2p", state );
1538 }
1539 
WRITE_LINE_MEMBER(ksys573_state::dmx_lamps_b3)1540 WRITE_LINE_MEMBER( ksys573_state::dmx_lamps_b3 )
1541 {
1542 	output().set_value( "left 1p", state );
1543 }
1544 
WRITE_LINE_MEMBER(ksys573_state::dmx_lamps_b4)1545 WRITE_LINE_MEMBER( ksys573_state::dmx_lamps_b4 )
1546 {
1547 	m_lamps[0] = state ? 1 : 0; // start 2p
1548 }
1549 
WRITE_LINE_MEMBER(ksys573_state::dmx_lamps_b5)1550 WRITE_LINE_MEMBER( ksys573_state::dmx_lamps_b5 )
1551 {
1552 	output().set_value( "right 1p", state );
1553 }
1554 
1555 /* step champ */
WRITE_LINE_MEMBER(ksys573_state::stepchmp_lamp_clock)1556 WRITE_LINE_MEMBER( ksys573_state::stepchmp_lamp_clock )
1557 {
1558 	if( state && !m_serial_lamp_clock )
1559 	{
1560 		m_serial_lamp_bits++;
1561 
1562 		m_serial_lamp_shift <<= 1;
1563 		m_serial_lamp_shift |= m_serial_lamp_data;
1564 
1565 		if( m_serial_lamp_bits == 8 )
1566 		{
1567 			output().set_value( "halogen 1", ( m_serial_lamp_shift >> 3 ) & 1 );
1568 			output().set_value( "halogen 2", ( m_serial_lamp_shift >> 2 ) & 1 );
1569 			output().set_value( "halogen 3", ( m_serial_lamp_shift >> 1 ) & 1 );
1570 
1571 			output().set_value( "player 1 start", ( m_serial_lamp_shift >> 7 ) & 1 );
1572 			output().set_value( "player 2 start", ( m_serial_lamp_shift >> 6 ) & 1 );
1573 			output().set_value( "player 3 start", ( m_serial_lamp_shift >> 5 ) & 1 );
1574 
1575 			m_serial_lamp_bits = 0;
1576 			m_serial_lamp_shift = 0;
1577 		}
1578 	}
1579 
1580 	m_serial_lamp_clock = state;
1581 }
1582 
stepchmp_cassette_install(device_t * device)1583 void ksys573_state::stepchmp_cassette_install(device_t* device)
1584 {
1585 	konami573_cassette_y_device &cassette = downcast<konami573_cassette_y_device&>(*device);
1586 
1587 	cassette.d5_handler().set(*this, FUNC(ksys573_state::stepchmp_lamp_clock));
1588 	cassette.d6_handler().set(*this, FUNC(ksys573_state::serial_lamp_reset));
1589 	cassette.d7_handler().set(*this, FUNC(ksys573_state::serial_lamp_data));
1590 }
1591 
1592 /* anime champ */
WRITE_LINE_MEMBER(ksys573_state::animechmp_lamp_clock)1593 WRITE_LINE_MEMBER( ksys573_state::animechmp_lamp_clock )
1594 {
1595 	if( state && !m_serial_lamp_clock )
1596 	{
1597 		m_serial_lamp_bits++;
1598 
1599 		m_serial_lamp_shift <<= 1;
1600 		m_serial_lamp_shift |= m_serial_lamp_data;
1601 
1602 		if( m_serial_lamp_bits == 16 )
1603 		{
1604 			if( ( m_serial_lamp_shift & ~0xfff ) != 0 )
1605 			{
1606 				verboselog( 0, "unknown bits in serial_lamp_shift %08x\n", m_serial_lamp_shift & ~0xfff );
1607 			}
1608 
1609 			output().set_value( "player 1 red", ( m_serial_lamp_shift >> 11 ) & 1 );
1610 			output().set_value( "player 1 green", ( m_serial_lamp_shift >> 10 ) & 1 );
1611 			output().set_value( "player 1 blue", ( m_serial_lamp_shift >> 9 ) & 1 );
1612 
1613 			output().set_value( "player 2 red", ( m_serial_lamp_shift >> 8 ) & 1 );
1614 			output().set_value( "player 2 green", ( m_serial_lamp_shift >> 7 ) & 1 );
1615 			output().set_value( "player 2 blue", ( m_serial_lamp_shift >> 6 ) & 1 );
1616 
1617 			output().set_value( "player 3 red", ( m_serial_lamp_shift >> 5 ) & 1 );
1618 			output().set_value( "player 3 green", ( m_serial_lamp_shift >> 4 ) & 1 );
1619 			output().set_value( "player 3 blue", ( m_serial_lamp_shift >> 3 ) & 1 );
1620 
1621 			output().set_value( "player 1 start", ( m_serial_lamp_shift >> 2 ) & 1 );
1622 			output().set_value( "player 2 start", ( m_serial_lamp_shift >> 1 ) & 1 );
1623 			output().set_value( "player 3 start", ( m_serial_lamp_shift >> 0 ) & 1 );
1624 
1625 			m_serial_lamp_bits = 0;
1626 			m_serial_lamp_shift = 0;
1627 		}
1628 	}
1629 
1630 	m_serial_lamp_clock = state;
1631 }
1632 
animechmp_cassette_install(device_t * device)1633 void ksys573_state::animechmp_cassette_install(device_t *device)
1634 {
1635 	konami573_cassette_y_device &cassette = downcast<konami573_cassette_y_device &>(*device);
1636 
1637 	cassette.d5_handler().set(*this, FUNC(ksys573_state::animechmp_lamp_clock));
1638 	cassette.d6_handler().set(*this, FUNC(ksys573_state::serial_lamp_reset));
1639 	cassette.d7_handler().set(*this, FUNC(ksys573_state::serial_lamp_data));
1640 }
1641 
1642 /* salary man champ */
WRITE_LINE_MEMBER(ksys573_state::serial_lamp_reset)1643 WRITE_LINE_MEMBER( ksys573_state::serial_lamp_reset )
1644 {
1645 	if( state )
1646 	{
1647 		m_serial_lamp_bits = 0;
1648 		m_serial_lamp_shift = 0;
1649 	}
1650 }
1651 
WRITE_LINE_MEMBER(ksys573_state::serial_lamp_data)1652 WRITE_LINE_MEMBER( ksys573_state::serial_lamp_data )
1653 {
1654 	m_serial_lamp_data = state;
1655 }
1656 
WRITE_LINE_MEMBER(ksys573_state::salarymc_lamp_clock)1657 WRITE_LINE_MEMBER( ksys573_state::salarymc_lamp_clock )
1658 {
1659 	if( state && !m_serial_lamp_clock )
1660 	{
1661 		m_serial_lamp_bits++;
1662 
1663 		m_serial_lamp_shift <<= 1;
1664 		m_serial_lamp_shift |= m_serial_lamp_data;
1665 
1666 		if( m_serial_lamp_bits == 16 )
1667 		{
1668 			if( ( m_serial_lamp_shift & ~0xe38 ) != 0 )
1669 			{
1670 				verboselog( 0, "unknown bits in serial_lamp_shift %08x\n", m_serial_lamp_shift & ~0xe38 );
1671 			}
1672 
1673 			output().set_value( "player 1 red", ( m_serial_lamp_shift >> 11 ) & 1 );
1674 			output().set_value( "player 1 green", ( m_serial_lamp_shift >> 10 ) & 1 );
1675 			output().set_value( "player 1 blue", ( m_serial_lamp_shift >> 9 ) & 1 );
1676 
1677 			output().set_value( "player 2 red", ( m_serial_lamp_shift >> 5 ) & 1 );
1678 			output().set_value( "player 2 green", ( m_serial_lamp_shift >> 4 ) & 1 );
1679 			output().set_value( "player 2 blue", ( m_serial_lamp_shift >> 3 ) & 1 );
1680 
1681 			m_serial_lamp_bits = 0;
1682 			m_serial_lamp_shift = 0;
1683 		}
1684 	}
1685 
1686 	m_serial_lamp_clock = state;
1687 }
1688 
salarymc_cassette_install(device_t * device)1689 void ksys573_state::salarymc_cassette_install(device_t *device)
1690 {
1691 	konami573_cassette_y_device &cassette = downcast<konami573_cassette_y_device &>(*device);
1692 
1693 	cassette.d5_handler().set(*this, FUNC(ksys573_state::salarymc_lamp_clock));
1694 	cassette.d6_handler().set(*this, FUNC(ksys573_state::serial_lamp_reset));
1695 	cassette.d7_handler().set(*this, FUNC(ksys573_state::serial_lamp_data));
1696 }
1697 
init_serlamp()1698 void ksys573_state::init_serlamp()
1699 {
1700 	m_serial_lamp_bits = 0;
1701 	m_serial_lamp_shift = 0;
1702 	m_serial_lamp_data = 0;
1703 	m_serial_lamp_clock = 0;
1704 
1705 	save_item( NAME( m_serial_lamp_bits ) );
1706 	save_item( NAME( m_serial_lamp_shift ) );
1707 	save_item( NAME( m_serial_lamp_data ) );
1708 	save_item( NAME( m_serial_lamp_clock ) );
1709 }
1710 
1711 /* Hyper Bishi Bashi Champ */
1712 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_red)1713 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_red )
1714 {
1715 	m_hyperbbc_lamp_red = state;
1716 }
1717 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_green)1718 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_green )
1719 {
1720 	m_hyperbbc_lamp_green = state;
1721 }
1722 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_blue)1723 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_blue )
1724 {
1725 	m_hyperbbc_lamp_blue = state;
1726 }
1727 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_start)1728 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_start )
1729 {
1730 	m_hyperbbc_lamp_start = state;
1731 }
1732 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_strobe1)1733 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_strobe1 )
1734 {
1735 	if( state && !m_hyperbbc_lamp_strobe1 )
1736 	{
1737 		output().set_value( "player 1 red", m_hyperbbc_lamp_red );
1738 		output().set_value( "player 1 green", m_hyperbbc_lamp_green );
1739 		output().set_value( "player 1 blue", m_hyperbbc_lamp_blue );
1740 		output().set_value( "player 1 start", m_hyperbbc_lamp_start );
1741 	}
1742 
1743 	m_hyperbbc_lamp_strobe1 = state;
1744 }
1745 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_strobe2)1746 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_strobe2 )
1747 {
1748 	if( state && !m_hyperbbc_lamp_strobe2 )
1749 	{
1750 		output().set_value( "player 2 red", m_hyperbbc_lamp_red );
1751 		output().set_value( "player 2 green", m_hyperbbc_lamp_green );
1752 		output().set_value( "player 2 blue", m_hyperbbc_lamp_blue );
1753 		output().set_value( "player 2 start", m_hyperbbc_lamp_start );
1754 	}
1755 
1756 	m_hyperbbc_lamp_strobe2 = state;
1757 }
1758 
WRITE_LINE_MEMBER(ksys573_state::hyperbbc_lamp_strobe3)1759 WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_strobe3 )
1760 {
1761 	if( state && !m_hyperbbc_lamp_strobe3 )
1762 	{
1763 		output().set_value( "player 3 red", m_hyperbbc_lamp_red );
1764 		output().set_value( "player 3 green", m_hyperbbc_lamp_green );
1765 		output().set_value( "player 3 blue", m_hyperbbc_lamp_blue );
1766 		output().set_value( "player 3 start", m_hyperbbc_lamp_start );
1767 	}
1768 
1769 	m_hyperbbc_lamp_strobe3 = state;
1770 }
1771 
hyperbbc_cassette_install(device_t * device)1772 void ksys573_state::hyperbbc_cassette_install(device_t *device)
1773 {
1774 	konami573_cassette_y_device &cassette = downcast<konami573_cassette_y_device &>(*device);
1775 
1776 	cassette.d0_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe3)); // line shared with x76f100 sda
1777 	cassette.d1_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe2)); // line shared with x76f100 scl
1778 	cassette.d3_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe1)); // line shared with x76f100 rst
1779 	cassette.d4_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_green));
1780 	cassette.d5_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_blue));
1781 	cassette.d6_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_red));
1782 	cassette.d7_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_start));
1783 }
1784 
hypbbc2p_cassette_install(device_t * device)1785 void ksys573_state::hypbbc2p_cassette_install(device_t *device)
1786 {
1787 	konami573_cassette_y_device &cassette = downcast<konami573_cassette_y_device &>(*device);
1788 
1789 	cassette.d0_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe2)); // line shared with x76f100 sda
1790 	cassette.d3_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe1)); // line shared with x76f100 rst
1791 	cassette.d4_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_green));
1792 	cassette.d5_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_blue));
1793 	cassette.d6_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_red));
1794 }
1795 
init_hyperbbc()1796 void ksys573_state::init_hyperbbc()
1797 {
1798 	m_hyperbbc_lamp_red = 0;
1799 	m_hyperbbc_lamp_green = 0;
1800 	m_hyperbbc_lamp_blue = 0;
1801 	m_hyperbbc_lamp_start = 0;
1802 	m_hyperbbc_lamp_strobe1 = 0;
1803 	m_hyperbbc_lamp_strobe2 = 0;
1804 	m_hyperbbc_lamp_strobe3 = 0;
1805 
1806 	save_item( NAME( m_hyperbbc_lamp_red ) );
1807 	save_item( NAME( m_hyperbbc_lamp_green ) );
1808 	save_item( NAME( m_hyperbbc_lamp_blue ) );
1809 	save_item( NAME( m_hyperbbc_lamp_start ) );
1810 	save_item( NAME( m_hyperbbc_lamp_strobe1 ) );
1811 	save_item( NAME( m_hyperbbc_lamp_strobe2 ) );
1812 	save_item( NAME( m_hyperbbc_lamp_strobe3 ) );
1813 }
1814 
1815 /* Mambo A Go Go */
1816 
mamboagg_output_callback(offs_t offset,uint8_t data)1817 void ksys573_state::mamboagg_output_callback(offs_t offset, uint8_t data)
1818 {
1819 	switch( offset )
1820 	{
1821 	case 4:
1822 		output().set_value( "fire lamp left", !data );
1823 		break;
1824 	case 5:
1825 		output().set_value( "fire fan left", !data );
1826 		break;
1827 	case 6:
1828 		output().set_value( "fire fan right", !data );
1829 		break;
1830 	case 7:
1831 		output().set_value( "fire lamp right", !data );
1832 		break;
1833 	case 28:
1834 		output().set_value( "conga left", !data );
1835 		break;
1836 	case 29:
1837 		output().set_value( "conga right", !data );
1838 		break;
1839 	case 31:
1840 		output().set_value( "conga centre", !data );
1841 		break;
1842 	}
1843 }
1844 
WRITE_LINE_MEMBER(ksys573_state::mamboagg_lamps_b3)1845 WRITE_LINE_MEMBER( ksys573_state::mamboagg_lamps_b3 )
1846 {
1847 	m_lamps[0] = state ? 1 : 0; // start 1p
1848 }
1849 
WRITE_LINE_MEMBER(ksys573_state::mamboagg_lamps_b4)1850 WRITE_LINE_MEMBER( ksys573_state::mamboagg_lamps_b4 )
1851 {
1852 	output().set_value( "select right", state );
1853 }
1854 
WRITE_LINE_MEMBER(ksys573_state::mamboagg_lamps_b5)1855 WRITE_LINE_MEMBER( ksys573_state::mamboagg_lamps_b5 )
1856 {
1857 	output().set_value( "select left", state );
1858 }
1859 
1860 
1861 /* punch mania */
1862 
1863 
punchmania_inputs_callback(uint8_t input)1864 double konami573_cassette_xi_device::punchmania_inputs_callback(uint8_t input)
1865 {
1866 	ksys573_state *state = machine().driver_data<ksys573_state>();
1867 	double *pad_position = state->m_pad_position;
1868 	int pads = state->m_pads->read();
1869 	for( int i = 0; i < 6; i++ )
1870 	{
1871 		if( ( pads & ( 1 << i ) ) != 0 )
1872 		{
1873 			pad_position[ i ] = 5;
1874 		}
1875 	}
1876 
1877 	switch( input )
1878 	{
1879 	case ADC083X_CH0:
1880 		return pad_position[ 0 ]; /* Left Top */
1881 	case ADC083X_CH1:
1882 		return pad_position[ 1 ]; /* Left Middle */
1883 	case ADC083X_CH2:
1884 		return pad_position[ 2 ]; /* Left Bottom */
1885 	case ADC083X_CH3:
1886 		return pad_position[ 3 ]; /* Right Top */
1887 	case ADC083X_CH4:
1888 		return pad_position[ 4 ]; /* Right Middle */
1889 	case ADC083X_CH5:
1890 		return pad_position[ 5 ]; /* Right Bottom */
1891 	case ADC083X_COM:
1892 		return 0;
1893 	case ADC083X_VREF:
1894 		return 5;
1895 	}
1896 	return 5;
1897 }
1898 
1899 
punchmania_cassette_install(device_t * device)1900 void ksys573_state::punchmania_cassette_install(device_t *device)
1901 {
1902 	auto game = downcast<konami573_cassette_xi_device *>(device);
1903 	auto adc0838 = device->subdevice<adc083x_device>("adc0838");
1904 	adc0838->set_input_callback(*game, FUNC(konami573_cassette_xi_device::punchmania_inputs_callback));
1905 }
1906 
1907 int pad_light[ 6 ];
1908 
punchmania_output_callback(offs_t offset,uint8_t data)1909 void ksys573_state::punchmania_output_callback(offs_t offset, uint8_t data)
1910 {
1911 	double *pad_position = m_pad_position;
1912 	char pad[ 7 ];
1913 
1914 	switch( offset )
1915 	{
1916 	case 8:
1917 		output().set_value( "select left right", !data );
1918 		break;
1919 	case 9:
1920 		pad_light[ 2 ] = !data;
1921 		output().set_value( "left bottom lamp", !data );
1922 		break;
1923 	case 10:
1924 		pad_light[ 1 ] = !data;
1925 		output().set_value( "left middle lamp", !data );
1926 		break;
1927 	case 11:
1928 		output().set_value( "start lamp", !data );
1929 		break;
1930 	case 12:
1931 		pad_light[ 0 ] = !data;
1932 		output().set_value( "left top lamp", !data );
1933 		break;
1934 	case 13:
1935 		pad_light[ 4 ] = !data;
1936 		output().set_value( "right middle lamp", !data );
1937 		break;
1938 	case 14:
1939 		pad_light[ 3 ] = !data;
1940 		output().set_value( "right top lamp", !data );
1941 		break;
1942 	case 15:
1943 		pad_light[ 5 ] = !data;
1944 		output().set_value( "right bottom lamp", !data );
1945 		break;
1946 	case 16:
1947 		if( data )
1948 		{
1949 			pad_position[ 0 ] = 0; // left top motor +
1950 		}
1951 		break;
1952 	case 17:
1953 		if( data )
1954 		{
1955 			pad_position[ 1 ] = 0; // left middle motor +
1956 		}
1957 		break;
1958 	case 18:
1959 		if( data )
1960 		{
1961 			pad_position[ 1 ] = 5; // left middle motor -
1962 		}
1963 		break;
1964 	case 19:
1965 		if( data )
1966 		{
1967 			pad_position[ 0 ] = 5; // left top motor -
1968 		}
1969 		break;
1970 	case 20:
1971 		if( data )
1972 		{
1973 			pad_position[ 2 ] = 0; // left bottom motor +
1974 		}
1975 		break;
1976 	case 21:
1977 		if( data )
1978 		{
1979 			pad_position[ 3 ] = 5; // right top motor -
1980 		}
1981 		break;
1982 	case 22:
1983 		if( data )
1984 		{
1985 			pad_position[ 3 ] = 0; // right top motor +
1986 		}
1987 		break;
1988 	case 23:
1989 		if( data )
1990 		{
1991 			pad_position[ 2 ] = 5; // left bottom motor -
1992 		}
1993 		break;
1994 	case 26:
1995 		if( data )
1996 		{
1997 			pad_position[ 5 ] = 0; // right bottom motor +
1998 		}
1999 		break;
2000 	case 27:
2001 		if( data )
2002 		{
2003 			pad_position[ 4 ] = 0; // right middle motor +
2004 		}
2005 		break;
2006 	case 30:
2007 		if( data )
2008 		{
2009 			pad_position[ 4 ] = 5; // right middle motor -
2010 		}
2011 		break;
2012 	case 31:
2013 		if( data )
2014 		{
2015 			pad_position[ 5 ] = 5; // right bottom motor -
2016 		}
2017 		break;
2018 	}
2019 	sprintf( pad, "%d%d%d%d%d%d",
2020 		( int )pad_position[ 0 ], ( int )pad_position[ 1 ], ( int )pad_position[ 2 ],
2021 		( int )pad_position[ 3 ], ( int )pad_position[ 4 ], ( int )pad_position[ 5 ] );
2022 
2023 	if( pad_light[ 0 ] ) pad[ 0 ] = '*';
2024 	if( pad_light[ 1 ] ) pad[ 1 ] = '*';
2025 	if( pad_light[ 2 ] ) pad[ 2 ] = '*';
2026 	if( pad_light[ 3 ] ) pad[ 3 ] = '*';
2027 	if( pad_light[ 4 ] ) pad[ 4 ] = '*';
2028 	if( pad_light[ 5 ] ) pad[ 5 ] = '*';
2029 
2030 	popmessage( "%s", pad );
2031 }
2032 
init_pnchmn()2033 void ksys573_state::init_pnchmn()
2034 {
2035 	gx700pwfbf_init( &ksys573_state::punchmania_output_callback );
2036 }
2037 
2038 /* GunMania */
2039 
gunmania_w(offs_t offset,uint16_t data,uint16_t mem_mask)2040 void ksys573_state::gunmania_w(offs_t offset, uint16_t data, uint16_t mem_mask)
2041 {
2042 	char s[ 1024 ] = "";
2043 
2044 	switch( offset )
2045 	{
2046 	case 0x4c:
2047 		m_gunmania_id->write( ( data >> 5 ) & 1 );
2048 		break;
2049 
2050 	case 0x54:
2051 		switch( data & 0xa0 )
2052 		{
2053 		case 0x20:
2054 			strcat( s, "cable holder motor release " );
2055 
2056 			m_cable_holder_release = 1;
2057 			break;
2058 
2059 		case 0x80:
2060 			strcat( s, "cable holder motor catch " );
2061 
2062 			m_cable_holder_release = 0;
2063 			break;
2064 
2065 		case 0xa0:
2066 			strcat( s, "cable holder motor stop " );
2067 			break;
2068 		}
2069 
2070 		switch( data & 0x50 )
2071 		{
2072 		case 0x10:
2073 			strcat( s, "bullet supply motor rotate " );
2074 			break;
2075 
2076 		case 0x40:
2077 			strcat( s, "bullet supply motor reverse " );
2078 			break;
2079 
2080 		case 0x50:
2081 			strcat( s, "bullet shutter motor unknown " );
2082 			break;
2083 		}
2084 
2085 		switch( data & 0x0a )
2086 		{
2087 		case 0x02:
2088 			strcat( s, "tank shutter motor close " );
2089 
2090 			if( m_tank_shutter_position > 0 )
2091 			{
2092 				m_tank_shutter_position--;
2093 			}
2094 
2095 			break;
2096 
2097 		case 0x08:
2098 			strcat( s, "tank shutter motor open " );
2099 
2100 			if( m_tank_shutter_position < 100 )
2101 			{
2102 				m_tank_shutter_position++;
2103 			}
2104 
2105 			break;
2106 
2107 		case 0x0a:
2108 			strcat( s, "tank shutter motor unknown " );
2109 			break;
2110 		}
2111 
2112 		if( ( data & ~0xfa ) != 0 )
2113 		{
2114 			char unknown[ 128 ];
2115 			sprintf( unknown, "unknown bits %08x", data & ~0xfa );
2116 			strcat( s, unknown );
2117 		}
2118 
2119 		if( s[ 0 ] != 0 )
2120 		{
2121 //          popmessage( "%s", s );
2122 		}
2123 
2124 		break;
2125 	}
2126 
2127 	verboselog( 2, "gunmania_w %08x %08x %08x\n", offset, mem_mask, data );
2128 }
2129 
READ_LINE_MEMBER(ksys573_state::gunmania_tank_shutter_sensor)2130 READ_LINE_MEMBER( ksys573_state::gunmania_tank_shutter_sensor )
2131 {
2132 	if( m_tank_shutter_position == 0 )
2133 	{
2134 		return 1;
2135 	}
2136 
2137 	return 0;
2138 }
2139 
READ_LINE_MEMBER(ksys573_state::gunmania_cable_holder_sensor)2140 READ_LINE_MEMBER( ksys573_state::gunmania_cable_holder_sensor )
2141 {
2142 	return m_cable_holder_release;
2143 }
2144 
gunmania_r(offs_t offset,uint16_t mem_mask)2145 uint16_t ksys573_state::gunmania_r(offs_t offset, uint16_t mem_mask)
2146 {
2147 	uint32_t data = 0;
2148 
2149 	switch( offset )
2150 	{
2151 	case 0x40:
2152 		data = m_gunx->read();
2153 		break;
2154 
2155 	case 0x44:
2156 		data = m_sensor->read();
2157 		break;
2158 
2159 	case 0x68:
2160 		data = m_encoder->read();
2161 		popmessage( "encoder %04x", data );
2162 		break;
2163 	}
2164 
2165 	verboselog( 2, "gunmania_r %08x %08x %08x\n", offset, mem_mask, data );
2166 	return data;
2167 }
2168 
2169 /* ADC0834 Interface */
2170 
analogue_inputs_callback(uint8_t input)2171 double ksys573_state::analogue_inputs_callback(uint8_t input)
2172 {
2173 	switch( input )
2174 	{
2175 	case ADC083X_CH0:
2176 		return (double)( 5 * m_analog0->read() ) / 255.0;
2177 	case ADC083X_CH1:
2178 		return (double)( 5 * m_analog1->read() ) / 255.0;
2179 	case ADC083X_CH2:
2180 		return (double)( 5 * m_analog2->read() ) / 255.0;
2181 	case ADC083X_CH3:
2182 		return (double)( 5 * m_analog3->read() ) / 255.0;
2183 	case ADC083X_AGND:
2184 		return 0;
2185 	case ADC083X_VREF:
2186 		return 5;
2187 	}
2188 
2189 	return 0;
2190 }
2191 
cr589_config(device_t * device)2192 void ksys573_state::cr589_config(device_t *device)
2193 {
2194 	device->subdevice<cdda_device>("cdda")->add_route(0, "^^lspeaker", 1.0);
2195 	device->subdevice<cdda_device>("cdda")->add_route(1, "^^rspeaker", 1.0);
2196 	device = device->subdevice("cdda");
2197 }
2198 
konami573(machine_config & config)2199 void ksys573_state::konami573(machine_config &config)
2200 {
2201 	/* basic machine hardware */
2202 	CXD8530CQ(config, m_maincpu, XTAL(67'737'600));
2203 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573_map);
2204 	m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&ksys573_state::cdrom_dma_read, this));
2205 	m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&ksys573_state::cdrom_dma_write, this));
2206 
2207 	subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
2208 
2209 	MCFG_MACHINE_RESET_OVERRIDE(ksys573_state, konami573)
2210 
2211 	ATA_INTERFACE(config, m_ata, 0);
2212 	m_ata->irq_handler().set(FUNC(ksys573_state::ata_interrupt));
2213 	m_ata->slot(0).option_add("cr589", CR589);
2214 	m_ata->slot(0).set_option_machine_config("cr589", cr589_config);
2215 	m_ata->slot(0).set_default_option("cr589");
2216 
2217 	konami573_cassette_slot_device &cassette(KONAMI573_CASSETTE_SLOT(config, "cassette", 0));
2218 	cassette.dsr_handler().set("maincpu:sio1", FUNC(psxsio1_device::write_dsr));
2219 
2220 	// onboard flash
2221 	FUJITSU_29F016A(config, "29f016a.31m");
2222 	FUJITSU_29F016A(config, "29f016a.27m");
2223 	FUJITSU_29F016A(config, "29f016a.31l");
2224 	FUJITSU_29F016A(config, "29f016a.27l");
2225 	FUJITSU_29F016A(config, "29f016a.31j");
2226 	FUJITSU_29F016A(config, "29f016a.27j");
2227 	FUJITSU_29F016A(config, "29f016a.31h");
2228 	FUJITSU_29F016A(config, "29f016a.27h");
2229 
2230 	PCCARD_SLOT(config, m_pccard1, 0);
2231 	PCCARD_SLOT(config, m_pccard2, 0);
2232 
2233 	ADDRESS_MAP_BANK(config, m_flashbank ).set_map( &ksys573_state::flashbank_map ).set_options( ENDIANNESS_LITTLE, 16, 32, 0x400000);
2234 
2235 	/* video hardware */
2236 	CXD8561Q(config, "gpu", XTAL(53'693'175), 0x200000, m_maincpu.target()).set_screen("screen");
2237 
2238 	SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(ksys573_state::sys573_vblank));
2239 
2240 	/* sound hardware */
2241 	SPEAKER(config, "lspeaker").front_left();
2242 	SPEAKER(config, "rspeaker").front_right();
2243 
2244 	spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, m_maincpu.target()));
2245 	spu.add_route(0, "lspeaker", 1.0);
2246 	spu.add_route(1, "rspeaker", 1.0);
2247 
2248 	M48T58(config, "m48t58", 0);
2249 
2250 	adc0834_device &adc(ADC0834(config, "adc0834"));
2251 	adc.set_input_callback(FUNC(ksys573_state::analogue_inputs_callback));
2252 }
2253 
2254 // Variants with additional digital sound board
k573d(machine_config & config)2255 void ksys573_state::k573d(machine_config &config)
2256 {
2257 	konami573(config);
2258 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573d_map);
2259 	KONAMI_573_DIGITAL_IO_BOARD(config, "k573dio", XTAL(19'660'800));
2260 }
2261 
2262 // Variants with additional analogue i/o board
k573a(machine_config & config)2263 void ksys573_state::k573a(machine_config &config)
2264 {
2265 	konami573(config);
2266 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573a_map);
2267 }
2268 
pccard1_16mb(machine_config & config)2269 void ksys573_state::pccard1_16mb(machine_config &config)
2270 {
2271 	m_pccard1->option_add("16mb", LINEAR_FLASH_PCCARD_16MB);
2272 	m_pccard1->set_default_option("16mb");
2273 }
2274 
pccard1_32mb(machine_config & config)2275 void ksys573_state::pccard1_32mb(machine_config &config)
2276 {
2277 	m_pccard1->option_add("32mb", LINEAR_FLASH_PCCARD_32MB);
2278 	m_pccard1->set_default_option("32mb");
2279 }
2280 
pccard2_32mb(machine_config & config)2281 void ksys573_state::pccard2_32mb(machine_config &config)
2282 {
2283 	m_pccard2->option_add("32mb", LINEAR_FLASH_PCCARD_32MB);
2284 	m_pccard2->set_default_option("32mb");
2285 }
2286 
pccard2_64mb(machine_config & config)2287 void ksys573_state::pccard2_64mb(machine_config &config)
2288 {
2289 	m_pccard2->option_add("64mb", LINEAR_FLASH_PCCARD_64MB);
2290 	m_pccard2->set_default_option("64mb");
2291 }
2292 
2293 // Security eeprom variants
2294 //
2295 // Suffixes are used to select them
2296 //  x = x76f041
2297 //  y = x76f100
2298 //  z = zs01
2299 //
2300 //  i = also use one or two ds2401
2301 //
2302 // Up to two carts can be used
2303 
cassx(machine_config & config)2304 void ksys573_state::cassx(machine_config &config)
2305 {
2306 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_X );
2307 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2308 }
2309 
cassxi(machine_config & config)2310 void ksys573_state::cassxi(machine_config &config)
2311 {
2312 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_XI );
2313 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2314 }
2315 
cassy(machine_config & config)2316 void ksys573_state::cassy(machine_config &config)
2317 {
2318 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_Y );
2319 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2320 }
2321 
cassyi(machine_config & config)2322 void ksys573_state::cassyi(machine_config &config)
2323 {
2324 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_YI );
2325 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2326 }
2327 
cassyyi(machine_config & config)2328 void ksys573_state::cassyyi(machine_config &config)
2329 {
2330 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_YI );
2331 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "install", KONAMI573_CASSETTE_YI );
2332 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2333 }
2334 
casszi(machine_config & config)2335 void ksys573_state::casszi(machine_config &config)
2336 {
2337 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_ZI );
2338 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2339 }
2340 
cassxzi(machine_config & config)2341 void ksys573_state::cassxzi(machine_config &config)
2342 {
2343 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_ZI );
2344 	subdevice<konami573_cassette_slot_device>("cassette")->option_add( "install", KONAMI573_CASSETTE_XI );
2345 	subdevice<konami573_cassette_slot_device>("cassette")->set_default_option( "game" );
2346 }
2347 
2348 // Dance Dance Revolution
2349 
ddr(machine_config & config)2350 void ksys573_state::ddr(machine_config &config)
2351 {
2352 	k573a(config);
2353 	cassx(config);
2354 }
2355 
ddr2ml(machine_config & config)2356 void ksys573_state::ddr2ml(machine_config &config)
2357 {
2358 	k573a(config);
2359 	KONAMI_573_MEMORY_CARD_READER(config, "k573mcr", 0);
2360 
2361 	pccard1_16mb(config);
2362 	cassx(config);
2363 }
2364 
ddr3m(machine_config & config)2365 void ksys573_state::ddr3m(machine_config &config)
2366 {
2367 	k573d(config);
2368 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddr_output_callback));
2369 
2370 	pccard2_32mb(config);
2371 	cassyyi(config);
2372 }
2373 
ddr3mp(machine_config & config)2374 void ksys573_state::ddr3mp(machine_config &config)
2375 {
2376 	k573d(config);
2377 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddr_output_callback));
2378 
2379 	pccard2_32mb(config);
2380 	cassxzi(config);
2381 }
2382 
ddrusa(machine_config & config)2383 void ksys573_state::ddrusa(machine_config &config)
2384 {
2385 	k573d(config);
2386 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddr_output_callback));
2387 
2388 	casszi(config);
2389 }
2390 
ddr5m(machine_config & config)2391 void ksys573_state::ddr5m(machine_config &config)
2392 {
2393 	k573d(config);
2394 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddr_output_callback));
2395 
2396 	pccard2_32mb(config);
2397 	casszi(config);
2398 }
2399 
2400 // Dancing Stage
2401 
dsfdcta(machine_config & config)2402 void ksys573_state::dsfdcta(machine_config &config)
2403 {
2404 	k573a(config);
2405 	pccard2_32mb(config);
2406 	cassyyi(config);
2407 }
2408 
dsftkd(machine_config & config)2409 void ksys573_state::dsftkd(machine_config &config)
2410 {
2411 	k573a(config);
2412 	cassyi(config);
2413 }
2414 
dsfdr(machine_config & config)2415 void ksys573_state::dsfdr(machine_config &config)
2416 {
2417 	k573d(config);
2418 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddr_output_callback));
2419 
2420 	cassxzi(config);
2421 }
2422 
dsem(machine_config & config)2423 void ksys573_state::dsem(machine_config &config)
2424 {
2425 	k573d(config);
2426 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddr_output_callback));
2427 
2428 	cassxi(config);
2429 }
2430 
2431 // Dance Dance Revolution Solo
2432 
ddrsolo(machine_config & config)2433 void ksys573_state::ddrsolo(machine_config &config)
2434 {
2435 	k573d(config);
2436 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddrsolo_output_callback));
2437 
2438 	cassyi(config);
2439 }
2440 
ddrsbm(machine_config & config)2441 void ksys573_state::ddrsbm(machine_config &config)
2442 {
2443 	k573d(config);
2444 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddrsolo_output_callback));
2445 	subdevice<k573dio_device>("k573dio")->set_ddrsbm_fpga(true);
2446 
2447 	cassyi(config);
2448 }
2449 
ddrs2k(machine_config & config)2450 void ksys573_state::ddrs2k(machine_config &config)
2451 {
2452 	k573d(config);
2453 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddrsolo_output_callback));
2454 
2455 	cassyyi(config);
2456 }
2457 
ddr4ms(machine_config & config)2458 void ksys573_state::ddr4ms(machine_config &config)
2459 {
2460 	k573d(config);
2461 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::ddrsolo_output_callback));
2462 
2463 	pccard2_32mb(config);
2464 	cassxzi(config);
2465 }
2466 
2467 // DrumMania
2468 
drmn(machine_config & config)2469 void ksys573_state::drmn(machine_config &config)
2470 {
2471 	k573a(config);
2472 	cassx(config);
2473 }
2474 
drmn2m(machine_config & config)2475 void ksys573_state::drmn2m(machine_config &config)
2476 {
2477 	k573d(config);
2478 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::drmn_output_callback));
2479 
2480 	cassxzi(config);
2481 }
2482 
drmn4m(machine_config & config)2483 void ksys573_state::drmn4m(machine_config &config)
2484 {
2485 	k573d(config);
2486 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::drmn_output_callback));
2487 
2488 	casszi(config);
2489 
2490 	KONAMI_573_MULTI_SESSION_UNIT(config, "k573msu", 0);
2491 }
2492 
drmn9m(machine_config & config)2493 void ksys573_state::drmn9m(machine_config &config)
2494 {
2495 	k573d(config);
2496 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::drmn_output_callback));
2497 
2498 	casszi(config);
2499 
2500 	KONAMI_573_MULTI_SESSION_UNIT(config, "k573msu", 0);
2501 }
2502 
drmn10m(machine_config & config)2503 void ksys573_state::drmn10m(machine_config &config)
2504 {
2505 	k573d(config);
2506 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::drmn_output_callback));
2507 
2508 	casszi(config);
2509 
2510 	KONAMI_573_MULTI_SESSION_UNIT(config, "k573msu", 0);
2511 }
2512 
2513 // Guitar Freaks
2514 
gtrfrks(machine_config & config)2515 void ksys573_state::gtrfrks(machine_config &config)
2516 {
2517 	k573a(config);
2518 	cassx(config);
2519 }
2520 
gtrfrk2m(machine_config & config)2521 void ksys573_state::gtrfrk2m(machine_config &config)
2522 {
2523 	k573a(config);
2524 	cassyi(config);
2525 	pccard1_32mb(config); // HACK: The installation tries to check and erase 32mb but only flashes 16mb.
2526 }
2527 
gtrfrk3m(machine_config & config)2528 void ksys573_state::gtrfrk3m(machine_config &config)
2529 {
2530 	k573d(config);
2531 	cassxzi(config);
2532 	pccard1_16mb(config);
2533 }
2534 
gtrfrk5m(machine_config & config)2535 void ksys573_state::gtrfrk5m(machine_config &config)
2536 {
2537 	k573d(config);
2538 	casszi(config);
2539 	pccard1_32mb(config);
2540 }
2541 
gtrfrk7m(machine_config & config)2542 void ksys573_state::gtrfrk7m(machine_config &config)
2543 {
2544 	k573d(config);
2545 	casszi(config);
2546 	pccard1_32mb(config);
2547 }
2548 
gtfrk10m(machine_config & config)2549 void ksys573_state::gtfrk10m(machine_config &config)
2550 {
2551 	k573d(config);
2552 	casszi(config);
2553 	pccard1_32mb(config);
2554 }
2555 
gtfrk10mb(machine_config & config)2556 void ksys573_state::gtfrk10mb(machine_config &config)
2557 {
2558 	gtrfrk7m(config);
2559 
2560 	KONAMI_573_NETWORK_PCB_UNIT(config, "k573npu", 0);
2561 }
2562 
gtfrk11m(machine_config & config)2563 void ksys573_state::gtfrk11m(machine_config &config)
2564 {
2565 	k573d(config);
2566 	casszi(config);
2567 	pccard1_32mb(config);
2568 }
2569 
2570 // Miscellaneous
2571 
konami573x(machine_config & config)2572 void ksys573_state::konami573x(machine_config &config)
2573 {
2574 	konami573(config);
2575 	cassx(config);
2576 }
2577 
fbaitbc(machine_config & config)2578 void ksys573_state::fbaitbc(machine_config & config)
2579 {
2580 	konami573(config);
2581 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::fbaitbc_map);
2582 
2583 	UPD4701A(config, m_upd4701);
2584 	m_upd4701->set_porty_tag("uPD4701_y");
2585 
2586 	cassx(config);
2587 }
2588 
hyperbbc(machine_config & config)2589 void ksys573_state::hyperbbc(machine_config &config)
2590 {
2591 	konami573(config);
2592 	cassy(config); // The game doesn't check the security chip
2593 
2594 	subdevice<konami573_cassette_slot_device>("cassette")->set_option_machine_config( "game", [this] (device_t *device) { hyperbbc_cassette_install(device); } );
2595 }
2596 
hypbbc2p(machine_config & config)2597 void ksys573_state::hypbbc2p(machine_config &config)
2598 {
2599 	konami573(config);
2600 	cassy(config);
2601 
2602 	subdevice<konami573_cassette_slot_device>("cassette")->set_option_machine_config( "game", [this] (device_t *device) { hypbbc2p_cassette_install(device); } );
2603 }
2604 
animechmp(machine_config & config)2605 void ksys573_state::animechmp(machine_config &config)
2606 {
2607 	konami573(config);
2608 	cassyi(config);
2609 
2610 	pccard1_32mb(config);
2611 
2612 	subdevice<konami573_cassette_slot_device>("cassette")->set_option_machine_config("game", [this](device_t* device) { animechmp_cassette_install(device); });
2613 }
2614 
stepchmp(machine_config & config)2615 void ksys573_state::stepchmp(machine_config& config)
2616 {
2617 	konami573(config);
2618 	cassyi(config);
2619 
2620 	subdevice<konami573_cassette_slot_device>("cassette")->set_option_machine_config("game", [this](device_t* device) { stepchmp_cassette_install(device); });
2621 }
2622 
salarymc(machine_config & config)2623 void ksys573_state::salarymc(machine_config &config)
2624 {
2625 	konami573(config);
2626 	cassyi(config);
2627 
2628 	subdevice<konami573_cassette_slot_device>("cassette")->set_option_machine_config( "game", [this] (device_t *device) { salarymc_cassette_install(device); } );
2629 }
2630 
gbbchmp(machine_config & config)2631 void ksys573_state::gbbchmp(machine_config& config)
2632 {
2633 	animechmp(config);
2634 	MB89371(config, m_duart, 0);
2635 
2636 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::gbbchmp_map);
2637 }
2638 
gchgchmp(machine_config & config)2639 void ksys573_state::gchgchmp(machine_config &config)
2640 {
2641 	konami573(config);
2642 	pccard1_16mb(config);
2643 	cassx(config);
2644 }
2645 
pnchmn(machine_config & config)2646 void ksys573_state::pnchmn(machine_config &config)
2647 {
2648 
2649 	konami573(config);
2650 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573a_map);
2651 
2652 	cassxi(config);
2653 	pccard1_32mb(config);
2654 
2655 	subdevice<konami573_cassette_slot_device>("cassette")->set_option_machine_config( "game", [this] (device_t *device) { punchmania_cassette_install(device); } );
2656 }
2657 
pnchmn2(machine_config & config)2658 void ksys573_state::pnchmn2(machine_config &config)
2659 {
2660 	pnchmn(config);
2661 	pccard2_64mb(config);
2662 }
2663 
gunmania(machine_config & config)2664 void ksys573_state::gunmania(machine_config &config)
2665 {
2666 	konami573(config);
2667 	m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::gunmania_map);
2668 
2669 	DS2401( config, "gunmania_id" );
2670 	pccard2_32mb(config);
2671 }
2672 
dmx(machine_config & config)2673 void ksys573_state::dmx(machine_config &config)
2674 {
2675 	k573d(config);
2676 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::dmx_output_callback));
2677 
2678 	casszi(config);
2679 }
2680 
mamboagg(machine_config & config)2681 void ksys573_state::mamboagg(machine_config &config)
2682 {
2683 	k573d(config);
2684 	subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::mamboagg_output_callback));
2685 
2686 	casszi(config);
2687 }
2688 
mamboagga(machine_config & config)2689 void ksys573_state::mamboagga(machine_config &config)
2690 {
2691 	mamboagg(config);
2692 	KONAMI_573_NETWORK_PCB_UNIT(config, "k573npu", 0);
2693 }
2694 
2695 
2696 static INPUT_PORTS_START( konami573 )
2697 	PORT_START( "IN0" )
2698 	PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
2699 
2700 	PORT_START( "OUT0" )
2701 	PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, cs_write )
2702 	PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, clk_write )
2703 	PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, di_write )
2704 	PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_clk_w )
2705 
2706 	PORT_START( "IN1" )
2707 	PORT_DIPNAME( 0x00000001, 0x00000001, "Unused 1" ) PORT_DIPLOCATION( "DIP SW:1" )
2708 	PORT_DIPSETTING(          0x00000001, DEF_STR( Off ) )
2709 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
2710 	PORT_DIPNAME( 0x00000002, 0x00000002, "Screen Flip" ) PORT_DIPLOCATION( "DIP SW:2" )
2711 	PORT_DIPSETTING(          0x00000002, DEF_STR( Normal ) )
2712 	PORT_DIPSETTING(          0x00000000, "V-Flip" )
2713 	PORT_DIPNAME( 0x00000004, 0x00000004, "Unused 2" ) PORT_DIPLOCATION( "DIP SW:3" )
2714 	PORT_DIPSETTING(          0x00000004, DEF_STR( Off ) )
2715 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
2716 	PORT_DIPNAME( 0x00000008, 0x00000000, "Start Up Device" ) PORT_DIPLOCATION( "DIP SW:4" )
2717 	PORT_DIPSETTING(          0x00000008, "CD-ROM Drive" )
2718 	PORT_DIPSETTING(          0x00000000, "Flash ROM" )
2719 	PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d0_r )
2720 	PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d1_r )
2721 	PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d2_r )
2722 	PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d3_r )
2723 	PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, read_line_adc083x_do )
2724 	PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, read_line_adc083x_sars )
2725 //  PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
2726 //  PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN )
2727 	PORT_CONFNAME( 0x00001000, 0x00001000, "Network?" )
2728 	PORT_CONFSETTING(          0x00001000, DEF_STR( Off ) )
2729 	PORT_CONFSETTING(          0x00000000, DEF_STR( On ) )
2730 //  PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2731 	PORT_BIT( 0x00004000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, read_line_ds2401 )
2732 //  PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2733 	PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, do_read )
2734 //  PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2735 	PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, read_line_secflash_sda )
2736 	PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2737 	PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* skip hang at startup */
2738 	PORT_BIT( 0x00200000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* skip hang at startup */
2739 //  PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2740 //  PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2741 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_COIN1 )
2742 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_COIN2 )
2743 	PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "pccard1", pccard_slot_device, read_line_inserted )
2744 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "pccard2", pccard_slot_device, read_line_inserted )
2745 	PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_SERVICE1 )
2746 //  PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2747 //  PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2748 //  PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2749 
2750 	PORT_START( "OUT1" ) // security_w
2751 	PORT_BIT( 0xffffff00, IP_ACTIVE_HIGH, IPT_OUTPUT )
2752 	PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d0 )
2753 	PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d1 )
2754 	PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d2 )
2755 	PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d3 )
2756 	PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d4 )
2757 	PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d5 )
2758 	PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d6 )
2759 	PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_d7 )
2760 
2761 	PORT_START( "OUT2" ) // control_w
2762 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_zs01_sda )
2763 
2764 	PORT_START( "IN2" )
2765 	PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2766 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER( 1 )
2767 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER( 1 )
2768 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER( 1 )
2769 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER( 1 )
2770 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) /* skip init? */
2771 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 )
2772 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 )
2773 	PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START1 ) /* skip init? */
2774 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER( 2 )
2775 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER( 2 )
2776 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER( 2 )
2777 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER( 2 )
2778 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 2 ) /* skip init? */
2779 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 2 )
2780 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 2 )
2781 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 ) /* skip init? */
2782 
2783 	PORT_START( "IN3" )
2784 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 )
2785 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 )
2786 	PORT_SERVICE_NO_TOGGLE( 0x00000400, IP_ACTIVE_LOW )
2787 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 )
2788 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 2 )
2789 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 2 )
2790 	PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2791 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 2 )
2792 //  PORT_BIT( 0xf0fff0ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
2793 
2794 	PORT_START( "LAMPS" )
2795 	PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_OUTPUT )
2796 
2797 	PORT_START( "analog0" )
2798 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
2799 
2800 	PORT_START( "analog1" )
2801 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
2802 
2803 	PORT_START( "analog2" )
2804 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
2805 
2806 	PORT_START( "analog3" )
2807 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
2808 
2809 	PORT_START( "CD" )
2810 	PORT_CONFNAME( 1, 0, "CD" )
2811 	PORT_CONFSETTING( 0, "1" )
2812 	PORT_CONFSETTING( 1, "2" )
2813 INPUT_PORTS_END
2814 
2815 static INPUT_PORTS_START( fbaitbc )
2816 	PORT_INCLUDE( konami573 )
2817 
2818 	PORT_START( "uPD4701_y" )
2819 	PORT_BIT( 0x0fff, 0, IPT_MOUSE_Y ) PORT_MINMAX( 0, 0xfff ) PORT_SENSITIVITY( 15 ) PORT_KEYDELTA( 8 ) PORT_RESET
2820 
2821 	PORT_START( "uPD4701_switches" )
2822 	PORT_BIT( 0x1, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_PLAYER(1) PORT_WRITE_LINE_DEVICE_MEMBER("upd4701", upd4701_device, middle_w)
2823 	PORT_BIT( 0x2, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_WRITE_LINE_DEVICE_MEMBER("upd4701", upd4701_device, right_w)
2824 	PORT_BIT( 0x4, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_PLAYER(1) PORT_WRITE_LINE_DEVICE_MEMBER("upd4701", upd4701_device, left_w)
2825 INPUT_PORTS_END
2826 
2827 static INPUT_PORTS_START( fbaitmc )
2828 	PORT_INCLUDE( fbaitbc )
2829 
2830 	PORT_MODIFY( "analog0" )
2831 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX( 0x20,0xdf ) PORT_SENSITIVITY( 30 ) PORT_KEYDELTA( 30 ) PORT_PLAYER( 1 ) PORT_REVERSE
2832 
2833 	PORT_MODIFY( "analog1" )
2834 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX( 0x20,0xdf ) PORT_SENSITIVITY( 30 ) PORT_KEYDELTA( 30 ) PORT_PLAYER( 1 )
2835 INPUT_PORTS_END
2836 
2837 static INPUT_PORTS_START( ddr )
2838 	PORT_INCLUDE( konami573 )
2839 
2840 	PORT_MODIFY( "IN2" )
2841 	PORT_BIT( 0x00000f0f, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER( ksys573_state, gn845pwbb_read )
2842 
2843 	PORT_START( "STAGE" )
2844 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 1 )
2845 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 1 ) /* multiplexor */
2846 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER( 1 )    /* multiplexor */
2847 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER( 1 )
2848 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 2 )
2849 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 2 ) /* multiplexor */
2850 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER( 2 )    /* multiplexor */
2851 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER( 2 )
2852 INPUT_PORTS_END
2853 
2854 static INPUT_PORTS_START( ddrsolo )
2855 	PORT_INCLUDE( konami573 )
2856 
2857 	PORT_MODIFY( "IN2" )
2858 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Left 1" )
2859 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Right 1" )
2860 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Up 1" )
2861 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Down 1" )
2862 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Up-Left 2" ) /* P1 BUTTON 1 */
2863 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Left 2" ) /* P1 BUTTON 2 */
2864 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Down 2" ) /* P1 BUTTON 3 */
2865 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Up-Left 1" ) /* P2 LEFT */
2866 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Up-Right 1" ) /* P2 RIGHT */
2867 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 UP */
2868 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 DOWN */
2869 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Up 2" ) /* P2 BUTTON1 */
2870 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Right 2" ) /* P2 BUTTON2 */
2871 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Up-Right 2" ) /* P2 BUTTON3 */
2872 	PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* P2 START */
2873 
2874 	PORT_MODIFY( "IN3" )
2875 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */
2876 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Select L" ) /* P1 BUTTON5 */
2877 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
2878 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */
2879 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Select R" ) /* P2 BUTTON5 */
2880 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */
2881 INPUT_PORTS_END
2882 
2883 static INPUT_PORTS_START( gtrfrks )
2884 	PORT_INCLUDE( konami573 )
2885 
2886 	PORT_MODIFY( "IN1" )
2887 	PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* SERVICE1 */
2888 
2889 	PORT_MODIFY( "IN2" )
2890 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Effect 1" )
2891 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Effect 2" )
2892 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Pick" )
2893 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Wailing" )
2894 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Button R" )
2895 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Button G" )
2896 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "P1 Button B" )
2897 	PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START1 )
2898 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Effect 1" )
2899 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Effect 2" )
2900 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Pick" )
2901 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Wailing" )
2902 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Button R" )
2903 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Button G" )
2904 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 2 ) PORT_NAME( "P2 Button B" )
2905 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 )
2906 
2907 	PORT_MODIFY( "IN3" )
2908 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* P1 BUTTON4 */
2909 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */
2910 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
2911 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_SERVICE2 ) /* P1 BUTTON4 */
2912 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */
2913 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
2914 
2915 	PORT_MODIFY( "LAMPS" )
2916 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, gtrfrks_lamps_b7 )
2917 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, gtrfrks_lamps_b6 )
2918 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, gtrfrks_lamps_b5 )
2919 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, gtrfrks_lamps_b4 )
2920 INPUT_PORTS_END
2921 
2922 static INPUT_PORTS_START( dmx )
2923 	PORT_INCLUDE( konami573 )
2924 
2925 	PORT_MODIFY( "IN2" )
2926 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "D-Sensor D1 L" ) /* P1 LEFT */
2927 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "D-Sensor D1 R" ) /* P1 RIGHT */
2928 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Select L" ) /* P1 UP */
2929 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "P1 Select R" ) /* P1 DOWN */
2930 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "D-Sensor U L" ) /* P1 BUTTON1 */
2931 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "D-Sensor U R" ) /* P1 BUTTON2 */
2932 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON3 */
2933 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 2 ) PORT_NAME( "D-Sensor D1 L" ) /* P2 LEFT */
2934 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 2 ) PORT_NAME( "D-Sensor D1 R" ) /* P2 RIGHT */
2935 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 2 ) PORT_NAME( "P2 Select L" ) /* P2 UP */
2936 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 2 ) PORT_NAME( "P2 Select R" ) /* P2 DOWN */
2937 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 2 ) PORT_NAME( "D-Sensor U L" ) /* P2 BUTTON1 */
2938 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 2 ) PORT_NAME( "D-Sensor U R" ) /* P2 BUTTON2 */
2939 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON3 */
2940 
2941 	PORT_MODIFY( "IN3" )
2942 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "D-Sensor D0 L" ) /* P1 BUTTON4 */
2943 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "D-Sensor D0 R" ) /* P1 BUTTON5 */
2944 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
2945 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 2 ) PORT_NAME( "D-Sensor D0 L" ) /* P2 BUTTON4 */
2946 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 2 ) PORT_NAME( "D-Sensor D0 R" ) /* P2 BUTTON5 */
2947 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */
2948 
2949 	PORT_MODIFY( "LAMPS" )
2950 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, dmx_lamps_b0 )
2951 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, dmx_lamps_b1 )
2952 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, dmx_lamps_b2 )
2953 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, dmx_lamps_b3 )
2954 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, dmx_lamps_b4 )
2955 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, dmx_lamps_b5 )
2956 INPUT_PORTS_END
2957 
2958 static INPUT_PORTS_START( drmn )
2959 	PORT_INCLUDE( konami573 )
2960 
2961 	PORT_MODIFY( "IN1" )
2962 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* COIN2 */
2963 
2964 	PORT_MODIFY( "IN2" )
2965 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "High Tom" ) /* P1 LEFT */
2966 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "Low Tom" ) /* P1 RIGHT */
2967 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "Hi-Hat" ) /* P1 UP */
2968 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "Snare" ) /* P1 DOWN */
2969 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "Cymbal" ) /* P1 BUTTON 1 */
2970 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON 2 */
2971 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "Bass Drum" ) /* P1 BUTTON 3 */
2972 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "Select L" ) /* P2 LEFT */
2973 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "Select R" ) /* P2 RIGHT */
2974 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 UP */
2975 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 DOWN */
2976 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON1 */
2977 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON2 */
2978 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON3 */
2979 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 START */
2980 
2981 	PORT_MODIFY( "IN3" )
2982 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */
2983 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */
2984 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
2985 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */
2986 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON5 */
2987 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */
2988 INPUT_PORTS_END
2989 
2990 static INPUT_PORTS_START( gunmania )
2991 	PORT_INCLUDE( konami573 )
2992 
2993 	PORT_MODIFY( "IN1" )
2994 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED )
2995 
2996 	PORT_MODIFY( "IN2" )
2997 	PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNUSED )
2998 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER( 1 ) PORT_NAME( "Bullet Tube-1 Sensor" )
2999 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "Bullet Tube-2 Sensor" )
3000 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "Safety Sensor Under" )
3001 	PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(ksys573_state, gunmania_tank_shutter_sensor)
3002 
3003 	PORT_MODIFY( "IN3" )
3004 	PORT_BIT( 0x0d000b00, IP_ACTIVE_LOW, IPT_UNUSED )
3005 	PORT_BIT( 0x02000000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(ksys573_state, gunmania_cable_holder_sensor)
3006 
3007 	PORT_START( "GUNX" )
3008 	PORT_BIT( 0x7f, 0x2f, IPT_LIGHTGUN_X ) PORT_CROSSHAIR( X, 1.0, 0.0, 0 ) PORT_MINMAX( 0x00,0x5f ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 1 )
3009 	PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER( "gunmania_id", ds2401_device, read )
3010 
3011 	PORT_START( "GUNY" )
3012 	PORT_BIT( 0x7f, 0x1f, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR( Y, 1.0, 0.0, 0 ) PORT_MINMAX( 0x00,0x3f ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 1 )
3013 
3014 	PORT_START( "SENSOR" )
3015 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER( 1 ) PORT_NAME( "Safety Sensor Front" )
3016 
3017 	PORT_START( "ENCODER" )
3018 	PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_Q )
3019 	PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_W )
3020 	PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_E )
3021 	PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_R )
3022 	PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_T )
3023 	PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_Y )
3024 	PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_U )
3025 	PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER( 4 ) PORT_CODE( KEYCODE_I )
3026 INPUT_PORTS_END
3027 
3028 static INPUT_PORTS_START( hndlchmp )
3029 	PORT_INCLUDE( konami573 )
3030 
3031 	PORT_MODIFY( "analog0" )
3032 	PORT_BIT( 0xff, 0xc0, IPT_PEDAL ) PORT_MINMAX( 0xc0, 0xf0 ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 20 ) PORT_PLAYER( 2 )
3033 
3034 	PORT_MODIFY( "analog1" )
3035 	PORT_BIT( 0xff, 0xc0, IPT_PEDAL ) PORT_MINMAX( 0xc0, 0xf0 ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 20 ) PORT_PLAYER( 1 )
3036 
3037 	PORT_MODIFY( "analog2" )
3038 	PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX( 0x48, 0xb7 ) PORT_SENSITIVITY( 25 ) PORT_KEYDELTA( 30 ) PORT_PLAYER( 2 )
3039 
3040 	PORT_MODIFY( "analog3" )
3041 	PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX( 0x48, 0xb7 ) PORT_SENSITIVITY( 25 ) PORT_KEYDELTA( 30 ) PORT_PLAYER( 1 )
3042 INPUT_PORTS_END
3043 
3044 static INPUT_PORTS_START( hyperbbc )
3045 	PORT_INCLUDE( konami573 )
3046 
3047 	PORT_MODIFY( "IN2" )
3048 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 3 ) PORT_NAME( "3P Red" )
3049 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 3 ) PORT_NAME( "3P Blue" )
3050 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START3 )
3051 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 3 ) PORT_NAME( "3P Green" )
3052 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "1P Red" )
3053 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "1P Green" )
3054 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "1P Blue" )
3055 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN )
3056 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN )
3057 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
3058 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN )
3059 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 2 ) PORT_NAME( "2P Red" )
3060 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 2 ) PORT_NAME( "2P Green" )
3061 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 2 ) PORT_NAME( "2P Blue" )
3062 
3063 	PORT_MODIFY( "IN3" )
3064 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
3065 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
3066 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN )
3067 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
3068 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
3069 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
3070 INPUT_PORTS_END
3071 
3072 static INPUT_PORTS_START( hypbbc2p )
3073 	PORT_INCLUDE( konami573 )
3074 
3075 	PORT_MODIFY( "IN2" )
3076 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START2 ) /* P1 UP */
3077 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 START */
3078 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "1P Red" )
3079 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "1P Green" )
3080 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "1P Blue" )
3081 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 2 ) PORT_NAME( "2P Red" )
3082 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 2 ) PORT_NAME( "2P Blue" )
3083 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 2 ) PORT_NAME( "2P Green" )
3084 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN )
3085 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN )
3086 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
3087 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN )
3088 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
3089 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
3090 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
3091 
3092 
3093 	PORT_MODIFY( "IN3" )
3094 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
3095 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
3096 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN )
3097 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
3098 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
3099 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
3100 INPUT_PORTS_END
3101 
3102 static INPUT_PORTS_START( mamboagg )
3103 	PORT_INCLUDE( konami573 )
3104 
3105 	PORT_MODIFY( "IN1" )
3106 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "Right Pad 1 (Top Right)" ) /* COIN2 */
3107 
3108 	PORT_MODIFY( "IN2" )
3109 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER( 1 ) PORT_NAME( "Centre Pad 3 (Middle Right)" ) /* P1 UP */
3110 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "Centre Pad 1 (Top Right)" ) /* P1 DOWN */
3111 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "Left Pad 2 (Bottom Left)" ) /* P1 BUTTON 1 */
3112 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "Left Pad 1 (Top Left)" ) /* P1 BUTTON 2 */
3113 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER( 1 ) PORT_NAME( "Left Pad 3 (Bottom Right)" ) /* P1 BUTTON 3 */
3114 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "Centre Pad 2 (Bottom Left)" ) /* P2 LEFT */
3115 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER( 1 ) PORT_NAME( "Centre Pad 3 (Bottom Right)" ) /* P2 RIGHT */
3116 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "Centre Pad 1 (Top Left)" ) /* P2 UP */
3117 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "Centre Pad 2 (Middle Left)" ) /* P2 DOWN */
3118 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "Right Pad 2 (Bottom Left)" ) /* P2 BUTTON1 */
3119 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "Right Pad 1 (Top Left)" ) /* P2 BUTTON2 */
3120 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER( 1 ) PORT_NAME( "Right Pad 3 (Bottom Right)" ) /* P2 BUTTON3 */
3121 	PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "Left Pad 1 (Top Right)" ) /* P2 START */
3122 
3123 	PORT_MODIFY( "IN3" )
3124 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER( 1 ) PORT_NAME( "Left Pad 3 (Middle Right)" ) /* P1 BUTTON4 */
3125 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "Left Pad 2 (Middle Left)" ) /* P1 BUTTON5 */
3126 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
3127 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER( 1 ) PORT_NAME( "Right Pad 3 (Middle Right)" ) /* P2 BUTTON4 */
3128 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "Right Pad 2 (Middle Left)" ) /* P2 BUTTON5 */
3129 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */
3130 
3131 	PORT_MODIFY( "LAMPS" )
3132 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, mamboagg_lamps_b3 )
3133 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, mamboagg_lamps_b4 )
3134 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, mamboagg_lamps_b5 )
3135 INPUT_PORTS_END
3136 
3137 static INPUT_PORTS_START( pnchmn )
3138 	PORT_INCLUDE( konami573 )
3139 
3140 	PORT_MODIFY( "IN1" )
3141 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED )
3142 
3143 	PORT_MODIFY( "IN2" )
3144 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "Select L" ) /* P2 LEFT */
3145 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER( 1 ) PORT_NAME( "Select R" ) /* P2 RIGHT */
3146 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER( 1 ) PORT_NAME( "Skip Check" )
3147 	PORT_BIT( 0x00005ffc, IP_ACTIVE_LOW, IPT_UNUSED )
3148 
3149 	PORT_MODIFY( "IN3" )
3150 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */
3151 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */
3152 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
3153 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */
3154 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON5 */
3155 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */
3156 
3157 	PORT_START( "PADS" )
3158 	PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER( 1 ) PORT_NAME( "Top Left" )
3159 	PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER( 1 ) PORT_NAME( "Middle Left" )
3160 	PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 1 ) PORT_NAME( "Bottom Left" )
3161 	PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER( 1 ) PORT_NAME( "Top Right" )
3162 	PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER( 1 ) PORT_NAME( "Middle Right" )
3163 	PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER( 1 ) PORT_NAME( "Bottom Right" )
3164 INPUT_PORTS_END
3165 
3166 static INPUT_PORTS_START( gchgchmp )
3167 	PORT_INCLUDE( konami573 )
3168 
3169 	PORT_MODIFY( "IN2" )
3170 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY PORT_PLAYER( 1 ) /* P1 LEFT */
3171 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_PLAYER( 1 ) /* P1 RIGHT */
3172 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY PORT_PLAYER( 1 ) /* P1 UP */
3173 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY PORT_PLAYER( 1 ) /* P1 DOWN */
3174 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY PORT_PLAYER( 2 ) /* P1 BUTTON 1 */
3175 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_PLAYER( 2 ) /* P1 BUTTON 2 */
3176 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY PORT_PLAYER( 2 ) /* P1 BUTTON 3 */
3177 	PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY PORT_PLAYER( 1 ) /* P2 LEFT */
3178 	PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY PORT_PLAYER( 1 ) /* P2 RIGHT */
3179 	PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY PORT_PLAYER( 1 ) /* P2 UP */
3180 	PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY PORT_PLAYER( 1 )/* P2 DOWN */
3181 	PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY PORT_PLAYER( 2 ) /* P2 BUTTON 1 */
3182 	PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY PORT_PLAYER( 2 ) /* P2 BUTTON 2 */
3183 	PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY PORT_PLAYER( 2 ) /* P2 BUTTON 3 */
3184 
3185 	PORT_MODIFY( "IN3" )
3186 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */
3187 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY PORT_PLAYER( 2 ) /* P1 BUTTON5 */
3188 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */
3189 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */
3190 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY PORT_PLAYER( 2 ) /* P2 BUTTON5 */
3191 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */
3192 INPUT_PORTS_END
3193 
3194 #define SYS573_BIOS_A \
3195 	ROM_SYSTEM_BIOS( 0, "std",        "Standard" ) \
3196 	ROM_SYSTEM_BIOS( 1, "gchgchmp",   "Found on Gachagachamp" ) \
3197 	ROM_SYSTEM_BIOS( 2, "dsem2",      "Found on Dancing Stage Euro Mix 2" ) \
3198 	ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \
3199 	ROMX_LOAD( "700a01.22g",           0x0000000, 0x080000, CRC(11812ef8) SHA1(e1284add4aaddd5337bd7f4e27614460d52b5b48), ROM_BIOS(0) ) \
3200 	ROMX_LOAD( "700a01,gchgchmp.22g",  0x000000,  0x080000, CRC(39ebb0ca) SHA1(9aab8c637dd2be84d79007e52f108abe92bf29dd), ROM_BIOS(1) ) \
3201 	ROMX_LOAD( "700b01.22g",           0x0000000, 0x080000, CRC(6cf852af) SHA1(a2421d0a494892c0e71003c96995ce8f945064dd), ROM_BIOS(2) ) \
3202 	ROM_REGION( 0x8000, "mcu", 0 ) \
3203 	ROM_LOAD( "hd6473644h.18e", 0, 0x8000, NO_DUMP) \
3204 	ROM_REGION( 0x40, "h8_response", 0 ) \
3205 	ROMX_LOAD( "h8a01.bin",    0x000000, 0x000040, CRC(131e0359) SHA1(967f66578ebc0cf6b044d71af09b59bce1f4a1d0), ROM_BIOS(0) ) \
3206 	ROMX_LOAD( "h8a01.bin",    0x000000, 0x000040, CRC(131e0359) SHA1(967f66578ebc0cf6b044d71af09b59bce1f4a1d0), ROM_BIOS(1) ) \
3207 	ROMX_LOAD( "h8b01.bin",    0x000000, 0x000040, CRC(508b057d) SHA1(779177e6312ef272483eeb64a5e84bbae6e301f2), ROM_BIOS(2) )
3208 
3209 // BIOS
3210 ROM_START( sys573 )
3211 	SYS573_BIOS_A
3212 ROM_END
3213 
3214 // Games
3215 ROM_START( animechmp )
3216 	SYS573_BIOS_A
3217 
3218 	ROM_REGION( 0x200000, "pccard1:32mb:1l", 0 )
3219 	ROM_LOAD( "ca07jaa02.1l", 0x100000, 0x100000, BAD_DUMP CRC(7be507ae) SHA1(3eee2e46a9d16662f6897d3c50841933a1fdbddb) )
3220 	ROM_CONTINUE( 0x000000, 0x100000 )
3221 
3222 	ROM_REGION( 0x200000, "pccard1:32mb:1u", 0 )
3223 	ROM_LOAD( "ca07jaa02.1u", 0x100000, 0x100000, BAD_DUMP CRC(5cca6cb3) SHA1(b8bad3e8b37712a464a582a796676cffeb1ca953) )
3224 	ROM_CONTINUE( 0x000000, 0x100000 )
3225 
3226 	ROM_REGION( 0x200000, "pccard1:32mb:2l", 0 )
3227 	ROM_LOAD( "ca07jaa02.2l", 0x100000, 0x100000, BAD_DUMP CRC(035f96b0) SHA1(dcd74bac370c65edd597f7331888ed714c081704) )
3228 	ROM_CONTINUE( 0x000000, 0x100000 )
3229 
3230 	ROM_REGION( 0x200000, "pccard1:32mb:2u", 0 )
3231 	ROM_LOAD( "ca07jaa02.2u", 0x100000, 0x100000, BAD_DUMP CRC(fce9defd) SHA1(c3ae258fc8afdbacfc718b2d4251c6f478e70c77) )
3232 	ROM_CONTINUE( 0x000000, 0x100000 )
3233 
3234 	ROM_REGION( 0x200000, "pccard1:32mb:3l", 0 )
3235 	ROM_LOAD( "ca07jaa02.3l", 0x100000, 0x100000, BAD_DUMP CRC(6fa3c80a) SHA1(8c84a29f382a85f8235848bc5dad5cfe33eb85f8) )
3236 	ROM_CONTINUE( 0x000000, 0x100000 )
3237 
3238 	ROM_REGION( 0x200000, "pccard1:32mb:3u", 0 )
3239 	ROM_LOAD( "ca07jaa02.3u", 0x100000, 0x100000, BAD_DUMP CRC(dedc20b7) SHA1(289766eb2c01214102fd177b70a5422cbf11a615) )
3240 	ROM_CONTINUE( 0x000000, 0x100000 )
3241 
3242 	ROM_REGION( 0x200000, "pccard1:32mb:4l", 0 )
3243 	ROM_LOAD( "ca07jaa02.4l", 0x100000, 0x100000, BAD_DUMP CRC(1781eac1) SHA1(01e7d71e885d786aab46a7f37e23719279320b37) )
3244 	ROM_CONTINUE( 0x000000, 0x100000 )
3245 
3246 	ROM_REGION( 0x200000, "pccard1:32mb:4u", 0 )
3247 	ROM_LOAD( "ca07jaa02.4u", 0x100000, 0x100000, BAD_DUMP CRC(04b717a2) SHA1(730fd39623f72b0fec8eb2553e82ee0fb9262f99) )
3248 	ROM_CONTINUE( 0x000000, 0x100000 )
3249 
3250 	ROM_REGION( 0x200000, "pccard1:32mb:5l", 0 )
3251 	ROM_LOAD( "ca07jaa02.5l", 0x100000, 0x100000, BAD_DUMP CRC(16e568b5) SHA1(d4627ff0eca6b0a3c4c67d429bc897039c7d7743) )
3252 	ROM_CONTINUE( 0x000000, 0x100000 )
3253 
3254 	ROM_REGION( 0x200000, "pccard1:32mb:5u", 0 )
3255 	ROM_LOAD( "ca07jaa02.5u", 0x100000, 0x100000, BAD_DUMP CRC(1cd747d2) SHA1(9b9250f6fe6ff20e2c8951610b253ce3f56265e7) )
3256 	ROM_CONTINUE( 0x000000, 0x100000 )
3257 
3258 	ROM_REGION( 0x200000, "pccard1:32mb:6l", 0 )
3259 	ROM_LOAD( "ca07jaa02.6l", 0x100000, 0x100000, BAD_DUMP CRC(cf0ef666) SHA1(d8788763301ae456412e694fcdc05eee236201fb) )
3260 	ROM_CONTINUE( 0x000000, 0x100000 )
3261 
3262 	ROM_REGION( 0x200000, "pccard1:32mb:6u", 0 )
3263 	ROM_LOAD( "ca07jaa02.6u", 0x100000, 0x100000, BAD_DUMP CRC(b74e1a51) SHA1(b0a30e706d88701f6622167e5e4534b1f2e7bb7e) )
3264 	ROM_CONTINUE( 0x000000, 0x100000 )
3265 
3266 	ROM_REGION( 0x200000, "pccard1:32mb:7l", 0 )
3267 	ROM_LOAD( "ca07jaa02.7l", 0x100000, 0x100000, BAD_DUMP CRC(1ca3a2bf) SHA1(e0bcce586167b3107836f1c4aa2807871a34ff68) )
3268 	ROM_CONTINUE( 0x000000, 0x100000 )
3269 
3270 	ROM_REGION( 0x200000, "pccard1:32mb:7u", 0 )
3271 	ROM_LOAD( "ca07jaa02.7u", 0x100000, 0x100000, BAD_DUMP CRC(680d2651) SHA1(94659c5188e31acb75882597a75b7e5f29175d37) )
3272 	ROM_CONTINUE( 0x000000, 0x100000 )
3273 
3274 	ROM_REGION( 0x200000, "pccard1:32mb:8l", 0 )
3275 	ROM_LOAD( "ca07jaa02.8l", 0x100000, 0x100000, BAD_DUMP CRC(0b6c2a8e) SHA1(3871ea584f987f14e73dbcd99f29c94d4e0e6cb6) )
3276 	ROM_CONTINUE( 0x000000, 0x100000 )
3277 
3278 	ROM_REGION( 0x200000, "pccard1:32mb:8u", 0 )
3279 	ROM_LOAD( "ca07jaa02.8u", 0x100000, 0x100000, BAD_DUMP CRC(08ac7edb) SHA1(ddbd900134dfff220ef833507ef67a4883cac0f1) )
3280 	ROM_CONTINUE( 0x000000, 0x100000 )
3281 
3282 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3283 	ROM_LOAD( "gca07ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(e230ceb6) SHA1(af0f0e74af62e813ba5b40e6767856d2866c5324) )
3284 
3285 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3286 	ROM_LOAD( "gca07ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3287 ROM_END
3288 
3289 ROM_START( bassangl )
3290 	SYS573_BIOS_A
3291 
3292 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3293 	ROM_LOAD( "ge765ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ee1b32a7) SHA1(c0f6b14b054f5a95ce474e794a3e0ca78faac681) )
3294 
3295 	DISK_REGION( "cdrom0" )
3296 	DISK_IMAGE_READONLY( "765jaa02", 0, SHA1(dfcf62581e0d0e994945cc2c37ef86827d511628) )
3297 ROM_END
3298 
3299 ROM_START( bassang2 )
3300 	SYS573_BIOS_A
3301 
3302 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3303 	ROM_LOAD( "gc865ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(095cbfb5) SHA1(529ce0a7b0986cf7e64c37f466d6c2dac95cea7f) )
3304 
3305 	DISK_REGION( "cdrom0" )
3306 	DISK_IMAGE_READONLY( "865jaa02", 0, BAD_DUMP SHA1(b98d9aa54f13aa73bea580d6494cb6a7f3217be3) )
3307 ROM_END
3308 
3309 ROM_START( cr589fw )
3310 	SYS573_BIOS_A
3311 
3312 	DISK_REGION( "cdrom0" )
3313 	DISK_IMAGE_READONLY( "700b04", 0, BAD_DUMP SHA1(2f65f62eb7ae202153a8544989675989ed33316f) )
3314 ROM_END
3315 
3316 ROM_START( cr589fwa )
3317 	SYS573_BIOS_A
3318 
3319 	DISK_REGION( "cdrom0" )
3320 	DISK_IMAGE_READONLY( "700a04", 0, BAD_DUMP SHA1(554481f48eeb5daf8b4e7be2d66840d6c8454a52) )
3321 ROM_END
3322 
3323 ROM_START( darkhleg )
3324 	SYS573_BIOS_A
3325 
3326 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3327 	ROM_LOAD( "gx706ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(72b42574) SHA1(79dc959f0ce95ccb9ac0dbf0a72aec973e91bc56) )
3328 
3329 	DISK_REGION( "cdrom0" )
3330 	DISK_IMAGE_READONLY( "706jaa02", 0, SHA1(10101952fad80b7a10b1299158081bf86ce8cbe6) )
3331 ROM_END
3332 
3333 ROM_START( ddrextrm )
3334 	SYS573_BIOS_A
3335 
3336 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3337 	ROM_LOAD( "gcc36ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(c1601287) SHA1(929691a78f7bb6dd830f832f301116df0da1619b) )
3338 
3339 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3340 	ROM_LOAD( "gcc36ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3341 
3342 	DISK_REGION( "cdrom0" )
3343 	DISK_IMAGE_READONLY( "c36jaa02", 0, BAD_DUMP SHA1(edeb45fff0e66151b1ba2fd67542064ccddb031e) )
3344 ROM_END
3345 
3346 ROM_START( ddru )
3347 	SYS573_BIOS_A
3348 
3349 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3350 	ROM_LOAD( "gn845ua.u1",   0x000000, 0x000224, BAD_DUMP CRC(c9e7fced) SHA1(aac4dde100091bc64d397f53484a0ffbf68b8101) )
3351 
3352 	DISK_REGION( "cdrom0" )
3353 	DISK_IMAGE_READONLY( "845uaa02", 0, BAD_DUMP SHA1(d3f9290d4dadb5e9b82ebe77abf7b99d1a89f716) )
3354 ROM_END
3355 
3356 ROM_START( ddrj )
3357 	SYS573_BIOS_A
3358 
3359 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3360 	ROM_LOAD( "gc845jb.u1",   0x000000, 0x000224, BAD_DUMP CRC(a16f42b8) SHA1(da4f1eb3eb2b28cb3a0bc74bb9b9945970f56ac2) )
3361 
3362 	DISK_REGION( "cdrom0" )
3363 	DISK_IMAGE_READONLY( "845jba02", 0, SHA1(e4be989f6a655857af8e7336c9a7acf82e51f123) )
3364 ROM_END
3365 
3366 ROM_START( ddrja )
3367 	SYS573_BIOS_A
3368 
3369 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3370 	ROM_LOAD( "gc845ja.u1",   0x000000, 0x000224, NO_DUMP )
3371 
3372 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
3373 	ROM_LOAD( "gc845jaa.31m",  0x000000, 0x200000, NO_DUMP )
3374 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
3375 	ROM_LOAD( "gc845jaa.27m",  0x000000, 0x200000, NO_DUMP )
3376 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
3377 	ROM_LOAD( "gc845jaa.31l",  0x000000, 0x200000, NO_DUMP )
3378 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
3379 	ROM_LOAD( "gc845jaa.27l",  0x000000, 0x200000, NO_DUMP )
3380 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
3381 	ROM_LOAD( "gc845jaa.31j",  0x000000, 0x200000, NO_DUMP )
3382 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
3383 	ROM_LOAD( "gc845jaa.27j",  0x000000, 0x200000, NO_DUMP )
3384 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
3385 	ROM_LOAD( "gc845jaa.31h",  0x000000, 0x200000, NO_DUMP )
3386 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
3387 	ROM_LOAD( "gc845jaa.27h",  0x000000, 0x200000, NO_DUMP )
3388 
3389 	DISK_REGION( "cdrom0" )
3390 	DISK_IMAGE_READONLY( "845jaa02", 0, BAD_DUMP SHA1(37ca16be25bee39a5692dee2fa5f0fa0addfaaca) )
3391 
3392 	DISK_REGION( "cdrom1" )
3393 	DISK_IMAGE_READONLY( "845jaa01", 0, NO_DUMP ) // if this even exists
3394 ROM_END
3395 
3396 ROM_START( ddrjb )
3397 	SYS573_BIOS_A
3398 
3399 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3400 	ROM_LOAD( "gc845ja.u1",   0x000000, 0x000224, NO_DUMP )
3401 
3402 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
3403 	ROM_LOAD( "gc845jab.31m",  0x000000, 0x200000, NO_DUMP )
3404 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
3405 	ROM_LOAD( "gc845jab.27m",  0x000000, 0x200000, NO_DUMP )
3406 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
3407 	ROM_LOAD( "gc845jab.31l",  0x000000, 0x200000, NO_DUMP )
3408 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
3409 	ROM_LOAD( "gc845jab.27l",  0x000000, 0x200000, NO_DUMP )
3410 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
3411 	ROM_LOAD( "gc845jab.31j",  0x000000, 0x200000, NO_DUMP )
3412 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
3413 	ROM_LOAD( "gc845jab.27j",  0x000000, 0x200000, NO_DUMP )
3414 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
3415 	ROM_LOAD( "gc845jab.31h",  0x000000, 0x200000, NO_DUMP )
3416 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
3417 	ROM_LOAD( "gc845jab.27h",  0x000000, 0x200000, NO_DUMP )
3418 
3419 	DISK_REGION( "cdrom0" )
3420 	DISK_IMAGE_READONLY( "845jab02", 0, SHA1(bac74acaffd9d00e4105e13f32492f5d0fc5a2e1) )
3421 
3422 	DISK_REGION( "cdrom1" )
3423 	DISK_IMAGE_READONLY( "845jab01", 0, NO_DUMP ) // if this even exists
3424 ROM_END
3425 
3426 ROM_START( ddra )
3427 	SYS573_BIOS_A
3428 
3429 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3430 	ROM_LOAD( "gn845aa.u1",   0x000000, 0x000224, BAD_DUMP CRC(327c4851) SHA1(f0939224af706fd103a67aae9c96518c1db90ac9) )
3431 
3432 	DISK_REGION( "cdrom0" )
3433 	DISK_IMAGE_READONLY( "845aaa02", 0, SHA1(9b786de9b1085009c088de0d40425976c1f8df7b) )
3434 ROM_END
3435 
3436 ROM_START( ddr2m )
3437 	SYS573_BIOS_A
3438 
3439 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3440 	ROM_LOAD( "gn895jaa.u1",  0x000000, 0x000224, BAD_DUMP CRC(363f427e) SHA1(adec886a07b9bd91f142f286b04fc6582205f037) )
3441 
3442 	DISK_REGION( "cdrom0" )
3443 	DISK_IMAGE_READONLY( "895jaa02", 0, BAD_DUMP SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) )
3444 ROM_END
3445 
3446 ROM_START( ddr2mc )
3447 	SYS573_BIOS_A
3448 
3449 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3450 	ROM_LOAD( "gn896ja.u1",  0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) )
3451 
3452 	DISK_REGION( "cdrom0" )
3453 	DISK_IMAGE_READONLY( "896jaa01", 0, BAD_DUMP SHA1(f802a0e2ba0147eb71c54d92af409c3010a5715f) )
3454 
3455 	DISK_REGION( "cdrom1" )
3456 	DISK_IMAGE_READONLY( "895jaa02", 0, BAD_DUMP SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) )
3457 ROM_END
3458 
3459 ROM_START( ddr2mc2 )
3460 	SYS573_BIOS_A
3461 
3462 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3463 	ROM_LOAD( "ge984ja.u1",  0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) )
3464 
3465 	DISK_REGION( "cdrom0" )
3466 	DISK_IMAGE_READONLY( "ge984a01,ddr", 0, SHA1(badd15656f2316f81b0a45026b5ef10287d1480b) )
3467 
3468 	DISK_REGION( "cdrom1" )
3469 	DISK_IMAGE_READONLY( "895jaa02", 0, BAD_DUMP SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) )
3470 ROM_END
3471 
3472 ROM_START( ddr2ml )
3473 	SYS573_BIOS_A
3474 
3475 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3476 	ROM_LOAD( "ge885jaa.u1",  0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) )
3477 
3478 	DISK_REGION( "cdrom0" )
3479 	DISK_IMAGE_READONLY( "885jab01", 0, SHA1(c2bbb9e2e6f34e07f57e7076726af81df39f55c9) )
3480 
3481 	DISK_REGION( "cdrom1" )
3482 	DISK_IMAGE_READONLY( "885jaa02", 0, SHA1(f02bb09f41533c6ec496a662d815e85b304fcc72) )
3483 ROM_END
3484 
3485 ROM_START( ddr2mla )
3486 	SYS573_BIOS_A
3487 
3488 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3489 	ROM_LOAD( "ge885jaa.u1",  0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) )
3490 
3491 	DISK_REGION( "cdrom0" )
3492 	DISK_IMAGE_READONLY( "885jaa02", 0, SHA1(f02bb09f41533c6ec496a662d815e85b304fcc72) )
3493 ROM_END
3494 
3495 ROM_START( ddr3ma )
3496 	SYS573_BIOS_A
3497 
3498 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
3499 	ROM_LOAD( "ge887aa.u1",   0x000000, 0x000084, BAD_DUMP CRC(4ce86d32) SHA1(94cdb9873a7f7503acc3b763e9b49ec6af53533f) )
3500 
3501 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3502 	ROM_LOAD( "gn887aa.u1",   0x000000, 0x000084, BAD_DUMP CRC(bb14f9bd) SHA1(9d0adf5a32d8bbcaaea2f701f5c7a5d51ee0b8bf) )
3503 
3504 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3505 	ROM_LOAD( "ge887aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3506 
3507 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3508 	ROM_LOAD( "gn887aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3509 
3510 	DISK_REGION( "cdrom0" )
3511 	DISK_IMAGE_READONLY( "887aaa02", 0, SHA1(6f9a0e9dd046a1fc0c81be9eeb45c136574a4472) )
3512 ROM_END
3513 
3514 ROM_START( ddr3mj )
3515 	SYS573_BIOS_A
3516 
3517 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
3518 	ROM_LOAD( "ge887ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(3a377cec) SHA1(5bf3107a89547bd7697d9f0ab8f67240e101a559) )
3519 
3520 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3521 	ROM_LOAD( "gn887ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(2f633432) SHA1(bce44f20a5a7318af6aea4fdfa8af64ddb76047c) )
3522 
3523 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3524 	ROM_LOAD( "ge887ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3525 
3526 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3527 	ROM_LOAD( "gn887ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3528 
3529 	DISK_REGION( "cdrom0" )
3530 	DISK_IMAGE_READONLY( "887jaa02", 0, SHA1(8736818f42822f77e3484ea46a9e63faa7f8517a) )
3531 ROM_END
3532 
3533 ROM_START( ddr3mk )
3534 	SYS573_BIOS_A
3535 
3536 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
3537 	ROM_LOAD( "ge887kb.u1",   0x000000, 0x000084, BAD_DUMP CRC(4ce86d32) SHA1(94cdb9873a7f7503acc3b763e9b49ec6af53533f) )
3538 
3539 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3540 	ROM_LOAD( "gn887kb.u1",   0x000000, 0x000084, BAD_DUMP CRC(bb14f9bd) SHA1(9d0adf5a32d8bbcaaea2f701f5c7a5d51ee0b8bf) )
3541 
3542 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3543 	ROM_LOAD( "ge887kb.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3544 
3545 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3546 	ROM_LOAD( "gn887kb.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3547 
3548 	DISK_REGION( "cdrom0" )
3549 	DISK_IMAGE_READONLY( "887kba02", 0, SHA1(9f2c6a4e7ad0de44295dc09b9b054afb044238a9) )
3550 ROM_END
3551 
3552 ROM_START( ddr3mka )
3553 	SYS573_BIOS_A
3554 
3555 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
3556 	ROM_LOAD( "ge887ka.u1",   0x000000, 0x000084, BAD_DUMP CRC(4ce86d32) SHA1(94cdb9873a7f7503acc3b763e9b49ec6af53533f) )
3557 
3558 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3559 	ROM_LOAD( "gn887ka.u1",   0x000000, 0x000084, BAD_DUMP CRC(bb14f9bd) SHA1(9d0adf5a32d8bbcaaea2f701f5c7a5d51ee0b8bf) )
3560 
3561 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3562 	ROM_LOAD( "ge887ka.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3563 
3564 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3565 	ROM_LOAD( "gn887ka.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3566 
3567 	DISK_REGION( "cdrom0" )
3568 	DISK_IMAGE_READONLY( "887kaa02", 0, SHA1(d002f2c98c012d67ad0587553e1d0f45c0ae470e) )
3569 ROM_END
3570 
3571 ROM_START( ddr3mp )
3572 	SYS573_BIOS_A
3573 
3574 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3575 	ROM_LOAD( "gea22ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(ef370ff7) SHA1(cb7a043f8bfa535e54ae9af728031d1018ed0734) )
3576 
3577 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3578 	ROM_LOAD( "gca22ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(6883c82c) SHA1(6fef1dc7150066eee427db685b6c5fb350b7768d) )
3579 
3580 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3581 	ROM_LOAD( "gea22ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3582 
3583 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3584 	ROM_LOAD( "gca22ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3585 
3586 	DISK_REGION( "cdrom0" )
3587 	DISK_IMAGE_READONLY( "a22jaa02", 0, SHA1(dc3c1223882716d47b4f4db45b5dd2e988cba64c) )
3588 ROM_END
3589 
3590 ROM_START( ddr4m )
3591 	SYS573_BIOS_A
3592 
3593 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3594 	ROM_LOAD( "gea33aa.u1",   0x000000, 0x000224, BAD_DUMP CRC(7bd2a24f) SHA1(62c73a54c4ed7697cf81ddbf3d13d4b0ca827be5) )
3595 
3596 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3597 	ROM_LOAD( "gca33aa.u1",   0x000000, 0x001014, BAD_DUMP CRC(f6feb2bd) SHA1(dfd5bd532338849289e2e4c155c0ca86e79b9ae5) )
3598 
3599 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3600 	ROM_LOAD( "gea33aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3601 
3602 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3603 	ROM_LOAD( "gca33aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3604 
3605 	DISK_REGION( "cdrom0" )
3606 	DISK_IMAGE_READONLY( "a33aaa02", 0, BAD_DUMP SHA1(cc7349cbee37bfb101480497e99f1f52acb4ffa1) )
3607 ROM_END
3608 
3609 ROM_START( ddr4mj )
3610 	SYS573_BIOS_A
3611 
3612 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3613 	ROM_LOAD( "a33jaa.u1",    0x000000, 0x000224, BAD_DUMP CRC(10f1e9b8) SHA1(985bd26638964beebba5de4c7cda772b402d2e59) )
3614 
3615 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3616 	ROM_LOAD( "gca33ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(e5230867) SHA1(44aea9ccc90d81e7f41e5e9a62b28fcbdd75363b) )
3617 
3618 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3619 	ROM_LOAD( "a33jaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3620 
3621 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3622 	ROM_LOAD( "gca33ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3623 
3624 	DISK_REGION( "cdrom0" )
3625 	DISK_IMAGE_READONLY( "a33jaa02", 0, BAD_DUMP SHA1(9d9fb5e65f1532f358e9c273c56d11389d11fd79) )
3626 ROM_END
3627 
3628 ROM_START( ddr4ms )
3629 	SYS573_BIOS_A
3630 
3631 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3632 	ROM_LOAD( "gea33ab.u1",   0x000000, 0x000224, BAD_DUMP CRC(32fb3d13) SHA1(3ca6c77438f96b13d2c05f13a10fcff89a1403a2) )
3633 
3634 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3635 	ROM_LOAD( "gca33ab.u1",   0x000000, 0x001014, BAD_DUMP CRC(312ac13f) SHA1(05d733edc03cfc5ea03db6c683f59ed6ff860b5a) )
3636 
3637 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3638 	ROM_LOAD( "gea33ab.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3639 
3640 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3641 	ROM_LOAD( "gca33ab.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3642 
3643 	DISK_REGION( "cdrom0" )
3644 	DISK_IMAGE_READONLY( "a33aba02", 0, BAD_DUMP SHA1(cc7349cbee37bfb101480497e99f1f52acb4ffa1) )
3645 ROM_END
3646 
3647 ROM_START( ddr4msj )
3648 	SYS573_BIOS_A
3649 
3650 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3651 	ROM_LOAD( "a33jba.u1",    0x000000, 0x000224, BAD_DUMP CRC(babf6fdb) SHA1(a2ef6b855d42072f0d3c72c8de9aff1f867de3f7) )
3652 
3653 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3654 	ROM_LOAD( "gca33jb.u1",   0x000000, 0x001014, BAD_DUMP CRC(00e4b531) SHA1(f421fc33642c5a3cd89fb14dc8cd601bdddd1f55) )
3655 
3656 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3657 	ROM_LOAD( "a33jba.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3658 
3659 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3660 	ROM_LOAD( "gca33jb.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3661 
3662 	DISK_REGION( "cdrom0" )
3663 	DISK_IMAGE_READONLY( "a33jba02", 0, BAD_DUMP SHA1(9d9fb5e65f1532f358e9c273c56d11389d11fd79) )
3664 ROM_END
3665 
3666 ROM_START( ddr4mp )
3667 	SYS573_BIOS_A
3668 
3669 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3670 	ROM_LOAD( "gea34ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(10f1e9b8) SHA1(985bd26638964beebba5de4c7cda772b402d2e59) )
3671 
3672 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3673 	ROM_LOAD( "gca34ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(e9b6ce56) SHA1(f040fba2b2b446baa840026dcd10f9785f8cc0a3) )
3674 
3675 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3676 	ROM_LOAD( "gea34ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3677 
3678 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3679 	ROM_LOAD( "gca34ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3680 
3681 	ROM_REGION( 0x002000, "m48t58", 0 )
3682 	ROM_LOAD( "gca34ja.22h",  0x000000, 0x002000, CRC(80575c1f) SHA1(a0594ca0f75bc7d49b645e835e9fa48a73c3c9c7) )
3683 
3684 	DISK_REGION( "cdrom0" )
3685 	DISK_IMAGE_READONLY( "a34jaa02", 0, SHA1(c33e43192ce49845f8901c505f1c7867bc643a0b) )
3686 ROM_END
3687 
3688 ROM_START( ddr4mps )
3689 	SYS573_BIOS_A
3690 
3691 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3692 	ROM_LOAD( "gea34jb.u1",   0x000000, 0x000224, BAD_DUMP CRC(babf6fdb) SHA1(a2ef6b855d42072f0d3c72c8de9aff1f867de3f7) )
3693 
3694 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3695 	ROM_LOAD( "gca34jb.u1",   0x000000, 0x001014, BAD_DUMP CRC(0c717300) SHA1(00d21f39fe90494ffec2f8799767cc46a9cd2b00) )
3696 
3697 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3698 	ROM_LOAD( "gea34jb.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3699 
3700 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3701 	ROM_LOAD( "gca34jb.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3702 
3703 	ROM_REGION( 0x002000, "m48t58", 0 )
3704 	ROM_LOAD( "gca34jb.22h",  0x000000, 0x002000, CRC(bc6c8bd7) SHA1(10ceec5c7bc5ca9fca88f3c083a7d97012982079) )
3705 
3706 	DISK_REGION( "cdrom0" )
3707 	DISK_IMAGE_READONLY( "a34jba02", 0, BAD_DUMP SHA1(c33e43192ce49845f8901c505f1c7867bc643a0b) ) // Check if there was a separate CD created for solo cabinets.
3708 ROM_END
3709 
3710 ROM_START( ddr5m )
3711 	SYS573_BIOS_A
3712 
3713 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3714 	ROM_LOAD( "gca27ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(ec526036) SHA1(f47d94d19268fdfa3ae9d42db9f2e2f9be318f2b) )
3715 
3716 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3717 	ROM_LOAD( "gca27ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3718 
3719 	DISK_REGION( "cdrom0" )
3720 	DISK_IMAGE_READONLY( "a27jaa02", 0, SHA1(70465669dfd48abf806cb58b2410ff4f1781f5f1) )
3721 ROM_END
3722 
3723 ROM_START( ddrbocd )
3724 	SYS573_BIOS_A
3725 
3726 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3727 	ROM_LOAD( "gn895jaa.u1",  0x000000, 0x000224, BAD_DUMP CRC(363f427e) SHA1(adec886a07b9bd91f142f286b04fc6582205f037) )
3728 
3729 	DISK_REGION( "cdrom0" )
3730 	DISK_IMAGE_READONLY( "892jaa01", 0, BAD_DUMP SHA1(46ace0feef48a2a6643c3cb4ac9164ba0beeea94) )
3731 
3732 	DISK_REGION( "cdrom1" )
3733 	DISK_IMAGE_READONLY( "895jaa02", 0, BAD_DUMP SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) )
3734 ROM_END
3735 
3736 ROM_START( ddrs2k )
3737 	SYS573_BIOS_A
3738 
3739 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
3740 	ROM_LOAD( "ge905aa.u1",   0x000000, 0x000084, BAD_DUMP CRC(36d18e2f) SHA1(e976047dfbee62de9ad9e5de8e7629a24c29d581) )
3741 
3742 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3743 	ROM_LOAD( "gc905aa.u1",   0x000000, 0x000084, BAD_DUMP CRC(21073a3e) SHA1(afa12404ceb462b9016a41c40775da87aa09cfeb) )
3744 
3745 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3746 	ROM_LOAD( "ge905aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3747 
3748 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3749 	ROM_LOAD( "gc905aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3750 
3751 	DISK_REGION( "cdrom0" )
3752 	DISK_IMAGE_READONLY( "905aaa02", 0, BAD_DUMP SHA1(1fc0f3fcc7d5d23711967023ff02c1fc76479024) )
3753 ROM_END
3754 
3755 ROM_START( ddrmax )
3756 	SYS573_BIOS_A
3757 
3758 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3759 	ROM_LOAD( "gcb19ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(2255626a) SHA1(cb70c4b551265ffc6cc41f7bd2678696e8067060) )
3760 
3761 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3762 	ROM_LOAD( "gcb19ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3763 
3764 	DISK_REGION( "cdrom0" )
3765 	DISK_IMAGE_READONLY( "b19jaa02", 0, SHA1(fe8a6731a2163fe7864cd3c4457034768eb98caa) )
3766 ROM_END
3767 
3768 ROM_START( ddrmax2 )
3769 	SYS573_BIOS_A
3770 
3771 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3772 	ROM_LOAD( "gcb20ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(fb7e0f58) SHA1(e6da23257a2a2ba7c69e817a91a0a8864f009386) )
3773 
3774 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3775 	ROM_LOAD( "gcb20ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3776 
3777 	DISK_REGION( "cdrom0" )
3778 	DISK_IMAGE_READONLY( "b20jaa02", 0, SHA1(ef6579192b86cfea08debe82f54fc4aae5985c92) )
3779 ROM_END
3780 
3781 ROM_START( ddrs2kj )
3782 	SYS573_BIOS_A
3783 
3784 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
3785 	ROM_LOAD( "ge905ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(a077b0a1) SHA1(8f247b38c933a104a325ebf1f1691ef260480e1a) )
3786 
3787 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3788 	ROM_LOAD( "gc905ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(b7a104b0) SHA1(0f6901e41640f729f8a084a33148a9b900475594) )
3789 
3790 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3791 	ROM_LOAD( "ge905ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3792 
3793 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3794 	ROM_LOAD( "gc905aa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3795 
3796 	DISK_REGION( "cdrom0" )
3797 	DISK_IMAGE_READONLY( "905jaa02", 0, SHA1(a78cf628fb2ba823e1ca35cbd611938273ab82ac) )
3798 ROM_END
3799 
3800 ROM_START( ddrsbm )
3801 	SYS573_BIOS_A
3802 
3803 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
3804 	ROM_LOAD( "gq894ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(cc3a47de) SHA1(f6e2e101870370b1e295a4a9ed546aa2d8bc2010) )
3805 
3806 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3807 	ROM_LOAD( "gq894ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3808 
3809 	DISK_REGION( "cdrom0" )
3810 	DISK_IMAGE_READONLY( "894jaa02", 0, SHA1(d6872078a87ee00280a627675540676fb8b10f60) )
3811 ROM_END
3812 
3813 ROM_START( ddrusa )
3814 	SYS573_BIOS_A
3815 
3816 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3817 	ROM_LOAD( "gka44ua.u1",   0x000000, 0x001014, BAD_DUMP CRC(2ef7c4f1) SHA1(9004d27179ece86883d01b3e6bbfeebc1b478d57) )
3818 
3819 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3820 	ROM_LOAD( "gka44ua.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3821 
3822 	DISK_REGION( "cdrom0" )
3823 	DISK_IMAGE_READONLY( "a44uaa02", 0, BAD_DUMP SHA1(2cdbe1c62d16a2be65adb7e11331fce5c8e45504) )
3824 ROM_END
3825 
3826 ROM_START( drmn )
3827 	SYS573_BIOS_A
3828 
3829 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
3830 	ROM_LOAD( "gq881ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(7dca0b3f) SHA1(db6d5c527e2a99133b516e01433024d3173848c6) )
3831 
3832 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
3833 	ROM_LOAD( "gq881ja.31h",  0x000000, 0x200000, CRC(a5b86ece) SHA1(9696f0c512501574bae6e436306675894bb2352e) )
3834 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
3835 	ROM_LOAD( "gq881ja.27h",  0x000000, 0x200000, CRC(fc0b94c1) SHA1(967d374288db757d161d0e9e8e396a1176071c5f) )
3836 
3837 	ROM_REGION( 0x002000, "m48t58", 0 )
3838 	ROM_LOAD( "gq881ja.22h",  0x000000, 0x002000, CRC(e834d5ec) SHA1(1c845811e43d7dfec657da288b5a38b8bc9c8366) )
3839 
3840 	DISK_REGION( "cdrom0" )
3841 	DISK_IMAGE_READONLY( "881jad01", 0, BAD_DUMP SHA1(7d9d47bef636dbaa8d578f34ea9489e349d3d6df) ) // upgrade or bootleg?
3842 
3843 	DISK_REGION( "cdrom1" )
3844 	DISK_IMAGE_READONLY( "881jaa02", 0, NO_DUMP )
3845 ROM_END
3846 
3847 ROM_START( drmn2m )
3848 	SYS573_BIOS_A
3849 
3850 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3851 	ROM_LOAD( "ge912ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(1246fe5b) SHA1(b58d4f4c95e13abf639d645223565544bd79a58a) )
3852 
3853 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3854 	ROM_LOAD( "gn912ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(34deea99) SHA1(f179e22eaf30453bb94177ed9c25d7996f020c99) )
3855 
3856 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3857 	ROM_LOAD( "ge912ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3858 
3859 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3860 	ROM_LOAD( "gn912ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3861 
3862 	DISK_REGION( "cdrom0" )
3863 	DISK_IMAGE_READONLY( "912jab02", 0, BAD_DUMP SHA1(19dfae94b63468d3e16d3cc4a3eeae60d5dff1d7) )
3864 ROM_END
3865 
3866 ROM_START( drmn2mpu )
3867 	SYS573_BIOS_A
3868 
3869 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3870 	ROM_LOAD( "ge912ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(1246fe5b) SHA1(b58d4f4c95e13abf639d645223565544bd79a58a) )
3871 
3872 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3873 	ROM_LOAD( "gn912ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(34deea99) SHA1(f179e22eaf30453bb94177ed9c25d7996f020c99) )
3874 
3875 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3876 	ROM_LOAD( "ge912ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3877 
3878 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3879 	ROM_LOAD( "gn912ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3880 
3881 	DISK_REGION( "cdrom0" )
3882 	DISK_IMAGE_READONLY( "912jab02", 0, BAD_DUMP SHA1(19dfae94b63468d3e16d3cc4a3eeae60d5dff1d7) )
3883 
3884 	DISK_REGION( "cdrom1" )
3885 	DISK_IMAGE_READONLY( "912za01",  0, BAD_DUMP SHA1(033a310006efe164cc6a8276de42a5d555f9fea9) )
3886 ROM_END
3887 
3888 ROM_START( drmn3m )
3889 	SYS573_BIOS_A
3890 
3891 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
3892 	ROM_LOAD( "a23jaa.u1",    0x000000, 0x000224, BAD_DUMP CRC(90e544fa) SHA1(1feb617c36bad41aa720a6e5d3ec9e5cb2030567) )
3893 
3894 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3895 	ROM_LOAD( "gca23ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(5af1b5da) SHA1(cf862ef9ab60e8da89af96266943137827e4a261) )
3896 
3897 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
3898 	ROM_LOAD( "a23jaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
3899 
3900 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3901 	ROM_LOAD( "gca23ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3902 
3903 	DISK_REGION( "cdrom0" )
3904 	DISK_IMAGE_READONLY( "a23jaa02", 0, BAD_DUMP SHA1(89e365f61a4db889621d7d9d9917bcfa2c09704e) )
3905 ROM_END
3906 
3907 ROM_START( drmn4m )
3908 	SYS573_BIOS_A
3909 
3910 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3911 	ROM_LOAD( "gea25jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(356bbbf4) SHA1(a20a8fcaed2dce50451346b1683739c96067feb1) )
3912 
3913 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
3914 	ROM_LOAD( "gea25jaa.31m", 0x000000, 0x200000, CRC(a0dd0ef4) SHA1(be4c1d3f2eb3c484b515be12b692c30cc780c36c) )
3915 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
3916 	ROM_LOAD( "gea25jaa.27m", 0x000000, 0x200000, CRC(118fa45a) SHA1(6bc6129e328f6f97a27b9f524066297b29efff5a) )
3917 
3918 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3919 	ROM_LOAD( "gea25jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3920 
3921 	DISK_REGION( "cdrom0" )
3922 	DISK_IMAGE_READONLY( "a25jaa02", 0, BAD_DUMP SHA1(8a0b761d1c282d927e2daf92519654a1c91ee1ab) )
3923 
3924 	DISK_REGION( "multisession" )
3925 	DISK_IMAGE_READONLY( "a25jba02", 0, BAD_DUMP SHA1(5f4aae359da610352c1004cfa1a32064d8f55d0e) )
3926 ROM_END
3927 
3928 ROM_START( drmn5m )
3929 	SYS573_BIOS_A
3930 
3931 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3932 	ROM_LOAD( "gcb05jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(6b629d68) SHA1(d01ef0677cd72c05f5f354fc6c4d9022b3506c1e) )
3933 
3934 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3935 	ROM_LOAD( "gcb05jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3936 
3937 	DISK_REGION( "cdrom0" )
3938 	DISK_IMAGE_READONLY( "b05jaa02", 0, BAD_DUMP SHA1(7a6e7940d1441cff1d9be1bc3affc029fe6dc9e4) )
3939 
3940 	DISK_REGION( "multisession" )
3941 	DISK_IMAGE_READONLY( "b05jba02", 0, BAD_DUMP SHA1(822149db553ca78ad8174719a657dbbd2776b922) )
3942 ROM_END
3943 
3944 ROM_START( drmn6m )
3945 	SYS573_BIOS_A
3946 
3947 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3948 	ROM_LOAD( "gcb16jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(f6933041) SHA1(1839bb99d2db9413c58a2ed95e9039d2c7dd62ba) )
3949 
3950 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
3951 	ROM_LOAD( "gcb16jaa.31m",  0x000000, 0x200000, CRC(19de3e53) SHA1(bbb7a247bdd617a124330a946c2e8dd565b2a09c) )
3952 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
3953 	ROM_LOAD( "gcb16jaa.27m",  0x000000, 0x200000, CRC(5696e133) SHA1(aad39cc25ce5279adac8a10fb10158f4f4418c0a) )
3954 
3955 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3956 	ROM_LOAD( "gcb16jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3957 
3958 	DISK_REGION( "cdrom0" )
3959 	DISK_IMAGE_READONLY( "b16jaa02", 0, BAD_DUMP SHA1(fa0862a9bd3a48d4f6e7b44b11ad387acc05037e) )
3960 
3961 	DISK_REGION( "multisession" )
3962 	DISK_IMAGE_READONLY( "b16jba02", 0, BAD_DUMP SHA1(07de74a3ca384407d99c433110085208a458653e) )
3963 ROM_END
3964 
3965 ROM_START( drmn7m )
3966 	SYS573_BIOS_A
3967 
3968 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3969 	ROM_LOAD( "gcc07jba.u1",   0x000000, 0x001014, BAD_DUMP CRC(8d9bcf10) SHA1(3d486df924ba41669675d62982396aebf8d12052) )
3970 
3971 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
3972 	ROM_LOAD( "gcc07jba.31m",  0x000000, 0x200000, CRC(7120d1ce) SHA1(4df9828150120762b99c5b212bc7a91b0d525bce) )
3973 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
3974 	ROM_LOAD( "gcc07jba.27m",  0x000000, 0x200000, CRC(9393fe8e) SHA1(f60752e3e397121f3d4856a634e1c8ce5fc465b5) )
3975 
3976 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3977 	ROM_LOAD( "gcc07jba.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3978 
3979 	DISK_REGION( "cdrom0" )
3980 	DISK_IMAGE_READONLY( "c07jca02", 0, SHA1(a81a35360933ab8a7630cf5e8a8c6988714cfa0d) )
3981 
3982 	DISK_REGION( "multisession" )
3983 	DISK_IMAGE_READONLY( "c07jda02", 0, BAD_DUMP SHA1(7c22ebbda11bdaf85c3441d7a6f3497994cd957f) )
3984 ROM_END
3985 
3986 ROM_START( drmn7ma )
3987 	SYS573_BIOS_A
3988 
3989 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
3990 	ROM_LOAD( "gcc07jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(b675b39b) SHA1(9639db913821641cee619d7cc520de5d0c3ae7fa) )
3991 
3992 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
3993 	ROM_LOAD( "gcc07jaa.31m",  0x000000, 0x200000, CRC(1e1cbfe3) SHA1(6c942820f915ea0e01f0e736d70780ad8408aa69) )
3994 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
3995 	ROM_LOAD( "gcc07jaa.27m",  0x000000, 0x200000, CRC(49d27b57) SHA1(e62737fe8665d837c2cebd1dcf4577a021d8cdb1) )
3996 
3997 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
3998 	ROM_LOAD( "gcc07jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
3999 
4000 	DISK_REGION( "cdrom0" )
4001 	DISK_IMAGE_READONLY( "c07jaa02", 0, BAD_DUMP SHA1(96c410745d1fd14059bf11987655ed998a9b79dd) )
4002 
4003 	DISK_REGION( "multisession" )
4004 	DISK_IMAGE_READONLY( "c07jba02", 0, BAD_DUMP SHA1(25e1a3ff7886c409d16e40ca1798b01b11546755) )
4005 ROM_END
4006 
4007 ROM_START( drmn8m )
4008 	SYS573_BIOS_A
4009 
4010 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4011 	ROM_LOAD( "gcc38jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(aaa03630) SHA1(4976b0c2e1b4458840a165bd889861d62289ad89) )
4012 
4013 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4014 	ROM_LOAD( "gcc38jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4015 
4016 	DISK_REGION( "cdrom0" )
4017 	DISK_IMAGE_READONLY( "c38jaa02", 0, SHA1(9115252e6cc13ff90e73cd1a864e0d99e3c8b5ea) )
4018 
4019 	DISK_REGION( "multisession" )
4020 	DISK_IMAGE_READONLY( "c38jba02", 0, SHA1(2a31335277929b2231b12ad950ab69e35b37d973) )
4021 ROM_END
4022 
4023 ROM_START( drmn9m )
4024 	SYS573_BIOS_A
4025 
4026 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4027 	ROM_LOAD( "gcd09jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(a1201529) SHA1(4a82f2ee9b049a16c00b7dcd905c43c1a06d60ee) )
4028 
4029 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4030 	ROM_LOAD( "gcd09jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4031 
4032 	DISK_REGION( "cdrom0" )
4033 	DISK_IMAGE_READONLY( "d09jaa02", 0, BAD_DUMP SHA1(33f3e48ed5a8becd8c4714413e454328d8d5baae) )
4034 
4035 	DISK_REGION( "multisession" )
4036 	DISK_IMAGE_READONLY( "d09jba02", 0, NO_DUMP )
4037 ROM_END
4038 
4039 ROM_START( drmn10m )
4040 	SYS573_BIOS_A
4041 
4042 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4043 	ROM_LOAD( "gcd40jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(ef0983a7) SHA1(06127b9fd786eca64eea50c40f7f73717b631e59) )
4044 
4045 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4046 	ROM_LOAD( "gcd40jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4047 
4048 	DISK_REGION( "cdrom0" )
4049 	DISK_IMAGE_READONLY( "d40jaa02", 0, BAD_DUMP SHA1(68b2038f0cd2d461f608945d1e243f2b6979efaa) )
4050 
4051 	DISK_REGION( "multisession" )
4052 	DISK_IMAGE_READONLY( "d40jba02", 0, BAD_DUMP SHA1(0ded9e0a6c77b181e7b6beb1dbdfa17dee4acd90) )
4053 ROM_END
4054 
4055 ROM_START( dmx )
4056 	SYS573_BIOS_A
4057 
4058 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4059 	ROM_LOAD( "ge874ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(c5536373) SHA1(1492221f7dd9485f7745ecb0a982a88c8e768e53) )
4060 
4061 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4062 	ROM_LOAD( "ge874ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4063 
4064 	DISK_REGION( "cdrom0" )
4065 	DISK_IMAGE_READONLY( "874jaa", 0, BAD_DUMP SHA1(3338a784efdca4f8bdcc83d2c9a6bbe7f7046d5c) )
4066 ROM_END
4067 
4068 ROM_START( dmx2m )
4069 	SYS573_BIOS_A
4070 
4071 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4072 	ROM_LOAD( "gca39ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(ecc75eb7) SHA1(af66ced28ba5e79ae32ae0ef12d2ebe4207f3822) )
4073 
4074 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4075 	ROM_LOAD( "gca39ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4076 
4077 	DISK_REGION( "cdrom0" )
4078 	DISK_IMAGE_READONLY( "a39jaa02", 0, BAD_DUMP SHA1(3d021448df857c12f6d46a20e14ae0fc6d342dcc) )
4079 ROM_END
4080 
4081 ROM_START( dmx2majp )
4082 	SYS573_BIOS_A
4083 
4084 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4085 	ROM_LOAD( "gca38ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(99a746b8) SHA1(333236e59a707ecaf840a66f9b947ceade2cf2c9) )
4086 
4087 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4088 	ROM_LOAD( "gca38ja.31m",  0x000000, 0x200000, CRC(a0f54ab5) SHA1(a5ae67d7619393779c79a2e227cac0675eeef538) )
4089 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4090 	ROM_LOAD( "gca38ja.27m",  0x000000, 0x200000, CRC(6c3934b8) SHA1(f0e4a692b6caaf60fefaec87fd23da577439f69d) )
4091 
4092 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4093 	ROM_LOAD( "gca38ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4094 
4095 	DISK_REGION( "cdrom0" )
4096 	DISK_IMAGE_READONLY( "a38jaa02", 0, SHA1(27fbecefb634ce282ca3bf09500c0c9e8155a7ef) )
4097 ROM_END
4098 
4099 ROM_START( dncfrks )
4100 	SYS573_BIOS_A
4101 
4102 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4103 	ROM_LOAD( "gk874ka.u1",   0x000000, 0x001014, BAD_DUMP CRC(7a6f4672) SHA1(2e009e57760e92f48070a69cff5597c37a4783a2) )
4104 
4105 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4106 	ROM_LOAD( "gk874ka.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4107 
4108 	DISK_REGION( "cdrom0" )
4109 	DISK_IMAGE_READONLY( "874kaa", 0, BAD_DUMP SHA1(4d1e843417ea96635eeba0cef944e83fdb72565c) )
4110 ROM_END
4111 
4112 ROM_START( dsem )
4113 	SYS573_BIOS_A
4114 
4115 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4116 	ROM_LOAD( "ge936ea.u1",   0x000000, 0x000224, BAD_DUMP CRC(0f5b7ae3) SHA1(646dd49da1216cc2d3d6920bc9b3447d55ebfbf0) )
4117 
4118 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4119 	ROM_LOAD( "ge936ea.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4120 
4121 	DISK_REGION( "cdrom0" )
4122 	DISK_IMAGE_READONLY( "936eaa", 0, BAD_DUMP SHA1(7cacc15ae065d47af31f1008374ec8241dba0d55) )
4123 ROM_END
4124 
4125 ROM_START( dsem2 )
4126 	SYS573_BIOS_A
4127 	ROM_DEFAULT_BIOS("dsem2")
4128 
4129 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4130 	ROM_LOAD( "gkc23ea.u1",   0x000000, 0x001014, BAD_DUMP CRC(aec2421a) SHA1(5ea9e9ce6161ebc99a50db0b7304385511bd4553) )
4131 
4132 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4133 	ROM_LOAD( "gkc23ea.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4134 
4135 	DISK_REGION( "cdrom0" )
4136 	DISK_IMAGE_READONLY( "c23eaa02", 0, BAD_DUMP SHA1(46868c97530db5be1b43ffa32744e3e12495c243) )
4137 ROM_END
4138 
4139 ROM_START( dsfdct )
4140 	SYS573_BIOS_A
4141 
4142 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
4143 	ROM_LOAD( "ge887ja_gn887ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(08a60147) SHA1(0d39dca5e9e17fff0e64f296c8416e4ca23fdc1b) )
4144 
4145 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4146 	ROM_LOAD( "gc910jc.u1",   0x000000, 0x000084, BAD_DUMP CRC(3c1ca973) SHA1(32211a72e3ac88b2723f82dac0b26f93031b3a9c) )
4147 
4148 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
4149 	ROM_LOAD( "ge887ja_gn887ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4150 
4151 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4152 	ROM_LOAD( "gc910jc.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4153 
4154 	DISK_REGION( "cdrom0" )
4155 	DISK_IMAGE_READONLY( "910jca02", 0, BAD_DUMP SHA1(0c868f3c9f696d291e8f27687e3ad83e453a4894) )
4156 ROM_END
4157 
4158 ROM_START( dsfdcta )
4159 	SYS573_BIOS_A
4160 
4161 	ROM_REGION( 0x0000084, "cassette:install:eeprom", 0 )
4162 	ROM_LOAD( "gn884ja.u1",  0x000000, 0x000084, BAD_DUMP CRC(ce6b98ce) SHA1(75549d9470345ce06d2706d373b19416d97e5b9a) )
4163 
4164 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4165 	ROM_LOAD( "gc910ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(59a23808) SHA1(fcff1c68ff6cfbd391ac997a40fb5253fc62de82) )
4166 
4167 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
4168 	ROM_LOAD( "gn884ja.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4169 
4170 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4171 	ROM_LOAD( "gc910ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4172 
4173 	DISK_REGION( "cdrom0" )
4174 	DISK_IMAGE_READONLY( "910jaa02", 0, BAD_DUMP SHA1(70851c383e3876c4a697a99706fbaae2dafcb0e0) )
4175 ROM_END
4176 
4177 ROM_START( dsfdr )
4178 	SYS573_BIOS_A
4179 
4180 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
4181 	ROM_LOAD( "gea37ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(5321055e) SHA1(d06b0dca9caba8249d71340469ad9083b02fd087) )
4182 
4183 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4184 	ROM_LOAD( "gca37ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(b6d9e7f9) SHA1(bc5f491de53a96d46745df09bc94e7853052296c) )
4185 
4186 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
4187 	ROM_LOAD( "gea37ja.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
4188 
4189 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4190 	ROM_LOAD( "gca37ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4191 
4192 	DISK_REGION( "cdrom0" )
4193 	DISK_IMAGE_READONLY( "a37jaa02", 0, BAD_DUMP SHA1(c6a23b910e884aa0d4afc388dbc8379e0d09611a) )
4194 ROM_END
4195 
4196 ROM_START( dsftkd )
4197 	SYS573_BIOS_A
4198 
4199 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4200 	ROM_LOAD( "gn884ja.u1",  0x000000, 0x000084, BAD_DUMP CRC(ce6b98ce) SHA1(75549d9470345ce06d2706d373b19416d97e5b9a) )
4201 
4202 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4203 	ROM_LOAD( "gn884ja.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4204 
4205 	DISK_REGION( "cdrom0" )
4206 	DISK_IMAGE_READONLY( "884jaa02", 0, BAD_DUMP SHA1(80f02fcb7ea5b6394a2a58f12b73d87a1826d7f4) )
4207 ROM_END
4208 
4209 ROM_START( dstage )
4210 	SYS573_BIOS_A
4211 
4212 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4213 	ROM_LOAD( "gn845eb.u1",  0x000000, 0x000084, BAD_DUMP CRC(82b52af5) SHA1(3fb9efe76439fa17a9a759aaebc3dc066b432947) )
4214 
4215 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4216 	ROM_LOAD( "gn884eb.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4217 
4218 	DISK_REGION( "cdrom0" )
4219 	DISK_IMAGE_READONLY( "gc845eba", 0, BAD_DUMP SHA1(0b7b100ceb37ac30cc1d309e5fe11fde5e1192d0) )
4220 ROM_END
4221 
4222 ROM_START( dstagea )
4223 	SYS573_BIOS_A
4224 
4225 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4226 	ROM_LOAD( "gn845ea.u1",   0x000000, 0x000224, BAD_DUMP CRC(db643af7) SHA1(881221da640b883302e657b906ea0a4e74555679) )
4227 
4228 	DISK_REGION( "cdrom0" )
4229 	DISK_IMAGE_READONLY( "845uaa02", 0, BAD_DUMP SHA1(d3f9290d4dadb5e9b82ebe77abf7b99d1a89f716) )
4230 ROM_END
4231 
4232 ROM_START( fbait2bc )
4233 	SYS573_BIOS_A
4234 
4235 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4236 	ROM_LOAD( "gc865ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(ea8f0b4b) SHA1(363b1ea1a520b239ba8bca867366bbe8a9977a43) )
4237 
4238 	DISK_REGION( "cdrom0" )
4239 	DISK_IMAGE_READONLY( "865uab02", 0, BAD_DUMP SHA1(d14dc066d4c16fba1e9b31d5f042ad249c4b5137) )
4240 ROM_END
4241 
4242 ROM_START( fbaitbc )
4243 	SYS573_BIOS_A
4244 
4245 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4246 	ROM_LOAD( "ge765ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(588748c6) SHA1(ea1ead61e0dcb324ef7b6106cae00bcf6702d6c4) )
4247 
4248 	DISK_REGION( "cdrom0" )
4249 	DISK_IMAGE_READONLY( "765uab02", 0, BAD_DUMP SHA1(07b09e763e4b90108aa924b518221b16667a7133) )
4250 ROM_END
4251 
4252 ROM_START( fbaitmc )
4253 	SYS573_BIOS_A
4254 
4255 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4256 	ROM_LOAD( "gx889ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(753ad84e) SHA1(e024cefaaee7c9945ccc1f9a3d896b8560adce2e) )
4257 
4258 	DISK_REGION( "cdrom0" )
4259 	DISK_IMAGE_READONLY( "889ea", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) )
4260 ROM_END
4261 
4262 ROM_START( fbaitmca )
4263 	SYS573_BIOS_A
4264 
4265 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4266 	ROM_LOAD( "gx889aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(9c22aae8) SHA1(c107b0bf7fa76708f2d4f6aaf2cf27b3858378a3) )
4267 
4268 	DISK_REGION( "cdrom0" )
4269 	DISK_IMAGE_READONLY( "889aa", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) )
4270 ROM_END
4271 
4272 ROM_START( fbaitmcj )
4273 	SYS573_BIOS_A
4274 
4275 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4276 	ROM_LOAD( "gx889ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(6278603c) SHA1(d6b59e270cfe4016e12565aedec8a4f0702e1a6f) )
4277 
4278 	DISK_REGION( "cdrom0" )
4279 	DISK_IMAGE_READONLY( "889ja", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) )
4280 ROM_END
4281 
4282 ROM_START( fbaitmcu )
4283 	SYS573_BIOS_A
4284 
4285 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4286 	ROM_LOAD( "gx889ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(67b91e54) SHA1(4d94bfab08e2bf6e34ee606dd3c4e345d8e5d158) )
4287 
4288 	DISK_REGION( "cdrom0" )
4289 	DISK_IMAGE_READONLY( "889ua", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) )
4290 ROM_END
4291 
4292 ROM_START( fghtmn )
4293 	SYS573_BIOS_A
4294 
4295 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4296 	ROM_LOAD( "gq918eaa.u1",  0x000000, 0x000224, CRC(f3342ff5) SHA1(d3d6ecc22396f74b99ad7aab7908cd542c518977) )
4297 
4298 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4299 	ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) )
4300 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4301 	ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) )
4302 
4303 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4304 	ROM_LOAD( "gq918eaa.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4305 
4306 	DISK_REGION( "cdrom0" )
4307 	DISK_IMAGE_READONLY( "918xxb02", 0, BAD_DUMP SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) )
4308 ROM_END
4309 
4310 ROM_START( fghtmna )
4311 	SYS573_BIOS_A
4312 
4313 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4314 	ROM_LOAD( "gq918aaa.u1",  0x000000, 0x000224, CRC(1a2c5d53) SHA1(ab7e44a83e8cd271e2bf8580881a3050d35641df) )
4315 
4316 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4317 	ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) )
4318 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4319 	ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) )
4320 
4321 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4322 	ROM_LOAD( "gq918aaa.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4323 
4324 	DISK_REGION( "cdrom0" )
4325 	DISK_IMAGE_READONLY( "918xxb02", 0, BAD_DUMP SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) )
4326 ROM_END
4327 
4328 ROM_START( fghtmnk )
4329 	SYS573_BIOS_A
4330 
4331 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4332 	ROM_LOAD( "gq918kaa.u1",  0x000000, 0x000224, CRC(cf32990b) SHA1(bf49b8560f008696b45a3f7f03fa7b3395635b0f) )
4333 
4334 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4335 	ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) )
4336 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4337 	ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) )
4338 
4339 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4340 	ROM_LOAD( "gq918kaa.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4341 
4342 	DISK_REGION( "cdrom0" )
4343 	DISK_IMAGE_READONLY( "918xxb02", 0, BAD_DUMP SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) )
4344 ROM_END
4345 
4346 ROM_START( fghtmnu )
4347 	SYS573_BIOS_A
4348 
4349 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4350 	ROM_LOAD( "gq918uaa.u1",  0x000000, 0x000224, CRC(e1b7e9ef) SHA1(5767f47cb9a689601fb92c6a494563c5ffdde04c) )
4351 
4352 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4353 	ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) )
4354 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4355 	ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) )
4356 
4357 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4358 	ROM_LOAD( "gq918uaa.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4359 
4360 	DISK_REGION( "cdrom0" )
4361 	DISK_IMAGE_READONLY( "918xxb02", 0, BAD_DUMP SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) )
4362 ROM_END
4363 
4364 ROM_START( gbbchmp )
4365 	SYS573_BIOS_A
4366 
4367 	ROM_REGION( 0x200000, "pccard1:32mb:1l", 0 )
4368 	ROM_LOAD( "cb48jab02.1l", 0x100000, 0x100000, BAD_DUMP CRC(c461f9d8) SHA1(739adaafc121a2978802e0a2e1551954e34e60c6) )
4369 	ROM_CONTINUE( 0x000000, 0x100000 )
4370 
4371 	ROM_REGION( 0x200000, "pccard1:32mb:1u", 0 )
4372 	ROM_LOAD( "cb48jab02.1u", 0x100000, 0x100000, BAD_DUMP CRC(a909447e) SHA1(03ddd1a34bd51a11a4a838b75a8885b6acb4daff) )
4373 	ROM_CONTINUE( 0x000000, 0x100000 )
4374 
4375 	ROM_REGION( 0x200000, "pccard1:32mb:2l", 0 )
4376 	ROM_LOAD( "cb48jab02.2l", 0x100000, 0x100000, BAD_DUMP CRC(c67b8134) SHA1(632a02f5c35906f6f4512a68caf98a70dc4d0d98) )
4377 	ROM_CONTINUE( 0x000000, 0x100000 )
4378 
4379 	ROM_REGION( 0x200000, "pccard1:32mb:2u", 0 )
4380 	ROM_LOAD( "cb48jab02.2u", 0x100000, 0x100000, BAD_DUMP CRC(e3f5a88b) SHA1(d9103810e5c9d64d73525c5c2176a5e6c5fd4be4) )
4381 	ROM_CONTINUE( 0x000000, 0x100000 )
4382 
4383 	ROM_REGION( 0x200000, "pccard1:32mb:3l", 0 )
4384 	ROM_LOAD( "cb48jab02.3l", 0x100000, 0x100000, BAD_DUMP CRC(d8a58e21) SHA1(5a58a6759aa4bca7e35033cc411a2058e2f2e31f) )
4385 	ROM_CONTINUE( 0x000000, 0x100000 )
4386 
4387 	ROM_REGION( 0x200000, "pccard1:32mb:3u", 0 )
4388 	ROM_LOAD( "cb48jab02.3u", 0x100000, 0x100000, BAD_DUMP CRC(6a26bcc0) SHA1(92bedd98a28ebb04e2e3c1a9f16f6d4c7a5be29e) )
4389 	ROM_CONTINUE( 0x000000, 0x100000 )
4390 
4391 	ROM_REGION( 0x200000, "pccard1:32mb:4l", 0 )
4392 	ROM_LOAD( "cb48jab02.4l", 0x100000, 0x100000, BAD_DUMP CRC(d61d6e20) SHA1(121360976d515a2539f1b1d508591b70dd375095) )
4393 	ROM_CONTINUE( 0x000000, 0x100000 )
4394 
4395 	ROM_REGION( 0x200000, "pccard1:32mb:4u", 0 )
4396 	ROM_LOAD( "cb48jab02.4u", 0x100000, 0x100000, BAD_DUMP CRC(d0babf51) SHA1(929f2e940c9639c9fcf7bb6a7ba5e15c43a343b4) )
4397 	ROM_CONTINUE( 0x000000, 0x100000 )
4398 
4399 	ROM_REGION( 0x200000, "pccard1:32mb:5l", 0 )
4400 	ROM_LOAD( "cb48jab02.5l", 0x100000, 0x100000, BAD_DUMP CRC(5848bdd0) SHA1(14ea255adc644fa49ca6967ba36087e6ac9046dc) )
4401 	ROM_CONTINUE( 0x000000, 0x100000 )
4402 
4403 	ROM_REGION( 0x200000, "pccard1:32mb:5u", 0 )
4404 	ROM_LOAD( "cb48jab02.5u", 0x100000, 0x100000, BAD_DUMP CRC(e18e2e43) SHA1(8a460d86fcc0713b46bf2786aa3bb40faa8a2f23) )
4405 	ROM_CONTINUE( 0x000000, 0x100000 )
4406 
4407 	ROM_REGION( 0x200000, "pccard1:32mb:6l", 0 )
4408 	ROM_LOAD( "cb48jab02.6l", 0x100000, 0x100000, BAD_DUMP CRC(8b6da035) SHA1(1993d8f9c68dc5fea19f3d9a9348c6ab55cda9cf) )
4409 	ROM_CONTINUE( 0x000000, 0x100000 )
4410 
4411 	ROM_REGION( 0x200000, "pccard1:32mb:6u", 0 )
4412 	ROM_LOAD( "cb48jab02.6u", 0x100000, 0x100000, BAD_DUMP CRC(84968845) SHA1(64f66fa377388305047dccb2f9c6ab1881788da6) )
4413 	ROM_CONTINUE( 0x000000, 0x100000 )
4414 
4415 	ROM_REGION( 0x200000, "pccard1:32mb:7l", 0 )
4416 	ROM_LOAD( "cb48jab02.7l", 0x100000, 0x100000, BAD_DUMP CRC(a36fc186) SHA1(5bb93bbb41729b64bcb32cf5b6d572d71fcd4437) )
4417 	ROM_CONTINUE( 0x000000, 0x100000 )
4418 
4419 	ROM_REGION( 0x200000, "pccard1:32mb:7u", 0 )
4420 	ROM_LOAD( "cb48jab02.7u", 0x100000, 0x100000, BAD_DUMP CRC(dd6b3c8c) SHA1(1350f4d8287105f18e108f2687f51371e20396cd) )
4421 	ROM_CONTINUE( 0x000000, 0x100000 )
4422 
4423 	ROM_REGION( 0x200000, "pccard1:32mb:8l", 0 )
4424 	ROM_LOAD( "cb48jab02.8l", 0x100000, 0x100000, BAD_DUMP CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) )
4425 	ROM_CONTINUE( 0x000000, 0x100000 )
4426 
4427 	ROM_REGION( 0x200000, "pccard1:32mb:8u", 0 )
4428 	ROM_LOAD( "cb48jab02.8u", 0x100000, 0x100000, BAD_DUMP CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) )
4429 	ROM_CONTINUE( 0x000000, 0x100000 )
4430 
4431 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4432 	ROM_LOAD( "gcb48ja.u1",   0x000000, 0x000084, BAD_DUMP CRC(500b8b5b) SHA1(82dc5ace95b37034b9527dd3f74e2bd289dd6838) )
4433 
4434 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4435 	ROM_LOAD( "gcb48ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4436 ROM_END
4437 
4438 ROM_START( gchgchmp )
4439 	SYS573_BIOS_A
4440 	ROM_DEFAULT_BIOS("gchgchmp")
4441 
4442 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4443 	ROM_LOAD( "710ja.31m",    0x000000, 0x200000, CRC(f5f71b1d) SHA1(7d518e5333f44e6ec921a1e882df970953814b6e) )
4444 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4445 	ROM_LOAD( "710ja.27m",    0x000000, 0x200000, CRC(b3d8c037) SHA1(678b88c37111d1fde8996c7d71b66ec1c4f161fe) )
4446 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
4447 	ROM_LOAD( "710ja.31l",    0x000000, 0x200000, CRC(78e8556c) SHA1(9f6bb651ddeb042ebf1ba057d4932494149f47d6) )
4448 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
4449 	ROM_LOAD( "710ja.27l",    0x000000, 0x200000, CRC(f6a87155) SHA1(269bfdf05ee4ab2e4b87b6e92045e56d0557a576) )
4450 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
4451 	ROM_LOAD( "710ja.31j",    0x000000, 0x200000, CRC(bdc05d16) SHA1(ee397950f7e7e910fdc05737f99604e43d288719) )
4452 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
4453 	ROM_LOAD( "710ja.27j",    0x000000, 0x200000, CRC(ad925ed3) SHA1(e3222308961851cccee2de9da804f74854907451) )
4454 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
4455 	ROM_LOAD( "710ja.31h",    0x000000, 0x200000, CRC(a0293108) SHA1(2e5651a4c1b8e021cc3060db138c9fe7c28caa3b) )
4456 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
4457 	ROM_LOAD( "710ja.27h",    0x000000, 0x200000, CRC(aed26efe) SHA1(20b6fccd0bc5495d8258b976f72d330d6315c6f6) )
4458 
4459 	ROM_REGION( 0x200000, "pccard1:16mb:1l", 0 )
4460 	ROM_LOAD( "ge877ja.1l",   0x100000, 0x100000, CRC(06b95144) SHA1(870fc99ba6c6b0c314ddc270b8ba0f44412978bd) )
4461 	ROM_CONTINUE( 0x000000, 0x100000 )
4462 
4463 	ROM_REGION( 0x200000, "pccard1:16mb:1u", 0 )
4464 	ROM_LOAD( "ge877ja.1u",   0x100000, 0x100000, CRC(2a3b639f) SHA1(c810a16a36c5e3f5a67a760d488d22108b8a35f7) )
4465 	ROM_CONTINUE( 0x000000, 0x100000 )
4466 
4467 	ROM_REGION( 0x200000, "pccard1:16mb:2l", 0 )
4468 	ROM_LOAD( "ge877ja.2l",   0x100000, 0x100000, CRC(e2b273ac) SHA1(73eda00d9a32e252e66ad166d35c5bc8a1a1bf97) )
4469 	ROM_CONTINUE( 0x000000, 0x100000 )
4470 
4471 	ROM_REGION( 0x200000, "pccard1:16mb:2u", 0 )
4472 	ROM_LOAD( "ge877ja.2u",   0x100000, 0x100000, CRC(247a6c18) SHA1(145a8bbf35f71ebf5c9232ad1a860ee4c10083c1) )
4473 	ROM_CONTINUE( 0x000000, 0x100000 )
4474 
4475 	ROM_REGION( 0x200000, "pccard1:16mb:3l", 0 )
4476 	ROM_LOAD( "ge877ja.3l",   0x100000, 0x100000, CRC(174a4551) SHA1(32c24c99824719cd3057281ac1114e624c16df81) )
4477 	ROM_CONTINUE( 0x000000, 0x100000 )
4478 
4479 	ROM_REGION( 0x200000, "pccard1:16mb:3u", 0 )
4480 	ROM_LOAD( "ge877ja.3u",   0x100000, 0x100000, CRC(45398c5f) SHA1(ec5f7e83dbd86807fb78e852e31c6f5db187204a) )
4481 	ROM_CONTINUE( 0x000000, 0x100000 )
4482 
4483 	ROM_REGION( 0x200000, "pccard1:16mb:4l", 0 )
4484 	ROM_LOAD( "ge877ja.4l",   0x100000, 0x100000, CRC(351cbbd6) SHA1(eccb5dc03dc668b0690a6209d57b37fb5cdc200a) )
4485 	ROM_CONTINUE( 0x000000, 0x100000 )
4486 
4487 	ROM_REGION( 0x200000, "pccard1:16mb:4u", 0 )
4488 	ROM_LOAD( "ge877ja.4u",   0x100000, 0x100000, CRC(7b28d962) SHA1(27a46e41dc53cb85f83ec4558bc1f88504d725eb) )
4489 	ROM_CONTINUE( 0x000000, 0x100000 )
4490 
4491 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4492 	ROM_LOAD( "ge877jaa.u1",  0x000000, 0x000224, CRC(06d0e427) SHA1(cf61c421c0ea236b492d49a00b4608062bbe9063) )
4493 ROM_END
4494 
4495 ROM_START( gtrfrks )
4496 	SYS573_BIOS_A
4497 
4498 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4499 	ROM_LOAD( "gq886eac.u1",  0x000000, 0x000224, BAD_DUMP CRC(06bd6c4f) SHA1(61930e467ad135e2f31393ff5af981ed52f3bef9) )
4500 
4501 	DISK_REGION( "cdrom0" )
4502 	DISK_IMAGE_READONLY( "886__c02", 0, BAD_DUMP SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) )
4503 ROM_END
4504 
4505 ROM_START( gtrfrksu )
4506 	SYS573_BIOS_A
4507 
4508 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4509 	ROM_LOAD( "gq886uac.u1",  0x000000, 0x000224, BAD_DUMP CRC(143eaa55) SHA1(51a4fa3693f1cb1646a8986003f9b6cc1ae8b630) )
4510 
4511 	DISK_REGION( "cdrom0" )
4512 	DISK_IMAGE_READONLY( "886__c02", 0, BAD_DUMP SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) )
4513 ROM_END
4514 
4515 ROM_START( gtrfrksj )
4516 	SYS573_BIOS_A
4517 
4518 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4519 	ROM_LOAD( "gq886jac.u1",  0x000000, 0x000224, BAD_DUMP CRC(11ffd43d) SHA1(27f4f4d782604379254fb98c3c57e547aa4b321f) )
4520 
4521 	DISK_REGION( "cdrom0" )
4522 	DISK_IMAGE_READONLY( "886__c02", 0, BAD_DUMP SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) )
4523 ROM_END
4524 
4525 ROM_START( gtrfrksa )
4526 	SYS573_BIOS_A
4527 
4528 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4529 	ROM_LOAD( "gq886aac.u1",  0x000000, 0x000224, BAD_DUMP CRC(efa51ee9) SHA1(3374d936de69c287e0161bc526546441c2943555) )
4530 
4531 	DISK_REGION( "cdrom0" )
4532 	DISK_IMAGE_READONLY( "886__c02", 0, BAD_DUMP SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) )
4533 ROM_END
4534 
4535 ROM_START( gtrfrk2m )
4536 	SYS573_BIOS_A
4537 
4538 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4539 	ROM_LOAD( "gq883jad.u1",  0x000000, 0x000084, BAD_DUMP CRC(687868c4) SHA1(1230e74e4cf17953febe501df56d8bbec1de9356) )
4540 
4541 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4542 	ROM_LOAD( "gq883jad.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4543 
4544 	DISK_REGION( "cdrom0" )
4545 	DISK_IMAGE_READONLY( "929jbb02", 0, BAD_DUMP SHA1(4f6bb0150ad6ed574dd7583ccd60604028663b2a) )
4546 ROM_END
4547 
4548 ROM_START( gtrfrk3m )
4549 	SYS573_BIOS_A
4550 
4551 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
4552 	ROM_LOAD( "949jaa.u1",    0x000000, 0x000224, BAD_DUMP CRC(96c21d71) SHA1(871f1f0429154a486e547e182534db1557008dd6) )
4553 
4554 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4555 	ROM_LOAD( "ge949jab.u1",  0x000000, 0x001014, BAD_DUMP CRC(8645e17f) SHA1(e8a833384cb6bdb05870fcd44e7c8ed48a03c852) )
4556 
4557 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
4558 	ROM_LOAD( "949jaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
4559 
4560 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4561 	ROM_LOAD( "ge949jab.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4562 
4563 	DISK_REGION( "cdrom0" )
4564 	DISK_IMAGE_READONLY( "949jac01", 0, BAD_DUMP SHA1(ff017dd5c0ecbdb8935d0d4656a45e9fab10ef82) )
4565 
4566 	DISK_REGION( "cdrom1" )
4567 	DISK_IMAGE_READONLY( "949jab02", 0, BAD_DUMP SHA1(ad629c9bafbdc4bf6c679918a5fae2bcfdb39332) )
4568 ROM_END
4569 
4570 ROM_START( gtfrk3ma )
4571 	SYS573_BIOS_A
4572 
4573 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
4574 	ROM_LOAD( "949jaa.u1",    0x000000, 0x000224, BAD_DUMP CRC(96c21d71) SHA1(871f1f0429154a486e547e182534db1557008dd6) )
4575 
4576 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4577 	ROM_LOAD( "ge949jab.u1",  0x000000, 0x001014, BAD_DUMP CRC(8645e17f) SHA1(e8a833384cb6bdb05870fcd44e7c8ed48a03c852) )
4578 
4579 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
4580 	ROM_LOAD( "949jaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
4581 
4582 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4583 	ROM_LOAD( "ge949jab.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4584 
4585 	DISK_REGION( "cdrom0" )
4586 	DISK_IMAGE_READONLY( "949jab02", 0, BAD_DUMP SHA1(ad629c9bafbdc4bf6c679918a5fae2bcfdb39332) )
4587 ROM_END
4588 
4589 ROM_START( gtfrk3mb )
4590 	SYS573_BIOS_A
4591 
4592 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4593 	ROM_LOAD( "ge949jaa.u1",  0x000000, 0x001014, BAD_DUMP CRC(61f35ee1) SHA1(0a2b66742364d76ec18647b2761590bd49229625) )
4594 
4595 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4596 	ROM_LOAD( "ge949jaa.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4597 
4598 	DISK_REGION( "cdrom0" )
4599 	DISK_IMAGE_READONLY( "949jaz02", 0, BAD_DUMP SHA1(b0c786ba420a34fcbd16bc36a137f6ae87b7dfa8) )
4600 ROM_END
4601 
4602 ROM_START( gtrfrk4m )
4603 	SYS573_BIOS_A
4604 
4605 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
4606 	ROM_LOAD( "a24jaa.u1",    0x000000, 0x000224, BAD_DUMP CRC(29e326fe) SHA1(41a600105b08accc9d7ebd2b8ae08c0863758aa0) )
4607 
4608 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4609 	ROM_LOAD( "gea24ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(d1fccf11) SHA1(6dcd79f3171d6e4bd7e1149901638f8ea58ff623) )
4610 
4611 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
4612 	ROM_LOAD( "a24jaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
4613 
4614 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4615 	ROM_LOAD( "gea24ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4616 
4617 	DISK_REGION( "cdrom0" )
4618 	DISK_IMAGE_READONLY( "a24jaa02", 0, BAD_DUMP SHA1(bc0303f5a6a19484cd35890cc9934ee0bcabb2ad) )
4619 ROM_END
4620 
4621 ROM_START( gtrfrk5m )
4622 	SYS573_BIOS_A
4623 
4624 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4625 	ROM_LOAD( "gea26jaa.u1",  0x000000, 0x001014, BAD_DUMP CRC(c2725fca) SHA1(b70a3266c61af5cbe0478a6f3dd850ebcab980dc) )
4626 
4627 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4628 	ROM_LOAD( "gea26jaa.31m", 0x000000, 0x200000, CRC(1a25e660) SHA1(dbd8fad0bac307723c70d00763cadf4261a7ed73) )
4629 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4630 	ROM_LOAD( "gea26jaa.27m", 0x000000, 0x200000, CRC(345dc5f2) SHA1(61af3fcfe6119c1e8e18b92693855ab4fe708b30) )
4631 
4632 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4633 	ROM_LOAD( "gea26jaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4634 
4635 	DISK_REGION( "cdrom0" )
4636 	DISK_IMAGE_READONLY( "a26jaa02", 0, BAD_DUMP SHA1(9909e08abff780db6fd7a5fbcc57ffbe14ae08ce) )
4637 ROM_END
4638 
4639 ROM_START( gtrfrk6m )
4640 	SYS573_BIOS_A
4641 
4642 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4643 	ROM_LOAD( "gcb06ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(673c98ab) SHA1(b1d889bf4fc5e425056acb6b72b2c563966fb7d7) )
4644 
4645 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4646 	ROM_LOAD( "gcb06ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4647 
4648 	DISK_REGION( "cdrom0" )
4649 	DISK_IMAGE_READONLY( "b06jaa02", 0, BAD_DUMP SHA1(2ea53ef492da63183a28c54afde07fce323fe42e) )
4650 ROM_END
4651 
4652 ROM_START( gtrfrk7m )
4653 	SYS573_BIOS_A
4654 
4655 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4656 	ROM_LOAD( "gcb17jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(5a338c31) SHA1(0fd9ee306335858dd6bef680a62557a8bf055cc3) )
4657 
4658 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4659 	ROM_LOAD( "gcb17jaa.31m", 0x000000, 0x200000, CRC(1e1cbfe3) SHA1(6c942820f915ea0e01f0e736d70780ad8408aa69) )
4660 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4661 	ROM_LOAD( "gcb17jaa.27m", 0x000000, 0x200000, CRC(7e7da9a9) SHA1(1882418779a48b5aefd113895756116379a6a4f7) )
4662 
4663 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4664 	ROM_LOAD( "gcb17jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4665 
4666 	DISK_REGION( "cdrom0" )
4667 	DISK_IMAGE_READONLY( "b17jaa02", 0, SHA1(daf23982abbab882882f89b3a9d985df36252cae) )
4668 ROM_END
4669 
4670 ROM_START( gtrfrk8m )
4671 	SYS573_BIOS_A
4672 
4673 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4674 	ROM_LOAD( "gcc08jba.u1",   0x000000, 0x001014, BAD_DUMP CRC(db4b3027) SHA1(65ca32fcacda18954a4e8352dbb9bf583dfdd121) )
4675 
4676 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4677 	ROM_LOAD( "gcc08jba.31m", 0x000000, 0x200000, CRC(ddef5efe) SHA1(7c3a219eacf63f55894e81cb0e41753176191708) )
4678 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4679 	ROM_LOAD( "gcc08jba.27m", 0x000000, 0x200000, CRC(9393fe8e) SHA1(f60752e3e397121f3d4856a634e1c8ce5fc465b5) )
4680 
4681 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4682 	ROM_LOAD( "gcc08jba.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4683 
4684 	DISK_REGION( "cdrom0" )
4685 	DISK_IMAGE_READONLY( "c08jba02", 0, BAD_DUMP SHA1(8e352ed8ade581b7c9bb579fc56003ea1831202c) )
4686 ROM_END
4687 
4688 ROM_START( gtrfrk8ma )
4689 	SYS573_BIOS_A
4690 
4691 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4692 	ROM_LOAD( "gcc08jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(9c58f22b) SHA1(41ade23bac86e437b1f12c5730b8cce292ffe4f8) )
4693 
4694 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4695 	ROM_LOAD( "gcc08jaa.31m", 0x000000, 0x200000, CRC(aa723d4c) SHA1(5f55ddaf7f21b624deac99cc40b89989cd6f3a3d) )
4696 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4697 	ROM_LOAD( "gcc08jaa.27m", 0x000000, 0x200000, CRC(49d27b57) SHA1(e62737fe8665d837c2cebd1dcf4577a021d8cdb1) )
4698 
4699 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4700 	ROM_LOAD( "gcc08jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4701 
4702 	DISK_REGION( "cdrom0" )
4703 	DISK_IMAGE_READONLY( "c08jaa02", 0, BAD_DUMP SHA1(7a1d97f74ec4d643ff7d3981d66b551cbf9e57f0) )
4704 ROM_END
4705 
4706 ROM_START( gtrfrk9m )
4707 	SYS573_BIOS_A
4708 
4709 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4710 	ROM_LOAD( "gcc39jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(afb75814) SHA1(027dc2ae3444d10c14169f1f354ffcc928f62fb3) )
4711 
4712 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4713 	ROM_LOAD( "gcc39jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4714 
4715 	DISK_REGION( "cdrom0" )
4716 	DISK_IMAGE_READONLY( "c39jaa02", 0, SHA1(fef1202457b6bae2e10be6ecea35369820ffded5) )
4717 ROM_END
4718 
4719 ROM_START( gtfrk10m )
4720 	SYS573_BIOS_A
4721 
4722 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4723 	ROM_LOAD( "gcd10jab.u1",   0x000000, 0x001014, BAD_DUMP CRC(43520577) SHA1(a0749e766688032fe6558707b564288b95da9b8d) )
4724 
4725 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4726 	ROM_LOAD( "gcd10jab.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4727 
4728 	DISK_REGION( "cdrom0" )
4729 	DISK_IMAGE_READONLY( "d10jab01", 0, BAD_DUMP SHA1(c84858b412f0798a65cf3059c743501f32ad7280) )
4730 
4731 	DISK_REGION( "cdrom1" )
4732 	DISK_IMAGE_READONLY( "d10jaa02", 0, BAD_DUMP SHA1(d4e4460ca3edc1b365af593757557c6cf5b7b3ec) )
4733 ROM_END
4734 
4735 ROM_START( gtfrk10ma )
4736 	SYS573_BIOS_A
4737 
4738 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4739 	ROM_LOAD( "gcd10jaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(43520577) SHA1(a0749e766688032fe6558707b564288b95da9b8d) )
4740 
4741 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4742 	ROM_LOAD( "gcd10jaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4743 
4744 	DISK_REGION( "cdrom0" )
4745 	DISK_IMAGE_READONLY( "d10jaa02", 0, BAD_DUMP SHA1(d4e4460ca3edc1b365af593757557c6cf5b7b3ec) )
4746 ROM_END
4747 
4748 ROM_START( gtfrk10mb )
4749 	SYS573_BIOS_A
4750 
4751 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4752 	ROM_LOAD( "gcd10jab.u1",   0x000000, 0x001014, BAD_DUMP CRC(43520577) SHA1(a0749e766688032fe6558707b564288b95da9b8d) )
4753 
4754 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4755 	ROM_LOAD( "gcd10jab.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4756 
4757 	DISK_REGION( "cdrom0" )
4758 	DISK_IMAGE_READONLY( "d10jba02", 0, BAD_DUMP SHA1(80893da422268cc1f89688289cdec981c4f9feb2) )
4759 ROM_END
4760 
4761 ROM_START( gtfrk11m )
4762 	SYS573_BIOS_A
4763 
4764 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
4765 	ROM_LOAD( "gcd39ja.u1",   0x000000, 0x001014, BAD_DUMP CRC(9bd81d0a) SHA1(c95f6d7317bf88177f7217de4ba4376485d5cdbf) )
4766 
4767 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
4768 	ROM_LOAD( "gcd39ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
4769 
4770 	DISK_REGION( "cdrom0" )
4771 	DISK_IMAGE_READONLY( "d39jaa02", 0, BAD_DUMP SHA1(7a87ee331ba0301bb8724c398e6c77cfb9c172a7) )
4772 ROM_END
4773 
4774 ROM_START( gunmania )
4775 	SYS573_BIOS_A
4776 
4777 	ROM_REGION( 0x000008, "gunmania_id", 0 ) /* digital board id */     \
4778 	ROM_LOAD( "ds2401",        0x000000, 0x000008, CRC(2b977f4d) SHA1(2b108a56653f91cb3351718c45dfcf979bc35ef1) )
4779 
4780 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4781 	ROM_LOAD( "gl906jaa.31m",  0x000000, 0x200000, CRC(6c02d360) SHA1(961bd9df4928a3dead9da6a88641547cae4c4dbd) )
4782 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4783 	ROM_LOAD( "gl906jaa.27m",  0x000000, 0x200000, CRC(057b5bce) SHA1(979e3fb5496920c3f9eb7111425c08d80c9076a5) )
4784 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
4785 	ROM_LOAD( "gl906jaa.31l",  0x000000, 0x200000, CRC(3f3abf8f) SHA1(9c93e58fad16ccbe4bc4499a1a15af134243c154) )
4786 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
4787 	ROM_LOAD( "gl906jaa.27l",  0x000000, 0x200000, CRC(f2be642d) SHA1(6c46197a0d114ac90824de1fc4df12db561844e5) )
4788 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
4789 	ROM_LOAD( "gl906jaa.31j",  0x000000, 0x200000, CRC(889a4733) SHA1(1f6578d95c0331fdf3235ef7d899d5bd083ff6a0) )
4790 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
4791 	ROM_LOAD( "gl906jaa.27j",  0x000000, 0x200000, CRC(984193a8) SHA1(1a310e22a80cb4854b138f737f679384c98b2e46) )
4792 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
4793 	ROM_LOAD( "gl906jaa.31h",  0x000000, 0x200000, CRC(202236c1) SHA1(ecd58f2b325fdefe2ac6cdd6f4edd212432e149a) )
4794 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
4795 	ROM_LOAD( "gl906jaa.27h",  0x000000, 0x200000, CRC(8861b858) SHA1(2a67d465786759a74162ebebc0a44ba9309ffa60) )
4796 
4797 	ROM_REGION( 0x200000, "pccard2:32mb:1l", 0 )
4798 	ROM_LOAD( "gl906jaa.1l",   0x100000, 0x100000, BAD_DUMP CRC(4ad00681) SHA1(93fb97bd148c72f13d6d3b713d8bc6eeda7383ef) )
4799 	ROM_CONTINUE( 0x000000, 0x100000 )
4800 
4801 	ROM_REGION( 0x200000, "pccard2:32mb:1u", 0 )
4802 	ROM_LOAD( "gl906jaa.1u",   0x100000, 0x100000, BAD_DUMP CRC(6730d49a) SHA1(4f1810c04f078ef6de3a582d1982c6d54223998b) )
4803 	ROM_CONTINUE( 0x000000, 0x100000 )
4804 
4805 	ROM_REGION( 0x200000, "pccard2:32mb:2l", 0 )
4806 	ROM_LOAD( "gl906jaa.2l",   0x100000, 0x100000, BAD_DUMP CRC(383c80f6) SHA1(b540aba095526ce956a9a81e43bf46cb3eca6a9e) )
4807 	ROM_CONTINUE( 0x000000, 0x100000 )
4808 
4809 	ROM_REGION( 0x200000, "pccard2:32mb:2u", 0 )
4810 	ROM_LOAD( "gl906jaa.2u",   0x100000, 0x100000, BAD_DUMP CRC(68a92d52) SHA1(05584cd7e94ac551a82cfb435c637aabe6d4d044) )
4811 	ROM_CONTINUE( 0x000000, 0x100000 )
4812 
4813 	ROM_REGION( 0x200000, "pccard2:32mb:3l", 0 )
4814 	ROM_LOAD( "gl906jaa.3l",   0x100000, 0x100000, BAD_DUMP CRC(390b3ff7) SHA1(9ff79043125c11d5338a32443693259c728f8640) )
4815 	ROM_CONTINUE( 0x000000, 0x100000 )
4816 
4817 	ROM_REGION( 0x200000, "pccard2:32mb:3u", 0 )
4818 	ROM_LOAD( "gl906jaa.3u",   0x100000, 0x100000, BAD_DUMP CRC(b2ba1f4d) SHA1(1cd9227b99498d3f6bf464d7185fb511babb135e) )
4819 	ROM_CONTINUE( 0x000000, 0x100000 )
4820 
4821 	ROM_REGION( 0x200000, "pccard2:32mb:4l", 0 )
4822 	ROM_LOAD( "gl906jaa.4l",   0x100000, 0x100000, BAD_DUMP CRC(fed293be) SHA1(9109a18a342f455d7ee6f08c09e494781b6ae400) )
4823 	ROM_CONTINUE( 0x000000, 0x100000 )
4824 
4825 	ROM_REGION( 0x200000, "pccard2:32mb:4u", 0 )
4826 	ROM_LOAD( "gl906jaa.4u",   0x100000, 0x100000, BAD_DUMP CRC(ac42d147) SHA1(0dcb9515f6f8c609cc10a73f07683aa132927f18) )
4827 	ROM_CONTINUE( 0x000000, 0x100000 )
4828 
4829 	ROM_REGION( 0x200000, "pccard2:32mb:5l", 0 )
4830 	ROM_LOAD( "gl906jaa.5l",   0x100000, 0x100000, BAD_DUMP CRC(8209c1e0) SHA1(9f1f47f49e45bd3c71cd07c6719f8616c2518014) )
4831 	ROM_CONTINUE( 0x000000, 0x100000 )
4832 
4833 	ROM_REGION( 0x200000, "pccard2:32mb:5u", 0 )
4834 	ROM_LOAD( "gl906jaa.5u",   0x100000, 0x100000, BAD_DUMP CRC(1e3f0f1a) SHA1(2e6134a1d64ae3367261adfad5af61265d00340a) )
4835 	ROM_CONTINUE( 0x000000, 0x100000 )
4836 
4837 	ROM_REGION( 0x200000, "pccard2:32mb:6l", 0 )
4838 	ROM_LOAD( "gl906jaa.6l",   0x100000, 0x100000, BAD_DUMP CRC(53ca942e) SHA1(4d82bf406a338e4f96eb28c5c6f2707d73e53086) )
4839 	ROM_CONTINUE( 0x000000, 0x100000 )
4840 
4841 	ROM_REGION( 0x200000, "pccard2:32mb:6u", 0 )
4842 	ROM_LOAD( "gl906jaa.6u",   0x100000, 0x100000, BAD_DUMP CRC(82cfd213) SHA1(cd18de5d93541c64bdacc76ab8cd41656827284e) )
4843 	ROM_CONTINUE( 0x000000, 0x100000 )
4844 
4845 	ROM_REGION( 0x200000, "pccard2:32mb:7l", 0 )
4846 	ROM_LOAD( "gl906jaa.7l",   0x100000, 0x100000, BAD_DUMP CRC(bcf3ed36) SHA1(8c9c97b0c5a21222ce1d680110509231abb58b9e) )
4847 	ROM_CONTINUE( 0x000000, 0x100000 )
4848 
4849 	ROM_REGION( 0x200000, "pccard2:32mb:7u", 0 )
4850 	ROM_LOAD( "gl906jaa.7u",   0x100000, 0x100000, BAD_DUMP CRC(b5d5da7d) SHA1(000c2db950c3a4ac6296edb45b7c89b4be724071) )
4851 	ROM_CONTINUE( 0x000000, 0x100000 )
4852 
4853 	ROM_REGION( 0x200000, "pccard2:32mb:8l", 0 )
4854 	ROM_LOAD( "gl906jaa.8l",   0x100000, 0x100000, BAD_DUMP CRC(96c5e4fe) SHA1(9c7429f0352357b4b370d39b0e0fb9ce4b514a1b) )
4855 	ROM_CONTINUE( 0x000000, 0x100000 )
4856 
4857 	ROM_REGION( 0x200000, "pccard2:32mb:8u", 0 )
4858 	ROM_LOAD( "gl906jaa.8u",   0x100000, 0x100000, BAD_DUMP CRC(030fff86) SHA1(5a04fde970fe542b13327ef54b9b6ad6c79a9e3c) )
4859 	ROM_CONTINUE( 0x000000, 0x100000 )
4860 ROM_END
4861 
4862 ROM_START( hndlchmp )
4863 	SYS573_BIOS_A
4864 
4865 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4866 	ROM_LOAD( "710jab.31m",   0x000000, 0x200000, CRC(f5f71b1d) SHA1(7d518e5333f44e6ec921a1e882df970953814b6e) )
4867 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4868 	ROM_LOAD( "710jab.27m",   0x000000, 0x200000, CRC(b3d8c037) SHA1(678b88c37111d1fde8996c7d71b66ec1c4f161fe) )
4869 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
4870 	ROM_LOAD( "710jab.31l",   0x000000, 0x200000, CRC(78e8556c) SHA1(9f6bb651ddeb042ebf1ba057d4932494149f47d6) )
4871 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
4872 	ROM_LOAD( "710jab.27l",   0x000000, 0x200000, CRC(f6a87155) SHA1(269bfdf05ee4ab2e4b87b6e92045e56d0557a576) )
4873 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
4874 	ROM_LOAD( "710jab.31j",   0x000000, 0x200000, CRC(bdc05d16) SHA1(ee397950f7e7e910fdc05737f99604e43d288719) )
4875 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
4876 	ROM_LOAD( "710jab.27j",   0x000000, 0x200000, CRC(ad925ed3) SHA1(e3222308961851cccee2de9da804f74854907451) )
4877 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
4878 	ROM_LOAD( "710jab.31h",   0x000000, 0x200000, CRC(a0293108) SHA1(2e5651a4c1b8e021cc3060db138c9fe7c28caa3b) )
4879 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
4880 	ROM_LOAD( "710jab.27h",   0x000000, 0x200000, CRC(aed26efe) SHA1(20b6fccd0bc5495d8258b976f72d330d6315c6f6) )
4881 
4882 	ROM_REGION( 0x002000, "m48t58", 0 )
4883 	ROM_LOAD( "710jab.22h",   0x000000, 0x002000, CRC(b784de91) SHA1(048157e9ad6df46656dbac6349b0c821254e1c37) )
4884 ROM_END
4885 
4886 ROM_START( hyperbbc )
4887 	SYS573_BIOS_A
4888 
4889 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4890 	ROM_LOAD( "876ea.31m",    0x000000, 0x200000, CRC(a76043cb) SHA1(1c37034298abf3219d0bba29f4fcea8d83782926) )
4891 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4892 	ROM_LOAD( "876ea.27m",    0x000000, 0x200000, CRC(689ddd94) SHA1(512ca1529695f4f79ca8c1b8f64bb0067137e430) )
4893 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
4894 	ROM_LOAD( "876ea.31l",    0x000000, 0x200000, CRC(d011c7a5) SHA1(8861b62c8b654b8e719600a37337ae44e6438899) )
4895 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
4896 	ROM_LOAD( "876ea.27l",    0x000000, 0x200000, CRC(950a5267) SHA1(373a7305a090d1e347bfeb62cc2db55cde2a106e) )
4897 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
4898 	ROM_LOAD( "876ea.31j",    0x000000, 0x200000, CRC(ae497ebc) SHA1(ef131e60726db94f0d9ceab70bce02c0de080ede) )
4899 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
4900 	ROM_LOAD( "876ea.27j",    0x000000, 0x200000, CRC(9c156b1b) SHA1(bf07d71cc1f7e9e14beb9f9dfb71667ef2b54f8d) )
4901 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
4902 	ROM_LOAD( "876ea.31h",    0x000000, 0x200000, CRC(368372fb) SHA1(5cc4cb72e182c9e4d0737352e029fd703ba2f516) )
4903 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
4904 	ROM_LOAD( "876ea.27h",    0x000000, 0x200000, CRC(49175f99) SHA1(0154f6332ed210b6f0af20ba622133cde0994b7f) )
4905 
4906 	ROM_REGION( 0x002000, "m48t58", 0 )
4907 	ROM_LOAD( "876ea.22h",    0x000000, 0x002000, CRC(8e11d196) SHA1(e7442fdd611f4290d531b1ebdc9f487e323fd531) )
4908 ROM_END
4909 
4910 ROM_START( hyperbbca )
4911 	SYS573_BIOS_A
4912 
4913 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4914 	ROM_LOAD( "876aa.31m",    0x000000, 0x200000, CRC(677f8b0a) SHA1(a4c1029a70f5733f64a4f4dde4a568d2cb4dd11d) )
4915 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4916 	ROM_LOAD( "876aa.27m",    0x000000, 0x200000, CRC(0af35a7d) SHA1(086ad70c8bf4bbe5d9748e4d47c639b4250270fc) )
4917 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
4918 	ROM_LOAD( "876ea.31l",    0x000000, 0x200000, CRC(d011c7a5) SHA1(8861b62c8b654b8e719600a37337ae44e6438899) )
4919 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
4920 	ROM_LOAD( "876ea.27l",    0x000000, 0x200000, CRC(950a5267) SHA1(373a7305a090d1e347bfeb62cc2db55cde2a106e) )
4921 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
4922 	ROM_LOAD( "876ea.31j",    0x000000, 0x200000, CRC(ae497ebc) SHA1(ef131e60726db94f0d9ceab70bce02c0de080ede) )
4923 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
4924 	ROM_LOAD( "876ea.27j",    0x000000, 0x200000, CRC(9c156b1b) SHA1(bf07d71cc1f7e9e14beb9f9dfb71667ef2b54f8d) )
4925 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
4926 	ROM_LOAD( "876ea.31h",    0x000000, 0x200000, CRC(368372fb) SHA1(5cc4cb72e182c9e4d0737352e029fd703ba2f516) )
4927 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
4928 	ROM_LOAD( "876ea.27h",    0x000000, 0x200000, CRC(49175f99) SHA1(0154f6332ed210b6f0af20ba622133cde0994b7f) )
4929 
4930 	ROM_REGION( 0x002000, "m48t58", 0 )
4931 	ROM_LOAD( "876aa.22h",    0x000000, 0x002000, CRC(3c17f026) SHA1(8ed33aca99f5d09d5792e136e700e3ac628018e8) )
4932 ROM_END
4933 
4934 ROM_START( hyperbbck )
4935 	SYS573_BIOS_A
4936 
4937 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
4938 	ROM_LOAD( "876ka.31m",    0x000000, 0x200000, CRC(b2f5ea67) SHA1(205416c2954cfc303f164bb74f66356c393db294) )
4939 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
4940 	ROM_LOAD( "876ka.27m",    0x000000, 0x200000, CRC(d5f32438) SHA1(3bc8598af2e8817bbcb381f90a9b12d5736abed7) )
4941 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
4942 	ROM_LOAD( "876ka.31l",    0x000000, 0x200000, CRC(628cd211) SHA1(5c2d5f95bf3e7995ad32dc432c81e69e42ba9b88) )
4943 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
4944 	ROM_LOAD( "876ka.27l",    0x000000, 0x200000, CRC(4a860adf) SHA1(02aea8c205ea5b094d1a52dadc751c11d6b8aab7) )
4945 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
4946 	ROM_LOAD( "876ka.31j",    0x000000, 0x200000, CRC(4d572e90) SHA1(ac06a4f4efcee2729b131da8634eced85338196a) )
4947 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
4948 	ROM_LOAD( "876ka.27j",    0x000000, 0x200000, CRC(f80953f7) SHA1(c82bea38a8dc19ed99e5fd5c97cbffd7669581a7) )
4949 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
4950 	ROM_LOAD( "876ka.31h",    0x000000, 0x200000, CRC(4f99ef5b) SHA1(df02cdc61455a470cadada16c43e7f153d9d48c7) )
4951 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
4952 	ROM_LOAD( "876ka.27h",    0x000000, 0x200000, CRC(21586113) SHA1(a563e383961b8e2421869070fe384ed910ed2fe4) )
4953 
4954 	ROM_REGION( 0x002000, "m48t58", 0 )
4955 	ROM_LOAD( "876ka.22h",    0x000000, 0x002000, CRC(b4705bde) SHA1(3005982b3c237181c6a03b42bf37ffe79f68dc79) )
4956 ROM_END
4957 
4958 ROM_START( hypbbc2p )
4959 	SYS573_BIOS_A
4960 
4961 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4962 	ROM_LOAD( "gx908ja.u1",  0x000000, 0x000084, BAD_DUMP CRC(fb6c0635) SHA1(0d974462a0a244ffb1a651adb316242cde427756) )
4963 
4964 	DISK_REGION( "cdrom0" )
4965 	DISK_IMAGE_READONLY( "908a02", 0, BAD_DUMP SHA1(573194ca9938c30415fc88dcc0c0152dd3024d71) )
4966 ROM_END
4967 
4968 ROM_START( hypbbc2pk )
4969 	SYS573_BIOS_A
4970 
4971 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
4972 	ROM_LOAD( "gx908ka.u1",  0x000000, 0x000084, BAD_DUMP CRC(f4f37fe1) SHA1(30f90cdb2d092e4f8d6c14cfd4ca4945e6d352cb) )
4973 
4974 	DISK_REGION( "cdrom0" )
4975 	DISK_IMAGE_READONLY( "908a02", 0, BAD_DUMP SHA1(573194ca9938c30415fc88dcc0c0152dd3024d71) )
4976 ROM_END
4977 
4978 ROM_START( jppyex98 )
4979 	SYS573_BIOS_A
4980 
4981 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4982 	ROM_LOAD( "gc811ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(e0f93270) SHA1(02a110bf692d5d1aa15e66132e3c4f60aa3f0f3c) )
4983 
4984 	DISK_REGION( "cdrom0" )
4985 	DISK_IMAGE_READONLY( "811jaa02", 0, BAD_DUMP SHA1(e9580172d58b38841f643651ae0bcaf24fd5f118) )
4986 ROM_END
4987 
4988 ROM_START( konam80a )
4989 	SYS573_BIOS_A
4990 
4991 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
4992 	ROM_LOAD( "gc826aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(9b38b959) SHA1(6b4fca340a9b1c2ae21ad3903c1ac1e39ab08b1a) )
4993 
4994 	DISK_REGION( "cdrom0" )
4995 	DISK_IMAGE_READONLY( "826aaa01", 0, BAD_DUMP SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) )
4996 ROM_END
4997 
4998 ROM_START( konam80j )
4999 	SYS573_BIOS_A
5000 
5001 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5002 	ROM_LOAD( "gc826ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(e9e861e8) SHA1(45841db0b42d096213d9539a8d076d39391dca6d) )
5003 
5004 	DISK_REGION( "cdrom0" )
5005 	DISK_IMAGE_READONLY( "826jaa01", 0, SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) )
5006 ROM_END
5007 
5008 ROM_START( konam80k )
5009 	SYS573_BIOS_A
5010 
5011 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5012 	ROM_LOAD( "gc826ka.u1", 0x000000, 0x000224, BAD_DUMP CRC(d41f7e38) SHA1(73e2bb132e23be72e72ea5b0686ccad28e47574a) )
5013 
5014 	DISK_REGION( "cdrom0" )
5015 	DISK_IMAGE_READONLY( "826kaa01", 0, BAD_DUMP SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) )
5016 ROM_END
5017 
5018 ROM_START( konam80s )
5019 	SYS573_BIOS_A
5020 
5021 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5022 	ROM_LOAD( "gc826ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(6ce4c619) SHA1(d2be08c213c0a74e30b7ebdd93946374cc64457f) )
5023 
5024 	DISK_REGION( "cdrom0" )
5025 	DISK_IMAGE_READONLY( "826eaa01", 0, BAD_DUMP SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) )
5026 ROM_END
5027 
5028 ROM_START( konam80u )
5029 	SYS573_BIOS_A
5030 
5031 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5032 	ROM_LOAD( "gc826ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(0577379b) SHA1(3988a2a5ef1f1d5981c4767cbed05b73351be903) )
5033 
5034 	DISK_REGION( "cdrom0" )
5035 	DISK_IMAGE_READONLY( "826uaa01", 0, SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) )
5036 ROM_END
5037 
5038 ROM_START( mamboagg )
5039 	SYS573_BIOS_A
5040 
5041 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5042 	ROM_LOAD( "gqa40jab.u1",  0x000000, 0x001014, BAD_DUMP CRC(fd9e7c1f) SHA1(6dd4790589d48803f58328d099c908f0565b2c01) )
5043 
5044 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5045 	ROM_LOAD( "gqa40jab.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5046 
5047 	DISK_REGION( "cdrom0" )
5048 	DISK_IMAGE_READONLY( "a40jab02", 0, SHA1(2e4ed217a7e9f7c79abc9a1798556cc3649db30e) )
5049 ROM_END
5050 
5051 ROM_START( mamboagga )
5052 	SYS573_BIOS_A
5053 
5054 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5055 	ROM_LOAD( "gqa40jrb.u1",  0x000000, 0x001014, BAD_DUMP CRC(367e4c0c) SHA1(bad21aa8818749282dd97cf00c34b7b049096ceb) )
5056 
5057 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5058 	ROM_LOAD( "gqa40jrb.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5059 
5060 	DISK_REGION( "cdrom0" )
5061 	DISK_IMAGE_READONLY( "a40jab02", 0, SHA1(2e4ed217a7e9f7c79abc9a1798556cc3649db30e) )
5062 ROM_END
5063 
5064 ROM_START( mrtlbeat )
5065 	SYS573_BIOS_A
5066 
5067 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5068 	ROM_LOAD( "geb47jb.u1",   0x000000, 0x001014, BAD_DUMP CRC(90079ff5) SHA1(8273ee3349dd13207836b0ebf72ad5fa67fef68a) )
5069 
5070 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5071 	ROM_LOAD( "geb47jb.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5072 
5073 	DISK_REGION( "cdrom0" )
5074 	DISK_IMAGE_READONLY( "b47jxb02", 0, SHA1(6bbe8d6169ef692bd8995da564bd5a97b6bf0b31) )
5075 ROM_END
5076 
5077 ROM_START( powyakex )
5078 	SYS573_BIOS_A
5079 
5080 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5081 	ROM_LOAD( "gx802ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ea8bdda3) SHA1(780034ab08871631ef0e3e9b779ca89e016c26a8) )
5082 
5083 	DISK_REGION( "cdrom0" )
5084 	DISK_IMAGE_READONLY( "802jab02", 0, SHA1(460cc9f0b2514ec1da06b0a1d7b52fe43220d181) )
5085 ROM_END
5086 
5087 ROM_START( pcnfrk2m )
5088 	SYS573_BIOS_A
5089 
5090 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
5091 	ROM_LOAD( "ge912ka.u1",   0x000000, 0x000224, BAD_DUMP CRC(b3d5ca9a) SHA1(3dd9034e1a3a78a03bef975186b7ac6b01e3131a) )
5092 
5093 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5094 	ROM_LOAD( "gn912ka.u1",   0x000000, 0x001014, BAD_DUMP CRC(c6af0c1a) SHA1(042d23bcfabc2a7fb6d7a038978805968e229395) )
5095 
5096 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
5097 	ROM_LOAD( "ge912ka.u6",   0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
5098 
5099 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5100 	ROM_LOAD( "gn912ka.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5101 
5102 	DISK_REGION( "cdrom0" )
5103 	DISK_IMAGE_READONLY( "912kaa02", 0, BAD_DUMP SHA1(f817054453b7d66260813fe823f348280b4e9902) )
5104 ROM_END
5105 
5106 ROM_START( pcnfrk3m )
5107 	SYS573_BIOS_A
5108 
5109 	ROM_REGION( 0x0000224, "cassette:install:eeprom", 0 )
5110 	ROM_LOAD( "a23kaa.u1",    0x000000, 0x000224, BAD_DUMP CRC(d71c4b5c) SHA1(3911c5dd933c30e6e44c8cf417bb4c284ecb4b80) )
5111 
5112 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5113 	ROM_LOAD( "gca23ka.u1",   0x000000, 0x001014, BAD_DUMP CRC(f392349c) SHA1(e7eb7979db276de560d5820163a70d97e6c023d8) )
5114 
5115 	ROM_REGION( 0x000008, "cassette:install:id", 0 )
5116 	ROM_LOAD( "a23kaa.u6",    0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) )
5117 
5118 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5119 	ROM_LOAD( "gca23ka.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5120 
5121 	DISK_REGION( "cdrom0" )
5122 	DISK_IMAGE_READONLY( "a23kaa02", 0, BAD_DUMP SHA1(5b853cc25eb583ed36d8cd402235b4f5c9ce065a) )
5123 ROM_END
5124 
5125 ROM_START( pcnfrk4m )
5126 	SYS573_BIOS_A
5127 
5128 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5129 	ROM_LOAD( "gea25aaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(04a5cffa) SHA1(ce7316ebdddeee326b0f4301f9a7c56498a95e70) )
5130 
5131 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
5132 	ROM_LOAD( "gea25aaa.31m", 0x000000, 0x200000, CRC(557093c2) SHA1(80e8eecf3248e890f9cce70859b6092725c4918c) )
5133 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
5134 	ROM_LOAD( "gea25aaa.27m", 0x000000, 0x200000, CRC(118fa45a) SHA1(6bc6129e328f6f97a27b9f524066297b29efff5a) )
5135 
5136 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5137 	ROM_LOAD( "gea25aaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5138 
5139 	DISK_REGION( "cdrom0" )
5140 	DISK_IMAGE_READONLY( "a25aaa02", 0, BAD_DUMP SHA1(72876091b753b9697c48f51cfd0c512c28e173a6) )
5141 
5142 	DISK_REGION( "multisession" )
5143 	DISK_IMAGE_READONLY( "a25aba02", 0, BAD_DUMP SHA1(eb8eed41c715f39a426433224671adc36d4b0262) )
5144 ROM_END
5145 
5146 ROM_START( pcnfrk5m )
5147 	SYS573_BIOS_A
5148 
5149 	ROM_REGION( 0x0001014, "cassette:game:eeprom", 0 )
5150 	ROM_LOAD( "gcb05kaa.u1",   0x000000, 0x001014, BAD_DUMP CRC(f2a0e121) SHA1(d6ffa3513885a78662bcac9db4f17f0c10951962) )
5151 
5152 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5153 	ROM_LOAD( "gcb05kaa.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5154 
5155 	DISK_REGION( "cdrom0" )
5156 	DISK_IMAGE_READONLY( "b05kaa02", 0, SHA1(10e7ca2b0d8ed29f5882cccd735b6d1cb13aca21) )
5157 ROM_END
5158 
5159 ROM_START( pnchmn )
5160 	SYS573_BIOS_A
5161 
5162 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5163 	ROM_LOAD( "gq918jaa.u1",  0x000000, 0x000224, BAD_DUMP CRC(e4769787) SHA1(d60c6598c7c58b5cd8f86350ebf7f3f32c1ebe9b) )
5164 
5165 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
5166 	ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) )
5167 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
5168 	ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) )
5169 
5170 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5171 	ROM_LOAD( "gq918jaa.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5172 
5173 	DISK_REGION( "cdrom0" )
5174 	DISK_IMAGE_READONLY( "918xxb02", 0, BAD_DUMP SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) )
5175 ROM_END
5176 
5177 ROM_START( pnchmna )
5178 	SYS573_BIOS_A
5179 
5180 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5181 	ROM_LOAD( "gq918jab.u1",  0x000000, 0x000224, BAD_DUMP CRC(e4769787) SHA1(d60c6598c7c58b5cd8f86350ebf7f3f32c1ebe9b) )
5182 
5183 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
5184 	ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) )
5185 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
5186 	ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) )
5187 
5188 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5189 	ROM_LOAD( "gq918jab.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5190 
5191 	DISK_REGION( "cdrom0" )
5192 	DISK_IMAGE_READONLY( "918jab02", 0, SHA1(8b8cb806a4e15b4687456a5a4482ea7e1373bbf6) )
5193 ROM_END
5194 
5195 ROM_START( pnchmn2 )
5196 	SYS573_BIOS_A
5197 
5198 	ROM_REGION( 0x0000224, "cassette:game:eeprom", 0 )
5199 	ROM_LOAD( "gqa09ja.u1",   0x000000, 0x000224, BAD_DUMP CRC(e1e4108f) SHA1(0605e2c7a7dcb2f4928350e96d2ffcc2ede4a762) )
5200 
5201 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
5202 	ROM_LOAD( "gqa09ja.31m",  0x000000, 0x200000, CRC(b1043a91) SHA1(b474439c1a7da7855d9b6d2162d4a522f499d6ab) )
5203 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
5204 	ROM_LOAD( "gqa09ja.27m",  0x000000, 0x200000, CRC(09b1a70b) SHA1(0f3bcad879e05faaf8130133d774a2071031ee74) )
5205 
5206 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5207 	ROM_LOAD( "gqa09ja.u6",   0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5208 
5209 	DISK_REGION( "cdrom0" )
5210 	DISK_IMAGE_READONLY( "a09jaa02", 0, BAD_DUMP SHA1(b085fbe76d5ef87578744b45b874b5f79147e586) )
5211 ROM_END
5212 
5213 ROM_START( salarymc )
5214 	SYS573_BIOS_A
5215 
5216 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
5217 	ROM_LOAD( "gca18jaa.u1",  0x000000, 0x000084, CRC(c9197f67) SHA1(8e95a89008f756a79295f2cb557c39efca1351e7) )
5218 
5219 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5220 	ROM_LOAD( "gca18jaa.u6",  0x000000, 0x000008, CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5221 
5222 	DISK_REGION( "cdrom0" )
5223 	DISK_IMAGE_READONLY( "a18jaa02", 0, SHA1(740cc93ec65433098153684fdfc418a098a43736) )
5224 ROM_END
5225 
5226 ROM_START( stepchmp )
5227 	SYS573_BIOS_A
5228 
5229 	ROM_REGION( 0x0000084, "cassette:game:eeprom", 0 )
5230 	ROM_LOAD( "gq930ja.u1",  0x000000, 0x000084, BAD_DUMP CRC(de141979) SHA1(fc91a8384852cb940ec1461c8a561118e9850c85) )
5231 
5232 	ROM_REGION( 0x000008, "cassette:game:id", 0 )
5233 	ROM_LOAD( "gq930ja.u6",  0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
5234 
5235 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
5236 	ROM_LOAD( "gq930ja.31m", 0x000000, 0x200000, CRC(274f1813) SHA1(ff6053c0889e9b10bf5eeebda68a051bcf8d7430) )
5237 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
5238 	ROM_LOAD( "gq930ja.27m", 0x000000, 0x200000, CRC(257f9f8a) SHA1(65f51b1b26809a96798b015c1625f52f7280d9d1) )
5239 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
5240 	ROM_LOAD( "gq930ja.31l",  0x000000, 0x200000, CRC(dd3a1821) SHA1(b00ce3e88737f9aa935d0f9e5dc587c28d509483) )
5241 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
5242 	ROM_LOAD( "gq930ja.27l",  0x000000, 0x200000, CRC(fff93684) SHA1(a5653bef9ff58bbbb77b6e18c1bbb017ae171426) )
5243 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
5244 	ROM_LOAD( "gq930ja.31j",  0x000000, 0x200000, CRC(40cfee5b) SHA1(4dd0bbe9a49b7220d670b2387a7468124cf05938) )
5245 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
5246 	ROM_LOAD( "gq930ja.27j",  0x000000, 0x200000, CRC(96ea2ee4) SHA1(ad0c1da7441fb0cc08c917e99b9df48faddd2487) )
5247 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
5248 	ROM_LOAD( "gq930ja.31h",  0x000000, 0x200000, CRC(3ddffadd) SHA1(fa2c1289f4813e987bcadf83853627b2e7578978) )
5249 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
5250 	ROM_LOAD( "gq930ja.27h",  0x000000, 0x200000, CRC(256f0794) SHA1(f95d5a8a53dea4d1f4d766124e94ee103cc1e3b2) )
5251 ROM_END
5252 
5253 ROM_START( strgchmp )
5254 	SYS573_BIOS_A
5255 
5256 	ROM_REGION( 0x200000, "29f016a.31m", 0 ) /* onboard flash */
5257 	ROM_LOAD( "710uaa.31m",   0x000000, 0x200000, CRC(389f8acb) SHA1(db80af29d53f737a6affd1afd18cce050c294fa6) )
5258 	ROM_REGION( 0x200000, "29f016a.27m", 0 ) /* onboard flash */
5259 	ROM_LOAD( "710uaa.27m",   0x000000, 0x200000, CRC(5b5c6e4d) SHA1(a5ad9a459504dfb7ada0148f590f777a604549e9) )
5260 	ROM_REGION( 0x200000, "29f016a.31l", 0 ) /* onboard flash */
5261 	ROM_LOAD( "710uaa.31l",   0x000000, 0x200000, CRC(fd9fd9b1) SHA1(f1536f62f68d80cabd5d58e8dfa14a8b3e9a6ae3) )
5262 	ROM_REGION( 0x200000, "29f016a.27l", 0 ) /* onboard flash */
5263 	ROM_LOAD( "710uaa.27l",   0x000000, 0x200000, CRC(a0e9b72b) SHA1(7272c54c5dc1d1df2427e301e5a10083c9db1967) )
5264 	ROM_REGION( 0x200000, "29f016a.31j", 0 ) /* onboard flash */
5265 	ROM_LOAD( "710uaa.31j",   0x000000, 0x200000, CRC(bf6ebc47) SHA1(59a4812e79c9695a0d161fd62534bbb4ae84a4bc) )
5266 	ROM_REGION( 0x200000, "29f016a.27j", 0 ) /* onboard flash */
5267 	ROM_LOAD( "710uaa.27j",   0x000000, 0x200000, CRC(79669ebd) SHA1(45828fd6c0b63666963c8f3b7cc5d508bc06b845) )
5268 	ROM_REGION( 0x200000, "29f016a.31h", 0 ) /* onboard flash */
5269 	ROM_LOAD( "710uaa.31h",   0x000000, 0x200000, CRC(2a41c844) SHA1(ffa36fef3abc90f2e25e79ccbda199d614edf034) )
5270 	ROM_REGION( 0x200000, "29f016a.27h", 0 ) /* onboard flash */
5271 	ROM_LOAD( "710uaa.27h",   0x000000, 0x200000, CRC(b30556bb) SHA1(b771114c6520fe17e4256b9217c72243ac97f4b5) )
5272 
5273 	ROM_REGION( 0x002000, "m48t58", 0 )
5274 	ROM_LOAD( "710uaa.22h",   0x000000, 0x002000, CRC(a3e93d49) SHA1(630daa1a02320433a068eb5214f6b30acc06df76) )
5275 ROM_END
5276 
5277 GAME( 1997, sys573,    0,        konami573,  konami573, ksys573_state, empty_init,    ROT0,  "Konami", "System 573 BIOS", MACHINE_IS_BIOS_ROOT )
5278 
5279 GAME( 1997, strgchmp,  sys573,   konami573,  hndlchmp,  ksys573_state, empty_init,    ROT0,  "Konami", "Steering Champ (GQ710 VER. UAA)", MACHINE_IMPERFECT_SOUND )
5280 GAME( 1997, hndlchmp,  strgchmp, konami573,  hndlchmp,  ksys573_state, empty_init,    ROT0,  "Konami", "Handle Champ (GQ710 VER. JAB)", MACHINE_IMPERFECT_SOUND )
5281 GAME( 1998, darkhleg,  sys573,   konami573x, konami573, ksys573_state, empty_init,    ROT0,  "Konami", "Dark Horse Legend (GX706 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5282 GAME( 1998, fbaitbc,   sys573,   fbaitbc,    fbaitbc,   ksys573_state, empty_init,    ROT0,  "Konami", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", MACHINE_IMPERFECT_SOUND )
5283 GAME( 1998, bassangl,  fbaitbc,  fbaitbc,    fbaitbc,   ksys573_state, empty_init,    ROT0,  "Konami", "Bass Angler (GE765 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5284 GAME( 1998, powyakex,  sys573,   konami573x, konami573, ksys573_state, empty_init,    ROT0,  "Konami", "Jikkyou Powerful Pro Yakyuu EX (GX802 VER. JAB)", MACHINE_IMPERFECT_SOUND )
5285 GAME( 1998, jppyex98,  sys573,   konami573x, konami573, ksys573_state, empty_init,    ROT0,  "Konami", "Jikkyou Powerful Pro Yakyuu EX '98 (GC811 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5286 GAME( 1998, konam80s,  sys573,   konami573x, konami573, ksys573_state, empty_init,    ROT90, "Konami", "Konami 80's AC Special (GC826 VER. EAA)", MACHINE_IMPERFECT_SOUND )
5287 GAME( 1998, konam80u,  konam80s, konami573x, konami573, ksys573_state, empty_init,    ROT90, "Konami", "Konami 80's AC Special (GC826 VER. UAA)", MACHINE_IMPERFECT_SOUND )
5288 GAME( 1998, konam80j,  konam80s, konami573x, konami573, ksys573_state, empty_init,    ROT90, "Konami", "Konami 80's Gallery (GC826 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5289 GAME( 1998, konam80a,  konam80s, konami573x, konami573, ksys573_state, empty_init,    ROT90, "Konami", "Konami 80's AC Special (GC826 VER. AAA)", MACHINE_IMPERFECT_SOUND )
5290 GAME( 1998, konam80k,  konam80s, konami573x, konami573, ksys573_state, empty_init,    ROT90, "Konami", "Konami 80's AC Special (GC826 VER. KAA)", MACHINE_IMPERFECT_SOUND )
5291 GAME( 1999, dstage,    sys573,   dsftkd,     ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dancing Stage - Internet Ranking Ver (GC845 VER. EBA)", MACHINE_IMPERFECT_SOUND )
5292 GAME( 1999, dstagea,   dstage,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dancing Stage (GN845 VER. EAA)", MACHINE_IMPERFECT_SOUND )
5293 GAME( 1999, ddru,      dstage,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution (GN845 VER. UAA)", MACHINE_IMPERFECT_SOUND )
5294 GAME( 1998, ddrj,      dstage,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution - Internet Ranking Ver (GC845 VER. JBA)", MACHINE_IMPERFECT_SOUND )
5295 GAME( 1998, ddrja,     dstage,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution (GC845 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
5296 GAME( 1998, ddrjb,     dstage,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution (GC845 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
5297 GAME( 1999, ddra,      dstage,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution (GN845 VER. AAA)", MACHINE_IMPERFECT_SOUND )
5298 GAME( 1998, fbait2bc,  sys573,   fbaitbc,    fbaitbc,   ksys573_state, empty_init,    ROT0,  "Konami", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", MACHINE_IMPERFECT_SOUND )
5299 GAME( 1998, bassang2,  fbait2bc, fbaitbc,    fbaitbc,   ksys573_state, empty_init,    ROT0,  "Konami", "Bass Angler 2 (GE865 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5300 GAME( 1998, hyperbbc,  sys573,   hyperbbc,   hyperbbc,  ksys573_state, init_hyperbbc, ROT0,  "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. EAA)", MACHINE_IMPERFECT_SOUND )
5301 GAME( 1998, hyperbbca, hyperbbc, hyperbbc,   hyperbbc,  ksys573_state, init_hyperbbc, ROT0,  "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. AAA)", MACHINE_IMPERFECT_SOUND )
5302 GAME( 1998, hyperbbck, hyperbbc, hyperbbc,   hyperbbc,  ksys573_state, init_hyperbbc, ROT0,  "Konami", "Hyper Bishi Bashi Champ (GE876 VER. KAA)", MACHINE_IMPERFECT_SOUND )
5303 GAME( 1999, gchgchmp,  sys573,   gchgchmp,   gchgchmp,  ksys573_state, empty_init,    ROT0,  "Konami", "Gachaga Champ (GE877 VER. JAB)", MACHINE_IMPERFECT_SOUND )
5304 GAME( 1999, drmn,      sys573,   drmn,       drmn,      ksys573_state, init_drmn,     ROT0,  "Konami", "DrumMania (GQ881 VER. JAD)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
5305 GAME( 1999, gtrfrks,   sys573,   gtrfrks,    gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks (GQ886 VER. EAC)", MACHINE_IMPERFECT_SOUND )
5306 GAME( 1999, gtrfrksu,  gtrfrks,  gtrfrks,    gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks (GQ886 VER. UAC)", MACHINE_IMPERFECT_SOUND )
5307 GAME( 1999, gtrfrksj,  gtrfrks,  gtrfrks,    gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks (GQ886 VER. JAC)", MACHINE_IMPERFECT_SOUND )
5308 GAME( 1999, gtrfrksa,  gtrfrks,  gtrfrks,    gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks (GQ886 VER. AAC)", MACHINE_IMPERFECT_SOUND )
5309 GAME( 1999, fbaitmc,   sys573,   fbaitbc,    fbaitmc,   ksys573_state, empty_init,    ROT0,  "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", MACHINE_IMPERFECT_SOUND )
5310 GAME( 1999, fbaitmcu,  fbaitmc,  fbaitbc,    fbaitmc,   ksys573_state, empty_init,    ROT0,  "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", MACHINE_IMPERFECT_SOUND )
5311 GAME( 1999, fbaitmcj,  fbaitmc,  fbaitbc,    fbaitmc,   ksys573_state, empty_init,    ROT0,  "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", MACHINE_IMPERFECT_SOUND )
5312 GAME( 1999, fbaitmca,  fbaitmc,  fbaitbc,    fbaitmc,   ksys573_state, empty_init,    ROT0,  "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", MACHINE_IMPERFECT_SOUND )
5313 GAME( 1999, ddr2m,     sys573,   ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5314 GAME( 1999, ddr2ml,    ddr2m,    ddr2ml,     ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB)", MACHINE_IMPERFECT_SOUND )
5315 GAME( 1999, ddr2mla,   ddr2m,    ddr2ml,     ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5316 GAME( 1999, ddrbocd,   ddr2m,    ddr2ml,     ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5317 GAME( 1999, ddr2mc,    ddr2m,    ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5318 GAME( 1999, ddr2mc2,   ddr2m,    ddr,        ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5319 GAME( 1999, gtrfrk2m,  sys573,   gtrfrk2m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD)", MACHINE_IMPERFECT_SOUND )
5320 GAME( 1999, dsftkd,    sys573,   dsftkd,     ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dancing Stage featuring TRUE KiSS DESTiNATiON (G*884 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5321 GAME( 1999, cr589fw,   sys573,   konami573,  konami573, ksys573_state, empty_init,    ROT0,  "Konami", "CD-ROM Drive Updater 2.0 (700B04)", MACHINE_IMPERFECT_SOUND )
5322 GAME( 1999, cr589fwa,  sys573,   konami573,  konami573, ksys573_state, empty_init,    ROT0,  "Konami", "CD-ROM Drive Updater (700A04)", MACHINE_IMPERFECT_SOUND )
5323 GAME( 2000, ddr3mk,    sys573,   ddr3m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea2 (GN887 VER. KBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */
5324 GAME( 2000, ddr3mka,   ddr3mk,   ddr3m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea (GN887 VER. KAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */
5325 GAME( 1999, ddr3ma,    ddr3mk,   ddr3m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. AAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.1 */
5326 GAME( 1999, ddr3mj,    ddr3mk,   ddr3m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.0 */
5327 GAME( 1999, ddrsbm,    sys573,   ddrsbm,     ddrsolo,   ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution Solo Bass Mix (GQ894 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
5328 GAME( 1999, ddrs2k,    sys573,   ddrs2k,     ddrsolo,   ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. AAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */
5329 GAME( 1999, ddrs2kj,   ddrs2k,   ddrs2k,     ddrsolo,   ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.2 */
5330 GAME( 1999, hypbbc2p,  sys573,   hypbbc2p,   hypbbc2p,  ksys573_state, init_hyperbbc, ROT0,  "Konami", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5331 GAME( 1999, hypbbc2pk, hypbbc2p, hypbbc2p,   hypbbc2p,  ksys573_state, init_hyperbbc, ROT0,  "Konami", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)", MACHINE_IMPERFECT_SOUND )
5332 GAME( 1999, dsfdct,    sys573,   ddr3m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JCA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
5333 GAME( 1999, dsfdcta,   dsfdct,   dsfdcta,    ddr,       ksys573_state, init_ddr,      ROT0,  "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5334 GAME( 2000, pcnfrk2m,  sys573,   drmn2m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "Percussion Freaks 2nd Mix (GE912 VER. KAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */
5335 GAME( 1999, drmn2m,    pcnfrk2m, drmn2m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 2nd Mix (GE912 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */
5336 GAME( 1999, drmn2mpu,  pcnfrk2m, drmn2m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */
5337 GAME( 1999, stepchmp,  sys573,   stepchmp,   hyperbbc,  ksys573_state, init_serlamp,  ROT0,  "Konami", "Step Champ (GQ930 VER. JA)", MACHINE_NO_SOUND )
5338 GAME( 2000, dncfrks,   sys573,   dmx,        dmx,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Freaks (G*874 VER. KAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */
5339 GAME( 2000, dmx,       dncfrks,  dmx,        dmx,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Maniax (G*874 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */
5340 GAME( 2000, gunmania,  sys573,   gunmania,   gunmania,  ksys573_state, empty_init,    ROT0,  "Konami", "GunMania (GL906 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
5341 GAME( 2000, fghtmn,    sys573,   pnchmn,     pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Fighting Mania (QG918 VER. EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5342 GAME( 2000, fghtmna,   fghtmn,   pnchmn,     pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Fighting Mania (QG918 VER. AAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5343 GAME( 2000, pnchmn,    fghtmn,   pnchmn,     pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Punch Mania: Hokuto no Ken (GQ918 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5344 GAME( 2000, pnchmna,   fghtmn,   pnchmn,     pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Punch Mania: Hokuto no Ken (GQ918 VER. JAB ALT CD)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5345 GAME( 2000, fghtmnk,   fghtmn,   pnchmn,     pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Fighting Mania (QG918 VER. KAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5346 GAME( 2000, fghtmnu,   fghtmn,   pnchmn,     pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Fighting Mania (QG918 VER. UAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5347 GAME( 2000, dsem,      sys573,   dsem,       ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dancing Stage Euro Mix (G*936 VER. EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.7 */
5348 GAME( 2000, gtrfrk3m,  sys573,   gtrfrk3m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */
5349 GAME( 2000, gtfrk3ma,  gtrfrk3m, gtrfrk3m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */
5350 GAME( 2000, gtfrk3mb,  gtrfrk3m, gtrfrk5m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */
5351 GAME( 2000, pnchmn2,   sys573,   pnchmn2,    pnchmn,    ksys573_state, init_pnchmn,   ROT0,  "Konami", "Punch Mania 2: Hokuto no Ken (GQA09 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */
5352 GAME( 2000, animechmp, sys573,   animechmp,  hyperbbc,  ksys573_state, init_serlamp,  ROT0,  "Konami", "Anime Champ (GCA07 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5353 GAME( 2000, salarymc,  sys573,   salarymc,   hypbbc2p,  ksys573_state, init_serlamp,  ROT0,  "Konami", "Salary Man Champ (GCA18 VER. JAA)", MACHINE_IMPERFECT_SOUND )
5354 GAME( 2000, ddr3mp,    sys573,   ddr3mp,     ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */
5355 GAME( 2000, pcnfrk3m,  sys573,   drmn2m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "Percussion Freaks 3rd Mix (G*A23 VER. KAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5356 GAME( 2000, drmn3m,    pcnfrk3m, drmn2m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 3rd Mix (G*A23 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5357 GAME( 2000, gtrfrk4m,  sys573,   gtrfrk3m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 4th Mix (G*A24 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5358 GAME( 2000, ddr4m,     sys573,   ddr3mp,     ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. AAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5359 GAME( 2000, ddr4mj,    ddr4m,    ddr3mp,     ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5360 GAME( 2000, ddr4ms,    sys573,   ddr4ms,     ddrsolo,   ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. ABA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5361 GAME( 2000, ddr4msj,   ddr4ms,   ddr4ms,     ddrsolo,   ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. JBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5362 GAME( 2000, dsfdr,     sys573,   dsfdr,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dancing Stage Featuring Disney's Rave (GCA37JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5363 GAME( 2000, ddrusa,    sys573,   ddrusa,     ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution USA (G*A44 VER. UAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5364 GAME( 2000, ddr4mp,    sys573,   ddr3mp,     ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5365 GAME( 2000, ddr4mps,   sys573,   ddr4ms,     ddrsolo,   ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5366 GAME( 2000, dmx2m,     sys573,   dmx,        dmx,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Maniax 2nd Mix (G*A39 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5367 GAME( 2000, pcnfrk4m,  sys573,   drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "Percussion Freaks 4th Mix (G*A25 VER. AAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5368 GAME( 2000, drmn4m,    pcnfrk4m, drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 4th Mix (G*A25 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */
5369 GAME( 2001, gtrfrk5m,  sys573,   gtrfrk5m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 5th Mix (G*A26 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5370 GAME( 2001, ddr5m,     sys573,   ddr5m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution 5th Mix (G*A27 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5371 GAME( 2001, dmx2majp,  sys573,   dmx,        dmx,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5372 GAME( 2001, mamboagg,  sys573,   mamboagg,   mamboagg,  ksys573_state, empty_init,    ROT0,  "Konami", "Mambo A Go-Go (GQA40 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5373 GAME( 2001, mamboagga, mamboagg, mamboagga,  mamboagg,  ksys573_state, empty_init,    ROT0,  "Konami", "Mambo A Go-Go e-Amusement (GQA40 VER. JRB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5374 GAME( 2001, pcnfrk5m,  sys573,   drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "Percussion Freaks 5th Mix (G*B05 VER. KAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5375 GAME( 2001, drmn5m,    pcnfrk5m, drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 5th Mix (G*B05 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5376 GAME( 2001, gtrfrk6m,  sys573,   gtrfrk5m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 6th Mix (G*B06 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5377 GAME( 2001, drmn6m,    sys573,   drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 6th Mix (G*B16 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5378 GAME( 2001, gtrfrk7m,  sys573,   gtrfrk7m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 7th Mix (G*B17 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5379 GAME( 2001, ddrmax,    sys573,   ddr5m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5380 GAME( 2002, ddrmax2,   sys573,   ddr5m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5381 GAME( 2002, mrtlbeat,  sys573,   ddr5m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Martial Beat (G*B47 VER. JBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */
5382 GAME( 2002, gbbchmp,   sys573,   gbbchmp,    hyperbbc,  ksys573_state, init_serlamp, ROT0,  "Konami", "Great Bishi Bashi Champ (GBA48 VER. JAB)", MACHINE_IMPERFECT_SOUND )
5383 GAME( 2002, drmn7m,    sys573,   drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 7th Mix power-up ver. (G*C07 VER. JBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5384 GAME( 2002, drmn7ma,   drmn7m,   drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 7th Mix (G*C07 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5385 GAME( 2002, gtrfrk8m,  sys573,   gtrfrk7m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5386 GAME( 2002, gtrfrk8ma, gtrfrk8m, gtrfrk7m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 8th Mix (G*C08 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5387 GAME( 2002, dsem2,     sys573,   ddr5m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dancing Stage Euro Mix 2 (G*C23 VER. EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5388 GAME( 2002, ddrextrm,  sys573,   ddr5m,      ddr,       ksys573_state, empty_init,    ROT0,  "Konami", "Dance Dance Revolution Extreme (G*C36 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5389 GAME( 2003, drmn8m,    sys573,   drmn4m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 8th Mix (G*C07 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5390 GAME( 2003, gtrfrk9m,  sys573,   gtrfrk7m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 9th Mix (G*C39 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5391 GAME( 2003, drmn9m,    sys573,   drmn9m,     drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 9th Mix (G*D09 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5392 GAME( 2003, gtfrk10m,  sys573,   gtfrk10m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5393 GAME( 2003, gtfrk10ma, gtfrk10m, gtfrk10m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5394 GAME( 2003, gtfrk10mb, gtfrk10m, gtfrk10mb,  gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5395 GAME( 2004, gtfrk11m,  sys573,   gtfrk11m,   gtrfrks,   ksys573_state, empty_init,    ROT0,  "Konami", "Guitar Freaks 11th Mix (G*D39 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5396 GAME( 2004, drmn10m,   sys573,   drmn10m,    drmn,      ksys573_state, empty_init,    ROT0,  "Konami", "DrumMania 10th Mix (G*D40 VER. JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */
5397