1 /****************************************************************************
2
3 Irem "M62" system
4
5 TODO:
6 - Kid Niki and Horizon are missing the drums. There is an analog section in
7 the sound board.
8
9 Notes:
10 - I believe that both kungfum bootlegs are derived from an Irem original which we
11 don't have (prototype/early revision?). They say "kanfu master" instead of
12 "kung-fu master" on the introduction screen, the only original doing that is
13 spartanx but the ROMs don't match after the copyright notice.
14
15
16
17 The following information is gathered from Kung Fu Master; the board was most
18 likely modified for other games (or, not all the games in this driver are
19 really M62).
20
21 The M62 board can be set up for different configurations through the use of
22 jumpers.
23
24 A board:
25 J1: \
26 J2: / ROM or RAM at 0x4000
27 J3: sound prg ROM size, 2764 or 27128
28 J4: send output C of the secondy AY-3-8910 to SOUND IO instead of SOUND. Is
29 this to have it amplified more?
30 J5: enable a tristate on accesses to the range a000-bfff (must not be done
31 when there is ROM at this address)
32 J6:
33 J7: main prg ROM type, 2764 or 27128
34
35 B board:
36 J1: selects whether bit 4 of obj color code selects or not high priority over tiles
37 J2: selects whether bit 4 of obj color code goes to A7 of obj color PROMS
38 J3: I'm not sure about this. It involves A8 of sprite ram.
39 J4: pixels per scanline, 256 or 384. There's also a PROM @ 6F that controls
40 video timing and how long a scanline is.
41 J5: output Horizontal Sync or Composite Sync
42 J6: ??? where is this ???
43 J7: \ main xtal, 18.432 MHz (for low resolution games?) or
44 J8: / 24 MHz (for mid resolution games?)
45 J9: obj ROM type, 2764 or 27128
46
47 G board:
48 JP1: \
49 JP2: | Tiles with color code >= the value set here have priority over sprites
50 JP3: |
51 JP4: /
52
53 **************************************************************************/
54
55 #include "driver.h"
56 #include "sndhrdw/irem.h"
57 #include "vidhrdw/generic.h"
58 #include "state.h"
59
60
61 PALETTE_INIT( irem );
62 PALETTE_INIT( battroad );
63 PALETTE_INIT( spelunk2 );
64
65 WRITE_HANDLER( m62_tileram_w );
66 WRITE_HANDLER( m62_textram_w );
67 WRITE_HANDLER( m62_flipscreen_w );
68 WRITE_HANDLER( m62_hscroll_low_w );
69 WRITE_HANDLER( m62_hscroll_high_w );
70 WRITE_HANDLER( m62_vscroll_low_w );
71 WRITE_HANDLER( m62_vscroll_high_w );
72 extern data8_t *m62_tileram;
73 extern data8_t *m62_textram;
74
75 VIDEO_START( kungfum );
76 VIDEO_UPDATE( kungfum );
77 WRITE_HANDLER( kungfum_tileram_w );
78
79 VIDEO_START( ldrun );
80 VIDEO_UPDATE( ldrun );
81
82 VIDEO_START( battroad );
83 VIDEO_UPDATE( battroad );
84
85 VIDEO_START( ldrun4 );
86 VIDEO_UPDATE( ldrun4 );
87
88 VIDEO_START( lotlot );
89 VIDEO_UPDATE( lotlot );
90
91 WRITE_HANDLER( kidniki_text_vscroll_low_w );
92 WRITE_HANDLER( kidniki_text_vscroll_high_w );
93 WRITE_HANDLER( kidniki_background_bank_w );
94 VIDEO_START( kidniki );
95 VIDEO_UPDATE( kidniki );
96
97 WRITE_HANDLER( spelunkr_palbank_w );
98 VIDEO_START( spelunkr );
99 VIDEO_UPDATE( spelunkr );
100
101 WRITE_HANDLER( spelunk2_gfxport_w );
102 VIDEO_START( spelunk2 );
103 VIDEO_UPDATE( spelunk2 );
104
105 VIDEO_START( youjyudn );
106 VIDEO_UPDATE( youjyudn );
107
108 VIDEO_START( horizon );
109 VIDEO_UPDATE( horizon );
110 WRITE_HANDLER( horizon_scrollram_w );
111 extern data8_t *horizon_scrollram;
112
113 static int bankaddress;
114 static int bankaddress2;
115
set_m64_bank(void)116 static void set_m64_bank(void)
117 {
118 unsigned char *RAM = memory_region(REGION_CPU1);
119 cpu_setbank(1,&RAM[bankaddress]);
120 }
121
set_m64_bank2(void)122 static void set_m64_bank2(void)
123 {
124 unsigned char *RAM = memory_region(REGION_CPU1);
125 cpu_setbank(1,&RAM[bankaddress]);
126 cpu_setbank(2,&RAM[bankaddress2]);
127 }
128
129
130 /* Lode Runner 2 seems to have a simple protection on the bank switching */
131 /* circuitry. It writes data to ports 0x80 and 0x81, then reads port 0x80 */
132 /* a variable number of times (discarding the result) and finally retrieves */
133 /* data from the bankswitched ROM area. */
134 /* Since the data written to 0x80 is always the level number, I just use */
135 /* that to select the ROM. The only exception I make is a special case used in */
136 /* service mode to test the ROMs. */
137 static int ldrun2_bankswap;
138
READ_HANDLER(ldrun2_bankswitch_r)139 READ_HANDLER( ldrun2_bankswitch_r )
140 {
141 if (ldrun2_bankswap)
142 {
143 unsigned char *RAM = memory_region(REGION_CPU1);
144
145
146 ldrun2_bankswap--;
147
148 /* swap to bank #1 on second read */
149 if (ldrun2_bankswap == 0)
150 cpu_setbank(1,&RAM[0x12000]);
151 }
152 return 0;
153 }
154
WRITE_HANDLER(ldrun2_bankswitch_w)155 WRITE_HANDLER( ldrun2_bankswitch_w )
156 {
157 static int bankcontrol[2];
158 int banks[30] =
159 {
160 0,0,0,0,0,1,0,1,0,0,
161 0,1,1,1,1,1,0,0,0,0,
162 1,0,1,1,1,1,1,1,1,1
163 };
164
165
166 bankcontrol[offset] = data;
167 if (offset == 0)
168 {
169 if (data < 1 || data > 30)
170 {
171 log_cb(RETRO_LOG_DEBUG, LOGPRE "unknown bank select %02x\n",data);
172 return;
173 }
174 bankaddress = 0x10000 + (banks[data-1] * 0x2000);
175 set_m64_bank();
176 }
177 else
178 {
179 if (bankcontrol[0] == 0x01 && data == 0x0d)
180 /* special case for service mode */
181 ldrun2_bankswap = 2;
182 else ldrun2_bankswap = 0;
183 }
184 }
185
186
187 /* Lode Runner 3 has, it seems, a poor man's protection consisting of a PAL */
188 /* (I think; it's included in the ROM set) which is read at certain times, */
189 /* and the game crashes if ti doesn't match the expected values. */
READ_HANDLER(ldrun3_prot_5_r)190 READ_HANDLER( ldrun3_prot_5_r )
191 {
192 return 5;
193 }
194
READ_HANDLER(ldrun3_prot_7_r)195 READ_HANDLER( ldrun3_prot_7_r )
196 {
197 return 7;
198 }
199
200
WRITE_HANDLER(ldrun4_bankswitch_w)201 WRITE_HANDLER( ldrun4_bankswitch_w )
202 {
203 bankaddress = 0x10000 + ((data & 0x01) * 0x4000);
204 set_m64_bank();
205 }
206
WRITE_HANDLER(kidniki_bankswitch_w)207 static WRITE_HANDLER( kidniki_bankswitch_w )
208 {
209 bankaddress = 0x10000 + (data & 0x0f) * 0x2000;
210 set_m64_bank();
211 }
212
213 #define battroad_bankswitch_w kidniki_bankswitch_w
214
WRITE_HANDLER(spelunkr_bankswitch_w)215 static WRITE_HANDLER( spelunkr_bankswitch_w )
216 {
217 bankaddress = 0x10000 + (data & 0x03) * 0x2000;
218 set_m64_bank();
219 }
220
WRITE_HANDLER(spelunk2_bankswitch_w)221 WRITE_HANDLER( spelunk2_bankswitch_w )
222 {
223 bankaddress = 0x20000 + 0x1000 * ((data & 0xc0)>>6);
224 bankaddress2 = 0x10000 + 0x0400 * (data & 0x3c);
225 set_m64_bank2();
226 }
227
WRITE_HANDLER(youjyudn_bankswitch_w)228 static WRITE_HANDLER( youjyudn_bankswitch_w )
229 {
230 bankaddress = 0x10000 + (data & 0x01) * 0x4000;
231 set_m64_bank();
232 }
233
234
MEMORY_READ_START(kungfum_readmem)235 static MEMORY_READ_START( kungfum_readmem )
236 { 0x0000, 0x7fff, MRA_ROM },
237 { 0xd000, 0xefff, MRA_RAM },
238 MEMORY_END
239
240 static MEMORY_WRITE_START( kungfum_writemem )
241 { 0x0000, 0x7fff, MWA_ROM },
242 { 0xa000, 0xa000, m62_hscroll_low_w },
243 { 0xb000, 0xb000, m62_hscroll_high_w },
244 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
245 /* Kung Fu Master is the only game in this driver to have separated (but */
246 /* contiguous) videoram and colorram. They are interleaved in all the others. */
247 { 0xd000, 0xdfff, kungfum_tileram_w, &m62_tileram },
248 { 0xe000, 0xefff, MWA_RAM },
249 MEMORY_END
250
251 static PORT_READ_START( kungfum_readport )
252 { 0x00, 0x00, input_port_0_r }, /* coin */
253 { 0x01, 0x01, input_port_1_r }, /* player 1 control */
254 { 0x02, 0x02, input_port_2_r }, /* player 2 control */
255 { 0x03, 0x03, input_port_3_r }, /* DSW 1 */
256 { 0x04, 0x04, input_port_4_r }, /* DSW 2 */
257 PORT_END
258
259 static PORT_WRITE_START( kungfum_writeport )
260 { 0x00, 0x00, irem_sound_cmd_w },
261 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
262 PORT_END
263
264
265 static MEMORY_READ_START( battroad_readmem )
266 { 0x0000, 0x7fff, MRA_ROM },
267 { 0xa000, 0xbfff, MRA_BANK1 },
268 { 0xc800, 0xefff, MRA_RAM },
269 MEMORY_END
270
271 static MEMORY_WRITE_START( battroad_writemem )
272 { 0x0000, 0xbfff, MWA_ROM },
273 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
274 { 0xc800, 0xcfff, m62_textram_w, &m62_textram },
275 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
276 { 0xe000, 0xefff, MWA_RAM },
277 MEMORY_END
278
279 static PORT_WRITE_START( battroad_writeport )
280 { 0x00, 0x00, irem_sound_cmd_w },
281 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
282 { 0x80, 0x80, m62_vscroll_low_w },
283 { 0x81, 0x81, m62_hscroll_high_w },
284 { 0x82, 0x82, m62_hscroll_low_w },
285 { 0x83, 0x83, battroad_bankswitch_w },
286 PORT_END
287
288
289 static MEMORY_READ_START( ldrun_readmem )
290 { 0x0000, 0x7fff, MRA_ROM },
291 { 0xd000, 0xefff, MRA_RAM },
292 MEMORY_END
293
294 static MEMORY_WRITE_START( ldrun_writemem )
295 { 0x0000, 0x7fff, MWA_ROM },
296 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
297 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
298 { 0xe000, 0xefff, MWA_RAM },
299 MEMORY_END
300
301
302 static MEMORY_READ_START( ldrun2_readmem )
303 { 0x0000, 0x7fff, MRA_ROM },
304 { 0x8000, 0x9fff, MRA_BANK1 },
305 { 0xd000, 0xefff, MRA_RAM },
306 MEMORY_END
307
308 static MEMORY_WRITE_START( ldrun2_writemem )
309 { 0x0000, 0x9fff, MWA_ROM },
310 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
311 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
312 { 0xe000, 0xefff, MWA_RAM },
313 MEMORY_END
314
315 static PORT_READ_START( ldrun2_readport )
316 { 0x00, 0x00, input_port_0_r }, /* coin */
317 { 0x01, 0x01, input_port_1_r }, /* player 1 control */
318 { 0x02, 0x02, input_port_2_r }, /* player 2 control */
319 { 0x03, 0x03, input_port_3_r }, /* DSW 1 */
320 { 0x04, 0x04, input_port_4_r }, /* DSW 2 */
321 { 0x80, 0x80, ldrun2_bankswitch_r },
322 PORT_END
323
324 static PORT_WRITE_START( ldrun2_writeport )
325 { 0x00, 0x00, irem_sound_cmd_w },
326 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
327 { 0x80, 0x81, ldrun2_bankswitch_w },
328 PORT_END
329
330
331 static MEMORY_READ_START( ldrun3_readmem )
332 { 0x0000, 0xbfff, MRA_ROM },
333 { 0xc800, 0xc800, ldrun3_prot_5_r },
334 { 0xcc00, 0xcc00, ldrun3_prot_7_r },
335 { 0xcfff, 0xcfff, ldrun3_prot_7_r },
336 { 0xd000, 0xefff, MRA_RAM },
337 MEMORY_END
338
339 static MEMORY_WRITE_START( ldrun3_writemem )
340 { 0x0000, 0xbfff, MWA_ROM },
341 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
342 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
343 { 0xe000, 0xefff, MWA_RAM },
344 MEMORY_END
345
346 static PORT_WRITE_START( ldrun3_writeport )
347 { 0x00, 0x00, irem_sound_cmd_w },
348 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
349 { 0x80, 0x80, m62_vscroll_low_w },
350 /* 0x81 used too, don't know what for */
351 PORT_END
352
353
354 static MEMORY_READ_START( ldrun4_readmem )
355 { 0x0000, 0x7fff, MRA_ROM },
356 { 0x8000, 0xbfff, MRA_BANK1 },
357 { 0xd000, 0xefff, MRA_RAM },
358 MEMORY_END
359
360 static MEMORY_WRITE_START( ldrun4_writemem )
361 { 0x0000, 0xbfff, MWA_ROM },
362 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
363 { 0xc800, 0xc800, ldrun4_bankswitch_w },
364 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
365 { 0xe000, 0xefff, MWA_RAM },
366 MEMORY_END
367
368 static PORT_WRITE_START( ldrun4_writeport )
369 { 0x00, 0x00, irem_sound_cmd_w },
370 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
371 { 0x82, 0x82, m62_hscroll_high_w },
372 { 0x83, 0x83, m62_hscroll_low_w },
373 PORT_END
374
375
376 static MEMORY_READ_START( lotlot_readmem )
377 { 0x0000, 0x7fff, MRA_ROM },
378 { 0xa000, 0xafff, MRA_RAM },
379 { 0xd000, 0xefff, MRA_RAM },
380 MEMORY_END
381
382 static MEMORY_WRITE_START( lotlot_writemem )
383 { 0x0000, 0x7fff, MWA_ROM },
384 { 0xa000, 0xafff, m62_textram_w, &m62_textram },
385 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
386 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
387 { 0xe000, 0xefff, MWA_RAM },
388 MEMORY_END
389
390
391 static MEMORY_READ_START( kidniki_readmem )
392 { 0x0000, 0x7fff, MRA_ROM },
393 { 0x8000, 0x9fff, MRA_BANK1 },
394 { 0xa000, 0xafff, MRA_RAM },
395 { 0xd000, 0xefff, MRA_RAM },
396 MEMORY_END
397
398 static MEMORY_WRITE_START( kidniki_writemem )
399 { 0x0000, 0x9fff, MWA_ROM },
400 { 0xa000, 0xafff, m62_tileram_w, &m62_tileram },
401 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
402 { 0xd000, 0xdfff, m62_textram_w, &m62_textram },
403 { 0xe000, 0xefff, MWA_RAM },
404 MEMORY_END
405
406 static PORT_WRITE_START( kidniki_writeport )
407 { 0x00, 0x00, irem_sound_cmd_w },
408 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
409 { 0x80, 0x80, m62_hscroll_low_w },
410 { 0x81, 0x81, m62_hscroll_high_w },
411 { 0x82, 0x82, kidniki_text_vscroll_low_w },
412 { 0x83, 0x83, kidniki_text_vscroll_high_w },
413 { 0x84, 0x84, kidniki_background_bank_w },
414 { 0x85, 0x85, kidniki_bankswitch_w },
415 PORT_END
416
417
418 static MEMORY_READ_START( spelunkr_readmem )
419 { 0x0000, 0x7fff, MRA_ROM },
420 { 0x8000, 0x9fff, MRA_BANK1 },
421 { 0xa000, 0xbfff, MRA_RAM },
422 { 0xc800, 0xcfff, MRA_RAM },
423 { 0xe000, 0xefff, MRA_RAM },
424 MEMORY_END
425
426 static MEMORY_WRITE_START( spelunkr_writemem )
427 { 0x0000, 0x9fff, MWA_ROM },
428 { 0xa000, 0xbfff, m62_tileram_w, &m62_tileram },
429 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
430 { 0xc800, 0xcfff, m62_textram_w, &m62_textram },
431 { 0xd000, 0xd000, m62_vscroll_low_w },
432 { 0xd001, 0xd001, m62_vscroll_high_w },
433 { 0xd002, 0xd002, m62_hscroll_low_w },
434 { 0xd003, 0xd003, m62_hscroll_high_w },
435 { 0xd004, 0xd004, spelunkr_bankswitch_w },
436 { 0xd005, 0xd005, spelunkr_palbank_w },
437 { 0xe000, 0xefff, MWA_RAM },
438 MEMORY_END
439
440
441 static MEMORY_READ_START( spelunk2_readmem )
442 { 0x0000, 0x7fff, MRA_ROM },
443 { 0x8000, 0x8fff, MRA_BANK1 },
444 { 0x9000, 0x9fff, MRA_BANK2 },
445 { 0xa000, 0xbfff, MRA_RAM },
446 { 0xc800, 0xcfff, MRA_RAM },
447 { 0xe000, 0xefff, MRA_RAM },
448 MEMORY_END
449
450 static MEMORY_WRITE_START( spelunk2_writemem )
451 { 0x0000, 0x9fff, MWA_ROM },
452 { 0xa000, 0xbfff, m62_tileram_w, &m62_tileram },
453 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
454 { 0xc800, 0xcfff, m62_textram_w, &m62_textram },
455 { 0xd000, 0xd000, m62_vscroll_low_w },
456 { 0xd001, 0xd001, m62_hscroll_low_w },
457 { 0xd002, 0xd002, spelunk2_gfxport_w },
458 { 0xd003, 0xd003, spelunk2_bankswitch_w },
459 { 0xe000, 0xefff, MWA_RAM },
460 MEMORY_END
461
462
463 static MEMORY_READ_START( youjyudn_readmem )
464 { 0x0000, 0x7fff, MRA_ROM },
465 { 0x8000, 0xbfff, MRA_BANK1 },
466 { 0xc800, 0xcfff, MRA_RAM },
467 { 0xd000, 0xd7ff, MRA_RAM },
468 { 0xe000, 0xefff, MRA_RAM },
469 MEMORY_END
470
471 static MEMORY_WRITE_START( youjyudn_writemem )
472 { 0x0000, 0xbfff, MWA_ROM },
473 { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
474 { 0xc800, 0xcfff, m62_textram_w, &m62_textram },
475 { 0xd000, 0xd7ff, m62_tileram_w, &m62_tileram },
476 { 0xe000, 0xefff, MWA_RAM },
477 MEMORY_END
478
479 static PORT_WRITE_START( youjyudn_writeport )
480 { 0x00, 0x00, irem_sound_cmd_w },
481 { 0x01, 0x01, m62_flipscreen_w }, /* + coin counters */
482 { 0x80, 0x80, m62_hscroll_high_w },
483 { 0x81, 0x81, m62_hscroll_low_w },
484 { 0x83, 0x83, youjyudn_bankswitch_w },
485 PORT_END
486
487
488 static MEMORY_READ_START( horizon_readmem )
489 { 0x0000, 0xbfff, MRA_ROM },
490 { 0xc000, 0xc1ff, MRA_RAM },
491 { 0xc800, 0xc83f, MRA_RAM },
492 { 0xd000, 0xdfff, MRA_RAM },
493 { 0xe000, 0xefff, MRA_RAM },
494 MEMORY_END
495
496 static MEMORY_WRITE_START( horizon_writemem )
497 { 0x0000, 0xbfff, MWA_ROM },
498 { 0xc000, 0xc1ff, MWA_RAM, &spriteram, &spriteram_size },
499 { 0xc800, 0xc83f, horizon_scrollram_w, &horizon_scrollram },
500 { 0xd000, 0xdfff, m62_tileram_w, &m62_tileram },
501 { 0xe000, 0xefff, MWA_RAM },
502 MEMORY_END
503
504
505
506
507 #define IN0_PORT \
508 /* Start 1 & 2 also restarts and freezes the game with stop mode on \
509 and are used in test mode to enter and esc the various tests */ \
510 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \
511 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) \
512 /* service coin must be active for 19 frames to be consistently recognized */ \
513 PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1, 19 ) \
514 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) \
515 PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
516
517 #define IN1_PORT \
518 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
519 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY ) \
520 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY ) \
521 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY ) \
522 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
523 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) \
524 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
525 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
526
527 #define IN2_PORT \
528 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL ) \
529 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL ) \
530 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL ) \
531 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL ) \
532 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) \
533 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL ) \
534 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
535 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
536
537 #define COINAGE_DSW \
538 /* TODO: support the different settings which happen in Coin Mode 2 */ \
539 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
540 PORT_DIPSETTING( 0x90, DEF_STR( 7C_1C ) ) \
541 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
542 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
543 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
544 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \
545 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \
546 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \
547 PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) \
548 PORT_DIPSETTING( 0x60, DEF_STR( 1C_3C ) ) \
549 PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \
550 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \
551 PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \
552 PORT_DIPSETTING( 0x20, DEF_STR( 1C_7C ) ) \
553 PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C ) ) \
554 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \
555 /* setting 0x80 give 1 Coin/1 Credit */
556
557 #define COINAGE2_DSW \
558 /* TODO: support the different settings which happen in Coin Mode 2 */ \
559 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
560 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
561 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
562 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
563 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \
564 PORT_DIPSETTING( 0x10, DEF_STR( 8C_3C ) ) \
565 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \
566 PORT_DIPSETTING( 0x20, DEF_STR( 5C_3C ) ) \
567 PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \
568 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \
569 PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \
570 PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \
571 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \
572 PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \
573 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \
574 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \
575 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \
576
577 #define COINAGE3_DSW \
578 /* TODO: support the different settings which happen in Coin Mode 2 */ \
579 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
580 PORT_DIPSETTING( 0x00, DEF_STR( 8C_1C ) ) \
581 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
582 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
583 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
584 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \
585 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \
586 PORT_DIPSETTING( 0x10, DEF_STR( 5C_3C ) ) \
587 PORT_DIPSETTING( 0x20, "3 Coins/5 Credits" ) \
588 PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \
589 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \
590 PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \
591 PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \
592 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \
593 PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \
594 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \
595 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \
596
597
598 INPUT_PORTS_START( kungfum )
599 PORT_START /* IN0 */
600 IN0_PORT
601
602 PORT_START /* IN1 */
603 IN1_PORT
604
605 PORT_START /* IN2 */
606 IN2_PORT
607
608 PORT_START /* DSW1 */
609 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Difficulty ) )
610 PORT_DIPSETTING( 0x01, "Easy" )
611 PORT_DIPSETTING( 0x00, "Hard" )
612 PORT_DIPNAME( 0x02, 0x02, "Energy Loss" )
613 PORT_DIPSETTING( 0x02, "Slow" )
614 PORT_DIPSETTING( 0x00, "Fast" )
615 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
616 PORT_DIPSETTING( 0x08, "2" )
617 PORT_DIPSETTING( 0x0c, "3" )
618 PORT_DIPSETTING( 0x04, "4" )
619 PORT_DIPSETTING( 0x00, "5" )
620 COINAGE_DSW
621
622 PORT_START /* DSW2 */
623 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
624 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
625 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
626 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
627 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
628 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
629 /* This activates a different coin mode. Look at the dip switch setting schematic */
630 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
631 PORT_DIPSETTING( 0x04, "Mode 1" )
632 PORT_DIPSETTING( 0x00, "Mode 2" )
633 /* In slowmo mode, press 2 to slow game speed */
634 PORT_BITX ( 0x08, 0x08, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Slow Motion Mode", IP_KEY_NONE, IP_JOY_NONE )
635 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
636 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
637 /* In freeze mode, press 2 to stop and 1 to restart */
638 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
639 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
640 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
641 /* In level selection mode, press 1 to select and 2 to restart */
642 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
643 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
644 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
645 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
646 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
647 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
648 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
649 INPUT_PORTS_END
650
651 INPUT_PORTS_START( battroad )
652 PORT_START /* IN0 */
653 IN0_PORT
654
655 PORT_START /* IN1 */
656 IN1_PORT
657
658 PORT_START /* IN2 */
659 IN2_PORT
660
661 PORT_START /* DSW1 */
662 PORT_DIPNAME( 0x03, 0x03, "Fuel Decrease" )
663 PORT_DIPSETTING( 0x03, "Slow" )
664 PORT_DIPSETTING( 0x02, "Medium" )
665 PORT_DIPSETTING( 0x01, "Fast" )
666 PORT_DIPSETTING( 0x00, "Fastest" )
667 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
668 PORT_DIPSETTING( 0x04, "Easy" )
669 PORT_DIPSETTING( 0x00, "Hard" )
670 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
671 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
672 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
673 COINAGE_DSW
674
675 PORT_START /* DSW2 */
676 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
677 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
678 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
679 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
680 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
681 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
682 /* This activates a different coin mode. Look at the dip switch setting schematic */
683 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
684 PORT_DIPSETTING( 0x04, "Mode 1" )
685 PORT_DIPSETTING( 0x00, "Mode 2" )
686 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
687 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
688 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
689 /* In stop mode, press 2 to stop and 1 to restart */
690 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
691 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
692 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
693 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
694 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
695 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
696 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
697 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
698 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
699 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
700 INPUT_PORTS_END
701
702 INPUT_PORTS_START( ldrun )
703 PORT_START /* IN0 */
704 IN0_PORT
705
706 PORT_START /* IN1 */
707 IN1_PORT
708
709 PORT_START /* IN2 */
710 IN2_PORT
711
712 PORT_START /* DSW1 */
713 PORT_DIPNAME( 0x03, 0x03, "Timer" )
714 PORT_DIPSETTING( 0x03, "Slow" )
715 PORT_DIPSETTING( 0x02, "Medium" )
716 PORT_DIPSETTING( 0x01, "Fast" )
717 PORT_DIPSETTING( 0x00, "Fastest" )
718 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
719 PORT_DIPSETTING( 0x08, "2" )
720 PORT_DIPSETTING( 0x0c, "3" )
721 PORT_DIPSETTING( 0x04, "4" )
722 PORT_DIPSETTING( 0x00, "5" )
723 COINAGE_DSW
724
725 PORT_START /* DSW2 */
726 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
727 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
728 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
729 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
730 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
731 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
732 /* This activates a different coin mode. Look at the dip switch setting schematic */
733 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
734 PORT_DIPSETTING( 0x04, "Mode 1" )
735 PORT_DIPSETTING( 0x00, "Mode 2" )
736 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
737 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
738 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
739 /* In stop mode, press 2 to stop and 1 to restart */
740 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
741 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
742 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
743 /* In level selection mode, press 1 to select and 2 to restart */
744 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
745 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
746 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
747 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
748 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
749 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
750 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
751 INPUT_PORTS_END
752
753 INPUT_PORTS_START( ldrun2 )
754 PORT_START /* IN0 */
755 IN0_PORT
756
757 PORT_START /* IN1 */
758 IN1_PORT
759
760 PORT_START /* IN2 */
761 IN2_PORT
762
763 PORT_START /* DSW1 */
764 PORT_DIPNAME( 0x01, 0x01, "Timer" )
765 PORT_DIPSETTING( 0x01, "Slow" )
766 PORT_DIPSETTING( 0x00, "Fast" )
767 PORT_DIPNAME( 0x02, 0x02, "Game Speed" )
768 PORT_DIPSETTING( 0x00, "Low" )
769 PORT_DIPSETTING( 0x02, "High" )
770 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
771 PORT_DIPSETTING( 0x08, "2" )
772 PORT_DIPSETTING( 0x0c, "3" )
773 PORT_DIPSETTING( 0x04, "4" )
774 PORT_DIPSETTING( 0x00, "5" )
775 COINAGE_DSW
776
777 PORT_START /* DSW2 */
778 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
779 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
780 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
781 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
782 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
783 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
784 /* This activates a different coin mode. Look at the dip switch setting schematic */
785 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
786 PORT_DIPSETTING( 0x04, "Mode 1" )
787 PORT_DIPSETTING( 0x00, "Mode 2" )
788 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
789 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
790 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
791 /* In freeze mode, press 2 to stop and 1 to restart */
792 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
793 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
794 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
795 /* In level selection mode, press 1 to select and 2 to restart */
796 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
797 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
798 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
799 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
800 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
801 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
802 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
803 INPUT_PORTS_END
804
805 INPUT_PORTS_START( ldrun3 )
806 PORT_START /* IN0 */
807 IN0_PORT
808
809 PORT_START /* IN1 */
810 IN1_PORT
811
812 PORT_START /* IN2 */
813 IN2_PORT
814
815 PORT_START /* DSW1 */
816 PORT_DIPNAME( 0x01, 0x01, "Timer" )
817 PORT_DIPSETTING( 0x01, "Slow" )
818 PORT_DIPSETTING( 0x00, "Fast" )
819 PORT_DIPNAME( 0x02, 0x02, "Game Speed" )
820 PORT_DIPSETTING( 0x00, "Low" )
821 PORT_DIPSETTING( 0x02, "High" )
822 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
823 PORT_DIPSETTING( 0x08, "2" )
824 PORT_DIPSETTING( 0x0c, "3" )
825 PORT_DIPSETTING( 0x04, "4" )
826 PORT_DIPSETTING( 0x00, "5" )
827 COINAGE_DSW
828
829 PORT_START /* DSW2 */
830 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
831 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
832 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
833 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
834 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
835 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
836 /* This activates a different coin mode. Look at the dip switch setting schematic */
837 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
838 PORT_DIPSETTING( 0x04, "Mode 1" )
839 PORT_DIPSETTING( 0x00, "Mode 2" )
840 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
841 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
842 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
843 /* In stop mode, press 2 to stop and 1 to restart */
844 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
845 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
846 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
847 /* In level selection mode, press 1 to select and 2 to restart */
848 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
849 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
850 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
851 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
852 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
853 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
854 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
855 INPUT_PORTS_END
856
857 INPUT_PORTS_START( ldrun4 )
858 PORT_START /* IN0 */
859 IN0_PORT
860
861 PORT_START /* IN1 */
862 IN1_PORT
863
864 PORT_START /* IN2 */
865 IN2_PORT
866
867 PORT_START /* DSW1 */
868 PORT_DIPNAME( 0x01, 0x01, "Timer" )
869 PORT_DIPSETTING( 0x01, "Slow" )
870 PORT_DIPSETTING( 0x00, "Fast" )
871 PORT_DIPNAME( 0x02, 0x02, "2 Players Game" )
872 PORT_DIPSETTING( 0x00, "1 Credit" )
873 PORT_DIPSETTING( 0x02, "2 Credits" )
874 PORT_DIPNAME( 0x0c, 0x0c, "1 Player Lives" )
875 PORT_DIPSETTING( 0x08, "2" )
876 PORT_DIPSETTING( 0x0c, "3" )
877 PORT_DIPSETTING( 0x04, "4" )
878 PORT_DIPSETTING( 0x00, "5" )
879 COINAGE_DSW
880
881 PORT_START /* DSW2 */
882 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
883 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
884 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
885 PORT_DIPNAME( 0x02, 0x02, "2 Players Lives" )
886 PORT_DIPSETTING( 0x02, "5" )
887 PORT_DIPSETTING( 0x00, "6" )
888 /* This activates a different coin mode. Look at the dip switch setting schematic */
889 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
890 PORT_DIPSETTING( 0x04, "Mode 1" )
891 PORT_DIPSETTING( 0x00, "Mode 2" )
892 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
893 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
894 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
895 PORT_DIPNAME( 0x10, 0x10, "Allow 2 Players Game" )
896 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
897 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
898 /* In level selection mode, press 1 to select and 2 to restart */
899 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
900 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
901 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
902 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
903 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
904 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
905 PORT_BITX( 0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_TOGGLE, "Service Mode (must set 2P game to No)", KEYCODE_F2, IP_JOY_NONE )
906 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
907 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
908 INPUT_PORTS_END
909
910 INPUT_PORTS_START( lotlot )
911 PORT_START /* IN0 */
912 IN0_PORT
913
914 PORT_START /* IN1 */
915 IN1_PORT
916
917 PORT_START /* IN2 */
918 IN2_PORT
919
920 PORT_START /* DSW1 */
921 PORT_DIPNAME( 0x03, 0x03, "Speed" )
922 PORT_DIPSETTING( 0x03, "Very Slow" )
923 PORT_DIPSETTING( 0x02, "Slow" )
924 PORT_DIPSETTING( 0x01, "Fast" )
925 PORT_DIPSETTING( 0x00, "Very Fast" )
926 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
927 PORT_DIPSETTING( 0x08, "1" )
928 PORT_DIPSETTING( 0x04, "2" )
929 PORT_DIPSETTING( 0x0c, "3" )
930 PORT_DIPSETTING( 0x00, "4" )
931 COINAGE2_DSW
932
933 PORT_START /* DSW2 */
934 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
935 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
936 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
937 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
938 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
939 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
940 /* This activates a different coin mode. Look at the dip switch setting schematic */
941 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
942 PORT_DIPSETTING( 0x04, "Mode 1" )
943 PORT_DIPSETTING( 0x00, "Mode 2" )
944 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
945 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
946 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
947 /* In freeze mode, press 2 to stop and 1 to restart */
948 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
949 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
950 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
951 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
952 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
953 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
954 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
955 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
956 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
957 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
958 INPUT_PORTS_END
959
960 INPUT_PORTS_START( kidniki )
961 PORT_START
962 IN0_PORT
963
964 PORT_START
965 IN1_PORT
966
967 PORT_START
968 IN2_PORT
969
970 PORT_START /* DSW1 */
971 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
972 PORT_DIPSETTING( 0x02, "2" )
973 PORT_DIPSETTING( 0x03, "3" )
974 PORT_DIPSETTING( 0x01, "4" )
975 PORT_DIPSETTING( 0x00, "5" )
976 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
977 PORT_DIPSETTING( 0x04, "Normal" )
978 PORT_DIPSETTING( 0x00, "Hard" )
979 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
980 PORT_DIPSETTING( 0x08, "50000" )
981 PORT_DIPSETTING( 0x00, "80000" )
982 COINAGE2_DSW
983
984 PORT_START /* DSW2 */
985 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
986 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
987 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
988 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
989 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
990 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
991 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
992 PORT_DIPSETTING( 0x04, "Mode 1" )
993 PORT_DIPSETTING( 0x00, "Mode 2" )
994 PORT_DIPNAME( 0x08, 0x08, "Game Repeats" )
995 PORT_DIPSETTING( 0x08, DEF_STR( No ) )
996 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
997 PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
998 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
999 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
1000 /* In freeze mode, press 2 to stop and 1 to restart */
1001 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
1002 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1003 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1004 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1005 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1006 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1007 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1008 INPUT_PORTS_END
1009
1010 INPUT_PORTS_START( spelunkr )
1011 PORT_START /* IN0 */
1012 IN0_PORT
1013
1014 PORT_START /* IN1 */
1015 IN1_PORT
1016
1017 PORT_START /* IN2 */
1018 IN2_PORT
1019
1020 PORT_START /* DSW1 */
1021 PORT_DIPNAME( 0x03, 0x03, "Energy Decrease" )
1022 PORT_DIPSETTING( 0x03, "Slow" )
1023 PORT_DIPSETTING( 0x02, "Medium" )
1024 PORT_DIPSETTING( 0x01, "Fast" )
1025 PORT_DIPSETTING( 0x00, "Fastest" )
1026 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1027 PORT_DIPSETTING( 0x08, "2" )
1028 PORT_DIPSETTING( 0x0c, "3" )
1029 PORT_DIPSETTING( 0x04, "4" )
1030 PORT_DIPSETTING( 0x00, "5" )
1031 COINAGE2_DSW
1032
1033 PORT_START /* DSW2 */
1034 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1035 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1036 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1037 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1038 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
1039 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
1040 /* This activates a different coin mode. Look at the dip switch setting schematic */
1041 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1042 PORT_DIPSETTING( 0x04, "Mode 1" )
1043 PORT_DIPSETTING( 0x00, "Mode 2" )
1044 PORT_DIPNAME( 0x08, 0x00, "Allow Continue" )
1045 PORT_DIPSETTING( 0x08, DEF_STR( No ) )
1046 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
1047 /* In teleport mode, keep 1 pressed and press up or down to move the character */
1048 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Teleport", IP_KEY_NONE, IP_JOY_NONE )
1049 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1050 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1051 /* In freeze mode, press 2 to stop and 1 to restart */
1052 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
1053 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1054 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1055 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1056 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1057 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1058 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1059 INPUT_PORTS_END
1060
1061 INPUT_PORTS_START( spelunk2 )
1062 PORT_START /* IN0 */
1063 IN0_PORT
1064
1065 PORT_START /* IN1 */
1066 IN1_PORT
1067
1068 PORT_START /* IN2 */
1069 IN2_PORT
1070
1071 PORT_START /* DSW1 */
1072 PORT_DIPNAME( 0x03, 0x03, "Energy Decrease" )
1073 PORT_DIPSETTING( 0x03, "Slow" )
1074 PORT_DIPSETTING( 0x02, "Medium" )
1075 PORT_DIPSETTING( 0x01, "Fast" )
1076 PORT_DIPSETTING( 0x00, "Fastest" )
1077 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1078 PORT_DIPSETTING( 0x08, "2" )
1079 PORT_DIPSETTING( 0x0c, "3" )
1080 PORT_DIPSETTING( 0x04, "4" )
1081 PORT_DIPSETTING( 0x00, "5" )
1082 COINAGE2_DSW
1083
1084 PORT_START /* DSW2 */
1085 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1086 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1087 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1088 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1089 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
1090 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
1091 /* This activates a different coin mode. Look at the dip switch setting schematic */
1092 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1093 PORT_DIPSETTING( 0x04, "Mode 1" )
1094 PORT_DIPSETTING( 0x00, "Mode 2" )
1095 PORT_DIPNAME( 0x08, 0x08, "Allow Continue" )
1096 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
1097 PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
1098 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1099 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1100 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1101 /* In freeze mode, press 2 to stop and 1 to restart */
1102 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
1103 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1104 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1105 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1106 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1107 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1108 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1109 INPUT_PORTS_END
1110
1111 INPUT_PORTS_START( youjyudn )
1112 PORT_START /* IN0 */
1113 IN0_PORT
1114
1115 PORT_START /* IN1 */
1116 IN1_PORT
1117
1118 PORT_START /* IN2 */
1119 IN2_PORT
1120
1121 PORT_START /* DSW1 */
1122 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1123 PORT_DIPSETTING( 0x02, "2" )
1124 PORT_DIPSETTING( 0x03, "3" )
1125 PORT_DIPSETTING( 0x01, "4" )
1126 PORT_DIPSETTING( 0x00, "5" )
1127 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1128 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1129 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1130 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1131 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1132 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1133 COINAGE2_DSW
1134
1135 PORT_START /* DSW2 */
1136 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1137 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1138 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1139 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1140 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
1141 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
1142 /* This activates a different coin mode. Look at the dip switch setting schematic */
1143 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1144 PORT_DIPSETTING( 0x04, "Mode 1" )
1145 PORT_DIPSETTING( 0x00, "Mode 2" )
1146 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
1147 PORT_DIPSETTING( 0x08, "20000 60000" )
1148 PORT_DIPSETTING( 0x00, "40000 80000" )
1149 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
1150 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1151 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
1152 /* In freeze mode, press 2 to stop and 1 to restart */
1153 PORT_BITX ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
1154 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1155 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1156 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1157 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1158 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1159 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1160 INPUT_PORTS_END
1161
1162 INPUT_PORTS_START( horizon )
1163 PORT_START /* IN0 */
1164 IN0_PORT
1165
1166 PORT_START /* IN1 */
1167 IN1_PORT
1168
1169 PORT_START /* IN2 */
1170 IN2_PORT
1171
1172 PORT_START /* DSW1 */
1173 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1174 PORT_DIPSETTING( 0x00, "2" )
1175 PORT_DIPSETTING( 0x03, "3" )
1176 PORT_DIPSETTING( 0x01, "4" )
1177 PORT_DIPSETTING( 0x02, "5" )
1178 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
1179 PORT_DIPSETTING( 0x00, "100 80000" )
1180 PORT_DIPSETTING( 0x0c, "40000 120000" )
1181 PORT_DIPSETTING( 0x08, "60000 140000" )
1182 PORT_DIPSETTING( 0x04, "80000 160000" )
1183 COINAGE3_DSW
1184
1185 PORT_START /* DSW2 */
1186 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1187 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1188 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1189 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
1190 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
1191 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
1192 /* This activates a different coin mode. Look at the dip switch setting schematic */
1193 PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
1194 PORT_DIPSETTING( 0x04, "Mode 1" )
1195 PORT_DIPSETTING( 0x00, "Mode 2" )
1196 /* In freeze mode, press 2 to stop and 1 to restart */
1197 PORT_BITX ( 0x08, 0x08, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
1198 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1199 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1200 /* In frame advance mode, press 1 then 2 to advance a frame */
1201 PORT_BITX ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Frame Advance", IP_KEY_NONE, IP_JOY_NONE )
1202 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1203 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1204 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1205 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1206 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1207 PORT_BITX( 0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1208 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1209 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1210 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1211 INPUT_PORTS_END
1212
1213
1214 #define TILELAYOUT(NUM) static struct GfxLayout tilelayout_##NUM = \
1215 { \
1216 8,8, /* 8*8 characters */ \
1217 NUM, /* NUM characters */ \
1218 3, /* 3 bits per pixel */ \
1219 { 2*NUM*8*8, NUM*8*8, 0 }, \
1220 { 0, 1, 2, 3, 4, 5, 6, 7 }, \
1221 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, \
1222 8*8 /* every char takes 8 consecutive bytes */ \
1223 }
1224
1225 TILELAYOUT(1024);
1226 TILELAYOUT(2048);
1227 TILELAYOUT(4096);
1228
1229
1230 static struct GfxLayout battroad_charlayout =
1231 {
1232 8,8, /* 8*8 characters */
1233 1024, /* number of characters */
1234 2, /* 2 bits per pixel */
1235 { 0, 1024*8*8 },
1236 { 0, 1, 2, 3, 4, 5, 6, 7 },
1237 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1238 8*8 /* every char takes 8 consecutive bytes */
1239 };
1240
1241 static struct GfxLayout lotlot_charlayout =
1242 {
1243 12,10, /* character size */
1244 256, /* number of characters */
1245 3, /* bits per pixel */
1246 { 0, 256*32*8, 2*256*32*8 },
1247 { 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 },
1248 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 },
1249 32*8 /* every char takes 32 consecutive bytes */
1250 };
1251
1252 static struct GfxLayout kidniki_charlayout =
1253 {
1254 12,8, /* character size */
1255 1024, /* number of characters */
1256 3, /* bits per pixel */
1257 { 0, 0x4000*8, 2*0x4000*8 },
1258 { 0, 1, 2, 3, 64+0,64+1,64+2,64+3,64+4,64+5,64+6,64+7 },
1259 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1260 16*8 /* every char takes 16 consecutive bytes */
1261 };
1262
1263 static struct GfxLayout spelunk2_charlayout =
1264 {
1265 12,8, /* character size */
1266 512, /* number of characters */
1267 3, /* bits per pixel */
1268 { 0, 0x4000*8, 2*0x4000*8 },
1269 {
1270 0,1,2,3,
1271 0x2000*8+0,0x2000*8+1,0x2000*8+2,0x2000*8+3,
1272 0x2000*8+4,0x2000*8+5,0x2000*8+6,0x2000*8+7
1273 },
1274 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1275 8*8 /* every char takes 8 consecutive bytes */
1276 };
1277
1278 static struct GfxLayout youjyudn_tilelayout =
1279 {
1280 8,16,
1281 RGN_FRAC(1,3),
1282 3,
1283 { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) },
1284 { 0, 1, 2, 3, 4, 5, 6, 7 },
1285 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1286 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
1287 16*8
1288 };
1289
1290 static struct GfxLayout spritelayout =
1291 {
1292 16,16,
1293 RGN_FRAC(1,3),
1294 3,
1295 { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) },
1296 { 0, 1, 2, 3, 4, 5, 6, 7,
1297 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
1298 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1299 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
1300 32*8
1301 };
1302
1303 static struct GfxDecodeInfo kungfum_gfxdecodeinfo[] =
1304 {
1305 { REGION_GFX1, 0, &tilelayout_1024, 0, 32 }, /* use colors 0-255 */
1306 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1307 { -1 } /* end of array */
1308 };
1309
1310 static struct GfxDecodeInfo battroad_gfxdecodeinfo[] =
1311 {
1312 { REGION_GFX1, 0, &tilelayout_1024, 0, 32 }, /* use colors 0-255 */
1313 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1314 { REGION_GFX3, 0, &battroad_charlayout, 512, 32 }, /* use colors 512-543 */
1315 { -1 } /* end of array */
1316 };
1317
1318 static struct GfxDecodeInfo ldrun3_gfxdecodeinfo[] =
1319 {
1320 { REGION_GFX1, 0, &tilelayout_2048, 0, 32 }, /* use colors 0-255 */
1321 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1322 { -1 } /* end of array */
1323 };
1324
1325 static struct GfxDecodeInfo lotlot_gfxdecodeinfo[] =
1326 {
1327 { REGION_GFX1, 0, &lotlot_charlayout, 0, 32 }, /* use colors 0-255 */
1328 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1329 { REGION_GFX3, 0, &lotlot_charlayout, 512, 32 }, /* use colors 512-767 */
1330 { -1 } /* end of array */
1331 };
1332
1333 static struct GfxDecodeInfo kidniki_gfxdecodeinfo[] =
1334 {
1335 { REGION_GFX1, 0, &tilelayout_4096, 0, 32 }, /* use colors 0-255 */
1336 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1337 { REGION_GFX3, 0, &kidniki_charlayout, 0, 32 }, /* use colors 0-255 */
1338 { -1 } /* end of array */
1339 };
1340
1341 static struct GfxDecodeInfo spelunkr_gfxdecodeinfo[] =
1342 {
1343 { REGION_GFX1, 0, &tilelayout_4096, 0, 32 }, /* use colors 0-255 */
1344 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1345 { REGION_GFX3, 0, &spelunk2_charlayout, 0, 32 }, /* use colors 0-255 */
1346 { -1 } /* end of array */
1347 };
1348
1349 static struct GfxDecodeInfo spelunk2_gfxdecodeinfo[] =
1350 {
1351 { REGION_GFX1, 0, &tilelayout_4096, 0, 64 }, /* use colors 0-511 */
1352 { REGION_GFX2, 0, &spritelayout, 512, 32 }, /* use colors 512-767 */
1353 { REGION_GFX3, 0, &spelunk2_charlayout, 0, 64 }, /* use colors 0-511 */
1354 { -1 } /* end of array */
1355 };
1356
1357 static struct GfxDecodeInfo youjyudn_gfxdecodeinfo[] =
1358 {
1359 { REGION_GFX1, 0, &youjyudn_tilelayout, 0, 32 }, /* use colors 0-255 */
1360 { REGION_GFX2, 0, &spritelayout, 256, 32 }, /* use colors 256-511 */
1361 { REGION_GFX3, 0, &kidniki_charlayout, 128, 16 }, /* use colors 128-255 */
1362 { -1 } /* end of array */
1363 };
1364
1365
1366
1367
1368 static MACHINE_DRIVER_START( ldrun )
1369
1370 /* basic machine hardware */
1371 MDRV_CPU_ADD_TAG("main", Z80, 24000000/6)
MDRV_CPU_MEMORY(ldrun_readmem,ldrun_writemem)1372 MDRV_CPU_MEMORY(ldrun_readmem,ldrun_writemem)
1373 MDRV_CPU_PORTS(kungfum_readport,kungfum_writeport)
1374 MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
1375
1376 MDRV_FRAMES_PER_SECOND(55)
1377 MDRV_VBLANK_DURATION(1790) /* frames per second and vblank duration from the Lode Runner manual */
1378
1379 /* video hardware */
1380 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1381 MDRV_SCREEN_SIZE(64*8, 32*8)
1382 MDRV_VISIBLE_AREA((64*8-384)/2, 64*8-(64*8-384)/2-1, 0*8, 32*8-1)
1383 MDRV_GFXDECODE(kungfum_gfxdecodeinfo)
1384 MDRV_PALETTE_LENGTH(512)
1385
1386 MDRV_PALETTE_INIT(irem)
1387 MDRV_VIDEO_START(ldrun)
1388 MDRV_VIDEO_UPDATE(ldrun)
1389
1390 /* sound hardware */
1391 MDRV_IMPORT_FROM(irem_audio)
1392 MACHINE_DRIVER_END
1393
1394
1395 static MACHINE_DRIVER_START( kungfum )
1396
1397 /* basic machine hardware */
1398 MDRV_IMPORT_FROM(ldrun)
1399 MDRV_CPU_REPLACE("main", Z80, 18432000/6)
1400 MDRV_CPU_MEMORY(kungfum_readmem,kungfum_writemem)
1401 MDRV_CPU_PORTS(kungfum_readport,kungfum_writeport)
1402
1403 /* video hardware */
1404 MDRV_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1405
1406 MDRV_VIDEO_START(kungfum)
1407 MDRV_VIDEO_UPDATE(kungfum)
1408 MACHINE_DRIVER_END
1409
1410
1411 static MACHINE_DRIVER_START( battroad )
1412
1413 /* basic machine hardware */
1414 MDRV_IMPORT_FROM(ldrun)
1415 MDRV_CPU_REPLACE("main", Z80, 18432000/6)
1416 MDRV_CPU_MEMORY(battroad_readmem,battroad_writemem)
1417 MDRV_CPU_PORTS(kungfum_readport,battroad_writeport)
1418
1419 /* video hardware */
1420 MDRV_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1421 MDRV_GFXDECODE(battroad_gfxdecodeinfo)
1422 MDRV_PALETTE_LENGTH(544)
1423
1424 MDRV_PALETTE_INIT(battroad)
1425 MDRV_VIDEO_START(battroad)
1426 MDRV_VIDEO_UPDATE(battroad)
1427 MACHINE_DRIVER_END
1428
1429
1430 static MACHINE_DRIVER_START( ldrun2 )
1431
1432 /* basic machine hardware */
1433 MDRV_IMPORT_FROM(ldrun)
1434 MDRV_CPU_MODIFY("main")
1435 MDRV_CPU_MEMORY(ldrun2_readmem,ldrun2_writemem)
1436 MDRV_CPU_PORTS(ldrun2_readport,ldrun2_writeport)
1437 MACHINE_DRIVER_END
1438
1439
1440 static MACHINE_DRIVER_START( ldrun3 )
1441
1442 /* basic machine hardware */
1443 MDRV_IMPORT_FROM(ldrun)
1444 MDRV_CPU_MODIFY("main")
1445 MDRV_CPU_MEMORY(ldrun3_readmem,ldrun3_writemem)
1446 MDRV_CPU_PORTS(kungfum_readport,ldrun3_writeport)
1447
1448 /* video hardware */
1449 MDRV_GFXDECODE(ldrun3_gfxdecodeinfo)
1450 MACHINE_DRIVER_END
1451
1452
1453 static MACHINE_DRIVER_START( ldrun4 )
1454
1455 /* basic machine hardware */
1456 MDRV_IMPORT_FROM(ldrun)
1457 MDRV_CPU_MODIFY("main")
1458 MDRV_CPU_MEMORY(ldrun4_readmem,ldrun4_writemem)
1459 MDRV_CPU_PORTS(kungfum_readport,ldrun4_writeport)
1460
1461 /* video hardware */
1462 MDRV_GFXDECODE(ldrun3_gfxdecodeinfo)
1463 MDRV_VIDEO_START(ldrun4)
1464 MDRV_VIDEO_UPDATE(ldrun4)
1465 MACHINE_DRIVER_END
1466
1467
1468 static MACHINE_DRIVER_START( lotlot )
1469
1470 /* basic machine hardware */
1471 MDRV_IMPORT_FROM(ldrun)
1472 MDRV_CPU_MODIFY("main")
1473 MDRV_CPU_MEMORY(lotlot_readmem,lotlot_writemem)
1474
1475 /* video hardware */
1476 MDRV_GFXDECODE(lotlot_gfxdecodeinfo)
1477 MDRV_PALETTE_LENGTH(768)
1478
1479 MDRV_VIDEO_START(lotlot)
1480 MDRV_VIDEO_UPDATE(lotlot)
1481 MACHINE_DRIVER_END
1482
1483
1484 static MACHINE_DRIVER_START( kidniki )
1485
1486 /* basic machine hardware */
1487 MDRV_IMPORT_FROM(ldrun)
1488 MDRV_CPU_MODIFY("main")
1489 MDRV_CPU_MEMORY(kidniki_readmem,kidniki_writemem)
1490 MDRV_CPU_PORTS(kungfum_readport,kidniki_writeport)
1491
1492 /* video hardware */
1493 MDRV_GFXDECODE(kidniki_gfxdecodeinfo)
1494
1495 MDRV_VIDEO_START(kidniki)
1496 MDRV_VIDEO_UPDATE(kidniki)
1497 MACHINE_DRIVER_END
1498
1499
1500 static MACHINE_DRIVER_START( spelunkr )
1501
1502 /* basic machine hardware */
1503 MDRV_IMPORT_FROM(ldrun)
1504 MDRV_CPU_MODIFY("main")
1505 MDRV_CPU_MEMORY(spelunkr_readmem,spelunkr_writemem)
1506
1507 /* video hardware */
1508 MDRV_GFXDECODE(spelunkr_gfxdecodeinfo)
1509
1510 MDRV_VIDEO_START(spelunkr)
1511 MDRV_VIDEO_UPDATE(spelunkr)
1512 MACHINE_DRIVER_END
1513
1514
1515 static MACHINE_DRIVER_START( spelunk2 )
1516
1517 /* basic machine hardware */
1518 MDRV_IMPORT_FROM(ldrun)
1519 MDRV_CPU_MODIFY("main")
1520 MDRV_CPU_MEMORY(spelunk2_readmem,spelunk2_writemem)
1521
1522 /* video hardware */
1523 MDRV_GFXDECODE(spelunk2_gfxdecodeinfo)
1524 MDRV_PALETTE_LENGTH(768)
1525
1526 MDRV_PALETTE_INIT(spelunk2)
1527 MDRV_VIDEO_START(spelunk2)
1528 MDRV_VIDEO_UPDATE(spelunk2)
1529 MACHINE_DRIVER_END
1530
1531
1532 static MACHINE_DRIVER_START( youjyudn )
1533
1534 /* basic machine hardware */
1535 MDRV_IMPORT_FROM(ldrun)
1536 MDRV_CPU_REPLACE("main", Z80, 18432000/6)
1537 MDRV_CPU_MEMORY(youjyudn_readmem,youjyudn_writemem)
1538 MDRV_CPU_PORTS(kungfum_readport,youjyudn_writeport)
1539
1540 /* video hardware */
1541 MDRV_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1542 MDRV_GFXDECODE(youjyudn_gfxdecodeinfo)
1543
1544 MDRV_VIDEO_START(youjyudn)
1545 MDRV_VIDEO_UPDATE(youjyudn)
1546 MACHINE_DRIVER_END
1547
1548
1549 static MACHINE_DRIVER_START( horizon )
1550
1551 /* basic machine hardware */
1552 MDRV_IMPORT_FROM(ldrun)
1553 MDRV_CPU_MODIFY("main")
1554 MDRV_CPU_MEMORY(horizon_readmem,horizon_writemem)
1555
1556 /* video hardware */
1557 MDRV_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1558
1559 MDRV_VIDEO_START(horizon)
1560 MDRV_VIDEO_UPDATE(horizon)
1561 MACHINE_DRIVER_END
1562
1563
1564 /***************************************************************************
1565
1566 Game driver(s)
1567
1568 ***************************************************************************/
1569
1570 ROM_START( kungfum )
1571 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1572 ROM_LOAD( "a-4e-c.bin", 0x0000, 0x4000, CRC(b6e2d083) SHA1(17e2cfe2b9d6121239803aba7132918e54ae02bf) )
1573 ROM_LOAD( "a-4d-c.bin", 0x4000, 0x4000, CRC(7532918e) SHA1(9d513d5a3b99cc54c4491371cd44af048ef0fb33) )
1574
1575 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1576 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
1577 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
1578 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
1579
1580 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
1581 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, CRC(6b2cc9c8) SHA1(ba7c902d08c21a1e33f450406bfbfa35abde3b3f) ) /* characters */
1582 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, CRC(c648f558) SHA1(7cc085d8dc4a770d2828e39859b7b18e80148a00) )
1583 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, CRC(fbe9276e) SHA1(84181c8da79e2c92af04aef3ab5d23f70969dad8) )
1584
1585 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
1586 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, CRC(16fb5150) SHA1(a49faf617f948d3ccec2bc6ef97bd399f0958f65) ) /* sprites */
1587 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, CRC(67745a33) SHA1(fcc642fb1b932676c84c1a0901b989673c57c0e5) )
1588 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, CRC(bd1c2261) SHA1(7155789a01801a9e1a55d4e68c94a3a3ee7d1b2e) )
1589 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, CRC(8ac5ed3a) SHA1(9c88e8c82420428b43923cdee7eb4504882bec69) )
1590 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, CRC(28a213aa) SHA1(0d6d668490bdf4394bc9fed2f3cdc72f2fea46f9) )
1591 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, CRC(d5228df3) SHA1(836c4f95f873fbf07f9bec63a72c20a14651117c) )
1592 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, CRC(b16de4f2) SHA1(512260e76c9cd21b8add771de53fbd27c2719213) )
1593 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, CRC(eba0d66b) SHA1(028f82fc1853b86a3201b24871f41091c3e0b542) )
1594 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, CRC(01298885) SHA1(d4edf5fe707c5b7231ba72b731b96120064a7ecd) )
1595 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, CRC(c77b87d4) SHA1(c0f66f0130f6a290a58a3d77bba1d06f16016901) )
1596 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, CRC(6a70615f) SHA1(f4683dc0a566567e95e85268612bcf0e6297d955) )
1597 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, CRC(6189d626) SHA1(ce8e5e95c2684c685481e9c8d921380b20ac0460) )
1598
1599 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1600 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, CRC(668e6bca) SHA1(cd5262b1310821ba7b12873e4db35f081d6b9df4) ) /* character palette red component */
1601 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, CRC(76c05a9c) SHA1(1f46f436a17f8c883bdd6d9804b828a81a76f880) ) /* sprite palette red component */
1602 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, CRC(964b6495) SHA1(76f30a65a0ded14babad2006221aa40621fb7ea1) ) /* character palette green component */
1603 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, CRC(23f06b99) SHA1(6b3d6349f019aeab33838ae392bc3f3f89906326) ) /* sprite palette green component */
1604 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, CRC(550563e1) SHA1(11edb45acba8b28a462c49956ebb1ba0a8b2ff26) ) /* character palette blue component */
1605 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, CRC(35e45021) SHA1(511b94507f41b377f38184ed9a85f34949b28d26) ) /* sprite palette blue component */
1606 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, CRC(7a601c3d) SHA1(5c5cdf51b2c9fdb2b05402d9c260208ae73fe245) ) /* sprite height, one entry per 32 */
1607 /* sprites. Used at run time! */
1608 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as battroad */
1609 ROM_END
1610
1611 ROM_START( kungfud )
1612 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1613 ROM_LOAD( "a-4e-d", 0x0000, 0x4000, CRC(fc330a46) SHA1(50edbd6131310afa17d476e278a7098ab1cfae73) )
1614 ROM_LOAD( "a-4d-d", 0x4000, 0x4000, CRC(1b2fd32f) SHA1(34487dacf2ec9fbf55148953a9f248fae9442568) )
1615
1616 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1617 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
1618 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
1619 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
1620
1621 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
1622 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, CRC(6b2cc9c8) SHA1(ba7c902d08c21a1e33f450406bfbfa35abde3b3f) ) /* characters */
1623 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, CRC(c648f558) SHA1(7cc085d8dc4a770d2828e39859b7b18e80148a00) )
1624 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, CRC(fbe9276e) SHA1(84181c8da79e2c92af04aef3ab5d23f70969dad8) )
1625
1626 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
1627 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, CRC(16fb5150) SHA1(a49faf617f948d3ccec2bc6ef97bd399f0958f65) ) /* sprites */
1628 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, CRC(67745a33) SHA1(fcc642fb1b932676c84c1a0901b989673c57c0e5) )
1629 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, CRC(bd1c2261) SHA1(7155789a01801a9e1a55d4e68c94a3a3ee7d1b2e) )
1630 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, CRC(8ac5ed3a) SHA1(9c88e8c82420428b43923cdee7eb4504882bec69) )
1631 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, CRC(28a213aa) SHA1(0d6d668490bdf4394bc9fed2f3cdc72f2fea46f9) )
1632 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, CRC(d5228df3) SHA1(836c4f95f873fbf07f9bec63a72c20a14651117c) )
1633 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, CRC(b16de4f2) SHA1(512260e76c9cd21b8add771de53fbd27c2719213) )
1634 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, CRC(eba0d66b) SHA1(028f82fc1853b86a3201b24871f41091c3e0b542) )
1635 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, CRC(01298885) SHA1(d4edf5fe707c5b7231ba72b731b96120064a7ecd) )
1636 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, CRC(c77b87d4) SHA1(c0f66f0130f6a290a58a3d77bba1d06f16016901) )
1637 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, CRC(6a70615f) SHA1(f4683dc0a566567e95e85268612bcf0e6297d955) )
1638 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, CRC(6189d626) SHA1(ce8e5e95c2684c685481e9c8d921380b20ac0460) )
1639
1640 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1641 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, CRC(668e6bca) SHA1(cd5262b1310821ba7b12873e4db35f081d6b9df4) ) /* character palette red component */
1642 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, CRC(76c05a9c) SHA1(1f46f436a17f8c883bdd6d9804b828a81a76f880) ) /* sprite palette red component */
1643 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, CRC(964b6495) SHA1(76f30a65a0ded14babad2006221aa40621fb7ea1) ) /* character palette green component */
1644 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, CRC(23f06b99) SHA1(6b3d6349f019aeab33838ae392bc3f3f89906326) ) /* sprite palette green component */
1645 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, CRC(550563e1) SHA1(11edb45acba8b28a462c49956ebb1ba0a8b2ff26) ) /* character palette blue component */
1646 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, CRC(35e45021) SHA1(511b94507f41b377f38184ed9a85f34949b28d26) ) /* sprite palette blue component */
1647 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, CRC(7a601c3d) SHA1(5c5cdf51b2c9fdb2b05402d9c260208ae73fe245) ) /* sprite height, one entry per 32 */
1648 /* sprites. Used at run time! */
1649 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as battroad */
1650 ROM_END
1651
1652 ROM_START( spartanx )
1653 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1654 ROM_LOAD( "a-4e-c-j.bin", 0x0000, 0x4000, CRC(32a0a9a6) SHA1(fbb601a4c98a131013ea49a6877f2cd8139434fa) )
1655 ROM_LOAD( "a-4d-c-j.bin", 0x4000, 0x4000, CRC(3173ea78) SHA1(cb6102abf9cf8df531f6e808b59e076831456ff5) )
1656
1657 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1658 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
1659 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
1660 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
1661
1662 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
1663 ROM_LOAD( "g-4c-a-j.bin", 0x00000, 0x2000, CRC(8af9c5a6) SHA1(3375ad92f230ea85d6db16ccfa8fec0832e8cc26) ) /* characters */
1664 ROM_LOAD( "g-4d-a-j.bin", 0x02000, 0x2000, CRC(b8300c72) SHA1(806be9da8a164d5f6a4cbd82deacb3fbd0032423) )
1665 ROM_LOAD( "g-4e-a-j.bin", 0x04000, 0x2000, CRC(b50429cd) SHA1(6fdaed316ec94fc5ccb560ed65c714151f8ee5fe) )
1666
1667 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
1668 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, CRC(16fb5150) SHA1(a49faf617f948d3ccec2bc6ef97bd399f0958f65) ) /* sprites */
1669 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, CRC(67745a33) SHA1(fcc642fb1b932676c84c1a0901b989673c57c0e5) )
1670 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, CRC(bd1c2261) SHA1(7155789a01801a9e1a55d4e68c94a3a3ee7d1b2e) )
1671 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, CRC(8ac5ed3a) SHA1(9c88e8c82420428b43923cdee7eb4504882bec69) )
1672 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, CRC(28a213aa) SHA1(0d6d668490bdf4394bc9fed2f3cdc72f2fea46f9) )
1673 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, CRC(d5228df3) SHA1(836c4f95f873fbf07f9bec63a72c20a14651117c) )
1674 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, CRC(b16de4f2) SHA1(512260e76c9cd21b8add771de53fbd27c2719213) )
1675 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, CRC(eba0d66b) SHA1(028f82fc1853b86a3201b24871f41091c3e0b542) )
1676 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, CRC(01298885) SHA1(d4edf5fe707c5b7231ba72b731b96120064a7ecd) )
1677 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, CRC(c77b87d4) SHA1(c0f66f0130f6a290a58a3d77bba1d06f16016901) )
1678 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, CRC(6a70615f) SHA1(f4683dc0a566567e95e85268612bcf0e6297d955) )
1679 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, CRC(6189d626) SHA1(ce8e5e95c2684c685481e9c8d921380b20ac0460) )
1680
1681 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1682 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, CRC(668e6bca) SHA1(cd5262b1310821ba7b12873e4db35f081d6b9df4) ) /* character palette red component */
1683 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, CRC(76c05a9c) SHA1(1f46f436a17f8c883bdd6d9804b828a81a76f880) ) /* sprite palette red component */
1684 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, CRC(964b6495) SHA1(76f30a65a0ded14babad2006221aa40621fb7ea1) ) /* character palette green component */
1685 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, CRC(23f06b99) SHA1(6b3d6349f019aeab33838ae392bc3f3f89906326) ) /* sprite palette green component */
1686 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, CRC(550563e1) SHA1(11edb45acba8b28a462c49956ebb1ba0a8b2ff26) ) /* character palette blue component */
1687 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, CRC(35e45021) SHA1(511b94507f41b377f38184ed9a85f34949b28d26) ) /* sprite palette blue component */
1688 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, CRC(7a601c3d) SHA1(5c5cdf51b2c9fdb2b05402d9c260208ae73fe245) ) /* sprite height, one entry per 32 */
1689 /* sprites. Used at run time! */
1690 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as battroad */
1691 ROM_END
1692
1693 ROM_START( kungfub )
1694 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1695 ROM_LOAD( "c5.5h", 0x0000, 0x4000, CRC(5d8e791d) SHA1(90cd911f715a50a90427abd89b38272a6df08d69) )
1696 ROM_LOAD( "c4.5k", 0x4000, 0x4000, CRC(4000e2b8) SHA1(719b0aa1fd0cbe671178ac728d76d439bd7932d9) )
1697
1698 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1699 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
1700 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
1701 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
1702
1703 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
1704 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, CRC(6b2cc9c8) SHA1(ba7c902d08c21a1e33f450406bfbfa35abde3b3f) ) /* characters */
1705 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, CRC(c648f558) SHA1(7cc085d8dc4a770d2828e39859b7b18e80148a00) )
1706 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, CRC(fbe9276e) SHA1(84181c8da79e2c92af04aef3ab5d23f70969dad8) )
1707
1708 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
1709 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, CRC(16fb5150) SHA1(a49faf617f948d3ccec2bc6ef97bd399f0958f65) ) /* sprites */
1710 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, CRC(67745a33) SHA1(fcc642fb1b932676c84c1a0901b989673c57c0e5) )
1711 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, CRC(bd1c2261) SHA1(7155789a01801a9e1a55d4e68c94a3a3ee7d1b2e) )
1712 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, CRC(8ac5ed3a) SHA1(9c88e8c82420428b43923cdee7eb4504882bec69) )
1713 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, CRC(28a213aa) SHA1(0d6d668490bdf4394bc9fed2f3cdc72f2fea46f9) )
1714 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, CRC(d5228df3) SHA1(836c4f95f873fbf07f9bec63a72c20a14651117c) )
1715 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, CRC(b16de4f2) SHA1(512260e76c9cd21b8add771de53fbd27c2719213) )
1716 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, CRC(eba0d66b) SHA1(028f82fc1853b86a3201b24871f41091c3e0b542) )
1717 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, CRC(01298885) SHA1(d4edf5fe707c5b7231ba72b731b96120064a7ecd) )
1718 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, CRC(c77b87d4) SHA1(c0f66f0130f6a290a58a3d77bba1d06f16016901) )
1719 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, CRC(6a70615f) SHA1(f4683dc0a566567e95e85268612bcf0e6297d955) )
1720 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, CRC(6189d626) SHA1(ce8e5e95c2684c685481e9c8d921380b20ac0460) )
1721
1722 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1723 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, CRC(668e6bca) SHA1(cd5262b1310821ba7b12873e4db35f081d6b9df4) ) /* character palette red component */
1724 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, CRC(76c05a9c) SHA1(1f46f436a17f8c883bdd6d9804b828a81a76f880) ) /* sprite palette red component */
1725 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, CRC(964b6495) SHA1(76f30a65a0ded14babad2006221aa40621fb7ea1) ) /* character palette green component */
1726 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, CRC(23f06b99) SHA1(6b3d6349f019aeab33838ae392bc3f3f89906326) ) /* sprite palette green component */
1727 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, CRC(550563e1) SHA1(11edb45acba8b28a462c49956ebb1ba0a8b2ff26) ) /* character palette blue component */
1728 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, CRC(35e45021) SHA1(511b94507f41b377f38184ed9a85f34949b28d26) ) /* sprite palette blue component */
1729 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, CRC(7a601c3d) SHA1(5c5cdf51b2c9fdb2b05402d9c260208ae73fe245) ) /* sprite height, one entry per 32 */
1730 /* sprites. Used at run time! */
1731 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as battroad */
1732 ROM_END
1733
1734 ROM_START( kungfub2 )
1735 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1736 ROM_LOAD( "kf4", 0x0000, 0x4000, CRC(3f65313f) SHA1(bd584896f558440a0f7bf8e1ca49bf478fe77553) )
1737 ROM_LOAD( "kf5", 0x4000, 0x4000, CRC(9ea325f3) SHA1(7c35128a3e70e5994a5e17db656dec1a53c1fe67) )
1738
1739 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1740 ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
1741 ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
1742 ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
1743
1744 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
1745 ROM_LOAD( "g-4c-a.bin", 0x00000, 0x2000, CRC(6b2cc9c8) SHA1(ba7c902d08c21a1e33f450406bfbfa35abde3b3f) ) /* characters */
1746 ROM_LOAD( "g-4d-a.bin", 0x02000, 0x2000, CRC(c648f558) SHA1(7cc085d8dc4a770d2828e39859b7b18e80148a00) )
1747 ROM_LOAD( "g-4e-a.bin", 0x04000, 0x2000, CRC(fbe9276e) SHA1(84181c8da79e2c92af04aef3ab5d23f70969dad8) )
1748
1749 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
1750 ROM_LOAD( "b-4k-.bin", 0x00000, 0x2000, CRC(16fb5150) SHA1(a49faf617f948d3ccec2bc6ef97bd399f0958f65) ) /* sprites */
1751 ROM_LOAD( "b-4f-.bin", 0x02000, 0x2000, CRC(67745a33) SHA1(fcc642fb1b932676c84c1a0901b989673c57c0e5) )
1752 ROM_LOAD( "b-4l-.bin", 0x04000, 0x2000, CRC(bd1c2261) SHA1(7155789a01801a9e1a55d4e68c94a3a3ee7d1b2e) )
1753 ROM_LOAD( "b-4h-.bin", 0x06000, 0x2000, CRC(8ac5ed3a) SHA1(9c88e8c82420428b43923cdee7eb4504882bec69) )
1754 ROM_LOAD( "b-3n-.bin", 0x08000, 0x2000, CRC(28a213aa) SHA1(0d6d668490bdf4394bc9fed2f3cdc72f2fea46f9) )
1755 ROM_LOAD( "b-4n-.bin", 0x0a000, 0x2000, CRC(d5228df3) SHA1(836c4f95f873fbf07f9bec63a72c20a14651117c) )
1756 ROM_LOAD( "b-4m-.bin", 0x0c000, 0x2000, CRC(b16de4f2) SHA1(512260e76c9cd21b8add771de53fbd27c2719213) )
1757 ROM_LOAD( "b-3m-.bin", 0x0e000, 0x2000, CRC(eba0d66b) SHA1(028f82fc1853b86a3201b24871f41091c3e0b542) )
1758 ROM_LOAD( "b-4c-.bin", 0x10000, 0x2000, CRC(01298885) SHA1(d4edf5fe707c5b7231ba72b731b96120064a7ecd) )
1759 ROM_LOAD( "b-4e-.bin", 0x12000, 0x2000, CRC(c77b87d4) SHA1(c0f66f0130f6a290a58a3d77bba1d06f16016901) )
1760 ROM_LOAD( "b-4d-.bin", 0x14000, 0x2000, CRC(6a70615f) SHA1(f4683dc0a566567e95e85268612bcf0e6297d955) )
1761 ROM_LOAD( "b-4a-.bin", 0x16000, 0x2000, CRC(6189d626) SHA1(ce8e5e95c2684c685481e9c8d921380b20ac0460) )
1762
1763 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1764 ROM_LOAD( "g-1j-.bin", 0x0000, 0x0100, CRC(668e6bca) SHA1(cd5262b1310821ba7b12873e4db35f081d6b9df4) ) /* character palette red component */
1765 ROM_LOAD( "b-1m-.bin", 0x0100, 0x0100, CRC(76c05a9c) SHA1(1f46f436a17f8c883bdd6d9804b828a81a76f880) ) /* sprite palette red component */
1766 ROM_LOAD( "g-1f-.bin", 0x0200, 0x0100, CRC(964b6495) SHA1(76f30a65a0ded14babad2006221aa40621fb7ea1) ) /* character palette green component */
1767 ROM_LOAD( "b-1n-.bin", 0x0300, 0x0100, CRC(23f06b99) SHA1(6b3d6349f019aeab33838ae392bc3f3f89906326) ) /* sprite palette green component */
1768 ROM_LOAD( "g-1h-.bin", 0x0400, 0x0100, CRC(550563e1) SHA1(11edb45acba8b28a462c49956ebb1ba0a8b2ff26) ) /* character palette blue component */
1769 ROM_LOAD( "b-1l-.bin", 0x0500, 0x0100, CRC(35e45021) SHA1(511b94507f41b377f38184ed9a85f34949b28d26) ) /* sprite palette blue component */
1770 ROM_LOAD( "b-5f-.bin", 0x0600, 0x0020, CRC(7a601c3d) SHA1(5c5cdf51b2c9fdb2b05402d9c260208ae73fe245) ) /* sprite height, one entry per 32 */
1771 /* sprites. Used at run time! */
1772 ROM_LOAD( "b-6f-.bin", 0x0620, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as battroad */
1773 ROM_END
1774
1775 ROM_START( battroad )
1776 ROM_REGION( 0x1e000, REGION_CPU1, 0 ) /* 64k for code */
1777 ROM_LOAD( "br-a-4e.b", 0x00000, 0x2000, CRC(9bf14768) SHA1(53169553b956e5bcbd3fae13b86ab859cd08c955) )
1778 ROM_LOAD( "br-a-4d.b", 0x02000, 0x2000, CRC(39ca1627) SHA1(bbeb59ad93b4eb874dc3c1eebfc1136c0c5112c8) )
1779 ROM_LOAD( "br-a-4b.b", 0x04000, 0x2000, CRC(1865bb22) SHA1(990cfffc4fc0ade8bb4ebd02d107f8657728f976) )
1780 ROM_LOAD( "br-a-4a", 0x06000, 0x2000, CRC(65b61c21) SHA1(a440eb22a5824621ec7452c058de1329dbd5f168) )
1781 ROM_LOAD( "br-c-7c", 0x10000, 0x2000, CRC(2e1eca52) SHA1(d938bef795436232a6f58cba77b5f9004b254873) ) /* banked at a000-bfff */
1782 ROM_LOAD( "br-c-7l", 0x12000, 0x2000, CRC(f2178578) SHA1(2ddf867cb5bd372ceda58e794e417f34a9cbf1d5) )
1783 ROM_LOAD( "br-c-7d", 0x14000, 0x2000, CRC(3aa9fa30) SHA1(b7d943250bde9ec9ef8d51164652fc3ffee7e9ff) )
1784 ROM_LOAD( "br-c-7b", 0x16000, 0x2000, CRC(0b31b90b) SHA1(498d0deef7fa53600a821e64cf913d239659f784) )
1785 ROM_LOAD( "br-c-7a", 0x18000, 0x2000, CRC(ec3b0080) SHA1(83dc0d0c4ecf2ff62cfb213c02a3869c6f72f2e9) )
1786 ROM_LOAD( "br-c-7k", 0x1c000, 0x2000, CRC(edc75f7f) SHA1(3650521874c85a7cf403ede2588b989ac93fb92e) )
1787
1788 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1789 ROM_LOAD( "br-a-3e", 0xa000, 0x2000, CRC(a7140871) SHA1(bf993e8ed776974ae59e1995eb5d3055c632eda7) )
1790 ROM_LOAD( "br-a-3f", 0xc000, 0x2000, CRC(1bb51b30) SHA1(c8e99d79e2fdb6b02c57cba475be0e5e35359124) )
1791 ROM_LOAD( "br-a-3h", 0xe000, 0x2000, CRC(afb3e083) SHA1(b1aaca64bbcce73203e55d2f16be3f3cef46f39b) )
1792
1793 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
1794 ROM_LOAD( "br-c-6h", 0x00000, 0x2000, CRC(ca50841c) SHA1(5cf159eb282d819f772331c1840a30d92732cf6e) ) /* tiles */
1795 ROM_LOAD( "br-c-6n", 0x02000, 0x2000, CRC(7d53163a) SHA1(0bdb470a29aaeb71ef4ec180dc9158f0753d3a3a) )
1796 ROM_LOAD( "br-c-6k", 0x04000, 0x2000, CRC(5951e12a) SHA1(bb5739678f1c1ea228443c7e300b098f6bcb8ba0) )
1797
1798 ROM_REGION( 0x0c000, REGION_GFX2, ROMREGION_DISPOSE )
1799 ROM_LOAD( "br-b-4k.a", 0x00000, 0x2000, CRC(d3c5e85b) SHA1(1a6a7b9c71f2209ef6c4d93d5bd4774a7239e569) ) /* sprites */
1800 ROM_LOAD( "br-b-4f.a", 0x02000, 0x2000, CRC(4354232a) SHA1(d2edcb74b630cc778d932788a191440397b99e22) )
1801 ROM_LOAD( "br-b-3n.a", 0x04000, 0x2000, CRC(2668dbef) SHA1(11528a4f8e5c75361686c1301f282cc2735ce2f5) )
1802 ROM_LOAD( "br-b-4n.a", 0x06000, 0x2000, CRC(c719a324) SHA1(b0a4e603a964f3c8aee77df4c51625fd1683b7b9) )
1803 ROM_LOAD( "br-b-4c.a", 0x08000, 0x2000, CRC(0b3193bf) SHA1(130d2d0ff3563d196eea50a23e581ac5e7de8d72) )
1804 ROM_LOAD( "br-b-4e.a", 0x0a000, 0x2000, CRC(3662e8fb) SHA1(c3c3deb7b2da42d6def279bd80b65eb2deef4038) )
1805
1806 ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE )
1807 ROM_LOAD( "br-c-1b", 0x00000, 0x2000, CRC(8088911e) SHA1(d75d0a4ee5e51f14d93c8525486ee2cf2e87be9c) ) /* characters */
1808 ROM_LOAD( "br-c-1c", 0x02000, 0x2000, CRC(3d78b653) SHA1(b693d20ad28fed867ffbc23cda150f3201206d3c) )
1809
1810 ROM_REGION( 0x0740, REGION_PROMS, 0 )
1811 ROM_LOAD( "br-c-3j", 0x0000, 0x0100, CRC(aceaed79) SHA1(64cf6d012fc8d5163251812b4c2ac80d8f6dd353) ) /* tile palette red component */
1812 ROM_LOAD( "br-b-1m", 0x0100, 0x0100, CRC(3bd30c7d) SHA1(ce9812c47321820f144c5a285c15dbb2073c8847) ) /* sprite palette red component */
1813 ROM_LOAD( "br-c-3l", 0x0200, 0x0100, CRC(7cf6f380) SHA1(950a28dcb6e9d3d743c76ce07616ee7d6a0c138c) ) /* tile palette green component */
1814 ROM_LOAD( "br-b-1n", 0x0300, 0x0100, CRC(b7f3dc3b) SHA1(7bffb6f3ddd0459bd060b0c1ca22a291153672d5) ) /* sprite palette green component */
1815 ROM_LOAD( "br-c-3k", 0x0400, 0x0100, CRC(d90e4a54) SHA1(498c65773c83dfdb99703811bce7831f9a1af432) ) /* tile palette blue component */
1816 ROM_LOAD( "br-b-1l", 0x0500, 0x0100, CRC(5271c7d8) SHA1(1254b61133ed8fd6e032df04482fb775c3f66981) ) /* sprite palette blue component */
1817 ROM_LOAD( "br-c-1j", 0x0600, 0x0020, CRC(78eb5d77) SHA1(dd82f7843bea8c953f491faade6ced17e57ddf3c) ) /* character palette */
1818 ROM_LOAD( "br-b-5p", 0x0620, 0x0020, CRC(ce746937) SHA1(387e73a9ca684ac2e30061fca281970ff20ef0a5) ) /* sprite height, one entry per 32 */
1819 /* sprites. Used at run time! */
1820 ROM_LOAD( "br-b-6f", 0x0640, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as kungfum */
1821 ROM_END
1822
1823 ROM_START( ldrun )
1824 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1825 ROM_LOAD( "lr-a-4e", 0x0000, 0x2000, CRC(5d7e2a4d) SHA1(fe8aeff360f6c3a8606d67a8b95148c3c2ef7267) )
1826 ROM_LOAD( "lr-a-4d", 0x2000, 0x2000, CRC(96f20473) SHA1(e400c43f3f32e12f68ca204c60bcebdb2b3da55d) )
1827 ROM_LOAD( "lr-a-4b", 0x4000, 0x2000, CRC(b041c4a9) SHA1(77768b03ea2497e25c3e47b68a0eb2fe3e9aea35) )
1828 ROM_LOAD( "lr-a-4a", 0x6000, 0x2000, CRC(645e42aa) SHA1(c806ffce7ece418bad86854c987f78c70c13e492) )
1829
1830 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1831 ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) )
1832 ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, CRC(3f7f3939) SHA1(7ee25a21e74995bfb36ac11b45d384b33a6d8515) )
1833
1834 ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE )
1835 ROM_LOAD( "lr-e-2d", 0x0000, 0x2000, CRC(24f9b58d) SHA1(e33224b910d37aaa85713b954c8dd50996245a8c) ) /* characters */
1836 ROM_LOAD( "lr-e-2j", 0x2000, 0x2000, CRC(43175e08) SHA1(9dbafb27d46cf7df35f343a8753e8d91ea706993) )
1837 ROM_LOAD( "lr-e-2f", 0x4000, 0x2000, CRC(e0317124) SHA1(b766bd21e2da1673d2054148f62d61c33c95d38e) )
1838
1839 ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE )
1840 ROM_LOAD( "lr-b-4k", 0x0000, 0x2000, CRC(8141403e) SHA1(65fa6bc872fb07c71aacbbcc35cee766b2877896) ) /* sprites */
1841 ROM_LOAD( "lr-b-3n", 0x2000, 0x2000, CRC(55154154) SHA1(35304676e1ab55adccdabdc766a4e0e0901d3cd0) )
1842 ROM_LOAD( "lr-b-4c", 0x4000, 0x2000, CRC(924e34d0) SHA1(6a841419797a129235fc7d0405a5be55e8d703da) )
1843
1844 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1845 ROM_LOAD( "lr-e-3m", 0x0000, 0x0100, CRC(53040416) SHA1(2c6915164d1c31afc60a21b557abdf023d5b3f46) ) /* character palette red component */
1846 ROM_LOAD( "lr-b-1m", 0x0100, 0x0100, CRC(4bae1c25) SHA1(17a9e2567d9d648dca69510bb201f8af0738b068) ) /* sprite palette red component */
1847 ROM_LOAD( "lr-e-3l", 0x0200, 0x0100, CRC(67786037) SHA1(cd40dfd94295afe57139733752643cf48b8566b1) ) /* character palette green component */
1848 ROM_LOAD( "lr-b-1n", 0x0300, 0x0100, CRC(9cd3db94) SHA1(bff95965f946df0e4af1f99db5b2468bf1d4403f) ) /* sprite palette green component */
1849 ROM_LOAD( "lr-e-3n", 0x0400, 0x0100, CRC(5b716837) SHA1(e3ea250891fec43a97e92ac1c3a4fbb5ee2d4a4d) ) /* character palette blue component */
1850 ROM_LOAD( "lr-b-1l", 0x0500, 0x0100, CRC(08d8cf9a) SHA1(a46213e0dc04e44b0544401eb341fd49eef331dd) ) /* sprite palette blue component */
1851 ROM_LOAD( "lr-b-5p", 0x0600, 0x0020, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */
1852 /* sprites. Used at run time! */
1853 ROM_LOAD( "lr-b-6f", 0x0620, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
1854 ROM_END
1855
1856 ROM_START( ldruna )
1857 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1858 ROM_LOAD( "roma4c", 0x0000, 0x2000, CRC(279421e1) SHA1(051e103b2ade4a332053ba05aa7f126dd9b97c2c) )
1859 ROM_LOAD( "lr-a-4d", 0x2000, 0x2000, CRC(96f20473) SHA1(e400c43f3f32e12f68ca204c60bcebdb2b3da55d) )
1860 ROM_LOAD( "roma4b", 0x4000, 0x2000, CRC(3c464bad) SHA1(df34a9ec2f29f8d2a2ef1a2fc065ba7541ea4178) )
1861 ROM_LOAD( "roma4a", 0x6000, 0x2000, CRC(899df8e0) SHA1(e80154dccd04e2928124591f16e088de3554995b) )
1862
1863 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1864 ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) )
1865 ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, CRC(3f7f3939) SHA1(7ee25a21e74995bfb36ac11b45d384b33a6d8515) )
1866
1867 ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE )
1868 ROM_LOAD( "lr-e-2d", 0x0000, 0x2000, CRC(24f9b58d) SHA1(e33224b910d37aaa85713b954c8dd50996245a8c) ) /* characters */
1869 ROM_LOAD( "lr-e-2j", 0x2000, 0x2000, CRC(43175e08) SHA1(9dbafb27d46cf7df35f343a8753e8d91ea706993) )
1870 ROM_LOAD( "lr-e-2f", 0x4000, 0x2000, CRC(e0317124) SHA1(b766bd21e2da1673d2054148f62d61c33c95d38e) )
1871
1872 ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE )
1873 ROM_LOAD( "lr-b-4k", 0x0000, 0x2000, CRC(8141403e) SHA1(65fa6bc872fb07c71aacbbcc35cee766b2877896) ) /* sprites */
1874 ROM_LOAD( "lr-b-3n", 0x2000, 0x2000, CRC(55154154) SHA1(35304676e1ab55adccdabdc766a4e0e0901d3cd0) )
1875 ROM_LOAD( "lr-b-4c", 0x4000, 0x2000, CRC(924e34d0) SHA1(6a841419797a129235fc7d0405a5be55e8d703da) )
1876
1877 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1878 ROM_LOAD( "lr-e-3m", 0x0000, 0x0100, CRC(53040416) SHA1(2c6915164d1c31afc60a21b557abdf023d5b3f46) ) /* character palette red component */
1879 ROM_LOAD( "lr-b-1m", 0x0100, 0x0100, CRC(4bae1c25) SHA1(17a9e2567d9d648dca69510bb201f8af0738b068) ) /* sprite palette red component */
1880 ROM_LOAD( "lr-e-3l", 0x0200, 0x0100, CRC(67786037) SHA1(cd40dfd94295afe57139733752643cf48b8566b1) ) /* character palette green component */
1881 ROM_LOAD( "lr-b-1n", 0x0300, 0x0100, CRC(9cd3db94) SHA1(bff95965f946df0e4af1f99db5b2468bf1d4403f) ) /* sprite palette green component */
1882 ROM_LOAD( "lr-e-3n", 0x0400, 0x0100, CRC(5b716837) SHA1(e3ea250891fec43a97e92ac1c3a4fbb5ee2d4a4d) ) /* character palette blue component */
1883 ROM_LOAD( "lr-b-1l", 0x0500, 0x0100, CRC(08d8cf9a) SHA1(a46213e0dc04e44b0544401eb341fd49eef331dd) ) /* sprite palette blue component */
1884 ROM_LOAD( "lr-b-5p", 0x0600, 0x0020, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */
1885 /* sprites. Used at run time! */
1886 ROM_LOAD( "lr-b-6f", 0x0620, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
1887 ROM_END
1888
1889 ROM_START( ldrun2 )
1890 ROM_REGION( 0x14000, REGION_CPU1, 0 ) /* 64k for code + 16k for banks */
1891 ROM_LOAD( "lr2-a-4e.a", 0x00000, 0x2000, CRC(22313327) SHA1(c82c9d3218e0384e26b86f9475fea5056cd9832b) )
1892 ROM_LOAD( "lr2-a-4d", 0x02000, 0x2000, CRC(ef645179) SHA1(d4cae3cb223d7d10e2cce751af5c77493c1c60df) )
1893 ROM_LOAD( "lr2-a-4a.a", 0x04000, 0x2000, CRC(b11ddf59) SHA1(9797cbf4b8cd7bfabe797bdc71c904f54d710491) )
1894 ROM_LOAD( "lr2-a-4a", 0x06000, 0x2000, CRC(470cc8a1) SHA1(72ca710a08c322a2b61dfb4c0c67af9d72078fc0) )
1895 ROM_LOAD( "lr2-h-1c.a", 0x10000, 0x2000, CRC(7ebcadbc) SHA1(ff8377cb1f349f2957280b6a633e596740a489be) ) /* banked at 8000-9fff */
1896 ROM_LOAD( "lr2-h-1d.a", 0x12000, 0x2000, CRC(64cbb7f9) SHA1(897d53c3892e636734f5a380c67c41c0d810955e) ) /* banked at 8000-9fff */
1897
1898 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1899 ROM_LOAD( "lr2-a-3e", 0xa000, 0x2000, CRC(853f3898) SHA1(12ade2f6f10c85c6a2c380dd0727aad64b317d56) )
1900 ROM_LOAD( "lr2-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) )
1901 ROM_LOAD( "lr2-a-3h", 0xe000, 0x2000, CRC(2a0e83ca) SHA1(207bfb3912e7a9caa61b742fc3357154a0189434) )
1902
1903 ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE )
1904 ROM_LOAD( "lr2-h-1e", 0x00000, 0x2000, CRC(9d63a8ff) SHA1(4281fd7a72313b58113e0e64e09ccff50eeccfa6) ) /* characters */
1905 ROM_LOAD( "lr2-h-1j", 0x02000, 0x2000, CRC(40332bbd) SHA1(4611d637bd8332f38c6b9c6c3c246a587632ac58) )
1906 ROM_LOAD( "lr2-h-1h", 0x04000, 0x2000, CRC(9404727d) SHA1(ed096c6406ec74418bbbb1e2cee3ce9a4919ba7c) )
1907
1908 ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE )
1909 ROM_LOAD( "lr2-b-4k", 0x00000, 0x2000, CRC(79909871) SHA1(18fc113d159c902986b47a94894c982c74c2021e) ) /* sprites */
1910 ROM_LOAD( "lr2-b-4f", 0x02000, 0x2000, CRC(06ba1ef4) SHA1(e8ba4c270df95810d80cdfe87f6d585cfaf60574) )
1911 ROM_LOAD( "lr2-b-3n", 0x04000, 0x2000, CRC(3cc5893f) SHA1(c2e88d3473d575637c49c218d6099578386891cc) )
1912 ROM_LOAD( "lr2-b-4n", 0x06000, 0x2000, CRC(49c12f42) SHA1(56f1e4665fb4f84637a2c16c914657977f38a224) )
1913 ROM_LOAD( "lr2-b-4c", 0x08000, 0x2000, CRC(fbe6d24c) SHA1(d4d9bfa5abf7d9b2457543c56bb04edf209157b8) )
1914 ROM_LOAD( "lr2-b-4e", 0x0a000, 0x2000, CRC(75172d1f) SHA1(6771c31ad834ca94a6575e34d781add5bfadce22) )
1915
1916 ROM_REGION( 0x0720, REGION_PROMS, 0 )
1917 ROM_LOAD( "lr2-h-3m", 0x0000, 0x0100, CRC(2c5d834b) SHA1(4144a566d7eef06e9cd2d4c774e4b1e6f9ef56b1) ) /* character palette red component */
1918 ROM_LOAD( "lr2-b-1m", 0x0100, 0x0100, CRC(4ec9bb3d) SHA1(e36398e0e92525f0c5086cb2b5a4a976d1e4f126) ) /* sprite palette red component */
1919 ROM_LOAD( "lr2-h-3l", 0x0200, 0x0100, CRC(3ae69aca) SHA1(683bf617a36952d08bea53ea9c82b12f81c62c53) ) /* character palette green component */
1920 ROM_LOAD( "lr2-b-1n", 0x0300, 0x0100, CRC(1daf1fa4) SHA1(5742ceff566e1d9f1148df4e408571aa290996d3) ) /* sprite palette green component */
1921 ROM_LOAD( "lr2-h-3n", 0x0400, 0x0100, CRC(2b28aec5) SHA1(946633bd7203ba1481250f900f3232c18538613b) ) /* character palette blue component */
1922 ROM_LOAD( "lr2-b-1l", 0x0500, 0x0100, CRC(c8fb708a) SHA1(ed38f36fa7918179c7176c762c0fcc86b5ddb218) ) /* sprite palette blue component */
1923 ROM_LOAD( "lr2-b-5p", 0x0600, 0x0020, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */
1924 /* sprites. Used at run time! */
1925 ROM_LOAD( "lr2-b-6f", 0x0620, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
1926 ROM_END
1927
1928 ROM_START( ldrun3 )
1929 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1930 ROM_LOAD( "lr3a4eb.bin", 0x0000, 0x4000, CRC(09affc47) SHA1(1cd56b967e4c8ada6c6e1015aead5f7551034358) )
1931 ROM_LOAD( "lr3a4db.bin", 0x4000, 0x4000, CRC(23a02178) SHA1(0560b92dfc9b57d01abb62a7b270beb27fa42040) )
1932 ROM_LOAD( "lr3a4bb.bin", 0x8000, 0x4000, CRC(3d501a1a) SHA1(a92ff743eb21145154fa717ee9e6ede4da458aa9) )
1933
1934 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1935 ROM_LOAD( "lr3-a-3d", 0x8000, 0x4000, CRC(28be68cd) SHA1(1e48cdf649bc861066fbef0293466091092045f3) )
1936 ROM_LOAD( "lr3-a-3f", 0xc000, 0x4000, CRC(cb7186b7) SHA1(cc99821f3f1523523598e4b7d68b95eee6c84e69) )
1937
1938 ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE )
1939 ROM_LOAD( "lr3-n-2a", 0x00000, 0x4000, CRC(f9b74dee) SHA1(f4407024aea05d0c698f8a7a6a20cbbcbd8baf44) ) /* characters */
1940 ROM_LOAD( "lr3-n-2c", 0x04000, 0x4000, CRC(fef707ba) SHA1(ff6e64eeda6a9be672a1b8778a051886c38bd8f6) )
1941 ROM_LOAD( "lr3-n-2b", 0x08000, 0x4000, CRC(af3d27b9) SHA1(2eda0bf7ffd7bcb7b7dcd2ffb1482f748ee2edfc) )
1942
1943 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
1944 ROM_LOAD( "lr3b4kb.bin", 0x00000, 0x4000, CRC(21ecd8c5) SHA1(786d7d9b690764cfc0c65c3e58369e78f7cc4475) ) /* sprites */
1945 ROM_LOAD( "snxb4fb.bin", 0x04000, 0x4000, CRC(ed719d7b) SHA1(34c7d9fc762b3f113b6115910898fde9713ae24f) )
1946 ROM_LOAD( "lr3b3nb.bin", 0x08000, 0x4000, CRC(da8cffab) SHA1(3e194b656fa0c4771e37e6a8b7405edc495808ad) )
1947 ROM_LOAD( "snxb4nb.bin", 0x0c000, 0x4000, CRC(dc675003) SHA1(df9b6055b4a4c537504658e62e96f826d498b39c) )
1948 ROM_LOAD( "snxb4cb.bin", 0x10000, 0x4000, CRC(585aa244) SHA1(d90cf29280e5f73b14dc5b33b1a82970e8e1a560) )
1949 ROM_LOAD( "snxb4eb.bin", 0x14000, 0x4000, CRC(2d3b69dd) SHA1(472e1c06fd3184b91d9b718bb590d45702ed84cd) )
1950
1951 ROM_REGION( 0x0820, REGION_PROMS, 0 )
1952 ROM_LOAD( "lr3-n-2l", 0x0000, 0x0100, CRC(e880b86b) SHA1(3934f37dc45b725af1c7d862086249256366d572) ) /* character palette red component */
1953 ROM_LOAD( "lr3-b-1m", 0x0100, 0x0100, CRC(f02d7167) SHA1(385a9179143e3dcccd7052e70c7cc71473caaaca) ) /* sprite palette red component */
1954 ROM_LOAD( "lr3-n-2k", 0x0200, 0x0100, CRC(047ee051) SHA1(7c18a223d37ccc5fea20f8f856fba20335c75ea4) ) /* character palette green component */
1955 ROM_LOAD( "lr3-b-1n", 0x0300, 0x0100, CRC(9e37f181) SHA1(8e36eb8f4aefcc6d21dfbb2e86dcb4875bcf82cd) ) /* sprite palette green component */
1956 ROM_LOAD( "lr3-n-2m", 0x0400, 0x0100, CRC(69ad8678) SHA1(96134aa530cb93a5e3b56fffa996aefa08a666a2) ) /* character palette blue component */
1957 ROM_LOAD( "lr3-b-1l", 0x0500, 0x0100, CRC(5b11c41d) SHA1(186ca7bfa2894311fc573f3f5882da677e029f2a) ) /* sprite palette blue component */
1958 ROM_LOAD( "lr3-b-5p", 0x0600, 0x0020, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */
1959 /* sprites. Used at run time! */
1960 ROM_LOAD( "lr3-n-4f", 0x0620, 0x0100, CRC(df674be9) SHA1(4d8c5378234bc24fac62dc227d8cd72f1ab7a35c) ) /* unknown */
1961 ROM_LOAD( "lr3-b-6f", 0x0720, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
1962 ROM_END
1963
1964 ROM_START( ldrun3jp )
1965 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1966 ROM_LOAD( "lr3-a-4e", 0x0000, 0x4000, CRC(5b334e8e) SHA1(018ee450f88feaf5da025e01d2d839b29d5f1559) )
1967 ROM_LOAD( "lr3-a-4d.a", 0x4000, 0x4000, CRC(a84bc931) SHA1(0348d238a85a059a6423794910adec4462e14f27) )
1968 ROM_LOAD( "lr3-a-4b.a", 0x8000, 0x4000, CRC(be09031d) SHA1(c124163895d295969b66386fee91c89bbd8b8774) )
1969
1970 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
1971 ROM_LOAD( "lr3-a-3d", 0x8000, 0x4000, CRC(28be68cd) SHA1(1e48cdf649bc861066fbef0293466091092045f3) )
1972 ROM_LOAD( "lr3-a-3f", 0xc000, 0x4000, CRC(cb7186b7) SHA1(cc99821f3f1523523598e4b7d68b95eee6c84e69) )
1973
1974 ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE )
1975 ROM_LOAD( "lr3-n-2a", 0x00000, 0x4000, CRC(f9b74dee) SHA1(f4407024aea05d0c698f8a7a6a20cbbcbd8baf44) ) /* characters */
1976 ROM_LOAD( "lr3-n-2c", 0x04000, 0x4000, CRC(fef707ba) SHA1(ff6e64eeda6a9be672a1b8778a051886c38bd8f6) )
1977 ROM_LOAD( "lr3-n-2b", 0x08000, 0x4000, CRC(af3d27b9) SHA1(2eda0bf7ffd7bcb7b7dcd2ffb1482f748ee2edfc) )
1978
1979 ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE )
1980 ROM_LOAD( "lr3-b-4k", 0x00000, 0x4000, CRC(63f070c7) SHA1(beeb13dbba228827cf18e4c23deac041acbb2903) ) /* sprites */
1981 ROM_LOAD( "lr3-b-3n", 0x04000, 0x4000, CRC(eab7ad91) SHA1(c4e8dec38f6df27c0309172232aa8056be7982c4) )
1982 ROM_LOAD( "lr3-b-4c", 0x08000, 0x4000, CRC(1a460a46) SHA1(2f9e85ab45e8ec7a08edb9c1f82bce694cc2bc99) )
1983
1984 ROM_REGION( 0x0820, REGION_PROMS, 0 )
1985 ROM_LOAD( "lr3-n-2l", 0x0000, 0x0100, CRC(e880b86b) SHA1(3934f37dc45b725af1c7d862086249256366d572) ) /* character palette red component */
1986 ROM_LOAD( "lr3-b-1m", 0x0100, 0x0100, CRC(f02d7167) SHA1(385a9179143e3dcccd7052e70c7cc71473caaaca) ) /* sprite palette red component */
1987 ROM_LOAD( "lr3-n-2k", 0x0200, 0x0100, CRC(047ee051) SHA1(7c18a223d37ccc5fea20f8f856fba20335c75ea4) ) /* character palette green component */
1988 ROM_LOAD( "lr3-b-1n", 0x0300, 0x0100, CRC(9e37f181) SHA1(8e36eb8f4aefcc6d21dfbb2e86dcb4875bcf82cd) ) /* sprite palette green component */
1989 ROM_LOAD( "lr3-n-2m", 0x0400, 0x0100, CRC(69ad8678) SHA1(96134aa530cb93a5e3b56fffa996aefa08a666a2) ) /* character palette blue component */
1990 ROM_LOAD( "lr3-b-1l", 0x0500, 0x0100, CRC(5b11c41d) SHA1(186ca7bfa2894311fc573f3f5882da677e029f2a) ) /* sprite palette blue component */
1991 ROM_LOAD( "lr3-b-5p", 0x0600, 0x0020, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */
1992 /* sprites. Used at run time! */
1993 ROM_LOAD( "lr3-n-4f", 0x0620, 0x0100, CRC(df674be9) SHA1(4d8c5378234bc24fac62dc227d8cd72f1ab7a35c) ) /* unknown */
1994 ROM_LOAD( "lr3-b-6f", 0x0720, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
1995 ROM_END
1996
1997 ROM_START( ldrun4 )
1998 ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* 64k for code + 32k for banked ROM */
1999 ROM_LOAD( "lr4-a-4e", 0x00000, 0x4000, CRC(5383e9bf) SHA1(01f6f76b768107b389d7240bd15a5e0720defcb6) )
2000 ROM_LOAD( "lr4-a-4d.c", 0x04000, 0x4000, CRC(298afa36) SHA1(077b5fa8a246059801232c5287225e3bb7507345) )
2001 ROM_LOAD( "lr4-v-4k", 0x10000, 0x8000, CRC(8b248abd) SHA1(3e755c8f8011d6f878a1777a2c22b2156ef926e6) ) /* banked at 8000-bfff */
2002
2003 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
2004 ROM_LOAD( "lr4-a-3d", 0x8000, 0x4000, CRC(86c6d445) SHA1(644b86fba745a5be545c4dd9c534157af75492b8) )
2005 ROM_LOAD( "lr4-a-3f", 0xc000, 0x4000, CRC(097c6c0a) SHA1(627ccdd1d77ae78db9660b51484d2a9110d035e5) )
2006
2007 ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE )
2008 ROM_LOAD( "lr4-v-2b", 0x00000, 0x4000, CRC(4118e60a) SHA1(5c504e3f57e68f6049e422d979c8f6f4b795344f) ) /* characters */
2009 ROM_LOAD( "lr4-v-2d", 0x04000, 0x4000, CRC(542bb5b5) SHA1(e88eaf27ed72af1e6efa3c1500823be124fcf6b4) )
2010 ROM_LOAD( "lr4-v-2c", 0x08000, 0x4000, CRC(c765266c) SHA1(bf0ae987928034cf7b508d56f3e647a5c827e420) )
2011
2012 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
2013 ROM_LOAD( "lr4-b-4k", 0x00000, 0x4000, CRC(e7fe620c) SHA1(f5e35f5868355fa1dd53a9005d320b28b10d7a69) ) /* sprites */
2014 ROM_LOAD( "lr4-b-4f", 0x04000, 0x4000, CRC(6f0403db) SHA1(90f452f159c06b42bf536dce31f695a932332a50) )
2015 ROM_LOAD( "lr4-b-3n", 0x08000, 0x4000, CRC(ad1fba1b) SHA1(095feb824ad0b26e9c546cc3095aae3e49ee9705) )
2016 ROM_LOAD( "lr4-b-4n", 0x0c000, 0x4000, CRC(0e568fab) SHA1(4d9abb54953dc5c5598f83bc87861dfd5d8a1685) )
2017 ROM_LOAD( "lr4-b-4c", 0x10000, 0x4000, CRC(82c53669) SHA1(5e020e1df81ddc3ca0f0aeff0010ec3cd87ce426) )
2018 ROM_LOAD( "lr4-b-4e", 0x14000, 0x4000, CRC(767a1352) SHA1(675bda83bf46421a37dbfaa9323e5ecc4a3b63dd) )
2019
2020 ROM_REGION( 0x0820, REGION_PROMS, 0 )
2021 ROM_LOAD( "lr4-v-1m", 0x0000, 0x0100, CRC(fe51bf1d) SHA1(92461d6fcbc94bde9639720e8f58b974e5adb2dc) ) /* character palette red component */
2022 ROM_LOAD( "lr4-b-1m", 0x0100, 0x0100, CRC(5d8d17d0) SHA1(214f9f7f9fa9c2b616c5b4a3060c4bb96ea9fef4) ) /* sprite palette red component */
2023 ROM_LOAD( "lr4-v-1n", 0x0200, 0x0100, CRC(da0658e5) SHA1(5a7f665e4d63938b4e4415066eb6c986e82bd1a7) ) /* character palette green component */
2024 ROM_LOAD( "lr4-b-1n", 0x0300, 0x0100, CRC(da1129d2) SHA1(169e616c7340ab76f931493eba188756da48a8ec) ) /* sprite palette green component */
2025 ROM_LOAD( "lr4-v-1p", 0x0400, 0x0100, CRC(0df23ebe) SHA1(054736b762aa6698c1e6d827f8db62ae0342c83f) ) /* character palette blue component */
2026 ROM_LOAD( "lr4-b-1l", 0x0500, 0x0100, CRC(0d89b692) SHA1(b2854290c46c34934ff91980d72768070ebc8bf3) ) /* sprite palette blue component */
2027 ROM_LOAD( "lr4-b-5p", 0x0600, 0x0020, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */
2028 /* sprites. Used at run time! */
2029 ROM_LOAD( "lr4-v-4h", 0x0620, 0x0100, CRC(df674be9) SHA1(4d8c5378234bc24fac62dc227d8cd72f1ab7a35c) ) /* unknown */
2030 ROM_LOAD( "lr4-b-6f", 0x0720, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2031 ROM_END
2032
2033 ROM_START( lotlot )
2034 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
2035 ROM_LOAD( "lot-a-4e", 0x0000, 0x4000, CRC(2913d08f) SHA1(829115333825a9483322a910efee9ee470d85a0e) )
2036 ROM_LOAD( "lot-a-4d", 0x4000, 0x4000, CRC(0443095f) SHA1(2c3ca107b54519632513a75b80a1a7d8b971f2b1) )
2037
2038 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
2039 ROM_LOAD( "lot-a-3h", 0xe000, 0x2000, CRC(0781cee7) SHA1(bff8592f96b43af6554f1a04e0c00f45b178cce6) )
2040
2041 ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE )
2042 ROM_LOAD( "lot-k-4a", 0x00000, 0x2000, CRC(1b3695f4) SHA1(0a1a1df8bf0288434d47b323d97019b705f5d9d7) ) /* tiles */
2043 ROM_LOAD( "lot-k-4c", 0x02000, 0x2000, CRC(bd2b0730) SHA1(af66617a5fce6e72107c3949e9829121e8719648) )
2044 ROM_LOAD( "lot-k-4b", 0x04000, 0x2000, CRC(930ddd55) SHA1(bf2580c6b1df68fe2bca290b227c40f450a77576) )
2045
2046 ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE )
2047 ROM_LOAD( "lot-b-4k", 0x00000, 0x2000, CRC(fd27cb90) SHA1(79d3f5ba8e271df05af55625e1db2f2adea25285) ) /* sprites */
2048 ROM_LOAD( "lot-b-3n", 0x02000, 0x2000, CRC(bd486fff) SHA1(a6159c0f55cf288b0382c3415811ea2a35f3564e) )
2049 ROM_LOAD( "lot-b-4c", 0x04000, 0x2000, CRC(3026ee6c) SHA1(6d4ea4b0409d3486eb0e7e9507a0ab79df5ee6c8) )
2050
2051 ROM_REGION( 0x6000, REGION_GFX3, ROMREGION_DISPOSE )
2052 ROM_LOAD( "lot-k-4p", 0x00000, 0x2000, CRC(3b7d95ba) SHA1(4be898c0d5b5c73f380abf5f5ea66f1797eefd1d) ) /* chars */
2053 ROM_LOAD( "lot-k-4l", 0x02000, 0x2000, CRC(f98dca1f) SHA1(b88d2b9cb3ac8d5523f3788fca8bae60f8fad6f7) )
2054 ROM_LOAD( "lot-k-4n", 0x04000, 0x2000, CRC(f0cd76a5) SHA1(3f7b1890ca36c190d3fe2571382ada93798a0a51) )
2055
2056 ROM_REGION( 0x0e20, REGION_PROMS, 0 )
2057 ROM_LOAD( "lot-k-2f", 0x0000, 0x0100, CRC(b820a05e) SHA1(79158f0cd64231c5cd90dc391e492a21aba4c30d) ) /* tile palette red component */
2058 ROM_LOAD( "lot-b-1m", 0x0100, 0x0100, CRC(c146461d) SHA1(87a5dc3a93a9f9f08e97eef77eb099792fdf70e6) ) /* sprite palette red component */
2059 ROM_LOAD( "lot-k-2l", 0x0200, 0x0100, CRC(ac3e230d) SHA1(e7d5afc707580a5c1df1201694a4db685af5f986) ) /* character palette red component */
2060 ROM_LOAD( "lot-k-2e", 0x0300, 0x0100, CRC(9b1fa005) SHA1(076af5d7a30a47b5884fcf33452a10aad91d30ee) ) /* tile palette green component */
2061 ROM_LOAD( "lot-b-1n", 0x0400, 0x0100, CRC(01e07db6) SHA1(3a18a6919b966d429d5ec9cf812768804407f92e) ) /* sprite palette green component */
2062 ROM_LOAD( "lot-k-2k", 0x0500, 0x0100, CRC(1811ad2b) SHA1(fb7aa262595010dd0fc1a94d74a37359f20e4cd7) ) /* character palette green component */
2063 ROM_LOAD( "lot-k-2d", 0x0600, 0x0100, CRC(315ed9a8) SHA1(7bfa91729cce7911a45035e2fa576a2b6b010a65) ) /* tile palette blue component */
2064 ROM_LOAD( "lot-b-1l", 0x0700, 0x0100, CRC(8b6fcde3) SHA1(04e9ce04b77a5f8737f2ec0aaeadaccdbbdda573) ) /* sprite palette blue component */
2065 ROM_LOAD( "lot-k-2j", 0x0800, 0x0100, CRC(e791ef2a) SHA1(cb1236630cbbc23e2e684ad3b7f51e52389eea2e) ) /* character palette blue component */
2066 ROM_LOAD( "lot-b-5p", 0x0900, 0x0020, CRC(110b21fd) SHA1(a7a660ff18540e2d73a80f341cd50c5f4d184085) ) /* sprite height, one entry per 32 */
2067 /* sprites. Used at run time! */
2068 ROM_LOAD( "lot-k-7e", 0x0920, 0x0200, CRC(6cef0fbd) SHA1(0c5c63a203e7bd852a3574c18f212487caf529ca) ) /* unknown */
2069 ROM_LOAD( "lot-k-7h", 0x0b20, 0x0200, CRC(04442bee) SHA1(37d10b605830b9355b00256af479c06cd4b97950) ) /* unknown */
2070 ROM_LOAD( "lot-b-6f", 0x0d20, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2071 ROM_END
2072
2073 ROM_START( kidniki )
2074 ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* main CPU */
2075 ROM_LOAD( "dr04.4e", 0x00000, 0x04000, CRC(80431858) SHA1(3a387f63ce0c7601264f91ae1f6fe604f2ef8ef1) )
2076 ROM_LOAD( "dr03.4cd", 0x04000, 0x04000, CRC(dba20934) SHA1(a7aac4fcea5c1a94ddaf67e85bf2ce2e77c965cb) )
2077 ROM_LOAD( "dr11.8k", 0x10000, 0x08000, CRC(04d82d93) SHA1(a901659cbe12a284f30a6b98ea6907df0222ddbf) ) /* banked at 8000-9fff */
2078 ROM_LOAD( "dr12.8l", 0x18000, 0x08000, CRC(c0b255fd) SHA1(bdd74239a3490eb35cb736cac6f5030bec4b2392) )
2079 ROM_CONTINUE( 0x28000, 0x08000 )
2080
2081 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2082 ROM_LOAD( "dr00.3a", 0x4000, 0x04000, CRC(458309f7) SHA1(7dfd77e0cd76a4b6f913eb434ac20ef5a172e2f0) )
2083 ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, CRC(e66897bd) SHA1(04ea4a857a94d4e884fb28623ec6195dae701e25) )
2084 ROM_LOAD( "dr02.3f", 0xc000, 0x04000, CRC(f9e31e26) SHA1(712b1bde4b3c18c9ac26d58ade48316af004e733) ) /* 6803 code */
2085
2086 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
2087 ROM_LOAD( "dr06.2b", 0x00000, 0x8000, CRC(4d9a970f) SHA1(affeea31706644a9f1dcd1c4f739cadbdd58e597) ) /* tiles */
2088 ROM_LOAD( "dr07.2dc", 0x08000, 0x8000, CRC(ab59a4c4) SHA1(4e1eca8d4185ef35e2be13fa6a4af01f36d19f27) )
2089 ROM_LOAD( "dr05.2a", 0x10000, 0x8000, CRC(2e6dad0c) SHA1(fe79c510cea3f57ba61ac2e8d9858c887688897b) )
2090
2091 ROM_REGION( 0x30000, REGION_GFX2, ROMREGION_DISPOSE )
2092 ROM_LOAD( "dr21.4k", 0x00000, 0x4000, CRC(a06cea9a) SHA1(d78792b8e310fed3dc622c05d81303dad338afa7) ) /* sprites */
2093 ROM_LOAD( "dr19.4f", 0x04000, 0x4000, CRC(b34605ad) SHA1(56eba99c73527326f3428961732854753a6a5a2e) )
2094 ROM_LOAD( "dr22.4l", 0x08000, 0x4000, CRC(41303de8) SHA1(7bffda2e4c95b021f21d8375cf2d6b14280ea7b5) )
2095 ROM_LOAD( "dr20.4jh", 0x0c000, 0x4000, CRC(5fbe6f61) SHA1(18ab120777fffe912c8fc139fda2977a44aa453f) )
2096 ROM_LOAD( "dr14.3p", 0x10000, 0x4000, CRC(76cfbcbc) SHA1(3fdffc5893143b06535b5d85cd2a01c61d08e679) )
2097 ROM_LOAD( "dr24.4p", 0x14000, 0x4000, CRC(d51c8db5) SHA1(be48478afa0acc33e6a02a0a31f1f07ce3c7a3b8) )
2098 ROM_LOAD( "dr23.4nm", 0x18000, 0x4000, CRC(03469df8) SHA1(f3ffc0419c9d9c9a69387f62ceb9081170f861d4) )
2099 ROM_LOAD( "dr13.3nm", 0x1c000, 0x4000, CRC(d5c3dfe0) SHA1(c0e6b23bed9bf650d516a80c8b94f2d888d81c2d) )
2100 ROM_LOAD( "dr16.4cb", 0x20000, 0x4000, CRC(f1d1bb93) SHA1(42103d2e89a0d1edc834d08a6c443065fdacdbf2) )
2101 ROM_LOAD( "dr18.4e", 0x24000, 0x4000, CRC(edb7f25b) SHA1(394337132ff74b8d06d02233201f8ae8958e2aa6) )
2102 ROM_LOAD( "dr17.4dc", 0x28000, 0x4000, CRC(4fb87868) SHA1(73d779d687a6c319cd85793f95cb24413010b5e2) )
2103 ROM_LOAD( "dr15.4a", 0x2c000, 0x4000, CRC(e0b88de5) SHA1(08808ca90d34e494697a74e8a2314e32087e2f4d) )
2104
2105 ROM_REGION( 0x0c000, REGION_GFX3, ROMREGION_DISPOSE )
2106 ROM_LOAD( "dr08.4l", 0x00000, 0x4000, CRC(32d50643) SHA1(58bff370a3e24f21d5fb35289e85084b03178f88) ) /* chars */
2107 ROM_LOAD( "dr09.4m", 0x04000, 0x4000, CRC(17df6f95) SHA1(669a81906dfd81d807cbb2b5827ddb504536cb2c) )
2108 ROM_LOAD( "dr10.4n", 0x08000, 0x4000, CRC(820ce252) SHA1(910dbb910fdfcf9542360c0cd78c58c93d1d0c26) )
2109
2110 ROM_REGION( 0x0920, REGION_PROMS, 0 )
2111 ROM_LOAD( "dr25.3f", 0x0000, 0x0100, CRC(8e91430b) SHA1(a7a1567a0fd31cd65260f3ddb5280368704378bd) ) /* character palette red component */
2112 ROM_LOAD( "dr30.1m", 0x0100, 0x0100, CRC(28c73263) SHA1(ffeb8d1310759bf20b1624ab92fc91078726679c) ) /* sprite palette red component */
2113 ROM_LOAD( "dr26.3h", 0x0200, 0x0100, CRC(b563b93f) SHA1(86aefdaa63b35fe82f9f70eff3e4c14629f7a184) ) /* character palette green component */
2114 ROM_LOAD( "dr31.1n", 0x0300, 0x0100, CRC(3529210e) SHA1(3042ec941bdcb873077e77cffe36d4a28298bbbb) ) /* sprite palette green component */
2115 ROM_LOAD( "dr27.3j", 0x0400, 0x0100, CRC(70d668ef) SHA1(2cc647f2708932105bb9a5130aacc5a8a160e418) ) /* character palette blue component */
2116 ROM_LOAD( "dr29.1l", 0x0500, 0x0100, CRC(1173a754) SHA1(dbb7d02b72ae1842e0d17aee324a5b85ff2a2178) ) /* sprite palette blue component */
2117 ROM_LOAD( "dr32.5p", 0x0600, 0x0020, CRC(11cd1f2e) SHA1(45ceb84ff373127ff370610c1ce8d83fc6045bcb) ) /* sprite height, one entry per 32 */
2118 /* sprites. Used at run time! */
2119 ROM_LOAD( "dr28.8f", 0x0620, 0x0200, CRC(6cef0fbd) SHA1(0c5c63a203e7bd852a3574c18f212487caf529ca) ) /* unknown */
2120 ROM_LOAD( "dr33.6f", 0x0820, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2121 ROM_END
2122
2123
2124 ROM_START( yanchamr )
2125 ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* main CPU */
2126 ROM_LOAD( "ky_a-4e-.bin", 0x00000, 0x04000, CRC(c73ad2d6) SHA1(2e5d100e043f77c056b0d5bb80f310a6866fd2b1) )
2127 ROM_LOAD( "ky_a-4d-.bin", 0x04000, 0x04000, CRC(401af828) SHA1(eec1c082f42e441071fcf005803205b2275b0327) )
2128 ROM_LOAD( "ky_t-8k-.bin", 0x10000, 0x08000, CRC(e967de88) SHA1(75c0890eb98feb882fe01de5e93e228690e00904) ) /* banked at 8000-9fff */
2129 ROM_LOAD( "ky_t-8l-.bin", 0x18000, 0x08000, CRC(a929110b) SHA1(87334f946e14c79426bc7a14e8da984bb8ef9cfc) )
2130 /* ROM_CONTINUE( 0x28000, 0x08000 ) */
2131
2132 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2133 ROM_LOAD( "ky_a-3a-.bin", 0x4000, 0x04000, CRC(cb365f3b) SHA1(fefad25459eb00d228ee29931c5714ae895b76c7) )
2134 ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, CRC(e66897bd) SHA1(04ea4a857a94d4e884fb28623ec6195dae701e25) )
2135 ROM_LOAD( "dr02.3f", 0xc000, 0x04000, CRC(f9e31e26) SHA1(712b1bde4b3c18c9ac26d58ade48316af004e733) ) /* 6803 code */
2136
2137 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
2138 ROM_LOAD( "ky_t-2c-.bin", 0x00000, 0x8000, CRC(cb9761fc) SHA1(3eaf289ebd4ee1b1659dda0804fc0597ccc76218) ) /* tiles */
2139 ROM_LOAD( "ky_t-2d-.bin", 0x08000, 0x8000, CRC(59732741) SHA1(e77fbe3b0cd57a6a3fea7da46d8f23a4bcc7b583) )
2140 ROM_LOAD( "ky_t-2a-.bin", 0x10000, 0x8000, CRC(0370fd82) SHA1(0ddad9638b778f5651fccbec9b2c711c8ad07098) )
2141
2142 ROM_REGION( 0x30000, REGION_GFX2, ROMREGION_DISPOSE )
2143 ROM_LOAD( "ky_b-4k-.bin", 0x00000, 0x4000, CRC(263a9d10) SHA1(fd44163d8bb2e8b46d07f1ba827033f1fe873d29) ) /* sprites */
2144 ROM_LOAD( "ky_b-4f-.bin", 0x04000, 0x4000, CRC(86e3d4a8) SHA1(98d938e47308e90434e16b55ab90123cf18d34c6) )
2145 ROM_LOAD( "ky_b-4l-.bin", 0x08000, 0x4000, CRC(19fa7558) SHA1(0211e0d6af43b9ef6bb5e6115215c9c96e479e62) )
2146 ROM_LOAD( "ky_b-4h-.bin", 0x0c000, 0x4000, CRC(93e6665c) SHA1(c2ca394befcb01587882641d9b170a8a5c71646c) )
2147 ROM_LOAD( "ky_b-3n-.bin", 0x10000, 0x4000, CRC(0287c525) SHA1(5c19cc5806b5ef0846bcdf67ac762ba2a7934d5c) )
2148 ROM_LOAD( "ky_b-4n-.bin", 0x14000, 0x4000, CRC(764946e0) SHA1(224487fa62d80e7210bdff5ea90c82d97d6dee37) )
2149 ROM_LOAD( "ky_b-4m-.bin", 0x18000, 0x4000, CRC(eced5db9) SHA1(a6cf0c8cfe923166223c75e2ae8fbc35e625b21e) )
2150 ROM_LOAD( "ky_b-3m-.bin", 0x1c000, 0x4000, CRC(be6cee44) SHA1(c1a93bda531c8f227b7deb91368c08b6fc206baa) )
2151 ROM_LOAD( "ky_b-4c-.bin", 0x20000, 0x4000, CRC(84d6b65d) SHA1(675134ae87d64da8d8d4dcc344106888013eba35) )
2152 ROM_LOAD( "ky_b-4e-.bin", 0x24000, 0x4000, CRC(f91f9273) SHA1(a24f6b82eee10267f18751eb73a6dcd33e175a8a) )
2153 ROM_LOAD( "ky_b-4d-.bin", 0x28000, 0x4000, CRC(a2fc15f0) SHA1(27b668db7976325b66f7006aecebc6f5b196e16f) )
2154 ROM_LOAD( "ky_b-4a-.bin", 0x2c000, 0x4000, CRC(ff2b9c8a) SHA1(99bd093a7ad5c039740fbb73b61f1a309054dd68) )
2155
2156 ROM_REGION( 0x0c000, REGION_GFX3, ROMREGION_DISPOSE )
2157 ROM_LOAD( "ky_t-4l-.bin", 0x00000, 0x4000, CRC(1d0a9253) SHA1(4952c945502a19c6b4e7ab1ae6f5a374bad7fe60) ) /* chars */
2158 ROM_LOAD( "ky_t-4m-.bin", 0x04000, 0x4000, CRC(4075c396) SHA1(5d1612a89631800693c79dce01fa2494a8b1f49a) )
2159 ROM_LOAD( "ky_t-4n-.bin", 0x08000, 0x4000, CRC(7564f2ff) SHA1(fbf0adf3d8e15d899ece96e34019cfcc56c52ddb) )
2160
2161 ROM_REGION( 0x0920, REGION_PROMS, 0 )
2162 ROM_LOAD( "dr25.3f", 0x0000, 0x0100, CRC(8e91430b) SHA1(a7a1567a0fd31cd65260f3ddb5280368704378bd) ) /* character palette red component */
2163 ROM_LOAD( "dr30.1m", 0x0100, 0x0100, CRC(28c73263) SHA1(ffeb8d1310759bf20b1624ab92fc91078726679c) ) /* sprite palette red component */
2164 ROM_LOAD( "dr26.3h", 0x0200, 0x0100, CRC(b563b93f) SHA1(86aefdaa63b35fe82f9f70eff3e4c14629f7a184) ) /* character palette green component */
2165 ROM_LOAD( "dr31.1n", 0x0300, 0x0100, CRC(3529210e) SHA1(3042ec941bdcb873077e77cffe36d4a28298bbbb) ) /* sprite palette green component */
2166 ROM_LOAD( "dr27.3j", 0x0400, 0x0100, CRC(70d668ef) SHA1(2cc647f2708932105bb9a5130aacc5a8a160e418) ) /* character palette blue component */
2167 ROM_LOAD( "dr29.1l", 0x0500, 0x0100, CRC(1173a754) SHA1(dbb7d02b72ae1842e0d17aee324a5b85ff2a2178) ) /* sprite palette blue component */
2168 ROM_LOAD( "dr32.5p", 0x0600, 0x0020, CRC(11cd1f2e) SHA1(45ceb84ff373127ff370610c1ce8d83fc6045bcb) ) /* sprite height, one entry per 32 */
2169 /* sprites. Used at run time! */
2170 ROM_LOAD( "dr28.8f", 0x0620, 0x0200, CRC(6cef0fbd) SHA1(0c5c63a203e7bd852a3574c18f212487caf529ca) ) /* unknown */
2171 ROM_LOAD( "dr33.6f", 0x0820, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2172 ROM_END
2173
2174 ROM_START( spelunkr )
2175 ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* main CPU */
2176 ROM_LOAD( "spra.4e", 0x00000, 0x4000, CRC(cf811201) SHA1(9b29880b28e1d94b07a16b5455bc498dc882342f) )
2177 ROM_LOAD( "spra.4d", 0x04000, 0x4000, CRC(bb4faa4f) SHA1(350f7b086ed6357354d60548419d139fddb34c9d) )
2178 ROM_LOAD( "sprm.7c", 0x10000, 0x4000, CRC(fb6197e2) SHA1(8c3ccc2c14d076a1d6d14c2548a101a87af4211a) ) /* banked at 8000-9fff */
2179 ROM_LOAD( "sprm.7b", 0x14000, 0x4000, CRC(26bb25a4) SHA1(d384901042664a4e46d7b6b5d183ce49e360dac8) )
2180
2181 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2182 ROM_LOAD( "spra.3d", 0x8000, 0x04000, CRC(4110363c) SHA1(8c1f4966291887c17175ab921acd732be6266186) ) /* adpcm data */
2183 ROM_LOAD( "spra.3f", 0xc000, 0x04000, CRC(67a9d2e6) SHA1(d859648d7a3f05ae777a3909ddcd866b786c5b26) ) /* 6803 code */
2184
2185 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
2186 ROM_LOAD( "sprm.1d", 0x00000, 0x4000, CRC(4ef7ae89) SHA1(a32362d6002300838d99948b22d687d60d033060) ) /* tiles */
2187 ROM_LOAD( "sprm.1e", 0x04000, 0x4000, CRC(a3755180) SHA1(e0db62209a4e35efdaac30ab3343854bdb58d418) )
2188 ROM_LOAD( "sprm.3c", 0x08000, 0x4000, CRC(b4008e6a) SHA1(ee144514b18dcb54f2efc503181c9feaa898ea25) )
2189 ROM_LOAD( "sprm.3b", 0x0c000, 0x4000, CRC(f61cf012) SHA1(9803a80a2ef0f6469e7b00faf5b11c98ac47854f) )
2190 ROM_LOAD( "sprm.1c", 0x10000, 0x4000, CRC(58b21c76) SHA1(0e524be89035208a0c212ff160150fc82ac4da7f) )
2191 ROM_LOAD( "sprm.1b", 0x14000, 0x4000, CRC(a95cb3e5) SHA1(4bb1e3aa81f8594cda1646e0c50b82250ae3e3b0) )
2192
2193 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
2194 ROM_LOAD( "sprb.4k", 0x00000, 0x4000, CRC(e7f0e861) SHA1(864ea5bcd1a2f87c1d63ec9fb27cf69281b1697e) ) /* sprites */
2195 ROM_LOAD( "sprb.4f", 0x04000, 0x4000, CRC(32663097) SHA1(8cfa5e6b1713194ab435af6523e5df4ee266dc73) )
2196 ROM_LOAD( "sprb.3p", 0x08000, 0x4000, CRC(8fbaf373) SHA1(cc0bee147f09f417c1d588440de6622bf6967a73) )
2197 ROM_LOAD( "sprb.4p", 0x0c000, 0x4000, CRC(37069b76) SHA1(c31c2f5575219c927a8ed6d1a9fc88bbf494c0c0) )
2198 ROM_LOAD( "sprb.4c", 0x10000, 0x4000, CRC(cfe46a88) SHA1(150d106c0aeec87b993f29a01904e7a65eda0921) )
2199 ROM_LOAD( "sprb.4e", 0x14000, 0x4000, CRC(11c48979) SHA1(4500fb0f10b6421d82f89e18d6f20406061a3ecd) )
2200
2201 ROM_REGION( 0x0c000, REGION_GFX3, ROMREGION_DISPOSE )
2202 ROM_LOAD( "sprm.4p", 0x00000, 0x0800, CRC(4dfe2e63) SHA1(981950cabc40e052c021fbe882ce3f1187a832fd) ) /* chars */
2203 ROM_CONTINUE( 0x02000, 0x0800 ) /* first and second half identical, */
2204 ROM_CONTINUE( 0x00800, 0x0800 ) /* second half not used by the driver */
2205 ROM_CONTINUE( 0x02800, 0x0800 )
2206 ROM_CONTINUE( 0x00000, 0x0800 )
2207 ROM_CONTINUE( 0x03000, 0x0800 )
2208 ROM_CONTINUE( 0x00800, 0x0800 )
2209 ROM_CONTINUE( 0x03800, 0x0800 )
2210 ROM_LOAD( "sprm.4l", 0x04000, 0x0800, CRC(239f2cd4) SHA1(dbf602c33d8f2c613971f16bd1da4d7263f32c69) )
2211 ROM_CONTINUE( 0x06000, 0x0800 )
2212 ROM_CONTINUE( 0x04800, 0x0800 )
2213 ROM_CONTINUE( 0x06800, 0x0800 )
2214 ROM_CONTINUE( 0x05000, 0x0800 )
2215 ROM_CONTINUE( 0x07000, 0x0800 )
2216 ROM_CONTINUE( 0x05800, 0x0800 )
2217 ROM_CONTINUE( 0x07800, 0x0800 )
2218 ROM_LOAD( "sprm.4m", 0x08000, 0x0800, CRC(d6d07d70) SHA1(4f74efcc486775dfa95279b6e26a01b60cc43795) )
2219 ROM_CONTINUE( 0x0a000, 0x0800 )
2220 ROM_CONTINUE( 0x08800, 0x0800 )
2221 ROM_CONTINUE( 0x0a800, 0x0800 )
2222 ROM_CONTINUE( 0x09000, 0x0800 )
2223 ROM_CONTINUE( 0x0b000, 0x0800 )
2224 ROM_CONTINUE( 0x09800, 0x0800 )
2225 ROM_CONTINUE( 0x0b800, 0x0800 )
2226
2227 ROM_REGION( 0x0920, REGION_PROMS, 0 )
2228 ROM_LOAD( "sprm.2k", 0x0000, 0x0100, CRC(fd8fa991) SHA1(6e546a57de10223886a9a7480580b03b759dbd87) ) /* character palette red component */
2229 ROM_LOAD( "sprb.1m", 0x0100, 0x0100, CRC(8d8cccad) SHA1(e984d358b6fac9e3cb4618d11ddb22e9eb422dd0) ) /* sprite palette red component */
2230 ROM_LOAD( "sprm.2j", 0x0200, 0x0100, CRC(0e3890b4) SHA1(1b7c858a5729ddd3cbc7329b93082ec588a55131) ) /* character palette green component */
2231 ROM_LOAD( "sprb.1n", 0x0300, 0x0100, CRC(c40e1cb2) SHA1(fb2aac95c852ef67d03fd2c4b5f5f9330405d435) ) /* sprite palette green component */
2232 ROM_LOAD( "sprm.2h", 0x0400, 0x0100, CRC(0478082b) SHA1(e831ba7ef71632da2ab0bcc3cebbd6ef9f39a690) ) /* character palette blue component */
2233 ROM_LOAD( "sprb.1l", 0x0500, 0x0100, CRC(3ec46248) SHA1(734fe63b9f6e60cdd3bcc9664521b20ffe2765d9) ) /* sprite palette blue component */
2234 ROM_LOAD( "sprb.5p", 0x0600, 0x0020, CRC(746c6238) SHA1(10b901bb1eca69b274999ad7ada3dd6c58bc5d84) ) /* sprite height, one entry per 32 */
2235 /* sprites. Used at run time! */
2236 ROM_LOAD( "sprm.8h", 0x0620, 0x0200, CRC(875cc442) SHA1(1117b6ae516c361b4cc4d0b7146ca98472ce2b21) ) /* unknown */
2237 ROM_LOAD( "sprb.6f", 0x0820, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2238 ROM_END
2239
2240 ROM_START( spelnkrj )
2241 ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* main CPU */
2242 ROM_LOAD( "spr_a4ec.bin", 0x00000, 0x4000, CRC(4e94a80c) SHA1(591ec5aa3fb508eedd120d9f7fb9454c3547148a) )
2243 ROM_LOAD( "spr_a4dd.bin", 0x04000, 0x4000, CRC(e7c0cbce) SHA1(19f914e9155972c91ccc8dc5b133f35246613c52) )
2244 ROM_LOAD( "spr_m7cc.bin", 0x10000, 0x4000, CRC(57598a36) SHA1(7d9c5790eb2a79c7977ca7b590d228685bd3a6b2) ) /* banked at 8000-9fff */
2245 ROM_LOAD( "spr_m7bd.bin", 0x14000, 0x4000, CRC(ecf5137f) SHA1(6daa88b40698e2a3a11206cd946465621bb3c059) )
2246
2247 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2248 ROM_LOAD( "spra.3d", 0x8000, 0x04000, CRC(4110363c) SHA1(8c1f4966291887c17175ab921acd732be6266186) ) /* adpcm data */
2249 ROM_LOAD( "spra.3f", 0xc000, 0x04000, CRC(67a9d2e6) SHA1(d859648d7a3f05ae777a3909ddcd866b786c5b26) ) /* 6803 code */
2250
2251 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
2252 ROM_LOAD( "sprm.1d", 0x00000, 0x4000, CRC(4ef7ae89) SHA1(a32362d6002300838d99948b22d687d60d033060) ) /* tiles */
2253 ROM_LOAD( "sprm.1e", 0x04000, 0x4000, CRC(a3755180) SHA1(e0db62209a4e35efdaac30ab3343854bdb58d418) )
2254 ROM_LOAD( "sprm.3c", 0x08000, 0x4000, CRC(b4008e6a) SHA1(ee144514b18dcb54f2efc503181c9feaa898ea25) )
2255 ROM_LOAD( "sprm.3b", 0x0c000, 0x4000, CRC(f61cf012) SHA1(9803a80a2ef0f6469e7b00faf5b11c98ac47854f) )
2256 ROM_LOAD( "sprm.1c", 0x10000, 0x4000, CRC(58b21c76) SHA1(0e524be89035208a0c212ff160150fc82ac4da7f) )
2257 ROM_LOAD( "sprm.1b", 0x14000, 0x4000, CRC(a95cb3e5) SHA1(4bb1e3aa81f8594cda1646e0c50b82250ae3e3b0) )
2258
2259 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
2260 ROM_LOAD( "sprb.4k", 0x00000, 0x4000, CRC(e7f0e861) SHA1(864ea5bcd1a2f87c1d63ec9fb27cf69281b1697e) ) /* sprites */
2261 ROM_LOAD( "sprb.4f", 0x04000, 0x4000, CRC(32663097) SHA1(8cfa5e6b1713194ab435af6523e5df4ee266dc73) )
2262 ROM_LOAD( "sprb.3p", 0x08000, 0x4000, CRC(8fbaf373) SHA1(cc0bee147f09f417c1d588440de6622bf6967a73) )
2263 ROM_LOAD( "sprb.4p", 0x0c000, 0x4000, CRC(37069b76) SHA1(c31c2f5575219c927a8ed6d1a9fc88bbf494c0c0) )
2264 ROM_LOAD( "sprb.4c", 0x10000, 0x4000, CRC(cfe46a88) SHA1(150d106c0aeec87b993f29a01904e7a65eda0921) )
2265 ROM_LOAD( "sprb.4e", 0x14000, 0x4000, CRC(11c48979) SHA1(4500fb0f10b6421d82f89e18d6f20406061a3ecd) )
2266
2267 ROM_REGION( 0x0c000, REGION_GFX3, ROMREGION_DISPOSE )
2268 ROM_LOAD( "sprm.4p", 0x00000, 0x0800, CRC(4dfe2e63) SHA1(981950cabc40e052c021fbe882ce3f1187a832fd) ) /* chars */
2269 ROM_CONTINUE( 0x02000, 0x0800 ) /* first and second half identical, */
2270 ROM_CONTINUE( 0x00800, 0x0800 ) /* second half not used by the driver */
2271 ROM_CONTINUE( 0x02800, 0x0800 )
2272 ROM_CONTINUE( 0x00000, 0x0800 )
2273 ROM_CONTINUE( 0x03000, 0x0800 )
2274 ROM_CONTINUE( 0x00800, 0x0800 )
2275 ROM_CONTINUE( 0x03800, 0x0800 )
2276 ROM_LOAD( "sprm.4l", 0x04000, 0x0800, CRC(239f2cd4) SHA1(dbf602c33d8f2c613971f16bd1da4d7263f32c69) )
2277 ROM_CONTINUE( 0x06000, 0x0800 )
2278 ROM_CONTINUE( 0x04800, 0x0800 )
2279 ROM_CONTINUE( 0x06800, 0x0800 )
2280 ROM_CONTINUE( 0x05000, 0x0800 )
2281 ROM_CONTINUE( 0x07000, 0x0800 )
2282 ROM_CONTINUE( 0x05800, 0x0800 )
2283 ROM_CONTINUE( 0x07800, 0x0800 )
2284 ROM_LOAD( "sprm.4m", 0x08000, 0x0800, CRC(d6d07d70) SHA1(4f74efcc486775dfa95279b6e26a01b60cc43795) )
2285 ROM_CONTINUE( 0x0a000, 0x0800 )
2286 ROM_CONTINUE( 0x08800, 0x0800 )
2287 ROM_CONTINUE( 0x0a800, 0x0800 )
2288 ROM_CONTINUE( 0x09000, 0x0800 )
2289 ROM_CONTINUE( 0x0b000, 0x0800 )
2290 ROM_CONTINUE( 0x09800, 0x0800 )
2291 ROM_CONTINUE( 0x0b800, 0x0800 )
2292
2293 ROM_REGION( 0x0920, REGION_PROMS, 0 )
2294 ROM_LOAD( "sprm.2k", 0x0000, 0x0100, CRC(fd8fa991) SHA1(6e546a57de10223886a9a7480580b03b759dbd87) ) /* character palette red component */
2295 ROM_LOAD( "sprb.1m", 0x0100, 0x0100, CRC(8d8cccad) SHA1(e984d358b6fac9e3cb4618d11ddb22e9eb422dd0) ) /* sprite palette red component */
2296 ROM_LOAD( "sprm.2j", 0x0200, 0x0100, CRC(0e3890b4) SHA1(1b7c858a5729ddd3cbc7329b93082ec588a55131) ) /* character palette green component */
2297 ROM_LOAD( "sprb.1n", 0x0300, 0x0100, CRC(c40e1cb2) SHA1(fb2aac95c852ef67d03fd2c4b5f5f9330405d435) ) /* sprite palette green component */
2298 ROM_LOAD( "sprm.2h", 0x0400, 0x0100, CRC(0478082b) SHA1(e831ba7ef71632da2ab0bcc3cebbd6ef9f39a690) ) /* character palette blue component */
2299 ROM_LOAD( "sprb.1l", 0x0500, 0x0100, CRC(3ec46248) SHA1(734fe63b9f6e60cdd3bcc9664521b20ffe2765d9) ) /* sprite palette blue component */
2300 ROM_LOAD( "sprb.5p", 0x0600, 0x0020, CRC(746c6238) SHA1(10b901bb1eca69b274999ad7ada3dd6c58bc5d84) ) /* sprite height, one entry per 32 */
2301 /* sprites. Used at run time! */
2302 ROM_LOAD( "sprm.8h", 0x0620, 0x0200, CRC(875cc442) SHA1(1117b6ae516c361b4cc4d0b7146ca98472ce2b21) ) /* unknown */
2303 ROM_LOAD( "sprb.6f", 0x0820, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2304 ROM_END
2305
2306 ROM_START( spelunk2 )
2307 ROM_REGION( 0x24000, REGION_CPU1, 0 ) /* main CPU */
2308 ROM_LOAD( "sp2-a.4e", 0x00000, 0x4000, CRC(96c04bbb) SHA1(5d7ee2d21d30e3ccbb428c2f9771568dbf3cfdb4) )
2309 ROM_LOAD( "sp2-a.4d", 0x04000, 0x4000, CRC(cb38c2ff) SHA1(28ab5f0c65657ee0eaa82275bdb60298eedd3821) )
2310 ROM_LOAD( "sp2-r.7d", 0x10000, 0x8000, CRC(558837ea) SHA1(5fa8a5ed55d155c3fc117391ab779c77e86fa349) ) /* banked at 9000-9fff */
2311 ROM_LOAD( "sp2-r.7c", 0x18000, 0x8000, CRC(4b380162) SHA1(867e441411e8b74d1d6ce0333c47b1aec3d4f5f2) ) /* banked at 9000-9fff */
2312 ROM_LOAD( "sp2-r.7b", 0x20000, 0x4000, CRC(7709a1fe) SHA1(4c2b57982b3d3e4524a8e0d24f38d3c3f5a809f3) ) /* banked at 8000-8fff */
2313
2314 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2315 ROM_LOAD( "sp2-a.3d", 0x8000, 0x04000, CRC(839ec7e2) SHA1(a2c45553b149fc16b8af6338627cd2a8a31e08a0) ) /* adpcm data */
2316 ROM_LOAD( "sp2-a.3f", 0xc000, 0x04000, CRC(ad3ce898) SHA1(36876b6d51a480a0664413dfcc57ef343e0f9965) ) /* 6803 code */
2317
2318 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
2319 ROM_LOAD( "sp2-r.1d", 0x00000, 0x8000, CRC(c19fa4c9) SHA1(49463ce1a813e4df2a3c1ae214a9d7c5cd1cc39f) ) /* tiles */
2320 ROM_LOAD( "sp2-r.3b", 0x08000, 0x8000, CRC(366604af) SHA1(1c7ab47693984971f94b70a5fc827a2dc33b1446) )
2321 ROM_LOAD( "sp2-r.1b", 0x10000, 0x8000, CRC(3a0c4d47) SHA1(b1fd056990074f1cec084cdc152006ec64f7e279) )
2322
2323 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
2324 ROM_LOAD( "sp2-b.4k", 0x00000, 0x4000, CRC(6cb67a17) SHA1(599c9dbf4fb649d8a19f9531ef5eb37216051715) ) /* sprites */
2325 ROM_LOAD( "sp2-b.4f", 0x04000, 0x4000, CRC(e4a1166f) SHA1(7ec14fc0b96ab4118cb4727c4292ac45805364d4) )
2326 ROM_LOAD( "sp2-b.3n", 0x08000, 0x4000, CRC(f59e8b76) SHA1(fd33d72235c8bb119e40f20a36bce750a532dbd1) )
2327 ROM_LOAD( "sp2-b.4n", 0x0c000, 0x4000, CRC(fa65bac9) SHA1(c394611e2323e7e0bc4bab897f88c3e7fbc2cbd3) )
2328 ROM_LOAD( "sp2-b.4c", 0x10000, 0x4000, CRC(1caf7013) SHA1(a2c59ce7dfc48913631d17ac4feedd873a6ad6ca) )
2329 ROM_LOAD( "sp2-b.4e", 0x14000, 0x4000, CRC(780a463b) SHA1(52b70027633cf58b2831dab3ab29fc54b336bac7) )
2330
2331 ROM_REGION( 0x0c000, REGION_GFX3, ROMREGION_DISPOSE )
2332 ROM_LOAD( "sp2-r.4l", 0x00000, 0x0800, CRC(6a4b2d8b) SHA1(34d3577d867882aa1f154ad000504831dd6262bc) ) /* chars */
2333 ROM_CONTINUE( 0x02000, 0x0800 ) /* first and second half identical, */
2334 ROM_CONTINUE( 0x00800, 0x0800 ) /* second half not used by the driver */
2335 ROM_CONTINUE( 0x02800, 0x0800 )
2336 ROM_CONTINUE( 0x00000, 0x0800 )
2337 ROM_CONTINUE( 0x03000, 0x0800 )
2338 ROM_CONTINUE( 0x00800, 0x0800 )
2339 ROM_CONTINUE( 0x03800, 0x0800 )
2340 ROM_LOAD( "sp2-r.4m", 0x04000, 0x0800, CRC(e1368b61) SHA1(75a46a5cc87605722c0407bfa2cf032b146c7674) )
2341 ROM_CONTINUE( 0x06000, 0x0800 )
2342 ROM_CONTINUE( 0x04800, 0x0800 )
2343 ROM_CONTINUE( 0x06800, 0x0800 )
2344 ROM_CONTINUE( 0x05000, 0x0800 )
2345 ROM_CONTINUE( 0x07000, 0x0800 )
2346 ROM_CONTINUE( 0x05800, 0x0800 )
2347 ROM_CONTINUE( 0x07800, 0x0800 )
2348 ROM_LOAD( "sp2-r.4p", 0x08000, 0x0800, CRC(fc138e13) SHA1(4f2a86e4f3fc0896a9ec35d5fdee9181b1c84aec) )
2349 ROM_CONTINUE( 0x0a000, 0x0800 )
2350 ROM_CONTINUE( 0x08800, 0x0800 )
2351 ROM_CONTINUE( 0x0a800, 0x0800 )
2352 ROM_CONTINUE( 0x09000, 0x0800 )
2353 ROM_CONTINUE( 0x0b000, 0x0800 )
2354 ROM_CONTINUE( 0x09800, 0x0800 )
2355 ROM_CONTINUE( 0x0b800, 0x0800 )
2356
2357 ROM_REGION( 0x0a20, REGION_PROMS, 0 )
2358 ROM_LOAD( "sp2-r.1k", 0x0000, 0x0200, CRC(31c1bcdc) SHA1(6504d5bafad427a1104562f84319d9e29f6c4800) ) /* chars red and green component */
2359 ROM_LOAD( "sp2-r.2k", 0x0200, 0x0100, CRC(1cf5987e) SHA1(811538304aff683d2a2a925b7e7ac990454d75f4) ) /* chars blue component */
2360 ROM_LOAD( "sp2-r.2j", 0x0300, 0x0100, CRC(1acbe2a5) SHA1(22b6eb43733eb40c6d2deb8a008e43c651d891e8) ) /* chars blue component */
2361 ROM_LOAD( "sp2-b.1m", 0x0400, 0x0100, CRC(906104c7) SHA1(e5e656d4da7f9dac32e2a112ce03be5dc3a4c46e) ) /* sprites red component */
2362 ROM_LOAD( "sp2-b.1n", 0x0500, 0x0100, CRC(5a564c06) SHA1(b9234983ccd69b90ae3aed19b1ac4c6c329d8302) ) /* sprites green component */
2363 ROM_LOAD( "sp2-b.1l", 0x0600, 0x0100, CRC(8f4a2e3c) SHA1(1d445ce63fb3e043d67f98d158dc7f0fab244248) ) /* sprites blue component */
2364 ROM_LOAD( "sp2-b.5p", 0x0700, 0x0020, CRC(cd126f6a) SHA1(f5a902bc93dbc98f1c78e08699ed7d1fc5d03481) ) /* sprite height, one entry per 32 */
2365 /* sprites. Used at run time! */
2366 ROM_LOAD( "sp2-r.8j", 0x0720, 0x0200, CRC(875cc442) SHA1(1117b6ae516c361b4cc4d0b7146ca98472ce2b21) ) /* unknown */
2367 ROM_LOAD( "sp2-b.6f", 0x0920, 0x0100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */
2368 ROM_END
2369
2370 ROM_START( youjyudn )
2371 ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* main CPU */
2372 ROM_LOAD( "yju_a4eb.bin", 0x00000, 0x4000, CRC(0d356bdc) SHA1(20ddd68720d733791fb3cf791b26e100af12d609) )
2373 ROM_LOAD( "yju_a4db.bin", 0x04000, 0x4000, CRC(c169be13) SHA1(2f7e65924d152206fae97e5f50197963e2c566df) )
2374 ROM_LOAD( "yju_p4cb.0", 0x10000, 0x4000, CRC(60baf3b1) SHA1(2ab577bdbec7c8695a8f530b3e476aa91447cd60) ) /* banked at 8000-bfff */
2375 ROM_LOAD( "yju_p4eb.1", 0x14000, 0x4000, CRC(8d0521f8) SHA1(e03385b94194806e347cd6be4151686e2f38c890) )
2376
2377 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2378 ROM_LOAD( "yju_a3fb.bin", 0xc000, 0x04000, CRC(e15c8030) SHA1(bbbf4fa0349d614af86e356a106d5dd24b0b8baa) ) /* 6803 code */
2379
2380 ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )
2381 ROM_LOAD( "yju_p3bb.0", 0x00000, 0x4000, CRC(c017913c) SHA1(587d143de2a3c057043cbc4b3f8e82ba7b35c256) ) /* tiles (first half empty) */
2382 ROM_CONTINUE( 0x00000, 0x4000 )
2383 ROM_LOAD( "yju_p1bb.1", 0x04000, 0x4000, CRC(94627523) SHA1(62c6dc736a891be9adb0f520263b0f1f2194ffed) )
2384 ROM_CONTINUE( 0x04000, 0x4000 )
2385 ROM_LOAD( "yju_p1cb.2", 0x08000, 0x4000, CRC(6a378c56) SHA1(c7bf28ac77dd7dd5ab44ad20e46e641df2def6b5) )
2386 ROM_CONTINUE( 0x08000, 0x4000 )
2387
2388 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
2389 ROM_LOAD( "yju_b4ka.00", 0x00000, 0x4000, CRC(1bbb864a) SHA1(facc45c363e402f348a0384ba402d9ee86baf508) ) /* sprites */
2390 ROM_LOAD( "yju_b4fa.01", 0x04000, 0x4000, CRC(14b4dd24) SHA1(c4d834ace82b2acc148415b24319410a901f3c44) )
2391 ROM_LOAD( "yju_b3na.10", 0x08000, 0x4000, CRC(68879321) SHA1(04410de27ad44e5bf9271006d169122726c3244d) )
2392 ROM_LOAD( "yju_b4na.11", 0x0c000, 0x4000, CRC(2860a68b) SHA1(7c9796d7e09c46ebcaf15239c3639f5b807291d6) )
2393 ROM_LOAD( "yju_b4ca.20", 0x10000, 0x4000, CRC(ab365829) SHA1(bd79af8fd332526da8274c2a4be608a49dadc197) )
2394 ROM_LOAD( "yju_b4ea.21", 0x14000, 0x4000, CRC(b36c31e4) SHA1(1fb920962abc2d7b32d3ac5c885b047e3434c0dd) )
2395
2396 ROM_REGION( 0x0c000, REGION_GFX3, ROMREGION_DISPOSE )
2397 ROM_LOAD( "yju_p4lb.2", 0x00000, 0x4000, CRC(87878d9b) SHA1(75f6ba4c8b93ceba2ed59958d7836f1b1ac9c6e1) ) /* chars */
2398 ROM_LOAD( "yju_p4mb.1", 0x04000, 0x4000, CRC(1e1a0d09) SHA1(7a4ef033d962f84e46368a21381456972d10b6dc) )
2399 ROM_LOAD( "yju_p4pb.0", 0x08000, 0x4000, CRC(b4ab520b) SHA1(646f2467e335e527662fec2bbcb771fbb5f1b696) )
2400
2401 ROM_REGION( 0x0920, REGION_PROMS, 0 )
2402 ROM_LOAD( "yju_p2jb.bpr", 0x0000, 0x0100, CRC(a4483631) SHA1(aa8a9fadb0b0624b5784f8e9b31f774c6360b47c) ) /* character palette red component */
2403 ROM_LOAD( "yju_b1ma.r", 0x0100, 0x0100, CRC(a8340e13) SHA1(258da6946043d9ba7a68402299f87fda26482a1a) ) /* sprite palette red component */
2404 ROM_LOAD( "yju_p2kb.bpr", 0x0200, 0x0100, CRC(85481103) SHA1(1216e359f9f2057f0c7f303f6e765ec39a316df6) ) /* character palette green component */
2405 ROM_LOAD( "yju_b1na.g", 0x0300, 0x0100, CRC(f5b4bc41) SHA1(78271b7078a8d485ce38e3a0d647f6c071441e62) ) /* sprite palette green component */
2406 ROM_LOAD( "yju_p2hb.bpr", 0x0400, 0x0100, CRC(a6fd355c) SHA1(98c25797c0f24cb2df775f18bcf899501d93ca2c) ) /* character palette blue component */
2407 ROM_LOAD( "yju_b1la.b", 0x0500, 0x0100, CRC(45e10491) SHA1(0ae8918a9854e44970b0d3eddc52867920711f1a) ) /* sprite palette blue component */
2408 ROM_LOAD( "yju_b-5p.bpr", 0x0600, 0x0020, CRC(2095e6a3) SHA1(32ef8b56d161807b6eff91b88636ffad558742ea) ) /* sprite height, one entry per 32 */
2409 /* sprites. Used at run time! */
2410 ROM_LOAD( "yju_p-8d.bpr", 0x0620, 0x0200, CRC(6cef0fbd) SHA1(0c5c63a203e7bd852a3574c18f212487caf529ca) ) /* unknown */
2411 ROM_LOAD( "yju_b-6f.bpr", 0x0820, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as kungfum */
2412 ROM_END
2413
2414 ROM_START( horizon )
2415 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
2416 ROM_LOAD( "hrza-4e", 0x0000, 0x4000, CRC(98b96ba2) SHA1(8478ec3b39c970c6008f078cbb5ab39462865015) )
2417 ROM_LOAD( "hrza-4d", 0x4000, 0x4000, CRC(06b06ac7) SHA1(d9ae9633455733fd14fc4d448b85365bfebef446) )
2418 ROM_LOAD( "hrza-4b", 0x8000, 0x4000, CRC(39c0bd02) SHA1(8d3b465ef7db11863cd2d343656e99cfb77c89ef) )
2419
2420 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU (6803) */
2421 ROM_LOAD( "hrza-3f", 0xc000, 0x4000, CRC(7412c99f) SHA1(33e7cffa08d9644c78e1bada9a2b08ce5d3f97e1) )
2422
2423 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
2424 ROM_LOAD( "hrzd-4d", 0x00000, 0x2000, CRC(b93ed581) SHA1(e9ab0925ebb3bceb12fb380ff157b162186e33b3) ) /* characters */
2425 ROM_LOAD( "hrzd-4c", 0x02000, 0x2000, CRC(1cf73b53) SHA1(f20a2154aedb40f3b454f13704354d0ae27e895b) )
2426 ROM_LOAD( "hrzd-4a", 0x04000, 0x2000, CRC(eace8d53) SHA1(6460c123795df42713571c00ed6a4be01629afa2) )
2427
2428 ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE )
2429 ROM_LOAD( "hrzb-4k.00", 0x00000, 0x4000, CRC(11d2f3a1) SHA1(48e007a67c2473e680dfc5db38d130f13f3060b3) ) /* sprites */
2430 ROM_LOAD( "hrzb-4f.01", 0x04000, 0x4000, CRC(356902ea) SHA1(1f31b3ffa92a4c420f34f1348b7027b394c0a375) )
2431 ROM_LOAD( "hrzb-3n.10", 0x08000, 0x4000, CRC(87078a02) SHA1(538edcdcd63d811049a8d92ce8e4915ae8fb3a1a) )
2432 ROM_LOAD( "hrzb-4n.11", 0x0c000, 0x4000, CRC(5019cb1f) SHA1(02906541dc41df5a78a27389777cf1a3c7b5f392) )
2433 ROM_LOAD( "hrzb-4c.20", 0x10000, 0x4000, CRC(90b385e7) SHA1(d7a3698535bb4e9d96dd3e793b8051c74ea36eee) )
2434 ROM_LOAD( "hrzb-4e.21", 0x14000, 0x4000, CRC(d05d77a2) SHA1(b892f690ec4a0ed4e856c677867d6eac98afaa1d) )
2435
2436 ROM_REGION( 0x0720, REGION_PROMS, 0 )
2437 ROM_LOAD( "hrzd-1d", 0x0000, 0x0100, CRC(b33b08f9) SHA1(00b6c4be93c4d5d5f157d08e91dfea3a0ecdeb4a) ) /* character palette red component */
2438 ROM_LOAD( "hrzb-1m.r", 0x0100, 0x0100, CRC(0871690a) SHA1(8065598c64e44e4fd170632048161705f15c1d7d) ) /* sprite palette red component */
2439 ROM_LOAD( "hrzd-1c", 0x0200, 0x0100, CRC(6e696f3a) SHA1(d66ffe0cbc42889d750d9c8b7e57a84e5dacaf3d) ) /* character palette green component */
2440 ROM_LOAD( "hrzb-1n.g", 0x0300, 0x0100, CRC(f247d0a9) SHA1(7a2ae1e9699793fecb0abd84c2ee2b08e819b6f7) ) /* sprite palette green component */
2441 ROM_LOAD( "hrzd-1e", 0x0400, 0x0100, CRC(1fa60379) SHA1(4fdcc8d68f61afaae36075919b5bec4d12f7ed8e) ) /* character palette blue component */
2442 ROM_LOAD( "hrzb-1l.b", 0x0500, 0x0100, CRC(9ad0a0c8) SHA1(0c03906deafd6cc2247b022881e0190bd59c3c1b) ) /* sprite palette blue component */
2443 ROM_LOAD( "hrzb-5p", 0x0600, 0x0020, CRC(208b49e9) SHA1(065f1e05dd8bb94304969147e5d497931b5ff00a) ) /* sprite height, one entry per 32 */
2444 /* sprites. Used at run time! */
2445 ROM_LOAD( "hrzb-6f", 0x0620, 0x0100, CRC(82c20d12) SHA1(268903f7d9be58a70d030b02bf31a2d6b5b6e249) ) /* video timing - same as kungfum */
2446 ROM_END
2447
2448
2449 static void init_m62(void)
2450 {
2451 state_save_register_int("main", 0, "bankaddress", &bankaddress);
2452 state_save_register_func_postload(set_m64_bank);
2453 }
2454
init_spelunk2(void)2455 static void init_spelunk2(void)
2456 {
2457 state_save_register_int("main", 0, "bankaddress", &bankaddress);
2458 state_save_register_int("main", 0, "bankaddress2", &bankaddress2);
2459 state_save_register_func_postload(set_m64_bank2);
2460 }
2461
2462 GAME( 1984, kungfum, 0, kungfum, kungfum, m62, ROT0, "Irem", "Kung-Fu Master" )
2463 GAME( 1984, kungfud, kungfum, kungfum, kungfum, m62, ROT0, "Irem (Data East license)", "Kung-Fu Master (Data East)" )
2464 GAME( 1984, spartanx, kungfum, kungfum, kungfum, m62, ROT0, "Irem", "Spartan X (Japan)" )
2465 GAME( 1984, kungfub, kungfum, kungfum, kungfum, m62, ROT0, "bootleg", "Kung-Fu Master (bootleg set 1)" )
2466 GAME( 1984, kungfub2, kungfum, kungfum, kungfum, m62, ROT0, "bootleg", "Kung-Fu Master (bootleg set 2)" )
2467 GAME( 1984, battroad, 0, battroad, battroad, m62, ROT90, "Irem", "The Battle-Road" )
2468 GAME( 1984, ldrun, 0, ldrun, ldrun, m62, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 1)" )
2469 GAME( 1984, ldruna, ldrun, ldrun, ldrun, m62, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 2)" )
2470 GAME( 1984, ldrun2, 0, ldrun2, ldrun2, m62, ROT0, "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back" ) /* Japanese version is called Bangeringu Teikoku No Gyakushuu */
2471 GAME( 1985, ldrun3, 0, ldrun3, ldrun3, m62, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - The Golden Labyrinth" )
2472 GAME( 1985, ldrun3jp, ldrun3, ldrun3, ldrun3, m62, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu" )
2473 GAME( 1986, ldrun4, 0, ldrun4, ldrun4, m62, ROT0, "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu" )
2474 GAME( 1985, lotlot, 0, lotlot, lotlot, m62, ROT0, "Irem (licensed from Tokuma Shoten)", "Lot Lot" )
2475 GAMEX(1986, kidniki, 0, kidniki, kidniki, m62, ROT0, "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", GAME_IMPERFECT_SOUND )
2476 GAMEX(1986, yanchamr, kidniki, kidniki, kidniki, m62, ROT0, "Irem", "Kaiketsu Yanchamaru (Japan)", GAME_IMPERFECT_SOUND )
2477 GAME( 1985, spelunkr, 0, spelunkr, spelunkr, m62, ROT0, "Irem (licensed from Broderbund)", "Spelunker" )
2478 GAME( 1985, spelnkrj, spelunkr, spelunkr, spelunkr, m62, ROT0, "Irem (licensed from Broderbund)", "Spelunker (Japan)" )
2479 GAME( 1986, spelunk2, 0, spelunk2, spelunk2, spelunk2, ROT0, "Irem (licensed from Broderbund)", "Spelunker II" )
2480 GAME( 1986, youjyudn, 0, youjyudn, youjyudn, m62, ROT270, "Irem", "Youjyuden (Japan)" )
2481 GAMEX(1985, horizon, 0, horizon, horizon, m62, ROT0, "Irem", "Horizon", GAME_IMPERFECT_SOUND )
2482