1 #include "../vidhrdw/m72.c"
2 #include "../sndhrdw/m72.c"
3 
4 /***************************************************************************
5 
6 IREM M72 board
7 
8 driver by Nicola Salmoria
9 protection information by Nao
10 
11                                    Board    Working? Protected?
12 R-Type                              M72        Y         N
13 Battle Chopper / Mr. Heli           M72        Y         Y
14 Ninja Spirit                        M72        Y         Y
15 Image Fight                         M72        Y         Y
16 Legend of Hero Tonma                M72        Y         Y
17 X Multiply                          M72(1)     Y         Y
18 Dragon Breed                        M81        Y         Y
19 R-Type II                           M82/M84(2) Y         N
20 Major Title                         M84        Y         N
21 Hammerin' Harry	/ Daiku no Gensan   M82(3)     Y         N
22 Ken-Go                              ?          N      Encrypted
23 Pound for Pound                     M85        Y         N
24 Air Duel                            M72?       Y         Y
25 Gallop - Armed Police Unit          M73?(4)    Y         N
26 
27 (1) different addressing PALs, so different memory map
28 (2) rtype2j has M84 written on the board, but it's the same hardware as rtype2
29 (3) multiple versions supported, running on different hardware
30 (4) there is also a M84 version of Gallop
31 
32 
33 Notes:
34 
35 Major Title is supposed to disable rowscroll after a shot, but I haven't found how
36 
37 Sprite/tile priorities are not completely understood.
38 
39 Sound doesn't work in Gallop
40 
41 Samples are missing in Gallop. The NMI handler for the sound CPU is just RETN, so
42 the hardware has to be different. I also can't make a good sample start offset
43 table. Same thing with Air Duel.
44 
45 Maybe there is a layer enable register, e.g. nspirit shows (for an instant)
46 incomplete screens with bad colors when you start a game.
47 
48 No samples in Pound for Pound, I haven't checked why; there are a lot of unknown
49 I/O writes.
50 
51 ***************************************************************************/
52 
53 #include "driver.h"
54 #include "vidhrdw/generic.h"
55 #include "sndhrdw/m72.h"
56 
57 
58 /* in vidhrdw/m72.c */
59 extern unsigned char *m72_videoram1,*m72_videoram2,*majtitle_rowscrollram;
60 void m72_init_machine(void);
61 void xmultipl_init_machine(void);
62 void poundfor_init_machine(void);
63 int m72_interrupt(void);
64 int m72_vh_start(void);
65 int dbreed_vh_start(void);
66 int rtype2_vh_start(void);
67 int majtitle_vh_start(void);
68 int hharry_vh_start(void);
69 void m72_vh_stop(void);
70 READ_HANDLER( m72_palette1_r );
71 READ_HANDLER( m72_palette2_r );
72 WRITE_HANDLER( m72_palette1_w );
73 WRITE_HANDLER( m72_palette2_w );
74 READ_HANDLER( m72_videoram1_r );
75 READ_HANDLER( m72_videoram2_r );
76 WRITE_HANDLER( m72_videoram1_w );
77 WRITE_HANDLER( m72_videoram2_w );
78 WRITE_HANDLER( majtitle_videoram2_w );
79 WRITE_HANDLER( m72_irq_line_w );
80 WRITE_HANDLER( m72_scrollx1_w );
81 WRITE_HANDLER( m72_scrollx2_w );
82 WRITE_HANDLER( m72_scrolly1_w );
83 WRITE_HANDLER( m72_scrolly2_w );
84 WRITE_HANDLER( m72_spritectrl_w );
85 WRITE_HANDLER( hharry_spritectrl_w );
86 WRITE_HANDLER( hharryu_spritectrl_w );
87 void m72_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
88 void dbreed_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
89 void majtitle_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
90 void m72_eof_callback(void);
91 
92 
93 static unsigned char *protection_ram;
94 
95 
96 
97 /***************************************************************************
98 
99 Sample playback
100 
101 In the later games, the sound CPU can program the start offset of the PCM
102 samples, but it seems the earlier games have them hardcoded somewhere (maybe
103 a PROM?). So, here I provided some tables with the start offset precomputed.
104 They could be built automatically for the most part (00 marks the end of a
105 sample), but some games have holes in the numbering so we would have to
106 do some alterations anyway.
107 
108 Note that Gallop is wrong, and it doesn't play anything anyway, because the
109 NMI handler of the sound CPU consists of just RETN - so it must be using
110 different hardware.
111 
112 ***************************************************************************/
113 
WRITE_HANDLER(bchopper_sample_trigger_w)114 static WRITE_HANDLER( bchopper_sample_trigger_w )
115 {
116 	int a[6] = { 0x0000, 0x0010, 0x2510, 0x6510, 0x8510, 0x9310 };
117 	if (data < 6) m72_set_sample_start(a[data]);
118 }
119 
WRITE_HANDLER(nspirit_sample_trigger_w)120 static WRITE_HANDLER( nspirit_sample_trigger_w )
121 {
122 	int a[9] = { 0x0000, 0x0020, 0x2020, 0, 0x5720, 0, 0x7b60, 0x9b60, 0xc360 };
123 	if (data < 9) m72_set_sample_start(a[data]);
124 }
125 
WRITE_HANDLER(imgfight_sample_trigger_w)126 static WRITE_HANDLER( imgfight_sample_trigger_w )
127 {
128 	int a[7] = { 0x0000, 0x0020, 0x44e0, 0x98a0, 0xc820, 0xf7a0, 0x108c0 };
129 	if (data < 7) m72_set_sample_start(a[data]);
130 }
131 
WRITE_HANDLER(loht_sample_trigger_w)132 static WRITE_HANDLER( loht_sample_trigger_w )
133 {
134 	int a[7] = { 0x0000, 0x0020, 0, 0x2c40, 0x4320, 0x7120, 0xb200 };
135 	if (data < 7) m72_set_sample_start(a[data]);
136 }
137 
WRITE_HANDLER(xmultipl_sample_trigger_w)138 static WRITE_HANDLER( xmultipl_sample_trigger_w )
139 {
140 	int a[3] = { 0x0000, 0x0020, 0x1a40 };
141 	if (data < 3) m72_set_sample_start(a[data]);
142 }
143 
WRITE_HANDLER(dbreed_sample_trigger_w)144 static WRITE_HANDLER( dbreed_sample_trigger_w )
145 {
146 	int a[9] = { 0x00000, 0x00020, 0x02c40, 0x08160, 0x0c8c0, 0x0ffe0, 0x13000, 0x15820, 0x15f40 };
147 	if (data < 9) m72_set_sample_start(a[data]);
148 }
149 
WRITE_HANDLER(airduel_sample_trigger_w)150 static WRITE_HANDLER( airduel_sample_trigger_w )
151 {
152 	int a[16] = { 0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60,
153 				  0x112e0, 0x13dc0, 0x16520, 0x16d60, 0x18ae0, 0x1a5a0, 0x1bf00, 0x1c340 };
154 	if (data < 16) m72_set_sample_start(a[data]);
155 }
156 
WRITE_HANDLER(gallop_sample_trigger_w)157 static WRITE_HANDLER( gallop_sample_trigger_w )
158 {
159 	/* this is most likely wrong */
160 	int a[31] = { 0x00000, 0x00040, 0x01360, 0x02580, 0x04f20, 0x06240, 0x076e0, 0x08660,
161 				  0x092a0, 0x09ba0, 0x0a560, 0x0cee0, 0x0de20, 0x0e620, 0x0f1c0, 0x10240,
162 				  0x11380, 0x127a0, 0x13c40, 0x140a0, 0x16760, 0x17e40, 0x18ee0, 0x19f60,
163 				  0x1bbc0, 0x1cee0, 0x1e320,       0,       0,       0,       0 };
164 	if (data < 31) m72_set_sample_start(a[data]);
165 }
166 
167 
168 
169 /***************************************************************************
170 
171 Protection simulation
172 
173 Most of the games running on this board have an 8751 protection mcu.
174 It is not known how it works in detail, however it's pretty clear that it
175 shares RAM at b0000-b0fff.
176 On startup, the game writes a pattern to the whole RAM, then reads it back
177 expecting it to be INVERTED. If it isn't, it reports a RAM error.
178 If the RAM passes the test, the program increments every byte up to b0ffb,
179 then calls a subroutine at b0000, which has to be provided by the mcu.
180 It seems that this routine is not supposed to RET, but instead it should
181 jump directly to the game entry point. The routine should also write some
182 bytes here and there in RAM (different in every game); those bytes are
183 checked at various points during the game, causing a crash if they aren't
184 right.
185 Note that the program keeps incrementing b0ffe while the game is running,
186 maybe this is done to keep the 8751 alive. We don't bother with that.
187 
188 Finally, to do the ROM test the program asks the mcu to provide the correct
189 values. This is done only in service, so doesn't seem to be much of a
190 protection. Here we have provided the correct crcs for the available dumps,
191 of course there is no guarantee that they are actually good.
192 
193 All the protection routines below are entirely made up. They get the games
194 running, but they have not been derived from the real 8751 code.
195 
196 ***************************************************************************/
197 
198 #define CODE_LEN 96
199 #define CRC_LEN 18
200 
201 /* Battle Chopper / Mr. Heli */
202 static unsigned char bchopper_code[CODE_LEN] =
203 {
204 	0x68,0x00,0xa0,				// push 0a000h
205 	0x1f,						// pop ds
206 	0xc6,0x06,0x38,0x38,0x53,	// mov [3838h], byte 053h
207 	0xc6,0x06,0x3a,0x38,0x41,	// mov [383ah], byte 041h
208 	0xc6,0x06,0x3c,0x38,0x4d,	// mov [383ch], byte 04dh
209 	0xc6,0x06,0x3e,0x38,0x4f,	// mov [383eh], byte 04fh
210 	0xc6,0x06,0x40,0x38,0x54,	// mov [3840h], byte 054h
211 	0xc6,0x06,0x42,0x38,0x4f,	// mov [3842h], byte 04fh
212 	0x68,0x00,0xb0,				// push 0b000h
213 	0x1f,						// pop ds
214 	0xc6,0x06,0x00,0x09,0x49^0xff,	// mov [0900h], byte 049h
215 	0xc6,0x06,0x00,0x0a,0x49^0xff,	// mov [0a00h], byte 049h
216 	0xc6,0x06,0x00,0x0b,0x49^0xff,	// mov [0b00h], byte 049h
217 	0xc6,0x06,0x00,0x00,0xcb^0xff,	// mov [0000h], byte 0cbh ; retf : bypass protection check during the game
218 	0x68,0x00,0xd0,				// push 0d000h
219 	0x1f,						// pop ds
220 	// the following is for mrheli only, the game checks for
221 	// "This game can only be played in Japan..." message in the video text buffer
222 	// the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
223 	0xc6,0x06,0x70,0x16,0x77,	// mov [1670h], byte 077h
224 	0xea,0x68,0x01,0x40,0x00	// jmp  0040:$0168
225 };
226 static unsigned char bchopper_crc[CRC_LEN] =  {	0x1a,0x12,0x5c,0x08, 0x84,0xb6,0x73,0xd1,
227 												0x54,0x91,0x94,0xeb, 0x00,0x00 };
228 static unsigned char mrheli_crc[CRC_LEN] =	  {	0x24,0x21,0x1f,0x14, 0xf9,0x28,0xfb,0x47,
229 												0x4c,0x77,0x9e,0xc2, 0x00,0x00 };
230 
231 /* Ninja Spirit */
232 static unsigned char nspirit_code[CODE_LEN] =
233 {
234 	0x68,0x00,0xa0,				// push 0a000h
235 	0x1f,						// pop ds
236 	0xc6,0x06,0x38,0x38,0x4e,	// mov [3838h], byte 04eh
237 	0xc6,0x06,0x3a,0x38,0x49,	// mov [383ah], byte 049h
238 	0xc6,0x06,0x3c,0x38,0x4e,	// mov [383ch], byte 04eh
239 	0xc6,0x06,0x3e,0x38,0x44,	// mov [383eh], byte 044h
240 	0xc6,0x06,0x40,0x38,0x4f,	// mov [3840h], byte 04fh
241 	0xc6,0x06,0x42,0x38,0x55,	// mov [3842h], byte 055h
242 	0x68,0x00,0xb0,				// push 0b000h
243 	0x1f,						// pop ds
244 	0xc6,0x06,0x00,0x09,0x49^0xff,	// mov [0900h], byte 049h
245 	0xc6,0x06,0x00,0x0a,0x49^0xff,	// mov [0a00h], byte 049h
246 	0xc6,0x06,0x00,0x0b,0x49^0xff,	// mov [0b00h], byte 049h
247 	0x68,0x00,0xd0,				// push 0d000h
248 	0x1f,						// pop ds
249 	// the following is for nspiritj only, the game checks for
250 	// "This game can only be played in Japan..." message in the video text buffer
251 	// the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
252 	0xc6,0x06,0x70,0x16,0x57,	// mov [1670h], byte 057h
253 	0xc6,0x06,0x71,0x16,0x00,	// mov [1671h], byte 000h
254 	0xea,0x00,0x00,0x40,0x00	// jmp  0040:$0000
255 };
256 static unsigned char nspirit_crc[CRC_LEN] =   {	0xfe,0x94,0x6e,0x4e, 0xc8,0x33,0xa7,0x2d,
257 												0xf2,0xa3,0xf9,0xe1, 0xa9,0x6c,0x02,0x95, 0x00,0x00 };
258 static unsigned char nspiritj_crc[CRC_LEN] =  {	0x26,0xa3,0xa5,0xe9, 0xc8,0x33,0xa7,0x2d,
259 												0xf2,0xa3,0xf9,0xe1, 0xbc,0x6c,0x01,0x95, 0x00,0x00 };
260 
261 /* Image Fight */
262 static unsigned char imgfight_code[CODE_LEN] =
263 {
264 	0x68,0x00,0xa0,				// push 0a000h
265 	0x1f,						// pop ds
266 	0xc6,0x06,0x38,0x38,0x50,	// mov [3838h], byte 050h
267 	0xc6,0x06,0x3a,0x38,0x49,	// mov [383ah], byte 049h
268 	0xc6,0x06,0x3c,0x38,0x43,	// mov [383ch], byte 043h
269 	0xc6,0x06,0x3e,0x38,0x4b,	// mov [383eh], byte 04bh
270 	0xc6,0x06,0x40,0x38,0x45,	// mov [3840h], byte 045h
271 	0xc6,0x06,0x42,0x38,0x54,	// mov [3842h], byte 054h
272 	0x68,0x00,0xb0,				// push 0b000h
273 	0x1f,						// pop ds
274 	0xc6,0x06,0x00,0x09,0x49^0xff,	// mov [0900h], byte 049h
275 	0xc6,0x06,0x00,0x0a,0x49^0xff,	// mov [0a00h], byte 049h
276 	0xc6,0x06,0x00,0x0b,0x49^0xff,	// mov [0b00h], byte 049h
277 	0xc6,0x06,0x20,0x09,0x49^0xff,	// mov [0920h], byte 049h
278 	0xc6,0x06,0x21,0x09,0x4d^0xff,	// mov [0921h], byte 04dh
279 	0xc6,0x06,0x22,0x09,0x41^0xff,	// mov [0922h], byte 041h
280 	0xc6,0x06,0x23,0x09,0x47^0xff,	// mov [0923h], byte 047h
281 	0x68,0x00,0xd0,				// push 0d000h
282 	0x1f,						// pop ds
283 	// the game checks for
284 	// "This game can only be played in Japan..." message in the video text buffer
285 	// the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
286 	0xc6,0x06,0xb0,0x1c,0x57,	// mov [1cb0h], byte 057h
287 	0xea,0x00,0x00,0x40,0x00	// jmp  0040:$0000
288 };
289 static unsigned char imgfight_crc[CRC_LEN] =  {	0x7e,0xcc,0xec,0x03, 0x04,0x33,0xb6,0xc5,
290 												0xbf,0x37,0x92,0x94, 0x00,0x00 };
291 
292 /* Legend of Hero Tonma */
293 static unsigned char loht_code[CODE_LEN] =
294 {
295 	0x68,0x00,0xa0,				// push 0a000h
296 	0x1f,						// pop ds
297 	0xc6,0x06,0x3c,0x38,0x47,	// mov [383ch], byte 047h
298 	0xc6,0x06,0x3d,0x38,0x47,	// mov [383dh], byte 047h
299 	0xc6,0x06,0x42,0x38,0x44,	// mov [3842h], byte 044h
300 	0xc6,0x06,0x43,0x38,0x44,	// mov [3843h], byte 044h
301 	0x68,0x00,0xb0,				// push 0b000h
302 	0x1f,						// pop ds
303 	0xc6,0x06,0x00,0x09,0x49^0xff,	// mov [0900h], byte 049h
304 	0xc6,0x06,0x00,0x0a,0x49^0xff,	// mov [0a00h], byte 049h
305 	0xc6,0x06,0x00,0x0b,0x49^0xff,	// mov [0b00h], byte 049h
306 	0xea,0x5d,0x01,0x40,0x00	// jmp  0040:$015d
307 };
308 static unsigned char loht_crc[CRC_LEN] =	  {	0x39,0x00,0x82,0xae, 0x2c,0x9d,0x4b,0x73,
309 												0xfb,0xac,0xd4,0x6d, 0x6d,0x5b,0x77,0xc0, 0x00,0x00 };
310 
311 /* X Multiply */
312 static unsigned char xmultipl_code[CODE_LEN] =
313 {
314 	0xea,0x30,0x02,0x00,0x0e	// jmp  0e00:$0230
315 };
316 static unsigned char xmultipl_crc[CRC_LEN] =  {	0x73,0x82,0x4e,0x3f, 0xfc,0x56,0x59,0x06,
317 												0x05,0x48,0xa8,0xf4, 0x00,0x00 };
318 
319 /* Dragon Breed */
320 static unsigned char dbreed_code[CODE_LEN] =
321 {
322 	0xea,0x6c,0x00,0x00,0x00	// jmp  0000:$006c
323 };
324 static unsigned char dbreed_crc[CRC_LEN] =	  {	0xa4,0x96,0x5f,0xc0, 0xab,0x49,0x9f,0x19,
325 												0x84,0xe6,0xd6,0xca, 0x00,0x00 };
326 
327 /* Air Duel */
328 static unsigned char airduel_code[CODE_LEN] =
329 {
330 	0x68,0x00,0xd0,				// push 0d000h
331 	0x1f,						// pop ds
332 	// the game checks for
333 	// "This game can only be played in Japan..." message in the video text buffer
334 	// the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
335 	0xc6,0x06,0xc0,0x1c,0x57,	// mov [1cc0h], byte 057h
336 	0xea,0x69,0x0b,0x00,0x00	// jmp  0000:$0b69
337 };
338 static unsigned char airduel_crc[CRC_LEN] =	  {	0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea,
339 												0x00,0x00 };
340 
341 
342 unsigned char *protection_code,*protection_crc;
343 
READ_HANDLER(protection_r)344 static READ_HANDLER( protection_r )
345 {
346 	if (offset == 0xffb)
347 		memcpy(protection_ram,protection_code,CODE_LEN);
348 
349 	return protection_ram[offset];
350 }
351 
WRITE_HANDLER(protection_w)352 static WRITE_HANDLER( protection_w )
353 {
354 	protection_ram[offset] = data ^ 0xff;;
355 
356 	if (offset == 0x0fff && data == 0)
357 		memcpy(&protection_ram[0x0fe0],protection_crc,CRC_LEN);
358 }
359 
install_protection_handler(unsigned char * code,unsigned char * crc)360 static void install_protection_handler(unsigned char *code,unsigned char *crc)
361 {
362 	protection_code = code;
363 	protection_crc =  crc;
364 	install_mem_read_handler (0,0xb0000,0xb0fff,protection_r);
365 	install_mem_write_handler(0,0xb0000,0xb0fff,protection_w);
366 	protection_ram = &memory_region(REGION_CPU1)[0xb0000];
367 }
368 
init_bchopper(void)369 static void init_bchopper(void)
370 {
371 	install_protection_handler(bchopper_code,bchopper_crc);
372 
373 	install_port_write_handler(0,0xc0,0xc0,bchopper_sample_trigger_w);
374 }
375 
init_mrheli(void)376 static void init_mrheli(void)
377 {
378 	install_protection_handler(bchopper_code,mrheli_crc);
379 
380 	install_port_write_handler(0,0xc0,0xc0,bchopper_sample_trigger_w);
381 }
382 
init_nspirit(void)383 static void init_nspirit(void)
384 {
385 	install_protection_handler(nspirit_code,nspirit_crc);
386 
387 	install_port_write_handler(0,0xc0,0xc0,nspirit_sample_trigger_w);
388 }
389 
init_nspiritj(void)390 static void init_nspiritj(void)
391 {
392 	install_protection_handler(nspirit_code,nspiritj_crc);
393 
394 	install_port_write_handler(0,0xc0,0xc0,nspirit_sample_trigger_w);
395 }
396 
init_imgfight(void)397 static void init_imgfight(void)
398 {
399 	install_protection_handler(imgfight_code,imgfight_crc);
400 
401 	install_port_write_handler(0,0xc0,0xc0,imgfight_sample_trigger_w);
402 }
403 
init_loht(void)404 static void init_loht(void)
405 {
406 	install_protection_handler(loht_code,loht_crc);
407 
408 	install_port_write_handler(0,0xc0,0xc0,loht_sample_trigger_w);
409 }
410 
init_xmultipl(void)411 static void init_xmultipl(void)
412 {
413 	install_protection_handler(xmultipl_code,xmultipl_crc);
414 
415 	install_port_write_handler(0,0xc0,0xc0,xmultipl_sample_trigger_w);
416 }
417 
init_dbreed(void)418 static void init_dbreed(void)
419 {
420 	install_protection_handler(dbreed_code,dbreed_crc);
421 
422 	install_port_write_handler(0,0xc0,0xc0,dbreed_sample_trigger_w);
423 }
424 
init_airduel(void)425 static void init_airduel(void)
426 {
427 	install_protection_handler(airduel_code,airduel_crc);
428 
429 	install_port_write_handler(0,0xc0,0xc0,airduel_sample_trigger_w);
430 }
431 
init_gallop(void)432 static void init_gallop(void)
433 {
434 	install_port_write_handler(0,0xc0,0xc0,gallop_sample_trigger_w);
435 }
436 
437 
438 
439 
440 static unsigned char *soundram;
441 
442 
READ_HANDLER(soundram_r)443 static READ_HANDLER( soundram_r )
444 {
445 	return soundram[offset];
446 }
447 
WRITE_HANDLER(soundram_w)448 static WRITE_HANDLER( soundram_w )
449 {
450 	soundram[offset] = data;
451 }
452 
WRITE_HANDLER(m72_port02_w)453 static WRITE_HANDLER( m72_port02_w )
454 {
455 	if (offset != 0)
456 	{
457 		//if (data) logerror("write %02x to port 03\n",data);
458 		return;
459 	}
460 	//if (data & 0xec) logerror("write %02x to port 02\n",data);
461 
462 	/* bits 0/1 are coin counters */
463 	coin_counter_w(0,data & 0x01);
464 	coin_counter_w(1,data & 0x02);
465 
466 	/* bit 3 is used but unknown */
467 
468 	/* bit 4 resets sound CPU (active low) */
469 	if (data & 0x10)
470 		cpu_set_reset_line(1,CLEAR_LINE);
471 	else
472 		cpu_set_reset_line(1,ASSERT_LINE);
473 
474 	/* other bits unknown */
475 }
476 
WRITE_HANDLER(rtype2_port02_w)477 static WRITE_HANDLER( rtype2_port02_w )
478 {
479 	if (offset != 0)
480 	{
481 		//if (data) logerror("write %02x to port 03\n",data);
482 		return;
483 	}
484 	//if (data & 0xfc) logerror("write %02x to port 02\n",data);
485 
486 	/* bits 0/1 are coin counters */
487 	coin_counter_w(0,data & 0x01);
488 	coin_counter_w(1,data & 0x02);
489 
490 	/* other bits unknown */
491 }
492 
493 
READ_HANDLER(poundfor_trackball_r)494 static READ_HANDLER( poundfor_trackball_r )
495 {
496 	static int prev[4],diff[4];
497 
498 	if (offset == 0)
499 	{
500 		int i,curr;
501 
502 		for (i = 0;i < 4;i++)
503 		{
504 			curr = readinputport(6+i);
505 			diff[i] = (curr - prev[i]);
506 			prev[i] = curr;
507 		}
508 	}
509 
510 	switch (offset)
511 	{
512 		default:
513 		case 0:
514 			return diff[0] & 0xff;
515 		case 1:
516 			return 0;
517 		case 2:
518 			return ((diff[0] >> 8) & 0x1f) | (readinputport(4) & 0xe0);
519 		case 3:
520 			return ((diff[2] >> 8) & 0x1f) | (readinputport(5) & 0xe0);
521 		case 4:
522 			return diff[1] & 0xff;
523 		case 5:
524 			return diff[3] & 0xff;
525 		case 6:
526 			return ((diff[1] >> 8) & 0x1f);
527 		case 7:
528 			return ((diff[3] >> 8) & 0x1f);
529 	}
530 }
531 
532 
533 
534 #define CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) 						\
535 static struct MemoryReadAddress NAME##_readmem[] =				\
536 {																\
537 	{ 0x00000, ROMSIZE-1, MRA_ROM },							\
538 	{ WORKRAM, WORKRAM+0x3fff, MRA_RAM },						\
539 	{ 0xc0000, 0xc03ff, MRA_RAM },								\
540 	{ 0xc8000, 0xc8bff, m72_palette1_r },						\
541 	{ 0xcc000, 0xccbff, m72_palette2_r },						\
542 	{ 0xd0000, 0xd3fff, m72_videoram1_r },						\
543 	{ 0xd8000, 0xdbfff, m72_videoram2_r },						\
544 	{ 0xe0000, 0xeffff, soundram_r },							\
545 	{ -1 }	/* end of table */									\
546 };																\
547 static struct MemoryWriteAddress NAME##_writemem[] =			\
548 {																\
549 	{ 0x00000, ROMSIZE-1, MWA_ROM },							\
550 	{ WORKRAM, WORKRAM+0x3fff, MWA_RAM },	/* work RAM */		\
551 	{ 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },	\
552 	{ 0xc8000, 0xc8bff, m72_palette1_w, &paletteram },			\
553 	{ 0xcc000, 0xccbff, m72_palette2_w, &paletteram_2 },		\
554 	{ 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },		\
555 	{ 0xd8000, 0xdbfff, m72_videoram2_w, &m72_videoram2 },		\
556 	{ 0xe0000, 0xeffff, soundram_w },							\
557 	{ -1 }	/* end of table */									\
558 };
559 
560 /*                     ROMSIZE  WORKRAM */
561 CPU1_MEMORY( rtype,    0x40000, 0x40000 )
562 CPU1_MEMORY( m72,      0x80000, 0xa0000 )
563 CPU1_MEMORY( xmultipl, 0x80000, 0x80000 )
564 CPU1_MEMORY( dbreed,   0x80000, 0x90000 )
565 
566 
567 static struct MemoryReadAddress rtype2_readmem[] =
568 {
569 	{ 0x00000, 0x7ffff, MRA_ROM },
570 	{ 0xc0000, 0xc03ff, MRA_RAM },
571 	{ 0xc8000, 0xc8bff, m72_palette1_r },
572 	{ 0xd0000, 0xd3fff, m72_videoram1_r },
573 	{ 0xd4000, 0xd7fff, m72_videoram2_r },
574 	{ 0xd8000, 0xd8bff, m72_palette2_r },
575 	{ 0xe0000, 0xe3fff, MRA_RAM },
576 	{ -1 }	/* end of table */
577 };
578 
579 static struct MemoryWriteAddress rtype2_writemem[] =
580 {
581 	{ 0x00000, 0x7ffff, MWA_ROM },
582 	{ 0xb0000, 0xb0001, m72_irq_line_w },
583 	{ 0xbc000, 0xbc001, m72_spritectrl_w },
584 	{ 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
585 	{ 0xc8000, 0xc8bff, m72_palette1_w, &paletteram },
586 	{ 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },
587 	{ 0xd4000, 0xd7fff, m72_videoram2_w, &m72_videoram2 },
588 	{ 0xd8000, 0xd8bff, m72_palette2_w, &paletteram_2 },
589 	{ 0xe0000, 0xe3fff, MWA_RAM },	/* work RAM */
590 	{ -1 }	/* end of table */
591 };
592 
593 static struct MemoryReadAddress majtitle_readmem[] =
594 {
595 	{ 0x00000, 0x7ffff, MRA_ROM },
596 	{ 0xa0000, 0xa03ff, MRA_RAM },
597 	{ 0xa4000, 0xa4bff, m72_palette2_r },
598 	{ 0xac000, 0xaffff, m72_videoram1_r },
599 	{ 0xb0000, 0xbffff, m72_videoram2_r },
600 	{ 0xc0000, 0xc03ff, MRA_RAM },
601 	{ 0xc8000, 0xc83ff, MRA_RAM },
602 	{ 0xcc000, 0xccbff, m72_palette1_r },
603 	{ 0xd0000, 0xd3fff, MRA_RAM },
604 	{ -1 }	/* end of table */
605 };
606 
607 static struct MemoryWriteAddress majtitle_writemem[] =
608 {
609 	{ 0x00000, 0x7ffff, MWA_ROM },
610 	{ 0xa0000, 0xa03ff, MWA_RAM, &majtitle_rowscrollram },
611 	{ 0xa4000, 0xa4bff, m72_palette2_w, &paletteram_2 },
612 	{ 0xac000, 0xaffff, m72_videoram1_w, &m72_videoram1 },
613 	{ 0xb0000, 0xbffff, majtitle_videoram2_w, &m72_videoram2 },
614 	{ 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
615 	{ 0xc8000, 0xc83ff, MWA_RAM, &spriteram_2 },
616 	{ 0xcc000, 0xccbff, m72_palette1_w, &paletteram },
617 	{ 0xd0000, 0xd3fff, MWA_RAM },	/* work RAM */
618 	{ 0xe0000, 0xe0001, m72_irq_line_w },
619 //	{ 0xe4000, 0xe4001, MWA_RAM },	/* playfield enable? 1 during screen transitions, 0 otherwise */
620 	{ 0xec000, 0xec001, hharryu_spritectrl_w },
621 	{ -1 }	/* end of table */
622 };
623 
624 static struct MemoryReadAddress hharry_readmem[] =
625 {
626 	{ 0x00000, 0x7ffff, MRA_ROM },
627 	{ 0xa0000, 0xa3fff, MRA_RAM },
628 	{ 0xc0000, 0xc03ff, MRA_RAM },
629 	{ 0xc8000, 0xc8bff, m72_palette1_r },
630 	{ 0xcc000, 0xccbff, m72_palette2_r },
631 	{ 0xd0000, 0xd3fff, m72_videoram1_r },
632 	{ 0xd8000, 0xdbfff, m72_videoram2_r },
633 	{ -1 }	/* end of table */
634 };
635 
636 static struct MemoryWriteAddress hharry_writemem[] =
637 {
638 	{ 0x00000, 0x7ffff, MWA_ROM },
639 	{ 0xa0000, 0xa3fff, MWA_RAM },	/* work RAM */
640 	{ 0xb0ffe, 0xb0fff, MWA_RAM },	/* leftover from protection?? */
641 	{ 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
642 	{ 0xc8000, 0xc8bff, m72_palette1_w, &paletteram },
643 	{ 0xcc000, 0xccbff, m72_palette2_w, &paletteram_2 },
644 	{ 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },
645 	{ 0xd8000, 0xdbfff, m72_videoram2_w, &m72_videoram2 },
646 	{ -1 }	/* end of table */
647 };
648 
649 static struct MemoryReadAddress hharryu_readmem[] =
650 {
651 	{ 0x00000, 0x7ffff, MRA_ROM },
652 	{ 0xa0000, 0xa0bff, m72_palette1_r },
653 	{ 0xa8000, 0xa8bff, m72_palette2_r },
654 	{ 0xc0000, 0xc03ff, MRA_RAM },
655 	{ 0xd0000, 0xd3fff, m72_videoram1_r },
656 	{ 0xd4000, 0xd7fff, m72_videoram2_r },
657 	{ 0xe0000, 0xe3fff, MRA_RAM },
658 	{ -1 }	/* end of table */
659 };
660 
661 static struct MemoryWriteAddress hharryu_writemem[] =
662 {
663 	{ 0x00000, 0x7ffff, MWA_ROM },
664 	{ 0xa0000, 0xa0bff, m72_palette1_w, &paletteram },
665 	{ 0xa8000, 0xa8bff, m72_palette2_w, &paletteram_2 },
666 	{ 0xb0000, 0xb0001, m72_irq_line_w },
667 	{ 0xbc000, 0xbc001, hharryu_spritectrl_w },
668 	{ 0xb0ffe, 0xb0fff, MWA_RAM },	/* leftover from protection?? */
669 	{ 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
670 	{ 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },
671 	{ 0xd4000, 0xd7fff, m72_videoram2_w, &m72_videoram2 },
672 	{ 0xe0000, 0xe3fff, MWA_RAM },	/* work RAM */
673 	{ -1 }	/* end of table */
674 };
675 
676 static struct IOReadPort readport[] =
677 {
678 	{ 0x00, 0x00, input_port_0_r },
679 	{ 0x01, 0x01, input_port_1_r },
680 	{ 0x02, 0x02, input_port_2_r },
681 	{ 0x03, 0x03, input_port_3_r },
682 	{ 0x04, 0x04, input_port_4_r },
683 	{ 0x05, 0x05, input_port_5_r },
684 	{ -1 }  /* end of table */
685 };
686 
687 static struct IOReadPort poundfor_readport[] =
688 {
689 	{ 0x02, 0x02, input_port_0_r },
690 	{ 0x03, 0x03, input_port_1_r },
691 	{ 0x04, 0x04, input_port_2_r },
692 	{ 0x05, 0x05, input_port_3_r },
693 	{ 0x08, 0x0f, poundfor_trackball_r },
694 	{ -1 }  /* end of table */
695 };
696 
697 
698 static struct IOWritePort writeport[] =
699 {
700 	{ 0x00, 0x01, m72_sound_command_w },
701 	{ 0x02, 0x03, m72_port02_w },	/* coin counters, reset sound cpu, other stuff? */
702 	{ 0x04, 0x05, m72_spritectrl_w },
703 	{ 0x06, 0x07, m72_irq_line_w },
704 	{ 0x80, 0x81, m72_scrolly1_w },
705 	{ 0x82, 0x83, m72_scrollx1_w },
706 	{ 0x84, 0x85, m72_scrolly2_w },
707 	{ 0x86, 0x87, m72_scrollx2_w },
708 /*	{ 0xc0, 0xc0      trigger sample, filled by init_ function */
709 	{ -1 }  /* end of table */
710 };
711 
712 static struct IOWritePort xmultipl_writeport[] =
713 {
714 	{ 0x00, 0x01, m72_sound_command_w },
715 	{ 0x02, 0x03, m72_port02_w },	/* coin counters, reset sound cpu, other stuff? */
716 	{ 0x04, 0x04, hharry_spritectrl_w },
717 	{ 0x06, 0x07, m72_irq_line_w },
718 	{ 0x80, 0x81, m72_scrolly1_w },
719 	{ 0x82, 0x83, m72_scrollx1_w },
720 	{ 0x84, 0x85, m72_scrolly2_w },
721 	{ 0x86, 0x87, m72_scrollx2_w },
722 /*	{ 0xc0, 0xc0      trigger sample, filled by init_ function */
723 	{ -1 }  /* end of table */
724 };
725 
726 static struct IOWritePort rtype2_writeport[] =
727 {
728 	{ 0x00, 0x01, m72_sound_command_w },
729 	{ 0x02, 0x03, rtype2_port02_w },
730 	{ 0x80, 0x81, m72_scrolly1_w },
731 	{ 0x82, 0x83, m72_scrollx1_w },
732 	{ 0x84, 0x85, m72_scrolly2_w },
733 	{ 0x86, 0x87, m72_scrollx2_w },
734 	{ -1 }  /* end of table */
735 };
736 
737 static struct IOWritePort hharry_writeport[] =
738 {
739 	{ 0x00, 0x01, m72_sound_command_w },
740 	{ 0x02, 0x03, rtype2_port02_w },	/* coin counters, reset sound cpu, other stuff? */
741 	{ 0x04, 0x04, hharry_spritectrl_w },
742 	{ 0x06, 0x07, m72_irq_line_w },
743 	{ 0x80, 0x81, m72_scrolly1_w },
744 	{ 0x82, 0x83, m72_scrollx1_w },
745 	{ 0x84, 0x85, m72_scrolly2_w },
746 	{ 0x86, 0x87, m72_scrollx2_w },
747 	{ -1 }  /* end of table */
748 };
749 
750 
751 static struct MemoryReadAddress sound_readmem[] =
752 {
753 	{ 0x0000, 0xffff, MRA_RAM },
754 	{ -1 }	/* end of table */
755 };
756 
757 static struct MemoryWriteAddress sound_writemem[] =
758 {
759 	{ 0x0000, 0xffff, MWA_RAM, &soundram },
760 	{ -1 }	/* end of table */
761 };
762 
763 static struct IOReadPort sound_readport[] =
764 {
765 	{ 0x01, 0x01, YM2151_status_port_0_r },
766 	{ 0x02, 0x02, soundlatch_r },
767 	{ 0x84, 0x84, m72_sample_r },
768 	{ -1 }  /* end of table */
769 };
770 
771 static struct IOWritePort sound_writeport[] =
772 {
773 	{ 0x00, 0x00, YM2151_register_port_0_w },
774 	{ 0x01, 0x01, YM2151_data_port_0_w },
775 	{ 0x06, 0x06, m72_sound_irq_ack_w },
776 	{ 0x82, 0x82, m72_sample_w },
777 	{ -1 }  /* end of table */
778 };
779 
780 static struct IOReadPort rtype2_sound_readport[] =
781 {
782 	{ 0x01, 0x01, YM2151_status_port_0_r },
783 	{ 0x80, 0x80, soundlatch_r },
784 	{ 0x84, 0x84, m72_sample_r },
785 	{ -1 }  /* end of table */
786 };
787 
788 static struct IOWritePort rtype2_sound_writeport[] =
789 {
790 	{ 0x00, 0x00, YM2151_register_port_0_w },
791 	{ 0x01, 0x01, YM2151_data_port_0_w },
792 	{ 0x80, 0x81, rtype2_sample_addr_w },
793 	{ 0x82, 0x82, m72_sample_w },
794 	{ 0x83, 0x83, m72_sound_irq_ack_w },
795 	{ -1 }  /* end of table */
796 };
797 
798 static struct IOReadPort poundfor_sound_readport[] =
799 {
800 	{ 0x41, 0x41, YM2151_status_port_0_r },
801 	{ 0x42, 0x42, soundlatch_r },
802 //	{ 0x84, 0x84, m72_sample_r },
803 	{ -1 }  /* end of table */
804 };
805 
806 static struct IOWritePort poundfor_sound_writeport[] =
807 {
808 	{ 0x40, 0x40, YM2151_register_port_0_w },
809 	{ 0x41, 0x41, YM2151_data_port_0_w },
810 	{ 0x42, 0x42, m72_sound_irq_ack_w },
811 //	{ 0x80, 0x81, _sample_addr_w },
812 //	{ 0x82, 0x82, m72_sample_w },
813 	{ -1 }  /* end of table */
814 };
815 
816 
817 
818 #define JOYSTICK_1 \
819 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
820 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY ) \
821 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY ) \
822 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
823 
824 #define JOYSTICK_2 \
825 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL ) \
826 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL ) \
827 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL ) \
828 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
829 
830 #define COIN_MODE_1 \
831 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) \
832 	PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) ) \
833 	PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) ) \
834 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) ) \
835 	PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) ) \
836 	PORT_DIPSETTING(    0x10, DEF_STR( 8C_3C ) ) \
837 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) ) \
838 	PORT_DIPSETTING(    0x20, DEF_STR( 5C_3C ) ) \
839 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) ) \
840 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
841 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) ) \
842 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) ) \
843 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) ) \
844 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) ) \
845 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) ) \
846 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) ) \
847 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
848 
849 #define COIN_MODE_2 \
850 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
851 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) ) \
852 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) ) \
853 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) ) \
854 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
855 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
856 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_2C ) ) \
857 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) ) \
858 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) ) \
859 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_6C ) )
860 
861 
862 INPUT_PORTS_START( rtype )
863 	PORT_START
864 	JOYSTICK_1
865 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
866 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
867 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
868 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
869 
870 	PORT_START
871 	JOYSTICK_2
872 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
873 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
874 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
875 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
876 
877 	PORT_START
878 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
879 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
880 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
881 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
882 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
883 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
884 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
885 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
886 
887 	PORT_START
888 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
889 
890 	PORT_START
891 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
892 	PORT_DIPSETTING(    0x02, "2" )
893 	PORT_DIPSETTING(    0x03, "3" )
894 	PORT_DIPSETTING(    0x01, "4" )
895 	PORT_DIPSETTING(    0x00, "5" )
896 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
897 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
898 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
899 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
900 	PORT_DIPSETTING(    0x00, "50k 150k 250k 400k 600k" )
901 	PORT_DIPSETTING(    0x08, "100k 200k 350k 500k 700k"  )
902     /* Coin Mode 1 */
903     COIN_MODE_1
904     /* Coin Mode 2, not supported yet */
905     // COIN_MODE_2
906 
907 	PORT_START
908 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
909 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
910 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
911 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
912 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
913 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
914 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
915 	PORT_DIPSETTING(    0x04, "Mode 1" )
916 	PORT_DIPSETTING(    0x00, "Mode 2" )
917 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
918 	PORT_DIPSETTING(    0x08, "Normal" )
919 	PORT_DIPSETTING(    0x00, "Difficult" )
920 	PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
921 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
922 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
923 	/* In stop mode, press 2 to stop and 1 to restart */
924 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
925 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
926 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
927 	PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
928 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
929 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
930 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
931 INPUT_PORTS_END
932 
933 /* identical but Demo Sounds is inverted */
934 INPUT_PORTS_START( rtypep )
935 	PORT_START
936 	JOYSTICK_1
937 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
938 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
939 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
940 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
941 
942 	PORT_START
943 	JOYSTICK_2
944 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
945 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
946 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
947 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
948 
949 	PORT_START
950 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
951 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
952 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
953 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
954 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
955 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
956 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
957 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
958 
959 	PORT_START
960 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
961 
962 	PORT_START
963 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
964 	PORT_DIPSETTING(    0x02, "2" )
965 	PORT_DIPSETTING(    0x03, "3" )
966 	PORT_DIPSETTING(    0x01, "4" )
967 	PORT_DIPSETTING(    0x00, "5" )
968 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) )
969 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
970 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
971 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
972 	PORT_DIPSETTING(    0x00, "50k 150k 250k 400k 600k" )
973 	PORT_DIPSETTING(    0x08, "100k 200k 350k 500k 700k"  )
974     /* Coin Mode 1 */
975     COIN_MODE_1
976     /* Coin Mode 2, not supported yet */
977     // COIN_MODE_2
978 
979 	PORT_START
980 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
981 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
982 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
983 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
984 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
985 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
986 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
987 	PORT_DIPSETTING(    0x04, "Mode 1" )
988 	PORT_DIPSETTING(    0x00, "Mode 2" )
989 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
990 	PORT_DIPSETTING(    0x08, "Normal" )
991 	PORT_DIPSETTING(    0x00, "Difficult" )
992 	PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
993 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
994 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
995 	/* In stop mode, press 2 to stop and 1 to restart */
996 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
997 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
998 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
999 	PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1000 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1001 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1002 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1003 INPUT_PORTS_END
1004 
1005 INPUT_PORTS_START( bchopper )
1006 	PORT_START
1007 	JOYSTICK_1
1008 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1009 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1010 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1011 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1012 
1013 	PORT_START
1014 	JOYSTICK_2
1015 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1016 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1017 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1018 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1019 
1020 	PORT_START
1021 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1022 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1023 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1024 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1025 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1026 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1027 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1028 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1029 
1030 	PORT_START
1031 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1032 
1033 	PORT_START
1034 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1035 	PORT_DIPSETTING(    0x00, "1" )
1036 	PORT_DIPSETTING(    0x02, "2" )
1037 	PORT_DIPSETTING(    0x03, "3" )
1038 	PORT_DIPSETTING(    0x01, "4" )
1039 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1040 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1041 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1042 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1043 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1044 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1045     /* Coin Mode 1 */
1046     COIN_MODE_1
1047     /* Coin Mode 2, not supported yet */
1048     // COIN_MODE_2
1049 
1050 	PORT_START
1051 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1052 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1053 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1054 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1055 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1056 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
1057 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1058 	PORT_DIPSETTING(    0x04, "Mode 1" )
1059 	PORT_DIPSETTING(    0x00, "Mode 2" )
1060 	PORT_DIPNAME( 0x08, 0x08, "Weapons Cost" )
1061 	PORT_DIPSETTING(    0x08, "Normal" )
1062 	PORT_DIPSETTING(    0x00, "Double" )
1063 	PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
1064 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1065 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
1066 	/* In stop mode, press 2 to stop and 1 to restart */
1067 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
1068 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1069 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1070 	PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1071 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1072 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1073 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1074 INPUT_PORTS_END
1075 
1076 INPUT_PORTS_START( nspirit )
1077 	PORT_START
1078 	JOYSTICK_1
1079 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1080 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
1081 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
1082 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )
1083 
1084 	PORT_START
1085 	JOYSTICK_2
1086 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1087 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1088 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1089 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1090 
1091 	PORT_START
1092 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1093 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1094 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1095 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1096 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1097 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1098 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1099 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1100 
1101 	PORT_START
1102 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1103 
1104 	PORT_START
1105 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1106 	PORT_DIPSETTING(    0x02, "2" )
1107 	PORT_DIPSETTING(    0x03, "3" )
1108 	PORT_DIPSETTING(    0x01, "4" )
1109 	PORT_DIPSETTING(    0x00, "5" )
1110 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1111 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1112 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1113 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* Probably Bonus Life */
1114 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1115 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1116     /* Coin Mode 1 */
1117     COIN_MODE_1
1118     /* Coin Mode 2, not supported yet */
1119     // COIN_MODE_2
1120 
1121 	PORT_START
1122 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1123 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1124 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1125 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1126 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1127 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
1128 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1129 	PORT_DIPSETTING(    0x04, "Mode 1" )
1130 	PORT_DIPSETTING(    0x00, "Mode 2" )
1131 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1132 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1133 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1134 	PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
1135 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1136 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
1137 	/* In stop mode, press 2 to stop and 1 to restart */
1138 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
1139 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1140 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1141 	PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1142 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1143 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1144 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1145 INPUT_PORTS_END
1146 
1147 INPUT_PORTS_START( imgfight )
1148 	PORT_START
1149 	JOYSTICK_1
1150 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1151 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1152 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1153 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1154 
1155 	PORT_START
1156 	JOYSTICK_2
1157 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1158 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1159 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1160 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1161 
1162 	PORT_START
1163 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1164 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1165 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1166 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1167 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1168 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1169 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1170 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1171 
1172 	PORT_START
1173 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1174 
1175 	PORT_START
1176 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1177 	PORT_DIPSETTING(    0x02, "2" )
1178 	PORT_DIPSETTING(    0x03, "3" )
1179 	PORT_DIPSETTING(    0x01, "4" )
1180 	PORT_DIPSETTING(    0x00, "5" )
1181 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1182 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1183 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1184 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1185 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1186 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1187     /* Coin Mode 1 */
1188     COIN_MODE_1
1189     /* Coin Mode 2, not supported yet */
1190     // COIN_MODE_2
1191 
1192 	PORT_START
1193 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1194 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1195 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1196 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1197 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1198 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
1199 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1200 	PORT_DIPSETTING(    0x04, "Mode 1" )
1201 	PORT_DIPSETTING(    0x00, "Mode 2" )
1202 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1203 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1204 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1205 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1206 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1207 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1208 	/* In stop mode, press 2 to stop and 1 to restart */
1209 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
1210 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1211 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1212 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1213 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1214 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1215 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1216 INPUT_PORTS_END
1217 
1218 INPUT_PORTS_START( loht )
1219 	PORT_START
1220 	JOYSTICK_1
1221 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1222 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1223 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1224 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1225 
1226 	PORT_START
1227 	JOYSTICK_2
1228 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1229 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1230 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1231 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1232 
1233 	PORT_START
1234 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1235 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1236 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1237 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1238 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1239 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1240 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1241 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1242 
1243 	PORT_START
1244 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1245 
1246 	PORT_START
1247 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1248 	PORT_DIPSETTING(    0x00, "2" )
1249 	PORT_DIPSETTING(    0x03, "3" )
1250 	PORT_DIPSETTING(    0x02, "4" )
1251 	PORT_DIPSETTING(    0x01, "5" )
1252 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
1253 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1254 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1255 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1256 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1257 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1258     /* Coin Mode 1 */
1259     COIN_MODE_1
1260     /* Coin Mode 2, not supported yet */
1261     // COIN_MODE_2
1262 
1263 	PORT_START
1264 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1265 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1266 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1267 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1268 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1269 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
1270 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1271 	PORT_DIPSETTING(    0x04, "Mode 1" )
1272 	PORT_DIPSETTING(    0x00, "Mode 2" )
1273 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
1274 	PORT_DIPSETTING(    0x00, "Easy" )
1275 	PORT_DIPSETTING(    0x18, "Normal" )
1276 	PORT_DIPSETTING(    0x10, "Hard" )
1277 	PORT_DIPSETTING(    0x08, "Very Hard" )
1278 	/* In stop mode, press 2 to stop and 1 to restart */
1279 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
1280 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1281 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1282 	PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1283 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1284 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1285 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1286 INPUT_PORTS_END
1287 
1288 INPUT_PORTS_START( xmultipl )
1289 	PORT_START
1290 	JOYSTICK_1
1291 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1292 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1293 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1294 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1295 
1296 	PORT_START
1297 	JOYSTICK_2
1298 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1299 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1300 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1301 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1302 
1303 	PORT_START
1304 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1305 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1306 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1307 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1308 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1309 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1310 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1311 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1312 
1313 	PORT_START
1314 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1315 
1316 	PORT_START
1317 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1318 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1319 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1320 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1321 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1322 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1323 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1324 	PORT_DIPSETTING(    0x08, "1" )
1325 	PORT_DIPSETTING(    0x04, "2" )
1326 	PORT_DIPSETTING(    0x0c, "3" )
1327 	PORT_DIPSETTING(    0x00, "4" )
1328     /* Coin Mode 1 */
1329     COIN_MODE_1
1330     /* Coin Mode 2, not supported yet */
1331     // COIN_MODE_2
1332 
1333 	PORT_START
1334 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1335 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1336 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1337 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1338 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1339 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
1340 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1341 	PORT_DIPSETTING(    0x04, "Mode 1" )
1342 	PORT_DIPSETTING(    0x00, "Mode 2" )
1343 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
1344 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1345 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1346 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1347 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1348 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1349 	PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
1350 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1351 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
1352 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1353 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1354 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1355 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1356 INPUT_PORTS_END
1357 
1358 INPUT_PORTS_START( dbreed )
1359 	PORT_START
1360 	JOYSTICK_1
1361 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1362 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1363 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1364 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1365 
1366 	PORT_START
1367 	JOYSTICK_2
1368 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1369 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1370 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1371 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1372 
1373 	PORT_START
1374 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1375 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1376 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1377 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1378 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1379 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1380 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1381 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1382 
1383 	PORT_START
1384 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1385 
1386 	PORT_START
1387 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1388 	PORT_DIPSETTING(    0x02, "2" )
1389 	PORT_DIPSETTING(    0x03, "3" )
1390 	PORT_DIPSETTING(    0x01, "4" )
1391 	PORT_DIPSETTING(    0x00, "5" )
1392 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1393 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1394 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1395 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1396 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1397 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1398     /* Coin Mode 1 */
1399     COIN_MODE_1
1400     /* Coin Mode 2, not supported yet */
1401     // COIN_MODE_2
1402 
1403 	PORT_START
1404 	PORT_DIPNAME( 0x01, 0x01, "Flip Screen?" )
1405 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1406 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1407 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1408 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1409 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
1410 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1411 	PORT_DIPSETTING(    0x04, "Mode 1" )
1412 	PORT_DIPSETTING(    0x00, "Mode 2" )
1413 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1414 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1415 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1416 	PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
1417 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1418 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
1419 	/* In stop mode, press 2 to stop and 1 to restart */
1420 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
1421 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1422 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1423 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1424 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1425 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1426 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1427 INPUT_PORTS_END
1428 
1429 INPUT_PORTS_START( rtype2 )
1430 	PORT_START
1431 	JOYSTICK_1
1432 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1433 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1434 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1435 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1436 
1437 	PORT_START
1438 	JOYSTICK_2
1439 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1440 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1441 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1442 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1443 
1444 	PORT_START
1445 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1446 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1447 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1448 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1449 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1450 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1451 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1452 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1453 
1454 	PORT_START
1455 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1456 
1457 	PORT_START
1458 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1459 	PORT_DIPSETTING(    0x02, "2" )
1460 	PORT_DIPSETTING(    0x03, "3" )
1461 	PORT_DIPSETTING(    0x01, "4" )
1462 	PORT_DIPSETTING(    0x00, "5" )
1463 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
1464 	PORT_DIPSETTING(    0x00, "Very Easy" )
1465 	PORT_DIPSETTING(    0x08, "Easy" )
1466 	PORT_DIPSETTING(    0x0c, "Normal" )
1467 	PORT_DIPSETTING(    0x04, "Hard" )
1468     /* Coin Mode 1 */
1469     COIN_MODE_1
1470     /* Coin Mode 2, not supported yet */
1471     // COIN_MODE_2
1472 
1473 	PORT_START
1474 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1475 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1476 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1477 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
1478 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1479 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1480 	PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1481 	PORT_DIPSETTING(    0x04, "Mode 1" )
1482 	PORT_DIPSETTING(    0x00, "Mode 2" )
1483 	PORT_DIPNAME( 0x18, 0x10, DEF_STR( Cabinet ) )
1484 	PORT_DIPSETTING(    0x10, "Upright 1 Player" )
1485 	PORT_DIPSETTING(    0x00, "Upright 2 Players" )
1486 	PORT_DIPSETTING(    0x18, DEF_STR( Cocktail ) )
1487 //	PORT_DIPSETTING(    0x08, "Upright 2 Players" )
1488 	/* In stop mode, press 2 to stop and 1 to restart */
1489 	PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
1490 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1491 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1492 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1493 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1494 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1495 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1496 INPUT_PORTS_END
1497 
1498 INPUT_PORTS_START( hharry )
1499 	PORT_START
1500 	JOYSTICK_1
1501 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1502 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1503 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1504 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1505 
1506 	PORT_START
1507 	JOYSTICK_2
1508 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1509 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1510 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1511 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1512 
1513 	PORT_START
1514 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1515 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1516 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1517 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1518 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1519 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1520 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1521 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1522 
1523 	PORT_START
1524 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1525 
1526 	PORT_START
1527 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1528 	PORT_DIPSETTING(    0x02, "2" )
1529 	PORT_DIPSETTING(    0x03, "3" )
1530 	PORT_DIPSETTING(    0x01, "4" )
1531 	PORT_DIPSETTING(    0x00, "5" )
1532 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
1533 	PORT_DIPSETTING(    0x08, "Easy" )
1534 	PORT_DIPSETTING(    0x0c, "Normal" )
1535 	PORT_DIPSETTING(    0x04, "Hard" )
1536 	PORT_DIPSETTING(    0x00, "Very Hard" )
1537 	PORT_DIPNAME( 0x10, 0x10, "Limit N. of Continue?" )
1538 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1539 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
1540 	PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
1541 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1542 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
1543 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
1544 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1545 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1546 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1547 
1548 	PORT_START
1549 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1550 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1551 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1552 	PORT_DIPNAME( 0x06, 0x04, DEF_STR( Cabinet ) )
1553 	PORT_DIPSETTING(    0x04, DEF_STR( Upright ) )
1554 	PORT_DIPSETTING(    0x00, "Upright, separate controls" )
1555 	// PORT_DIPSETTING(    0x02, "Upright, separate controls" )
1556 	PORT_DIPSETTING(    0x06, DEF_STR( Cocktail ) )
1557 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
1558 	PORT_DIPSETTING(    0x08, "Mode 1" )
1559 	PORT_DIPSETTING(    0x00, "Mode 2" )
1560 	/* Coin Mode 1 */
1561 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
1562 	PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
1563 	PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
1564 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
1565 	PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
1566 	PORT_DIPSETTING(    0x10, "2 to start, 1 to continue" )
1567 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
1568 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
1569 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
1570 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1571 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
1572 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
1573 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
1574 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
1575 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
1576 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
1577 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1578 	/* Coin mode 2, not supported yet */
1579     // COIN_MODE_2
1580 INPUT_PORTS_END
1581 
1582 INPUT_PORTS_START( poundfor )
1583 	PORT_START
1584 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1585 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1586 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1587 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1588 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1589 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1590 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1591 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1592 
1593 	PORT_START
1594 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1595 
1596 	PORT_START
1597 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1598 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1599 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1600 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1601 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1602 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1603 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1604 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1605 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1606 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1607 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1608 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1609 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1610 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1611 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1612 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1613 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1614 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1615 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
1616 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1617 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1618 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1619 
1620 	PORT_START
1621 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1622 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1623 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1624 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1625 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1626 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1627 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1628 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1629 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1630 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
1631 	PORT_DIPSETTING(    0x08, "Mode 1" )
1632 	PORT_DIPSETTING(    0x00, "Mode 2" )
1633 
1634 	/* Coin Mode 1 */
1635 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
1636 	PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
1637 	PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
1638 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
1639 	PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
1640 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
1641 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
1642 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
1643 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1644 	PORT_DIPSETTING(    0x10, "1 Coin/1 Credit, 1 to continue" )
1645 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
1646 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
1647 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
1648 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
1649 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
1650 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
1651 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1652     /* Coin Mode 2, not supported yet */
1653     // COIN_MODE_2
1654 
1655 	PORT_START
1656 	PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* high bits of trackball X */
1657 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
1658 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
1659 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1660 
1661 	PORT_START
1662 	PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* high bits of trackball X */
1663 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
1664 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
1665 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1666 
1667 	PORT_START
1668 	PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_X | IPF_PLAYER1, 50, 30, 0, 0 )
1669 
1670 	PORT_START
1671 	PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_Y | IPF_REVERSE | IPF_PLAYER1, 50, 30, 0, 0 )
1672 
1673 	PORT_START
1674 	PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_X | IPF_PLAYER2, 50, 30, 0, 0 )
1675 
1676 	PORT_START
1677 	PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_Y | IPF_REVERSE | IPF_PLAYER2, 50, 30, 0, 0 )
1678 INPUT_PORTS_END
1679 
1680 INPUT_PORTS_START( airduel )
1681 	PORT_START
1682 	JOYSTICK_1
1683 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1684 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1685 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1686 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1687 
1688 	PORT_START
1689 	JOYSTICK_2
1690 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1691 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1692 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1693 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1694 
1695 	PORT_START
1696 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1697 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1698 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1699 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1700 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1701 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1702 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1703 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1704 
1705 	PORT_START
1706 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1707 
1708 	PORT_START
1709 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1710 	PORT_DIPSETTING(    0x02, "2" )
1711 	PORT_DIPSETTING(    0x03, "3" )
1712 	PORT_DIPSETTING(    0x01, "4" )
1713 	PORT_DIPSETTING(    0x00, "5" )
1714 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
1715 	PORT_DIPSETTING(    0x00, "Easy" )
1716 	PORT_DIPSETTING(    0x08, "Easy" )
1717 	PORT_DIPSETTING(    0x0c, "Normal" )
1718 	PORT_DIPSETTING(    0x04, "Hard" )
1719 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1720 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1721 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1722 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1723 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1724 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1725 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
1726 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1727 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1728 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1729 
1730 	PORT_START
1731 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1732 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1733 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1734 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1735 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1736 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1737 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1738 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1739 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1740 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
1741 	PORT_DIPSETTING(    0x08, "Mode 1" )
1742 	PORT_DIPSETTING(    0x00, "Mode 2" )
1743 
1744 	/* Coin Mode 1 */
1745 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
1746 	PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
1747 	PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
1748 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
1749 	PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
1750 //	PORT_DIPSETTING(    0x10, DEF_STR( Free-Play ) )  /* another free play */
1751 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
1752 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
1753 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
1754 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1755 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
1756 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
1757 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
1758 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
1759 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
1760 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
1761 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1762     /* Coin Mode 2, not supported yet */
1763     // COIN_MODE_2
1764 INPUT_PORTS_END
1765 
1766 INPUT_PORTS_START( gallop )
1767 	PORT_START
1768 	JOYSTICK_1
1769 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
1770 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
1771 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
1772 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1773 
1774 	PORT_START
1775 	JOYSTICK_2
1776 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
1777 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
1778 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
1779 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1780 
1781 	PORT_START
1782 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1783 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
1784 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1785 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1786 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1787 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
1788 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1789 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1790 
1791 	PORT_START
1792 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1793 
1794 	PORT_START
1795 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1796 	PORT_DIPSETTING(    0x02, "2" )
1797 	PORT_DIPSETTING(    0x03, "3" )
1798 	PORT_DIPSETTING(    0x01, "4" )
1799 	PORT_DIPSETTING(    0x00, "5" )
1800 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1801 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1802 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1803 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1804 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1805 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1806 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1807 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1808 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1809 	PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
1810 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1811 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
1812 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
1813 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1814 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1815 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1816 
1817 	PORT_START
1818 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1819 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1820 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1821 	PORT_DIPNAME( 0x06, 0x00, DEF_STR( Cabinet ) )
1822 	PORT_DIPSETTING(    0x00, "Upright 1 Player" )
1823 	PORT_DIPSETTING(    0x02, "Upright 2 Players" )
1824 	PORT_DIPSETTING(    0x06, DEF_STR( Cocktail ) )
1825 //	PORT_DIPSETTING(    0x04, DEF_STR( Upright ) )
1826 	PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
1827 	PORT_DIPSETTING(    0x08, "Mode 1" )
1828 	PORT_DIPSETTING(    0x00, "Mode 2" )
1829 	/* Coin Mode 1 */
1830 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
1831 	PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
1832 	PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
1833 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
1834 	PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
1835 	PORT_DIPSETTING(    0x10, "2 to start, 1 to continue" )
1836 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
1837 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
1838 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
1839 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1840 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
1841 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
1842 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
1843 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
1844 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
1845 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
1846 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1847 	/* Coin mode 2, not supported yet */
1848     // COIN_MODE_2
1849 INPUT_PORTS_END
1850 
1851 
1852 
1853 static struct GfxLayout tilelayout =
1854 {
1855 	8,8,	/* 8*8 characters */
1856 	RGN_FRAC(1,4),	/* NUM characters */
1857 	4,	/* 4 bits per pixel */
1858 	{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
1859 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
1860 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1861 	8*8	/* every char takes 8 consecutive bytes */
1862 };
1863 
1864 static struct GfxLayout spritelayout =
1865 {
1866 	16,16,	/* 16*16 sprites */
1867 	RGN_FRAC(1,4),	/* NUM characters */
1868 	4,	/* 4 bits per pixel */
1869 	{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
1870 	{ 0, 1, 2, 3, 4, 5, 6, 7,
1871 			16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
1872 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1873 			8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
1874 	32*8	/* every sprite takes 32 consecutive bytes */
1875 };
1876 
1877 static struct GfxDecodeInfo m72_gfxdecodeinfo[] =
1878 {
1879 	{ REGION_GFX1, 0, &spritelayout,    0, 16 },
1880 	{ REGION_GFX2, 0, &tilelayout,    512, 16 },
1881 	{ REGION_GFX3, 0, &tilelayout,    512, 16 },
1882 	{ -1 } /* end of array */
1883 };
1884 
1885 static struct GfxDecodeInfo rtype2_gfxdecodeinfo[] =
1886 {
1887 	{ REGION_GFX1, 0, &spritelayout,     0, 16 },
1888 	{ REGION_GFX2, 0, &tilelayout,     512, 16 },
1889 	{ -1 } /* end of array */
1890 };
1891 
1892 static struct GfxDecodeInfo majtitle_gfxdecodeinfo[] =
1893 {
1894 	{ REGION_GFX1, 0, &spritelayout,     0, 16 },
1895 	{ REGION_GFX2, 0, &tilelayout,     512, 16 },
1896 	{ REGION_GFX3, 0, &spritelayout,     0, 16 },
1897 	{ -1 } /* end of array */
1898 };
1899 
1900 
1901 
1902 static struct YM2151interface ym2151_interface =
1903 {
1904 	1,			/* 1 chip */
1905 	3579545,	/* 3.579545 MHz */
1906 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
1907 	{ m72_ym2151_irq_handler },
1908 	{ 0 }
1909 };
1910 
1911 static struct DACinterface dac_interface =
1912 {
1913 	1,	/* 1 channel */
1914 	{ 40 }
1915 };
1916 
1917 
1918 
1919 static struct MachineDriver machine_driver_rtype =
1920 {
1921 	/* basic machine hardware */
1922 	{
1923 		{
1924 			CPU_V30,
1925 			8000000,	/* ?? */
1926 			rtype_readmem,rtype_writemem,readport,writeport,
1927 			m72_interrupt,16
1928 		},
1929 		{
1930 			CPU_Z80 | CPU_AUDIO_CPU,
1931 			3579545,	/* 3.579545 MHz */
1932 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1933 			ignore_interrupt,0	/* no NMIs unlike the other games */
1934 								/* IRQs are generated by main Z80 and YM2151 */
1935 		}
1936 	},
1937 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
1938 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1939 	m72_init_machine,
1940 
1941 	/* video hardware */
1942 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
1943 	m72_gfxdecodeinfo,
1944 	1024, 1024,
1945 	0,
1946 
1947 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1948 	m72_eof_callback,
1949 	m72_vh_start,
1950 	m72_vh_stop,
1951 	m72_vh_screenrefresh,
1952 
1953 	/* sound hardware */
1954 	SOUND_SUPPORTS_STEREO,0,0,0,
1955 	{
1956 		{
1957 			SOUND_YM2151,
1958 			&ym2151_interface
1959 		}
1960 	}
1961 };
1962 
1963 static struct MachineDriver machine_driver_m72 =
1964 {
1965 	/* basic machine hardware */
1966 	{
1967 		{
1968 			CPU_V30,
1969 			8000000,	/* ?? */
1970 			m72_readmem,m72_writemem,readport,writeport,
1971 			m72_interrupt,16
1972 		},
1973 		{
1974 			CPU_Z80 | CPU_AUDIO_CPU,
1975 			3579545,	/* 3.579545 MHz */
1976 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1977 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
1978 								/* IRQs are generated by main Z80 and YM2151 */
1979 		}
1980 	},
1981 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
1982 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1983 	m72_init_machine,
1984 
1985 	/* video hardware */
1986 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
1987 	m72_gfxdecodeinfo,
1988 	1024, 1024,
1989 	0,
1990 
1991 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1992 	m72_eof_callback,
1993 	m72_vh_start,
1994 	m72_vh_stop,
1995 	m72_vh_screenrefresh,
1996 
1997 	/* sound hardware */
1998 	SOUND_SUPPORTS_STEREO,0,0,0,
1999 	{
2000 		{
2001 			SOUND_YM2151,
2002 			&ym2151_interface
2003 		},
2004 		{
2005 			SOUND_DAC,
2006 			&dac_interface
2007 		}
2008 	}
2009 };
2010 
2011 static struct MachineDriver machine_driver_xmultipl =
2012 {
2013 	/* basic machine hardware */
2014 	{
2015 		{
2016 			CPU_V30,
2017 			8000000,	/* ?? */
2018 			xmultipl_readmem,xmultipl_writemem,readport,xmultipl_writeport,
2019 			m72_interrupt,16
2020 		},
2021 		{
2022 			CPU_Z80 | CPU_AUDIO_CPU,
2023 			3579545,	/* 3.579545 MHz */
2024 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
2025 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2026 								/* IRQs are generated by main Z80 and YM2151 */
2027 		}
2028 	},
2029 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2030 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2031 	xmultipl_init_machine,
2032 
2033 	/* video hardware */
2034 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2035 	m72_gfxdecodeinfo,
2036 	1024, 1024,
2037 	0,
2038 
2039 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2040 	m72_eof_callback,
2041 	m72_vh_start,
2042 	m72_vh_stop,
2043 	m72_vh_screenrefresh,
2044 
2045 	/* sound hardware */
2046 	SOUND_SUPPORTS_STEREO,0,0,0,
2047 	{
2048 		{
2049 			SOUND_YM2151,
2050 			&ym2151_interface
2051 		},
2052 		{
2053 			SOUND_DAC,
2054 			&dac_interface
2055 		}
2056 	}
2057 };
2058 
2059 static struct MachineDriver machine_driver_dbreed =
2060 {
2061 	/* basic machine hardware */
2062 	{
2063 		{
2064 			CPU_V30,
2065 			8000000,	/* ?? */
2066 			dbreed_readmem,dbreed_writemem,readport,xmultipl_writeport,
2067 			m72_interrupt,16
2068 		},
2069 		{
2070 			CPU_Z80 | CPU_AUDIO_CPU,
2071 			3579545,	/* 3.579545 MHz */
2072 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
2073 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2074 								/* IRQs are generated by main Z80 and YM2151 */
2075 		}
2076 	},
2077 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2078 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2079 	xmultipl_init_machine,
2080 
2081 	/* video hardware */
2082 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2083 	m72_gfxdecodeinfo,
2084 	1024, 1024,
2085 	0,
2086 
2087 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2088 	m72_eof_callback,
2089 	dbreed_vh_start,
2090 	m72_vh_stop,
2091 	dbreed_vh_screenrefresh,
2092 
2093 	/* sound hardware */
2094 	SOUND_SUPPORTS_STEREO,0,0,0,
2095 	{
2096 		{
2097 			SOUND_YM2151,
2098 			&ym2151_interface
2099 		},
2100 		{
2101 			SOUND_DAC,
2102 			&dac_interface
2103 		}
2104 	}
2105 };
2106 
2107 static struct MachineDriver machine_driver_rtype2 =
2108 {
2109 	/* basic machine hardware */
2110 	{
2111 		{
2112 			CPU_V30,
2113 			8000000,	/* ?? */
2114 			rtype2_readmem,rtype2_writemem,readport,rtype2_writeport,
2115 			m72_interrupt,16
2116 		},
2117 		{
2118 			CPU_Z80 | CPU_AUDIO_CPU,
2119 			3579545,	/* 3.579545 MHz */
2120 			sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
2121 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2122 								/* IRQs are generated by main Z80 and YM2151 */
2123 		}
2124 	},
2125 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2126 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2127 	m72_init_machine,
2128 
2129 	/* video hardware */
2130 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2131 	rtype2_gfxdecodeinfo,
2132 	1024, 1024,
2133 	0,
2134 
2135 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2136 	m72_eof_callback,
2137 	rtype2_vh_start,
2138 	m72_vh_stop,
2139 	m72_vh_screenrefresh,
2140 
2141 	/* sound hardware */
2142 	SOUND_SUPPORTS_STEREO,0,0,0,
2143 	{
2144 		{
2145 			SOUND_YM2151,
2146 			&ym2151_interface
2147 		},
2148 		{
2149 			SOUND_DAC,
2150 			&dac_interface
2151 		}
2152 	}
2153 };
2154 
2155 static struct MachineDriver machine_driver_majtitle =
2156 {
2157 	/* basic machine hardware */
2158 	{
2159 		{
2160 			CPU_V30,
2161 			8000000,	/* ?? */
2162 			majtitle_readmem,majtitle_writemem,readport,rtype2_writeport,
2163 			m72_interrupt,16
2164 		},
2165 		{
2166 			CPU_Z80 | CPU_AUDIO_CPU,
2167 			3579545,	/* 3.579545 MHz */
2168 			sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
2169 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2170 								/* IRQs are generated by main Z80 and YM2151 */
2171 		}
2172 	},
2173 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2174 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2175 	m72_init_machine,
2176 
2177 	/* video hardware */
2178 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2179 	majtitle_gfxdecodeinfo,
2180 	1024, 1024,
2181 	0,
2182 
2183 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2184 	m72_eof_callback,
2185 	majtitle_vh_start,
2186 	m72_vh_stop,
2187 	majtitle_vh_screenrefresh,
2188 
2189 	/* sound hardware */
2190 	SOUND_SUPPORTS_STEREO,0,0,0,
2191 	{
2192 		{
2193 			SOUND_YM2151,
2194 			&ym2151_interface
2195 		},
2196 		{
2197 			SOUND_DAC,
2198 			&dac_interface
2199 		}
2200 	}
2201 };
2202 
2203 static struct MachineDriver machine_driver_hharry =
2204 {
2205 	/* basic machine hardware */
2206 	{
2207 		{
2208 			CPU_V30,
2209 			8000000,	/* ?? */
2210 			hharry_readmem,hharry_writemem,readport,hharry_writeport,
2211 			m72_interrupt,16
2212 		},
2213 		{
2214 			CPU_Z80 | CPU_AUDIO_CPU,
2215 			3579545,	/* 3.579545 MHz */
2216 			sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
2217 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2218 								/* IRQs are generated by main Z80 and YM2151 */
2219 		}
2220 	},
2221 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2222 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2223 	xmultipl_init_machine,
2224 
2225 	/* video hardware */
2226 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2227 	rtype2_gfxdecodeinfo,
2228 	1024, 1024,
2229 	0,
2230 
2231 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2232 	m72_eof_callback,
2233 	hharry_vh_start,
2234 	m72_vh_stop,
2235 	m72_vh_screenrefresh,
2236 
2237 	/* sound hardware */
2238 	SOUND_SUPPORTS_STEREO,0,0,0,
2239 	{
2240 		{
2241 			SOUND_YM2151,
2242 			&ym2151_interface
2243 		},
2244 		{
2245 			SOUND_DAC,
2246 			&dac_interface
2247 		}
2248 	}
2249 };
2250 
2251 static struct MachineDriver machine_driver_hharryu =
2252 {
2253 	/* basic machine hardware */
2254 	{
2255 		{
2256 			CPU_V30,
2257 			8000000,	/* ?? */
2258 			hharryu_readmem,hharryu_writemem,readport,rtype2_writeport,
2259 			m72_interrupt,16
2260 		},
2261 		{
2262 			CPU_Z80 | CPU_AUDIO_CPU,
2263 			3579545,	/* 3.579545 MHz */
2264 			sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
2265 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2266 								/* IRQs are generated by main Z80 and YM2151 */
2267 		}
2268 	},
2269 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2270 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2271 	xmultipl_init_machine,
2272 
2273 	/* video hardware */
2274 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2275 	rtype2_gfxdecodeinfo,
2276 	1024, 1024,
2277 	0,
2278 
2279 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2280 	m72_eof_callback,
2281 	rtype2_vh_start,
2282 	m72_vh_stop,
2283 	m72_vh_screenrefresh,
2284 
2285 	/* sound hardware */
2286 	SOUND_SUPPORTS_STEREO,0,0,0,
2287 	{
2288 		{
2289 			SOUND_YM2151,
2290 			&ym2151_interface
2291 		},
2292 		{
2293 			SOUND_DAC,
2294 			&dac_interface
2295 		}
2296 	}
2297 };
2298 
2299 static struct MachineDriver machine_driver_poundfor =
2300 {
2301 	/* basic machine hardware */
2302 	{
2303 		{
2304 			CPU_V30,
2305 			8000000,	/* ?? */
2306 			rtype2_readmem,rtype2_writemem,poundfor_readport,rtype2_writeport,
2307 			m72_interrupt,16
2308 		},
2309 		{
2310 			CPU_Z80 | CPU_AUDIO_CPU,
2311 			3579545,	/* 3.579545 MHz */
2312 			sound_readmem,sound_writemem,poundfor_sound_readport,poundfor_sound_writeport,
2313 			nmi_interrupt,128	/* clocked by V1? (Vigilante) */
2314 								/* IRQs are generated by main Z80 and YM2151 */
2315 		}
2316 	},
2317 	55, DEFAULT_60HZ_VBLANK_DURATION,	/* frames per second, vblank duration */
2318 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
2319 	poundfor_init_machine,
2320 
2321 	/* video hardware */
2322 	512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
2323 	rtype2_gfxdecodeinfo,
2324 	1024, 1024,
2325 	0,
2326 
2327 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
2328 	m72_eof_callback,
2329 	rtype2_vh_start,
2330 	m72_vh_stop,
2331 	m72_vh_screenrefresh,
2332 
2333 	/* sound hardware */
2334 	SOUND_SUPPORTS_STEREO,0,0,0,
2335 	{
2336 		{
2337 			SOUND_YM2151,
2338 			&ym2151_interface
2339 		},
2340 		{
2341 			SOUND_DAC,
2342 			&dac_interface
2343 		}
2344 	}
2345 };
2346 
2347 
2348 
2349 /***************************************************************************
2350 
2351   Game driver(s)
2352 
2353 ***************************************************************************/
2354 
2355 ROM_START( rtype )
2356 	ROM_REGION( 0x100000, REGION_CPU1 )
2357 	ROM_LOAD_V20_EVEN( "rt_r-h0-.bin", 0x00000, 0x10000, 0xc2940df2 )
2358 	ROM_LOAD_V20_ODD ( "rt_r-l0-.bin", 0x00000, 0x10000, 0x858cc0f6 )
2359 	ROM_LOAD_V20_EVEN( "rt_r-h1-.bin", 0x20000, 0x10000, 0x5bcededa )
2360 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2361 	ROM_LOAD_V20_ODD ( "rt_r-l1-.bin", 0x20000, 0x10000, 0x4821141c )
2362 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2363 
2364 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2365 	/* no ROM, program will be copied by the main CPU */
2366 
2367 	ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2368 	ROM_LOAD( "cpu-00.bin",   0x00000, 0x10000, 0xdad53bc0 )	/* sprites */
2369 	ROM_LOAD( "cpu-01.bin",   0x10000, 0x10000, 0xb28d1a60 )
2370 	ROM_LOAD( "cpu-10.bin",   0x20000, 0x10000, 0xd6a66298 )
2371 	ROM_LOAD( "cpu-11.bin",   0x30000, 0x10000, 0xbb182f1a )
2372 	ROM_LOAD( "cpu-20.bin",   0x40000, 0x10000, 0xfc247c8a )
2373 	ROM_LOAD( "cpu-21.bin",   0x50000, 0x10000, 0x5b41f5f3 )
2374 	ROM_LOAD( "cpu-30.bin",   0x60000, 0x10000, 0xeb02a1cb )
2375 	ROM_LOAD( "cpu-31.bin",   0x70000, 0x10000, 0x2bec510a )
2376 
2377 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2378 	ROM_LOAD( "cpu-a0.bin",   0x00000, 0x08000, 0x4e212fb0 )	/* tiles #1 */
2379 	ROM_LOAD( "cpu-a1.bin",   0x08000, 0x08000, 0x8a65bdff )
2380 	ROM_LOAD( "cpu-a2.bin",   0x10000, 0x08000, 0x5a4ae5b9 )
2381 	ROM_LOAD( "cpu-a3.bin",   0x18000, 0x08000, 0x73327606 )
2382 
2383 	ROM_REGION( 0x20000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2384 	ROM_LOAD( "cpu-b0.bin",   0x00000, 0x08000, 0xa7b17491 )	/* tiles #2 */
2385 	ROM_LOAD( "cpu-b1.bin",   0x08000, 0x08000, 0xb9709686 )
2386 	ROM_LOAD( "cpu-b2.bin",   0x10000, 0x08000, 0x433b229a )
2387 	ROM_LOAD( "cpu-b3.bin",   0x18000, 0x08000, 0xad89b072 )
2388 ROM_END
2389 
2390 ROM_START( rtypepj )
2391 	ROM_REGION( 0x100000, REGION_CPU1 )
2392 	ROM_LOAD_V20_EVEN( "db_b1.bin",   0x00000, 0x10000, 0xc1865141 )
2393 	ROM_LOAD_V20_ODD ( "db_a1.bin",   0x00000, 0x10000, 0x5ad2bd90 )
2394 	ROM_LOAD_V20_EVEN( "db_b2.bin",   0x20000, 0x10000, 0xb4f6407e )
2395 	ROM_RELOAD_V20_EVEN(              0xe0000, 0x10000 )
2396 	ROM_LOAD_V20_ODD ( "db_a2.bin",   0x20000, 0x10000, 0x6098d86f )
2397 	ROM_RELOAD_V20_ODD (              0xe0000, 0x10000 )
2398 
2399 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2400 	/* no ROM, program will be copied by the main CPU */
2401 
2402 	ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2403 	ROM_LOAD( "cpu-00.bin",   0x00000, 0x10000, 0xdad53bc0 )	/* sprites */
2404 	ROM_LOAD( "cpu-01.bin",   0x10000, 0x10000, 0xb28d1a60 )
2405 	ROM_LOAD( "cpu-10.bin",   0x20000, 0x10000, 0xd6a66298 )
2406 	ROM_LOAD( "cpu-11.bin",   0x30000, 0x10000, 0xbb182f1a )
2407 	ROM_LOAD( "cpu-20.bin",   0x40000, 0x10000, 0xfc247c8a )
2408 	ROM_LOAD( "cpu-21.bin",   0x50000, 0x10000, 0x5b41f5f3 )
2409 	ROM_LOAD( "cpu-30.bin",   0x60000, 0x10000, 0xeb02a1cb )
2410 	ROM_LOAD( "cpu-31.bin",   0x70000, 0x10000, 0x2bec510a )
2411 
2412 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2413 	ROM_LOAD( "cpu-a0.bin",   0x00000, 0x08000, 0x4e212fb0 )	/* tiles #1 */
2414 	ROM_LOAD( "cpu-a1.bin",   0x08000, 0x08000, 0x8a65bdff )
2415 	ROM_LOAD( "cpu-a2.bin",   0x10000, 0x08000, 0x5a4ae5b9 )
2416 	ROM_LOAD( "cpu-a3.bin",   0x18000, 0x08000, 0x73327606 )
2417 
2418 	ROM_REGION( 0x20000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2419 	ROM_LOAD( "cpu-b0.bin",   0x00000, 0x08000, 0xa7b17491 )	/* tiles #2 */
2420 	ROM_LOAD( "cpu-b1.bin",   0x08000, 0x08000, 0xb9709686 )
2421 	ROM_LOAD( "cpu-b2.bin",   0x10000, 0x08000, 0x433b229a )
2422 	ROM_LOAD( "cpu-b3.bin",   0x18000, 0x08000, 0xad89b072 )
2423 ROM_END
2424 
2425 ROM_START( rtypeu )
2426 	ROM_REGION( 0x100000, REGION_CPU1 )
2427 	ROM_LOAD_V20_EVEN( "aud-h0.bin",   0x00000, 0x10000, 0x36008a4e )
2428 	ROM_LOAD_V20_ODD ( "aud-l0.bin",   0x00000, 0x10000, 0x4aaa668e )
2429 	ROM_LOAD_V20_EVEN( "aud-h1.bin",   0x20000, 0x10000, 0x7ebb2a53 )
2430 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2431 	ROM_LOAD_V20_ODD ( "aud-l1.bin",   0x20000, 0x10000, 0xc28b103b )
2432 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2433 
2434 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2435 	/* no ROM, program will be copied by the main CPU */
2436 
2437 	ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2438 	ROM_LOAD( "cpu-00.bin",   0x00000, 0x10000, 0xdad53bc0 )	/* sprites */
2439 	ROM_LOAD( "cpu-01.bin",   0x10000, 0x10000, 0xb28d1a60 )
2440 	ROM_LOAD( "cpu-10.bin",   0x20000, 0x10000, 0xd6a66298 )
2441 	ROM_LOAD( "cpu-11.bin",   0x30000, 0x10000, 0xbb182f1a )
2442 	ROM_LOAD( "cpu-20.bin",   0x40000, 0x10000, 0xfc247c8a )
2443 	ROM_LOAD( "cpu-21.bin",   0x50000, 0x10000, 0x5b41f5f3 )
2444 	ROM_LOAD( "cpu-30.bin",   0x60000, 0x10000, 0xeb02a1cb )
2445 	ROM_LOAD( "cpu-31.bin",   0x70000, 0x10000, 0x2bec510a )
2446 
2447 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2448 	ROM_LOAD( "cpu-a0.bin",   0x00000, 0x08000, 0x4e212fb0 )	/* tiles #1 */
2449 	ROM_LOAD( "cpu-a1.bin",   0x08000, 0x08000, 0x8a65bdff )
2450 	ROM_LOAD( "cpu-a2.bin",   0x10000, 0x08000, 0x5a4ae5b9 )
2451 	ROM_LOAD( "cpu-a3.bin",   0x18000, 0x08000, 0x73327606 )
2452 
2453 	ROM_REGION( 0x20000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2454 	ROM_LOAD( "cpu-b0.bin",   0x00000, 0x08000, 0xa7b17491 )	/* tiles #2 */
2455 	ROM_LOAD( "cpu-b1.bin",   0x08000, 0x08000, 0xb9709686 )
2456 	ROM_LOAD( "cpu-b2.bin",   0x10000, 0x08000, 0x433b229a )
2457 	ROM_LOAD( "cpu-b3.bin",   0x18000, 0x08000, 0xad89b072 )
2458 ROM_END
2459 
2460 ROM_START( bchopper )
2461 	ROM_REGION( 0x100000, REGION_CPU1 )
2462 	ROM_LOAD_V20_EVEN( "c-h0-b.rom",   0x00000, 0x10000, 0xf2feab16 )
2463 	ROM_LOAD_V20_ODD ( "c-l0-b.rom",   0x00000, 0x10000, 0x9f887096 )
2464 	ROM_LOAD_V20_EVEN( "c-h1-b.rom",   0x20000, 0x10000, 0xa995d64f )
2465 	ROM_LOAD_V20_ODD ( "c-l1-b.rom",   0x20000, 0x10000, 0x41dda999 )
2466 	ROM_LOAD_V20_EVEN( "c-h3-b.rom",   0x60000, 0x10000, 0xab9451ca )
2467 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2468 	ROM_LOAD_V20_ODD ( "c-l3-b.rom",   0x60000, 0x10000, 0x11562221 )
2469 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2470 
2471 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2472 	/* no ROM, program will be copied by the main CPU */
2473 
2474 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2475 	ROM_LOAD( "c-00-a.rom",   0x00000, 0x10000, 0xf6e6e660 )	/* sprites */
2476 	ROM_LOAD( "c-01-b.rom",   0x10000, 0x10000, 0x708cdd37 )
2477 	ROM_LOAD( "c-10-a.rom",   0x20000, 0x10000, 0x292c8520 )
2478 	ROM_LOAD( "c-11-b.rom",   0x30000, 0x10000, 0x20904cf3 )
2479 	ROM_LOAD( "c-20-a.rom",   0x40000, 0x10000, 0x1ab50c23 )
2480 	ROM_LOAD( "c-21-b.rom",   0x50000, 0x10000, 0xc823d34c )
2481 	ROM_LOAD( "c-30-a.rom",   0x60000, 0x10000, 0x11f6c56b )
2482 	ROM_LOAD( "c-31-b.rom",   0x70000, 0x10000, 0x23134ec5 )
2483 
2484 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2485 	ROM_LOAD( "b-a0-b.rom",   0x00000, 0x10000, 0xe46ed7bf )	/* tiles #1 */
2486 	ROM_LOAD( "b-a1-b.rom",   0x10000, 0x10000, 0x590605ff )
2487 	ROM_LOAD( "b-a2-b.rom",   0x20000, 0x10000, 0xf8158226 )
2488 	ROM_LOAD( "b-a3-b.rom",   0x30000, 0x10000, 0x0f07b9b7 )
2489 
2490 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2491 	ROM_LOAD( "b-b0-.rom",    0x00000, 0x10000, 0xb5b95776 )	/* tiles #2 */
2492 	ROM_LOAD( "b-b1-.rom",    0x10000, 0x10000, 0x74ca16ee )
2493 	ROM_LOAD( "b-b2-.rom",    0x20000, 0x10000, 0xb82cca04 )
2494 	ROM_LOAD( "b-b3-.rom",    0x30000, 0x10000, 0xa7afc920 )
2495 
2496 	ROM_REGION( 0x10000, REGION_SOUND1 )	/* samples */
2497 	ROM_LOAD( "c-v0-b.rom",   0x00000, 0x10000, 0xd0c27e58 )
2498 ROM_END
2499 
2500 ROM_START( mrheli )
2501 	ROM_REGION( 0x100000, REGION_CPU1 )
2502 	ROM_LOAD_V20_EVEN( "mh-c-h0.bin",  0x00000, 0x10000, 0xe2ca5646 )
2503 	ROM_LOAD_V20_ODD ( "mh-c-l0.bin",  0x00000, 0x10000, 0x643e23cd )
2504 	ROM_LOAD_V20_EVEN( "mh-c-h1.bin",  0x20000, 0x10000, 0x8974e84d )
2505 	ROM_LOAD_V20_ODD ( "mh-c-l1.bin",  0x20000, 0x10000, 0x5f8bda69 )
2506 	ROM_LOAD_V20_EVEN( "mh-c-h3.bin",  0x60000, 0x10000, 0x143f596e )
2507 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2508 	ROM_LOAD_V20_ODD ( "mh-c-l3.bin",  0x60000, 0x10000, 0xc0982536 )
2509 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2510 
2511 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2512 	/* no ROM, program will be copied by the main CPU */
2513 
2514 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2515 	ROM_LOAD( "mh-c-00.bin",  0x00000, 0x20000, 0xdec4e121 )	/* sprites */
2516 	ROM_LOAD( "mh-c-10.bin",  0x20000, 0x20000, 0x7aaa151e )
2517 	ROM_LOAD( "mh-c-20.bin",  0x40000, 0x20000, 0xeae0de74 )
2518 	ROM_LOAD( "mh-c-30.bin",  0x60000, 0x20000, 0x01d5052f )
2519 
2520 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2521 	ROM_LOAD( "mh-b-a0.bin",  0x00000, 0x10000, 0x6a0db256 )	/* tiles #1 */
2522 	ROM_LOAD( "mh-b-a1.bin",  0x10000, 0x10000, 0x14ec9795 )
2523 	ROM_LOAD( "mh-b-a2.bin",  0x20000, 0x10000, 0xdfcb510e )
2524 	ROM_LOAD( "mh-b-a3.bin",  0x30000, 0x10000, 0x957e329b )
2525 
2526 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2527 	ROM_LOAD( "b-b0-.rom",    0x00000, 0x10000, 0xb5b95776 )	/* tiles #2 */
2528 	ROM_LOAD( "b-b1-.rom",    0x10000, 0x10000, 0x74ca16ee )
2529 	ROM_LOAD( "b-b2-.rom",    0x20000, 0x10000, 0xb82cca04 )
2530 	ROM_LOAD( "b-b3-.rom",    0x30000, 0x10000, 0xa7afc920 )
2531 
2532 	ROM_REGION( 0x10000, REGION_SOUND1 )	/* samples */
2533 	ROM_LOAD( "c-v0-b.rom",   0x00000, 0x10000, 0xd0c27e58 )
2534 ROM_END
2535 
2536 ROM_START( nspirit )
2537 	ROM_REGION( 0x100000, REGION_CPU1 )
2538 	ROM_LOAD_V20_EVEN( "nin-c-h0.rom", 0x00000, 0x10000, 0x035692fa )
2539 	ROM_LOAD_V20_ODD ( "nin-c-l0.rom", 0x00000, 0x10000, 0x9a405898 )
2540 	ROM_LOAD_V20_EVEN( "nin-c-h1.rom", 0x20000, 0x10000, 0xcbc10586 )
2541 	ROM_LOAD_V20_ODD ( "nin-c-l1.rom", 0x20000, 0x10000, 0xb75c9a4d )
2542 	ROM_LOAD_V20_EVEN( "nin-c-h2.rom", 0x40000, 0x10000, 0x8ad818fa )
2543 	ROM_LOAD_V20_ODD ( "nin-c-l2.rom", 0x40000, 0x10000, 0xc52ca78c )
2544 	ROM_LOAD_V20_EVEN( "nin-c-h3.rom", 0x60000, 0x10000, 0x501104ef )
2545 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2546 	ROM_LOAD_V20_ODD ( "nin-c-l3.rom", 0x60000, 0x10000, 0xfd7408b8 )
2547 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2548 
2549 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2550 	/* no ROM, program will be copied by the main CPU */
2551 
2552 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2553 	ROM_LOAD( "nin-r00.rom",  0x00000, 0x20000, 0x5f61d30b )	/* sprites */
2554 	ROM_LOAD( "nin-r10.rom",  0x20000, 0x20000, 0x0caad107 )
2555 	ROM_LOAD( "nin-r20.rom",  0x40000, 0x20000, 0xef3617d3 )
2556 	ROM_LOAD( "nin-r30.rom",  0x60000, 0x20000, 0x175d2a24 )
2557 
2558 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2559 	ROM_LOAD( "nin-b-a0.rom", 0x00000, 0x10000, 0x63f8f658 )	/* tiles #1 */
2560 	ROM_LOAD( "nin-b-a1.rom", 0x10000, 0x10000, 0x75eb8306 )
2561 	ROM_LOAD( "nin-b-a2.rom", 0x20000, 0x10000, 0xdf532172 )
2562 	ROM_LOAD( "nin-b-a3.rom", 0x30000, 0x10000, 0x4dedd64c )
2563 
2564 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2565 	ROM_LOAD( "nin-b0.rom",   0x00000, 0x10000, 0x1b0e08a6 )	/* tiles #2 */
2566 	ROM_LOAD( "nin-b1.rom",   0x10000, 0x10000, 0x728727f0 )
2567 	ROM_LOAD( "nin-b2.rom",   0x20000, 0x10000, 0xf87efd75 )
2568 	ROM_LOAD( "nin-b3.rom",   0x30000, 0x10000, 0x98856cb4 )
2569 
2570 	ROM_REGION( 0x10000, REGION_SOUND1 )	/* samples */
2571 	ROM_LOAD( "nin-v0.rom",   0x00000, 0x10000, 0xa32e8caf )
2572 ROM_END
2573 
2574 ROM_START( nspiritj )
2575 	ROM_REGION( 0x100000, REGION_CPU1 )
2576 	ROM_LOAD_V20_EVEN( "c-h0",         0x00000, 0x10000, 0x8603fab2 )
2577 	ROM_LOAD_V20_ODD ( "c-l0",         0x00000, 0x10000, 0xe520fa35 )
2578 	ROM_LOAD_V20_EVEN( "nin-c-h1.rom", 0x20000, 0x10000, 0xcbc10586 )
2579 	ROM_LOAD_V20_ODD ( "nin-c-l1.rom", 0x20000, 0x10000, 0xb75c9a4d )
2580 	ROM_LOAD_V20_EVEN( "nin-c-h2.rom", 0x40000, 0x10000, 0x8ad818fa )
2581 	ROM_LOAD_V20_ODD ( "nin-c-l2.rom", 0x40000, 0x10000, 0xc52ca78c )
2582 	ROM_LOAD_V20_EVEN( "c-h3",         0x60000, 0x10000, 0x95b63a61 )
2583 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2584 	ROM_LOAD_V20_ODD ( "c-l3",         0x60000, 0x10000, 0xe754a87a )
2585 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2586 
2587 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2588 	/* no ROM, program will be copied by the main CPU */
2589 
2590 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2591 	ROM_LOAD( "nin-r00.rom",  0x00000, 0x20000, 0x5f61d30b )	/* sprites */
2592 	ROM_LOAD( "nin-r10.rom",  0x20000, 0x20000, 0x0caad107 )
2593 	ROM_LOAD( "nin-r20.rom",  0x40000, 0x20000, 0xef3617d3 )
2594 	ROM_LOAD( "nin-r30.rom",  0x60000, 0x20000, 0x175d2a24 )
2595 
2596 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2597 	ROM_LOAD( "nin-b-a0.rom", 0x00000, 0x10000, 0x63f8f658 )	/* tiles #1 */
2598 	ROM_LOAD( "nin-b-a1.rom", 0x10000, 0x10000, 0x75eb8306 )
2599 	ROM_LOAD( "nin-b-a2.rom", 0x20000, 0x10000, 0xdf532172 )
2600 	ROM_LOAD( "nin-b-a3.rom", 0x30000, 0x10000, 0x4dedd64c )
2601 
2602 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2603 	ROM_LOAD( "nin-b0.rom",   0x00000, 0x10000, 0x1b0e08a6 )	/* tiles #2 */
2604 	ROM_LOAD( "nin-b1.rom",   0x10000, 0x10000, 0x728727f0 )
2605 	ROM_LOAD( "nin-b2.rom",   0x20000, 0x10000, 0xf87efd75 )
2606 	ROM_LOAD( "nin-b3.rom",   0x30000, 0x10000, 0x98856cb4 )
2607 
2608 	ROM_REGION( 0x10000, REGION_SOUND1 )	/* samples */
2609 	ROM_LOAD( "nin-v0.rom",   0x00000, 0x10000, 0xa32e8caf )
2610 ROM_END
2611 
2612 ROM_START( imgfight )
2613 	ROM_REGION( 0x100000, REGION_CPU1 )
2614 	ROM_LOAD_V20_EVEN( "if-c-h0.bin",  0x00000, 0x10000, 0x592d2d80 )
2615 	ROM_LOAD_V20_ODD ( "if-c-l0.bin",  0x00000, 0x10000, 0x61f89056 )
2616 	ROM_LOAD_V20_EVEN( "if-c-h3.bin",  0x40000, 0x20000, 0xea030541 )
2617 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2618 	ROM_LOAD_V20_ODD ( "if-c-l3.bin",  0x40000, 0x20000, 0xc66ae348 )
2619 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2620 
2621 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2622 	/* no ROM, program will be copied by the main CPU */
2623 
2624 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2625 	ROM_LOAD( "if-c-00.bin",  0x00000, 0x20000, 0x745e6638 )	/* sprites */
2626 	ROM_LOAD( "if-c-10.bin",  0x20000, 0x20000, 0xb7108449 )
2627 	ROM_LOAD( "if-c-20.bin",  0x40000, 0x20000, 0xaef33cba )
2628 	ROM_LOAD( "if-c-30.bin",  0x60000, 0x20000, 0x1f98e695 )
2629 
2630 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2631 	ROM_LOAD( "if-a-a0.bin",  0x00000, 0x10000, 0x34ee2d77 )	/* tiles #1 */
2632 	ROM_LOAD( "if-a-a1.bin",  0x10000, 0x10000, 0x6bd2845b )
2633 	ROM_LOAD( "if-a-a2.bin",  0x20000, 0x10000, 0x090d50e5 )
2634 	ROM_LOAD( "if-a-a3.bin",  0x30000, 0x10000, 0x3a8e3083 )
2635 
2636 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2637 	ROM_LOAD( "if-a-b0.bin",  0x00000, 0x10000, 0xb425c829 )	/* tiles #2 */
2638 	ROM_LOAD( "if-a-b1.bin",  0x10000, 0x10000, 0xe9bfe23e )
2639 	ROM_LOAD( "if-a-b2.bin",  0x20000, 0x10000, 0x256e50f2 )
2640 	ROM_LOAD( "if-a-b3.bin",  0x30000, 0x10000, 0x4c682785 )
2641 
2642 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2643 	ROM_LOAD( "if-c-v0.bin",  0x00000, 0x10000, 0xcb64a194 )
2644 	ROM_LOAD( "if-c-v1.bin",  0x10000, 0x10000, 0x45b68bf5 )
2645 ROM_END
2646 
2647 ROM_START( loht )
2648 	ROM_REGION( 0x100000, REGION_CPU1 )
2649 	ROM_LOAD_V20_EVEN( "tom_c-h0.rom", 0x00000, 0x20000, 0xa63204b6 )
2650 	ROM_LOAD_V20_ODD ( "tom_c-l0.rom", 0x00000, 0x20000, 0xe788002f )
2651 	ROM_LOAD_V20_EVEN( "tom_c-h3.rom", 0x40000, 0x20000, 0x714778b5 )
2652 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2653 	ROM_LOAD_V20_ODD ( "tom_c-l3.rom", 0x40000, 0x20000, 0x2f049b03 )
2654 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2655 
2656 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2657 	/* no ROM, program will be copied by the main CPU */
2658 
2659 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2660 	ROM_LOAD( "tom_m53.rom",  0x00000, 0x20000, 0x0b83265f )	/* sprites */
2661 	ROM_LOAD( "tom_m51.rom",  0x20000, 0x20000, 0x8ec5f6f3 )
2662 	ROM_LOAD( "tom_m49.rom",  0x40000, 0x20000, 0xa41d3bfd )
2663 	ROM_LOAD( "tom_m47.rom",  0x60000, 0x20000, 0x9d81a25b )
2664 
2665 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2666 	ROM_LOAD( "tom_m21.rom",  0x00000, 0x10000, 0x3ca3e771 )	/* tiles #1 */
2667 	ROM_LOAD( "tom_m22.rom",  0x10000, 0x10000, 0x7a05ee2f )
2668 	ROM_LOAD( "tom_m20.rom",  0x20000, 0x10000, 0x79aa2335 )
2669 	ROM_LOAD( "tom_m23.rom",  0x30000, 0x10000, 0x789e8b24 )
2670 
2671 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2672 	ROM_LOAD( "tom_m26.rom",  0x00000, 0x10000, 0x44626bf6 )	/* tiles #2 */
2673 	ROM_LOAD( "tom_m27.rom",  0x10000, 0x10000, 0x464952cf )
2674 	ROM_LOAD( "tom_m25.rom",  0x20000, 0x10000, 0x3db9b2c7 )
2675 	ROM_LOAD( "tom_m24.rom",  0x30000, 0x10000, 0xf01fe899 )
2676 
2677 	ROM_REGION( 0x10000, REGION_SOUND1 )	/* samples */
2678 	ROM_LOAD( "tom_m44.rom",  0x00000, 0x10000, 0x3ed51d1f )
2679 ROM_END
2680 
2681 ROM_START( xmultipl )
2682 	ROM_REGION( 0x100000, REGION_CPU1 )
2683 	ROM_LOAD_V20_EVEN( "ch3.h3",       0x00000, 0x20000, 0x20685021 )
2684 	ROM_LOAD_V20_ODD ( "cl3.l3",       0x00000, 0x20000, 0x93fdd200 )
2685 	ROM_LOAD_V20_EVEN( "ch0.h0",       0x40000, 0x10000, 0x9438dd8a )
2686 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2687 	ROM_LOAD_V20_ODD ( "cl0.l0",       0x40000, 0x10000, 0x06a9e213 )
2688 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2689 
2690 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2691 	/* no ROM, program will be copied by the main CPU */
2692 
2693 	ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2694 	ROM_LOAD( "t44.00",       0x00000, 0x20000, 0xdb45186e )	/* sprites */
2695 	ROM_LOAD( "t45.01",       0x20000, 0x20000, 0x4d0764d4 )
2696 	ROM_LOAD( "t46.10",       0x40000, 0x20000, 0xf0c465a4 )
2697 	ROM_LOAD( "t47.11",       0x60000, 0x20000, 0x1263b24b )
2698 	ROM_LOAD( "t48.20",       0x80000, 0x20000, 0x4129944f )
2699 	ROM_LOAD( "t49.21",       0xa0000, 0x20000, 0x2346e6f9 )
2700 	ROM_LOAD( "t50.30",       0xc0000, 0x20000, 0xe322543e )
2701 	ROM_LOAD( "t51.31",       0xe0000, 0x20000, 0x229bf7b1 )
2702 
2703 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2704 	ROM_LOAD( "t53.a0",       0x00000, 0x20000, 0x1a082494 )	/* tiles #1 */
2705 	ROM_LOAD( "t54.a1",       0x20000, 0x20000, 0x076c16c5 )
2706 	ROM_LOAD( "t55.a2",       0x40000, 0x20000, 0x25d877a5 )
2707 	ROM_LOAD( "t56.a3",       0x60000, 0x20000, 0x5b1213f5 )
2708 
2709 	ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2710 	ROM_LOAD( "t57.b0",       0x00000, 0x20000, 0x0a84e0c7 )	/* tiles #2 */
2711 	ROM_LOAD( "t58.b1",       0x20000, 0x20000, 0xa874121d )
2712 	ROM_LOAD( "t59.b2",       0x40000, 0x20000, 0x69deb990 )
2713 	ROM_LOAD( "t60.b3",       0x60000, 0x20000, 0x14c69f99 )
2714 
2715 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2716 	ROM_LOAD( "t52.v0",       0x00000, 0x20000, 0x2db1bd80 )
2717 ROM_END
2718 
2719 ROM_START( dbreed )
2720 	ROM_REGION( 0x100000, REGION_CPU1 )
2721 	ROM_LOAD_V20_EVEN( "db_c-h3.rom",  0x00000, 0x20000, 0x4bf3063c )
2722 	ROM_LOAD_V20_ODD ( "db_c-l3.rom",  0x00000, 0x20000, 0xe4b89b79 )
2723 	ROM_LOAD_V20_EVEN( "db_c-h0.rom",  0x60000, 0x10000, 0x5aa79fb2 )
2724 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2725 	ROM_LOAD_V20_ODD ( "db_c-l0.rom",  0x60000, 0x10000, 0xed0f5e06 )
2726 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2727 
2728 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2729 	/* no ROM, program will be copied by the main CPU */
2730 
2731 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2732 	ROM_LOAD( "db_k800m.rom", 0x00000, 0x20000, 0xc027a8cf )	/* sprites */
2733 	ROM_LOAD( "db_k801m.rom", 0x20000, 0x20000, 0x093faf33 )
2734 	ROM_LOAD( "db_k802m.rom", 0x40000, 0x20000, 0x055b4c59 )
2735 	ROM_LOAD( "db_k803m.rom", 0x60000, 0x20000, 0x8ed63922 )
2736 
2737 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2738 	ROM_LOAD( "db_a0m.rom",   0x00000, 0x20000, 0x4c83e92e )	/* tiles #1 */
2739 	ROM_LOAD( "db_a1m.rom",   0x20000, 0x20000, 0x835ef268 )
2740 	ROM_LOAD( "db_a2m.rom",   0x40000, 0x20000, 0x5117f114 )
2741 	ROM_LOAD( "db_a3m.rom",   0x60000, 0x20000, 0x8eb0c978 )
2742 
2743 	ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2744 	ROM_LOAD( "db_b0m.rom",   0x00000, 0x20000, 0x4c83e92e )	/* tiles #2 */
2745 	ROM_LOAD( "db_b1m.rom",   0x20000, 0x20000, 0x835ef268 )
2746 	ROM_LOAD( "db_b2m.rom",   0x40000, 0x20000, 0x5117f114 )
2747 	ROM_LOAD( "db_b3m.rom",   0x60000, 0x20000, 0x8eb0c978 )
2748 
2749 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2750 	ROM_LOAD( "db_c-v0.rom",  0x00000, 0x20000, 0x312f7282 )
2751 ROM_END
2752 
2753 ROM_START( rtype2 )
2754 	ROM_REGION( 0x100000, REGION_CPU1 )
2755 	ROM_LOAD_V20_EVEN( "ic54.8d",      0x00000, 0x20000, 0xd8ece6f4 )
2756 	ROM_LOAD_V20_ODD ( "ic60.9d",      0x00000, 0x20000, 0x32cfb2e4 )
2757 	ROM_LOAD_V20_EVEN( "ic53.8b",      0x40000, 0x20000, 0x4f6e9b15 )
2758 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2759 	ROM_LOAD_V20_ODD ( "ic59.9b",      0x40000, 0x20000, 0x0fd123bf )
2760 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2761 
2762 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2763 	ROM_LOAD( "ic17.4f",      0x0000, 0x10000, 0x73ffecb4 )
2764 
2765 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2766 	ROM_LOAD( "ic31.6l",      0x00000, 0x20000, 0x2cd8f913 )	/* sprites */
2767 	ROM_LOAD( "ic21.4l",      0x20000, 0x20000, 0x5033066d )
2768 	ROM_LOAD( "ic32.6m",      0x40000, 0x20000, 0xec3a0450 )
2769 	ROM_LOAD( "ic22.4m",      0x60000, 0x20000, 0xdb6176fc )
2770 
2771 	ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2772 	ROM_LOAD( "ic50.7s",      0x00000, 0x20000, 0xf3f8736e )	/* tiles */
2773 	ROM_LOAD( "ic51.7u",      0x20000, 0x20000, 0xb4c543af )
2774 	ROM_LOAD( "ic56.8s",      0x40000, 0x20000, 0x4cb80d66 )
2775 	ROM_LOAD( "ic57.8u",      0x60000, 0x20000, 0xbee128e0 )
2776 	ROM_LOAD( "ic65.9r",      0x80000, 0x20000, 0x2dc9c71a )
2777 	ROM_LOAD( "ic66.9u",      0xa0000, 0x20000, 0x7533c428 )
2778 	ROM_LOAD( "ic63.9m",      0xc0000, 0x20000, 0xa6ad67f2 )
2779 	ROM_LOAD( "ic64.9p",      0xe0000, 0x20000, 0x3686d555 )
2780 
2781 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2782 	ROM_LOAD( "ic14.4c",      0x00000, 0x20000, 0x637172d5 )
2783 ROM_END
2784 
2785 ROM_START( rtype2j )
2786 	ROM_REGION( 0x100000, REGION_CPU1 )
2787 	ROM_LOAD_V20_EVEN( "rt2-a-h0.54",  0x00000, 0x20000, 0x7857ccf6 )
2788 	ROM_LOAD_V20_ODD ( "rt2-a-l0.60",  0x00000, 0x20000, 0xcb22cd6e )
2789 	ROM_LOAD_V20_EVEN( "rt2-a-h1.53",  0x40000, 0x20000, 0x49e75d28 )
2790 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2791 	ROM_LOAD_V20_ODD ( "rt2-a-l1.59",  0x40000, 0x20000, 0x12ec1676 )
2792 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2793 
2794 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2795 	ROM_LOAD( "ic17.4f",      0x0000, 0x10000, 0x73ffecb4 )
2796 
2797 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2798 	ROM_LOAD( "ic31.6l",      0x00000, 0x20000, 0x2cd8f913 )	/* sprites */
2799 	ROM_LOAD( "ic21.4l",      0x20000, 0x20000, 0x5033066d )
2800 	ROM_LOAD( "ic32.6m",      0x40000, 0x20000, 0xec3a0450 )
2801 	ROM_LOAD( "ic22.4m",      0x60000, 0x20000, 0xdb6176fc )
2802 
2803 	ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2804 	ROM_LOAD( "ic50.7s",      0x00000, 0x20000, 0xf3f8736e )	/* tiles */
2805 	ROM_LOAD( "ic51.7u",      0x20000, 0x20000, 0xb4c543af )
2806 	ROM_LOAD( "ic56.8s",      0x40000, 0x20000, 0x4cb80d66 )
2807 	ROM_LOAD( "ic57.8u",      0x60000, 0x20000, 0xbee128e0 )
2808 	ROM_LOAD( "ic65.9r",      0x80000, 0x20000, 0x2dc9c71a )
2809 	ROM_LOAD( "ic66.9u",      0xa0000, 0x20000, 0x7533c428 )
2810 	ROM_LOAD( "ic63.9m",      0xc0000, 0x20000, 0xa6ad67f2 )
2811 	ROM_LOAD( "ic64.9p",      0xe0000, 0x20000, 0x3686d555 )
2812 
2813 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2814 	ROM_LOAD( "ic14.4c",      0x00000, 0x20000, 0x637172d5 )
2815 ROM_END
2816 
2817 ROM_START( majtitle )
2818 	ROM_REGION( 0x100000, REGION_CPU1 )
2819 	ROM_LOAD_V20_EVEN( "mt_m0.bin",    0x00000, 0x20000, 0xb9682c70 )
2820 	ROM_LOAD_V20_ODD ( "mt_l0.bin",    0x00000, 0x20000, 0x702c9fd6 )
2821 	ROM_LOAD_V20_EVEN( "mt_m1.bin",    0x40000, 0x20000, 0xd9e97c30 )
2822 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2823 	ROM_LOAD_V20_ODD ( "mt_l1.bin",    0x40000, 0x20000, 0x8dbd91b5 )
2824 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2825 
2826 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2827 	ROM_LOAD( "mt_sp.bin",    0x0000, 0x10000, 0xe44260a9 )
2828 
2829 	ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2830 	ROM_LOAD( "mt_n0.bin",    0x00000, 0x40000, 0x5618cddc )	/* sprites #1 */
2831 	ROM_LOAD( "mt_n1.bin",    0x40000, 0x40000, 0x483b873b )
2832 	ROM_LOAD( "mt_n2.bin",    0x80000, 0x40000, 0x4f5d665b )
2833 	ROM_LOAD( "mt_n3.bin",    0xc0000, 0x40000, 0x83571549 )
2834 
2835 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2836 	ROM_LOAD( "mt_c0.bin",    0x00000, 0x20000, 0x780e7a02 )	/* tiles */
2837 	ROM_LOAD( "mt_c1.bin",    0x20000, 0x20000, 0x45ad1381 )
2838 	ROM_LOAD( "mt_c2.bin",    0x40000, 0x20000, 0x5df5856d )
2839 	ROM_LOAD( "mt_c3.bin",    0x60000, 0x20000, 0xf5316cc8 )
2840 
2841 	ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
2842 	ROM_LOAD( "mt_f0.bin",    0x00000, 0x20000, 0x2d5e05d5 )	/* sprites #2 */
2843 	ROM_LOAD( "mt_f1.bin",    0x20000, 0x20000, 0xc68cd65f )
2844 	ROM_LOAD( "mt_f2.bin",    0x40000, 0x20000, 0xa71feb2d )
2845 	ROM_LOAD( "mt_f3.bin",    0x60000, 0x20000, 0x179f7562 )
2846 
2847 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2848 	ROM_LOAD( "mt_vo.bin",    0x00000, 0x20000, 0xeb24bb2c )
2849 ROM_END
2850 
2851 ROM_START( hharry )
2852 	ROM_REGION( 0x100000, REGION_CPU1 )
2853 	ROM_LOAD_V20_EVEN( "a-h0-v.rom",   0x00000, 0x20000, 0xc52802a5 )
2854 	ROM_LOAD_V20_ODD ( "a-l0-v.rom",   0x00000, 0x20000, 0xf463074c )
2855 	ROM_LOAD_V20_EVEN( "a-h1-0.rom",   0x60000, 0x10000, 0x3ae21335 )
2856 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2857 	ROM_LOAD_V20_ODD ( "a-l1-0.rom",   0x60000, 0x10000, 0xbc6ac5f9 )
2858 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2859 
2860 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2861 	ROM_LOAD( "a-sp-0.rom",   0x0000, 0x10000, 0x80e210e7 )
2862 
2863 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2864 	ROM_LOAD( "hh_00.rom",    0x00000, 0x20000, 0xec5127ef )	/* sprites */
2865 	ROM_LOAD( "hh_10.rom",    0x20000, 0x20000, 0xdef65294 )
2866 	ROM_LOAD( "hh_20.rom",    0x40000, 0x20000, 0xbb0d6ad4 )
2867 	ROM_LOAD( "hh_30.rom",    0x60000, 0x20000, 0x4351044e )
2868 
2869 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2870 	ROM_LOAD( "hh_a0.rom",    0x00000, 0x20000, 0xc577ba5f )	/* tiles */
2871 	ROM_LOAD( "hh_a1.rom",    0x20000, 0x20000, 0x429d12ab )
2872 	ROM_LOAD( "hh_a2.rom",    0x40000, 0x20000, 0xb5b163b0 )
2873 	ROM_LOAD( "hh_a3.rom",    0x60000, 0x20000, 0x8ef566a1 )
2874 
2875 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2876 	ROM_LOAD( "a-v0-0.rom",   0x00000, 0x20000, 0xfaaacaff )
2877 ROM_END
2878 
2879 ROM_START( hharryu )
2880 	ROM_REGION( 0x100000, REGION_CPU1 )
2881 	ROM_LOAD_V20_EVEN( "a-ho-u.8d",    0x00000, 0x20000, 0xede7f755 )
2882 	ROM_LOAD_V20_ODD ( "a-lo-u.9d",    0x00000, 0x20000, 0xdf0726ae )
2883 	ROM_LOAD_V20_EVEN( "a-h1-f.8b",    0x60000, 0x10000, 0x31b741c5 )
2884 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2885 	ROM_LOAD_V20_ODD ( "a-l1-f.9b",    0x60000, 0x10000, 0xb23e966c )
2886 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2887 
2888 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2889 	ROM_LOAD( "a-sp-0.rom",   0x0000, 0x10000, 0x80e210e7 )
2890 
2891 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2892 	ROM_LOAD( "hh_00.rom",    0x00000, 0x20000, 0xec5127ef )	/* sprites */
2893 	ROM_LOAD( "hh_10.rom",    0x20000, 0x20000, 0xdef65294 )
2894 	ROM_LOAD( "hh_20.rom",    0x40000, 0x20000, 0xbb0d6ad4 )
2895 	ROM_LOAD( "hh_30.rom",    0x60000, 0x20000, 0x4351044e )
2896 
2897 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2898 	ROM_LOAD( "hh_a0.rom",    0x00000, 0x20000, 0xc577ba5f )	/* tiles */
2899 	ROM_LOAD( "hh_a1.rom",    0x20000, 0x20000, 0x429d12ab )
2900 	ROM_LOAD( "hh_a2.rom",    0x40000, 0x20000, 0xb5b163b0 )
2901 	ROM_LOAD( "hh_a3.rom",    0x60000, 0x20000, 0x8ef566a1 )
2902 
2903 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2904 	ROM_LOAD( "a-v0-0.rom",   0x00000, 0x20000, 0xfaaacaff )
2905 ROM_END
2906 
2907 ROM_START( dkgensan )
2908 	ROM_REGION( 0x100000, REGION_CPU1 )
2909 	ROM_LOAD_V20_EVEN( "gen-a-h0.bin", 0x00000, 0x20000, 0x07a45f6d )
2910 	ROM_LOAD_V20_ODD ( "gen-a-l0.bin", 0x00000, 0x20000, 0x46478fea )
2911 	ROM_LOAD_V20_EVEN( "gen-a-h1.bin", 0x60000, 0x10000, 0x54e5b73c )
2912 	ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
2913 	ROM_LOAD_V20_ODD ( "gen-a-l1.bin", 0x60000, 0x10000, 0x894f8a9f )
2914 	ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
2915 
2916 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2917 	ROM_LOAD( "gen-a-sp.bin", 0x0000, 0x10000, 0xe83cfc2c )
2918 
2919 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2920 	ROM_LOAD( "hh_00.rom",    0x00000, 0x20000, 0xec5127ef )	/* sprites */
2921 	ROM_LOAD( "hh_10.rom",    0x20000, 0x20000, 0xdef65294 )
2922 	ROM_LOAD( "hh_20.rom",    0x40000, 0x20000, 0xbb0d6ad4 )
2923 	ROM_LOAD( "hh_30.rom",    0x60000, 0x20000, 0x4351044e )
2924 
2925 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2926 	ROM_LOAD( "hh_a0.rom",    0x00000, 0x20000, 0xc577ba5f )	/* tiles */
2927 	ROM_LOAD( "hh_a1.rom",    0x20000, 0x20000, 0x429d12ab )
2928 	ROM_LOAD( "hh_a2.rom",    0x40000, 0x20000, 0xb5b163b0 )
2929 	ROM_LOAD( "hh_a3.rom",    0x60000, 0x20000, 0x8ef566a1 )
2930 
2931 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2932 	ROM_LOAD( "gen-vo.bin",   0x00000, 0x20000, 0xd8595c66 )
2933 ROM_END
2934 
2935 ROM_START( kengo )
2936 	ROM_REGION( 0x100000, REGION_CPU1 )
2937 	ROM_LOAD_V20_EVEN( "ken_d-h0.rom", 0x00000, 0x20000, 0xf4ddeea5 )
2938 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2939 	ROM_LOAD_V20_ODD ( "ken_d-l0.rom", 0x00000, 0x20000, 0x04dc0f81 )
2940 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2941 
2942 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2943 	ROM_LOAD( "ken_d-sp.rom", 0x0000, 0x10000, 0x233ca1cf )
2944 
2945 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2946 	ROM_LOAD( "ken_m21.rom",  0x00000, 0x20000, 0xd7722f87 )	/* sprites */
2947 	ROM_LOAD( "ken_m22.rom",  0x20000, 0x20000, 0xa00dac85 )
2948 	ROM_LOAD( "ken_m31.rom",  0x40000, 0x20000, 0xe00b95a6 )
2949 	ROM_LOAD( "ken_m32.rom",  0x60000, 0x20000, 0x30a844c4 )
2950 
2951 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2952 	ROM_LOAD( "ken_m51.rom",  0x00000, 0x20000, 0x1646cf4f )	/* tiles */
2953 	ROM_LOAD( "ken_m57.rom",  0x20000, 0x20000, 0xa9f88d90 )
2954 	ROM_LOAD( "ken_m66.rom",  0x40000, 0x20000, 0xe9d17645 )
2955 	ROM_LOAD( "ken_m64.rom",  0x60000, 0x20000, 0xdf46709b )
2956 
2957 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
2958 	ROM_LOAD( "ken_m14.rom",  0x00000, 0x20000, 0x6651e9b7 )
2959 ROM_END
2960 
2961 ROM_START( poundfor )
2962 	ROM_REGION( 0x100000, REGION_CPU1 )
2963 	ROM_LOAD_V20_EVEN( "ppa-h0-b.bin", 0x00000, 0x20000, 0x50d4a2d8 )
2964 	ROM_LOAD_V20_ODD ( "ppa-l0-b.bin", 0x00000, 0x20000, 0xbd997942 )
2965 	ROM_LOAD_V20_EVEN( "ppa-h1.9f",    0x40000, 0x20000, 0xf6c82f48 )
2966 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2967 	ROM_LOAD_V20_ODD ( "ppa-l1.9c",    0x40000, 0x20000, 0x5b07b087 )
2968 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2969 
2970 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2971 	ROM_LOAD( "ppa-sp.4j",    0x0000, 0x10000, 0x3f458a5b )
2972 
2973 	ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2974 	ROM_LOAD( "ppb-n0.bin",   0x00000, 0x40000, 0x951a41f8 )	/* sprites */
2975 	ROM_LOAD( "ppb-n1.bin",   0x40000, 0x40000, 0xc609b7f2 )
2976 	ROM_LOAD( "ppb-n2.bin",   0x80000, 0x40000, 0x318c0b5f )
2977 	ROM_LOAD( "ppb-n3.bin",   0xc0000, 0x40000, 0x93dc9490 )
2978 
2979 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2980 	ROM_LOAD( "ppa-g00.bin",  0x00000, 0x20000, 0x8a88a174 )	/* tiles */
2981 	ROM_LOAD( "ppa-g10.bin",  0x20000, 0x20000, 0xe48a66ac )
2982 	ROM_LOAD( "ppa-g20.bin",  0x40000, 0x20000, 0x12b93e79 )
2983 	ROM_LOAD( "ppa-g30.bin",  0x60000, 0x20000, 0xfaa39aee )
2984 
2985 	ROM_REGION( 0x40000, REGION_SOUND1 )	/* samples */
2986 	ROM_LOAD( "ppa-v0.bin",   0x00000, 0x40000, 0x03321664 )
2987 ROM_END
2988 
2989 ROM_START( poundfou )
2990 	ROM_REGION( 0x100000, REGION_CPU1 )
2991 	ROM_LOAD_V20_EVEN( "ppa-ho-a.9e",  0x00000, 0x20000, 0xff4c83a4 )
2992 	ROM_LOAD_V20_ODD ( "ppa-lo-a.9d",  0x00000, 0x20000, 0x3374ce8f )
2993 	ROM_LOAD_V20_EVEN( "ppa-h1.9f",    0x40000, 0x20000, 0xf6c82f48 )
2994 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
2995 	ROM_LOAD_V20_ODD ( "ppa-l1.9c",    0x40000, 0x20000, 0x5b07b087 )
2996 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
2997 
2998 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
2999 	ROM_LOAD( "ppa-sp.4j",    0x0000, 0x10000, 0x3f458a5b )
3000 
3001 	ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
3002 	ROM_LOAD( "ppb-n0.bin",   0x00000, 0x40000, 0x951a41f8 )	/* sprites */
3003 	ROM_LOAD( "ppb-n1.bin",   0x40000, 0x40000, 0xc609b7f2 )
3004 	ROM_LOAD( "ppb-n2.bin",   0x80000, 0x40000, 0x318c0b5f )
3005 	ROM_LOAD( "ppb-n3.bin",   0xc0000, 0x40000, 0x93dc9490 )
3006 
3007 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
3008 	ROM_LOAD( "ppa-g00.bin",  0x00000, 0x20000, 0x8a88a174 )	/* tiles */
3009 	ROM_LOAD( "ppa-g10.bin",  0x20000, 0x20000, 0xe48a66ac )
3010 	ROM_LOAD( "ppa-g20.bin",  0x40000, 0x20000, 0x12b93e79 )
3011 	ROM_LOAD( "ppa-g30.bin",  0x60000, 0x20000, 0xfaa39aee )
3012 
3013 	ROM_REGION( 0x40000, REGION_SOUND1 )	/* samples */
3014 	ROM_LOAD( "ppa-v0.bin",   0x00000, 0x40000, 0x03321664 )
3015 ROM_END
3016 
3017 ROM_START( airduel )
3018 	ROM_REGION( 0x100000, REGION_CPU1 )
3019 	ROM_LOAD_V20_EVEN( "ad-c-h0.bin",  0x00000, 0x20000, 0x12140276 )
3020 	ROM_LOAD_V20_ODD ( "ad-c-l0.bin",  0x00000, 0x20000, 0x4ac0b91d )
3021 	ROM_LOAD_V20_EVEN( "ad-c-h3.bin",  0x40000, 0x20000, 0x9f7cfca3 )
3022 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
3023 	ROM_LOAD_V20_ODD ( "ad-c-l3.bin",  0x40000, 0x20000, 0x9dd343f7 )
3024 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
3025 
3026 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
3027 	/* no ROM, program will be copied by the main CPU */
3028 
3029 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
3030 	ROM_LOAD( "ad-00.bin",    0x00000, 0x20000, 0x2f0d599b )	/* sprites */
3031 	ROM_LOAD( "ad-10.bin",    0x20000, 0x20000, 0x9865856b )
3032 	ROM_LOAD( "ad-20.bin",    0x40000, 0x20000, 0xd392aef2 )
3033 	ROM_LOAD( "ad-30.bin",    0x60000, 0x20000, 0x923240c3 )
3034 
3035 	ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
3036 	ROM_LOAD( "ad-a0.bin",    0x00000, 0x20000, 0xce134b47 )	/* tiles #1 */
3037 	ROM_LOAD( "ad-a1.bin",    0x20000, 0x20000, 0x097fd853 )
3038 	ROM_LOAD( "ad-a2.bin",    0x40000, 0x20000, 0x6a94c1b9 )
3039 	ROM_LOAD( "ad-a3.bin",    0x60000, 0x20000, 0x6637c349 )
3040 
3041 	ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
3042 	ROM_LOAD( "ad-b0.bin",    0x00000, 0x20000, 0xce134b47 )	/* tiles #2 */
3043 	ROM_LOAD( "ad-b1.bin",    0x20000, 0x20000, 0x097fd853 )
3044 	ROM_LOAD( "ad-b2.bin",    0x40000, 0x20000, 0x6a94c1b9 )
3045 	ROM_LOAD( "ad-b3.bin",    0x60000, 0x20000, 0x6637c349 )
3046 
3047 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
3048 	ROM_LOAD( "ad-v0.bin",    0x00000, 0x20000, 0x339f474d )
3049 ROM_END
3050 
3051 ROM_START( gallop )
3052 	ROM_REGION( 0x100000, REGION_CPU1 )
3053 	ROM_LOAD_V20_EVEN( "cc-c-h0.bin",  0x00000, 0x20000, 0x2217dcd0 )
3054 	ROM_LOAD_V20_ODD ( "cc-c-l0.bin",  0x00000, 0x20000, 0xff39d7fb )
3055 	ROM_LOAD_V20_EVEN( "cc-c-h3.bin",  0x40000, 0x20000, 0x9b2bbab9 )
3056 	ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
3057 	ROM_LOAD_V20_ODD ( "cc-c-l3.bin",  0x40000, 0x20000, 0xacd3278e )
3058 	ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
3059 
3060 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
3061 	/* no ROM, program will be copied by the main CPU */
3062 
3063 	ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
3064 	ROM_LOAD( "cc-c-00.bin",  0x00000, 0x20000, 0x9d99deaa )	/* sprites */
3065 	ROM_LOAD( "cc-c-10.bin",  0x20000, 0x20000, 0x7eb083ed )
3066 	ROM_LOAD( "cc-c-20.bin",  0x40000, 0x20000, 0x9421489e )
3067 	ROM_LOAD( "cc-c-30.bin",  0x60000, 0x20000, 0x920ec735 )
3068 
3069 	ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
3070 	ROM_LOAD( "cc-b-a0.bin",  0x00000, 0x10000, 0xa33472bd )	/* tiles #1 */
3071 	ROM_LOAD( "cc-b-a1.bin",  0x10000, 0x10000, 0x118b1f2d )
3072 	ROM_LOAD( "cc-b-a2.bin",  0x20000, 0x10000, 0x83cebf48 )
3073 	ROM_LOAD( "cc-b-a3.bin",  0x30000, 0x10000, 0x572903fc )
3074 
3075 	ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
3076 	ROM_LOAD( "cc-b-b0.bin",  0x00000, 0x10000, 0x0df5b439 )	/* tiles #2 */
3077 	ROM_LOAD( "cc-b-b1.bin",  0x10000, 0x10000, 0x010b778f )
3078 	ROM_LOAD( "cc-b-b2.bin",  0x20000, 0x10000, 0xbda9f6fb )
3079 	ROM_LOAD( "cc-b-b3.bin",  0x30000, 0x10000, 0xd361ba3f )
3080 
3081 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* samples */
3082 	ROM_LOAD( "cc-c-v0.bin",  0x00000, 0x20000, 0x6247bade )
3083 ROM_END
3084 
3085 
3086 
3087 GAMEX( 1987, rtype,    0,        rtype,    rtype,    0,        ROT0,   "Irem", "R-Type (Japan)", GAME_NO_COCKTAIL )
3088 GAMEX( 1987, rtypepj,  rtype,    rtype,    rtypep,   0,        ROT0,   "Irem", "R-Type (Japan prototype)", GAME_NO_COCKTAIL )
3089 GAMEX( 1987, rtypeu,   rtype,    rtype,    rtype,    0,        ROT0,   "Irem (Nintendo of America license)", "R-Type (US)", GAME_NO_COCKTAIL )
3090 GAMEX( 1987, bchopper, 0,        m72,      bchopper, bchopper, ROT0,   "Irem", "Battle Chopper", GAME_NO_COCKTAIL )
3091 GAMEX( 1987, mrheli,   bchopper, m72,      bchopper, mrheli,   ROT0,   "Irem", "Mr. HELI no Dai-Bouken", GAME_NO_COCKTAIL )
3092 GAMEX( 1988, nspirit,  0,        m72,      nspirit,  nspirit,  ROT0,   "Irem", "Ninja Spirit", GAME_NO_COCKTAIL )
3093 GAMEX( 1988, nspiritj, nspirit,  m72,      nspirit,  nspiritj, ROT0,   "Irem", "Saigo no Nindou (Japan)", GAME_NO_COCKTAIL )
3094 GAMEX( 1988, imgfight, 0,        m72,      imgfight, imgfight, ROT270, "Irem", "Image Fight (Japan)", GAME_NO_COCKTAIL )
3095 GAMEX( 1989, loht,     0,        m72,      loht,     loht,     ROT0,   "Irem", "Legend of Hero Tonma", GAME_NO_COCKTAIL )
3096 GAMEX( 1989, xmultipl, 0,        xmultipl, xmultipl, xmultipl, ROT0,   "Irem", "X Multiply (Japan)", GAME_NO_COCKTAIL )
3097 GAMEX( 1989, dbreed,   0,        dbreed,   dbreed,   dbreed,   ROT0,   "Irem", "Dragon Breed", GAME_NO_COCKTAIL )
3098 GAMEX( 1989, rtype2,   0,        rtype2,   rtype2,   0,        ROT0,   "Irem", "R-Type II", GAME_NO_COCKTAIL )
3099 GAMEX( 1989, rtype2j,  rtype2,   rtype2,   rtype2,   0,        ROT0,   "Irem", "R-Type II (Japan)", GAME_NO_COCKTAIL )
3100 GAMEX( 1990, majtitle, 0,        majtitle, rtype2,   0,        ROT0,   "Irem", "Major Title (Japan)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
3101 GAMEX( 1990, hharry,   0,        hharry,   hharry,   0,        ROT0,   "Irem", "Hammerin' Harry (World)", GAME_NO_COCKTAIL )
3102 GAMEX( 1990, hharryu,  hharry,   hharryu,  hharry,   0,        ROT0,   "Irem America", "Hammerin' Harry (US)", GAME_NO_COCKTAIL )
3103 GAMEX( 1990, dkgensan, hharry,   hharryu,  hharry,   0,        ROT0,   "Irem", "Daiku no Gensan (Japan)", GAME_NO_COCKTAIL )
3104 GAMEX( 1991, kengo,    0,        hharry,   hharry,   0,        ROT0,   "Irem", "Ken-Go", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
3105 GAMEX( 1990, poundfor, 0,        poundfor, poundfor, 0,        ROT270, "Irem", "Pound for Pound (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3106 GAMEX( 1990, poundfou, poundfor, poundfor, poundfor, 0,        ROT270, "Irem America", "Pound for Pound (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3107 GAMEX( 1990, airduel,  0,        m72,      airduel,  airduel,  ROT270, "Irem", "Air Duel (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3108 GAMEX( 1991, gallop,   0,        m72,      gallop,   gallop,   ROT0,   "Irem", "Gallop - Armed police Unit (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3109