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