1 #include "../vidhrdw/m62.c"
2
3 /****************************************************************************
4
5 Irem "M62" system
6
7 There's two crystals on Kid Kiki. 24.00 MHz and 3.579545 MHz for sound
8
9 TODO:
10 - Kid Niki is missing the drums
11
12 **************************************************************************/
13
14 #include "driver.h"
15 #include "sndhrdw/irem.h"
16 #include "vidhrdw/generic.h"
17
18
19 void irem_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
20 void battroad_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
21 void spelunk2_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
22 int ldrun_vh_start( void );
23 int kidniki_vh_start( void );
24 int spelunkr_vh_start( void );
25 WRITE_HANDLER( irem_flipscreen_w );
26 WRITE_HANDLER( kungfum_scroll_low_w );
27 WRITE_HANDLER( kungfum_scroll_high_w );
28 WRITE_HANDLER( ldrun3_vscroll_w );
29 WRITE_HANDLER( ldrun4_hscroll_w );
30 WRITE_HANDLER( irem_background_hscroll_w );
31 WRITE_HANDLER( irem_background_vscroll_w );
32 WRITE_HANDLER( battroad_scroll_w );
33 WRITE_HANDLER( kidniki_text_vscroll_w );
34 WRITE_HANDLER( kidniki_background_bank_w );
35 WRITE_HANDLER( spelunkr_palbank_w );
36 WRITE_HANDLER( spelunk2_gfxport_w );
37 void kungfum_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
38 void battroad_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
39 void ldrun_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
40 void ldrun4_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
41 void lotlot_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
42 void kidniki_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
43 void spelunkr_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
44 void spelunk2_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
45
46 extern unsigned char *irem_textram;
47 extern size_t irem_textram_size;
48
49
50
51 /* Lode Runner 2 seems to have a simple protection on the bank switching */
52 /* circuitry. It writes data to ports 0x80 and 0x81, then reads port 0x80 */
53 /* a variable number of times (discarding the result) and finally retrieves */
54 /* data from the bankswitched ROM area. */
55 /* Since the data written to 0x80 is always the level number, I just use */
56 /* that to select the ROM. The only exception I make is a special case used in */
57 /* service mode to test the ROMs. */
58 static int ldrun2_bankswap;
59
READ_HANDLER(ldrun2_bankswitch_r)60 READ_HANDLER( ldrun2_bankswitch_r )
61 {
62 if (ldrun2_bankswap)
63 {
64 unsigned char *RAM = memory_region(REGION_CPU1);
65
66
67 ldrun2_bankswap--;
68
69 /* swap to bank #1 on second read */
70 if (ldrun2_bankswap == 0)
71 cpu_setbank(1,&RAM[0x12000]);
72 }
73 return 0;
74 }
75
WRITE_HANDLER(ldrun2_bankswitch_w)76 WRITE_HANDLER( ldrun2_bankswitch_w )
77 {
78 int bankaddress;
79 static int bankcontrol[2];
80 int banks[30] =
81 {
82 0,0,0,0,0,1,0,1,0,0,
83 0,1,1,1,1,1,0,0,0,0,
84 1,0,1,1,1,1,1,1,1,1
85 };
86 unsigned char *RAM = memory_region(REGION_CPU1);
87
88
89 bankcontrol[offset] = data;
90 if (offset == 0)
91 {
92 if (data < 1 || data > 30)
93 {
94 //logerror("unknown bank select %02x\n",data);
95 return;
96 }
97 bankaddress = 0x10000 + (banks[data-1] * 0x2000);
98 cpu_setbank(1,&RAM[bankaddress]);
99 }
100 else
101 {
102 if (bankcontrol[0] == 0x01 && data == 0x0d)
103 /* special case for service mode */
104 ldrun2_bankswap = 2;
105 else ldrun2_bankswap = 0;
106 }
107 }
108
109
110 /* Lode Runner 3 has, it seems, a poor man's protection consisting of a PAL */
111 /* (I think; it's included in the ROM set) which is read at certain times, */
112 /* and the game crashes if ti doesn't match the expected values. */
READ_HANDLER(ldrun3_prot_5_r)113 READ_HANDLER( ldrun3_prot_5_r )
114 {
115 return 5;
116 }
117
READ_HANDLER(ldrun3_prot_7_r)118 READ_HANDLER( ldrun3_prot_7_r )
119 {
120 return 7;
121 }
122
123
WRITE_HANDLER(ldrun4_bankswitch_w)124 WRITE_HANDLER( ldrun4_bankswitch_w )
125 {
126 int bankaddress;
127 unsigned char *RAM = memory_region(REGION_CPU1);
128
129
130 bankaddress = 0x10000 + ((data & 0x01) * 0x4000);
131 cpu_setbank(1,&RAM[bankaddress]);
132 }
133
WRITE_HANDLER(kidniki_bankswitch_w)134 static WRITE_HANDLER( kidniki_bankswitch_w )
135 {
136 int bankaddress;
137 unsigned char *RAM = memory_region(REGION_CPU1);
138
139
140 bankaddress = 0x10000 + (data & 0x0f) * 0x2000;
141 cpu_setbank(1,&RAM[bankaddress]);
142 }
143
144 #define battroad_bankswitch_w kidniki_bankswitch_w
145
WRITE_HANDLER(spelunkr_bankswitch_w)146 static WRITE_HANDLER( spelunkr_bankswitch_w )
147 {
148 int bankaddress;
149 unsigned char *RAM = memory_region(REGION_CPU1);
150
151
152 bankaddress = 0x10000 + (data & 0x03) * 0x2000;
153 cpu_setbank(1,&RAM[bankaddress]);
154 }
155
WRITE_HANDLER(spelunk2_bankswitch_w)156 WRITE_HANDLER( spelunk2_bankswitch_w )
157 {
158 unsigned char *RAM = memory_region(REGION_CPU1);
159
160
161 cpu_setbank(1,&RAM[0x20000 + 0x1000 * ((data & 0xc0)>>6)]);
162 cpu_setbank(2,&RAM[0x10000 + 0x0400 * (data & 0x3c)]);
163 }
164
165
166
167
168 static struct MemoryWriteAddress kungfum_writemem[] =
169 {
170 { 0x0000, 0x7fff, MWA_ROM },
171 { 0xa000, 0xa000, kungfum_scroll_low_w },
172 { 0xb000, 0xb000, kungfum_scroll_high_w },
173 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
174 /* Kung Fu Master is the only game in this driver to have separated (but */
175 /* contiguous) videoram and colorram. They are interleaved in all the others. */
176 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
177 { 0xe000, 0xefff, MWA_RAM },
178 { -1 } /* end of table */
179 };
180
181 static struct MemoryReadAddress battroad_readmem[] =
182 {
183 { 0x0000, 0x7fff, MRA_ROM },
184 { 0xa000, 0xbfff, MRA_BANK1 },
185 { 0xc800, 0xefff, MRA_RAM },
186 { -1 } /* end of table */
187 };
188
189 static struct MemoryWriteAddress battroad_writemem[] =
190 {
191 { 0x0000, 0xbfff, MWA_ROM },
192 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
193 { 0xc800, 0xcfff, MWA_RAM, &irem_textram, &irem_textram_size },
194 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
195 { 0xe000, 0xefff, MWA_RAM },
196 { -1 } /* end of table */
197 };
198
199 static struct MemoryReadAddress ldrun_readmem[] =
200 {
201 { 0x0000, 0x7fff, MRA_ROM },
202 { 0xd000, 0xefff, MRA_RAM },
203 { -1 } /* end of table */
204 };
205
206 static struct MemoryWriteAddress ldrun_writemem[] =
207 {
208 { 0x0000, 0x7fff, MWA_ROM },
209 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
210 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
211 { 0xe000, 0xefff, MWA_RAM },
212 { -1 } /* end of table */
213 };
214
215 static struct MemoryReadAddress ldrun2_readmem[] =
216 {
217 { 0x0000, 0x7fff, MRA_ROM },
218 { 0x8000, 0x9fff, MRA_BANK1 },
219 { 0xd000, 0xefff, MRA_RAM },
220 { -1 } /* end of table */
221 };
222
223 static struct MemoryWriteAddress ldrun2_writemem[] =
224 {
225 { 0x0000, 0x9fff, MWA_ROM },
226 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
227 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
228 { 0xe000, 0xefff, MWA_RAM },
229 { -1 } /* end of table */
230 };
231
232 static struct MemoryReadAddress ldrun3_readmem[] =
233 {
234 { 0x0000, 0xbfff, MRA_ROM },
235 { 0xc800, 0xc800, ldrun3_prot_5_r },
236 { 0xcc00, 0xcc00, ldrun3_prot_7_r },
237 { 0xcfff, 0xcfff, ldrun3_prot_7_r },
238 { 0xd000, 0xefff, MRA_RAM },
239 { -1 } /* end of table */
240 };
241
242 static struct MemoryWriteAddress ldrun3_writemem[] =
243 {
244 { 0x0000, 0xbfff, MWA_ROM },
245 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
246 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
247 { 0xe000, 0xefff, MWA_RAM },
248 { -1 } /* end of table */
249 };
250
251 static struct MemoryReadAddress ldrun4_readmem[] =
252 {
253 { 0x0000, 0x7fff, MRA_ROM },
254 { 0x8000, 0xbfff, MRA_BANK1 },
255 { 0xd000, 0xefff, MRA_RAM },
256 { -1 } /* end of table */
257 };
258
259 static struct MemoryWriteAddress ldrun4_writemem[] =
260 {
261 { 0x0000, 0xbfff, MWA_ROM },
262 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
263 { 0xc800, 0xc800, ldrun4_bankswitch_w },
264 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
265 { 0xe000, 0xefff, MWA_RAM },
266 { -1 } /* end of table */
267 };
268
269 static struct MemoryReadAddress lotlot_readmem[] =
270 {
271 { 0x0000, 0x7fff, MRA_ROM },
272 { 0xa000, 0xafff, MRA_RAM },
273 { 0xd000, 0xefff, MRA_RAM },
274 { -1 } /* end of table */
275 };
276
277 static struct MemoryWriteAddress lotlot_writemem[] =
278 {
279 { 0x0000, 0x7fff, MWA_ROM },
280 { 0xa000, 0xafff, MWA_RAM, &irem_textram, &irem_textram_size },
281 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
282 { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
283 { 0xe000, 0xefff, MWA_RAM },
284 { -1 } /* end of table */
285 };
286
287 static struct MemoryReadAddress kidniki_readmem[] = {
288 { 0x0000, 0x7fff, MRA_ROM },
289 { 0x8000, 0x9fff, MRA_BANK1 },
290 { 0xa000, 0xafff, MRA_RAM },
291 { 0xd000, 0xefff, MRA_RAM },
292 { -1 } /* end of table */
293 };
294
295 static struct MemoryWriteAddress kidniki_writemem[] = {
296 { 0x0000, 0x9fff, MWA_ROM },
297 { 0xa000, 0xafff, videoram_w, &videoram, &videoram_size },
298 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
299 { 0xd000, 0xdfff, MWA_RAM, &irem_textram, &irem_textram_size },
300 { 0xe000, 0xefff, MWA_RAM },
301 { -1 } /* end of table */
302 };
303
304 static struct MemoryReadAddress spelunkr_readmem[] =
305 {
306 { 0x0000, 0x7fff, MRA_ROM },
307 { 0x8000, 0x9fff, MRA_BANK1 },
308 { 0xa000, 0xbfff, MRA_RAM },
309 { 0xc800, 0xcfff, MRA_RAM },
310 { 0xe000, 0xefff, MRA_RAM },
311 { -1 } /* end of table */
312 };
313
314 static struct MemoryWriteAddress spelunkr_writemem[] =
315 {
316 { 0x0000, 0x9fff, MWA_ROM },
317 { 0xa000, 0xbfff, videoram_w, &videoram, &videoram_size },
318 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
319 { 0xc800, 0xcfff, MWA_RAM, &irem_textram, &irem_textram_size },
320 { 0xd000, 0xd001, irem_background_vscroll_w },
321 { 0xd002, 0xd003, irem_background_hscroll_w },
322 { 0xd004, 0xd004, spelunkr_bankswitch_w },
323 { 0xd005, 0xd005, spelunkr_palbank_w },
324 { 0xe000, 0xefff, MWA_RAM },
325 { -1 } /* end of table */
326 };
327
328 static struct MemoryReadAddress spelunk2_readmem[] =
329 {
330 { 0x0000, 0x7fff, MRA_ROM },
331 { 0x8000, 0x8fff, MRA_BANK1 },
332 { 0x9000, 0x9fff, MRA_BANK2 },
333 { 0xa000, 0xbfff, MRA_RAM },
334 { 0xc800, 0xcfff, MRA_RAM },
335 { 0xe000, 0xefff, MRA_RAM },
336 { -1 } /* end of table */
337 };
338
339 static struct MemoryWriteAddress spelunk2_writemem[] =
340 {
341 { 0x0000, 0x9fff, MWA_ROM },
342 { 0xa000, 0xbfff, videoram_w, &videoram, &videoram_size },
343 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
344 { 0xc800, 0xcfff, MWA_RAM, &irem_textram, &irem_textram_size },
345 { 0xd000, 0xd002, spelunk2_gfxport_w },
346 { 0xd003, 0xd003, spelunk2_bankswitch_w },
347 { 0xe000, 0xefff, MWA_RAM },
348 { -1 } /* end of table */
349 };
350
351
352 static struct IOReadPort ldrun_readport[] =
353 {
354 { 0x00, 0x00, input_port_0_r }, /* coin */
355 { 0x01, 0x01, input_port_1_r }, /* player 1 control */
356 { 0x02, 0x02, input_port_2_r }, /* player 2 control */
357 { 0x03, 0x03, input_port_3_r }, /* DSW 1 */
358 { 0x04, 0x04, input_port_4_r }, /* DSW 2 */
359 { -1 } /* end of table */
360 };
361
362 static struct IOWritePort battroad_writeport[] =
363 {
364 { 0x00, 0x00, irem_sound_cmd_w },
365 { 0x01, 0x01, irem_flipscreen_w }, /* + coin counters */
366 { 0x80, 0x82, battroad_scroll_w },
367 { 0x83, 0x83, battroad_bankswitch_w },
368 { -1 } /* end of table */
369 };
370
371 static struct IOWritePort ldrun_writeport[] =
372 {
373 { 0x00, 0x00, irem_sound_cmd_w },
374 { 0x01, 0x01, irem_flipscreen_w }, /* + coin counters */
375 { -1 } /* end of table */
376 };
377
378 static struct IOReadPort ldrun2_readport[] =
379 {
380 { 0x00, 0x00, input_port_0_r }, /* coin */
381 { 0x01, 0x01, input_port_1_r }, /* player 1 control */
382 { 0x02, 0x02, input_port_2_r }, /* player 2 control */
383 { 0x03, 0x03, input_port_3_r }, /* DSW 1 */
384 { 0x04, 0x04, input_port_4_r }, /* DSW 2 */
385 { 0x80, 0x80, ldrun2_bankswitch_r },
386 { -1 } /* end of table */
387 };
388
389 static struct IOWritePort ldrun2_writeport[] =
390 {
391 { 0x00, 0x00, irem_sound_cmd_w },
392 { 0x01, 0x01, irem_flipscreen_w }, /* + coin counters */
393 { 0x80, 0x81, ldrun2_bankswitch_w },
394 { -1 } /* end of table */
395 };
396
397 static struct IOWritePort ldrun3_writeport[] =
398 {
399 { 0x00, 0x00, irem_sound_cmd_w },
400 { 0x01, 0x01, irem_flipscreen_w }, /* + coin counters */
401 { 0x80, 0x80, ldrun3_vscroll_w },
402 /* 0x81 used too, don't know what for */
403 { -1 } /* end of table */
404 };
405
406 static struct IOWritePort ldrun4_writeport[] =
407 {
408 { 0x00, 0x00, irem_sound_cmd_w },
409 { 0x01, 0x01, irem_flipscreen_w }, /* + coin counters */
410 { 0x82, 0x83, ldrun4_hscroll_w },
411 { -1 } /* end of table */
412 };
413
414 static struct IOWritePort kidniki_writeport[] =
415 {
416 { 0x00, 0x00, irem_sound_cmd_w },
417 { 0x01, 0x01, irem_flipscreen_w }, /* + coin counters */
418 { 0x80, 0x81, irem_background_hscroll_w },
419 { 0x82, 0x83, kidniki_text_vscroll_w },
420 { 0x84, 0x84, kidniki_background_bank_w },
421 { 0x85, 0x85, kidniki_bankswitch_w },
422 { -1 } /* end of table */
423 };
424
425
426
427 #define IN0_PORT \
428 /* Start 1 & 2 also restarts and freezes the game with stop mode on \
429 and are used in test mode to enter and esc the various tests */ \
430 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \
431 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) \
432 /* service coin must be active for 19 frames to be consistently recognized */ \
433 PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1, 19 ) \
434 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) \
435 PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
436
437 #define IN1_PORT \
438 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
439 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY ) \
440 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY ) \
441 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY ) \
442 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
443 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) \
444 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
445 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
446
447 #define IN2_PORT \
448 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL ) \
449 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL ) \
450 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL ) \
451 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL ) \
452 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) \
453 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL ) \
454 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
455 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
456
457 #define COINAGE_DSW \
458 /* TODO: support the different settings which happen in Coin Mode 2 */ \
459 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
460 PORT_DIPSETTING( 0x90, DEF_STR( 7C_1C ) ) \
461 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
462 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
463 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
464 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \
465 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \
466 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \
467 PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) \
468 PORT_DIPSETTING( 0x60, DEF_STR( 1C_3C ) ) \
469 PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \
470 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \
471 PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \
472 PORT_DIPSETTING( 0x20, DEF_STR( 1C_7C ) ) \
473 PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C ) ) \
474 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \
475 /* setting 0x80 give 1 Coin/1 Credit */
476
477
478 #define COINAGE2_DSW \
479 /* TODO: support the different settings which happen in Coin Mode 2 */ \
480 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
481 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
482 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
483 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
484 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \
485 PORT_DIPSETTING( 0x10, DEF_STR( 8C_3C ) ) \
486 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \
487 PORT_DIPSETTING( 0x20, DEF_STR( 5C_3C ) ) \
488 PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \
489 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \
490 PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \
491 PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \
492 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \
493 PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \
494 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \
495 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \
496 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \
497
498
499 INPUT_PORTS_START( kungfum )
500 PORT_START /* IN0 */
501 IN0_PORT
502
503 PORT_START /* IN1 */
504 IN1_PORT
505
506 PORT_START /* IN2 */
507 IN2_PORT
508
509 PORT_START /* DSW1 */
510 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Difficulty ) )
511 PORT_DIPSETTING( 0x01, "Easy" )
512 PORT_DIPSETTING( 0x00, "Hard" )
513 PORT_DIPNAME( 0x02, 0x02, "Energy Loss" )
514 PORT_DIPSETTING( 0x02, "Slow" )
515 PORT_DIPSETTING( 0x00, "Fast" )
516 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
517 PORT_DIPSETTING( 0x08, "2" )
518 PORT_DIPSETTING( 0x0c, "3" )
519 PORT_DIPSETTING( 0x04, "4" )
520 PORT_DIPSETTING( 0x00, "5" )
521 COINAGE_DSW
522
523 PORT_START /* DSW2 */
524 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
525 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
526 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
527 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
528 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
529 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
530 /* This activates a different coin mode. Look at the dip switch setting schematic */
531 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
532 PORT_DIPSETTING( 0x04, "Mode 1" )
533 PORT_DIPSETTING( 0x00, "Mode 2" )
534 /* In slowmo mode, press 2 to slow game speed */
535 PORT_BITX ( 0x08, 0x08, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Slow Motion Mode", IP_KEY_NONE, IP_JOY_NONE )
536 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
537 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
538 /* In freeze mode, press 2 to stop and 1 to restart */
539 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
540 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
541 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
542 /* In level selection mode, press 1 to select and 2 to restart */
543 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
544 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
545 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
546 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
547 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
548 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
549 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
550 INPUT_PORTS_END
551
552 INPUT_PORTS_START( battroad )
553 PORT_START /* IN0 */
554 IN0_PORT
555
556 PORT_START /* IN1 */
557 IN1_PORT
558
559 PORT_START /* IN2 */
560 IN2_PORT
561
562 PORT_START /* DSW1 */
563 PORT_DIPNAME( 0x03, 0x03, "Fuel Decrease" )
564 PORT_DIPSETTING( 0x03, "Slow" )
565 PORT_DIPSETTING( 0x02, "Medium" )
566 PORT_DIPSETTING( 0x01, "Fast" )
567 PORT_DIPSETTING( 0x00, "Fastest" )
568 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
569 PORT_DIPSETTING( 0x04, "Easy" )
570 PORT_DIPSETTING( 0x00, "Hard" )
571 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
572 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
573 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
574 COINAGE_DSW
575
576 PORT_START /* DSW2 */
577 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
578 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
579 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
580 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
581 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
582 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
583 /* This activates a different coin mode. Look at the dip switch setting schematic */
584 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
585 PORT_DIPSETTING( 0x04, "Mode 1" )
586 PORT_DIPSETTING( 0x00, "Mode 2" )
587 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
588 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
589 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
590 /* In stop mode, press 2 to stop and 1 to restart */
591 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
592 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
593 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
594 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
595 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
596 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
597 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
598 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
599 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
600 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
601 INPUT_PORTS_END
602
603 INPUT_PORTS_START( ldrun )
604 PORT_START /* IN0 */
605 IN0_PORT
606
607 PORT_START /* IN1 */
608 IN1_PORT
609
610 PORT_START /* IN2 */
611 IN2_PORT
612
613 PORT_START /* DSW1 */
614 PORT_DIPNAME( 0x03, 0x03, "Timer" )
615 PORT_DIPSETTING( 0x03, "Slow" )
616 PORT_DIPSETTING( 0x02, "Medium" )
617 PORT_DIPSETTING( 0x01, "Fast" )
618 PORT_DIPSETTING( 0x00, "Fastest" )
619 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
620 PORT_DIPSETTING( 0x08, "2" )
621 PORT_DIPSETTING( 0x0c, "3" )
622 PORT_DIPSETTING( 0x04, "4" )
623 PORT_DIPSETTING( 0x00, "5" )
624 COINAGE_DSW
625
626 PORT_START /* DSW2 */
627 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
628 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
629 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
630 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
631 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
632 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
633 /* This activates a different coin mode. Look at the dip switch setting schematic */
634 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
635 PORT_DIPSETTING( 0x04, "Mode 1" )
636 PORT_DIPSETTING( 0x00, "Mode 2" )
637 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
638 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
639 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
640 /* In stop mode, press 2 to stop and 1 to restart */
641 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
642 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
643 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
644 /* In level selection mode, press 1 to select and 2 to restart */
645 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
646 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
647 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
648 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
649 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
650 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
651 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
652 INPUT_PORTS_END
653
654 INPUT_PORTS_START( ldrun2 )
655 PORT_START /* IN0 */
656 IN0_PORT
657
658 PORT_START /* IN1 */
659 IN1_PORT
660
661 PORT_START /* IN2 */
662 IN2_PORT
663
664 PORT_START /* DSW1 */
665 PORT_DIPNAME( 0x01, 0x01, "Timer" )
666 PORT_DIPSETTING( 0x01, "Slow" )
667 PORT_DIPSETTING( 0x00, "Fast" )
668 PORT_DIPNAME( 0x02, 0x02, "Game Speed" )
669 PORT_DIPSETTING( 0x00, "Low" )
670 PORT_DIPSETTING( 0x02, "High" )
671 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
672 PORT_DIPSETTING( 0x08, "2" )
673 PORT_DIPSETTING( 0x0c, "3" )
674 PORT_DIPSETTING( 0x04, "4" )
675 PORT_DIPSETTING( 0x00, "5" )
676 COINAGE_DSW
677
678 PORT_START /* DSW2 */
679 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
680 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
681 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
682 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
683 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
684 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
685 /* This activates a different coin mode. Look at the dip switch setting schematic */
686 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
687 PORT_DIPSETTING( 0x04, "Mode 1" )
688 PORT_DIPSETTING( 0x00, "Mode 2" )
689 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
690 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
691 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
692 /* In freeze mode, press 2 to stop and 1 to restart */
693 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
694 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
695 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
696 /* In level selection mode, press 1 to select and 2 to restart */
697 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
698 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
699 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
700 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
701 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
702 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
703 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
704 INPUT_PORTS_END
705
706 INPUT_PORTS_START( ldrun3 )
707 PORT_START /* IN0 */
708 IN0_PORT
709
710 PORT_START /* IN1 */
711 IN1_PORT
712
713 PORT_START /* IN2 */
714 IN2_PORT
715
716 PORT_START /* DSW1 */
717 PORT_DIPNAME( 0x01, 0x01, "Timer" )
718 PORT_DIPSETTING( 0x01, "Slow" )
719 PORT_DIPSETTING( 0x00, "Fast" )
720 PORT_DIPNAME( 0x02, 0x02, "Game Speed" )
721 PORT_DIPSETTING( 0x00, "Low" )
722 PORT_DIPSETTING( 0x02, "High" )
723 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
724 PORT_DIPSETTING( 0x08, "2" )
725 PORT_DIPSETTING( 0x0c, "3" )
726 PORT_DIPSETTING( 0x04, "4" )
727 PORT_DIPSETTING( 0x00, "5" )
728 COINAGE_DSW
729
730 PORT_START /* DSW2 */
731 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
732 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
733 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
734 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
735 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
736 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
737 /* This activates a different coin mode. Look at the dip switch setting schematic */
738 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
739 PORT_DIPSETTING( 0x04, "Mode 1" )
740 PORT_DIPSETTING( 0x00, "Mode 2" )
741 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
742 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
743 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
744 /* In stop mode, press 2 to stop and 1 to restart */
745 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
746 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
747 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
748 /* In level selection mode, press 1 to select and 2 to restart */
749 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
750 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
751 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
752 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
753 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
754 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
755 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
756 INPUT_PORTS_END
757
758 INPUT_PORTS_START( ldrun4 )
759 PORT_START /* IN0 */
760 IN0_PORT
761
762 PORT_START /* IN1 */
763 IN1_PORT
764
765 PORT_START /* IN2 */
766 IN2_PORT
767
768 PORT_START /* DSW1 */
769 PORT_DIPNAME( 0x01, 0x01, "Timer" )
770 PORT_DIPSETTING( 0x01, "Slow" )
771 PORT_DIPSETTING( 0x00, "Fast" )
772 PORT_DIPNAME( 0x02, 0x02, "2 Players Game" )
773 PORT_DIPSETTING( 0x00, "1 Credit" )
774 PORT_DIPSETTING( 0x02, "2 Credits" )
775 PORT_DIPNAME( 0x0c, 0x0c, "1 Player Lives" )
776 PORT_DIPSETTING( 0x08, "2" )
777 PORT_DIPSETTING( 0x0c, "3" )
778 PORT_DIPSETTING( 0x04, "4" )
779 PORT_DIPSETTING( 0x00, "5" )
780 COINAGE_DSW
781
782 PORT_START /* DSW2 */
783 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
784 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
785 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
786 PORT_DIPNAME( 0x02, 0x02, "2 Players Lives" )
787 PORT_DIPSETTING( 0x02, "5" )
788 PORT_DIPSETTING( 0x00, "6" )
789 /* This activates a different coin mode. Look at the dip switch setting schematic */
790 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
791 PORT_DIPSETTING( 0x04, "Mode 1" )
792 PORT_DIPSETTING( 0x00, "Mode 2" )
793 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
794 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
795 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
796 PORT_DIPNAME( 0x10, 0x10, "Allow 2 Players Game" )
797 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
798 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
799 /* In level selection mode, press 1 to select and 2 to restart */
800 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
801 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
802 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
803 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
804 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
805 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
806 PORT_BITX( 0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_TOGGLE, "Service Mode (must set 2P game to No)", KEYCODE_F2, IP_JOY_NONE )
807 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
808 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
809 INPUT_PORTS_END
810
811 INPUT_PORTS_START( lotlot )
812 PORT_START /* IN0 */
813 IN0_PORT
814
815 PORT_START /* IN1 */
816 IN1_PORT
817
818 PORT_START /* IN2 */
819 IN2_PORT
820
821 PORT_START /* DSW1 */
822 PORT_DIPNAME( 0x03, 0x03, "Speed" )
823 PORT_DIPSETTING( 0x03, "Very Slow" )
824 PORT_DIPSETTING( 0x02, "Slow" )
825 PORT_DIPSETTING( 0x01, "Fast" )
826 PORT_DIPSETTING( 0x00, "Very Fast" )
827 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
828 PORT_DIPSETTING( 0x08, "1" )
829 PORT_DIPSETTING( 0x04, "2" )
830 PORT_DIPSETTING( 0x0c, "3" )
831 PORT_DIPSETTING( 0x00, "4" )
832 COINAGE2_DSW
833
834 PORT_START /* DSW2 */
835 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
836 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
837 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
838 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
839 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
840 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
841 /* This activates a different coin mode. Look at the dip switch setting schematic */
842 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
843 PORT_DIPSETTING( 0x04, "Mode 1" )
844 PORT_DIPSETTING( 0x00, "Mode 2" )
845 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
846 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
847 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
848 /* In freeze mode, press 2 to stop and 1 to restart */
849 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
850 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
851 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
852 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
853 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
854 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
855 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
856 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
857 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
858 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
859 INPUT_PORTS_END
860
861 INPUT_PORTS_START( kidniki )
862 PORT_START
863 IN0_PORT
864
865 PORT_START
866 IN1_PORT
867
868 PORT_START
869 IN2_PORT
870
871 PORT_START /* DSW1 */
872 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
873 PORT_DIPSETTING( 0x02, "2" )
874 PORT_DIPSETTING( 0x03, "3" )
875 PORT_DIPSETTING( 0x01, "4" )
876 PORT_DIPSETTING( 0x00, "5" )
877 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
878 PORT_DIPSETTING( 0x04, "Normal" )
879 PORT_DIPSETTING( 0x00, "Hard" )
880 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
881 PORT_DIPSETTING( 0x08, "50000" )
882 PORT_DIPSETTING( 0x00, "80000" )
883 COINAGE2_DSW
884
885 PORT_START /* DSW2 */
886 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
887 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
888 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
889 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
890 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
891 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
892 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
893 PORT_DIPSETTING( 0x04, "Mode 1" )
894 PORT_DIPSETTING( 0x00, "Mode 2" )
895 PORT_DIPNAME( 0x08, 0x08, "Game Repeats" )
896 PORT_DIPSETTING( 0x08, DEF_STR( No ) )
897 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
898 PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
899 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
900 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
901 /* In freeze mode, press 2 to stop and 1 to restart */
902 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
903 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
904 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
905 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
906 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
907 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
908 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
909 INPUT_PORTS_END
910
911 INPUT_PORTS_START( spelunkr )
912 PORT_START /* IN0 */
913 IN0_PORT
914
915 PORT_START /* IN1 */
916 IN1_PORT
917
918 PORT_START /* IN2 */
919 IN2_PORT
920
921 PORT_START /* DSW1 */
922 PORT_DIPNAME( 0x03, 0x03, "Energy Decrease" )
923 PORT_DIPSETTING( 0x03, "Slow" )
924 PORT_DIPSETTING( 0x02, "Medium" )
925 PORT_DIPSETTING( 0x01, "Fast" )
926 PORT_DIPSETTING( 0x00, "Fastest" )
927 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
928 PORT_DIPSETTING( 0x08, "2" )
929 PORT_DIPSETTING( 0x0c, "3" )
930 PORT_DIPSETTING( 0x04, "4" )
931 PORT_DIPSETTING( 0x00, "5" )
932 COINAGE2_DSW
933
934 PORT_START /* DSW2 */
935 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
936 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
937 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
938 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
939 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
940 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
941 /* This activates a different coin mode. Look at the dip switch setting schematic */
942 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
943 PORT_DIPSETTING( 0x04, "Mode 1" )
944 PORT_DIPSETTING( 0x00, "Mode 2" )
945 PORT_DIPNAME( 0x08, 0x00, "Allow Continue" )
946 PORT_DIPSETTING( 0x08, DEF_STR( No ) )
947 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
948 /* In teleport mode, keep 1 pressed and press up or down to move the character */
949 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Teleport", IP_KEY_NONE, IP_JOY_NONE )
950 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
951 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
952 /* In freeze mode, press 2 to stop and 1 to restart */
953 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
954 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
955 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
956 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
957 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
958 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
959 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
960 INPUT_PORTS_END
961
962 INPUT_PORTS_START( spelunk2 )
963 PORT_START /* IN0 */
964 IN0_PORT
965
966 PORT_START /* IN1 */
967 IN1_PORT
968
969 PORT_START /* IN2 */
970 IN2_PORT
971
972 PORT_START /* DSW1 */
973 PORT_DIPNAME( 0x03, 0x03, "Energy Decrease" )
974 PORT_DIPSETTING( 0x03, "Slow" )
975 PORT_DIPSETTING( 0x02, "Medium" )
976 PORT_DIPSETTING( 0x01, "Fast" )
977 PORT_DIPSETTING( 0x00, "Fastest" )
978 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
979 PORT_DIPSETTING( 0x08, "2" )
980 PORT_DIPSETTING( 0x0c, "3" )
981 PORT_DIPSETTING( 0x04, "4" )
982 PORT_DIPSETTING( 0x00, "5" )
983 COINAGE2_DSW
984
985 PORT_START /* DSW2 */
986 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
987 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
988 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
989 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
990 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
991 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
992 /* This activates a different coin mode. Look at the dip switch setting schematic */
993 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
994 PORT_DIPSETTING( 0x04, "Mode 1" )
995 PORT_DIPSETTING( 0x00, "Mode 2" )
996 PORT_DIPNAME( 0x08, 0x08, "Allow Continue" )
997 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
998 PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
999 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1000 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1001 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1002 /* In freeze mode, press 2 to stop and 1 to restart */
1003 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
1004 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1005 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1006 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1007 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1008 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1009 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1010 INPUT_PORTS_END
1011
1012
1013
1014 #define TILELAYOUT(NUM) static struct GfxLayout tilelayout_##NUM = \
1015 { \
1016 8,8, /* 8*8 characters */ \
1017 NUM, /* NUM characters */ \
1018 3, /* 3 bits per pixel */ \
1019 { 2*NUM*8*8, NUM*8*8, 0 }, \
1020 { 0, 1, 2, 3, 4, 5, 6, 7 }, \
1021 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, \
1022 8*8 /* every char takes 8 consecutive bytes */ \
1023 }
1024
1025 TILELAYOUT(1024);
1026 TILELAYOUT(2048);
1027 TILELAYOUT(4096);
1028
1029
1030 static struct GfxLayout battroad_charlayout =
1031 {
1032 8,8, /* 8*8 characters */
1033 1024, /* number of characters */
1034 2, /* 2 bits per pixel */
1035 { 0, 1024*8*8 },
1036 { 0, 1, 2, 3, 4, 5, 6, 7 },
1037 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1038 8*8 /* every char takes 8 consecutive bytes */
1039 };
1040
1041 static struct GfxLayout lotlot_charlayout =
1042 {
1043 12,10, /* character size */
1044 256, /* number of characters */
1045 3, /* bits per pixel */
1046 { 0, 256*32*8, 2*256*32*8 },
1047 { 0, 1, 2, 3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
1048 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 },
1049 32*8 /* every char takes 32 consecutive bytes */
1050 };
1051
1052 static struct GfxLayout kidniki_charlayout =
1053 {
1054 12,8, /* character size */
1055 1024, /* number of characters */
1056 3, /* bits per pixel */
1057 { 0, 0x4000*8, 2*0x4000*8 },
1058 { 0, 1, 2, 3, 64+0,64+1,64+2,64+3,64+4,64+5,64+6,64+7 },
1059 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1060 16*8 /* every char takes 16 consecutive bytes */
1061 };
1062
1063 static struct GfxLayout spelunk2_charlayout =
1064 {
1065 12,8, /* character size */
1066 512, /* number of characters */
1067 3, /* bits per pixel */
1068 { 0, 0x4000*8, 2*0x4000*8 },
1069 {
1070 0,1,2,3,
1071 0x2000*8+0,0x2000*8+1,0x2000*8+2,0x2000*8+3,
1072 0x2000*8+4,0x2000*8+5,0x2000*8+6,0x2000*8+7
1073 },
1074 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1075 8*8 /* every char takes 8 consecutive bytes */
1076 };
1077
1078 #define SPRITELAYOUT(NUM) static struct GfxLayout spritelayout_##NUM = \
1079 { \
1080 16,16, /* 16*16 sprites */ \
1081 NUM, /* NUM sprites */ \
1082 3, /* 3 bits per pixel */ \
1083 { 2*NUM*32*8, NUM*32*8, 0 }, \
1084 { 0, 1, 2, 3, 4, 5, 6, 7, \
1085 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, \
1086 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, \
1087 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, \
1088 32*8 /* every sprite takes 32 consecutive bytes */ \
1089 }
1090
1091 SPRITELAYOUT(256);
1092 SPRITELAYOUT(512);
1093 SPRITELAYOUT(1024);
1094 SPRITELAYOUT(2048);
1095
1096
1097 static struct GfxDecodeInfo kungfum_gfxdecodeinfo[] =
1098 {
1099 { REGION_GFX1, 0, &tilelayout_1024, 0, 32 }, /* use colors 0-255 */
1100 { REGION_GFX2, 0, &spritelayout_1024, 32*8, 32 }, /* use colors 256-511 */
1101 { -1 } /* end of array */
1102 };
1103
1104 static struct GfxDecodeInfo battroad_gfxdecodeinfo[] =
1105 {
1106 { REGION_GFX1, 0, &tilelayout_1024, 0, 32 }, /* use colors 0-255 */
1107 { REGION_GFX2, 0, &spritelayout_512, 256, 32 }, /* use colors 256-511 */
1108 { REGION_GFX3, 0, &battroad_charlayout, 512, 32 }, /* use colors 512-543 */
1109 { -1 } /* end of array */
1110 };
1111
1112 static struct GfxDecodeInfo ldrun_gfxdecodeinfo[] =
1113 {
1114 { REGION_GFX1, 0, &tilelayout_1024, 0, 32 }, /* use colors 0-255 */
1115 { REGION_GFX2, 0, &spritelayout_256, 256, 32 }, /* use colors 256-511 */
1116 { -1 } /* end of array */
1117 };
1118
1119 static struct GfxDecodeInfo ldrun2_gfxdecodeinfo[] =
1120 {
1121 { REGION_GFX1, 0, &tilelayout_1024, 0, 32 }, /* use colors 0-255 */
1122 { REGION_GFX2, 0, &spritelayout_512, 256, 32 }, /* use colors 256-511 */
1123 { -1 } /* end of array */
1124 };
1125
1126 static struct GfxDecodeInfo ldrun3_gfxdecodeinfo[] =
1127 {
1128 { REGION_GFX1, 0, &tilelayout_2048, 0, 32 }, /* use colors 0-255 */
1129 { REGION_GFX2, 0, &spritelayout_512, 256, 32 }, /* use colors 256-511 */
1130 { -1 } /* end of array */
1131 };
1132
1133 static struct GfxDecodeInfo ldrun4_gfxdecodeinfo[] =
1134 {
1135 { REGION_GFX1, 0, &tilelayout_2048, 0, 32 }, /* use colors 0-255 */
1136 { REGION_GFX2, 0, &spritelayout_1024, 256, 32 }, /* use colors 256-511 */
1137 { -1 } /* end of array */
1138 };
1139
1140 static struct GfxDecodeInfo lotlot_gfxdecodeinfo[] =
1141 {
1142 { REGION_GFX1, 0, &lotlot_charlayout, 0, 32 }, /* use colors 0-255 */
1143 { REGION_GFX2, 0, &spritelayout_256, 256, 32 }, /* use colors 256-511 */
1144 { REGION_GFX3, 0, &lotlot_charlayout, 512, 32 }, /* use colors 512-767 */
1145 { -1 } /* end of array */
1146 };
1147
1148 static struct GfxDecodeInfo kidniki_gfxdecodeinfo[] =
1149 {
1150 { REGION_GFX1, 0, &tilelayout_4096, 0, 32 }, /* use colors 0-255 */
1151 { REGION_GFX2, 0, &spritelayout_2048, 256, 32 }, /* use colors 256-511 */
1152 { REGION_GFX3, 0, &kidniki_charlayout, 0, 32 }, /* use colors 0-255 */
1153 { -1 } /* end of array */
1154 };
1155
1156 static struct GfxDecodeInfo spelunkr_gfxdecodeinfo[] =
1157 {
1158 { REGION_GFX1, 0, &tilelayout_4096, 0, 32 }, /* use colors 0-255 */
1159 { REGION_GFX2, 0, &spritelayout_1024, 256, 32 }, /* use colors 256-511 */
1160 { REGION_GFX3, 0, &spelunk2_charlayout, 0, 32 }, /* use colors 0-255 */
1161 { -1 } /* end of array */
1162 };
1163
1164 static struct GfxDecodeInfo spelunk2_gfxdecodeinfo[] =
1165 {
1166 { REGION_GFX1, 0, &tilelayout_4096, 0, 64 }, /* use colors 0-511 */
1167 { REGION_GFX2, 0, &spritelayout_1024, 512, 32 }, /* use colors 512-767 */
1168 { REGION_GFX3, 0, &spelunk2_charlayout, 0, 64 }, /* use colors 0-511 */
1169 { -1 } /* end of array */
1170 };
1171
1172
1173
1174 #define MACHINE_DRIVER(GAMENAME,READPORT,VISIBLEMINX,VISIBLEMAXX,COLORS,CONVERTCOLOR) \
1175 \
1176 static struct MachineDriver machine_driver_##GAMENAME = \
1177 { \
1178 /* basic machine hardware */ \
1179 { \
1180 { \
1181 CPU_Z80, \
1182 4000000, /* 4 Mhz (?) */ \
1183 GAMENAME##_readmem,GAMENAME##_writemem,READPORT##_readport,GAMENAME##_writeport, \
1184 interrupt,1 \
1185 }, \
1186 IREM_AUDIO_CPU \
1187 }, \
1188 55, 1790, /* frames per second and vblank duration from the Lode Runner manual */ \
1189 1, /* 1 CPU slice per frame - interleaving is forced when a sound command is written */ \
1190 0, \
1191 \
1192 /* video hardware */ \
1193 64*8, 32*8, { VISIBLEMINX, VISIBLEMAXX, 0*8, 32*8-1 }, \
1194 GAMENAME##_gfxdecodeinfo, \
1195 COLORS, COLORS, \
1196 CONVERTCOLOR##_vh_convert_color_prom, \
1197 \
1198 VIDEO_TYPE_RASTER, \
1199 0, \
1200 GAMENAME##_vh_start, \
1201 generic_vh_stop, \
1202 GAMENAME##_vh_screenrefresh, \
1203 \
1204 /* sound hardware */ \
1205 0,0,0,0, \
1206 { \
1207 IREM_AUDIO \
1208 } \
1209 }
1210
1211 #define kungfum_readmem ldrun_readmem
1212 #define kungfum_writeport ldrun_writeport
1213 #define lotlot_writeport ldrun_writeport
1214 #define spelunkr_writeport ldrun_writeport
1215 #define spelunk2_writeport ldrun_writeport
1216 #define kungfum_vh_start kidniki_vh_start
1217 #define battroad_vh_start kidniki_vh_start
1218 #define ldrun2_vh_start ldrun_vh_start
1219 #define ldrun3_vh_start ldrun_vh_start
1220 #define ldrun4_vh_start ldrun_vh_start
1221 #define lotlot_vh_start ldrun_vh_start
1222 #define spelunk2_vh_start spelunkr_vh_start
1223 #define ldrun2_vh_screenrefresh ldrun_vh_screenrefresh
1224 #define ldrun3_vh_screenrefresh ldrun_vh_screenrefresh
1225
1226 MACHINE_DRIVER(kungfum, ldrun, 16*8, (64-16)*8-1, 512,irem);
1227 MACHINE_DRIVER(battroad, ldrun, 16*8, (64-16)*8-1, 544,battroad);
1228 MACHINE_DRIVER(ldrun, ldrun, 8*8, (64-8)*8-1, 512,irem);
1229 MACHINE_DRIVER(ldrun2, ldrun2, 8*8, (64-8)*8-1, 512,irem);
1230 MACHINE_DRIVER(ldrun3, ldrun, 8*8, (64-8)*8-1, 512,irem);
1231 MACHINE_DRIVER(ldrun4, ldrun, 8*8, (64-8)*8-1, 512,irem);
1232 MACHINE_DRIVER(lotlot, ldrun, 8*8, (64-8)*8-1, 768,irem);
1233 MACHINE_DRIVER(kidniki, ldrun, 8*8, (64-8)*8-1, 512,irem);
1234 MACHINE_DRIVER(spelunkr, ldrun, 8*8, (64-8)*8-1, 512,irem);
1235 MACHINE_DRIVER(spelunk2, ldrun, 8*8, (64-8)*8-1, 768,spelunk2);
1236
1237
1238
1239 /***************************************************************************
1240
1241 Game driver(s)
1242
1243 ***************************************************************************/
1244
1245 ROM_START( kungfum )
1246 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1247 ROM_LOAD( "a-4e-c.bin", 0x0000, 0x4000, 0xb6e2d083 )
1248 ROM_LOAD( "a-4d-c.bin", 0x4000, 0x4000, 0x7532918e )
1249
1250 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1251 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, 0x58e87ab0 ) /* samples (ADPCM 4-bit) */
1252 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, 0xc81e31ea ) /* samples (ADPCM 4-bit) */
1253 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, 0xd99fb995 )
1254
1255 ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1256 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, 0x6b2cc9c8 ) /* characters */
1257 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, 0xc648f558 )
1258 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, 0xfbe9276e )
1259
1260 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1261 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, 0x16fb5150 ) /* sprites */
1262 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, 0x67745a33 )
1263 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, 0xbd1c2261 )
1264 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, 0x8ac5ed3a )
1265 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, 0x28a213aa )
1266 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, 0xd5228df3 )
1267 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, 0xb16de4f2 )
1268 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, 0xeba0d66b )
1269 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, 0x01298885 )
1270 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, 0xc77b87d4 )
1271 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, 0x6a70615f )
1272 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, 0x6189d626 )
1273
1274 ROM_REGION( 0x0720, REGION_PROMS )
1275 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, 0x668e6bca ) /* character palette red component */
1276 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, 0x76c05a9c ) /* sprite palette red component */
1277 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, 0x964b6495 ) /* character palette green component */
1278 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, 0x23f06b99 ) /* sprite palette green component */
1279 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, 0x550563e1 ) /* character palette blue component */
1280 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, 0x35e45021 ) /* sprite palette blue component */
1281 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, 0x7a601c3d ) /* sprite height, one entry per 32 */
1282 /* sprites. Used at run time! */
1283 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, 0x82c20d12 ) /* video timing? - same as battroad */
1284 ROM_END
1285
1286 ROM_START( kungfud )
1287 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1288 ROM_LOAD( "a-4e-d", 0x0000, 0x4000, 0xfc330a46 )
1289 ROM_LOAD( "a-4d-d", 0x4000, 0x4000, 0x1b2fd32f )
1290
1291 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1292 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, 0x58e87ab0 ) /* samples (ADPCM 4-bit) */
1293 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, 0xc81e31ea ) /* samples (ADPCM 4-bit) */
1294 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, 0xd99fb995 )
1295
1296 ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1297 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, 0x6b2cc9c8 ) /* characters */
1298 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, 0xc648f558 )
1299 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, 0xfbe9276e )
1300
1301 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1302 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, 0x16fb5150 ) /* sprites */
1303 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, 0x67745a33 )
1304 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, 0xbd1c2261 )
1305 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, 0x8ac5ed3a )
1306 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, 0x28a213aa )
1307 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, 0xd5228df3 )
1308 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, 0xb16de4f2 )
1309 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, 0xeba0d66b )
1310 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, 0x01298885 )
1311 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, 0xc77b87d4 )
1312 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, 0x6a70615f )
1313 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, 0x6189d626 )
1314
1315 ROM_REGION( 0x0720, REGION_PROMS )
1316 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, 0x668e6bca ) /* character palette red component */
1317 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, 0x76c05a9c ) /* sprite palette red component */
1318 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, 0x964b6495 ) /* character palette green component */
1319 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, 0x23f06b99 ) /* sprite palette green component */
1320 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, 0x550563e1 ) /* character palette blue component */
1321 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, 0x35e45021 ) /* sprite palette blue component */
1322 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, 0x7a601c3d ) /* sprite height, one entry per 32 */
1323 /* sprites. Used at run time! */
1324 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, 0x82c20d12 ) /* video timing? - same as battroad */
1325 ROM_END
1326
1327 ROM_START( spartanx )
1328 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1329 ROM_LOAD( "a-4e-c-j.bin", 0x0000, 0x4000, 0x32a0a9a6 )
1330 ROM_LOAD( "a-4d-c-j.bin", 0x4000, 0x4000, 0x3173ea78 )
1331
1332 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1333 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, 0x58e87ab0 ) /* samples (ADPCM 4-bit) */
1334 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, 0xc81e31ea ) /* samples (ADPCM 4-bit) */
1335 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, 0xd99fb995 )
1336
1337 ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1338 ROM_LOAD( "g-4c-a-j.bin", 0x00000, 0x2000, 0x8af9c5a6 ) /* characters */
1339 ROM_LOAD( "g-4d-a-j.bin", 0x02000, 0x2000, 0xb8300c72 )
1340 ROM_LOAD( "g-4e-a-j.bin", 0x04000, 0x2000, 0xb50429cd )
1341
1342 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1343 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, 0x16fb5150 ) /* sprites */
1344 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, 0x67745a33 )
1345 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, 0xbd1c2261 )
1346 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, 0x8ac5ed3a )
1347 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, 0x28a213aa )
1348 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, 0xd5228df3 )
1349 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, 0xb16de4f2 )
1350 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, 0xeba0d66b )
1351 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, 0x01298885 )
1352 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, 0xc77b87d4 )
1353 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, 0x6a70615f )
1354 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, 0x6189d626 )
1355
1356 ROM_REGION( 0x0720, REGION_PROMS )
1357 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, 0x668e6bca ) /* character palette red component */
1358 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, 0x76c05a9c ) /* sprite palette red component */
1359 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, 0x964b6495 ) /* character palette green component */
1360 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, 0x23f06b99 ) /* sprite palette green component */
1361 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, 0x550563e1 ) /* character palette blue component */
1362 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, 0x35e45021 ) /* sprite palette blue component */
1363 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, 0x7a601c3d ) /* sprite height, one entry per 32 */
1364 /* sprites. Used at run time! */
1365 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, 0x82c20d12 ) /* video timing? - same as battroad */
1366 ROM_END
1367
1368 ROM_START( kungfub )
1369 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1370 ROM_LOAD( "c5.5h", 0x0000, 0x4000, 0x5d8e791d )
1371 ROM_LOAD( "c4.5k", 0x4000, 0x4000, 0x4000e2b8 )
1372
1373 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1374 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, 0x58e87ab0 ) /* samples (ADPCM 4-bit) */
1375 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, 0xc81e31ea ) /* samples (ADPCM 4-bit) */
1376 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, 0xd99fb995 )
1377
1378 ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1379 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, 0x6b2cc9c8 ) /* characters */
1380 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, 0xc648f558 )
1381 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, 0xfbe9276e )
1382
1383 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1384 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, 0x16fb5150 ) /* sprites */
1385 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, 0x67745a33 )
1386 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, 0xbd1c2261 )
1387 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, 0x8ac5ed3a )
1388 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, 0x28a213aa )
1389 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, 0xd5228df3 )
1390 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, 0xb16de4f2 )
1391 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, 0xeba0d66b )
1392 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, 0x01298885 )
1393 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, 0xc77b87d4 )
1394 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, 0x6a70615f )
1395 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, 0x6189d626 )
1396
1397 ROM_REGION( 0x0720, REGION_PROMS )
1398 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, 0x668e6bca ) /* character palette red component */
1399 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, 0x76c05a9c ) /* sprite palette red component */
1400 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, 0x964b6495 ) /* character palette green component */
1401 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, 0x23f06b99 ) /* sprite palette green component */
1402 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, 0x550563e1 ) /* character palette blue component */
1403 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, 0x35e45021 ) /* sprite palette blue component */
1404 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, 0x7a601c3d ) /* sprite height, one entry per 32 */
1405 /* sprites. Used at run time! */
1406 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, 0x82c20d12 ) /* video timing? - same as battroad */
1407 ROM_END
1408
1409 ROM_START( kungfub2 )
1410 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1411 ROM_LOAD( "kf4", 0x0000, 0x4000, 0x3f65313f )
1412 ROM_LOAD( "kf5", 0x4000, 0x4000, 0x9ea325f3 )
1413
1414 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1415 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, 0x58e87ab0 ) /* samples (ADPCM 4-bit) */
1416 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, 0xc81e31ea ) /* samples (ADPCM 4-bit) */
1417 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, 0xd99fb995 )
1418
1419 ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1420 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, 0x6b2cc9c8 ) /* characters */
1421 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, 0xc648f558 )
1422 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, 0xfbe9276e )
1423
1424 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1425 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, 0x16fb5150 ) /* sprites */
1426 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, 0x67745a33 )
1427 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, 0xbd1c2261 )
1428 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, 0x8ac5ed3a )
1429 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, 0x28a213aa )
1430 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, 0xd5228df3 )
1431 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, 0xb16de4f2 )
1432 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, 0xeba0d66b )
1433 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, 0x01298885 )
1434 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, 0xc77b87d4 )
1435 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, 0x6a70615f )
1436 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, 0x6189d626 )
1437
1438 ROM_REGION( 0x0720, REGION_PROMS )
1439 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, 0x668e6bca ) /* character palette red component */
1440 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, 0x76c05a9c ) /* sprite palette red component */
1441 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, 0x964b6495 ) /* character palette green component */
1442 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, 0x23f06b99 ) /* sprite palette green component */
1443 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, 0x550563e1 ) /* character palette blue component */
1444 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, 0x35e45021 ) /* sprite palette blue component */
1445 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, 0x7a601c3d ) /* sprite height, one entry per 32 */
1446 /* sprites. Used at run time! */
1447 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, 0x82c20d12 ) /* video timing? - same as battroad */
1448 ROM_END
1449
1450 ROM_START( battroad )
1451 ROM_REGION( 0x1e000, REGION_CPU1 ) /* 64k for code */
1452 ROM_LOAD( "br-a-4e.b", 0x00000, 0x2000, 0x9bf14768 )
1453 ROM_LOAD( "br-a-4d.b", 0x02000, 0x2000, 0x39ca1627 )
1454 ROM_LOAD( "br-a-4b.b", 0x04000, 0x2000, 0x1865bb22 )
1455 ROM_LOAD( "br-a-4a", 0x06000, 0x2000, 0x65b61c21 )
1456 ROM_LOAD( "br-c-7c", 0x10000, 0x2000, 0x2e1eca52 ) /* banked at a000-bfff */
1457 ROM_LOAD( "br-c-7l", 0x12000, 0x2000, 0xf2178578 )
1458 ROM_LOAD( "br-c-7d", 0x14000, 0x2000, 0x3aa9fa30 )
1459 ROM_LOAD( "br-c-7b", 0x16000, 0x2000, 0x0b31b90b )
1460 ROM_LOAD( "br-c-7a", 0x18000, 0x2000, 0xec3b0080 )
1461 ROM_LOAD( "br-c-7k", 0x1c000, 0x2000, 0xedc75f7f )
1462
1463 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1464 ROM_LOAD( "br-a-3e", 0xa000, 0x2000, 0xa7140871 )
1465 ROM_LOAD( "br-a-3f", 0xc000, 0x2000, 0x1bb51b30 )
1466 ROM_LOAD( "br-a-3h", 0xe000, 0x2000, 0xafb3e083 )
1467
1468 ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1469 ROM_LOAD( "br-c-6h", 0x00000, 0x2000, 0xca50841c ) /* tiles */
1470 ROM_LOAD( "br-c-6n", 0x02000, 0x2000, 0x7d53163a )
1471 ROM_LOAD( "br-c-6k", 0x04000, 0x2000, 0x5951e12a )
1472
1473 ROM_REGION( 0x0c000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1474 ROM_LOAD( "br-b-4k.a", 0x00000, 0x2000, 0xd3c5e85b ) /* sprites */
1475 ROM_LOAD( "br-b-4f.a", 0x02000, 0x2000, 0x4354232a )
1476 ROM_LOAD( "br-b-3n.a", 0x04000, 0x2000, 0x2668dbef )
1477 ROM_LOAD( "br-b-4n.a", 0x06000, 0x2000, 0xc719a324 )
1478 ROM_LOAD( "br-b-4c.a", 0x08000, 0x2000, 0x0b3193bf )
1479 ROM_LOAD( "br-b-4e.a", 0x0a000, 0x2000, 0x3662e8fb )
1480
1481 ROM_REGION( 0x04000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1482 ROM_LOAD( "br-c-1b", 0x00000, 0x2000, 0x8088911e ) /* characters */
1483 ROM_LOAD( "br-c-1c", 0x02000, 0x2000, 0x3d78b653 )
1484
1485 ROM_REGION( 0x0740, REGION_PROMS )
1486 ROM_LOAD( "br-c-3j", 0x0000, 0x0100, 0xaceaed79 ) /* tile palette red component */
1487 ROM_LOAD( "br-b-1m", 0x0100, 0x0100, 0x3bd30c7d ) /* sprite palette red component */
1488 ROM_LOAD( "br-c-3l", 0x0200, 0x0100, 0x7cf6f380 ) /* tile palette green component */
1489 ROM_LOAD( "br-b-1n", 0x0300, 0x0100, 0xb7f3dc3b ) /* sprite palette green component */
1490 ROM_LOAD( "br-c-3k", 0x0400, 0x0100, 0xd90e4a54 ) /* tile palette blue component */
1491 ROM_LOAD( "br-b-1l", 0x0500, 0x0100, 0x5271c7d8 ) /* sprite palette blue component */
1492 ROM_LOAD( "br-c-1j", 0x0600, 0x0020, 0x78eb5d77 ) /* character palette */
1493 ROM_LOAD( "br-b-5p", 0x0620, 0x0020, 0xce746937 ) /* sprite height, one entry per 32 */
1494 /* sprites. Used at run time! */
1495 ROM_LOAD( "br-b-6f", 0x0640, 0x0100, 0x82c20d12 ) /* video timing? - same as kungfum */
1496 ROM_END
1497
1498 ROM_START( ldrun )
1499 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1500 ROM_LOAD( "lr-a-4e", 0x0000, 0x2000, 0x5d7e2a4d )
1501 ROM_LOAD( "lr-a-4d", 0x2000, 0x2000, 0x96f20473 )
1502 ROM_LOAD( "lr-a-4b", 0x4000, 0x2000, 0xb041c4a9 )
1503 ROM_LOAD( "lr-a-4a", 0x6000, 0x2000, 0x645e42aa )
1504
1505 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1506 ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, 0x7a96accd )
1507 ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, 0x3f7f3939 )
1508
1509 ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1510 ROM_LOAD( "lr-e-2d", 0x0000, 0x2000, 0x24f9b58d ) /* characters */
1511 ROM_LOAD( "lr-e-2j", 0x2000, 0x2000, 0x43175e08 )
1512 ROM_LOAD( "lr-e-2f", 0x4000, 0x2000, 0xe0317124 )
1513
1514 ROM_REGION( 0x6000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1515 ROM_LOAD( "lr-b-4k", 0x0000, 0x2000, 0x8141403e ) /* sprites */
1516 ROM_LOAD( "lr-b-3n", 0x2000, 0x2000, 0x55154154 )
1517 ROM_LOAD( "lr-b-4c", 0x4000, 0x2000, 0x924e34d0 )
1518
1519 ROM_REGION( 0x0720, REGION_PROMS )
1520 ROM_LOAD( "lr-e-3m", 0x0000, 0x0100, 0x53040416 ) /* character palette red component */
1521 ROM_LOAD( "lr-b-1m", 0x0100, 0x0100, 0x4bae1c25 ) /* sprite palette red component */
1522 ROM_LOAD( "lr-e-3l", 0x0200, 0x0100, 0x67786037 ) /* character palette green component */
1523 ROM_LOAD( "lr-b-1n", 0x0300, 0x0100, 0x9cd3db94 ) /* sprite palette green component */
1524 ROM_LOAD( "lr-e-3n", 0x0400, 0x0100, 0x5b716837 ) /* character palette blue component */
1525 ROM_LOAD( "lr-b-1l", 0x0500, 0x0100, 0x08d8cf9a ) /* sprite palette blue component */
1526 ROM_LOAD( "lr-b-5p", 0x0600, 0x0020, 0xe01f69e2 ) /* sprite height, one entry per 32 */
1527 /* sprites. Used at run time! */
1528 ROM_LOAD( "lr-b-6f", 0x0620, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1529 ROM_END
1530
1531 ROM_START( ldruna )
1532 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1533 ROM_LOAD( "roma4c", 0x0000, 0x2000, 0x279421e1 )
1534 ROM_LOAD( "lr-a-4d", 0x2000, 0x2000, 0x96f20473 )
1535 ROM_LOAD( "roma4b", 0x4000, 0x2000, 0x3c464bad )
1536 ROM_LOAD( "roma4a", 0x6000, 0x2000, 0x899df8e0 )
1537
1538 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1539 ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, 0x7a96accd )
1540 ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, 0x3f7f3939 )
1541
1542 ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1543 ROM_LOAD( "lr-e-2d", 0x0000, 0x2000, 0x24f9b58d ) /* characters */
1544 ROM_LOAD( "lr-e-2j", 0x2000, 0x2000, 0x43175e08 )
1545 ROM_LOAD( "lr-e-2f", 0x4000, 0x2000, 0xe0317124 )
1546
1547 ROM_REGION( 0x6000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1548 ROM_LOAD( "lr-b-4k", 0x0000, 0x2000, 0x8141403e ) /* sprites */
1549 ROM_LOAD( "lr-b-3n", 0x2000, 0x2000, 0x55154154 )
1550 ROM_LOAD( "lr-b-4c", 0x4000, 0x2000, 0x924e34d0 )
1551
1552 ROM_REGION( 0x0720, REGION_PROMS )
1553 ROM_LOAD( "lr-e-3m", 0x0000, 0x0100, 0x53040416 ) /* character palette red component */
1554 ROM_LOAD( "lr-b-1m", 0x0100, 0x0100, 0x4bae1c25 ) /* sprite palette red component */
1555 ROM_LOAD( "lr-e-3l", 0x0200, 0x0100, 0x67786037 ) /* character palette green component */
1556 ROM_LOAD( "lr-b-1n", 0x0300, 0x0100, 0x9cd3db94 ) /* sprite palette green component */
1557 ROM_LOAD( "lr-e-3n", 0x0400, 0x0100, 0x5b716837 ) /* character palette blue component */
1558 ROM_LOAD( "lr-b-1l", 0x0500, 0x0100, 0x08d8cf9a ) /* sprite palette blue component */
1559 ROM_LOAD( "lr-b-5p", 0x0600, 0x0020, 0xe01f69e2 ) /* sprite height, one entry per 32 */
1560 /* sprites. Used at run time! */
1561 ROM_LOAD( "lr-b-6f", 0x0620, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1562 ROM_END
1563
1564 ROM_START( ldrun2 )
1565 ROM_REGION( 0x14000, REGION_CPU1 ) /* 64k for code + 16k for banks */
1566 ROM_LOAD( "lr2-a-4e.a", 0x00000, 0x2000, 0x22313327 )
1567 ROM_LOAD( "lr2-a-4d", 0x02000, 0x2000, 0xef645179 )
1568 ROM_LOAD( "lr2-a-4a.a", 0x04000, 0x2000, 0xb11ddf59 )
1569 ROM_LOAD( "lr2-a-4a", 0x06000, 0x2000, 0x470cc8a1 )
1570 ROM_LOAD( "lr2-h-1c.a", 0x10000, 0x2000, 0x7ebcadbc ) /* banked at 8000-9fff */
1571 ROM_LOAD( "lr2-h-1d.a", 0x12000, 0x2000, 0x64cbb7f9 ) /* banked at 8000-9fff */
1572
1573 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1574 ROM_LOAD( "lr2-a-3e", 0xa000, 0x2000, 0x853f3898 )
1575 ROM_LOAD( "lr2-a-3f", 0xc000, 0x2000, 0x7a96accd )
1576 ROM_LOAD( "lr2-a-3h", 0xe000, 0x2000, 0x2a0e83ca )
1577
1578 ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1579 ROM_LOAD( "lr2-h-1e", 0x00000, 0x2000, 0x9d63a8ff ) /* characters */
1580 ROM_LOAD( "lr2-h-1j", 0x02000, 0x2000, 0x40332bbd )
1581 ROM_LOAD( "lr2-h-1h", 0x04000, 0x2000, 0x9404727d )
1582
1583 ROM_REGION( 0xc000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1584 ROM_LOAD( "lr2-b-4k", 0x00000, 0x2000, 0x79909871 ) /* sprites */
1585 ROM_LOAD( "lr2-b-4f", 0x02000, 0x2000, 0x06ba1ef4 )
1586 ROM_LOAD( "lr2-b-3n", 0x04000, 0x2000, 0x3cc5893f )
1587 ROM_LOAD( "lr2-b-4n", 0x06000, 0x2000, 0x49c12f42 )
1588 ROM_LOAD( "lr2-b-4c", 0x08000, 0x2000, 0xfbe6d24c )
1589 ROM_LOAD( "lr2-b-4e", 0x0a000, 0x2000, 0x75172d1f )
1590
1591 ROM_REGION( 0x0720, REGION_PROMS )
1592 ROM_LOAD( "lr2-h-3m", 0x0000, 0x0100, 0x2c5d834b ) /* character palette red component */
1593 ROM_LOAD( "lr2-b-1m", 0x0100, 0x0100, 0x4ec9bb3d ) /* sprite palette red component */
1594 ROM_LOAD( "lr2-h-3l", 0x0200, 0x0100, 0x3ae69aca ) /* character palette green component */
1595 ROM_LOAD( "lr2-b-1n", 0x0300, 0x0100, 0x1daf1fa4 ) /* sprite palette green component */
1596 ROM_LOAD( "lr2-h-3n", 0x0400, 0x0100, 0x2b28aec5 ) /* character palette blue component */
1597 ROM_LOAD( "lr2-b-1l", 0x0500, 0x0100, 0xc8fb708a ) /* sprite palette blue component */
1598 ROM_LOAD( "lr2-b-5p", 0x0600, 0x0020, 0xe01f69e2 ) /* sprite height, one entry per 32 */
1599 /* sprites. Used at run time! */
1600 ROM_LOAD( "lr2-b-6f", 0x0620, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1601 ROM_END
1602
1603 ROM_START( ldrun3 )
1604 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1605 ROM_LOAD( "lr3-a-4e", 0x0000, 0x4000, 0x5b334e8e )
1606 ROM_LOAD( "lr3-a-4d.a", 0x4000, 0x4000, 0xa84bc931 )
1607 ROM_LOAD( "lr3-a-4b.a", 0x8000, 0x4000, 0xbe09031d )
1608
1609 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1610 ROM_LOAD( "lr3-a-3d", 0x8000, 0x4000, 0x28be68cd )
1611 ROM_LOAD( "lr3-a-3f", 0xc000, 0x4000, 0xcb7186b7 )
1612
1613 ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1614 ROM_LOAD( "lr3-n-2a", 0x00000, 0x4000, 0xf9b74dee ) /* characters */
1615 ROM_LOAD( "lr3-n-2c", 0x04000, 0x4000, 0xfef707ba )
1616 ROM_LOAD( "lr3-n-2b", 0x08000, 0x4000, 0xaf3d27b9 )
1617
1618 ROM_REGION( 0xc000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1619 ROM_LOAD( "lr3-b-4k", 0x00000, 0x4000, 0x63f070c7 ) /* sprites */
1620 ROM_LOAD( "lr3-b-3n", 0x04000, 0x4000, 0xeab7ad91 )
1621 ROM_LOAD( "lr3-b-4c", 0x08000, 0x4000, 0x1a460a46 )
1622
1623 ROM_REGION( 0x0820, REGION_PROMS )
1624 ROM_LOAD( "lr3-n-2l", 0x0000, 0x0100, 0xe880b86b ) /* character palette red component */
1625 ROM_LOAD( "lr3-b-1m", 0x0100, 0x0100, 0xf02d7167 ) /* sprite palette red component */
1626 ROM_LOAD( "lr3-n-2k", 0x0200, 0x0100, 0x047ee051 ) /* character palette green component */
1627 ROM_LOAD( "lr3-b-1n", 0x0300, 0x0100, 0x9e37f181 ) /* sprite palette green component */
1628 ROM_LOAD( "lr3-n-2m", 0x0400, 0x0100, 0x69ad8678 ) /* character palette blue component */
1629 ROM_LOAD( "lr3-b-1l", 0x0500, 0x0100, 0x5b11c41d ) /* sprite palette blue component */
1630 ROM_LOAD( "lr3-b-5p", 0x0600, 0x0020, 0xe01f69e2 ) /* sprite height, one entry per 32 */
1631 /* sprites. Used at run time! */
1632 ROM_LOAD( "lr3-n-4f", 0x0620, 0x0100, 0xdf674be9 ) /* unknown */
1633 ROM_LOAD( "lr3-b-6f", 0x0720, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1634 ROM_END
1635
1636 ROM_START( ldrun4 )
1637 ROM_REGION( 0x18000, REGION_CPU1 ) /* 64k for code + 32k for banked ROM */
1638 ROM_LOAD( "lr4-a-4e", 0x00000, 0x4000, 0x5383e9bf )
1639 ROM_LOAD( "lr4-a-4d.c", 0x04000, 0x4000, 0x298afa36 )
1640 ROM_LOAD( "lr4-v-4k", 0x10000, 0x8000, 0x8b248abd ) /* banked at 8000-bfff */
1641
1642 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1643 ROM_LOAD( "lr4-a-3d", 0x8000, 0x4000, 0x86c6d445 )
1644 ROM_LOAD( "lr4-a-3f", 0xc000, 0x4000, 0x097c6c0a )
1645
1646 ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1647 ROM_LOAD( "lr4-v-2b", 0x00000, 0x4000, 0x4118e60a ) /* characters */
1648 ROM_LOAD( "lr4-v-2d", 0x04000, 0x4000, 0x542bb5b5 )
1649 ROM_LOAD( "lr4-v-2c", 0x08000, 0x4000, 0xc765266c )
1650
1651 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1652 ROM_LOAD( "lr4-b-4k", 0x00000, 0x4000, 0xe7fe620c ) /* sprites */
1653 ROM_LOAD( "lr4-b-4f", 0x04000, 0x4000, 0x6f0403db )
1654 ROM_LOAD( "lr4-b-3n", 0x08000, 0x4000, 0xad1fba1b )
1655 ROM_LOAD( "lr4-b-4n", 0x0c000, 0x4000, 0x0e568fab )
1656 ROM_LOAD( "lr4-b-4c", 0x10000, 0x4000, 0x82c53669 )
1657 ROM_LOAD( "lr4-b-4e", 0x14000, 0x4000, 0x767a1352 )
1658
1659 ROM_REGION( 0x0820, REGION_PROMS )
1660 ROM_LOAD( "lr4-v-1m", 0x0000, 0x0100, 0xfe51bf1d ) /* character palette red component */
1661 ROM_LOAD( "lr4-b-1m", 0x0100, 0x0100, 0x5d8d17d0 ) /* sprite palette red component */
1662 ROM_LOAD( "lr4-v-1n", 0x0200, 0x0100, 0xda0658e5 ) /* character palette green component */
1663 ROM_LOAD( "lr4-b-1n", 0x0300, 0x0100, 0xda1129d2 ) /* sprite palette green component */
1664 ROM_LOAD( "lr4-v-1p", 0x0400, 0x0100, 0x0df23ebe ) /* character palette blue component */
1665 ROM_LOAD( "lr4-b-1l", 0x0500, 0x0100, 0x0d89b692 ) /* sprite palette blue component */
1666 ROM_LOAD( "lr4-b-5p", 0x0600, 0x0020, 0xe01f69e2 ) /* sprite height, one entry per 32 */
1667 /* sprites. Used at run time! */
1668 ROM_LOAD( "lr4-v-4h", 0x0620, 0x0100, 0xdf674be9 ) /* unknown */
1669 ROM_LOAD( "lr4-b-6f", 0x0720, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1670 ROM_END
1671
1672 ROM_START( lotlot )
1673 ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
1674 ROM_LOAD( "lot-a-4e", 0x0000, 0x4000, 0x2913d08f )
1675 ROM_LOAD( "lot-a-4d", 0x4000, 0x4000, 0x0443095f )
1676
1677 ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio CPU (6803) */
1678 ROM_LOAD( "lot-a-3h", 0xe000, 0x2000, 0x0781cee7 )
1679
1680 ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1681 ROM_LOAD( "lot-k-4a", 0x00000, 0x2000, 0x1b3695f4 ) /* tiles */
1682 ROM_LOAD( "lot-k-4c", 0x02000, 0x2000, 0xbd2b0730 )
1683 ROM_LOAD( "lot-k-4b", 0x04000, 0x2000, 0x930ddd55 )
1684
1685 ROM_REGION( 0x6000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1686 ROM_LOAD( "lot-b-4k", 0x00000, 0x2000, 0xfd27cb90 ) /* sprites */
1687 ROM_LOAD( "lot-b-3n", 0x02000, 0x2000, 0xbd486fff )
1688 ROM_LOAD( "lot-b-4c", 0x04000, 0x2000, 0x3026ee6c )
1689
1690 ROM_REGION( 0x6000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1691 ROM_LOAD( "lot-k-4p", 0x00000, 0x2000, 0x3b7d95ba ) /* chars */
1692 ROM_LOAD( "lot-k-4l", 0x02000, 0x2000, 0xf98dca1f )
1693 ROM_LOAD( "lot-k-4n", 0x04000, 0x2000, 0xf0cd76a5 )
1694
1695 ROM_REGION( 0x0e20, REGION_PROMS )
1696 ROM_LOAD( "lot-k-2f", 0x0000, 0x0100, 0xb820a05e ) /* tile palette red component */
1697 ROM_LOAD( "lot-b-1m", 0x0100, 0x0100, 0xc146461d ) /* sprite palette red component */
1698 ROM_LOAD( "lot-k-2l", 0x0200, 0x0100, 0xac3e230d ) /* character palette red component */
1699 ROM_LOAD( "lot-k-2e", 0x0300, 0x0100, 0x9b1fa005 ) /* tile palette green component */
1700 ROM_LOAD( "lot-b-1n", 0x0400, 0x0100, 0x01e07db6 ) /* sprite palette green component */
1701 ROM_LOAD( "lot-k-2k", 0x0500, 0x0100, 0x1811ad2b ) /* character palette green component */
1702 ROM_LOAD( "lot-k-2d", 0x0600, 0x0100, 0x315ed9a8 ) /* tile palette blue component */
1703 ROM_LOAD( "lot-b-1l", 0x0700, 0x0100, 0x8b6fcde3 ) /* sprite palette blue component */
1704 ROM_LOAD( "lot-k-2j", 0x0800, 0x0100, 0xe791ef2a ) /* character palette blue component */
1705 ROM_LOAD( "lot-b-5p", 0x0900, 0x0020, 0x110b21fd ) /* sprite height, one entry per 32 */
1706 /* sprites. Used at run time! */
1707 ROM_LOAD( "lot-k-7e", 0x0920, 0x0200, 0x6cef0fbd ) /* unknown */
1708 ROM_LOAD( "lot-k-7h", 0x0b20, 0x0200, 0x04442bee ) /* unknown */
1709 ROM_LOAD( "lot-b-6f", 0x0d20, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1710 ROM_END
1711
1712 ROM_START( kidniki )
1713 ROM_REGION( 0x30000, REGION_CPU1 ) /* main CPU */
1714 ROM_LOAD( "dr04.4e", 0x00000, 0x04000, 0x80431858 )
1715 ROM_LOAD( "dr03.4cd", 0x04000, 0x04000, 0xdba20934 )
1716 ROM_LOAD( "dr11.8k", 0x10000, 0x08000, 0x04d82d93 ) /* banked at 8000-9fff */
1717 ROM_LOAD( "dr12.8l", 0x18000, 0x08000, 0xc0b255fd )
1718 ROM_CONTINUE( 0x28000, 0x08000 )
1719
1720 ROM_REGION( 0x10000, REGION_CPU2 ) /* sound CPU */
1721 ROM_LOAD( "dr00.3a", 0x4000, 0x04000, 0x458309f7 )
1722 ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, 0xe66897bd )
1723 ROM_LOAD( "dr02.3f", 0xc000, 0x04000, 0xf9e31e26 ) /* 6803 code */
1724
1725 ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1726 ROM_LOAD( "dr06.2b", 0x00000, 0x8000, 0x4d9a970f ) /* tiles */
1727 ROM_LOAD( "dr07.2dc", 0x08000, 0x8000, 0xab59a4c4 )
1728 ROM_LOAD( "dr05.2a", 0x10000, 0x8000, 0x2e6dad0c )
1729
1730 ROM_REGION( 0x30000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1731 ROM_LOAD( "dr21.4k", 0x00000, 0x4000, 0xa06cea9a ) /* sprites */
1732 ROM_LOAD( "dr19.4f", 0x04000, 0x4000, 0xb34605ad )
1733 ROM_LOAD( "dr22.4l", 0x08000, 0x4000, 0x41303de8 )
1734 ROM_LOAD( "dr20.4jh", 0x0c000, 0x4000, 0x5fbe6f61 )
1735 ROM_LOAD( "dr14.3p", 0x10000, 0x4000, 0x76cfbcbc )
1736 ROM_LOAD( "dr24.4p", 0x14000, 0x4000, 0xd51c8db5 )
1737 ROM_LOAD( "dr23.4nm", 0x18000, 0x4000, 0x03469df8 )
1738 ROM_LOAD( "dr13.3nm", 0x1c000, 0x4000, 0xd5c3dfe0 )
1739 ROM_LOAD( "dr16.4cb", 0x20000, 0x4000, 0xf1d1bb93 )
1740 ROM_LOAD( "dr18.4e", 0x24000, 0x4000, 0xedb7f25b )
1741 ROM_LOAD( "dr17.4dc", 0x28000, 0x4000, 0x4fb87868 )
1742 ROM_LOAD( "dr15.4a", 0x2c000, 0x4000, 0xe0b88de5 )
1743
1744 ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1745 ROM_LOAD( "dr08.4l", 0x00000, 0x4000, 0x32d50643 ) /* chars */
1746 ROM_LOAD( "dr09.4m", 0x04000, 0x4000, 0x17df6f95 )
1747 ROM_LOAD( "dr10.4n", 0x08000, 0x4000, 0x820ce252 )
1748
1749 ROM_REGION( 0x0920, REGION_PROMS )
1750 ROM_LOAD( "dr25.3f", 0x0000, 0x0100, 0x8e91430b ) /* character palette red component */
1751 ROM_LOAD( "dr30.1m", 0x0100, 0x0100, 0x28c73263 ) /* sprite palette red component */
1752 ROM_LOAD( "dr26.3h", 0x0200, 0x0100, 0xb563b93f ) /* character palette green component */
1753 ROM_LOAD( "dr31.1n", 0x0300, 0x0100, 0x3529210e ) /* sprite palette green component */
1754 ROM_LOAD( "dr27.3j", 0x0400, 0x0100, 0x70d668ef ) /* character palette blue component */
1755 ROM_LOAD( "dr29.1l", 0x0500, 0x0100, 0x1173a754 ) /* sprite palette blue component */
1756 ROM_LOAD( "dr32.5p", 0x0600, 0x0020, 0x11cd1f2e ) /* sprite height, one entry per 32 */
1757 /* sprites. Used at run time! */
1758 ROM_LOAD( "dr28.8f", 0x0620, 0x0200, 0x6cef0fbd ) /* unknown */
1759 ROM_LOAD( "dr33.6f", 0x0820, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1760 ROM_END
1761
1762
1763 ROM_START( yanchamr )
1764 ROM_REGION( 0x30000, REGION_CPU1 ) /* main CPU */
1765 ROM_LOAD( "ky_a-4e-.bin", 0x00000, 0x04000, 0xc73ad2d6 )
1766 ROM_LOAD( "ky_a-4d-.bin", 0x04000, 0x04000, 0x401af828 )
1767 ROM_LOAD( "ky_t-8k-.bin", 0x10000, 0x08000, 0xe967de88 ) /* banked at 8000-9fff */
1768 ROM_LOAD( "ky_t-8l-.bin", 0x18000, 0x08000, 0xa929110b )
1769 /* ROM_CONTINUE( 0x28000, 0x08000 ) */
1770
1771 ROM_REGION( 0x10000, REGION_CPU2 ) /* sound CPU */
1772 ROM_LOAD( "ky_a-3a-.bin", 0x4000, 0x04000, 0xcb365f3b )
1773 ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, 0xe66897bd )
1774 ROM_LOAD( "dr02.3f", 0xc000, 0x04000, 0xf9e31e26 ) /* 6803 code */
1775
1776 ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1777 ROM_LOAD( "ky_t-2c-.bin", 0x00000, 0x8000, 0xcb9761fc ) /* tiles */
1778 ROM_LOAD( "ky_t-2d-.bin", 0x08000, 0x8000, 0x59732741 )
1779 ROM_LOAD( "ky_t-2a-.bin", 0x10000, 0x8000, 0x0370fd82 )
1780
1781 ROM_REGION( 0x30000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1782 ROM_LOAD( "ky_b-4k-.bin", 0x00000, 0x4000, 0x263a9d10 ) /* sprites */
1783 ROM_LOAD( "ky_b-4f-.bin", 0x04000, 0x4000, 0x86e3d4a8 )
1784 ROM_LOAD( "ky_b-4l-.bin", 0x08000, 0x4000, 0x19fa7558 )
1785 ROM_LOAD( "ky_b-4h-.bin", 0x0c000, 0x4000, 0x93e6665c )
1786 ROM_LOAD( "ky_b-3n-.bin", 0x10000, 0x4000, 0x0287c525 )
1787 ROM_LOAD( "ky_b-4n-.bin", 0x14000, 0x4000, 0x764946e0 )
1788 ROM_LOAD( "ky_b-4m-.bin", 0x18000, 0x4000, 0xeced5db9 )
1789 ROM_LOAD( "ky_b-3m-.bin", 0x1c000, 0x4000, 0xbe6cee44 )
1790 ROM_LOAD( "ky_b-4c-.bin", 0x20000, 0x4000, 0x84d6b65d )
1791 ROM_LOAD( "ky_b-4e-.bin", 0x24000, 0x4000, 0xf91f9273 )
1792 ROM_LOAD( "ky_b-4d-.bin", 0x28000, 0x4000, 0xa2fc15f0 )
1793 ROM_LOAD( "ky_b-4a-.bin", 0x2c000, 0x4000, 0xff2b9c8a )
1794
1795 ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1796 ROM_LOAD( "ky_t-4l-.bin", 0x00000, 0x4000, 0x1d0a9253 ) /* chars */
1797 ROM_LOAD( "ky_t-4m-.bin", 0x04000, 0x4000, 0x4075c396 )
1798 ROM_LOAD( "ky_t-4n-.bin", 0x08000, 0x4000, 0x7564f2ff )
1799
1800 ROM_REGION( 0x0920, REGION_PROMS )
1801 ROM_LOAD( "dr25.3f", 0x0000, 0x0100, 0x8e91430b ) /* character palette red component */
1802 ROM_LOAD( "dr30.1m", 0x0100, 0x0100, 0x28c73263 ) /* sprite palette red component */
1803 ROM_LOAD( "dr26.3h", 0x0200, 0x0100, 0xb563b93f ) /* character palette green component */
1804 ROM_LOAD( "dr31.1n", 0x0300, 0x0100, 0x3529210e ) /* sprite palette green component */
1805 ROM_LOAD( "dr27.3j", 0x0400, 0x0100, 0x70d668ef ) /* character palette blue component */
1806 ROM_LOAD( "dr29.1l", 0x0500, 0x0100, 0x1173a754 ) /* sprite palette blue component */
1807 ROM_LOAD( "dr32.5p", 0x0600, 0x0020, 0x11cd1f2e ) /* sprite height, one entry per 32 */
1808 /* sprites. Used at run time! */
1809 ROM_LOAD( "dr28.8f", 0x0620, 0x0200, 0x6cef0fbd ) /* unknown */
1810 ROM_LOAD( "dr33.6f", 0x0820, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1811 ROM_END
1812
1813 ROM_START( spelunkr )
1814 ROM_REGION( 0x18000, REGION_CPU1 ) /* main CPU */
1815 ROM_LOAD( "spra.4e", 0x00000, 0x4000, 0xcf811201 )
1816 ROM_LOAD( "spra.4d", 0x04000, 0x4000, 0xbb4faa4f )
1817 ROM_LOAD( "sprm.7c", 0x10000, 0x4000, 0xfb6197e2 ) /* banked at 8000-9fff */
1818 ROM_LOAD( "sprm.7b", 0x14000, 0x4000, 0x26bb25a4 )
1819
1820 ROM_REGION( 0x10000, REGION_CPU2 ) /* sound CPU */
1821 ROM_LOAD( "spra.3d", 0x8000, 0x04000, 0x4110363c ) /* adpcm data */
1822 ROM_LOAD( "spra.3f", 0xc000, 0x04000, 0x67a9d2e6 ) /* 6803 code */
1823
1824 ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1825 ROM_LOAD( "sprm.1d", 0x00000, 0x4000, 0x4ef7ae89 ) /* tiles */
1826 ROM_LOAD( "sprm.1e", 0x04000, 0x4000, 0xa3755180 )
1827 ROM_LOAD( "sprm.3c", 0x08000, 0x4000, 0xb4008e6a )
1828 ROM_LOAD( "sprm.3b", 0x0c000, 0x4000, 0xf61cf012 )
1829 ROM_LOAD( "sprm.1c", 0x10000, 0x4000, 0x58b21c76 )
1830 ROM_LOAD( "sprm.1b", 0x14000, 0x4000, 0xa95cb3e5 )
1831
1832 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1833 ROM_LOAD( "sprb.4k", 0x00000, 0x4000, 0xe7f0e861 ) /* sprites */
1834 ROM_LOAD( "sprb.4f", 0x04000, 0x4000, 0x32663097 )
1835 ROM_LOAD( "sprb.3p", 0x08000, 0x4000, 0x8fbaf373 )
1836 ROM_LOAD( "sprb.4p", 0x0c000, 0x4000, 0x37069b76 )
1837 ROM_LOAD( "sprb.4c", 0x10000, 0x4000, 0xcfe46a88 )
1838 ROM_LOAD( "sprb.4e", 0x14000, 0x4000, 0x11c48979 )
1839
1840 ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1841 ROM_LOAD( "sprm.4p", 0x00000, 0x0800, 0x4dfe2e63 ) /* chars */
1842 ROM_CONTINUE( 0x02000, 0x0800 ) /* first and second half identical, */
1843 ROM_CONTINUE( 0x00800, 0x0800 ) /* second half not used by the driver */
1844 ROM_CONTINUE( 0x02800, 0x0800 )
1845 ROM_CONTINUE( 0x00000, 0x0800 )
1846 ROM_CONTINUE( 0x03000, 0x0800 )
1847 ROM_CONTINUE( 0x00800, 0x0800 )
1848 ROM_CONTINUE( 0x03800, 0x0800 )
1849 ROM_LOAD( "sprm.4l", 0x04000, 0x0800, 0x239f2cd4 )
1850 ROM_CONTINUE( 0x06000, 0x0800 )
1851 ROM_CONTINUE( 0x04800, 0x0800 )
1852 ROM_CONTINUE( 0x06800, 0x0800 )
1853 ROM_CONTINUE( 0x05000, 0x0800 )
1854 ROM_CONTINUE( 0x07000, 0x0800 )
1855 ROM_CONTINUE( 0x05800, 0x0800 )
1856 ROM_CONTINUE( 0x07800, 0x0800 )
1857 ROM_LOAD( "sprm.4m", 0x08000, 0x0800, 0xd6d07d70 )
1858 ROM_CONTINUE( 0x0a000, 0x0800 )
1859 ROM_CONTINUE( 0x08800, 0x0800 )
1860 ROM_CONTINUE( 0x0a800, 0x0800 )
1861 ROM_CONTINUE( 0x09000, 0x0800 )
1862 ROM_CONTINUE( 0x0b000, 0x0800 )
1863 ROM_CONTINUE( 0x09800, 0x0800 )
1864 ROM_CONTINUE( 0x0b800, 0x0800 )
1865
1866 ROM_REGION( 0x0920, REGION_PROMS )
1867 ROM_LOAD( "sprm.2k", 0x0000, 0x0100, 0xfd8fa991 ) /* character palette red component */
1868 ROM_LOAD( "sprb.1m", 0x0100, 0x0100, 0x8d8cccad ) /* sprite palette red component */
1869 ROM_LOAD( "sprm.2j", 0x0200, 0x0100, 0x0e3890b4 ) /* character palette blue component */
1870 ROM_LOAD( "sprb.1n", 0x0300, 0x0100, 0xc40e1cb2 ) /* sprite palette green component */
1871 ROM_LOAD( "sprm.2h", 0x0400, 0x0100, 0x0478082b ) /* character palette green component */
1872 ROM_LOAD( "sprb.1l", 0x0500, 0x0100, 0x3ec46248 ) /* sprite palette blue component */
1873 ROM_LOAD( "sprb.5p", 0x0600, 0x0020, 0x746c6238 ) /* sprite height, one entry per 32 */
1874 /* sprites. Used at run time! */
1875 ROM_LOAD( "sprm.8h", 0x0620, 0x0200, 0x875cc442 ) /* unknown */
1876 ROM_LOAD( "sprb.6f", 0x0820, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1877 ROM_END
1878
1879 ROM_START( spelunk2 )
1880 ROM_REGION( 0x24000, REGION_CPU1 ) /* main CPU */
1881 ROM_LOAD( "sp2-a.4e", 0x00000, 0x4000, 0x96c04bbb )
1882 ROM_LOAD( "sp2-a.4d", 0x04000, 0x4000, 0xcb38c2ff )
1883 ROM_LOAD( "sp2-r.7d", 0x10000, 0x8000, 0x558837ea ) /* banked at 9000-9fff */
1884 ROM_LOAD( "sp2-r.7c", 0x18000, 0x8000, 0x4b380162 ) /* banked at 9000-9fff */
1885 ROM_LOAD( "sp2-r.7b", 0x20000, 0x4000, 0x7709a1fe ) /* banked at 8000-8fff */
1886
1887 ROM_REGION( 0x10000, REGION_CPU2 ) /* sound CPU */
1888 ROM_LOAD( "sp2-a.3d", 0x8000, 0x04000, 0x839ec7e2 ) /* adpcm data */
1889 ROM_LOAD( "sp2-a.3f", 0xc000, 0x04000, 0xad3ce898 ) /* 6803 code */
1890
1891 ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1892 ROM_LOAD( "sp2-r.1d", 0x00000, 0x8000, 0xc19fa4c9 ) /* tiles */
1893 ROM_LOAD( "sp2-r.3b", 0x08000, 0x8000, 0x366604af )
1894 ROM_LOAD( "sp2-r.1b", 0x10000, 0x8000, 0x3a0c4d47 )
1895
1896 ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1897 ROM_LOAD( "sp2-b.4k", 0x00000, 0x4000, 0x6cb67a17 ) /* sprites */
1898 ROM_LOAD( "sp2-b.4f", 0x04000, 0x4000, 0xe4a1166f )
1899 ROM_LOAD( "sp2-b.3n", 0x08000, 0x4000, 0xf59e8b76 )
1900 ROM_LOAD( "sp2-b.4n", 0x0c000, 0x4000, 0xfa65bac9 )
1901 ROM_LOAD( "sp2-b.4c", 0x10000, 0x4000, 0x1caf7013 )
1902 ROM_LOAD( "sp2-b.4e", 0x14000, 0x4000, 0x780a463b )
1903
1904 ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1905 ROM_LOAD( "sp2-r.4l", 0x00000, 0x0800, 0x6a4b2d8b ) /* chars */
1906 ROM_CONTINUE( 0x02000, 0x0800 ) /* first and second half identical, */
1907 ROM_CONTINUE( 0x00800, 0x0800 ) /* second half not used by the driver */
1908 ROM_CONTINUE( 0x02800, 0x0800 )
1909 ROM_CONTINUE( 0x00000, 0x0800 )
1910 ROM_CONTINUE( 0x03000, 0x0800 )
1911 ROM_CONTINUE( 0x00800, 0x0800 )
1912 ROM_CONTINUE( 0x03800, 0x0800 )
1913 ROM_LOAD( "sp2-r.4m", 0x04000, 0x0800, 0xe1368b61 )
1914 ROM_CONTINUE( 0x06000, 0x0800 )
1915 ROM_CONTINUE( 0x04800, 0x0800 )
1916 ROM_CONTINUE( 0x06800, 0x0800 )
1917 ROM_CONTINUE( 0x05000, 0x0800 )
1918 ROM_CONTINUE( 0x07000, 0x0800 )
1919 ROM_CONTINUE( 0x05800, 0x0800 )
1920 ROM_CONTINUE( 0x07800, 0x0800 )
1921 ROM_LOAD( "sp2-r.4p", 0x08000, 0x0800, 0xfc138e13 )
1922 ROM_CONTINUE( 0x0a000, 0x0800 )
1923 ROM_CONTINUE( 0x08800, 0x0800 )
1924 ROM_CONTINUE( 0x0a800, 0x0800 )
1925 ROM_CONTINUE( 0x09000, 0x0800 )
1926 ROM_CONTINUE( 0x0b000, 0x0800 )
1927 ROM_CONTINUE( 0x09800, 0x0800 )
1928 ROM_CONTINUE( 0x0b800, 0x0800 )
1929
1930 ROM_REGION( 0x0a20, REGION_PROMS )
1931 ROM_LOAD( "sp2-r.1k", 0x0000, 0x0200, 0x31c1bcdc ) /* chars red and green component */
1932 ROM_LOAD( "sp2-r.2k", 0x0200, 0x0100, 0x1cf5987e ) /* chars blue component */
1933 ROM_LOAD( "sp2-r.2j", 0x0300, 0x0100, 0x1acbe2a5 ) /* chars blue component */
1934 ROM_LOAD( "sp2-b.1m", 0x0400, 0x0100, 0x906104c7 ) /* sprites red component */
1935 ROM_LOAD( "sp2-b.1n", 0x0500, 0x0100, 0x5a564c06 ) /* sprites green component */
1936 ROM_LOAD( "sp2-b.1l", 0x0600, 0x0100, 0x8f4a2e3c ) /* sprites blue component */
1937 ROM_LOAD( "sp2-b.5p", 0x0700, 0x0020, 0xcd126f6a ) /* sprite height, one entry per 32 */
1938 /* sprites. Used at run time! */
1939 ROM_LOAD( "sp2-r.8j", 0x0720, 0x0200, 0x875cc442 ) /* unknown */
1940 ROM_LOAD( "sp2-b.6f", 0x0920, 0x0100, 0x34d88d3c ) /* video timing? - common to the other games */
1941 ROM_END
1942
1943
1944
1945 GAME( 1984, kungfum, 0, kungfum, kungfum, 0, ROT0, "Irem", "Kung Fu Master" )
1946 GAME( 1984, kungfud, kungfum, kungfum, kungfum, 0, ROT0, "Irem (Data East license)", "Kung Fu Master (Data East)" )
1947 GAME( 1984, spartanx, kungfum, kungfum, kungfum, 0, ROT0, "Irem", "Spartan X (Japan)" )
1948 GAME( 1984, kungfub, kungfum, kungfum, kungfum, 0, ROT0, "bootleg", "Kung Fu Master (bootleg set 1)" )
1949 GAME( 1984, kungfub2, kungfum, kungfum, kungfum, 0, ROT0, "bootleg", "Kung Fu Master (bootleg set 2)" )
1950 GAME( 1984, battroad, 0, battroad, battroad, 0, ROT90, "Irem", "The Battle-Road" )
1951 GAME( 1984, ldrun, 0, ldrun, ldrun, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 1)" )
1952 GAME( 1984, ldruna, ldrun, ldrun, ldrun, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 2)" )
1953 GAME( 1984, ldrun2, 0, ldrun2, ldrun2, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back" ) /* Japanese version is called Bangeringu Teikoku No Gyakushuu */
1954 GAME( 1985, ldrun3, 0, ldrun3, ldrun3, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu" )
1955 GAME( 1986, ldrun4, 0, ldrun4, ldrun4, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu" )
1956 GAME( 1985, lotlot, 0, lotlot, lotlot, 0, ROT0, "Irem (licensed from Tokuma Shoten)", "Lot Lot" )
1957 GAMEX(1986, kidniki, 0, kidniki, kidniki, 0, ROT0, "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", GAME_IMPERFECT_SOUND )
1958 GAMEX(1986, yanchamr, kidniki, kidniki, kidniki, 0, ROT0, "Irem", "Kaiketsu Yanchamaru (Japan)", GAME_IMPERFECT_SOUND )
1959 GAME( 1985, spelunkr, 0, spelunkr, spelunkr, 0, ROT0, "Irem (licensed from Broderbund)", "Spelunker" )
1960 GAME( 1986, spelunk2, 0, spelunk2, spelunk2, 0, ROT0, "Irem (licensed from Broderbund)", "Spelunker II" )
1961