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