1 #include "../vidhrdw/snk.c"
2 
3 /*
4 snk.c
5 various SNK triple Z80 games
6 
7 Known Issues:
8 - sound glitches:
9 	Touchdown Fever, Fighting Soccer: crashes if Y8950 is used
10 	Psycho Soldier: some samples aren't played
11 	Chopper1: YM3812 interferes with Y8950
12 - consolidate gfx decode/drivers, if possible
13 - emulate protection (get rid of patches)
14 - translucency issues in Bermuda Triangle? (see brick tiles in title screen)
15 
16 Bryan McPhail, 27/01/00:
17 
18   Fixed Gwar, Gwarj, both working properly now.
19   Renamed Gwarjp to Gwarj.
20   Added Gwara
21   Removed strcmp(drv->names) :)
22   Made Gwara (the new clone) the main set, and old gwar to gwara.  This is
23   because (what is now) gwara seemingly has a different graphics board.  Fix
24   chars and scroll registers are in different locations, while gwar (new)
25   matches the bootleg and original japanese versions.
26 
27   Added Bermuda Triangle (alternate), World Wars, these are the 'early'
28   versions of the main set with different sprites, gameplay etc.  All roms
29   are different except for the samples, technically Bermuda Triangle (Alt)
30   is a clone of World Wars rather than the main Bermuda set.
31 
32   Bermuda Triangle (alt) has some tile banking problems (see attract mode),
33   this may also be the cause of the title screen corruption in Bermuda
34   Triangle (main set).
35 
36 ****************************************************************************
37 
38 ym3526
39 Aso, Tank
40 
41 ym3526x2
42 Athena, Ikari, Fighting Golf
43 
44 ym3526 + y8950
45 Victory Road, Psycho Soldier, Bermuda Triangle, Touchdown Fever, Guerilla War
46 
47 ym3812 + y8950
48 Legofair, Chopper1
49 
50 y8950
51 Fighting Soccer
52 
53 Credits (in alphabetical order)
54 	Ernesto Corvi
55 	Carlos A. Lozano
56 	Jarek Parchanski
57 	Phil Stroffolino (pjstroff@hotmail.com)
58 	Victor Trucco
59 	Marco Cassili
60 
61 ***************************************************************************/
62 
63 #include "driver.h"
64 #include "vidhrdw/generic.h"
65 #include "cpu/z80/z80.h"
66 
67 extern void snk_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
68 extern void aso_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
69 extern void ikari_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
70 
71 extern int snk_vh_start( void );
72 extern void snk_vh_stop( void );
73 
74 extern void tnk3_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
75 extern void ikari_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
76 extern void tdfever_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
77 extern void ftsoccer_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
78 extern void gwar_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
79 extern void psychos_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
80 
81 /*********************************************************************/
82 
83 #define SNK_NMI_ENABLE	1
84 #define SNK_NMI_PENDING	2
85 static int cpuA_latch, cpuB_latch;
86 
87 static unsigned char *shared_ram, *io_ram, *shared_ram2;
88 extern int snk_bg_tilemap_baseaddr, gwar_sprite_placement;
89 
90 /*********************************************************************/
91 
92 static int hard_flags;
93 
94 #define SNK_MAX_INPUT_PORTS 12
95 
96 typedef enum {
97 	SNK_UNUSED,
98 	SNK_INP0,
99 	SNK_INP1,SNK_INP2,SNK_INP3,SNK_INP4,
100 	SNK_INP5,SNK_INP6,SNK_INP7,SNK_INP8,
101 	SNK_INP9,SNK_INP10,
102 	SNK_ROT8_PLAYER1, SNK_ROT8_PLAYER2,
103 	SNK_ROT12_PLAYER1, SNK_ROT12_PLAYER2
104 } SNK_INPUT_PORT_TYPE;
105 
106 static const SNK_INPUT_PORT_TYPE *snk_io; /* input port configuration */
107 
108 static int snk_sound_busy_bit;
109 
110 /*********************************************************************/
111 
112 static int snk_sound_register;
113 /*
114 	This 4 bit register is mapped at 0xf800.
115 
116 	Writes to this register always contain 0x0f in the lower nibble.
117 	The upper nibble contains a mask, which clears bits
118 
119 	bit 0:	set by YM3526/YM3812 callback?
120 	bit 1:	set by Y8950 callback?
121 	bit 2:	sound cpu busy
122 	bit 3:	sound command pending
123 */
124 
125 /*********************************************************************/
126 
snk_rot8(int which)127 static int snk_rot8( int which ){
128 	const int dial_8[8]   = { 0xf0,0x30,0x10,0x50,0x40,0xc0,0x80,0xa0 };
129 	int value = readinputport(which+1);
130 	int joypos16 = value>>4;
131 	return (value&0xf) | dial_8[joypos16>>1];
132 }
133 
snk_rot12(int which)134 static int snk_rot12( int which ){
135 /*
136 	This routine converts a 4 bit (16 directional) analog input to the 12 directional input
137 	that many SNK games require.
138 */
139 	const int dial_12[12] = { 0xb0,0xa0,0x90,0x80,0x70,0x60,0x50,0x40,0x30,0x20,0x10,0x00 };
140 	int value = readinputport(which+1);
141 	int joypos16 = value>>4;
142 
143 	static int old_joypos16[2];
144 	static int joypos12[2];
145 	int delta = joypos16 - old_joypos16[which];
146 
147 	old_joypos16[which] = joypos16;
148 
149 	if( delta>8 ) delta -= 16; else if( delta<-8 ) delta += 16;
150 
151 	joypos12[which] += delta;
152 	while( joypos12[which]<0 ) joypos12[which] += 12;
153 	while( joypos12[which]>=12 ) joypos12[which] -= 12;
154 
155 	return (value&0x0f) | dial_12[joypos12[which]];
156 }
157 
snk_input_port_r(int which)158 static int snk_input_port_r( int which ){
159 	switch( snk_io[which] ){
160 		case SNK_INP0:
161 		{
162 			int value = input_port_0_r( 0 );
163 			if( (snk_sound_register & 0x04) == 0 ) value &= ~snk_sound_busy_bit;
164 			return value;
165 		}
166 
167 		case SNK_ROT8_PLAYER1: return snk_rot8( 0 );
168 		case SNK_ROT8_PLAYER2: return snk_rot8( 1 );
169 
170 		case SNK_ROT12_PLAYER1: return snk_rot12( 0 );
171 		case SNK_ROT12_PLAYER2: return snk_rot12( 1 );
172 
173 		case SNK_INP1: return input_port_1_r(0);
174 		case SNK_INP2: return input_port_2_r(0);
175 		case SNK_INP3: return input_port_3_r(0);
176 		case SNK_INP4: return input_port_4_r(0);
177 		case SNK_INP5: return input_port_5_r(0);
178 		case SNK_INP6: return input_port_6_r(0);
179 		case SNK_INP7: return input_port_7_r(0);
180 		case SNK_INP8: return input_port_8_r(0);
181 		case SNK_INP9: return input_port_9_r(0);
182 		case SNK_INP10: return input_port_10_r(0);
183 
184 		default:
185 		//logerror("read from unmapped input port:%d\n", which );
186 		break;
187 	}
188 	return 0;
189 }
190 
191 /*********************************************************************/
192 
WRITE_HANDLER(snk_sound_register_w)193 static WRITE_HANDLER( snk_sound_register_w ){
194 	snk_sound_register &= (data>>4);
195 }
196 
READ_HANDLER(snk_sound_register_r)197 static READ_HANDLER( snk_sound_register_r ){
198 	return snk_sound_register;// | 0x2; /* hack; lets chopper1 play music */
199 }
200 
snk_sound_callback0_w(int state)201 void snk_sound_callback0_w( int state ){ /* ? */
202 	if( state ) snk_sound_register |= 0x01;
203 }
204 
snk_sound_callback1_w(int state)205 void snk_sound_callback1_w( int state ){ /* ? */
206 	if( state ) snk_sound_register |= 0x02;
207 }
208 
209 static struct YM3526interface ym3526_interface = {
210 	1,			/* number of chips */
211 	4000000,	/* 4 MHz */
212 	{ 50 },		/* mixing level */
213 	{ snk_sound_callback0_w } /* ? */
214 };
215 
216 static struct YM3526interface ym3526_ym3526_interface = {
217 	2,			/* number of chips */
218 	4000000,	/* 4 MHz */
219 	{ 50,50 },	/* mixing level */
220 	{ snk_sound_callback0_w, snk_sound_callback1_w } /* ? */
221 };
222 
223 static struct Y8950interface y8950_interface = {
224 	1,			/* number of chips */
225 	4000000,	/* 4 MHz */
226 	{ 50 },		/* mixing level */
227 	{ snk_sound_callback1_w }, /* ? */
228 	{ REGION_SOUND1 }	/* memory region */
229 };
230 
231 static struct YM3812interface ym3812_interface = {
232 	1,			/* number of chips */
233 	4000000,	/* 4 MHz */
234 	{ 50,50 },	/* mixing level */
235 	{ snk_sound_callback0_w } /* ? */
236 };
237 
238 /*	We don't actually have any games that use two Y8950s,
239 	but the soundchip implementation misbehaves if we
240 	declare both a YM3526 and Y8950.
241 
242 	Since Y8950 is a superset of YM3526, this works.
243 */
244 static struct Y8950interface ym3526_y8950_interface = {
245 	2,			/* number of chips */
246 	4000000,	/* 4 MHz */
247 	{ 50, 50 },		/* mixing level */
248 	{ snk_sound_callback0_w, snk_sound_callback1_w }, /* ? */
249 	{ REGION_SOUND1, REGION_SOUND1 }
250 };
251 
WRITE_HANDLER(snk_soundlatch_w)252 static WRITE_HANDLER( snk_soundlatch_w ){
253 	snk_sound_register |= 0x08 | 0x04;
254 	soundlatch_w( offset, data );
255 }
256 
READ_HANDLER(snk_soundlatch_clear_r)257 static READ_HANDLER( snk_soundlatch_clear_r ){ /* TNK3 */
258 	soundlatch_w( 0, 0 );
259 	snk_sound_register = 0;
260 	return 0x00;
261 }
262 
263 /*********************************************************************/
264 
265 static struct MemoryReadAddress YM3526_readmem_sound[] = {
266 	{ 0x0000, 0x7fff, MRA_ROM },
267 	{ 0x8000, 0x87ff, MRA_RAM },
268 	{ 0xa000, 0xa000, soundlatch_r },
269 	{ 0xc000, 0xc000, snk_soundlatch_clear_r },
270 	{ 0xe000, 0xe000, YM3526_status_port_0_r },
271 	{ -1 }
272 };
273 
274 static struct MemoryWriteAddress YM3526_writemem_sound[] = {
275 	{ 0x0000, 0x7fff, MWA_ROM },
276 	{ 0x8000, 0x87ff, MWA_RAM },
277 	{ 0xe000, 0xe000, YM3526_control_port_0_w },
278 	{ 0xe001, 0xe001, YM3526_write_port_0_w },
279 	{ -1 }
280 };
281 
282 static struct MemoryReadAddress YM3526_YM3526_readmem_sound[] = {
283 	{ 0x0000, 0xbfff, MRA_ROM },
284 	{ 0xc000, 0xcfff, MRA_RAM },
285 	{ 0xe000, 0xe000, soundlatch_r },
286 	{ 0xe800, 0xe800, YM3526_status_port_0_r },
287 	{ 0xf000, 0xf000, YM3526_status_port_1_r },
288 	{ 0xf800, 0xf800, snk_sound_register_r },
289 	{ -1 }
290 };
291 
292 static struct MemoryWriteAddress YM3526_YM3526_writemem_sound[] = {
293 	{ 0x0000, 0xbfff, MWA_ROM },
294 	{ 0xc000, 0xcfff, MWA_RAM },
295 	{ 0xe800, 0xe800, YM3526_control_port_0_w },
296 	{ 0xec00, 0xec00, YM3526_write_port_0_w },
297 	{ 0xf000, 0xf000, YM3526_control_port_1_w },
298 	{ 0xf400, 0xf400, YM3526_write_port_1_w },
299 	{ 0xf800, 0xf800, snk_sound_register_w },
300 	{ -1 }
301 };
302 
303 static struct MemoryReadAddress YM3526_Y8950_readmem_sound[] = {
304 	{ 0x0000, 0xbfff, MRA_ROM },
305 	{ 0xc000, 0xcfff, MRA_RAM },
306 	{ 0xe000, 0xe000, soundlatch_r },
307 	{ 0xe800, 0xe800, Y8950_status_port_0_r }, // YM3526_status_port_0_r
308 	{ 0xf000, 0xf000, Y8950_status_port_1_r },
309 	{ 0xf800, 0xf800, snk_sound_register_r },
310 	{ -1 }
311 };
312 
313 static struct MemoryWriteAddress YM3526_Y8950_writemem_sound[] = {
314 	{ 0x0000, 0xbfff, MWA_ROM },
315 	{ 0xc000, 0xcfff, MWA_RAM },
316 	{ 0xe800, 0xe800, Y8950_control_port_0_w }, // YM3526_control_port_0_w
317 	{ 0xec00, 0xec00, Y8950_write_port_0_w }, // YM3526_write_port_0_w
318 	{ 0xf000, 0xf000, Y8950_control_port_1_w },
319 	{ 0xf400, 0xf400, Y8950_write_port_1_w },
320 	{ 0xf800, 0xf800, snk_sound_register_w },
321 	{ -1 }
322 };
323 
324 static struct MemoryReadAddress YM3812_Y8950_readmem_sound[] = {
325 	{ 0x0000, 0xbfff, MRA_ROM },
326 	{ 0xc000, 0xcfff, MRA_RAM },
327 	{ 0xe000, 0xe000, soundlatch_r },
328 	{ 0xe800, 0xe800, YM3812_status_port_0_r },
329 	{ 0xf000, 0xf000, Y8950_status_port_0_r },
330 	{ 0xf800, 0xf800, snk_sound_register_r },
331 	{ -1 }
332 };
333 
334 static struct MemoryWriteAddress YM3812_Y8950_writemem_sound[] = {
335 	{ 0x0000, 0xbfff, MWA_ROM },
336 	{ 0xc000, 0xcfff, MWA_RAM },
337 	{ 0xe800, 0xe800, YM3812_control_port_0_w },
338 	{ 0xec00, 0xec00, YM3812_write_port_0_w },
339 	{ 0xf000, 0xf000, Y8950_control_port_0_w },
340 	{ 0xf400, 0xf400, Y8950_write_port_0_w },
341 	{ 0xf800, 0xf800, snk_sound_register_w },
342 	{ -1 }
343 };
344 
345 static struct MemoryReadAddress Y8950_readmem_sound[] = {
346 	{ 0x0000, 0xbfff, MRA_ROM },
347 	{ 0xc000, 0xcfff, MRA_RAM },
348 	{ 0xe000, 0xe000, soundlatch_r },
349 	{ 0xf000, 0xf000, YM3526_status_port_0_r },
350 //	{ 0xf000, 0xf000, Y8950_status_port_0_r },
351 	{ 0xf800, 0xf800, snk_sound_register_r },
352 	{ -1 }
353 };
354 
355 static struct MemoryWriteAddress Y8950_writemem_sound[] = {
356 	{ 0x0000, 0xbfff, MWA_ROM },
357 	{ 0xc000, 0xcfff, MWA_RAM },
358 	{ 0xf000, 0xf000, YM3526_control_port_0_w },
359 	{ 0xf400, 0xf400, YM3526_write_port_0_w },
360 //	{ 0xf000, 0xf000, Y8950_control_port_0_w },
361 //	{ 0xf400, 0xf400, Y8950_write_port_0_w },
362 	{ 0xf800, 0xf800, snk_sound_register_w },
363 	{ -1 }
364 };
365 
366 /**********************  Tnk3, Athena, Fighting Golf ********************/
367 
READ_HANDLER(shared_ram_r)368 static READ_HANDLER( shared_ram_r ){
369 	return shared_ram[offset];
370 }
WRITE_HANDLER(shared_ram_w)371 static WRITE_HANDLER( shared_ram_w ){
372 	shared_ram[offset] = data;
373 }
374 
READ_HANDLER(shared_ram2_r)375 static READ_HANDLER( shared_ram2_r ){
376 	return shared_ram2[offset];
377 }
WRITE_HANDLER(shared_ram2_w)378 static WRITE_HANDLER( shared_ram2_w ){
379 	shared_ram2[offset] = data;
380 }
381 
READ_HANDLER(cpuA_io_r)382 static READ_HANDLER( cpuA_io_r ){
383 	switch( offset ){
384 		case 0x000: return snk_input_port_r( 0 ); // coin input, player start
385 		case 0x100: return snk_input_port_r( 1 ); // joy1
386 		case 0x180: return snk_input_port_r( 2 ); // joy2
387 		case 0x200: return snk_input_port_r( 3 ); // joy3
388 		case 0x280: return snk_input_port_r( 4 ); // joy4
389 		case 0x300: return snk_input_port_r( 5 ); // aim1
390 		case 0x380: return snk_input_port_r( 6 ); // aim2
391 		case 0x400: return snk_input_port_r( 7 ); // aim3
392 		case 0x480: return snk_input_port_r( 8 ); // aim4
393 		case 0x500: return snk_input_port_r( 9 ); // unused by tdfever
394 		case 0x580: return snk_input_port_r( 10); // dsw
395 		case 0x600: return snk_input_port_r( 11 ); // dsw
396 
397 		case 0x700:
398 		if( cpuB_latch & SNK_NMI_ENABLE ){
399 			cpu_cause_interrupt( 1, Z80_NMI_INT );
400 			cpuB_latch = 0;
401 		}
402 		else {
403 			cpuB_latch |= SNK_NMI_PENDING;
404 		}
405 		return 0xff;
406 
407 		/* "Hard Flags" */
408 		case 0xe00:
409 		case 0xe20:
410 		case 0xe40:
411 		case 0xe60:
412 		case 0xe80:
413 		case 0xea0:
414 		case 0xee0: if( hard_flags ) return 0xff;
415 	}
416 	return io_ram[offset];
417 }
418 
WRITE_HANDLER(cpuA_io_w)419 static WRITE_HANDLER( cpuA_io_w ){
420 	switch( offset ){
421 		case 0x000:
422 		break;
423 
424 		case 0x400: /* most games */
425 		case 0x500: /* tdfever */
426 		snk_soundlatch_w( 0, data );
427 		break;
428 
429 		case 0x700:
430 		if( cpuA_latch&SNK_NMI_PENDING ){
431 			cpu_cause_interrupt( 0, Z80_NMI_INT );
432 			cpuA_latch = 0;
433 		}
434 		else {
435 			cpuA_latch |= SNK_NMI_ENABLE;
436 		}
437 		break;
438 
439 		default:
440 		io_ram[offset] = data;
441 		break;
442 	}
443 }
444 
READ_HANDLER(cpuB_io_r)445 static READ_HANDLER( cpuB_io_r ){
446 	switch( offset ){
447 		case 0x000:
448 		case 0x700:
449 		if( cpuA_latch & SNK_NMI_ENABLE ){
450 			cpu_cause_interrupt( 0, Z80_NMI_INT );
451 			cpuA_latch = 0;
452 		}
453 		else {
454 			cpuA_latch |= SNK_NMI_PENDING;
455 		}
456 		return 0xff;
457 
458 		/* "Hard Flags" they are needed here, otherwise ikarijp/b doesn't work right */
459 		case 0xe00:
460 		case 0xe20:
461 		case 0xe40:
462 		case 0xe60:
463 		case 0xe80:
464 		case 0xea0:
465 		case 0xee0: if( hard_flags ) return 0xff;
466 	}
467 	return io_ram[offset];
468 }
469 
WRITE_HANDLER(cpuB_io_w)470 static WRITE_HANDLER( cpuB_io_w ){
471 	if( offset==0 || offset==0x700 ){
472 		if( cpuB_latch&SNK_NMI_PENDING ){
473 			cpu_cause_interrupt( 1, Z80_NMI_INT );
474 			cpuB_latch = 0;
475 		}
476 		else {
477 			cpuB_latch |= SNK_NMI_ENABLE;
478 		}
479 		return;
480 	}
481 	io_ram[offset] = data;
482 }
483 
484 /**********************  Tnk3, Athena, Fighting Golf ********************/
485 
486 static struct MemoryReadAddress tnk3_readmem_cpuA[] =
487 {
488 	{ 0x0000, 0xbfff, MRA_ROM },
489 	{ 0xc000, 0xcfff, cpuA_io_r },
490 	{ 0xd000, 0xf7ff, MRA_RAM },
491 	{ 0xf800, 0xffff, MRA_RAM },
492 	{ -1 }
493 };
494 static struct MemoryWriteAddress tnk3_writemem_cpuA[] =
495 {
496 	{ 0x0000, 0xbfff, MWA_ROM },
497 	{ 0xc000, 0xcfff, cpuA_io_w, &io_ram },
498 	{ 0xd000, 0xf7ff, MWA_RAM, &shared_ram2 },
499 	{ 0xf800, 0xffff, MWA_RAM, &shared_ram },
500 	{ -1 }
501 };
502 
503 static struct MemoryReadAddress tnk3_readmem_cpuB[] =
504 {
505 	{ 0x0000, 0xbfff, MRA_ROM },
506 	{ 0xc000, 0xc7ff, cpuB_io_r },
507 	{ 0xc800, 0xefff, shared_ram2_r },
508 	{ 0xf000, 0xf7ff, MRA_RAM },
509 	{ 0xf800, 0xffff, shared_ram_r },
510 	{ -1 }
511 };
512 static struct MemoryWriteAddress tnk3_writemem_cpuB[] =
513 {
514 	{ 0x0000, 0xbfff, MWA_ROM },
515 	{ 0xc000, 0xc7ff, cpuB_io_w },
516 	{ 0xc800, 0xefff, shared_ram2_w },
517 	{ 0xf000, 0xf7ff, MWA_RAM },
518 	{ 0xf800, 0xffff, shared_ram_w },
519 	{ -1 }
520 };
521 
522 
523 /* Chopper I, T.D.Fever, Psycho S., Bermuda T. */
524 
525 static struct MemoryReadAddress readmem_cpuA[] =
526 {
527 	{ 0x0000, 0xbfff, MRA_ROM },
528 	{ 0xc000, 0xcfff, cpuA_io_r },
529 	{ 0xd000, 0xffff, MRA_RAM },
530 	{ -1 }
531 };
532 static struct MemoryWriteAddress writemem_cpuA[] =
533 {
534 	{ 0x0000, 0xbfff, MWA_ROM },
535 	{ 0xc000, 0xcfff, cpuA_io_w, &io_ram },
536 	{ 0xd000, 0xffff, MWA_RAM, &shared_ram },
537 	{ -1 }
538 };
539 
540 static struct MemoryReadAddress readmem_cpuB[] =
541 {
542 	{ 0x0000, 0xbfff, MRA_ROM },
543 	{ 0xc000, 0xcfff, cpuB_io_r },
544 	{ 0xd000, 0xffff, shared_ram_r },
545 	{ -1 }
546 };
547 static struct MemoryWriteAddress writemem_cpuB[] =
548 {
549 	{ 0x0000, 0xbfff, MWA_ROM },
550 	{ 0xc000, 0xcfff, cpuB_io_w },
551 	{ 0xd000, 0xffff, shared_ram_w },
552 	{ -1 }
553 };
554 
555 /*********************************************************************/
556 
557 static struct GfxLayout char512 =
558 {
559 	8,8,
560 	512,
561 	4,
562 	{ 0, 1, 2, 3 },
563 	{ 4, 0, 12, 8, 20, 16, 28, 24},
564 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
565 	256
566 };
567 
568 static struct GfxLayout char1024 =
569 {
570 	8,8,
571 	1024,
572 	4,
573 	{ 0, 1, 2, 3 },
574 	{ 4, 0, 12, 8, 20, 16, 28, 24},
575 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
576 	256
577 };
578 
579 static struct GfxLayout tile1024 =
580 {
581 	16,16,
582 	1024,
583 	4,
584 	{ 0, 1, 2, 3 },
585 	{ 4, 0, 12, 8, 20, 16, 28, 24,
586 		32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24, },
587 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
588 		8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
589 	128*8
590 };
591 
592 static struct GfxLayout tile2048 =
593 {
594 	16,16,
595 	2048,
596 	4,
597 	{ 0, 1, 2, 3 },
598 	{ 4, 0, 12, 8, 20, 16, 28, 24,
599 		32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24, },
600 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
601 		8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
602 	128*8
603 };
604 
605 static struct GfxLayout tdfever_tiles =
606 {
607 	16,16,
608 	512*5,
609 	4,
610 	{ 0, 1, 2, 3 },
611 	{ 4, 0, 12, 8, 20, 16, 28, 24,
612 		32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24, },
613 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
614 		8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
615 	128*8
616 };
617 
618 static struct GfxLayout sprite512 =
619 {
620 	16,16,
621 	512,
622 	3,
623 	{ 2*1024*256, 1*1024*256, 0*1024*256 },
624 	{ 7,6,5,4,3,2,1,0, 15,14,13,12,11,10,9,8 },
625 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
626 		8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
627 	256
628 };
629 
630 static struct GfxLayout sprite1024 =
631 {
632 	16,16,
633 	1024,
634 	3,
635 	{ 2*1024*256,1*1024*256,0*1024*256 },
636 	{ 7,6,5,4,3,2,1,0, 15,14,13,12,11,10,9,8 },
637 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
638 		8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
639 	256
640 };
641 
642 static struct GfxLayout big_sprite512 =
643 {
644 	32,32,
645 	512,
646 	3,
647 	{ 2*2048*256,1*2048*256,0*2048*256 },
648 	{
649 		7,6,5,4,3,2,1,0,
650 		15,14,13,12,11,10,9,8,
651 		23,22,21,20,19,18,17,16,
652 		31,30,29,28,27,26,25,24
653 	},
654 	{
655 		0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
656 		8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32,
657 		16*32+0*32, 16*32+1*32, 16*32+2*32, 16*32+3*32,
658 		16*32+4*32, 16*32+5*32, 16*32+6*32, 16*32+7*32,
659 		16*32+8*32, 16*32+9*32, 16*32+10*32, 16*32+11*32,
660 		16*32+12*32, 16*32+13*32, 16*32+14*32, 16*32+15*32,
661 	},
662 	16*32*2
663 };
664 
665 static struct GfxLayout gwar_sprite1024 =
666 {
667 	16,16,
668 	1024,
669 	4,
670 	{ 3*2048*256,2*2048*256,1*2048*256,0*2048*256 },
671 	{
672 		8,9,10,11,12,13,14,15,
673 		0,1,2,3,4,5,6,7
674 	},
675 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
676 			8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
677 	256
678 };
679 
680 static struct GfxLayout gwar_sprite2048 =
681 {
682 	16,16,
683 	2048,
684 	4,
685 	{  3*2048*256,2*2048*256,1*2048*256,0*2048*256 },
686 	{ 8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7 },
687 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
688 			8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
689 	256
690 };
691 
692 static struct GfxLayout gwar_big_sprite1024 =
693 {
694 	32,32,
695 	1024,
696 	4,
697 	{ 3*1024*1024, 2*1024*1024, 1*1024*1024, 0*1024*1024 },
698 	{
699 		24,25,26,27,28,29,30,31,
700 		16,17,18,19,20,21,22,23,
701 		8,9,10,11,12,13,14,15,
702 		0,1,2,3,4,5,6,7
703 	},
704 	{
705 		0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
706 		8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32,
707 		16*32+0*32, 16*32+1*32, 16*32+2*32, 16*32+3*32,
708 		16*32+4*32, 16*32+5*32, 16*32+6*32, 16*32+7*32,
709 		16*32+8*32, 16*32+9*32, 16*32+10*32, 16*32+11*32,
710 		16*32+12*32, 16*32+13*32, 16*32+14*32, 16*32+15*32,
711 	},
712 	1024
713 };
714 
715 static struct GfxLayout tdfever_big_sprite1024 =
716 {
717 	32,32,
718 	1024,
719 	4,
720 	{ 0*0x100000, 1*0x100000, 2*0x100000, 3*0x100000 },
721 	{
722 		7,6,5,4,3,2,1,0,
723 		15,14,13,12,11,10,9,8,
724 		23,22,21,20,19,18,17,16,
725 		31,30,29,28,27,26,25,24
726 	},
727 	{
728 		0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
729 		8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32,
730 		16*32+0*32, 16*32+1*32, 16*32+2*32, 16*32+3*32,
731 		16*32+4*32, 16*32+5*32, 16*32+6*32, 16*32+7*32,
732 		16*32+8*32, 16*32+9*32, 16*32+10*32, 16*32+11*32,
733 		16*32+12*32, 16*32+13*32, 16*32+14*32, 16*32+15*32,
734 	},
735 	1024
736 };
737 
738 /*********************************************************************/
739 
740 static struct GfxDecodeInfo tnk3_gfxdecodeinfo[] =
741 {
742 	{ REGION_GFX1, 0x0, &char512,	128*3,  8 },
743 	{ REGION_GFX2, 0x0, &char1024,	128*1, 16 },
744 	{ REGION_GFX3, 0x0, &sprite512,	128*0, 16 },
745 	{ -1 }
746 };
747 
748 static struct GfxDecodeInfo athena_gfxdecodeinfo[] =
749 {
750 	/* colors 512-1023 are currently unused, I think they are a second bank */
751 	{ REGION_GFX1, 0x0, &char512,	128*3,  8 },	/* colors 384..511 */
752 	{ REGION_GFX2, 0x0, &char1024,   128*1, 16 },	/* colors 128..383 */
753 	{ REGION_GFX3, 0x0, &sprite1024,		0, 16 },	/* colors   0..127 */
754 	{ -1 }
755 };
756 
757 static struct GfxDecodeInfo ikari_gfxdecodeinfo[] =
758 {
759 	{ REGION_GFX1, 0x0, &char512,             256, 16 },
760 	{ REGION_GFX2, 0x0, &tile1024,            256, 16 },
761 	{ REGION_GFX3, 0x0, &sprite1024,            0, 16 },
762 	{ REGION_GFX4, 0x0, &big_sprite512,       128, 16 },
763 	{ -1 }
764 };
765 
766 static struct GfxDecodeInfo gwar_gfxdecodeinfo[] =
767 {
768 	{ REGION_GFX1, 0x0, &char1024,             256*0, 16 },
769 	{ REGION_GFX2, 0x0, &tile2048,             256*3, 16 },
770 	{ REGION_GFX3, 0x0, &gwar_sprite2048,      256*1, 16 },
771 	{ REGION_GFX4, 0x0, &gwar_big_sprite1024,  256*2, 16 },
772 	{ -1 }
773 };
774 
775 static struct GfxDecodeInfo bermudat_gfxdecodeinfo[] =
776 {
777 	{ REGION_GFX1, 0x0, &char1024,             256*0, 16 },
778 	{ REGION_GFX2, 0x0, &tile2048,             256*3, 16 },
779 	{ REGION_GFX3, 0x0, &gwar_sprite1024,      256*1, 16 },
780 	{ REGION_GFX4, 0x0, &gwar_big_sprite1024,  256*2, 16 },
781 	{ -1 }
782 };
783 
784 static struct GfxDecodeInfo psychos_gfxdecodeinfo[] =
785 {
786 	{ REGION_GFX1, 0x0, &char1024,             256*0, 16 },
787 	{ REGION_GFX2, 0x0, &tile2048,             256*3, 16 },
788 	{ REGION_GFX3, 0x0, &gwar_sprite1024,      256*1, 16 },
789 	{ REGION_GFX4, 0x0, &gwar_big_sprite1024,  256*2, 16 },
790 	{ -1 }
791 };
792 
793 static struct GfxDecodeInfo tdfever_gfxdecodeinfo[] =
794 {
795 	{ REGION_GFX1, 0x0, &char1024,					256*0, 16 },
796 	{ REGION_GFX2, 0x0, &tdfever_tiles,				256*2, 16 },
797 	{ REGION_GFX3, 0x0, &tdfever_big_sprite1024,	256*1, 16 },
798 	{ -1 }
799 };
800 
801 
802 /**********************************************************************/
803 
804 static struct MachineDriver machine_driver_tnk3 =
805 {
806 	{
807 		{
808 			CPU_Z80,
809 			4000000, /* ? */
810 			tnk3_readmem_cpuA,tnk3_writemem_cpuA,0,0,
811 			interrupt,1
812 		},
813 		{
814 			CPU_Z80,
815 			4000000, /* ? */
816 			tnk3_readmem_cpuB,tnk3_writemem_cpuB,0,0,
817 			interrupt,1
818 		},
819 		{
820 			CPU_Z80 | CPU_AUDIO_CPU,
821 			4000000,	/* 4 Mhz (?) */
822 			YM3526_readmem_sound,YM3526_writemem_sound,0,0,
823 			interrupt,2 /* ? */
824 		},
825 	},
826 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
827 	100,	/* CPU slices per frame */
828 	0, /* init machine */
829 
830 	/* video hardware */
831 	36*8, 28*8, { 0*8, 36*8-1, 1*8, 28*8-1 },
832 
833 	tnk3_gfxdecodeinfo,
834 	1024,1024,
835 	aso_vh_convert_color_prom,
836 
837 	VIDEO_TYPE_RASTER,
838 	0,
839 	snk_vh_start,
840 	snk_vh_stop,
841 	tnk3_vh_screenrefresh,
842 
843 	/* sound hardware */
844 	0,0,0,0,
845 	{
846 		{
847 			SOUND_YM3526,
848 			&ym3526_interface
849 	    }
850 	}
851 };
852 
853 static struct MachineDriver machine_driver_athena =
854 /* mostly identical to TNK3, but with an aditional YM3526 */
855 {
856 	{
857 		{
858 			CPU_Z80,
859 			4000000, /* ? */
860 			tnk3_readmem_cpuA,tnk3_writemem_cpuA,0,0,
861 			interrupt,1
862 		},
863 		{
864 			CPU_Z80,
865 			4000000, /* ? */
866 			tnk3_readmem_cpuB,tnk3_writemem_cpuB,0,0,
867 			interrupt,1
868 		},
869 		{
870 			CPU_Z80 | CPU_AUDIO_CPU,
871 			4000000,	/* 4 Mhz (?) */
872 			YM3526_YM3526_readmem_sound,YM3526_YM3526_writemem_sound,0,0,
873 			interrupt,1
874 		},
875 
876 	},
877 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
878 	600,	/* CPU slices per frame */
879 	0, /* init machine */
880 
881 	/* video hardware */
882 	36*8, 28*8, { 0*8, 36*8-1, 1*8, 28*8-1 },
883 
884 	athena_gfxdecodeinfo,
885 	1024,1024,
886 	aso_vh_convert_color_prom,
887 
888 	VIDEO_TYPE_RASTER,
889 	0,
890 	snk_vh_start,
891 	snk_vh_stop,
892 	tnk3_vh_screenrefresh,  //athena_vh...
893 
894 	/* sound hardware */
895 	0,0,0,0,
896 	{
897 		{
898 			SOUND_YM3526,
899 			&ym3526_ym3526_interface
900 	    }
901 	}
902 };
903 
904 static struct MachineDriver machine_driver_ikari =
905 {
906 	{
907 		{
908 			CPU_Z80,
909 			4000000,	/* 4.0 Mhz (?) */
910 			readmem_cpuA,writemem_cpuA,0,0,
911 			interrupt,1
912 		},
913 		{
914 			CPU_Z80,
915 			4000000,	/* 4.0 Mhz (?) */
916 			readmem_cpuB,writemem_cpuB,0,0,
917 			interrupt,1
918 		},
919 		{
920 			CPU_Z80 | CPU_AUDIO_CPU,
921 			4000000,	/* 4 Mhz (?) */
922 			YM3526_YM3526_readmem_sound,YM3526_YM3526_writemem_sound,0,0,
923 			interrupt,1
924 		},
925 	},
926 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
927 	100,	/* CPU slices per frame */
928 	0, /* init machine */
929 
930 	/* video hardware */
931 	36*8, 28*8, { 0*8, 36*8-1, 1*8, 28*8-1 },
932 
933 	ikari_gfxdecodeinfo,
934 	1024,1024,
935 	ikari_vh_convert_color_prom,
936 
937 	VIDEO_TYPE_RASTER,
938 	0,
939 	snk_vh_start,
940 	snk_vh_stop,
941 	ikari_vh_screenrefresh,
942 
943 	/* sound hardware */
944 	0,0,0,0,
945 	{
946 		{
947 			SOUND_YM3526,
948 			&ym3526_ym3526_interface
949 	    }
950 	}
951 };
952 
953 static struct MachineDriver machine_driver_victroad =
954 /* identical to Ikari Warriors, but sound system replaces one of the YM3526 with Y8950 */
955 {
956 	{
957 		{
958 			CPU_Z80,
959 			4000000,	/* 4.0 Mhz (?) */
960 			readmem_cpuA,writemem_cpuA,0,0,
961 			interrupt,1
962 		},
963 		{
964 			CPU_Z80,
965 			4000000,	/* 4.0 Mhz (?) */
966 			readmem_cpuB,writemem_cpuB,0,0,
967 			interrupt,1
968 		},
969 		{
970 			CPU_Z80 | CPU_AUDIO_CPU,
971 			4000000,	/* 4 Mhz (?) */
972 			YM3526_Y8950_readmem_sound,YM3526_Y8950_writemem_sound,0,0,
973 			interrupt,1
974 		},
975 	},
976 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
977 	100,	/* CPU slices per frame */
978 	0, /* init machine */
979 
980 	/* video hardware */
981 	36*8, 28*8, { 0*8, 36*8-1, 1*8, 28*8-1 },
982 
983 	ikari_gfxdecodeinfo,
984 	1024,1024,
985 	ikari_vh_convert_color_prom,
986 
987 	VIDEO_TYPE_RASTER,
988 	0,
989 	snk_vh_start,
990 	snk_vh_stop,
991 	ikari_vh_screenrefresh,
992 
993 	/* sound hardware */
994 	0,0,0,0,
995 	{
996 		{
997 			SOUND_Y8950,
998 			&ym3526_y8950_interface
999 		}
1000 	}
1001 };
1002 
1003 static struct MachineDriver machine_driver_gwar =
1004 {
1005 	{
1006 		{
1007 			CPU_Z80,
1008 			4000000,	/* 4.0 Mhz (?) */
1009 			readmem_cpuA,writemem_cpuA,0,0,
1010 			interrupt,1
1011 		},
1012 		{
1013 			CPU_Z80,
1014 			4000000,	/* 4.0 Mhz (?) */
1015 			readmem_cpuB,writemem_cpuB,0,0,
1016 			interrupt,1
1017 		},
1018 		{
1019 			CPU_Z80 | CPU_AUDIO_CPU,
1020 			4000000,	/* 4 Mhz (?) */
1021 			YM3526_Y8950_readmem_sound,YM3526_Y8950_writemem_sound,0,0,
1022 			interrupt,1
1023 		},
1024 	},
1025 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1026 	100,	/* CPU slices per frame */
1027 	0, /* init machine */
1028 
1029 	/* video hardware */
1030 	384, 240, { 16, 383,0, 239-16 },
1031 	gwar_gfxdecodeinfo,
1032 	1024,1024,
1033 	snk_vh_convert_color_prom,
1034 
1035 	VIDEO_TYPE_RASTER,
1036 	0,
1037 	snk_vh_start,
1038 	snk_vh_stop,
1039 	gwar_vh_screenrefresh,
1040 
1041 	/* sound hardware */
1042 	0,0,0,0,
1043 	{
1044 		{
1045 			SOUND_Y8950,
1046 			&ym3526_y8950_interface
1047 		}
1048 	}
1049 };
1050 
1051 static struct MachineDriver machine_driver_bermudat =
1052 {
1053 	{
1054 		{
1055 			CPU_Z80,
1056 			4000000,	/* 4.0 Mhz (?) */
1057 			readmem_cpuA,writemem_cpuA,0,0,
1058 			interrupt,1
1059 		},
1060 		{
1061 			CPU_Z80,
1062 			4000000,	/* 4.0 Mhz (?) */
1063 			readmem_cpuB,writemem_cpuB,0,0,
1064 			interrupt,1
1065 		},
1066 		{
1067 			CPU_Z80 | CPU_AUDIO_CPU,
1068 			4000000,	/* 4 Mhz (?) */
1069 			YM3526_Y8950_readmem_sound,YM3526_Y8950_writemem_sound,0,0,
1070 			interrupt,1
1071 		},
1072 	},
1073 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1074 	100,	/* CPU slices per frame */
1075 	0, /* init machine */
1076 
1077 	/* video hardware */
1078 	384, 240, { 16, 383,0, 239-16 },
1079 	bermudat_gfxdecodeinfo,
1080 	1024,1024,
1081 	snk_vh_convert_color_prom,
1082 
1083 	VIDEO_TYPE_RASTER,
1084 	0,
1085 	snk_vh_start,
1086 	snk_vh_stop,
1087 	gwar_vh_screenrefresh,
1088 
1089 	/* sound hardware */
1090 	0,0,0,0,
1091 	{
1092 		{
1093 			SOUND_Y8950,
1094 			&ym3526_y8950_interface
1095 		}
1096 	}
1097 };
1098 
1099 static struct MachineDriver machine_driver_psychos =
1100 {
1101 	{
1102 		{
1103 			CPU_Z80,
1104 			4000000,	/* 4.0 Mhz (?) */
1105 			readmem_cpuA,writemem_cpuA,0,0,
1106 			interrupt,1
1107 		},
1108 		{
1109 			CPU_Z80,
1110 			4000000,	/* 4.0 Mhz (?) */
1111 			readmem_cpuB,writemem_cpuB,0,0,
1112 			interrupt,1
1113 		},
1114 		{
1115 			CPU_Z80 | CPU_AUDIO_CPU,
1116 			4000000,	/* 4 Mhz (?) */
1117 			YM3526_Y8950_readmem_sound,YM3526_Y8950_writemem_sound,0,0,
1118 			interrupt,1
1119 		},
1120 	},
1121 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1122 	100,	/* CPU slices per frame */
1123 	0, /* init machine */
1124 
1125 	/* video hardware */
1126 	384, 240, { 0, 383, 0, 239-16 },
1127 	psychos_gfxdecodeinfo,
1128 	1024,1024,
1129 	snk_vh_convert_color_prom,
1130 
1131 	VIDEO_TYPE_RASTER,
1132 	0,
1133 	snk_vh_start,
1134 	snk_vh_stop,
1135 	gwar_vh_screenrefresh,
1136 
1137 	/* sound hardware */
1138 	0,0,0,0,
1139 	{
1140 		{
1141 			SOUND_Y8950,
1142 			&ym3526_y8950_interface
1143 		}
1144 	}
1145 };
1146 
1147 static struct MachineDriver machine_driver_chopper1 =
1148 {
1149 	{
1150 		{
1151 			CPU_Z80,
1152 			4000000,	/* 4.0 Mhz (?) */
1153 			readmem_cpuA,writemem_cpuA,0,0,
1154 			interrupt,1
1155 		},
1156 		{
1157 			CPU_Z80,
1158 			4000000,	/* 4.0 Mhz (?) */
1159 			readmem_cpuB,writemem_cpuB,0,0,
1160 			interrupt,1
1161 		},
1162 		{
1163 			CPU_Z80 | CPU_AUDIO_CPU,
1164 			4000000,	/* 4 Mhz (?) */
1165 			YM3812_Y8950_readmem_sound,YM3812_Y8950_writemem_sound,0,0,
1166 			interrupt,1
1167 		},
1168 	},
1169 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1170 	100,	/* CPU slices per frame */
1171 	0, /* init machine */
1172 
1173 	/* video hardware */
1174 	384, 240, { 0, 383, 0, 239-16 },
1175 	psychos_gfxdecodeinfo,
1176 	1024,1024,
1177 	snk_vh_convert_color_prom,
1178 
1179 	VIDEO_TYPE_RASTER,
1180 	0,
1181 	snk_vh_start,
1182 	snk_vh_stop,
1183 	gwar_vh_screenrefresh,
1184 
1185 	/* sound hardware */
1186 	0,0,0,0,
1187 	{
1188 		{
1189 			SOUND_YM3812,
1190 			&ym3812_interface
1191 	    },
1192 		{
1193 			SOUND_Y8950,
1194 			&y8950_interface
1195 		}
1196 	}
1197 };
1198 
1199 static struct MachineDriver machine_driver_tdfever =
1200 {
1201 	{
1202 		{
1203 			CPU_Z80,
1204 			4000000,	/* 4.0 Mhz (?) */
1205 			readmem_cpuA,writemem_cpuA,0,0,
1206 			interrupt,1
1207 		},
1208 		{
1209 			CPU_Z80,
1210 			4000000,	/* 4.0 Mhz (?) */
1211 			readmem_cpuB,writemem_cpuB,0,0,
1212 			interrupt,1
1213 		},
1214 		{
1215 			CPU_Z80 | CPU_AUDIO_CPU,
1216 			4000000,	/* 4 Mhz (?) */
1217 //			YM3526_Y8950_readmem_sound, YM3526_Y8950_writemem_sound,0,0,
1218 			YM3526_YM3526_readmem_sound, YM3526_YM3526_writemem_sound,0,0,
1219 			interrupt,1
1220 		},
1221 
1222 	},
1223 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1224 	100,	/* CPU slices per frame */
1225 	0, /* init_machine */
1226 
1227 	/* video hardware */
1228 	384,240, { 0, 383, 0, 239-16 },
1229 	tdfever_gfxdecodeinfo,
1230 	1024,1024,
1231 	snk_vh_convert_color_prom,
1232 
1233 	VIDEO_TYPE_RASTER,
1234 	0,
1235 	snk_vh_start,
1236 	snk_vh_stop,
1237 	tdfever_vh_screenrefresh,
1238 
1239 	/* sound hardware */
1240 	0,0,0,0,
1241 	{
1242 		{
1243 			SOUND_YM3526,
1244 			&ym3526_ym3526_interface
1245 	    }
1246 //		{
1247 //			SOUND_Y8950,
1248 //			&ym3526_y8950_interface
1249 //		}
1250 	}
1251 };
1252 
1253 static struct MachineDriver machine_driver_ftsoccer =
1254 {
1255 	{
1256 		{
1257 			CPU_Z80,
1258 			4000000,	/* 4.0 Mhz (?) */
1259 			readmem_cpuA,writemem_cpuA,0,0,
1260 			interrupt,1
1261 		},
1262 		{
1263 			CPU_Z80,
1264 			4000000,	/* 4.0 Mhz (?) */
1265 			readmem_cpuB,writemem_cpuB,0,0,
1266 			interrupt,1
1267 		},
1268 		{
1269 			CPU_Z80 | CPU_AUDIO_CPU,
1270 			4000000,	/* 4 Mhz (?) */
1271 			Y8950_readmem_sound, Y8950_writemem_sound,0,0,
1272 			interrupt,1
1273 		},
1274 
1275 	},
1276 	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
1277 	100,	/* CPU slices per frame */
1278 	0, /* init_machine */
1279 
1280 	/* video hardware */
1281 	384,240, { 0, 383, 0, 239-16 },
1282 	tdfever_gfxdecodeinfo,
1283 	1024,1024,
1284 	snk_vh_convert_color_prom,
1285 
1286 	VIDEO_TYPE_RASTER,
1287 	0,
1288 	snk_vh_start,
1289 	snk_vh_stop,
1290 	ftsoccer_vh_screenrefresh,
1291 
1292 	/* sound hardware */
1293 	0,0,0,0,
1294 	{
1295 		{
1296 			SOUND_YM3526,
1297 			&ym3526_interface
1298 	    }
1299 //		{
1300 //			SOUND_Y8950,
1301 //			&y8950_interface
1302 //		}
1303 	}
1304 };
1305 
1306 /***********************************************************************/
1307 
1308 ROM_START( tnk3 )
1309 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1310 	ROM_LOAD( "tnk3-p1.bin",  0x0000, 0x4000, 0x0d2a8ca9 )
1311 	ROM_LOAD( "tnk3-p2.bin",  0x4000, 0x4000, 0x0ae0a483 )
1312 	ROM_LOAD( "tnk3-p3.bin",  0x8000, 0x4000, 0xd16dd4db )
1313 
1314 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1315 	ROM_LOAD( "tnk3-p4.bin",  0x0000, 0x4000, 0x01b45a90 )
1316 	ROM_LOAD( "tnk3-p5.bin",  0x4000, 0x4000, 0x60db6667 )
1317 	ROM_LOAD( "tnk3-p6.bin",  0x8000, 0x4000, 0x4761fde7 )
1318 
1319 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1320 	ROM_LOAD( "tnk3-p10.bin",  0x0000, 0x4000, 0x7bf0a517 )
1321 	ROM_LOAD( "tnk3-p11.bin",  0x4000, 0x4000, 0x0569ce27 )
1322 
1323 	ROM_REGION( 0x0c00, REGION_PROMS )
1324 	ROM_LOAD( "7122.2",  0x000, 0x400, 0x34c06bc6 )
1325 	ROM_LOAD( "7122.1",  0x400, 0x400, 0x6d0ac66a )
1326 	ROM_LOAD( "7122.0",  0x800, 0x400, 0x4662b4c8 )
1327 
1328 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1329 	ROM_LOAD( "tnk3-p14.bin", 0x0000, 0x2000, 0x1fd18c43 )
1330 	ROM_RELOAD(               0x2000, 0x2000 )
1331 
1332 	ROM_REGION( 0x8000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* background tiles */
1333 	ROM_LOAD( "tnk3-p12.bin", 0x0000, 0x4000, 0xff495a16 )
1334 	ROM_LOAD( "tnk3-p13.bin", 0x4000, 0x4000, 0xf8344843 )
1335 
1336 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1337 	ROM_LOAD( "tnk3-p7.bin", 0x00000, 0x4000, 0x06b92c88 )
1338 	ROM_LOAD( "tnk3-p8.bin", 0x08000, 0x4000, 0x63d0e2eb )
1339 	ROM_LOAD( "tnk3-p9.bin", 0x10000, 0x4000, 0x872e3fac )
1340 ROM_END
1341 
1342 ROM_START( tnk3j )
1343 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1344 	ROM_LOAD( "p1.4e",  0x0000, 0x4000, 0x03aca147 )
1345 	ROM_LOAD( "tnk3-p2.bin",  0x4000, 0x4000, 0x0ae0a483 )
1346 	ROM_LOAD( "tnk3-p3.bin",  0x8000, 0x4000, 0xd16dd4db )
1347 
1348 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1349 	ROM_LOAD( "tnk3-p4.bin",  0x0000, 0x4000, 0x01b45a90 )
1350 	ROM_LOAD( "tnk3-p5.bin",  0x4000, 0x4000, 0x60db6667 )
1351 	ROM_LOAD( "tnk3-p6.bin",  0x8000, 0x4000, 0x4761fde7 )
1352 
1353 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1354 	ROM_LOAD( "tnk3-p10.bin",  0x0000, 0x4000, 0x7bf0a517 )
1355 	ROM_LOAD( "tnk3-p11.bin",  0x4000, 0x4000, 0x0569ce27 )
1356 
1357 	ROM_REGION( 0x0c00, REGION_PROMS )
1358 	ROM_LOAD( "7122.2",  0x000, 0x400, 0x34c06bc6 )
1359 	ROM_LOAD( "7122.1",  0x400, 0x400, 0x6d0ac66a )
1360 	ROM_LOAD( "7122.0",  0x800, 0x400, 0x4662b4c8 )
1361 
1362 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1363 	ROM_LOAD( "p14.1e", 0x0000, 0x2000, 0x6bd575ca )
1364 	ROM_RELOAD(         0x2000, 0x2000 )
1365 
1366 	ROM_REGION( 0x8000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* background tiles */
1367 	ROM_LOAD( "tnk3-p12.bin", 0x0000, 0x4000, 0xff495a16 )
1368 	ROM_LOAD( "tnk3-p13.bin", 0x4000, 0x4000, 0xf8344843 )
1369 
1370 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1371 	ROM_LOAD( "tnk3-p7.bin", 0x00000, 0x4000, 0x06b92c88 )
1372 	ROM_LOAD( "tnk3-p8.bin", 0x08000, 0x4000, 0x63d0e2eb )
1373 	ROM_LOAD( "tnk3-p9.bin", 0x10000, 0x4000, 0x872e3fac )
1374 ROM_END
1375 
1376 /***********************************************************************/
1377 
1378 ROM_START( athena )
1379 	ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for cpuA code */
1380 	ROM_LOAD( "up02_p4.rom",  0x0000, 0x4000,  0x900a113c )
1381 	ROM_LOAD( "up02_m4.rom",  0x4000, 0x8000,  0x61c69474 )
1382 
1383 	ROM_REGION(  0x10000 , REGION_CPU2 ) /* 64k for cpuB code */
1384 	ROM_LOAD( "up02_p8.rom",  0x0000, 0x4000, 0xdf50af7e )
1385 	ROM_LOAD( "up02_m8.rom",  0x4000, 0x8000, 0xf3c933df )
1386 
1387 	ROM_REGION( 0x10000, REGION_CPU3 ) /* 64k for sound code */
1388 	ROM_LOAD( "up02_g6.rom",  0x0000, 0x4000, 0x42dbe029 )
1389 	ROM_LOAD( "up02_k6.rom",  0x4000, 0x8000, 0x596f1c8a )
1390 
1391 	ROM_REGION( 0x0c00, REGION_PROMS )
1392 	ROM_LOAD( "up02_c2.rom",  0x000, 0x400, 0x294279ae )
1393 	ROM_LOAD( "up02_b1.rom",  0x400, 0x400, 0xd25c9099 )
1394 	ROM_LOAD( "up02_c1.rom",  0x800, 0x400, 0xa4a4e7dc )
1395 
1396 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1397 	ROM_LOAD( "up01_d2.rom",  0x0000, 0x4000,  0x18b4bcca )
1398 
1399 	ROM_REGION( 0x8000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* background tiles */
1400 	ROM_LOAD( "up01_b2.rom",  0x0000, 0x8000,  0xf269c0eb )
1401 
1402 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1403 	ROM_LOAD( "up01_p2.rom",  0x00000, 0x8000, 0xc63a871f )
1404 	ROM_LOAD( "up01_s2.rom",  0x08000, 0x8000, 0x760568d8 )
1405 	ROM_LOAD( "up01_t2.rom",  0x10000, 0x8000, 0x57b35c73 )
1406 ROM_END
1407 
1408 /***********************************************************************/
1409 
1410 ROM_START( fitegolf )
1411 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1412 	ROM_LOAD( "gu2",    0x0000, 0x4000, 0x19be7ad6 )
1413 	ROM_LOAD( "gu1",    0x4000, 0x8000, 0xbc32568f )
1414 
1415 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1416 	ROM_LOAD( "gu6",    0x0000, 0x4000, 0x2b9978c5 )
1417 	ROM_LOAD( "gu5",    0x4000, 0x8000, 0xea3d138c )
1418 
1419 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1420 	ROM_LOAD( "gu3",    0x0000, 0x4000, 0x811b87d7 )
1421 	ROM_LOAD( "gu4",    0x4000, 0x8000, 0x2d998e2b )
1422 
1423 	ROM_REGION( 0x0c00, REGION_PROMS )
1424 	ROM_LOAD( "82s137.2c",  0x00000, 0x00400, 0x6e4c7836 )
1425 	ROM_LOAD( "82s137.1b",  0x00400, 0x00400, 0x29e7986f )
1426 	ROM_LOAD( "82s137.1c",  0x00800, 0x00400, 0x27ba9ff9 )
1427 
1428 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1429 	ROM_LOAD( "gu8",   0x0000, 0x4000, 0xf1628dcf )
1430 
1431 	ROM_REGION( 0x8000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1432 	ROM_LOAD( "gu7",  0x0000, 0x8000, 0x4655f94e )
1433 
1434 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* sprites */
1435 	ROM_LOAD( "gu9",   0x00000, 0x8000, 0xd4957ec5 )
1436 	ROM_LOAD( "gu10",  0x08000, 0x8000, 0xb3acdac2 )
1437 	ROM_LOAD( "gu11",  0x10000, 0x8000, 0xb99cf73b )
1438 ROM_END
1439 
1440 /***********************************************************************/
1441 
1442 ROM_START( ikari )
1443 	ROM_REGION( 0x10000, REGION_CPU1 )	/* CPU A */
1444 	ROM_LOAD( "1.rom",  0x0000, 0x10000, 0x52a8b2dd )
1445 
1446 	ROM_REGION( 0x10000, REGION_CPU2 )	/* CPU B */
1447 	ROM_LOAD( "2.rom",  0x0000, 0x10000, 0x45364d55 )
1448 
1449 	ROM_REGION( 0x10000, REGION_CPU3 )	/* Sound CPU */
1450 	ROM_LOAD( "3.rom",  0x0000, 0x10000, 0x56a26699 )
1451 
1452 	ROM_REGION( 0x0c00, REGION_PROMS )
1453 	ROM_LOAD( "7122er.prm",  0x000, 0x400, 0xb9bf2c2c )
1454 	ROM_LOAD( "7122eg.prm",  0x400, 0x400, 0x0703a770 )
1455 	ROM_LOAD( "7122eb.prm",  0x800, 0x400, 0x0a11cdde )
1456 
1457 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1458 	ROM_LOAD( "7.rom",    0x00000, 0x4000, 0xa7eb4917 )
1459 
1460 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1461 	ROM_LOAD( "17.rom", 0x00000, 0x8000, 0xe0dba976 )
1462 	ROM_LOAD( "18.rom", 0x08000, 0x8000, 0x24947d5f )
1463 	ROM_LOAD( "19.rom", 0x10000, 0x8000, 0x9ee59e91 )
1464 	ROM_LOAD( "20.rom", 0x18000, 0x8000, 0x5da7ec1a )
1465 
1466 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1467 	ROM_LOAD( "8.rom",  0x00000, 0x8000, 0x9827c14a )
1468 	ROM_LOAD( "9.rom",  0x08000, 0x8000, 0x545c790c )
1469 	ROM_LOAD( "10.rom", 0x10000, 0x8000, 0xec9ba07e )
1470 
1471 	ROM_REGION( 0x30000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1472 	ROM_LOAD( "11.rom", 0x00000, 0x8000, 0x5c75ea8f )
1473 	ROM_LOAD( "14.rom", 0x08000, 0x8000, 0x3293fde4 )
1474 	ROM_LOAD( "12.rom", 0x10000, 0x8000, 0x95138498 )
1475 	ROM_LOAD( "15.rom", 0x18000, 0x8000, 0x65a61c99 )
1476 	ROM_LOAD( "13.rom", 0x20000, 0x8000, 0x315383d7 )
1477 	ROM_LOAD( "16.rom", 0x28000, 0x8000, 0xe9b03e07 )
1478 ROM_END
1479 
1480 ROM_START( ikarijp )
1481 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1482 	ROM_LOAD( "up03_l4.rom",  0x0000, 0x4000, 0xcde006be )
1483 	ROM_LOAD( "up03_k4.rom",  0x4000, 0x8000, 0x26948850 )
1484 
1485 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1486 	ROM_LOAD( "ik3",  0x0000, 0x4000, 0x9bb385f8 )
1487 	ROM_LOAD( "ik4",  0x4000, 0x8000, 0x3a144bca )
1488 
1489 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1490 	ROM_LOAD( "ik5",  0x0000, 0x4000, 0x863448fa )
1491 	ROM_LOAD( "ik6",  0x4000, 0x8000, 0x9b16aa57 )
1492 
1493 	ROM_REGION( 0x0c00, REGION_PROMS )
1494 	ROM_LOAD( "7122er.prm",  0x000, 0x400, 0xb9bf2c2c )
1495 	ROM_LOAD( "7122eg.prm",  0x400, 0x400, 0x0703a770 )
1496 	ROM_LOAD( "7122eb.prm",  0x800, 0x400, 0x0a11cdde )
1497 
1498 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1499 	ROM_LOAD( "ik7",    0x00000, 0x4000, 0x9e88f536 )	/* characters */
1500 
1501 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1502 	ROM_LOAD( "17.rom", 0x00000, 0x8000, 0xe0dba976 )
1503 	ROM_LOAD( "18.rom", 0x08000, 0x8000, 0x24947d5f )
1504 	ROM_LOAD( "ik19", 0x10000, 0x8000, 0x566242ec )
1505 	ROM_LOAD( "20.rom", 0x18000, 0x8000, 0x5da7ec1a )
1506 
1507 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1508 	ROM_LOAD( "ik8",  0x00000, 0x8000, 0x75d796d0 )
1509 	ROM_LOAD( "ik9",  0x08000, 0x8000, 0x2c34903b )
1510 	ROM_LOAD( "ik10", 0x10000, 0x8000, 0xda9ccc94 )
1511 
1512 	ROM_REGION( 0x30000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1513 	ROM_LOAD( "11.rom", 0x00000, 0x8000, 0x5c75ea8f )
1514 	ROM_LOAD( "14.rom", 0x08000, 0x8000, 0x3293fde4 )
1515 	ROM_LOAD( "12.rom", 0x10000, 0x8000, 0x95138498 )
1516 	ROM_LOAD( "15.rom", 0x18000, 0x8000, 0x65a61c99 )
1517 	ROM_LOAD( "13.rom", 0x20000, 0x8000, 0x315383d7 )
1518 	ROM_LOAD( "16.rom", 0x28000, 0x8000, 0xe9b03e07 )
1519 ROM_END
1520 
1521 ROM_START( ikarijpb )
1522 	ROM_REGION( 0x10000, REGION_CPU1 ) /* CPU A */
1523 	ROM_LOAD( "ik1",	  0x00000, 0x4000, 0x2ef87dce )
1524 	ROM_LOAD( "up03_k4.rom",  0x04000, 0x8000, 0x26948850 )
1525 
1526 	ROM_REGION( 0x10000, REGION_CPU2 ) /* CPU B code */
1527 	ROM_LOAD( "ik3",    0x0000, 0x4000, 0x9bb385f8 )
1528 	ROM_LOAD( "ik4",    0x4000, 0x8000, 0x3a144bca )
1529 
1530 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1531 	ROM_LOAD( "ik5",    0x0000, 0x4000, 0x863448fa )
1532 	ROM_LOAD( "ik6",    0x4000, 0x8000, 0x9b16aa57 )
1533 
1534 	ROM_REGION( 0x0c00, REGION_PROMS )
1535 	ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
1536 	ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
1537 	ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )
1538 
1539 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1540 	ROM_LOAD( "ik7", 0x0000, 0x4000, 0x9e88f536 )
1541 
1542 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1543 	ROM_LOAD( "17.rom", 0x00000, 0x8000, 0xe0dba976 )
1544 	ROM_LOAD( "18.rom", 0x08000, 0x8000, 0x24947d5f )
1545 	ROM_LOAD( "ik19",   0x10000, 0x8000, 0x566242ec )
1546 	ROM_LOAD( "20.rom", 0x18000, 0x8000, 0x5da7ec1a )
1547 
1548 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1549 	ROM_LOAD( "ik8",    0x00000, 0x8000, 0x75d796d0 )
1550 	ROM_LOAD( "ik9",    0x08000, 0x8000, 0x2c34903b )
1551 	ROM_LOAD( "ik10",   0x10000, 0x8000, 0xda9ccc94 )
1552 
1553 	ROM_REGION( 0x30000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1554 	ROM_LOAD( "11.rom", 0x00000, 0x8000, 0x5c75ea8f )
1555 	ROM_LOAD( "14.rom", 0x08000, 0x8000, 0x3293fde4 )
1556 	ROM_LOAD( "12.rom", 0x10000, 0x8000, 0x95138498 )
1557 	ROM_LOAD( "15.rom", 0x18000, 0x8000, 0x65a61c99 )
1558 	ROM_LOAD( "13.rom", 0x20000, 0x8000, 0x315383d7 )
1559 	ROM_LOAD( "16.rom", 0x28000, 0x8000, 0xe9b03e07 )
1560 ROM_END
1561 
1562 /***********************************************************************/
1563 
1564 ROM_START( victroad )
1565 	ROM_REGION( 0x10000, REGION_CPU1 )	/* CPU A code */
1566 	ROM_LOAD( "p1",  0x0000, 0x10000,  0xe334acef )
1567 
1568 	ROM_REGION(  0x10000 , REGION_CPU2 )	/* CPU B code */
1569 	ROM_LOAD( "p2",  0x00000, 0x10000, 0x907fac83 )
1570 
1571 	ROM_REGION( 0x10000, REGION_CPU3 )	/* sound code */
1572 	ROM_LOAD( "p3",  0x00000, 0x10000, 0xbac745f6 )
1573 
1574 	ROM_REGION( 0x0c00, REGION_PROMS )
1575 	ROM_LOAD( "mb7122e.1k", 0x000, 0x400, 0x491ab831 )
1576 	ROM_LOAD( "mb7122e.2l", 0x400, 0x400, 0x8feca424 )
1577 	ROM_LOAD( "mb7122e.1l", 0x800, 0x400, 0x220076ca )
1578 
1579 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1580 	ROM_LOAD( "p7",  0x0000, 0x4000,  0x2b6ed95b )
1581 
1582 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1583 	ROM_LOAD( "p17",  0x00000, 0x8000, 0x19d4518c )
1584 	ROM_LOAD( "p18",  0x08000, 0x8000, 0xd818be43 )
1585 	ROM_LOAD( "p19",  0x10000, 0x8000, 0xd64e0f89 )
1586 	ROM_LOAD( "p20",  0x18000, 0x8000, 0xedba0f31 )
1587 
1588 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1589 	ROM_LOAD( "p8",  0x00000, 0x8000, 0xdf7f252a )
1590 	ROM_LOAD( "p9",  0x08000, 0x8000, 0x9897bc05 )
1591 	ROM_LOAD( "p10", 0x10000, 0x8000, 0xecd3c0ea )
1592 
1593 	ROM_REGION( 0x40000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1594 	ROM_LOAD( "p11", 0x00000, 0x8000, 0x668b25a4 )
1595 	ROM_LOAD( "p14", 0x08000, 0x8000, 0xa7031d4a )
1596 	ROM_LOAD( "p12", 0x10000, 0x8000, 0xf44e95fa )
1597 	ROM_LOAD( "p15", 0x18000, 0x8000, 0x120d2450 )
1598 	ROM_LOAD( "p13", 0x20000, 0x8000, 0x980ca3d8 )
1599 	ROM_LOAD( "p16", 0x28000, 0x8000, 0x9f820e8a )
1600 
1601 	ROM_REGION( 0x20000, REGION_SOUND1 )
1602 	ROM_LOAD( "p4",  0x00000, 0x10000, 0xe10fb8cc )
1603 	ROM_LOAD( "p5",  0x10000, 0x10000, 0x93e5f110 )
1604 ROM_END
1605 
1606 ROM_START( dogosoke ) /* Victory Road Japan */
1607 	ROM_REGION( 0x10000, REGION_CPU1 )	/* CPU A code */
1608 	ROM_LOAD( "up03_p4.rom",  0x0000, 0x10000,  0x37867ad2 )
1609 
1610 	ROM_REGION( 0x10000, REGION_CPU2 )	/* CPU B code */
1611 	ROM_LOAD( "p2",  0x00000, 0x10000, 0x907fac83 )
1612 
1613 	ROM_REGION( 0x10000, REGION_CPU3 )	/* sound code */
1614 	ROM_LOAD( "up03_k7.rom",  0x00000, 0x10000, 0x173fa571 )
1615 
1616 	ROM_REGION( 0x0c00, REGION_PROMS )
1617 	ROM_LOAD( "up03_k1.rom",  0x000, 0x400, 0x10a2ce2b )
1618 	ROM_LOAD( "up03_l2.rom",  0x400, 0x400, 0x99dc9792 )
1619 	ROM_LOAD( "up03_l1.rom",  0x800, 0x400, 0xe7213160 )
1620 
1621 	ROM_REGION( 0x4000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1622 	ROM_LOAD( "up02_b3.rom",  0x0000, 0x4000,  0x51a4ec83 )
1623 
1624 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1625 	ROM_LOAD( "p17",  0x00000, 0x8000, 0x19d4518c )
1626 	ROM_LOAD( "p18",  0x08000, 0x8000, 0xd818be43 )
1627 	ROM_LOAD( "p19",  0x10000, 0x8000, 0xd64e0f89 )
1628 	ROM_LOAD( "p20",  0x18000, 0x8000, 0xedba0f31 )
1629 
1630 	ROM_REGION( 0x18000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1631 	ROM_LOAD( "up02_d3.rom",  0x00000, 0x8000, 0xd43044f8 )
1632 	ROM_LOAD( "up02_e3.rom",  0x08000, 0x8000, 0x365ed2d8 )
1633 	ROM_LOAD( "up02_g3.rom",  0x10000, 0x8000, 0x92579bf3 )
1634 
1635 	ROM_REGION( 0x30000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1636 	ROM_LOAD( "p11", 0x00000, 0x8000, 0x668b25a4 )
1637 	ROM_LOAD( "p14", 0x08000, 0x8000, 0xa7031d4a )
1638 	ROM_LOAD( "p12", 0x10000, 0x8000, 0xf44e95fa )
1639 	ROM_LOAD( "p15", 0x18000, 0x8000, 0x120d2450 )
1640 	ROM_LOAD( "p13", 0x20000, 0x8000, 0x980ca3d8 )
1641 	ROM_LOAD( "p16", 0x28000, 0x8000, 0x9f820e8a )
1642 
1643 	ROM_REGION( 0x20000, REGION_SOUND1 )
1644 	ROM_LOAD( "up03_f5.rom", 0x00000, 0x10000, 0x5b43fe9f )
1645 	ROM_LOAD( "up03_g5.rom", 0x10000, 0x10000, 0xaae30cd6 )
1646 ROM_END
1647 
1648 /***********************************************************************/
1649 
1650 ROM_START( gwar )
1651 	ROM_REGION( 0x10000, REGION_CPU1 )
1652 	ROM_LOAD( "7g",  0x00000, 0x10000, 0x5bcfa7dc )
1653 
1654 	ROM_REGION( 0x10000, REGION_CPU2 )
1655 	ROM_LOAD( "g02",  0x00000, 0x10000, 0x86d931bf )
1656 
1657 	ROM_REGION( 0x10000, REGION_CPU3 )
1658 	ROM_LOAD( "g03",  0x00000, 0x10000, 0xeb544ab9 )
1659 
1660 	ROM_REGION( 0x0c00, REGION_PROMS )
1661 	ROM_LOAD( "guprom.3", 0x000, 0x400, 0x090236a3 ) /* red */
1662 	ROM_LOAD( "guprom.2", 0x400, 0x400, 0x9147de69 ) /* green */
1663 	ROM_LOAD( "guprom.1", 0x800, 0x400, 0x7f9c839e ) /* blue */
1664 
1665 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1666 	ROM_LOAD( "g05",  0x0000, 0x08000, 0x80f73e2e )
1667 
1668 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1669 	ROM_LOAD( "g06",  0x00000, 0x10000, 0xf1dcdaef )
1670 	ROM_LOAD( "g07",  0x10000, 0x10000, 0x326e4e5e )
1671 	ROM_LOAD( "g08",  0x20000, 0x10000, 0x0aa70967 )
1672 	ROM_LOAD( "g09",  0x30000, 0x10000, 0xb7686336 )
1673 
1674 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1675 	ROM_LOAD( "g10",  0x00000, 0x10000, 0x58600f7d )
1676 	ROM_LOAD( "g11",  0x10000, 0x10000, 0xa3f9b463 )
1677 	ROM_LOAD( "g12",  0x20000, 0x10000, 0x092501be )
1678 	ROM_LOAD( "g13",  0x30000, 0x10000, 0x25801ea6 )
1679 
1680 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE )
1681 	ROM_LOAD( "g20",  0x00000, 0x10000, 0x2b46edff )
1682 	ROM_LOAD( "g21",  0x10000, 0x10000, 0xbe19888d )
1683 	ROM_LOAD( "g18",  0x20000, 0x10000, 0x2d653f0c )
1684 	ROM_LOAD( "g19",  0x30000, 0x10000, 0xebbf3ba2 )
1685 	ROM_LOAD( "g16",  0x40000, 0x10000, 0xaeb3707f )
1686 	ROM_LOAD( "g17",  0x50000, 0x10000, 0x0808f95f )
1687 	ROM_LOAD( "g14",  0x60000, 0x10000, 0x8dfc7b87 )
1688 	ROM_LOAD( "g15",  0x70000, 0x10000, 0x06822aac )
1689 
1690 	ROM_REGION( 0x10000, REGION_SOUND1 )
1691 	ROM_LOAD( "g04",  0x00000, 0x10000, 0x2255f8dd )
1692 ROM_END
1693 
1694 ROM_START( gwara )
1695 	ROM_REGION( 0x10000, REGION_CPU1 )
1696 	ROM_LOAD( "gv3",  0x00000, 0x10000, 0x24936d83 )
1697 
1698 	ROM_REGION( 0x10000, REGION_CPU2 )
1699 	ROM_LOAD( "gv4",  0x00000, 0x10000, 0x26335a55 )
1700 
1701 	ROM_REGION( 0x10000, REGION_CPU3 )
1702 	ROM_LOAD( "gv2",  0x00000, 0x10000, 0x896682dd )
1703 
1704 	ROM_REGION( 0x0c00, REGION_PROMS )
1705 	ROM_LOAD( "guprom.3", 0x000, 0x400, 0x090236a3 ) /* red */
1706 	ROM_LOAD( "guprom.2", 0x400, 0x400, 0x9147de69 ) /* green */
1707 	ROM_LOAD( "guprom.1", 0x800, 0x400, 0x7f9c839e ) /* blue */
1708 
1709 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1710 	ROM_LOAD( "g05",  0x0000, 0x08000, 0x80f73e2e )
1711 
1712 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1713 	ROM_LOAD( "g06",  0x00000, 0x10000, 0xf1dcdaef )
1714 	ROM_LOAD( "g07",  0x10000, 0x10000, 0x326e4e5e )
1715 	ROM_LOAD( "g08",  0x20000, 0x10000, 0x0aa70967 )
1716 	ROM_LOAD( "g09",  0x30000, 0x10000, 0xb7686336 )
1717 
1718 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1719 	ROM_LOAD( "g10",  0x00000, 0x10000, 0x58600f7d )
1720 	ROM_LOAD( "g11",  0x10000, 0x10000, 0xa3f9b463 )
1721 	ROM_LOAD( "g12",  0x20000, 0x10000, 0x092501be )
1722 	ROM_LOAD( "g13",  0x30000, 0x10000, 0x25801ea6 )
1723 
1724 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE )
1725 	ROM_LOAD( "g20",  0x00000, 0x10000, 0x2b46edff )
1726 	ROM_LOAD( "g21",  0x10000, 0x10000, 0xbe19888d )
1727 	ROM_LOAD( "g18",  0x20000, 0x10000, 0x2d653f0c )
1728 	ROM_LOAD( "g19",  0x30000, 0x10000, 0xebbf3ba2 )
1729 	ROM_LOAD( "g16",  0x40000, 0x10000, 0xaeb3707f )
1730 	ROM_LOAD( "g17",  0x50000, 0x10000, 0x0808f95f )
1731 	ROM_LOAD( "g14",  0x60000, 0x10000, 0x8dfc7b87 )
1732 	ROM_LOAD( "g15",  0x70000, 0x10000, 0x06822aac )
1733 
1734 	ROM_REGION( 0x10000, REGION_SOUND1 )
1735 	ROM_LOAD( "g04",  0x00000, 0x10000, 0x2255f8dd )
1736 ROM_END
1737 
1738 ROM_START( gwarj )
1739 	ROM_REGION( 0x10000, REGION_CPU1 )
1740 	ROM_LOAD( "7y3047",  0x00000, 0x10000, 0x7f8a880c )
1741 
1742 	ROM_REGION( 0x10000, REGION_CPU2 )
1743 	ROM_LOAD( "g02",  0x00000, 0x10000, 0x86d931bf )
1744 
1745 	ROM_REGION( 0x10000, REGION_CPU3 )
1746 	ROM_LOAD( "g03",  0x00000, 0x10000, 0xeb544ab9 )
1747 
1748 	ROM_REGION( 0x0c00, REGION_PROMS )
1749 	ROM_LOAD( "guprom.3", 0x000, 0x400, 0x090236a3 ) /* red */
1750 	ROM_LOAD( "guprom.2", 0x400, 0x400, 0x9147de69 ) /* green */
1751 	ROM_LOAD( "guprom.1", 0x800, 0x400, 0x7f9c839e ) /* blue */
1752 
1753 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1754 	ROM_LOAD( "792001",  0x0000, 0x08000, 0x99d7ddf3 )
1755 
1756 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1757 	ROM_LOAD( "g06",  0x00000, 0x10000, 0xf1dcdaef )
1758 	ROM_LOAD( "g07",  0x10000, 0x10000, 0x326e4e5e )
1759 	ROM_LOAD( "g08",  0x20000, 0x10000, 0x0aa70967 )
1760 	ROM_LOAD( "g09",  0x30000, 0x10000, 0xb7686336 )
1761 
1762 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE )
1763 	ROM_LOAD( "g10",  0x00000, 0x10000, 0x58600f7d )
1764 	ROM_LOAD( "g11",  0x10000, 0x10000, 0xa3f9b463 )
1765 	ROM_LOAD( "g12",  0x20000, 0x10000, 0x092501be )
1766 	ROM_LOAD( "g13",  0x30000, 0x10000, 0x25801ea6 )
1767 
1768 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE )
1769 	ROM_LOAD( "g20",  0x00000, 0x10000, 0x2b46edff )
1770 	ROM_LOAD( "g21",  0x10000, 0x10000, 0xbe19888d )
1771 	ROM_LOAD( "g18",  0x20000, 0x10000, 0x2d653f0c )
1772 	ROM_LOAD( "g19",  0x30000, 0x10000, 0xebbf3ba2 )
1773 	ROM_LOAD( "g16",  0x40000, 0x10000, 0xaeb3707f )
1774 	ROM_LOAD( "g17",  0x50000, 0x10000, 0x0808f95f )
1775 	ROM_LOAD( "g14",  0x60000, 0x10000, 0x8dfc7b87 )
1776 	ROM_LOAD( "g15",  0x70000, 0x10000, 0x06822aac )
1777 
1778 	ROM_REGION( 0x10000, REGION_SOUND1 )
1779 	ROM_LOAD( "g04",  0x00000, 0x10000, 0x2255f8dd )
1780 ROM_END
1781 
1782 ROM_START( gwarb )
1783 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1784 	ROM_LOAD( "g01",  0x00000, 0x10000, 0xce1d3c80 )
1785 
1786 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1787 	ROM_LOAD( "g02",  0x00000, 0x10000, 0x86d931bf )
1788 
1789 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1790 	ROM_LOAD( "g03",  0x00000, 0x10000, 0xeb544ab9 )
1791 
1792 	ROM_REGION( 0x0c00, REGION_PROMS )
1793 	ROM_LOAD( "guprom.3", 0x000, 0x400, 0x090236a3 ) /* red */ // up03_k1.rom
1794 	ROM_LOAD( "guprom.2", 0x400, 0x400, 0x9147de69 ) /* green */ // up03_l1.rom
1795 	ROM_LOAD( "guprom.1", 0x800, 0x400, 0x7f9c839e ) /* blue */ // up03_k2.rom
1796 
1797 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1798 	ROM_LOAD( "g05",  0x0000, 0x08000, 0x80f73e2e )
1799 
1800 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* background tiles */
1801 	ROM_LOAD( "g06",  0x00000, 0x10000, 0xf1dcdaef )
1802 	ROM_LOAD( "g07",  0x10000, 0x10000, 0x326e4e5e )
1803 	ROM_LOAD( "g08",  0x20000, 0x10000, 0x0aa70967 )
1804 	ROM_LOAD( "g09",  0x30000, 0x10000, 0xb7686336 )
1805 
1806 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1807 	ROM_LOAD( "g10",  0x00000, 0x10000, 0x58600f7d )
1808 	ROM_LOAD( "g11",  0x10000, 0x10000, 0xa3f9b463 )
1809 	ROM_LOAD( "g12",  0x20000, 0x10000, 0x092501be )
1810 	ROM_LOAD( "g13",  0x30000, 0x10000, 0x25801ea6 )
1811 
1812 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1813 	ROM_LOAD( "g20",  0x00000, 0x10000, 0x2b46edff )
1814 	ROM_LOAD( "g21",  0x10000, 0x10000, 0xbe19888d )
1815 	ROM_LOAD( "g18",  0x20000, 0x10000, 0x2d653f0c )
1816 	ROM_LOAD( "g19",  0x30000, 0x10000, 0xebbf3ba2 )
1817 	ROM_LOAD( "g16",  0x40000, 0x10000, 0xaeb3707f )
1818 	ROM_LOAD( "g17",  0x50000, 0x10000, 0x0808f95f )
1819 	ROM_LOAD( "g14",  0x60000, 0x10000, 0x8dfc7b87 )
1820 	ROM_LOAD( "g15",  0x70000, 0x10000, 0x06822aac )
1821 
1822 	ROM_REGION( 0x10000, REGION_SOUND1 )
1823 	ROM_LOAD( "g04",  0x00000, 0x10000, 0x2255f8dd )
1824 ROM_END
1825 
1826 /***********************************************************************/
1827 
1828 ROM_START( bermudat )
1829 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1830 	ROM_LOAD( "bt_p1.rom",  0x0000, 0x10000,  0x43dec5e9 )
1831 
1832 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1833 	ROM_LOAD( "bt_p2.rom",  0x00000, 0x10000, 0x0e193265 )
1834 
1835 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1836 	ROM_LOAD( "bt_p3.rom",  0x00000, 0x10000, 0x53a82e50 )    /* YM3526 */
1837 
1838 	ROM_REGION( 0x1400, REGION_PROMS )
1839 	ROM_LOAD( "btj_01r.prm", 0x0000, 0x0400, 0xf4b54d06 ) /* red */
1840 	ROM_LOAD( "btj_02g.prm", 0x0400, 0x0400, 0xbaac139e ) /* green */
1841 	ROM_LOAD( "btj_03b.prm", 0x0800, 0x0400, 0x2edf2e0b ) /* blue */
1842 	ROM_LOAD( "btj_h.prm",   0x0c00, 0x0400, 0xc20b197b ) /* ? */
1843 	ROM_LOAD( "btj_v.prm",   0x1000, 0x0400, 0x5d0c617f ) /* ? */
1844 
1845 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1846 	ROM_LOAD( "bt_p10.rom", 0x0000, 0x8000,  0xd3650211 )
1847 
1848 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1849 	ROM_LOAD( "bt_p22.rom", 0x00000, 0x10000, 0x8daf7df4 )
1850 	ROM_LOAD( "bt_p21.rom", 0x10000, 0x10000, 0xb7689599 )
1851 	ROM_LOAD( "bt_p20.rom", 0x20000, 0x10000, 0xab6217b7 )
1852 	ROM_LOAD( "bt_p19.rom", 0x30000, 0x10000, 0x8ed759a0 )
1853 
1854 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1855 	ROM_LOAD( "bt_p6.rom",  0x00000, 0x8000, 0x8ffdf969 )
1856 	ROM_LOAD( "bt_p7.rom",  0x10000, 0x8000, 0x268d10df )
1857 	ROM_LOAD( "bt_p8.rom",  0x20000, 0x8000, 0x3e39e9dd )
1858 	ROM_LOAD( "bt_p9.rom",  0x30000, 0x8000, 0xbf56da61 )
1859 
1860 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1861 	ROM_LOAD( "bt_p11.rom", 0x00000, 0x10000, 0xaae7410e )
1862 	ROM_LOAD( "bt_p12.rom", 0x10000, 0x10000, 0x18914f70 )
1863 	ROM_LOAD( "bt_p13.rom", 0x20000, 0x10000, 0xcd79ce81 )
1864 	ROM_LOAD( "bt_p14.rom", 0x30000, 0x10000, 0xedc57117 )
1865 	ROM_LOAD( "bt_p15.rom", 0x40000, 0x10000, 0x448bf9f4 )
1866 	ROM_LOAD( "bt_p16.rom", 0x50000, 0x10000, 0x119999eb )
1867 	ROM_LOAD( "bt_p17.rom", 0x60000, 0x10000, 0xb5462139 )
1868 	ROM_LOAD( "bt_p18.rom", 0x70000, 0x10000, 0xcb416227 )
1869 
1870 	ROM_REGION( 0x20000, REGION_SOUND1 )
1871 	ROM_LOAD( "bt_p4.rom",  0x00000, 0x10000, 0x4bc83229 )
1872 	ROM_LOAD( "bt_p5.rom",  0x10000, 0x10000, 0x817bd62c )
1873 ROM_END
1874 
1875 ROM_START( bermudaj )
1876 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1877 	ROM_LOAD( "btj_p01.bin", 0x0000, 0x10000,  0xeda75f36 )
1878 
1879 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1880 	ROM_LOAD( "bt_p2.rom",   0x00000, 0x10000, 0x0e193265 )
1881 
1882 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1883 	ROM_LOAD( "btj_p03.bin", 0x00000, 0x10000, 0xfea8a096 )    /* YM3526 */
1884 
1885 	ROM_REGION( 0x1400, REGION_PROMS )
1886 	ROM_LOAD( "btj_01r.prm", 0x0000, 0x0400, 0xf4b54d06 ) /* red */
1887 	ROM_LOAD( "btj_02g.prm", 0x0400, 0x0400, 0xbaac139e ) /* green */
1888 	ROM_LOAD( "btj_03b.prm", 0x0800, 0x0400, 0x2edf2e0b ) /* blue */
1889 	ROM_LOAD( "btj_h.prm",   0x0c00, 0x0400, 0xc20b197b ) /* ? */
1890 	ROM_LOAD( "btj_v.prm",   0x1000, 0x0400, 0x5d0c617f ) /* ? */
1891 
1892 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1893 	ROM_LOAD( "bt_p10.rom",  0x0000, 0x8000,  0xd3650211 )
1894 
1895 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1896 	ROM_LOAD( "bt_p22.rom",  0x00000, 0x10000, 0x8daf7df4 )
1897 	ROM_LOAD( "bt_p21.rom",  0x10000, 0x10000, 0xb7689599 )
1898 	ROM_LOAD( "bt_p20.rom",  0x20000, 0x10000, 0xab6217b7 )
1899 	ROM_LOAD( "bt_p19.rom",  0x30000, 0x10000, 0x8ed759a0 )
1900 
1901 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1902 	ROM_LOAD( "bt_p6.rom",   0x00000, 0x8000, 0x8ffdf969 )
1903 	ROM_LOAD( "bt_p7.rom",   0x10000, 0x8000, 0x268d10df )
1904 	ROM_LOAD( "bt_p8.rom",   0x20000, 0x8000, 0x3e39e9dd )
1905 	ROM_LOAD( "bt_p9.rom",   0x30000, 0x8000, 0xbf56da61 )
1906 
1907 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1908 	ROM_LOAD( "bt_p11.rom",  0x00000, 0x10000, 0xaae7410e )
1909 	ROM_LOAD( "bt_p12.rom",  0x10000, 0x10000, 0x18914f70 )
1910 	ROM_LOAD( "bt_p13.rom",  0x20000, 0x10000, 0xcd79ce81 )
1911 	ROM_LOAD( "bt_p14.rom",  0x30000, 0x10000, 0xedc57117 )
1912 	ROM_LOAD( "bt_p15.rom",  0x40000, 0x10000, 0x448bf9f4 )
1913 	ROM_LOAD( "bt_p16.rom",  0x50000, 0x10000, 0x119999eb )
1914 	ROM_LOAD( "bt_p17.rom",  0x60000, 0x10000, 0xb5462139 )
1915 	ROM_LOAD( "bt_p18.rom",  0x70000, 0x10000, 0xcb416227 )
1916 
1917 	ROM_REGION( 0x20000, REGION_SOUND1 )
1918 	ROM_LOAD( "btj_p04.bin", 0x00000, 0x10000, 0xb2e01129 )
1919 	ROM_LOAD( "btj_p05.bin", 0x10000, 0x10000, 0x924c24f7 )
1920 ROM_END
1921 
1922 ROM_START( worldwar )
1923 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1924 	ROM_LOAD( "ww4.bin",  0x0000, 0x10000,  0xbc29d09f )
1925 
1926 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1927 	ROM_LOAD( "ww5.bin",  0x00000, 0x10000, 0x8dc15909 )
1928 
1929 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1930 	ROM_LOAD( "ww3.bin",  0x00000, 0x10000, 0x8b74c951 )
1931 
1932 	ROM_REGION( 0x1400, REGION_PROMS )
1933 	ROM_LOAD( "ww_r.bin",    0x0000, 0x0400, 0xb88e95f0 ) /* red */
1934 	ROM_LOAD( "ww_g.bin",    0x0400, 0x0400, 0x5e1616b2 ) /* green */
1935 	ROM_LOAD( "ww_b.bin",    0x0800, 0x0400, 0xe9770796 ) /* blue */
1936 	ROM_LOAD( "btj_h.prm",   0x0c00, 0x0400, 0xc20b197b ) /* ? */
1937 	ROM_LOAD( "btj_v.prm",   0x1000, 0x0400, 0x5d0c617f ) /* ? */
1938 
1939 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1940 	ROM_LOAD( "ww6.bin", 0x0000, 0x8000,  0xd57570ab )
1941 
1942 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1943 	ROM_LOAD( "ww11.bin", 0x00000, 0x10000, 0x603ddcb5 )
1944 	ROM_LOAD( "ww14.bin", 0x10000, 0x10000, 0x04c784be )
1945 	ROM_LOAD( "ww13.bin", 0x20000, 0x10000, 0x83a7ef62 )
1946 	ROM_LOAD( "ww12.bin", 0x30000, 0x10000, 0x388093ff )
1947 
1948 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1949 	ROM_LOAD( "ww7.bin",  0x30000, 0x08000, 0x53c4b24e )
1950 	ROM_LOAD( "ww8.bin",  0x20000, 0x08000, 0x0ec15086 )
1951 	ROM_LOAD( "ww9.bin",  0x10000, 0x08000, 0xd9d35911 )
1952 	ROM_LOAD( "ww10.bin", 0x00000, 0x08000, 0xf68a2d51 )
1953 
1954 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
1955 	ROM_LOAD( "ww15.bin", 0x40000, 0x10000, 0xd55ce063 )
1956 	ROM_LOAD( "ww16.bin", 0x50000, 0x10000, 0xa2d19ce5 )
1957 	ROM_LOAD( "ww17.bin", 0x60000, 0x10000, 0xa9a6b128 )
1958 	ROM_LOAD( "ww18.bin", 0x70000, 0x10000, 0xc712d24c )
1959 	ROM_LOAD( "ww19.bin", 0x20000, 0x10000, 0xc39ac1a7 )
1960 	ROM_LOAD( "ww20.bin", 0x30000, 0x10000, 0x8504170f )
1961 	ROM_LOAD( "ww21.bin", 0x00000, 0x10000, 0xbe974fbe )
1962 	ROM_LOAD( "ww22.bin", 0x10000, 0x10000, 0x9914972a )
1963 
1964 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* ADPCM samples */
1965 	ROM_LOAD( "bt_p4.rom",  0x00000, 0x10000, 0x4bc83229 )
1966 	ROM_LOAD( "bt_p5.rom",  0x10000, 0x10000, 0x817bd62c )
1967 ROM_END
1968 
1969 ROM_START( bermudaa )
1970 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
1971 	ROM_LOAD( "4",  0x0000, 0x10000,  0x4de39d01 )
1972 
1973 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
1974 	ROM_LOAD( "5",  0x00000, 0x10000, 0x76158e94 )
1975 
1976 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
1977 	ROM_LOAD( "3",  0x00000, 0x10000, 0xc79134a8 )
1978 
1979 	ROM_REGION( 0x1400, REGION_PROMS )
1980 	ROM_LOAD( "mb7122e.1k",  0x0000, 0x0400, 0x1e8fc4c3 ) /* red */
1981 	ROM_LOAD( "mb7122e.2l",  0x0400, 0x0400, 0x23ce9707 ) /* green */
1982 	ROM_LOAD( "mb7122e.1l",  0x0800, 0x0400, 0x26caf985 ) /* blue */
1983 	ROM_LOAD( "btj_h.prm",   0x0c00, 0x0400, 0xc20b197b ) /* ? */
1984 	ROM_LOAD( "btj_v.prm",   0x1000, 0x0400, 0x5d0c617f ) /* ? */
1985 
1986 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
1987 	ROM_LOAD( "6", 0x0000, 0x8000,  0xa0e6710c )
1988 
1989 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
1990 	ROM_LOAD( "ww11.bin", 0x00000, 0x10000, 0x603ddcb5 )
1991 	ROM_LOAD( "ww14.bin", 0x10000, 0x10000, 0x04c784be )
1992 	ROM_LOAD( "ww13.bin", 0x20000, 0x10000, 0x83a7ef62 )
1993 	ROM_LOAD( "ww12.bin", 0x30000, 0x10000, 0x388093ff )
1994 
1995 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
1996 	ROM_LOAD( "ww7.bin",  0x30000, 0x08000, 0x53c4b24e )
1997 	ROM_LOAD( "ww8.bin",  0x20000, 0x08000, 0x0ec15086 )
1998 	ROM_LOAD( "ww9.bin",  0x10000, 0x08000, 0xd9d35911 )
1999 	ROM_LOAD( "ww10.bin", 0x00000, 0x08000, 0xf68a2d51 )
2000 
2001 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2002 	ROM_LOAD( "ww15.bin", 0x40000, 0x10000, 0xd55ce063 )
2003 	ROM_LOAD( "ww16.bin", 0x50000, 0x10000, 0xa2d19ce5 )
2004 	ROM_LOAD( "ww17.bin", 0x60000, 0x10000, 0xa9a6b128 )
2005 	ROM_LOAD( "ww18.bin", 0x70000, 0x10000, 0xc712d24c )
2006 	ROM_LOAD( "ww19.bin", 0x20000, 0x10000, 0xc39ac1a7 )
2007 	ROM_LOAD( "ww20.bin", 0x30000, 0x10000, 0x8504170f )
2008 	ROM_LOAD( "ww21.bin", 0x00000, 0x10000, 0xbe974fbe )
2009 	ROM_LOAD( "ww22.bin", 0x10000, 0x10000, 0x9914972a )
2010 
2011 	ROM_REGION( 0x20000, REGION_SOUND1 )	/* ADPCM samples */
2012 	ROM_LOAD( "bt_p4.rom",  0x00000, 0x10000, 0x4bc83229 )
2013 	ROM_LOAD( "bt_p5.rom",  0x10000, 0x10000, 0x817bd62c )
2014 ROM_END
2015 
2016 /***********************************************************************/
2017 
2018 ROM_START( psychos )
2019 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
2020 	ROM_LOAD( "p7",  0x00000, 0x10000, 0x562809f4 )
2021 
2022 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
2023 	ROM_LOAD( "up03_m8.rom",  0x00000, 0x10000, 0x5f426ddb )
2024 
2025 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
2026 	ROM_LOAD( "p5",  0x0000, 0x10000,  0x64503283 )
2027 
2028 	ROM_REGION( 0x1400, REGION_PROMS )
2029 	ROM_LOAD( "up03_k1.rom",  0x00000, 0x00400, 0x27b8ca8c ) /* red */
2030 	ROM_LOAD( "up03_l1.rom",  0x00400, 0x00400, 0x40e78c9e ) /* green */
2031 	ROM_LOAD( "up03_k2.rom",  0x00800, 0x00400, 0xd845d5ac ) /* blue */
2032 	ROM_LOAD( "mb7122e.8j",   0x0c00, 0x400, 0xc20b197b ) /* ? */
2033 	ROM_LOAD( "mb7122e.8k",   0x1000, 0x400, 0x5d0c617f ) /* ? */
2034 
2035 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2036 	ROM_LOAD( "up02_a3.rom",  0x0000, 0x8000,  0x11a71919 )
2037 
2038 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
2039 	ROM_LOAD( "up01_f1.rom",  0x00000, 0x10000, 0x167e5765 )
2040 	ROM_LOAD( "up01_d1.rom",  0x10000, 0x10000, 0x8b0fe8d0 )
2041 	ROM_LOAD( "up01_c1.rom",  0x20000, 0x10000, 0xf4361c50 )
2042 	ROM_LOAD( "up01_a1.rom",  0x30000, 0x10000, 0xe4b0b95e )
2043 
2044 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
2045 	ROM_LOAD( "up02_f3.rom",  0x00000, 0x8000, 0xf96f82db )
2046 	ROM_LOAD( "up02_e3.rom",  0x10000, 0x8000, 0x2b007733 )
2047 	ROM_LOAD( "up02_c3.rom",  0x20000, 0x8000, 0xefa830e1 )
2048 	ROM_LOAD( "up02_b3.rom",  0x30000, 0x8000, 0x24559ee1 )
2049 
2050 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2051 	ROM_LOAD( "up01_f10.rom",  0x00000, 0x10000, 0x2bac250e )
2052 	ROM_LOAD( "up01_h10.rom",  0x10000, 0x10000, 0x5e1ba353 )
2053 	ROM_LOAD( "up01_j10.rom",  0x20000, 0x10000, 0x9ff91a97 )
2054 	ROM_LOAD( "up01_l10.rom",  0x30000, 0x10000, 0xae1965ef )
2055 	ROM_LOAD( "up01_m10.rom",  0x40000, 0x10000, 0xdf283b67 )
2056 	ROM_LOAD( "up01_n10.rom",  0x50000, 0x10000, 0x914f051f )
2057 	ROM_LOAD( "up01_r10.rom",  0x60000, 0x10000, 0xc4488472 )
2058 	ROM_LOAD( "up01_s10.rom",  0x70000, 0x10000, 0x8ec7fe18 )
2059 
2060 	ROM_REGION( 0x40000, REGION_SOUND1 )
2061 	ROM_LOAD( "p1",  0x00000, 0x10000, 0x58f1683f )
2062 	ROM_LOAD( "p2",  0x10000, 0x10000, 0xda3abda1 )
2063 	ROM_LOAD( "p3",  0x20000, 0x10000, 0xf3683ae8 )
2064 	ROM_LOAD( "p4",  0x30000, 0x10000, 0x437d775a )
2065 ROM_END
2066 
2067 ROM_START( psychosj )
2068 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
2069 	ROM_LOAD( "up03_m4.rom",  0x0000, 0x10000,  0x05dfb409 )
2070 
2071 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
2072 	ROM_LOAD( "up03_m8.rom",  0x00000, 0x10000, 0x5f426ddb )
2073 
2074 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
2075 	ROM_LOAD( "up03_j6.rom",  0x00000, 0x10000, 0xbbd0a8e3 )
2076 
2077 	ROM_REGION( 0x1400, REGION_PROMS )
2078 	ROM_LOAD( "up03_k1.rom",  0x00000, 0x00400, 0x27b8ca8c ) /* red */
2079 	ROM_LOAD( "up03_l1.rom",  0x00400, 0x00400, 0x40e78c9e ) /* green */
2080 	ROM_LOAD( "up03_k2.rom",  0x00800, 0x00400, 0xd845d5ac ) /* blue */
2081 	ROM_LOAD( "mb7122e.8j",   0x0c00, 0x400, 0xc20b197b ) /* ? */
2082 	ROM_LOAD( "mb7122e.8k",   0x1000, 0x400, 0x5d0c617f ) /* ? */
2083 
2084 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2085 	ROM_LOAD( "up02_a3.rom",  0x0000, 0x8000,  0x11a71919 )
2086 
2087 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
2088 	ROM_LOAD( "up01_f1.rom",  0x00000, 0x10000, 0x167e5765 )
2089 	ROM_LOAD( "up01_d1.rom",  0x10000, 0x10000, 0x8b0fe8d0 )
2090 	ROM_LOAD( "up01_c1.rom",  0x20000, 0x10000, 0xf4361c50 )
2091 	ROM_LOAD( "up01_a1.rom",  0x30000, 0x10000, 0xe4b0b95e )
2092 
2093 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
2094 	ROM_LOAD( "up02_f3.rom",  0x00000, 0x8000, 0xf96f82db )
2095 	ROM_LOAD( "up02_e3.rom",  0x10000, 0x8000, 0x2b007733 )
2096 	ROM_LOAD( "up02_c3.rom",  0x20000, 0x8000, 0xefa830e1 )
2097 	ROM_LOAD( "up02_b3.rom",  0x30000, 0x8000, 0x24559ee1 )
2098 
2099 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2100 	ROM_LOAD( "up01_f10.rom",  0x00000, 0x10000, 0x2bac250e )
2101 	ROM_LOAD( "up01_h10.rom",  0x10000, 0x10000, 0x5e1ba353 )
2102 	ROM_LOAD( "up01_j10.rom",  0x20000, 0x10000, 0x9ff91a97 )
2103 	ROM_LOAD( "up01_l10.rom",  0x30000, 0x10000, 0xae1965ef )
2104 	ROM_LOAD( "up01_m10.rom",  0x40000, 0x10000, 0xdf283b67 )
2105 	ROM_LOAD( "up01_n10.rom",  0x50000, 0x10000, 0x914f051f )
2106 	ROM_LOAD( "up01_r10.rom",  0x60000, 0x10000, 0xc4488472 )
2107 	ROM_LOAD( "up01_s10.rom",  0x70000, 0x10000, 0x8ec7fe18 )
2108 
2109 	ROM_REGION( 0x40000, REGION_SOUND1 )
2110 	ROM_LOAD( "up03_b5.rom",  0x00000, 0x10000, 0x0f8e8276 )
2111 	ROM_LOAD( "up03_c5.rom",  0x10000, 0x10000, 0x34e41dfb )
2112 	ROM_LOAD( "up03_d5.rom",  0x20000, 0x10000, 0xaa583c5e )
2113 	ROM_LOAD( "up03_f5.rom",  0x30000, 0x10000, 0x7e8bce7a )
2114 ROM_END
2115 
2116 /***********************************************************************/
2117 
2118 ROM_START( chopper )
2119 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
2120 	ROM_LOAD( "kk_01.rom",  0x0000, 0x10000,  0x8fa2f839 )
2121 
2122 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
2123 	ROM_LOAD( "kk_04.rom",  0x00000, 0x10000, 0x004f7d9a )
2124 
2125 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
2126 	ROM_LOAD( "kk_03.rom",  0x00000, 0x10000, 0xdbaafb87 )   /* YM3526 */
2127 
2128 	ROM_REGION( 0x0c00, REGION_PROMS )
2129 	ROM_LOAD( "up03_k1.rom",  0x0000, 0x0400, 0x7f07a45c ) /* red */
2130 	ROM_LOAD( "up03_l1.rom",  0x0400, 0x0400, 0x15359fc3 ) /* green */
2131 	ROM_LOAD( "up03_k2.rom",  0x0800, 0x0400, 0x79b50f7d ) /* blue */
2132 
2133 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2134 	ROM_LOAD( "kk_05.rom",  0x0000, 0x8000, 0xdefc0987 )
2135 
2136 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
2137 	ROM_LOAD( "kk_10.rom",  0x00000, 0x10000, 0x5cf4d22b )
2138 	ROM_LOAD( "kk_11.rom",  0x10000, 0x10000, 0x9af4cad0 )
2139 	ROM_LOAD( "kk_12.rom",  0x20000, 0x10000, 0x02fec778 )
2140 	ROM_LOAD( "kk_13.rom",  0x30000, 0x10000, 0x2756817d )
2141 
2142 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
2143 	ROM_LOAD( "kk_09.rom",  0x00000, 0x08000, 0x653c4342 )
2144 	ROM_LOAD( "kk_08.rom",  0x10000, 0x08000, 0x2da45894 )
2145 	ROM_LOAD( "kk_07.rom",  0x20000, 0x08000, 0xa0ebebdf )
2146 	ROM_LOAD( "kk_06.rom",  0x30000, 0x08000, 0x284fad9e )
2147 
2148 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2149 	ROM_LOAD( "kk_18.rom",  0x00000, 0x10000, 0x6abbff36 )
2150 	ROM_LOAD( "kk_19.rom",  0x10000, 0x10000, 0x5283b4d3 )
2151 	ROM_LOAD( "kk_20.rom",  0x20000, 0x10000, 0x6403ddf2 )
2152 	ROM_LOAD( "kk_21.rom",  0x30000, 0x10000, 0x9f411940 )
2153 	ROM_LOAD( "kk_14.rom",  0x40000, 0x10000, 0x9bad9e25 )
2154 	ROM_LOAD( "kk_15.rom",  0x50000, 0x10000, 0x89faf590 )
2155 	ROM_LOAD( "kk_16.rom",  0x60000, 0x10000, 0xefb1fb6c )
2156 	ROM_LOAD( "kk_17.rom",  0x70000, 0x10000, 0x6b7fb0a5 )
2157 
2158 	ROM_REGION( 0x10000, REGION_SOUND1 )
2159 	ROM_LOAD( "kk_02.rom",  0x00000, 0x10000, 0x06169ae0 )
2160 ROM_END
2161 
2162 ROM_START( legofair ) /* ChopperI (Japan) */
2163 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
2164 	ROM_LOAD( "up03_m4.rom",  0x0000, 0x10000,  0x79a485c0 )
2165 
2166 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
2167 	ROM_LOAD( "up03_m8.rom",  0x00000, 0x10000, 0x96d3a4d9 )
2168 
2169 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
2170 	ROM_LOAD( "kk_03.rom",  0x00000, 0x10000, 0xdbaafb87 )
2171 
2172 	ROM_REGION( 0x0c00, REGION_PROMS )
2173 	ROM_LOAD( "up03_k1.rom",  0x0000, 0x0400, 0x7f07a45c ) /* red */
2174 	ROM_LOAD( "up03_l1.rom",  0x0400, 0x0400, 0x15359fc3 ) /* green */
2175 	ROM_LOAD( "up03_k2.rom",  0x0800, 0x0400, 0x79b50f7d ) /* blue */
2176 
2177 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2178 	ROM_LOAD( "kk_05.rom",  0x0000, 0x8000, 0xdefc0987 )
2179 
2180 	ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
2181 	ROM_LOAD( "kk_10.rom",  0x00000, 0x10000, 0x5cf4d22b )
2182 	ROM_LOAD( "kk_11.rom",  0x10000, 0x10000, 0x9af4cad0 )
2183 	ROM_LOAD( "kk_12.rom",  0x20000, 0x10000, 0x02fec778 )
2184 	ROM_LOAD( "kk_13.rom",  0x30000, 0x10000, 0x2756817d )
2185 
2186 	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
2187 	ROM_LOAD( "kk_09.rom",  0x00000, 0x08000, 0x653c4342 )
2188 	ROM_LOAD( "kk_08.rom",  0x10000, 0x08000, 0x2da45894 )
2189 	ROM_LOAD( "kk_07.rom",  0x20000, 0x08000, 0xa0ebebdf )
2190 	ROM_LOAD( "kk_06.rom",  0x30000, 0x08000, 0x284fad9e )
2191 
2192 	ROM_REGION( 0x80000, REGION_GFX4 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2193 	ROM_LOAD( "kk_18.rom",  0x00000, 0x10000, 0x6abbff36 )
2194 	ROM_LOAD( "kk_19.rom",  0x10000, 0x10000, 0x5283b4d3 )
2195 	ROM_LOAD( "kk_20.rom",  0x20000, 0x10000, 0x6403ddf2 )
2196 	ROM_LOAD( "kk_21.rom",  0x30000, 0x10000, 0x9f411940 )
2197 	ROM_LOAD( "kk_14.rom",  0x40000, 0x10000, 0x9bad9e25 )
2198 	ROM_LOAD( "kk_15.rom",  0x50000, 0x10000, 0x89faf590 )
2199 	ROM_LOAD( "kk_16.rom",  0x60000, 0x10000, 0xefb1fb6c )
2200 	ROM_LOAD( "kk_17.rom",  0x70000, 0x10000, 0x6b7fb0a5 )
2201 
2202 	ROM_REGION( 0x10000, REGION_SOUND1 )
2203 	ROM_LOAD( "kk_02.rom",  0x00000, 0x10000, 0x06169ae0 )
2204 ROM_END
2205 
2206 /***********************************************************************/
2207 
2208 ROM_START( ftsoccer )
2209 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for cpuA code */
2210 	ROM_LOAD( "ft-003.bin",  0x00000, 0x10000, 0x649d4448 )
2211 
2212 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for cpuB code */
2213 	ROM_LOAD( "ft-001.bin",  0x00000, 0x10000, 0x2f68e38b )
2214 
2215 	ROM_REGION( 0x10000, REGION_CPU3 )     /* 64k for sound code */
2216 	ROM_LOAD( "ft-002.bin",  0x00000, 0x10000, 0x9ee54ea1 )
2217 
2218 	ROM_REGION( 0x0c00, REGION_PROMS )
2219 	ROM_LOAD( "prom2.bin", 0x000, 0x400, 0xbf4ac706 ) /* red */
2220 	ROM_LOAD( "prom1.bin", 0x400, 0x400, 0x1bac8010 ) /* green */
2221 	ROM_LOAD( "prom3.bin", 0x800, 0x400, 0xdbeddb14 ) /* blue */
2222 
2223 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2224 	ROM_LOAD( "ft-013.bin",  0x0000, 0x08000, 0x0de7b7ad )
2225 
2226 	ROM_REGION( 0x50000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* background tiles */
2227 	ROM_LOAD( "ft-014.bin",  0x00000, 0x10000, 0x38c38b40 )
2228 	ROM_LOAD( "ft-015.bin",  0x10000, 0x10000, 0xa614834f )
2229 
2230 //	ROM_REGION( 0x40000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 16x16 sprites */
2231 
2232 	ROM_REGION( 0x80000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2233 	ROM_LOAD( "ft-005.bin",  0x10000, 0x10000, 0xdef2f1d8 )
2234 	ROM_LOAD( "ft-006.bin",  0x00000, 0x10000, 0x588d14b3 )
2235 
2236 	ROM_LOAD( "ft-007.bin",  0x30000, 0x10000, 0xd584964b )
2237 	ROM_LOAD( "ft-008.bin",  0x20000, 0x10000, 0x11156a7d )
2238 
2239 	ROM_LOAD( "ft-009.bin",  0x50000, 0x10000, 0xd8112aa6 )
2240 	ROM_LOAD( "ft-010.bin",  0x40000, 0x10000, 0xe42864d8 )
2241 
2242 	ROM_LOAD( "ft-011.bin",  0x70000, 0x10000, 0x022f3e96 )
2243 	ROM_LOAD( "ft-012.bin",  0x60000, 0x10000, 0xb2442c30 )
2244 
2245 	ROM_REGION( 0x10000, REGION_SOUND1 )
2246 	ROM_LOAD( "ft-004.bin",  0x00000, 0x10000, 0x435c3716 )
2247 ROM_END
2248 
2249 /***********************************************************************/
2250 
2251 ROM_START( tdfever ) /* USA set */
2252 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
2253 	ROM_LOAD( "td2-ver3.6c",  0x0000, 0x10000,  0x92138fe4 )
2254 
2255 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
2256 	ROM_LOAD( "td1-ver3.2c",  0x00000, 0x10000, 0x798711f5 )
2257 
2258 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
2259 	ROM_LOAD( "td3-ver3.3j",  0x00000, 0x10000, 0x5d13e0b1 )
2260 
2261 	ROM_REGION( 0x0c00, REGION_PROMS )
2262 	ROM_LOAD( "up03_e8.rom",  0x000, 0x00400, 0x67bdf8a0 )
2263 	ROM_LOAD( "up03_d8.rom",  0x400, 0x00400, 0x9c4a9198 )
2264 	ROM_LOAD( "up03_e9.rom",  0x800, 0x00400, 0xc93c18e8 )
2265 
2266 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2267 	ROM_LOAD( "td14ver3.4n",  0x0000, 0x8000,  0xe841bf1a )
2268 
2269 	ROM_REGION( 0x50000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
2270 	ROM_LOAD( "up01_d8.rom",  0x00000, 0x10000, 0xad6e0927 )
2271 	ROM_LOAD( "up01_e8.rom",  0x10000, 0x10000, 0x181db036 )
2272 	ROM_LOAD( "up01_f8.rom",  0x20000, 0x10000, 0xc5decca3 )
2273 	ROM_LOAD( "td18ver2.8gh", 0x30000, 0x10000, 0x3924da37 )
2274 	ROM_LOAD( "up01_j8.rom",  0x40000, 0x10000, 0xbc17ea7f )
2275 
2276 	ROM_REGION( 0x80000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2277 	ROM_LOAD( "up01_k2.rom",  0x00000, 0x10000, 0x72a5590d )
2278 	ROM_LOAD( "up01_l2.rom",  0x30000, 0x10000, 0x28f49182 )
2279 	ROM_LOAD( "up01_n2.rom",  0x20000, 0x10000, 0xa8979657 )
2280 	ROM_LOAD( "up01_j2.rom",  0x10000, 0x10000, 0x9b6d4053 )
2281 	ROM_LOAD( "up01_r2.rom",  0x40000, 0x10000, 0xa0d53fbd )
2282 	ROM_LOAD( "up01_p2.rom",  0x50000, 0x10000, 0xc8c71c7b )
2283 	ROM_LOAD( "up01_t2.rom",  0x60000, 0x10000, 0x88e2e819 )
2284 	ROM_LOAD( "up01_s2.rom",  0x70000, 0x10000, 0xf6f83d63 )
2285 
2286 	ROM_REGION( 0x20000, REGION_SOUND1 )
2287 	ROM_LOAD( "up02_n6.rom",  0x00000, 0x10000, 0x155e472e )
2288 	ROM_LOAD( "up02_p6.rom",  0x10000, 0x10000, 0x04794557 )
2289 ROM_END
2290 
2291 ROM_START( tdfeverj )
2292 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for cpuA code */
2293 	ROM_LOAD( "up02_c6.rom",  0x0000, 0x10000,  0x88d88ec4 )
2294 
2295 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for cpuB code */
2296 	ROM_LOAD( "up02_c2.rom",  0x00000, 0x10000, 0x191e6442 )
2297 
2298 	ROM_REGION( 0x10000, REGION_CPU3 )	/* 64k for sound code */
2299 	ROM_LOAD( "up02_j3.rom",  0x00000, 0x10000, 0x4e4d71c7 )
2300 
2301 	ROM_REGION( 0x0c00, REGION_PROMS )
2302 	ROM_LOAD( "up03_e8.rom",  0x000, 0x00400, 0x67bdf8a0 )
2303 	ROM_LOAD( "up03_d8.rom",  0x400, 0x00400, 0x9c4a9198 )
2304 	ROM_LOAD( "up03_e9.rom",  0x800, 0x00400, 0xc93c18e8 )
2305 
2306 	ROM_REGION( 0x8000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* characters */
2307 	ROM_LOAD( "up01_n4.rom",  0x0000, 0x8000,  0xaf9bced5 )
2308 
2309 	ROM_REGION( 0x50000, REGION_GFX2 | REGIONFLAG_DISPOSE ) /* tiles */
2310 	ROM_LOAD( "up01_d8.rom",  0x00000, 0x10000, 0xad6e0927 )
2311 	ROM_LOAD( "up01_e8.rom",  0x10000, 0x10000, 0x181db036 )
2312 	ROM_LOAD( "up01_f8.rom",  0x20000, 0x10000, 0xc5decca3 )
2313 	ROM_LOAD( "up01_g8.rom",  0x30000, 0x10000, 0x4512cdfb )
2314 	ROM_LOAD( "up01_j8.rom",  0x40000, 0x10000, 0xbc17ea7f )
2315 
2316 	ROM_REGION( 0x80000, REGION_GFX3 | REGIONFLAG_DISPOSE ) /* 32x32 sprites */
2317 	ROM_LOAD( "up01_k2.rom",  0x00000, 0x10000, 0x72a5590d )
2318 	ROM_LOAD( "up01_l2.rom",  0x30000, 0x10000, 0x28f49182 )
2319 	ROM_LOAD( "up01_n2.rom",  0x20000, 0x10000, 0xa8979657 )
2320 	ROM_LOAD( "up01_j2.rom",  0x10000, 0x10000, 0x9b6d4053 )
2321 	ROM_LOAD( "up01_t2.rom",  0x40000, 0x10000, 0x88e2e819 )
2322 	ROM_LOAD( "up01_s2.rom",  0x50000, 0x10000, 0xf6f83d63 )
2323 	ROM_LOAD( "up01_r2.rom",  0x60000, 0x10000, 0xa0d53fbd )
2324 	ROM_LOAD( "up01_p2.rom",  0x70000, 0x10000, 0xc8c71c7b )
2325 
2326 	ROM_REGION( 0x20000, REGION_SOUND1 )
2327 	ROM_LOAD( "up02_n6.rom",  0x00000, 0x10000, 0x155e472e )
2328 	ROM_LOAD( "up02_p6.rom",  0x10000, 0x10000, 0x04794557 )
2329 ROM_END
2330 
2331 /***********************************************************************/
2332 
2333 #define SNK_JOY1_PORT \
2334 	PORT_START \
2335 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY ) \
2336 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY ) \
2337 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY ) \
2338 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
2339 	PORT_ANALOGX( 0xf0, 0x00, IPT_DIAL, 25, 10, 0, 0, JOYCODE_1_BUTTON5, JOYCODE_1_BUTTON6, 0, 0 ) \
2340 
2341 #define SNK_JOY2_PORT \
2342 	PORT_START \
2343 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 ) \
2344 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 ) \
2345 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 ) \
2346 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 ) \
2347 	PORT_ANALOGX( 0xf0, 0x00, IPT_DIAL | IPF_PLAYER2, 25, 10, 0, 0, JOYCODE_2_BUTTON5, JOYCODE_2_BUTTON6, 0, 0 )
2348 
2349 #define SNK_BUTTON_PORT \
2350 	PORT_START \
2351 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) \
2352 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) \
2353 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
2354 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) \
2355 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) \
2356 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
2357 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
2358 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2359 
2360 #define SNK_COINAGE \
2361 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
2362 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) ) \
2363 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) ) \
2364 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) ) \
2365 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
2366 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) \
2367 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_2C ) ) \
2368 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) ) \
2369 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_4C ) ) \
2370 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_6C ) )
2371 
2372 INPUT_PORTS_START( ikari )
2373 	PORT_START
2374 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */
2375 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2376 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2377 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2378 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2379 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2380 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2381 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2382 
2383 	SNK_JOY1_PORT
2384 
2385 	SNK_JOY2_PORT
2386 
2387 	SNK_BUTTON_PORT
2388 
2389 	PORT_START /* DSW 1 */
2390 	PORT_DIPNAME( 0x01, 0x01, "Allow killing each other" )
2391 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
2392 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2393 	PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" )
2394 	PORT_DIPSETTING(    0x02, "Separate" )
2395 	PORT_DIPSETTING(    0x00, "Common" )
2396 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2397 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2398 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2399 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2400 	PORT_DIPSETTING(    0x08, "3" )
2401 	PORT_DIPSETTING(    0x00, "5" )
2402 	SNK_COINAGE
2403 
2404 	PORT_START /* DSW 2 */
2405 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2406 	PORT_DIPSETTING(    0x03, "Easy" )
2407 	PORT_DIPSETTING(    0x02, "Normal" )
2408 	PORT_DIPSETTING(    0x01, "Hard" )
2409 	PORT_DIPSETTING(    0x00, "Hardest" )
2410 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
2411 	PORT_DIPSETTING(    0x0c, "Demo Sounds Off" )
2412 	PORT_DIPSETTING(    0x08, "Demo Sounds On" )
2413 	PORT_DIPSETTING(    0x04, "Freeze" )
2414 	PORT_BITX( 0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2415 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2416 	PORT_DIPSETTING(    0x30, "50k 100k" )
2417 	PORT_DIPSETTING(    0x20, "60k 120k" )
2418 	PORT_DIPSETTING(    0x10, "100k 200k" )
2419 	PORT_DIPSETTING(    0x00, "None" )
2420 	PORT_DIPNAME( 0x40 ,0x40, DEF_STR( Unused ) )
2421 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2422 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2423 	PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
2424 	PORT_DIPSETTING(    0x80, DEF_STR( No ) )
2425 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2426 INPUT_PORTS_END
2427 
2428 INPUT_PORTS_START( ikarijp )
2429 	PORT_START
2430 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2431 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2432 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2433 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2434 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2435 	PORT_BIT( 0x20, IP_ACTIVE_LOW,IPT_UNKNOWN ) /* sound CPU status */
2436 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2437 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tilt? */
2438 
2439 	SNK_JOY1_PORT
2440 
2441 	SNK_JOY2_PORT
2442 
2443 	SNK_BUTTON_PORT
2444 
2445 	PORT_START /* DSW 1 */
2446 	PORT_DIPNAME( 0x01, 0x01, "Allow killing each other" )
2447 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
2448 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2449 	PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" )
2450 	PORT_DIPSETTING(    0x02, "Separate" )
2451 	PORT_DIPSETTING(    0x00, "Common" )
2452 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2453 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2454 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2455 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2456 	PORT_DIPSETTING(    0x08, "3" )
2457 	PORT_DIPSETTING(    0x00, "5" )
2458 	SNK_COINAGE
2459 
2460 	PORT_START /* DSW 2 */
2461 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2462 	PORT_DIPSETTING(    0x03, "Easy" )
2463 	PORT_DIPSETTING(    0x02, "Normal" )
2464 	PORT_DIPSETTING(    0x01, "Hard" )
2465 	PORT_DIPSETTING(    0x00, "Hardest" )
2466 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
2467 	PORT_DIPSETTING(    0x0c, "Demo Sounds Off" )
2468 	PORT_DIPSETTING(    0x08, "Demo Sounds On" )
2469 	PORT_DIPSETTING(    0x04, "Freeze" )
2470 	PORT_BITX( 0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2471 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2472 	PORT_DIPSETTING(    0x30, "50k 100k" )
2473 	PORT_DIPSETTING(    0x20, "60k 120k" )
2474 	PORT_DIPSETTING(    0x10, "100k 200k" )
2475 	PORT_DIPSETTING(    0x00, "None" )
2476 	PORT_DIPNAME( 0x40 ,0x40, DEF_STR( Unused ) )
2477 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2478 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2479 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2480 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
2481 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2482 INPUT_PORTS_END
2483 
2484 
2485 INPUT_PORTS_START( victroad )
2486 	PORT_START
2487 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) 	/* sound related ??? */
2488 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2489 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2490 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2491 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2492 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2493 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2494 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2495 
2496 	SNK_JOY1_PORT
2497 
2498 	SNK_JOY2_PORT
2499 
2500 	SNK_BUTTON_PORT
2501 
2502 	PORT_START /* DSW 1 */
2503 	PORT_BITX( 0x01,    0x01, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Kill friend & walk everywhere" ,0 ,0 )
2504 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
2505 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2506 	PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" )
2507 	PORT_DIPSETTING(    0x02, "Separate" )
2508 	PORT_DIPSETTING(    0x00, "Common" )
2509 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2510 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2511 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2512 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2513 	PORT_DIPSETTING(    0x08, "3" )
2514 	PORT_DIPSETTING(    0x00, "5" )
2515 	SNK_COINAGE
2516 
2517 	PORT_START /* DSW 2 */
2518 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2519 	PORT_DIPSETTING(    0x03, "Easy" )
2520 	PORT_DIPSETTING(    0x02, "Normal" )
2521 	PORT_DIPSETTING(    0x01, "Hard" )
2522 	PORT_DIPSETTING(    0x00, "Hardest" )
2523 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
2524 	PORT_DIPSETTING(    0x0c, "Demo Sounds Off" )
2525 	PORT_DIPSETTING(    0x08, "Demo Sounds On" )
2526 	PORT_DIPSETTING(    0x00, "Freeze" )
2527 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2528 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2529 	PORT_DIPSETTING(    0x30, "50k 100k" )
2530 	PORT_DIPSETTING(    0x20, "60k 120k" )
2531 	PORT_DIPSETTING(    0x10, "100k 200k" )
2532 	PORT_DIPSETTING(    0x00, "None" )
2533 	PORT_DIPNAME( 0x40 ,0x00, "Allow Continue" )
2534 	PORT_DIPSETTING(    0x40, DEF_STR( No ) )
2535 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2536 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2537 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2538 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
2539 INPUT_PORTS_END
2540 
2541 
2542 INPUT_PORTS_START( gwar )
2543 	PORT_START
2544 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) 	/* sound related ??? */
2545 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2546 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* causes reset */
2547 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2548 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2549 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2550 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2551 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2552 
2553 	SNK_JOY1_PORT
2554 
2555 	SNK_JOY2_PORT
2556 
2557 	SNK_BUTTON_PORT
2558 
2559 	PORT_START /* DSW 1 */
2560 	PORT_DIPNAME( 0x01, 0x01, "Allow Continue" )
2561 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
2562 	PORT_DIPSETTING(    0x01, DEF_STR( Yes ) )
2563 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
2564 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2565 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2566 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2567 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2568 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2569 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2570 	PORT_DIPSETTING(    0x08, "3" )
2571 	PORT_DIPSETTING(    0x00, "5" )
2572 	SNK_COINAGE
2573 
2574 	PORT_START /* DSW 2 */
2575 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2576 	PORT_DIPSETTING(    0x03, "Easy" )
2577 	PORT_DIPSETTING(    0x02, "Normal" )
2578 	PORT_DIPSETTING(    0x01, "Hard" )
2579 	PORT_DIPSETTING(    0x00, "Hardest" )
2580 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
2581 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2582 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2583 	PORT_DIPNAME( 0x08, 0x08, "Freeze" )
2584 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
2585 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2586 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2587 	PORT_DIPSETTING(    0x30, "30k 50k" )
2588 	PORT_DIPSETTING(    0x20, "40k 80k" )
2589 	PORT_DIPSETTING(    0x10, "50k 100k" )
2590 	PORT_DIPSETTING(    0x00, "None" )
2591 	PORT_DIPNAME( 0x40 ,0x40, DEF_STR( Unknown ) )
2592 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2593 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2594 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2595 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
2596 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2597 INPUT_PORTS_END
2598 
2599 INPUT_PORTS_START( athena )
2600 	PORT_START
2601 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* sound CPU status */
2602 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2603 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2604 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2605 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2606 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2607 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2608 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2609 
2610 	PORT_START
2611 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
2612 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
2613 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
2614 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
2615 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
2616 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
2617 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2618 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2619 
2620 	PORT_START
2621 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
2622 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
2623 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
2624 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
2625 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
2626 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
2627 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2628 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2629 
2630 	PORT_START	/* DSW1 */
2631 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2632 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2633 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2634 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
2635 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
2636 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
2637 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2638 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2639 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2640 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2641 	PORT_DIPSETTING(    0x08, "3" )
2642 	PORT_DIPSETTING(    0x00, "5" )
2643 	SNK_COINAGE
2644 
2645 	PORT_START /* DSW2 */
2646 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2647 	PORT_DIPSETTING(    0x03, "Easy" )
2648 	PORT_DIPSETTING(    0x02, "Normal" )
2649 	PORT_DIPSETTING(    0x01, "Hard" )
2650 	PORT_DIPSETTING(    0x00, "Hardest" )
2651 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
2652 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2653 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2654 	PORT_DIPNAME( 0x08, 0x08, "Freeze" )
2655 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
2656 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2657 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2658 	PORT_DIPSETTING(    0x30, "50k 100k" )
2659 	PORT_DIPSETTING(    0x20, "80k 160k" )
2660 	PORT_DIPSETTING(    0x10, "100k 200k" )
2661 	PORT_DIPSETTING(    0x00, "None" )
2662 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
2663 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2664 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2665 	PORT_DIPNAME( 0x80, 0x80, "Energy" )
2666 	PORT_DIPSETTING(    0x80, "12" )
2667 	PORT_DIPSETTING(    0x00, "14" )
2668 INPUT_PORTS_END
2669 
2670 INPUT_PORTS_START( tnk3 )
2671 	PORT_START
2672 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
2673 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2674 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2675 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2676 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2677 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */
2678 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2679 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2680 
2681 	PORT_START
2682 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
2683 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
2684 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
2685 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
2686 	PORT_ANALOGX( 0xf0, 0x00, IPT_DIAL, 25, 10, 0, 0, JOYCODE_1_BUTTON5, JOYCODE_1_BUTTON6, 0, 0 )
2687 
2688 	PORT_START
2689 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_COCKTAIL )
2690 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_COCKTAIL )
2691 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_COCKTAIL )
2692 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_COCKTAIL )
2693 	PORT_ANALOGX( 0xf0, 0x00, IPT_DIAL | IPF_PLAYER2, 25, 10, 0, 0, JOYCODE_2_BUTTON5, JOYCODE_2_BUTTON6, 0, 0 )
2694 
2695 	PORT_START
2696 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
2697 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
2698 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2699 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
2700 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
2701 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2702 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2703 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2704 
2705 	PORT_START	/* DSW1 */
2706 	PORT_BITX( 0x01,    0x01, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Walk everywhere", IP_KEY_NONE, IP_JOY_NONE )
2707 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2708 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2709 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
2710 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
2711 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
2712 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
2713 	PORT_DIPSETTING(    0x04, "3" )
2714 	PORT_DIPSETTING(    0x00, "5" )
2715 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) )
2716 	/* 0x08 and 0x10: 1 Coin/1 Credit */
2717 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_1C ) )
2718 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
2719 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
2720 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
2721 	PORT_DIPSETTING(    0x28, DEF_STR( 1C_3C ) )
2722 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2723 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) )
2724 	PORT_DIPSETTING(    0xc0, "20k 60k" )
2725 	PORT_DIPSETTING(    0x80, "40k 90k" )
2726 	PORT_DIPSETTING(    0x40, "50k 120k" )
2727 	PORT_DIPSETTING(    0x00, "None" )
2728 
2729 	PORT_START	/* DSW2 */
2730 	PORT_DIPNAME( 0x01, 0x01, "Bonus Occurrence" )
2731 	PORT_DIPSETTING(    0x01, "1st & every 2nd" )
2732 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2733 	PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) )
2734 	PORT_DIPSETTING(    0x06, "Easy?" )
2735 	PORT_DIPSETTING(    0x04, "Normal?" )
2736 	PORT_DIPSETTING(    0x02, "Hard?" )
2737 	PORT_DIPSETTING(    0x00, "Hardest?" )
2738 	PORT_DIPNAME( 0x18, 0x10, "Game Mode" )
2739 	PORT_DIPSETTING(    0x18, "Demo Sounds Off" )
2740 	PORT_DIPSETTING(    0x10, "Demo Sounds On" )
2741 	PORT_DIPSETTING(    0x00, "Freeze" )
2742 	PORT_BITX( 0,       0x08, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2743 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
2744 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
2745 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2746 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2747 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2748 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2749 	PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
2750 	PORT_DIPSETTING(    0x80, DEF_STR( No ) )
2751 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2752 INPUT_PORTS_END
2753 
2754 INPUT_PORTS_START( bermudat )
2755 	PORT_START
2756 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */
2757 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2758 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tile? */
2759 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2760 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2761 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2762 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2763 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2764 
2765 	SNK_JOY1_PORT
2766 
2767 	SNK_JOY2_PORT
2768 
2769 	SNK_BUTTON_PORT
2770 
2771 	PORT_START  /* DSW 1 */
2772 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
2773 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
2774 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2775 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2776 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2777 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2778 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2779 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2780 	PORT_DIPSETTING(    0x08, "3" )
2781 	PORT_DIPSETTING(    0x00, "5" )
2782 	SNK_COINAGE
2783 
2784 	PORT_START  /* DSW 2 */
2785 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2786 	PORT_DIPSETTING(    0x03, "Easy" )
2787 	PORT_DIPSETTING(    0x02, "Normal" )
2788 	PORT_DIPSETTING(    0x01, "Hard" )
2789 	PORT_DIPSETTING(    0x00, "Hardest" )
2790 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
2791 	PORT_DIPSETTING(    0x0c, "Demo Sounds Off" )
2792 	PORT_DIPSETTING(    0x08, "Demo Sounds On" )
2793 	PORT_DIPSETTING(    0x00, "Freeze" )
2794 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2795 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2796 	PORT_DIPSETTING(    0x30, "50k 100k" )
2797 	PORT_DIPSETTING(    0x20, "60k 120k" )
2798 	PORT_DIPSETTING(    0x10, "100k 200k" )
2799 	PORT_DIPSETTING(    0x00, "None" )
2800 	PORT_DIPNAME( 0xc0, 0xc0, "Game Style" )
2801 	PORT_DIPSETTING(    0xc0, "Normal without continue" )
2802 	PORT_DIPSETTING(    0x80, "Normal with continue" )
2803 	PORT_DIPSETTING(    0x40, "Time attack 3 minutes" )
2804 	PORT_DIPSETTING(    0x00, "Time attack 5 minutes" )
2805 INPUT_PORTS_END
2806 
2807 INPUT_PORTS_START( bermudaa )
2808 	PORT_START
2809 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */
2810 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2811 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tile? */
2812 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2813 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2814 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2815 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2816 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2817 
2818 	SNK_JOY1_PORT
2819 
2820 	SNK_JOY2_PORT
2821 
2822 	SNK_BUTTON_PORT
2823 
2824 	PORT_START  /* DSW 1 */
2825 	PORT_DIPNAME( 0x01, 0x00, "Allow Continue" )
2826 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
2827 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2828 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
2829 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2830 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2831 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2832 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2833 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2834 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2835 	PORT_DIPSETTING(    0x08, "3" )
2836 	PORT_DIPSETTING(    0x00, "5" )
2837 	SNK_COINAGE
2838 
2839 	PORT_START  /* DSW 2 */
2840 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2841 	PORT_DIPSETTING(    0x03, "Easy" )
2842 	PORT_DIPSETTING(    0x02, "Normal" )
2843 	PORT_DIPSETTING(    0x01, "Hard" )
2844 	PORT_DIPSETTING(    0x00, "Hardest" )
2845 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
2846 	PORT_DIPSETTING(    0x0c, "Demo Sounds Off" )
2847 	PORT_DIPSETTING(    0x08, "Demo Sounds On" )
2848 	PORT_DIPSETTING(    0x00, "Freeze" )
2849 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2850 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2851 	PORT_DIPSETTING(    0x30, "25k 50k" )
2852 	PORT_DIPSETTING(    0x20, "35k 70k" )
2853 	PORT_DIPSETTING(    0x10, "50K 100k" )
2854 	PORT_DIPSETTING(    0x00, "None" )
2855 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
2856 INPUT_PORTS_END
2857 
2858 /* Same as Bermudaa, but has different Bonus Life */
2859 INPUT_PORTS_START( worldwar )
2860 	PORT_START
2861 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */
2862 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
2863 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tile? */
2864 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2865 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2866 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2867 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2868 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2869 
2870 	SNK_JOY1_PORT
2871 
2872 	SNK_JOY2_PORT
2873 
2874 	SNK_BUTTON_PORT
2875 
2876 	PORT_START  /* DSW 1 */
2877 	PORT_DIPNAME( 0x01, 0x00, "Allow Continue" )
2878 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
2879 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2880 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
2881 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2882 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2883 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2884 	PORT_DIPSETTING(    0x04, "1st & every 2nd" )
2885 	PORT_DIPSETTING(    0x00, "1st & 2nd only" )
2886 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2887 	PORT_DIPSETTING(    0x08, "3" )
2888 	PORT_DIPSETTING(    0x00, "5" )
2889 	SNK_COINAGE
2890 
2891 	PORT_START  /* DSW 2 */
2892 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2893 	PORT_DIPSETTING(    0x03, "Easy" )
2894 	PORT_DIPSETTING(    0x02, "Normal" )
2895 	PORT_DIPSETTING(    0x01, "Hard" )
2896 	PORT_DIPSETTING(    0x00, "Hardest" )
2897 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
2898 	PORT_DIPSETTING(    0x0c, "Demo Sounds Off" )
2899 	PORT_DIPSETTING(    0x08, "Demo Sounds On" )
2900 	PORT_DIPSETTING(    0x00, "Freeze" )
2901 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
2902 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2903 	PORT_DIPSETTING(    0x30, "50k 100k" )
2904 	PORT_DIPSETTING(    0x20, "80k 120k" )
2905 	PORT_DIPSETTING(    0x10, "100k 200k" )
2906 	PORT_DIPSETTING(    0x00, "None" )
2907 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
2908 INPUT_PORTS_END
2909 
2910 INPUT_PORTS_START( psychos )
2911 	PORT_START
2912 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* sound related */
2913 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2914 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* reset */
2915 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2916 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2917 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2918 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2919 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2920 
2921 	PORT_START
2922 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2923 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2924 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2925 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2926 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
2927 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
2928 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
2929 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
2930 
2931 	SNK_BUTTON_PORT
2932 
2933 	PORT_START  /* DSW 1 */
2934 	PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
2935 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
2936 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2937 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2938 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
2939 	PORT_DIPSETTING(    0x00, "1st & every 2nd" )
2940 	PORT_DIPSETTING(    0x04, "1st & 2nd only" )
2941 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
2942 	PORT_DIPSETTING(    0x08, "3" )
2943 	PORT_DIPSETTING(    0x00, "5" )
2944 	SNK_COINAGE
2945 
2946 	PORT_START  /* DSW 2 */
2947 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
2948 	PORT_DIPSETTING(    0x02, "Easy" )
2949 	PORT_DIPSETTING(    0x03, "Normal" )
2950 	PORT_DIPSETTING(    0x01, "Hard" )
2951 	PORT_DIPSETTING(    0x00, "Hardest" )
2952 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) )
2953 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2954 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
2955 	PORT_DIPNAME( 0x08, 0x08, "Freeze" )
2956 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
2957 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2958 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2959 	PORT_DIPSETTING(    0x30, "50K 100K" )
2960 	PORT_DIPSETTING(    0x20, "60K 120K" )
2961 	PORT_DIPSETTING(    0x10, "100K 200K" )
2962 	PORT_DIPSETTING(    0x00, "None" )
2963 	PORT_DIPNAME( 0x40, 0x00, "Allow Continue" )
2964 	PORT_DIPSETTING(    0x40, DEF_STR( No ) )
2965 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
2966 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
2967 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
2968 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2969 INPUT_PORTS_END
2970 
2971 INPUT_PORTS_START( legofair )
2972 	PORT_START
2973 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* sound CPU status */
2974 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2975 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )  /* Reset */
2976 	PORT_BITX(0x08, 0x08, IPT_SERVICE, DEF_STR( Service_Mode), KEYCODE_F2, IP_JOY_NONE )
2977 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2978 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2979 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2980 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2981 
2982 	PORT_START
2983 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
2984 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
2985 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
2986 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
2987 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
2988 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
2989 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
2990 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
2991 
2992 	PORT_START
2993 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
2994 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
2995 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2996 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
2997 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
2998 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2999 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3000 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3001 
3002 	PORT_START  /* DSW 1 */
3003 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
3004 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
3005 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3006 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) )
3007 	PORT_DIPSETTING(    0x02, DEF_STR( Upright ) )
3008 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
3009 	PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )
3010 	PORT_DIPSETTING(    0x00, "1st & every 2nd" )
3011 	PORT_DIPSETTING(    0x04, "1st & 2nd only" )
3012 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
3013 	PORT_DIPSETTING(    0x08, "3" )
3014 	PORT_DIPSETTING(    0x00, "5" )
3015 	SNK_COINAGE
3016 
3017 	PORT_START  /* DSW 2 */
3018 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
3019 	PORT_DIPSETTING(    0x02, "Easy" )
3020 	PORT_DIPSETTING(    0x03, "Normal" )
3021 	PORT_DIPSETTING(    0x01, "Hard" )
3022 	PORT_DIPSETTING(    0x00, "Hardest" )
3023 	PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" )
3024 	PORT_DIPSETTING(    0x08, "Demo Sounds Off" )
3025 	PORT_DIPSETTING(    0x0c, "Demo Sounds On" )
3026 	PORT_DIPSETTING(    0x00, "Freeze" )
3027 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
3028 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
3029 	PORT_DIPSETTING(    0x30, "50k 100k" )
3030 	PORT_DIPSETTING(    0x20, "75k 150k" )
3031 	PORT_DIPSETTING(    0x10, "100k 200k" )
3032 	PORT_DIPSETTING(    0x00, "None" )
3033 	PORT_DIPNAME( 0x40, 0x40, "Allow Continue" )
3034 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
3035 	PORT_DIPSETTING(    0x40, DEF_STR( Yes ) )
3036 	PORT_BITX( 0x80,    0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability" , IP_KEY_NONE ,IP_JOY_NONE )
3037 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
3038 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3039 INPUT_PORTS_END
3040 
3041 INPUT_PORTS_START( fitegolf )
3042 	PORT_START
3043 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* sound related? */
3044 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
3045 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
3046 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
3047 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
3048 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
3049 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
3050 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
3051 
3052 	PORT_START
3053 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
3054 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
3055 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
3056 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
3057 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
3058 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
3059 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3060 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3061 
3062 	PORT_START
3063 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 )
3064 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 )
3065 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 )
3066 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
3067 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
3068 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
3069 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3070 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3071 
3072 	PORT_START	/* DSW1 */
3073 	PORT_DIPNAME( 0x01, 0x01, "Continue?" )
3074 	PORT_DIPSETTING(    0x01, "Coin Up" )
3075 	PORT_DIPSETTING(    0x00, "Standard" )
3076 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
3077 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
3078 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3079 	PORT_DIPNAME( 0x04, 0x04, "Bonus?" )
3080 	PORT_DIPSETTING(    0x04, "Every?" )
3081 	PORT_DIPSETTING(    0x00, "Only?" )
3082 	PORT_DIPNAME( 0x08, 0x08, "Lives?" )
3083 	PORT_DIPSETTING(    0x08, "3" )
3084 	PORT_DIPSETTING(    0x00, "5" )
3085 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) )
3086 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
3087 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) )
3088 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
3089 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) )
3090 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
3091 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_2C ) )
3092 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
3093 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_4C ) )
3094 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_6C ) )
3095 
3096 	PORT_START /* DSW2 */
3097 	PORT_DIPNAME( 0x03, 0x03, "Difficulty?" )
3098 	PORT_DIPSETTING(    0x03, "Easy" )
3099 	PORT_DIPSETTING(    0x02, "Normal" )
3100 	PORT_DIPSETTING(    0x01, "Hard" )
3101 	PORT_DIPSETTING(    0x00, "Hardest" )
3102 	PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" )
3103 	PORT_DIPSETTING(    0x08, "Demo Sound Off" )
3104 	PORT_DIPSETTING(    0x0c, "Demo Sound On" )
3105 	PORT_DIPSETTING(    0x00, "Freeze" )
3106 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Never Finish?", IP_KEY_NONE, IP_JOY_NONE )
3107 	PORT_DIPNAME( 0x30, 0x30, "Bonus?" )
3108 	PORT_DIPSETTING(    0x30, "50k 100k?" )
3109 	PORT_DIPSETTING(    0x20, "60k 120k?" )
3110 	PORT_DIPSETTING(    0x10, "100k 200k?" )
3111 	PORT_DIPSETTING(    0x00, "None?" )
3112 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
3113 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
3114 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3115 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
3116 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
3117 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3118 INPUT_PORTS_END
3119 
3120 INPUT_PORTS_START( ftsoccer )
3121 	PORT_START
3122 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
3123 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
3124 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
3125 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* sound CPU status */
3126 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
3127 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
3128 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
3129 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
3130 
3131 	PORT_START
3132 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
3133 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
3134 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
3135 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
3136 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
3137 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
3138 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
3139 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
3140 
3141 	PORT_START
3142 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
3143 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
3144 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
3145 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
3146 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
3147 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
3148 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
3149 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
3150 	PORT_START
3151 
3152 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
3153 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
3154 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
3155 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // START5?
3156 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
3157 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
3158 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
3159 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
3160 
3161 	PORT_START
3162 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
3163 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
3164 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
3165 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
3166 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4 )
3167 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER4 )
3168 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER4 )
3169 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER4 )
3170 
3171 	PORT_START
3172 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL, 25, 10, 0, 0, JOYCODE_1_BUTTON5, JOYCODE_1_BUTTON6, 0, 0 )
3173 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3174 
3175 	PORT_START
3176 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL | IPF_PLAYER2, 25, 10, 0, 0, JOYCODE_2_BUTTON5, JOYCODE_2_BUTTON6, 0, 0 )
3177 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3178 
3179 	PORT_START
3180 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL | IPF_PLAYER3, 25, 10, 0, 0, 0, 0, 0, 0 )
3181 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3182 
3183 	PORT_START
3184 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL | IPF_PLAYER4, 25, 10, 0, 0, 0, 0, 0, 0 )
3185 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3186 
3187 	PORT_START
3188 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) )
3189 	PORT_DIPSETTING(    0x03, "Upright (with vs)" )
3190 	PORT_DIPSETTING(    0x02, "Upright (without vs)" )
3191 	PORT_DIPSETTING(    0x00, "Cocktail (2 Players)" )
3192 	PORT_DIPSETTING(    0x01, "Cocktail (4 Players)" )
3193 	PORT_DIPNAME( 0x0c, 0x04, "Version" )
3194 	PORT_DIPSETTING(    0x04, "Europe" )
3195 	PORT_DIPSETTING(    0x00, "USA" )
3196 	PORT_DIPSETTING(    0x08, "Japan" )
3197 /* 	PORT_DIPSETTING(    0x0c, "Europe" ) */
3198 	SNK_COINAGE
3199 
3200 	PORT_START
3201 	PORT_DIPNAME( 0x01, 0x01, "Allow Continue" )
3202 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
3203 	PORT_DIPSETTING(    0x01, DEF_STR( Yes ) )
3204 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
3205 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
3206 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3207 	PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" )
3208 	PORT_DIPSETTING(    0x08, "Demo Sound Off" )
3209 	PORT_DIPSETTING(    0x0c, "Demo Sound On" )
3210 	PORT_DIPSETTING(    0x00, "Freeze" )
3211 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Never Finish", IP_KEY_NONE, IP_JOY_NONE )
3212 	PORT_DIPNAME( 0x70, 0x70, "Play Time" )
3213 	PORT_DIPSETTING(    0x10, "1:00" )
3214 	PORT_DIPSETTING(    0x60, "1:10" )
3215 	PORT_DIPSETTING(    0x50, "1:20" )
3216 	PORT_DIPSETTING(    0x40, "1:30" )
3217 	PORT_DIPSETTING(    0x30, "1:40" )
3218 	PORT_DIPSETTING(    0x20, "1:50" )
3219 	PORT_DIPSETTING(    0x70, "2:00" )
3220 	PORT_DIPSETTING(    0x00, "2:10" )
3221 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
3222 INPUT_PORTS_END
3223 
3224 INPUT_PORTS_START( tdfever )
3225 	PORT_START
3226 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
3227 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
3228 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
3229 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* sound CPU status */
3230 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
3231 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
3232 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
3233 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
3234 
3235 	PORT_START
3236 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
3237 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
3238 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
3239 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
3240 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
3241 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
3242 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
3243 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
3244 
3245 	PORT_START
3246 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
3247 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
3248 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
3249 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
3250 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
3251 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
3252 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
3253 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
3254 	PORT_START
3255 
3256 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
3257 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
3258 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
3259 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
3260 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
3261 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
3262 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
3263 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
3264 
3265 	PORT_START
3266 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
3267 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
3268 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
3269 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
3270 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4 )
3271 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER4 )
3272 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER4 )
3273 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER4 )
3274 
3275 	PORT_START
3276 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL, 25, 10, 0, 0, JOYCODE_1_BUTTON5, JOYCODE_1_BUTTON6, 0, 0 )
3277 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3278 
3279 	PORT_START
3280 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL | IPF_PLAYER2, 25, 10, 0, 0, JOYCODE_2_BUTTON5, JOYCODE_2_BUTTON6, 0, 0 )
3281 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3282 
3283 	PORT_START
3284 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL | IPF_PLAYER3, 25, 10, 0, 0, 0, 0, 0, 0 )
3285 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3286 
3287 	PORT_START
3288 	PORT_ANALOGX( 0x7f, 0x00, IPT_DIAL | IPF_PLAYER4, 25, 10, 0, 0, 0, 0, 0, 0 )
3289 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
3290 
3291 	PORT_START
3292 	PORT_DIPNAME( 0x01, 0x00, "Allow Continue" )
3293 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
3294 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
3295 	PORT_DIPNAME( 0x02, 0x02, "Max Players" )
3296 	PORT_DIPSETTING(    0x02, "2" )
3297 	PORT_DIPSETTING(    0x00, "4" )
3298 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
3299 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
3300 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3301 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
3302 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
3303 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3304 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
3305 	PORT_DIPSETTING(    0x00, "1 Coin/1 Credit 4/5" )
3306 	PORT_DIPSETTING(    0x10, "1 Coin/1 Credit 3/4" )
3307 	PORT_DIPSETTING(    0x20, "1 Coin/1 Credit 2/3" )
3308 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
3309 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
3310 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_2C ) )
3311 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
3312 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_4C ) )
3313 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_6C ) )
3314 
3315 	PORT_START
3316 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
3317 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
3318 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3319 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
3320 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
3321 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3322 	PORT_DIPNAME( 0x0c, 0x08, "Game Mode" )
3323 	PORT_DIPSETTING(    0x0c, "Demo Sound Off" )
3324 	PORT_DIPSETTING(    0x08, "Demo Sound On" )
3325 	PORT_DIPSETTING(    0x00, "Freeze" )
3326 	PORT_BITX( 0,       0x04, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Never Finish?", IP_KEY_NONE, IP_JOY_NONE )
3327 	PORT_DIPNAME( 0x70, 0x70, "Play Time" )
3328 	PORT_DIPSETTING(    0x70, "1:00" )
3329 	PORT_DIPSETTING(    0x60, "1:10" )
3330 	PORT_DIPSETTING(    0x50, "1:20" )
3331 	PORT_DIPSETTING(    0x40, "1:30" )
3332 	PORT_DIPSETTING(    0x30, "1:40" )
3333 	PORT_DIPSETTING(    0x20, "1:50" )
3334 	PORT_DIPSETTING(    0x10, "2:00" )
3335 	PORT_DIPSETTING(    0x00, "2:10" )
3336 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
3337 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
3338 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3339 INPUT_PORTS_END
3340 
3341 /***********************************************************************/
3342 
3343 /* input port configuration */
3344 
3345 const SNK_INPUT_PORT_TYPE athena_io[SNK_MAX_INPUT_PORTS] = {
3346 	/* c000 */ SNK_INP0,
3347 	/* c100 */ SNK_INP1,	SNK_UNUSED,
3348 	/* c200 */ SNK_INP2,	SNK_UNUSED,
3349 	/* c300 */ SNK_UNUSED,	SNK_UNUSED,
3350 	/* c400 */ SNK_UNUSED,	SNK_UNUSED,
3351 	/* c500 */ SNK_INP3,	SNK_UNUSED,
3352 	/* c600 */ SNK_INP4
3353 };
3354 
3355 const SNK_INPUT_PORT_TYPE ikari_io[SNK_MAX_INPUT_PORTS] = {
3356 	/* c000 */ SNK_INP0,
3357 	/* c100 */ SNK_ROT12_PLAYER1,	SNK_UNUSED,
3358 	/* c200 */ SNK_ROT12_PLAYER2,	SNK_UNUSED,
3359 	/* c300 */ SNK_INP3,			SNK_UNUSED,
3360 	/* c400 */ SNK_UNUSED,			SNK_UNUSED,
3361 	/* c500 */ SNK_INP4,			SNK_UNUSED,
3362 	/* c600 */ SNK_INP5
3363 };
3364 
3365 const SNK_INPUT_PORT_TYPE ikarijpb_io[SNK_MAX_INPUT_PORTS] = {
3366 	/* c000 */ SNK_INP0,
3367 	/* c100 */ SNK_ROT8_PLAYER1,	SNK_UNUSED,
3368 	/* c200 */ SNK_ROT8_PLAYER2,	SNK_UNUSED,
3369 	/* c300 */ SNK_INP3,			SNK_UNUSED,
3370 	/* c400 */ SNK_UNUSED,			SNK_UNUSED,
3371 	/* c500 */ SNK_INP4,			SNK_UNUSED,
3372 	/* c600 */ SNK_INP5
3373 };
3374 
3375 const SNK_INPUT_PORT_TYPE tdfever_io[SNK_MAX_INPUT_PORTS] = {
3376 	/* c000 */ SNK_INP0,
3377 	/* c100 */ SNK_INP1, SNK_INP2, SNK_INP3, SNK_INP4, /* joy1..joy4 */
3378 	/* c300 */ SNK_INP5, SNK_INP6, SNK_INP7, SNK_INP8, /* aim1..aim4 */
3379 	/* c500 */ SNK_UNUSED,
3380 	/* c580 */ SNK_INP9,	/* DSW1 */
3381 	/* c600 */ SNK_INP10	/* DSW2 */
3382 };
3383 
init_ikari(void)3384 static void init_ikari(void){
3385 	unsigned char *RAM = memory_region(REGION_CPU1);
3386 	/*  Hack ROM test */
3387 	RAM[0x11a6] = 0x00;
3388 	RAM[0x11a7] = 0x00;
3389 	RAM[0x11a8] = 0x00;
3390 
3391 	/* Hack Incorrect port value */
3392 	RAM[0x1003] = 0xc3;
3393 	RAM[0x1004] = 0x02;
3394 	RAM[0x1005] = 0x10;
3395 
3396 	snk_sound_busy_bit = 0x01;
3397 	snk_io = ikari_io;
3398 	hard_flags = 1;
3399 	gwar_sprite_placement=0;
3400 	snk_bg_tilemap_baseaddr = 0xd800;
3401 }
3402 
init_ikarijp(void)3403 static void init_ikarijp(void){
3404 	unsigned char *RAM = memory_region(REGION_CPU1);
3405 	RAM[0x190b] = 0xc9; /* faster test */
3406 
3407 	snk_sound_busy_bit = 0x20;
3408 	snk_io = ikari_io;
3409 	hard_flags = 1;
3410 	gwar_sprite_placement=0;
3411 	snk_bg_tilemap_baseaddr = 0xd000;
3412 }
3413 
init_ikarijpb(void)3414 static void init_ikarijpb(void){
3415 	unsigned char *RAM = memory_region(REGION_CPU1);
3416 	RAM[0x190b] = 0xc9; /* faster test */
3417 
3418 	snk_sound_busy_bit = 0x20;
3419 	snk_io = ikarijpb_io;
3420 	hard_flags = 1;
3421 	gwar_sprite_placement=0;
3422 	snk_bg_tilemap_baseaddr = 0xd000;
3423 }
3424 
init_victroad(void)3425 static void init_victroad(void){
3426 	unsigned char *RAM = memory_region(REGION_CPU1);
3427 	/* Hack ROM test */
3428 	RAM[0x17bd] = 0x00;
3429 	RAM[0x17be] = 0x00;
3430 	RAM[0x17bf] = 0x00;
3431 
3432 	/* Hack Incorrect port value */
3433 	RAM[0x161a] = 0xc3;
3434 	RAM[0x161b] = 0x19;
3435 	RAM[0x161c] = 0x16;
3436 
3437 	snk_sound_busy_bit = 0x01;
3438 	snk_io = ikari_io;
3439 	hard_flags = 1;
3440 	gwar_sprite_placement=0;
3441 	snk_bg_tilemap_baseaddr = 0xd800;
3442 }
3443 
init_dogosoke(void)3444 static void init_dogosoke(void){
3445 	unsigned char *RAM = memory_region(REGION_CPU1);
3446 	/* Hack ROM test */
3447 	RAM[0x179f] = 0x00;
3448 	RAM[0x17a0] = 0x00;
3449 	RAM[0x17a1] = 0x00;
3450 
3451 	/* Hack Incorrect port value */
3452 	RAM[0x15fc] = 0xc3;
3453 	RAM[0x15fd] = 0xfb;
3454 	RAM[0x15fe] = 0x15;
3455 
3456 	snk_sound_busy_bit = 0x01;
3457 	snk_io = ikari_io;
3458 	hard_flags = 1;
3459 	gwar_sprite_placement=0;
3460 	snk_bg_tilemap_baseaddr = 0xd800;
3461 }
3462 
init_gwar(void)3463 static void init_gwar(void){
3464 	snk_sound_busy_bit = 0x01;
3465 	snk_io = ikari_io;
3466 	hard_flags = 0;
3467 	gwar_sprite_placement=1;
3468 	snk_bg_tilemap_baseaddr = 0xd800;
3469 }
3470 
init_gwara(void)3471 static void init_gwara(void){
3472 	snk_sound_busy_bit = 0x01;
3473 	snk_io = ikari_io;
3474 	hard_flags = 0;
3475 	gwar_sprite_placement=2;
3476 	snk_bg_tilemap_baseaddr = 0xd800;
3477 }
3478 
init_chopper(void)3479 static void init_chopper(void){
3480 	snk_sound_busy_bit = 0x01;
3481 	snk_io = athena_io;
3482 	hard_flags = 0;
3483 	gwar_sprite_placement=0;
3484 	snk_bg_tilemap_baseaddr = 0xd800;
3485 }
3486 
init_bermudat(void)3487 static void init_bermudat(void){
3488 	unsigned char *RAM = memory_region(REGION_CPU1);
3489 
3490 	// Patch "Turbo Error"
3491 	RAM[0x127e] = 0xc9;
3492 	RAM[0x118d] = 0x00;
3493 	RAM[0x118e] = 0x00;
3494 
3495 	snk_sound_busy_bit = 0x01;
3496 	snk_io = ikari_io;
3497 	hard_flags = 0;
3498 	gwar_sprite_placement=0;
3499 	snk_bg_tilemap_baseaddr = 0xd800;
3500 }
3501 
init_worldwar(void)3502 static void init_worldwar(void){
3503 	snk_sound_busy_bit = 0x01;
3504 	snk_io = ikari_io;
3505 	hard_flags = 0;
3506 	gwar_sprite_placement=0;
3507 	snk_bg_tilemap_baseaddr = 0xd800;
3508 }
3509 
init_tdfever(void)3510 static void init_tdfever( void ){
3511 	snk_sound_busy_bit = 0x08;
3512 	snk_io = tdfever_io;
3513 	hard_flags = 0;
3514 	gwar_sprite_placement=0;
3515 	snk_bg_tilemap_baseaddr = 0xd800;
3516 }
3517 
init_ftsoccer(void)3518 static void init_ftsoccer( void ){
3519 	snk_sound_busy_bit = 0x08;
3520 	snk_io = tdfever_io;
3521 	hard_flags = 0;
3522 	gwar_sprite_placement=0;
3523 	snk_bg_tilemap_baseaddr = 0xd800;
3524 }
3525 
init_tnk3(void)3526 static void init_tnk3( void ){
3527 	snk_sound_busy_bit = 0x20;
3528 	snk_io = ikari_io;
3529 	hard_flags = 0;
3530 	gwar_sprite_placement=0;
3531 	snk_bg_tilemap_baseaddr = 0xd800;
3532 }
3533 
init_athena(void)3534 static void init_athena( void ){
3535 	snk_sound_busy_bit = 0x01;
3536 	snk_io = athena_io;
3537 	hard_flags = 0;
3538 	gwar_sprite_placement=0;
3539 	snk_bg_tilemap_baseaddr = 0xd800;
3540 }
3541 
init_fitegolf(void)3542 static void init_fitegolf( void ){
3543 	snk_sound_busy_bit = 0x01;
3544 	snk_io = athena_io;
3545 	hard_flags = 0;
3546 	gwar_sprite_placement=0;
3547 	snk_bg_tilemap_baseaddr = 0xd800;
3548 }
3549 
init_psychos(void)3550 static void init_psychos( void ){
3551 	snk_sound_busy_bit = 0x01;
3552 	snk_io = athena_io;
3553 	hard_flags = 0;
3554 	gwar_sprite_placement=0;
3555 	snk_bg_tilemap_baseaddr = 0xd800;
3556 }
3557 
3558 /*          rom       parent    machine   inp       init */
3559 GAMEX( 1985, tnk3,     0,        tnk3,     tnk3,     tnk3,     ROT270,       "SNK", "TNK III (US?)", GAME_NO_COCKTAIL )
3560 GAMEX( 1985, tnk3j,    tnk3,     tnk3,     tnk3,     tnk3,     ROT270,       "SNK", "Tank (Japan)", GAME_NO_COCKTAIL )
3561 GAMEX( 1986, athena,   0,        athena,   athena,   athena,   ROT0_16BIT,   "SNK", "Athena", GAME_NO_COCKTAIL )
3562 GAMEX( 1988, fitegolf, 0,        athena,   fitegolf, fitegolf, ROT0,         "SNK", "Fighting Golf", GAME_NO_COCKTAIL )
3563 GAMEX( 1986, ikari,    0,        ikari,    ikari,    ikari,    ROT270,       "SNK", "Ikari Warriors (US)", GAME_NO_COCKTAIL )
3564 GAMEX( 1986, ikarijp,  ikari,    ikari,    ikarijp,  ikarijp,  ROT270,       "SNK", "Ikari Warriors (Japan)", GAME_NO_COCKTAIL )
3565 GAMEX( 1986, ikarijpb, ikari,    ikari,    ikarijp,  ikarijpb, ROT270,       "bootleg", "Ikari Warriors (Japan bootleg)", GAME_NO_COCKTAIL )
3566 GAMEX( 1986, victroad, 0,        victroad, victroad, victroad, ROT270,       "SNK", "Victory Road", GAME_NO_COCKTAIL )
3567 GAMEX( 1986, dogosoke, victroad, victroad, victroad, dogosoke, ROT270,       "SNK", "Dogou Souken", GAME_NO_COCKTAIL )
3568 GAMEX( 1987, gwar,     0,        gwar,     gwar,     gwar,     ROT270,       "SNK", "Guerrilla War (US)", GAME_NO_COCKTAIL )
3569 GAMEX( 1987, gwarj,    gwar,     gwar,     gwar,     gwar,     ROT270,       "SNK", "Guevara (Japan)", GAME_NO_COCKTAIL )
3570 GAMEX( 1987, gwara,    gwar,     gwar,     gwar,     gwara,    ROT270,       "SNK", "Guerrilla War (Version 1)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
3571 GAMEX( 1987, gwarb,    gwar,     gwar,     gwar,     gwar,     ROT270,       "bootleg", "Guerrilla War (bootleg)", GAME_NO_COCKTAIL )
3572 GAMEX( 1987, bermudat, 0,        bermudat, bermudat, bermudat, ROT270_16BIT, "SNK", "Bermuda Triangle (US)", GAME_NO_COCKTAIL )
3573 GAMEX( 1987, bermudaj, bermudat, bermudat, bermudat, bermudat, ROT270_16BIT, "SNK", "Bermuda Triangle (Japan)", GAME_NO_COCKTAIL )
3574 GAMEX( 1987, bermudaa, bermudat, bermudat, bermudaa, worldwar, ROT270_16BIT, "SNK", "Bermuda Triangle (US early version)", GAME_NO_COCKTAIL )
3575 GAMEX( 1987, worldwar, bermudat, bermudat, worldwar, worldwar, ROT270_16BIT, "SNK", "World Wars (Japan)", GAME_NO_COCKTAIL )
3576 GAMEX( 1987, psychos,  0,        psychos,  psychos,  psychos,  ROT0_16BIT,   "SNK", "Psycho Soldier (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3577 GAMEX( 1987, psychosj, psychos,  psychos,  psychos,  psychos,  ROT0_16BIT,   "SNK", "Psycho Soldier (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3578 GAMEX( 1988, chopper,  0,        chopper1, legofair, chopper,  ROT270_16BIT, "SNK", "Chopper I", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3579 GAMEX( 1988, legofair, chopper,  chopper1, legofair, chopper,  ROT270_16BIT, "SNK", "Koukuu Kihei Monogatari - The Legend of Air Cavalry", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
3580 GAMEX( 1987, tdfever,  0,        tdfever,  tdfever,  tdfever,  ROT270,       "SNK", "TouchDown Fever", GAME_NO_COCKTAIL )
3581 GAMEX( 1987, tdfeverj, tdfever,  tdfever,  tdfever,  tdfever,  ROT270,       "SNK", "TouchDown Fever (Japan)", GAME_NO_COCKTAIL )
3582 GAMEX( 1988, ftsoccer, 0,        ftsoccer, ftsoccer, ftsoccer, ROT0_16BIT,   "SNK", "Fighting Soccer", GAME_NO_COCKTAIL )
3583