1 #include "../vidhrdw/alpha68k.c"
2 
3 /***************************************************************************
4 
5 	SNK/Alpha 68000 based games:
6 
7 	(Game)					(PCB Number)     (Manufacturer)
8 
9 	The Koukouyakyuh        ?                Alpha Denshi 1985
10 	Super Stingray			? (Early)        Alpha 1986?
11 	Kyros					? (Early)        World Games Inc 1987
12 	Paddle Mania			Alpha 68K-96 I   SNK 1988
13 	Time Soldiers (Ver 3)	Alpha 68K-96 II  SNK/Romstar 1987
14 	Time Soldiers (Ver 1)	Alpha 68K-96 II  SNK/Romstar 1987
15 	Battlefield (Ver 1)		Alpha 68K-96 II  SNK 1987
16 	Sky Soldiers            Alpha 68K-96 II  SNK/Romstar 1988
17 	Gold Medalist		    Alpha 68K-96 II  SNK 1988
18 	Gold Medalist           (Bootleg)        SNK 1988
19 	Sky Adventure			Alpha 68K-96 V   SNK 1989
20 	Gang Wars				Alpha 68K-96 V   Alpha 1989
21 	Gang Wars				(Bootleg)        Alpha 1989
22 	Super Champion Baseball (V board?)       SNK/Alpha/Romstar/Sega 1989
23 
24 General notes:
25 
26 	The Koukouyakyuh is different hardware design from the other games.
27 
28 	All II & V games are 68000, z80 plus a custom Alpha microcontroller,
29 	the microcontroller is able to write to anywhere within main memory.
30 
31 	Gold Medalist (bootleg) has a 68705 in place of the Alpha controller.
32 
33 	V boards have more memory and double the amount of colours as II boards.
34 
35 	Coinage is controlled by the microcontroller and is not fully supported
36 	for all games yet.
37 
38 	Time Soldiers - make the ROM writable and the game will enter a 'debug'
39 	kind of mode, probably from the development system used.
40 
41 	Time Soldiers - Title screen is corrupt when set to 'Japanese language',
42 	the real board does this too!  (Battlefield is corrupt when set to English
43 	too).
44 
45 	Paddle Mania is (c) 1988 but is crude hardware and there are probably
46 	several earlier games running on it.
47 
48 	Emulation by Bryan McPhail, mish@tendril.co.uk
49 
50 ***************************************************************************/
51 
52 #include "driver.h"
53 #include "vidhrdw/generic.h"
54 #include "cpu/z80/z80.h"
55 
56 int kouyakyu_vh_start(void);
57 int alpha68k_vh_start(void);
58 void kyros_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
59 void sstingry_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
60 void alpha68k_I_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
61 void alpha68k_I_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
62 void kouyakyu_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
63 void kyros_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
64 void alpha68k_II_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
65 WRITE_HANDLER( alpha68k_II_video_bank_w );
66 void alpha68k_V_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
67 void alpha68k_V_sb_vh_screenrefresh(struct osd_bitmap *bitmap, int full_refresh);
68 WRITE_HANDLER( alpha68k_V_video_bank_w );
69 WRITE_HANDLER( alpha68k_V_video_control_w );
70 WRITE_HANDLER( alpha68k_paletteram_w );
71 WRITE_HANDLER( alpha68k_flipscreen_w );
72 WRITE_HANDLER( alpha68k_videoram_w );
73 WRITE_HANDLER( kouyakyu_video_w );
74 
75 static unsigned char *shared_ram,*sound_ram;
76 static int invert_controls,microcontroller_id;
77 
78 /******************************************************************************/
79 
READ_HANDLER(alpha68k_II_video_r)80 static READ_HANDLER( alpha68k_II_video_r )
81 {
82 	return READ_WORD(&videoram[offset]);
83 }
84 
READ_HANDLER(control_1_r)85 static READ_HANDLER( control_1_r )
86 {
87 	if (invert_controls)
88 		return ~(readinputport(0) + (readinputport(1) << 8));
89 
90 	return (readinputport(0) + (readinputport(1) << 8));
91 }
92 
READ_HANDLER(control_2_r)93 static READ_HANDLER( control_2_r )
94 {
95 	if (invert_controls)
96 		return ~(readinputport(3) + ((~(1 << (readinputport(5) * 12 / 256))) << 8));
97 
98 	return readinputport(3) + /* Low byte of CN1 */
99     	((~(1 << (readinputport(5) * 12 / 256))) << 8);
100 }
101 
READ_HANDLER(control_2_V_r)102 static READ_HANDLER( control_2_V_r )
103 {
104 	return readinputport(3);
105 }
106 
READ_HANDLER(kyros_dip_r)107 static READ_HANDLER( kyros_dip_r )
108 {
109 	return readinputport(1)<<8;
110 }
111 
READ_HANDLER(control_3_r)112 static READ_HANDLER( control_3_r )
113 {
114 	if (invert_controls)
115 		return ~((( ~(1 << (readinputport(6) * 12 / 256)) )<<8)&0xff00);
116 
117 	return (( ~(1 << (readinputport(6) * 12 / 256)) )<<8)&0xff00;
118 }
119 
120 /* High 4 bits of CN1 & CN2 */
READ_HANDLER(control_4_r)121 static READ_HANDLER( control_4_r )
122 {
123 	if (invert_controls)
124 		return ~(((( ~(1 << (readinputport(6) * 12 / 256))  ) <<4)&0xf000)
125     	 + ((( ~(1 << (readinputport(5) * 12 / 256))  )    )&0x0f00));
126 
127 	return ((( ~(1 << (readinputport(6) * 12 / 256))  ) <<4)&0xf000)
128     	 + ((( ~(1 << (readinputport(5) * 12 / 256))  )    )&0x0f00);
129 }
130 
131 /******************************************************************************/
132 
WRITE_HANDLER(kyros_sound_w)133 static WRITE_HANDLER( kyros_sound_w )
134 {
135 	soundlatch_w(0,(data>>8)&0xff);
136 }
137 
WRITE_HANDLER(alpha68k_II_sound_w)138 static WRITE_HANDLER( alpha68k_II_sound_w )
139 {
140 	soundlatch_w(0,data&0xff);
141 }
142 
WRITE_HANDLER(alpha68k_V_sound_w)143 static WRITE_HANDLER( alpha68k_V_sound_w )
144 {
145 	/* Sound & fix bank select are in the same word */
146 	if ((data>>16)!=0xff) {
147 		soundlatch_w(0,data&0xff);
148 	} else {
149 		alpha68k_V_video_bank_w(0,(data>>8)&0xff);
150 	}
151 }
152 
153 /******************************************************************************/
154 
155 /* Time Soldiers, Sky Soldiers, Gold Medalist */
READ_HANDLER(alpha_II_trigger_r)156 static READ_HANDLER( alpha_II_trigger_r )
157 {
158 	static int latch;
159 	int source=READ_WORD(&shared_ram[offset]);
160 
161 	switch (offset) {
162 		case 0:	/* Dipswitch 2 */
163 			WRITE_WORD(&shared_ram[0], (source&0xff00)| readinputport(4));
164 			return 0;
165 
166 		case 0x44: /* Coin value */
167 			WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x1);
168 			return 0;
169 
170 		case 0x52: /* Query microcontroller for coin insert */
171 			if ((readinputport(2)&0x3)==3) latch=0;
172 			if ((readinputport(2)&0x1)==0 && !latch) {
173 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x22);
174 				WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x0);
175 				latch=1;
176 			} else if ((readinputport(2)&0x2)==0 && !latch) {
177 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x22);
178 				WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x0);
179 				latch=1;
180 			}
181 			else
182 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x00);
183 			return 0;
184 
185 		case 0x1fc:	/* Custom ID check, same for all games */
186 			WRITE_WORD(&shared_ram[0x1fc], (source&0xff00)|0x87);
187 			break;
188 		case 0x1fe:	/* Custom ID check, same for all games */
189 			WRITE_WORD(&shared_ram[0x1fe], (source&0xff00)|0x13);
190 			break;
191 	}
192 
193 	//logerror("%04x:  Alpha read trigger at %04x\n",cpu_get_pc(),offset);
194 
195 	return 0; /* Values returned don't matter */
196 }
197 
198 /* Sky Adventure & Gang Wars */
READ_HANDLER(alpha_V_trigger_r)199 static READ_HANDLER( alpha_V_trigger_r )
200 {
201 	static int latch;
202 	int source=READ_WORD(&shared_ram[offset]);
203 
204 	switch (offset) {
205 		case 0:	/* Dipswitch 1 */
206 			WRITE_WORD(&shared_ram[0], (source&0xff00)| readinputport(4));
207 			return 0;
208 
209 		case 0x44: /* Coin value */
210 			WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x1);
211 			return 0;
212 		case 0x52: /* Query microcontroller for coin insert */
213 			if ((readinputport(2)&0x3)==3) latch=0;
214 			if ((readinputport(2)&0x1)==0 && !latch) {
215 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x23);
216 				WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x0);
217 				latch=1;
218 			}
219 			else if ((readinputport(2)&0x2)==0 && !latch) {
220 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x24);
221 				WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x0);
222 				latch=1;
223 			}
224 			else
225 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x00);
226 			return 0;
227 
228 //		case 0x62: /* Sky Adventure - I don't think is correct, but it works */
229 //			WRITE_WORD(&shared_ram[0x154], 0xffff);
230 //			return 0;
231 
232 		case 0x1fc:	/* Custom ID check */
233 			WRITE_WORD(&shared_ram[0x1fc], (source&0xff00)|(microcontroller_id>>8));
234 			break;
235 		case 0x1fe:	/* Custom ID check */
236 			WRITE_WORD(&shared_ram[0x1fe], (source&0xff00)|(microcontroller_id&0xff));
237 			break;
238 
239 		case 0x3e00: /* Dipswitch 1 */
240 			WRITE_WORD(&shared_ram[0x3e00], (source&0xff00)| readinputport(4));
241 			return 0;
242 		case 0x3e52: /* Gang Wars - Query microcontroller for coin insert */
243 			if ((readinputport(2)&0x3)==3) latch=0;
244 			if ((readinputport(2)&0x1)==0 && !latch) {
245 				WRITE_WORD(&shared_ram[0x3e52], (source&0xff00)|0x23);
246 				WRITE_WORD(&shared_ram[0x3e44], (source&0xff00)|0x0);
247 				latch=1;
248 			}
249 			else if ((readinputport(2)&0x2)==0 && !latch) {
250 				WRITE_WORD(&shared_ram[0x3e52], (source&0xff00)|0x24);
251 				WRITE_WORD(&shared_ram[0x3e44], (source&0xff00)|0x0);
252 				latch=1;
253 			}
254 			else
255 				WRITE_WORD(&shared_ram[0x3e52], (source&0xff00)|0x00);
256 
257 			/* The game expects the first dip to appear in RAM at 0x2c6, presumably
258 				the microcontroller supplies it (it does for all the other games, but
259 				usually to 0x0 in RAM) */
260 			source=READ_WORD(&shared_ram[0x2c6]);
261 			WRITE_WORD(&shared_ram[0x2c6], (source&0x00ff)| (readinputport(4)<<8));
262 			return 0;
263 
264 		case 0x3ffc: /* Custom ID check, Gang Wars */
265 			WRITE_WORD(&shared_ram[0x3ffc], (source&0xff00)|(microcontroller_id>>8));
266 			break;
267 		case 0x3ffe: /* Custom ID check, Gang Wars */
268 			WRITE_WORD(&shared_ram[0x3ffe], (source&0xff00)|(microcontroller_id&0xff));
269 			break;
270 	}
271 
272 	//logerror("%04x:  Alpha read trigger at %04x\n",cpu_get_pc(),offset);
273 
274 	return 0; /* Values returned don't matter */
275 }
276 
WRITE_HANDLER(alpha_microcontroller_w)277 static WRITE_HANDLER( alpha_microcontroller_w )
278 {
279 	//logerror("%04x:  Alpha write trigger at %04x (%04x)\n",cpu_get_pc(),offset,data);
280 	/* 0x44 = coin clear signal to microcontroller? */
281 	if (offset==0x5a) alpha68k_flipscreen_w(0,data);
282 }
283 
READ_HANDLER(kyros_alpha_trigger_r)284 static READ_HANDLER( kyros_alpha_trigger_r )
285 {
286 	static int latch;
287 	int source=READ_WORD(&shared_ram[offset]);
288 
289 	switch (offset) {
290 		case 0x44: /* Coin value */
291 			WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x1);
292 			return 0;
293 		case 0x52: /* Query microcontroller for coin insert */
294 			if ((readinputport(2)&0x1)==1) latch=0;
295 			if ((readinputport(2)&0x1)==0 && !latch) {
296 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x22);
297 				WRITE_WORD(&shared_ram[0x44], (source&0xff00)|0x0);
298 				latch=1;
299 			}
300 			else
301 				WRITE_WORD(&shared_ram[0x52], (source&0xff00)|0x00);
302 			return 0;
303 
304 		case 0x1fe:	/* Custom check, only used at bootup */
305 			WRITE_WORD(&shared_ram[0x1fe], (source&0xff00)|microcontroller_id);
306 			break;
307 
308 	}
309 
310 	//logerror("%04x:  Alpha read trigger at %04x\n",cpu_get_pc(),offset);
311 
312 	return 0; /* Values returned don't matter */
313 }
314 
315 /******************************************************************************/
316 
317 static struct MemoryReadAddress kouyakyu_readmem[] =
318 {
319 	{ 0x000000, 0x01ffff, MRA_ROM },
320 	{ 0x040000, 0x040fff, MRA_BANK1 },
321 	{ 0x080000, 0x081fff, MRA_BANK2 },
322 	{ 0x0c0000, 0x0c0fff, MRA_BANK3 },
323 	{ 0x100000, 0x1007ff, MRA_BANK4 },
324 	{ 0x140000, 0x1407ff, MRA_BANK5 },
325 	{ -1 }  /* end of table */
326 };
327 
328 static struct MemoryWriteAddress kouyakyu_writemem[] =
329 {
330 	{ 0x000000, 0x01ffff, MWA_ROM },
331 	{ 0x040000, 0x040fff, MWA_BANK1, &shared_ram },
332 	{ 0x080000, 0x080fff, kouyakyu_video_w, &videoram },
333 	{ 0x0c0000, 0x0c0fff, MWA_BANK3, &spriteram },
334 	{ 0x100000, 0x1007ff, MWA_BANK4 },
335 	{ 0x140000, 0x1407ff, MWA_BANK5 },
336 	{ 0x780000, 0x780001, MWA_NOP }, /* Watchdog? */
337 	{ -1 }  /* end of table */
338 };
339 
340 static struct MemoryReadAddress kyros_readmem[] =
341 {
342 	{ 0x000000, 0x01ffff, MRA_ROM },
343 	{ 0x020000, 0x020fff, MRA_BANK1 },
344 	{ 0x040000, 0x041fff, MRA_BANK2 },
345 	{ 0x060000, 0x060001, MRA_NOP }, /* Watchdog? */
346 	{ 0x080000, 0x0801ff, kyros_alpha_trigger_r },
347 	{ 0x0c0000, 0x0c0001, input_port_0_r },
348 	{ 0x0e0000, 0x0e0001, kyros_dip_r },
349 	{ -1 }  /* end of table */
350 };
351 
352 static struct MemoryWriteAddress kyros_writemem[] =
353 {
354 	{ 0x000000, 0x01ffff, MWA_ROM },
355 	{ 0x020000, 0x020fff, MWA_BANK1, &shared_ram },
356 	{ 0x040000, 0x041fff, MWA_BANK2, &spriteram },
357 	{ 0x060000, 0x060001, alpha68k_II_sound_w }, /* Watchdog? */
358 	{ 0x0e0000, 0x0e0001, kyros_sound_w },
359 	{ -1 }  /* end of table */
360 };
361 
362 static struct MemoryReadAddress alpha68k_I_readmem[] =
363 {
364 	{ 0x000000, 0x03ffff, MRA_ROM },
365 	{ 0x080000, 0x083fff, MRA_BANK1 },
366 //	{ 0x180008, 0x180009, control_2_r }, /* 1 byte */
367 	{ 0x300000, 0x300001, control_1_r }, /* 2  */
368 	{ 0x340000, 0x340001, control_1_r }, /* 2  */
369 	{ 0x100000, 0x103fff, MRA_BANK2 },
370 	{ -1 }  /* end of table */
371 };
372 
373 static struct MemoryWriteAddress alpha68k_I_writemem[] =
374 {
375 	{ 0x000000, 0x03ffff, MWA_NOP },
376 	{ 0x080000, 0x083fff, MWA_BANK1, &shared_ram },
377 	{ 0x100000, 0x103fff, MWA_BANK2, &spriteram },
378 	{ 0x180000, 0x180001, MWA_NOP }, /* Watchdog */
379 	{ 0x380000, 0x380001, alpha68k_II_sound_w },
380 	{ -1 }  /* end of table */
381 };
382 
383 static struct MemoryReadAddress alpha68k_II_readmem[] =
384 {
385 	{ 0x000000, 0x03ffff, MRA_ROM },
386 	{ 0x040000, 0x040fff, MRA_BANK1 },
387 	{ 0x080000, 0x080001, control_1_r }, /* Joysticks */
388 	{ 0x0c0000, 0x0c0001, control_2_r }, /* CN1 & Dip 1 */
389 	{ 0x0c8000, 0x0c8001, control_3_r }, /* Bottom of CN2 */
390 	{ 0x0d0000, 0x0d0001, control_4_r }, /* Top of CN1 & CN2 */
391 	{ 0x0d8000, 0x0d8001, MRA_NOP }, /* IRQ ack? */
392 	{ 0x0e0000, 0x0e0001, MRA_NOP }, /* IRQ ack? */
393 	{ 0x0e8000, 0x0e8001, MRA_NOP }, /* watchdog? */
394 	{ 0x100000, 0x100fff, alpha68k_II_video_r },
395 	{ 0x200000, 0x207fff, MRA_BANK2 },
396 	{ 0x300000, 0x3001ff, alpha_II_trigger_r },
397 	{ 0x400000, 0x400fff, paletteram_word_r },
398 	{ 0x800000, 0x83ffff, MRA_BANK8 }, /* Extra code bank */
399 	{ -1 }  /* end of table */
400 };
401 
402 static struct MemoryWriteAddress alpha68k_II_writemem[] =
403 {
404 	{ 0x000000, 0x03ffff, MWA_NOP },
405 	{ 0x040000, 0x040fff, MWA_BANK1, &shared_ram },
406 	{ 0x080000, 0x080001, alpha68k_II_sound_w },
407 	{ 0x0c0000, 0x0c00ff, alpha68k_II_video_bank_w },
408 	{ 0x100000, 0x100fff, alpha68k_videoram_w, &videoram },
409 	{ 0x200000, 0x207fff, MWA_BANK2, &spriteram },
410 	{ 0x300000, 0x3001ff, alpha_microcontroller_w },
411 	{ 0x400000, 0x400fff, alpha68k_paletteram_w, &paletteram },
412 	{ -1 }  /* end of table */
413 };
414 
415 static struct MemoryReadAddress alpha68k_V_readmem[] =
416 {
417 	{ 0x000000, 0x03ffff, MRA_ROM },
418 	{ 0x040000, 0x043fff, MRA_BANK1 },
419 	{ 0x080000, 0x080001, control_1_r }, /* Joysticks */
420 	{ 0x0c0000, 0x0c0001, control_2_V_r }, /* Dip 2 */
421 	{ 0x0d8000, 0x0d8001, MRA_NOP }, /* IRQ ack? */
422 	{ 0x0e0000, 0x0e0001, MRA_NOP }, /* IRQ ack? */
423 	{ 0x0e8000, 0x0e8001, MRA_NOP }, /* watchdog? */
424 	{ 0x100000, 0x100fff, alpha68k_II_video_r },
425 	{ 0x200000, 0x207fff, MRA_BANK3 },
426 	{ 0x300000, 0x303fff, alpha_V_trigger_r },
427 	{ 0x400000, 0x401fff, paletteram_word_r },
428 	{ 0x800000, 0x83ffff, MRA_BANK8 },
429 	{ -1 }  /* end of table */
430 };
431 
432 static struct MemoryWriteAddress alpha68k_V_writemem[] =
433 {
434 	{ 0x000000, 0x03ffff, MWA_NOP },
435 	{ 0x040000, 0x043fff, MWA_BANK1, &shared_ram },
436 	{ 0x080000, 0x080001, alpha68k_V_sound_w },
437 	{ 0x0c0000, 0x0c00ff, alpha68k_V_video_control_w },
438 	{ 0x100000, 0x100fff, alpha68k_videoram_w, &videoram },
439 	{ 0x200000, 0x207fff, MWA_BANK3, &spriteram },
440 	{ 0x303e00, 0x303fff, alpha_microcontroller_w },
441 	{ 0x400000, 0x401fff, alpha68k_paletteram_w, &paletteram },
442 	{ -1 }  /* end of table */
443 };
444 
445 /******************************************************************************/
446 
WRITE_HANDLER(sound_bank_w)447 static WRITE_HANDLER( sound_bank_w )
448 {
449 	int bankaddress;
450 	unsigned char *RAM = memory_region(REGION_CPU2);
451 
452 	bankaddress = 0x10000 + (data) * 0x4000;
453 	cpu_setbank(7,&RAM[bankaddress]);
454 }
455 
456 static struct MemoryReadAddress sound_readmem[] =
457 {
458 	{ 0x0000, 0x7fff, MRA_ROM },
459 	{ 0x8000, 0x87ff, MRA_RAM },
460 	{ 0xc000, 0xffff, MRA_BANK7 },
461 	{ -1 }	/* end of table */
462 };
463 
464 static struct MemoryWriteAddress sound_writemem[] =
465 {
466 	{ 0x0000, 0x7fff, MWA_ROM },
467 	{ 0x8000, 0x87ff, MWA_RAM },
468 	{ -1 }	/* end of table */
469 };
470 
471 static struct MemoryReadAddress kyros_sound_readmem[] =
472 {
473 	{ 0x0000, 0x7fff, MRA_ROM },
474 	{ 0xc000, 0xc7ff, MRA_RAM },
475 //	{ 0xe000, 0xe000, soundlatch_r },
476 //	{ 0xc000, 0xffff, MRA_BANK7 },
477 	{ -1 }	/* end of table */
478 };
479 
480 static struct MemoryWriteAddress kyros_sound_writemem[] =
481 {
482 	{ 0x0000, 0x7fff, MWA_ROM },
483 	{ 0xc000, 0xc7ff, MWA_RAM },
484 	{ -1 }	/* end of table */
485 };
486 
487 static struct MemoryReadAddress sstingry_sound_readmem[] =
488 {
489 	{ 0x0000, 0x7fff, MRA_ROM },
490 	{ 0x8000, 0x83ff, MRA_RAM },
491 //	{ 0xe000, 0xe000, soundlatch_r },
492 //	{ 0xc000, 0xffff, MRA_BANK7 },
493 	{ -1 }	/* end of table */
494 };
495 
496 /*static WRITE_HANDLER (soundram_mirror_w)
497 {
498 	sound_ram[offset]=data;
499 }*/
500 
501 static struct MemoryWriteAddress sstingry_sound_writemem[] =
502 {
503 	{ 0x0000, 0x7fff, MWA_ROM },
504 	{ 0x8000, 0x83ff, MWA_RAM, &sound_ram },
505 //	{ 0xc000, 0xc3ff, soundram_mirror_w },
506 	{ -1 }	/* end of table */
507 };
508 
509 static struct IOReadPort sound_readport[] =
510 {
511 	{ 0x00, 0x00, soundlatch_r },
512 	{ -1 }
513 };
514 
515 static struct IOWritePort sound_writeport[] =
516 {
517 	{ 0x00, 0x00, soundlatch_clear_w },
518 	{ 0x08, 0x08, DAC_0_signed_data_w },
519 	{ 0x0a, 0x0a, YM2413_register_port_0_w },
520 	{ 0x0b, 0x0b, YM2413_data_port_0_w },
521 	{ 0x0c, 0x0c, YM2203_control_port_0_w },
522 	{ 0x0d, 0x0d, YM2203_write_port_0_w },
523 	{ 0x0e, 0x0e, sound_bank_w },
524 	{ -1 }
525 };
526 
527 static struct IOWritePort kyros_sound_writeport[] =
528 {
529 //	{ 0x00, 0x00, soundlatch_clear_w },
530 //	{ 0x08, 0x08, DAC_0_data_w },
531 	{ 0x10, 0x10, YM2203_control_port_0_w },
532 	{ 0x11, 0x11, YM2203_write_port_0_w },
533 	{ 0x80, 0x80, AY8910_write_port_0_w },
534 	{ 0x81, 0x81, AY8910_control_port_0_w },
535 	{ 0x90, 0x90, AY8910_write_port_1_w },
536 	{ 0x91, 0x91, AY8910_control_port_1_w },
537 	{ -1 }
538 };
539 
540 /******************************************************************************/
541 
542 #define ALPHA68K_PLAYER1_INPUT \
543 	PORT_START	/* Player 1 controls */ \
544 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY ) \
545 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY ) \
546 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY ) \
547 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
548 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) \
549 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) \
550 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 */ \
551 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) \
552 
553 #define ALPHA68K_PLAYER2_INPUT \
554 	PORT_START	/* Player 2 controls */ \
555 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 ) \
556 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 ) \
557 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 ) \
558 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 ) \
559 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) \
560 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) \
561 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 */ \
562 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
563 
564 INPUT_PORTS_START( kyros )
565 	PORT_START
566 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
567 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
568 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
569 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
570 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 )
571 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 )
572 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 )
573 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_START1 )
574 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
575 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
576 	PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
577 	PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT| IPF_8WAY | IPF_COCKTAIL )
578 	PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
579 	PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_COCKTAIL )
580 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_COCKTAIL )
581 	PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START2 )
582 
583 	PORT_START	/* dipswitches */
584 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
585 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
586 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
587 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
588 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
589 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
590 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
591 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
592 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
593 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) // demo sound?
594 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
595 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
596 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
597 	PORT_DIPSETTING(    0x00, "3" )
598 	PORT_DIPSETTING(    0x10, "4" )
599 	PORT_DIPSETTING(    0x20, "5" )
600 	PORT_DIPSETTING(    0x30, "6" )
601 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
602 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
603 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
604 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
605 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
606 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
607 
608 	PORT_START /* Coin input to microcontroller */
609 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
610 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
611 INPUT_PORTS_END
612 
613 INPUT_PORTS_START( sstingry )
614 	PORT_START
615 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
616 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
617 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
618 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
619 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 )
620 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 )
621 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 )
622 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_START1 )
623 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
624 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
625 	PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
626 	PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT| IPF_8WAY | IPF_COCKTAIL )
627 	PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
628 	PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_COCKTAIL )
629 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_COCKTAIL )
630 	PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START2 )
631 
632 	PORT_START	/* Player 1 controls */
633 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
634 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
635 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
636 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
637 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
638 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
639 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
640 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
641 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
642 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
643 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
644 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
645 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
646 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
647 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
648 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
649 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
650 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
651 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
652 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
653 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
654 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
655 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
656 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
657 
658 	PORT_START	/* Coin input to microcontroller */
659 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
660 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
661 INPUT_PORTS_END
662 
663 INPUT_PORTS_START( timesold )
664 	ALPHA68K_PLAYER1_INPUT
665 	ALPHA68K_PLAYER2_INPUT
666 
667 	PORT_START	/* Coin input to microcontroller */
668 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
669 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
670 
671 	PORT_START	/* Service + dip */
672 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
673 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
674 
675 	/* 2 physical sets of _6_ dip switches */
676 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
677 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
678 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
679 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
680 	PORT_DIPSETTING(    0x00, "Easy" )
681 	PORT_DIPSETTING(    0x18, "Normal" )
682 	PORT_DIPSETTING(    0x10, "Difficult" )
683 	PORT_DIPNAME( 0x20, 0x00, "Language" )
684 	PORT_DIPSETTING(    0x00, "English" )
685 	PORT_DIPSETTING(    0x20, "Japanese" )
686 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
687 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
688 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
689 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
690 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
691 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
692 
693 	PORT_START /* A 6 way dip switch */
694 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
695 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
696 	PORT_DIPSETTING(    0x01, "A 2C/3C B 7C/1C" )
697 	PORT_DIPSETTING(    0x07, "A 1C/1C B 1C/1C" )
698 	PORT_DIPSETTING(    0x06, "A 1C/2C B 2C/1C" )
699 	PORT_DIPSETTING(    0x05, "A 1C/3C B 3C/1C" )
700 	PORT_DIPSETTING(    0x04, "A 1C/4C B 4C/1C" )
701 	PORT_DIPSETTING(    0x03, "A 1C/5C B 5C/1C" )
702 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
703 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
704 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
705 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
706 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
707 	PORT_DIPSETTING(    0x30, "3" )
708 	PORT_DIPSETTING(    0x20, "4" )
709 	PORT_DIPSETTING(    0x10, "5" )
710 	PORT_DIPSETTING(    0x00, "6" )
711 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
712 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
713 
714 	PORT_START	/* player 1 12-way rotary control - converted in controls_r() */
715 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE, 25, 8, 0, 0, JOYCODE_1_BUTTON5, JOYCODE_1_BUTTON6, 0, 0 )
716 
717 	PORT_START	/* player 2 12-way rotary control - converted in controls_r() */
718 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE | IPF_PLAYER2, 25, 8, 0, 0, JOYCODE_2_BUTTON5, JOYCODE_2_BUTTON6, 0, 0 )
719 INPUT_PORTS_END
720 
721 INPUT_PORTS_START( btlfield )
722 	ALPHA68K_PLAYER1_INPUT
723 	ALPHA68K_PLAYER2_INPUT
724 
725 	PORT_START	/* Coin input to microcontroller */
726 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
727 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
728 
729 	PORT_START	/* Service + dip */
730 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
731 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
732 
733 	/* 2 physical sets of _6_ dip switches */
734 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
735 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
736 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
737 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
738 	PORT_DIPSETTING(    0x00, "Easy" )
739 	PORT_DIPSETTING(    0x18, "Normal" )
740 	PORT_DIPSETTING(    0x10, "Difficult" )
741 	PORT_DIPNAME( 0x20, 0x20, "Language" )
742 	PORT_DIPSETTING(    0x00, "English" )
743 	PORT_DIPSETTING(    0x20, "Japanese" )
744 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
745 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
746 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
747 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
748 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
749 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
750 
751 	PORT_START /* A 6 way dip switch */
752 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
753 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
754 	PORT_DIPSETTING(    0x01, "A 2C/3C B 7C/1C" )
755 	PORT_DIPSETTING(    0x07, "A 1C/1C B 1C/1C" )
756 	PORT_DIPSETTING(    0x06, "A 1C/2C B 2C/1C" )
757 	PORT_DIPSETTING(    0x05, "A 1C/3C B 3C/1C" )
758 	PORT_DIPSETTING(    0x04, "A 1C/4C B 4C/1C" )
759 	PORT_DIPSETTING(    0x03, "A 1C/5C B 5C/1C" )
760 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
761 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
762 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
763 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
764 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
765 	PORT_DIPSETTING(    0x30, "3" )
766 	PORT_DIPSETTING(    0x20, "4" )
767 	PORT_DIPSETTING(    0x10, "5" )
768 	PORT_DIPSETTING(    0x00, "6" )
769 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
770 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
771 
772 	PORT_START	/* player 1 12-way rotary control - converted in controls_r() */
773 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE, 25, 8, 0, 0, JOYCODE_1_BUTTON5, JOYCODE_1_BUTTON6, 0, 0 )
774 
775 	PORT_START	/* player 2 12-way rotary control - converted in controls_r() */
776 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE | IPF_PLAYER2, 25, 8, 0, 0, JOYCODE_2_BUTTON5, JOYCODE_2_BUTTON6, 0, 0 )
777 INPUT_PORTS_END
778 
779 INPUT_PORTS_START( skysoldr )
780 	ALPHA68K_PLAYER1_INPUT
781 	ALPHA68K_PLAYER2_INPUT
782 
783 	PORT_START	/* Coin input to microcontroller */
784 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
785 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
786 
787 	PORT_START	/* Service + dip */
788 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
789 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
790 
791 	/* 2 physical sets of _6_ dip switches */
792 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
793 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
794 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
795 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
796 	PORT_DIPSETTING(    0x00, "Easy" )
797 	PORT_DIPSETTING(    0x18, "Normal" ) /* 18 Normal */
798 	PORT_DIPSETTING(    0x10, "Difficult" )
799 	PORT_DIPNAME( 0x20, 0x00, "Language" )
800 	PORT_DIPSETTING(    0x00, "English" )
801 	PORT_DIPSETTING(    0x20, "Japanese" )
802 	PORT_DIPNAME( 0x40, 0x40, "Manufacturer" )
803 	PORT_DIPSETTING(    0x40, "SNK" )
804 	PORT_DIPSETTING(    0x00, "Romstar" )
805 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
806 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
807 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
808 
809 	PORT_START /* A 6 way dip switch */
810 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
811 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
812 	PORT_DIPSETTING(    0x01, "A 2C/3C B 7C/1C" )
813 	PORT_DIPSETTING(    0x07, "A 1C/1C B 1C/1C" )
814 	PORT_DIPSETTING(    0x06, "A 1C/2C B 2C/1C" )
815 	PORT_DIPSETTING(    0x05, "A 1C/3C B 3C/1C" )
816 	PORT_DIPSETTING(    0x04, "A 1C/4C B 4C/1C" )
817 	PORT_DIPSETTING(    0x03, "A 1C/5C B 5C/1C" )
818 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
819 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
820 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
821 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
822 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
823 	PORT_DIPSETTING(    0x30, "3" )
824 	PORT_DIPSETTING(    0x20, "4" )
825 	PORT_DIPSETTING(    0x10, "5" )
826 	PORT_DIPSETTING(    0x00, "6" )
827 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
828 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
829 
830 	PORT_START	/* player 1 12-way rotary control */
831 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
832 
833 	PORT_START	/* player 2 12-way rotary control */
834 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
835 INPUT_PORTS_END
836 
837 INPUT_PORTS_START( goldmedl )
838 	PORT_START	/* 3 buttons per player, no joystick */
839 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
840 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
841 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
842 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
843 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
844 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2)
845 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) /* Doesn't work? */
846 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
847 
848 	PORT_START	/* 3 buttons per player, no joystick */
849 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
850 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
851 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
852 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
853 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
854 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER4 )
855 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START4 )
856 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
857 
858 	PORT_START	/* Coin input to microcontroller */
859 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
860 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
861 
862 	PORT_START	/* Service + dip */
863 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
864 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
865 
866 	/* 2 physical sets of _6_ dip switches */
867 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
868 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
869 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
870 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
871 	PORT_DIPSETTING(    0x00, "Easy" )
872 	PORT_DIPSETTING(    0x18, "Normal" )
873 	PORT_DIPSETTING(    0x10, "Difficult" )
874 	PORT_DIPNAME( 0x20, 0x00, "Language" )
875 	PORT_DIPSETTING(    0x00, "English" )
876 	PORT_DIPSETTING(    0x20, "Japanese" )
877 	PORT_DIPNAME( 0x40, 0x40, "Manufacturer" )
878 	PORT_DIPSETTING(    0x40, "SNK" )
879 	PORT_DIPSETTING(    0x00, "Romstar" )
880 	PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
881 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
882 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
883 
884 	PORT_START /* A 6 way dip switch */
885 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
886 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
887 	PORT_DIPSETTING(    0x01, "A 2C/3C B 7C/1C" )
888 	PORT_DIPSETTING(    0x07, "A 1C/1C B 1C/1C" )
889 	PORT_DIPSETTING(    0x06, "A 1C/2C B 2C/1C" )
890 	PORT_DIPSETTING(    0x05, "A 1C/3C B 3C/1C" )
891 	PORT_DIPSETTING(    0x04, "A 1C/4C B 4C/1C" )
892 	PORT_DIPSETTING(    0x03, "A 1C/5C B 5C/1C" )
893 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
894 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
895 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
896 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
897 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
898 	PORT_DIPSETTING(    0x30, "3" )
899 	PORT_DIPSETTING(    0x20, "4" )
900 	PORT_DIPSETTING(    0x10, "5" )
901 	PORT_DIPSETTING(    0x00, "6" )
902 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
903 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
904 
905 	PORT_START	/* player 1 12-way rotary control */
906 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
907 
908 	PORT_START	/* player 2 12-way rotary control */
909 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
910 INPUT_PORTS_END
911 
912 
913 INPUT_PORTS_START( skyadvnt )
914 	ALPHA68K_PLAYER1_INPUT
915 	ALPHA68K_PLAYER2_INPUT
916 
917 	PORT_START	/* Coin input to microcontroller */
918 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
919 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
920 
921 	PORT_START	/* Service + dip */
922 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
923 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
924 
925 	/* Dip 2: 6 way dip switch */
926 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
927 	PORT_DIPSETTING(    0x08, "2" )
928 	PORT_DIPSETTING(    0x0c, "3" )
929 	PORT_DIPSETTING(    0x04, "4" )
930 	PORT_DIPSETTING(    0x00, "5" )
931 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
932 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
933 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
934 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
935 	PORT_DIPSETTING(    0x40, "Easy" )
936 	PORT_DIPSETTING(    0x60, "Normal" )
937 	PORT_DIPSETTING(    0x20, "Hard" )
938 	PORT_DIPSETTING(    0x00, "Hardest" )
939 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) )
940 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
941 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
942 
943 	PORT_START /* A 6 way dip switch */
944 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
945 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
946 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
947 	PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coinage ) )
948 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
949 	PORT_DIPSETTING(    0x09, "A 2C/3C B 7C/1C" )
950 	PORT_DIPSETTING(    0x0e, "A 1C/1C B 1C/1C" )
951 	PORT_DIPSETTING(    0x0c, "A 1C/2C B 2C/1C" )
952 	PORT_DIPSETTING(    0x0a, "A 1C/3C B 3C/1C" )
953 	PORT_DIPSETTING(    0x08, "A 1C/4C B 4C/1C" )
954 	PORT_DIPSETTING(    0x04, "A 1C/5C B 5C/1C" )
955 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
956 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
957 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
958 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
959 	PORT_DIPNAME( 0x20, 0x20, "Freeze" )
960 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
961 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
962 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
963 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
964 INPUT_PORTS_END
965 
966 INPUT_PORTS_START( gangwars )
967 	PORT_START	/* Player 1 controls */
968 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
969 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
970 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
971 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
972 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
973 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
974 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
975 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
976 
977 	PORT_START	/* Player 2 controls */
978 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
979 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
980 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
981 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
982 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
983 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
984 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
985 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
986 
987 	PORT_START	/* Coin input to microcontroller */
988 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
989 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
990 
991 	PORT_START	/* Service + dip */
992 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
993 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
994 
995 	/* Dip 2: 6 way dip switch */
996 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
997 	PORT_DIPSETTING(    0x08, "2" )
998 	PORT_DIPSETTING(    0x0c, "3" )
999 	PORT_DIPSETTING(    0x04, "4" )
1000 	PORT_DIPSETTING(    0x00, "5" )
1001 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1002 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1003 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1004 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
1005 	PORT_DIPSETTING(    0x40, "Easy" )
1006 	PORT_DIPSETTING(    0x60, "Normal" )
1007 	PORT_DIPSETTING(    0x20, "Hard" )
1008 	PORT_DIPSETTING(    0x00, "Hardest" )
1009 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) )
1010 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1011 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
1012 
1013 	PORT_START /* A 6 way dip switch */
1014 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1015 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1016 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1017 	PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coinage ) )
1018 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
1019 	PORT_DIPSETTING(    0x09, "A 2C/3C B 7C/1C" )
1020 	PORT_DIPSETTING(    0x0e, "A 1C/1C B 1C/1C" )
1021 	PORT_DIPSETTING(    0x0c, "A 1C/2C B 2C/1C" )
1022 	PORT_DIPSETTING(    0x0a, "A 1C/3C B 3C/1C" )
1023 	PORT_DIPSETTING(    0x08, "A 1C/4C B 4C/1C" )
1024 	PORT_DIPSETTING(    0x04, "A 1C/5C B 5C/1C" )
1025 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
1026 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
1027 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1028 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1029 	PORT_DIPNAME( 0x20, 0x20, "Freeze" )
1030 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1031 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1032 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1033 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1034 INPUT_PORTS_END
1035 
1036 INPUT_PORTS_START( sbasebal )
1037 	PORT_START	/* Player 1 controls */
1038 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
1039 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
1040 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
1041 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
1042 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
1043 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
1044 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
1045 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1046 
1047 	PORT_START	/* Player 2 controls */
1048 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1049 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1050 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1051 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1052 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1053 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1054 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1055 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1056 
1057 	PORT_START	/* Coin input to microcontroller */
1058 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1059 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1060 
1061 	PORT_START	/* Service + dip */
1062 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
1063 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
1064 
1065 	/* Dip 2: 6 way dip switch */
1066 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1067 	PORT_DIPSETTING(    0x08, "2" )
1068 	PORT_DIPSETTING(    0x0c, "3" )
1069 	PORT_DIPSETTING(    0x04, "4" )
1070 	PORT_DIPSETTING(    0x00, "5" )
1071 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1072 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1073 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1074 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
1075 	PORT_DIPSETTING(    0x40, "Easy" )
1076 	PORT_DIPSETTING(    0x60, "Normal" )
1077 	PORT_DIPSETTING(    0x20, "Hard" )
1078 	PORT_DIPSETTING(    0x00, "Hardest" )
1079 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) )
1080 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1081 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
1082 
1083 /*
1084 
1085 	PORT_DIPNAME( 0x20, 0x00, "Language" )
1086 	PORT_DIPSETTING(    0x00, "English" )
1087 	PORT_DIPSETTING(    0x20, "Japanese" )
1088 	PORT_DIPNAME( 0x40, 0x40, "Manufacturer" )
1089 	PORT_DIPSETTING(    0x40, "SNK" )
1090 	PORT_DIPSETTING(    0x00, "Romstar" )
1091 	PORT_DIPNAME( 0x80, 0x80, "Invincibility" )
1092 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1093 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1094 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
1095 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1096 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1097 */
1098 
1099 	PORT_START /* A 6 way dip switch */
1100 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1101 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1102 	PORT_DIPNAME( 0x20, 0x20, "Freeze" )
1103 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1104 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1105 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
1106 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1107 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1108 
1109 	PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coinage ) )
1110 	PORT_DIPSETTING(    0x00, "A 3C/2C B 8C/1C" )
1111 	PORT_DIPSETTING(    0x09, "A 2C/3C B 7C/1C" )
1112 	PORT_DIPSETTING(    0x0e, "A 1C/1C B 1C/1C" )
1113 	PORT_DIPSETTING(    0x0c, "A 1C/2C B 2C/1C" )
1114 	PORT_DIPSETTING(    0x0a, "A 1C/3C B 3C/1C" )
1115 	PORT_DIPSETTING(    0x08, "A 1C/4C B 4C/1C" )
1116 	PORT_DIPSETTING(    0x04, "A 1C/5C B 5C/1C" )
1117 	PORT_DIPSETTING(    0x02, "A 1C/6C B 6C/1C" )
1118 
1119 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1120 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1121 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1122 INPUT_PORTS_END
1123 
1124 /******************************************************************************/
1125 
1126 static struct GfxLayout charlayout =
1127 {
1128 	8,8,	/* 8*8 chars */
1129 	2048,
1130 	4,		/* 4 bits per pixel  */
1131 	{ 0, 4, 0x8000*8, (0x8000*8)+4 },
1132 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1133 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1134 	16*8	/* every char takes 8 consecutive bytes */
1135 };
1136 
1137 /* You wouldn't believe how long it took me to figure this one out.. */
1138 static struct GfxLayout charlayout_V =
1139 {
1140 	8,8,
1141 	2048,
1142 	4,	/* 4 bits per pixel */
1143 	{ 0,1,2,3 },
1144   	{ 16*8+4, 16*8+0, 24*8+4, 24*8+0, 4, 0, 8*8+4, 8*8+0 },
1145 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1146 	32*8	/* every sprite takes 16 consecutive bytes */
1147 };
1148 
1149 static struct GfxLayout spritelayout =
1150 {
1151 	16,16,	/* 16*16 sprites */
1152 	4096*4,
1153 	4,		/* 4 bits per pixel */
1154 	{ 0, 0x80000*8, 0x100000*8, 0x180000*8 },
1155 	{ 16*8+7, 16*8+6, 16*8+5, 16*8+4, 16*8+3, 16*8+2, 16*8+1, 16*8+0,
1156 	  7, 6, 5, 4, 3, 2, 1, 0 },
1157     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1158 	  8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
1159 	8*32	/* every sprite takes 32 consecutive bytes */
1160 };
1161 
1162 static struct GfxLayout spritelayout_V =
1163 {
1164 	16,16,	/* 16*16 sprites */
1165 	0x5000,
1166 	4,		/* 4 bits per pixel */
1167 	{ 0, 0xa0000*8, 0x140000*8, 0x1e0000*8 },
1168 	{ 16*8+7, 16*8+6, 16*8+5, 16*8+4, 16*8+3, 16*8+2, 16*8+1, 16*8+0,
1169 	  7, 6, 5, 4, 3, 2, 1, 0 },
1170     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1171 	  8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
1172 	8*32	/* every sprite takes 32 consecutive bytes */
1173 };
1174 
1175 static struct GfxLayout paddle_layout =
1176 {
1177 	8,8,	/* 8*8 chars */
1178 	0x4000,
1179 	4,	/* 4 bits per pixel */
1180 	{
1181 //0x40000*8+4, 0x40000*8+0,4, 0,
1182 //0x40000*8+4, 4,0x40000*8+0, 0,
1183 // 4,0x40000*8+4,0,  0x40000*8+0,
1184  4,0,0x40000*8+4,  0x40000*8+0,
1185 //0x40000*8+0,0x40000*8+4,    0,4,
1186 
1187    },
1188 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1189 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1190 	16*8	/* every char takes 16 consecutive bytes */
1191 };
1192 
1193 static struct GfxLayout sting_layout1 =
1194 {
1195 	8,8,	/* 8*8 chars */
1196 	2048,
1197 	3,	/* 3 bits per pixel */
1198 	{ 4, 4+(0x8000*8), 0+(0x10000*4) },
1199 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1200 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1201 	16*8	/* every char takes 16 consecutive bytes */
1202 };
1203 
1204 static struct GfxLayout sting_layout2 =
1205 {
1206 	8,8,	/* 8*8 chars */
1207 	2048,
1208 	3,	/* 3 bits per pixel */
1209 	{ 0, 0+(0x28000*8), 4+(0x28000*8) },
1210 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1211 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1212 	16*8	/* every char takes 16 consecutive bytes */
1213 };
1214 
1215 static struct GfxLayout sting_layout3 =
1216 {
1217 	8,8,	/* 8*8 chars */
1218 	2048,
1219 	3,	/* 3 bits per pixel */
1220 	{ 0, 0+(0x10000*8), 4+(0x10000*8) },
1221 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1222 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1223 	16*8	/* every char takes 16 consecutive bytes */
1224 };
1225 
1226 static struct GfxLayout kyros_char_layout1 =
1227 {
1228 	8,8,	/* 8*8 chars */
1229 	0x8000/16,
1230 	3,	/* 3 bits per pixel */
1231 	{ 4,0x8000*8,0x8000*8+4 },
1232 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1233 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1234 	16*8	/* every char takes 16 consecutive bytes */
1235 };
1236 
1237 static struct GfxLayout kyros_char_layout2 =
1238 {
1239 	8,8,	/* 8*8 chars */
1240 	0x8000/16,
1241 	3,	/* 3 bits per pixel */
1242 	{ 0,0x10000*8,0x10000*8+4 },
1243 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
1244 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1245 	16*8	/* every char takes 16 consecutive bytes */
1246 };
1247 
1248 static struct GfxLayout kouyakyu_layout0 =
1249 {
1250 	8,8,
1251 	256,
1252 	2,	/* 2 bits per pixel */
1253 	{ 0, 4 },
1254   	{ 8*8+3, 8*8+2, 8*8+1, 8*8, 3, 2, 1, 0 },
1255 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1256 	16*8	/* every sprite takes 16 consecutive bytes */
1257 };
1258 
1259 static struct GfxLayout kouyakyu_layout1 =
1260 {
1261 	16,16,
1262 	1024,
1263 	2,
1264 	{ 0, 4, 0x10000*8 },
1265    	{ 16*8+3, 16*8+2, 16*8+1, 16*8+0, 32*8+3, 32*8+2 ,32*8+1 ,32*8+0,
1266       48*8+3 ,48*8+2 ,48*8+1 ,48*8+0, 3, 2, 1, 0
1267     },
1268 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8  },
1269 	64*8
1270 };
1271 
1272 static struct GfxLayout kouyakyu_layout2 =
1273 {
1274 	16,16,
1275 	1024,
1276 	2,
1277 	{ 0, 4, 0x10000*8+4 },
1278    	{ 16*8+3, 16*8+2, 16*8+1, 16*8+0, 32*8+3, 32*8+2 ,32*8+1 ,32*8+0,
1279       48*8+3 ,48*8+2 ,48*8+1 ,48*8+0, 3, 2, 1, 0
1280     },
1281 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8  },
1282 	64*8
1283 };
1284 
1285 /******************************************************************************/
1286 
1287 static struct GfxDecodeInfo alpha68k_II_gfxdecodeinfo[] =
1288 {
1289 	{ REGION_GFX1, 0, &charlayout,   0,  16 },
1290 	{ REGION_GFX2, 0, &spritelayout, 0, 128 },
1291 	{ -1 } /* end of array */
1292 };
1293 
1294 static struct GfxDecodeInfo alpha68k_V_gfxdecodeinfo[] =
1295 {
1296 	{ REGION_GFX1, 0, &charlayout_V,    0,  16 },
1297 	{ REGION_GFX2, 0, &spritelayout_V,  0, 256 },
1298 	{ -1 } /* end of array */
1299 };
1300 
1301 static struct GfxDecodeInfo paddle_gfxdecodeinfo[] =
1302 {
1303 	{ REGION_GFX1, 0, &paddle_layout,  0, 128 },
1304 	{ -1 } /* end of array */
1305 };
1306 
1307 static struct GfxDecodeInfo sstingry_gfxdecodeinfo[] =
1308 {
1309 	{ REGION_GFX1, 0x00000, &sting_layout1,  0, 256 },
1310  	{ REGION_GFX1, 0x00000, &sting_layout2,  0, 256 },
1311 	{ REGION_GFX1, 0x10000, &sting_layout1,  0, 256 },
1312 	{ REGION_GFX1, 0x10000, &sting_layout3,  0, 256 },
1313 	{ -1 } /* end of array */
1314 };
1315 
1316 static struct GfxDecodeInfo kyros_gfxdecodeinfo[] =
1317 {
1318 	{ REGION_GFX1, 0x00000, &kyros_char_layout1,  0, 32 },
1319 	{ REGION_GFX1, 0x00000, &kyros_char_layout2,  0, 32 },
1320 	{ REGION_GFX1, 0x18000, &kyros_char_layout1,  0, 32 },
1321 	{ REGION_GFX1, 0x18000, &kyros_char_layout2,  0, 32 },
1322 	{ REGION_GFX1, 0x30000, &kyros_char_layout1,  0, 32 },
1323 	{ REGION_GFX1, 0x30000, &kyros_char_layout2,  0, 32 },
1324 	{ REGION_GFX1, 0x48000, &kyros_char_layout1,  0, 32 },
1325 	{ REGION_GFX1, 0x48000, &kyros_char_layout2,  0, 32 },
1326 	{ -1 } /* end of array */
1327 };
1328 
1329 static struct GfxDecodeInfo kouyakyu_gfxdecodeinfo[] =
1330 {
1331 	{ REGION_GFX1, 0x000000, &kouyakyu_layout0,  0, 256 },
1332 	{ REGION_GFX2, 0x000000, &kouyakyu_layout1,  0, 256 },
1333  	{ REGION_GFX2, 0x000000, &kouyakyu_layout2,  0, 256 },
1334 	{ -1 } /* end of array */
1335 };
1336 
1337 /******************************************************************************/
1338 
1339 static struct YM2413interface ym2413_interface=
1340 {
1341     1,
1342     8000000,	/* ??? */
1343     { 50 },
1344 };
1345 
1346 static struct YM2203interface ym2203_interface =
1347 {
1348 	1,
1349 	3000000,	/* ??? */
1350 	{ YM2203_VOL(65,65) },
1351 	{ 0 },
1352 	{ 0 },
1353 	{ 0 },
1354 	{ 0 },
1355 	{ 0 }
1356 };
1357 
1358 static struct AY8910interface ay8910_interface =
1359 {
1360 	2, /* 2 chips */
1361 	1500000,
1362 	{ 60, 60 },
1363 	{ 0 },
1364 	{ 0 },
1365 	{ 0 },
1366 	{ 0 }
1367 };
1368 
1369 static struct DACinterface dac_interface =
1370 {
1371 	1,
1372 	{ 100 }
1373 };
1374 
kyros_interrupt(void)1375 static int kyros_interrupt(void)
1376 {
1377 	if (cpu_getiloops() == 0)
1378 		return 1;
1379 	return 2;
1380 }
1381 
1382 /******************************************************************************/
1383 
1384 
1385 static struct MachineDriver machine_driver_kouyakyu =
1386 {
1387 	{
1388  		{
1389 			CPU_M68000,
1390 			6000000, /* 12MHz/2? */
1391 			kouyakyu_readmem,kouyakyu_writemem,0,0,
1392 			kyros_interrupt,2
1393 		},
1394 #if 0
1395 		{
1396 			CPU_Z80 | CPU_AUDIO_CPU,
1397 			3579545, /* ? */
1398 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1399 			interrupt,1
1400 		}
1401 #endif
1402 	},
1403 	60, DEFAULT_60HZ_VBLANK_DURATION,
1404 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1405 	0,
1406 
1407 	/* video hardware */
1408   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1409  // 	64*8, 64*8, { 0*8, 64*8-1, 2*8, 64*8-1 },
1410 
1411 	kouyakyu_gfxdecodeinfo,
1412 	256, 256,
1413 	0,
1414 
1415 	VIDEO_TYPE_RASTER,
1416 	0,
1417 	kouyakyu_vh_start,
1418 	0,
1419 	kouyakyu_vh_screenrefresh,
1420 
1421 	/* sound hardware */
1422 	0,0,0,0,
1423 	{
1424 		{
1425 			SOUND_YM2203,
1426 			&ym2203_interface
1427 		}
1428 	}
1429 };
1430 
1431 static struct MachineDriver machine_driver_kyros =
1432 {
1433 	/* basic machine hardware */
1434 	{
1435  		{
1436 			CPU_M68000,
1437 			6000000, /* 24MHz/4? */
1438 			kyros_readmem,kyros_writemem,0,0,
1439 			kyros_interrupt,2
1440 		},
1441 		{
1442 			CPU_Z80 | CPU_AUDIO_CPU,
1443 			3579545, /* ? */
1444 			kyros_sound_readmem,kyros_sound_writemem,0,kyros_sound_writeport,
1445 			nmi_interrupt,8
1446 		}
1447 	},
1448 	60, DEFAULT_60HZ_VBLANK_DURATION,
1449 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1450 	0,
1451 
1452 	/* video hardware */
1453   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1454 
1455 	kyros_gfxdecodeinfo,
1456 	256, 256,
1457 	kyros_vh_convert_color_prom,
1458 
1459 	VIDEO_TYPE_RASTER,
1460 	0,
1461 	0,
1462 	0,
1463 	kyros_vh_screenrefresh,
1464 
1465 	/* sound hardware */
1466 	0,0,0,0,
1467 	{
1468 		{
1469 			SOUND_YM2203,
1470 			&ym2203_interface
1471 		},
1472 		{
1473 			SOUND_AY8910,
1474 			&ay8910_interface
1475 		}
1476 	}
1477 };
1478 
1479 static struct MachineDriver machine_driver_sstingry =
1480 {
1481 	/* basic machine hardware */
1482 	{
1483  		{
1484 			CPU_M68000,
1485 			6000000, /* 24MHz/4? */
1486 			kyros_readmem,kyros_writemem,0,0,
1487 			kyros_interrupt,2
1488 		},
1489 		{
1490 			CPU_Z80 | CPU_AUDIO_CPU,
1491 			3579545, /* ? */
1492 			sstingry_sound_readmem,sstingry_sound_writemem,0,kyros_sound_writeport,
1493 			nmi_interrupt,32
1494 		}
1495 	},
1496 	60, DEFAULT_60HZ_VBLANK_DURATION,
1497 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1498 	0,
1499 
1500 	/* video hardware */
1501   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1502 
1503 	sstingry_gfxdecodeinfo,
1504 	256, 256,
1505 	alpha68k_I_vh_convert_color_prom,
1506 
1507 	VIDEO_TYPE_RASTER,
1508 	0,
1509 	0,
1510 	0,
1511 	sstingry_vh_screenrefresh,
1512 
1513 	/* sound hardware */
1514 	0,0,0,0,
1515 	{
1516 		{
1517 			SOUND_YM2203,
1518 			&ym2203_interface
1519 		},
1520 		{
1521 			SOUND_AY8910,
1522 			&ay8910_interface
1523 		}
1524 	}
1525 };
1526 
1527 static struct MachineDriver machine_driver_alpha68k_I =
1528 {
1529 	/* basic machine hardware */
1530 	{
1531  		{
1532 			CPU_M68000,
1533 			6000000, /* 24MHz/4? */
1534 			alpha68k_I_readmem,alpha68k_I_writemem,0,0,
1535 			m68_level1_irq,1 /* VBL */
1536 		},
1537 		{
1538 			CPU_Z80 | CPU_AUDIO_CPU,
1539 			3579545, /* ? */
1540 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1541 			interrupt,1
1542 		}
1543 	},
1544 	60, DEFAULT_60HZ_VBLANK_DURATION,
1545 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1546 	0,
1547 
1548 	/* video hardware */
1549   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1550 
1551 	paddle_gfxdecodeinfo,
1552 	256, 256,
1553 	alpha68k_I_vh_convert_color_prom,
1554 
1555 	VIDEO_TYPE_RASTER,
1556 	0,
1557 	0,
1558 	0,
1559 	alpha68k_I_vh_screenrefresh,
1560 
1561 	/* sound hardware */
1562 	0,0,0,0,
1563 	{
1564 		{
1565 			SOUND_YM2203,
1566 			&ym2203_interface
1567 		}
1568 	}
1569 };
1570 
1571 static struct MachineDriver machine_driver_alpha68k_II =
1572 {
1573 	/* basic machine hardware */
1574 	{
1575 		{
1576 			CPU_M68000,
1577 			8000000, /* Correct */
1578 			alpha68k_II_readmem,alpha68k_II_writemem,0,0,
1579 			m68_level3_irq,1 /* VBL */
1580 		},
1581 		{
1582 			CPU_Z80 | CPU_AUDIO_CPU,
1583 			//3579545, /* Correct?? */
1584 			3579545*2, /* Unlikely but needed to stop nested NMI's */
1585 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1586 			nmi_interrupt,116
1587 		}
1588 	},
1589 	60, DEFAULT_60HZ_VBLANK_DURATION,
1590 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1591 	0,
1592 
1593 	/* video hardware */
1594   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1595 
1596 	alpha68k_II_gfxdecodeinfo,
1597 	2048, 2048,
1598 	0,
1599 
1600 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1601 	0,
1602 	alpha68k_vh_start,
1603 	0,
1604 	alpha68k_II_vh_screenrefresh,
1605 
1606 	/* sound hardware */
1607 	0,0,0,0,
1608 	{
1609 		{
1610 			SOUND_YM2203,
1611 			&ym2203_interface
1612 		},
1613 		{
1614 			SOUND_YM2413,
1615 			&ym2413_interface
1616 		},
1617 		{
1618 			SOUND_DAC,
1619 			&dac_interface
1620 		}
1621 	}
1622 };
1623 
1624 static struct MachineDriver machine_driver_alpha68k_V =
1625 {
1626 	/* basic machine hardware */
1627 	{
1628  		{
1629 			CPU_M68000,
1630 			10000000, /* ? */
1631 			alpha68k_V_readmem,alpha68k_V_writemem,0,0,
1632 			m68_level3_irq,1 /* VBL */
1633 		},
1634 		{
1635 			CPU_Z80 | CPU_AUDIO_CPU,
1636 //			3579545,
1637 			3579545*2, /* Unlikely but needed to stop nested NMI's */
1638 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1639 			nmi_interrupt,148
1640 		}
1641 	},
1642 	60, DEFAULT_60HZ_VBLANK_DURATION,
1643 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1644 	0,
1645 
1646 	/* video hardware */
1647   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1648 
1649 	alpha68k_V_gfxdecodeinfo,
1650 	4096, 4096,
1651 	0,
1652 
1653 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1654 	0,
1655 	alpha68k_vh_start,
1656 	0,
1657 	alpha68k_V_vh_screenrefresh,
1658 
1659 	/* sound hardware */
1660 	0,0,0,0,
1661 	{
1662 		{
1663 			SOUND_YM2203,
1664 			&ym2203_interface
1665 		},
1666 		{
1667 			SOUND_YM2413,
1668 			&ym2413_interface
1669 		},
1670 		{
1671 			SOUND_DAC,
1672 			&dac_interface
1673 		}
1674 	}
1675 };
1676 
1677 static struct MachineDriver machine_driver_alpha68k_V_sb =
1678 {
1679 	/* basic machine hardware */
1680 	{
1681  		{
1682 			CPU_M68000,
1683 			10000000, /* ? */
1684 			alpha68k_V_readmem,alpha68k_V_writemem,0,0,
1685 			m68_level3_irq,1 /* VBL */
1686 		},
1687 		{
1688 			CPU_Z80 | CPU_AUDIO_CPU,
1689 //			3579545,
1690 			3579545*2, /* Unlikely but needed to stop nested NMI's */
1691 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
1692 			nmi_interrupt,112
1693 		}
1694 	},
1695 	60, DEFAULT_60HZ_VBLANK_DURATION,
1696 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
1697 	0,
1698 
1699 	/* video hardware */
1700   	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
1701 
1702 	alpha68k_V_gfxdecodeinfo,
1703 	4096, 4096,
1704 	0,
1705 
1706 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1707 	0,
1708 	alpha68k_vh_start,
1709 	0,
1710 	alpha68k_V_sb_vh_screenrefresh,
1711 
1712 	/* sound hardware */
1713 	0,0,0,0,
1714 	{
1715 		{
1716 			SOUND_YM2203,
1717 			&ym2203_interface
1718 		},
1719 		{
1720 			SOUND_YM2413,
1721 			&ym2413_interface
1722 		},
1723 		{
1724 			SOUND_DAC,
1725 			&dac_interface
1726 		}
1727 	}
1728 };
1729 
1730 /******************************************************************************/
1731 
1732 ROM_START( kouyakyu )
1733 	ROM_REGION( 0x10000, REGION_CPU1 ) /* 68000 code */
1734 	ROM_LOAD_ODD ( "epr-6704.bin",  0x00000, 0x2000, 0xc7ac2292 )
1735 	ROM_LOAD_EVEN( "epr-6707.bin",  0x00000, 0x2000, 0x9cb2962e )
1736 	ROM_LOAD_ODD ( "epr-6705.bin",  0x04000, 0x2000, 0x985327cb )
1737 	ROM_LOAD_EVEN( "epr-6708.bin",  0x04000, 0x2000, 0xf8863dc5 )
1738 	ROM_LOAD_ODD ( "epr-6706.bin",  0x08000, 0x2000, 0x053a74f6 )
1739 	ROM_LOAD_EVEN( "epr-6709.bin",  0x08000, 0x2000, 0xf41cb58c )
1740 
1741 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1742 	ROM_LOAD( "epr-6710.bin", 0x000000, 0x1000, 0xaccda190 ) /* Chars */
1743 
1744 	ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1745 	ROM_LOAD( "epr-6686.bin", 0x000000, 0x2000, 0x3d9e516f ) /* Tiles plane 1 & 2 */
1746 	ROM_LOAD( "epr-6687.bin", 0x002000, 0x2000, 0x9c1f49df )
1747 	ROM_LOAD( "epr-6688.bin", 0x004000, 0x2000, 0xceb76c5b )
1748 	ROM_LOAD( "epr-6689.bin", 0x006000, 0x2000, 0x53bf7587 )
1749 	ROM_LOAD( "epr-6690.bin", 0x008000, 0x2000, 0xa142a11d )
1750 	ROM_LOAD( "epr-6691.bin", 0x00a000, 0x2000, 0xb640568c )
1751 	ROM_LOAD( "epr-6692.bin", 0x00c000, 0x2000, 0xb91d8172 )
1752 	ROM_LOAD( "epr-6693.bin", 0x00e000, 0x2000, 0x874e3acc )
1753 
1754 	ROM_LOAD( "epr-6694.bin", 0x010000, 0x2000, 0x51a7345e ) /* Tiles plane 3 */
1755 	ROM_LOAD( "epr-6695.bin", 0x012000, 0x2000, 0x22bea465 )
1756 	ROM_LOAD( "epr-6696.bin", 0x014000, 0x2000, 0x0625f48e )
1757 	ROM_LOAD( "epr-6697.bin", 0x016000, 0x2000, 0xf18afabe )
1758 
1759 	ROM_REGION( 0x10000, REGION_CPU2 )      /* sound cpu */
1760 	ROM_LOAD( "epr-6698.bin", 0x000000, 0x2000, 0x7adfd1ff )
1761 	ROM_LOAD( "epr-6699.bin", 0x002000, 0x2000, 0x9bfa4a72 )
1762 	ROM_LOAD( "epr-6700.bin", 0x004000, 0x2000, 0xee579266 )
1763 	ROM_LOAD( "epr-6701.bin", 0x006000, 0x2000, 0x3c83588a )
1764 	ROM_LOAD( "epr-6702.bin", 0x008000, 0x2000, 0x27ddf031 )
1765 	ROM_LOAD( "epr-6703.bin", 0x00a000, 0x2000, 0xfbff3a86 )
1766 
1767 	ROM_REGION( 0x0420, REGION_PROMS )
1768 	ROM_LOAD( "pr6627.bpr",  0x000000, 0x100, 0x5ec5480d )
1769 	ROM_LOAD( "pr6628.bpr",  0x000100, 0x100, 0x8af247a4 )
1770 	ROM_LOAD( "pr6629.bpr",  0x000200, 0x100, 0x29c7a393 )
1771 	ROM_LOAD( "pr6630a.bpr", 0x000300, 0x100, 0xd6e202da ) /* Same as pr6630b,c,d */
1772 	ROM_LOAD( "pr.bpr",      0x000400, 0x020, 0x33b98466 )
1773 ROM_END
1774 
ROM_START(sstingry)1775 ROM_START( sstingry )
1776 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 68000 code */
1777 	ROM_LOAD_EVEN( "ss_05.rom",  0x0000,  0x4000, 0xbfb28d53 )
1778 	ROM_LOAD_ODD ( "ss_07.rom",  0x0000,  0x4000, 0xeb1b65c5 )
1779 	ROM_LOAD_EVEN( "ss_04.rom",  0x8000,  0x4000, 0x2e477a79 )
1780 	ROM_LOAD_ODD ( "ss_06.rom",  0x8000,  0x4000, 0x597620cb )
1781 
1782 	ROM_REGION( 0x10000, REGION_CPU2 )      /* sound cpu */
1783 	ROM_LOAD( "ss_01.rom",       0x0000,  0x4000, 0xfef09a92 )
1784 	ROM_LOAD( "ss_02.rom",       0x4000,  0x4000, 0xab4e8c01 )
1785 
1786 	ROM_REGION( 0x60000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1787 	ROM_LOAD( "ss_12.rom",       0x00000, 0x4000, 0x74caa9e9 )
1788 	ROM_LOAD( "ss_08.rom",       0x08000, 0x4000, 0x32368925 )
1789 	ROM_LOAD( "ss_13.rom",       0x10000, 0x4000, 0x13da6203 )
1790 	ROM_LOAD( "ss_10.rom",       0x18000, 0x4000, 0x2903234a )
1791 	ROM_LOAD( "ss_11.rom",       0x20000, 0x4000, 0xd134302e )
1792 	ROM_LOAD( "ss_09.rom",       0x28000, 0x4000, 0x6f9d938a )
1793 
1794 	ROM_REGION( 0x0300, REGION_PROMS )
1795 	ROM_LOAD( "ic92",            0x0000, 0x0100, 0xe7ce1179 )
1796 	ROM_LOAD( "ic91",            0x0100, 0x0100, 0xc3965079 )
1797 	ROM_LOAD( "ic93",            0x0200, 0x0100, 0x9af8a375 )
1798 ROM_END
1799 
1800 ROM_START( kyros )
1801 	ROM_REGION( 0x20000, REGION_CPU1 )
1802 	ROM_LOAD_EVEN( "2.10c", 0x00000,  0x4000, 0x4bd030b1 )
1803 	ROM_CONTINUE (          0x10000, 0x4000 | ROMFLAG_ALTERNATE )
1804 	ROM_LOAD_ODD ( "1.13c", 0x00000,  0x4000, 0x75cfbc5e )
1805 	ROM_CONTINUE (          0x10001, 0x4000 | ROMFLAG_ALTERNATE )
1806 	ROM_LOAD_EVEN( "4.10b", 0x08000,  0x4000, 0xbe2626c2 )
1807 	ROM_CONTINUE (          0x18000, 0x4000 | ROMFLAG_ALTERNATE )
1808 	ROM_LOAD_ODD ( "3.13b", 0x08001,  0x4000, 0xfb25e71a )
1809 	ROM_CONTINUE (          0x18001, 0x4000 | ROMFLAG_ALTERNATE )
1810 
1811 	ROM_REGION( 0x20000, REGION_CPU2 )	/* Sound CPU */
1812 	ROM_LOAD( "2s.1f",      0x00000, 0x4000, 0x800ceb27 )
1813 	ROM_LOAD( "1s.1d",      0x10000, 0x8000, 0x87d3e719 ) /* todo */
1814 	ROM_LOAD( "0.1t",       0x18000, 0x2000, 0x5d0acb4c ) /* todo */
1815 
1816 	ROM_REGION( 0x60000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1817 	ROM_LOAD( "8.9pr",      0x00000, 0x8000, 0xc5290944 )
1818 	ROM_LOAD( "11.11m",     0x08000, 0x8000, 0xfbd44f1e )
1819 	ROM_LOAD( "12.11n",		0x10000, 0x8000, 0x10fed501 )
1820 	ROM_LOAD( "9.9s",		0x18000, 0x8000, 0xdd40ca33 )
1821 	ROM_LOAD( "13.11p",		0x20000, 0x8000, 0xe6a02030 )
1822 	ROM_LOAD( "14.11r",		0x28000, 0x8000, 0x722ad23a )
1823 	ROM_LOAD( "15.3t",		0x30000, 0x8000, 0x045fdda4 )
1824 	ROM_LOAD( "17.7t",		0x38000, 0x8000, 0x7618ec00 )
1825 	ROM_LOAD( "18.9t",		0x40000, 0x8000, 0x0ee74171 )
1826 	ROM_LOAD( "16.5t",		0x48000, 0x8000, 0x2cf14824 )
1827 	ROM_LOAD( "19.11t",		0x50000, 0x8000, 0x4f336306 )
1828 	ROM_LOAD( "20.13t",		0x58000, 0x8000, 0xa165d06b )
1829 
1830 	ROM_REGION( 0x0500, REGION_PROMS )
1831 	ROM_LOAD( "mb7114l.5r", 0x000, 0x100, 0x3628bf36 )
1832 	ROM_LOAD( "mb7114l.4r", 0x100, 0x100, 0x850704e4 )
1833 	ROM_LOAD( "mb7114l.6r", 0x200, 0x100, 0xa54f60d7 )
1834 	ROM_LOAD( "mb7114l.5p", 0x300, 0x100, 0x1cc53765 )
1835 	ROM_LOAD( "mb7114l.6p", 0x400, 0x100, 0xb0d6971f )
1836 ROM_END
1837 
1838 ROM_START( paddlema )
1839 	ROM_REGION( 0x40000, REGION_CPU1 )
1840 	ROM_LOAD_EVEN( "padlem.6g",  0x00000, 0x10000, 0xc227a6e8 )
1841 	ROM_LOAD_ODD ( "padlem.3g",  0x00000, 0x10000, 0xf11a21aa )
1842 	ROM_LOAD_EVEN( "padlem.6h",  0x20000, 0x10000, 0x8897555f )
1843 	ROM_LOAD_ODD ( "padlem.3h",  0x20000, 0x10000, 0xf0fe9b9d )
1844 
1845 	ROM_REGION( 0x10000, REGION_CPU2 )	/* Sound CPU */
1846 	ROM_LOAD( "padlem.18c", 0x000000, 0x10000, 0x9269778d )
1847 
1848 	ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1849 	ROM_LOAD( "padlem.16m",      0x00000, 0x10000, 0x0984fb4d )
1850 	ROM_LOAD( "padlem.16n",      0x10000, 0x10000, 0x4249e047 )
1851 	ROM_LOAD( "padlem.13m",      0x20000, 0x10000, 0xfd9dbc27 )
1852 	ROM_LOAD( "padlem.13n",      0x30000, 0x10000, 0x1d460486 )
1853 	ROM_LOAD( "padlem.9m",       0x40000, 0x10000, 0x4ee4970d )
1854 	ROM_LOAD( "padlem.9n",       0x50000, 0x10000, 0xa1756f15 )
1855 	ROM_LOAD( "padlem.6m",       0x60000, 0x10000, 0x3f47910c )
1856 	ROM_LOAD( "padlem.6n",       0x70000, 0x10000, 0xfe337655 )
1857 
1858 	ROM_REGION( 0x8000, REGION_SOUND1 )	/* ADPCM samples? */
1859 	ROM_LOAD( "padlem.18n",      0x0000,  0x8000,  0x06506200 )
1860 
1861 	ROM_REGION( 0x0300, REGION_PROMS )
1862 	ROM_LOAD( "padlem.a",        0x0000,  0x0100,  0xcae6bcd6 )
1863 	ROM_LOAD( "padlem.b",        0x0100,  0x0100,  0xb6df8dcb )
1864 	ROM_LOAD( "padlem.c",        0x0200,  0x0100,  0x39ca9b86 )
1865 ROM_END
1866 
1867 ROM_START( timesold )
1868 	ROM_REGION( 0x40000, REGION_CPU1 )
1869 	ROM_LOAD_EVEN( "bf.3",       0x00000,  0x10000, 0xa491e533 )
1870 	ROM_LOAD_ODD ( "bf.4",       0x00000,  0x10000, 0x34ebaccc )
1871 	ROM_LOAD_EVEN( "bf.1",       0x20000,  0x10000, 0x158f4cb3 )
1872 	ROM_LOAD_ODD ( "bf.2",       0x20000,  0x10000, 0xaf01a718 )
1873 
1874 	ROM_REGION( 0x80000, REGION_CPU2 )	/* Sound CPU */
1875 	ROM_LOAD( "bf.7",            0x00000,  0x08000, 0xf8b293b5 )
1876 	ROM_CONTINUE(                0x18000,  0x08000 )
1877 	ROM_LOAD( "bf.8",            0x30000,  0x10000, 0x8a43497b )
1878 	ROM_LOAD( "bf.9",            0x50000,  0x10000, 0x1408416f )
1879 
1880 	ROM_REGION( 0x010000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
1881 	ROM_LOAD( "bf.5",            0x00000,  0x08000, 0x3cec2f55 )
1882 	ROM_LOAD( "bf.6",            0x08000,  0x08000, 0x086a364d )
1883 
1884 	ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
1885 	ROM_LOAD( "bf.10",           0x000000, 0x20000, 0x613313ba )
1886 	ROM_LOAD( "bf.14",           0x020000, 0x20000, 0xefda5c45 )
1887 	ROM_LOAD( "bf.18",           0x040000, 0x20000, 0xe886146a )
1888 	ROM_LOAD( "bf.11",           0x080000, 0x20000, 0x92b42eba )
1889 	ROM_LOAD( "bf.15",           0x0a0000, 0x20000, 0xba3b9f5a )
1890 	ROM_LOAD( "bf.19",           0x0c0000, 0x20000, 0x8994bf10 )
1891 	ROM_LOAD( "bf.12",           0x100000, 0x20000, 0x7ca8bb32 )
1892 	ROM_LOAD( "bf.16",           0x120000, 0x20000, 0x2aa74125 )
1893 	ROM_LOAD( "bf.20",           0x140000, 0x20000, 0xbab6a7c5 )
1894 	ROM_LOAD( "bf.13",           0x180000, 0x20000, 0x56a3a26a )
1895 	ROM_LOAD( "bf.17",           0x1a0000, 0x20000, 0x6b37d048 )
1896 	ROM_LOAD( "bf.21",           0x1c0000, 0x20000, 0xbc3b3944 )
1897 ROM_END
1898 
1899 ROM_START( timesol1 )
1900 	ROM_REGION( 0x40000, REGION_CPU1 )
1901 	ROM_LOAD_EVEN( "3",          0x00000,  0x10000, 0xbc069a29 )
1902 	ROM_LOAD_ODD ( "4",          0x00000,  0x10000, 0xac7dca56 )
1903 	ROM_LOAD_EVEN( "bf.1",       0x20000,  0x10000, 0x158f4cb3 )
1904 	ROM_LOAD_ODD ( "bf.2",       0x20000,  0x10000, 0xaf01a718 )
1905 
1906 	ROM_REGION( 0x80000, REGION_CPU2 )	/* Sound CPU */
1907 	ROM_LOAD( "bf.7",            0x00000,  0x08000, 0xf8b293b5 )
1908 	ROM_CONTINUE(                0x18000,  0x08000 )
1909 	ROM_LOAD( "bf.8",            0x30000,  0x10000, 0x8a43497b )
1910 	ROM_LOAD( "bf.9",            0x50000,  0x10000, 0x1408416f )
1911 
1912 	ROM_REGION( 0x010000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
1913 	ROM_LOAD( "bf.5",            0x00000,  0x08000, 0x3cec2f55 )
1914 	ROM_LOAD( "bf.6",            0x08000,  0x08000, 0x086a364d )
1915 
1916 	ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
1917 	ROM_LOAD( "bf.10",           0x000000, 0x20000, 0x613313ba )
1918 	ROM_LOAD( "bf.14",           0x020000, 0x20000, 0xefda5c45 )
1919 	ROM_LOAD( "bf.18",           0x040000, 0x20000, 0xe886146a )
1920 	ROM_LOAD( "bf.11",           0x080000, 0x20000, 0x92b42eba )
1921 	ROM_LOAD( "bf.15",           0x0a0000, 0x20000, 0xba3b9f5a )
1922 	ROM_LOAD( "bf.19",           0x0c0000, 0x20000, 0x8994bf10 )
1923 	ROM_LOAD( "bf.12",           0x100000, 0x20000, 0x7ca8bb32 )
1924 	ROM_LOAD( "bf.16",           0x120000, 0x20000, 0x2aa74125 )
1925 	ROM_LOAD( "bf.20",           0x140000, 0x20000, 0xbab6a7c5 )
1926 	ROM_LOAD( "bf.13",           0x180000, 0x20000, 0x56a3a26a )
1927 	ROM_LOAD( "bf.17",           0x1a0000, 0x20000, 0x6b37d048 )
1928 	ROM_LOAD( "bf.21",           0x1c0000, 0x20000, 0xbc3b3944 )
1929 ROM_END
1930 
1931 ROM_START( btlfield )
1932 	ROM_REGION( 0x40000, REGION_CPU1 )
1933 	ROM_LOAD_EVEN( "bfv1_03.bin", 0x00000, 0x10000, 0x8720af0d )
1934 	ROM_LOAD_ODD ( "bfv1_04.bin", 0x00000, 0x10000, 0x7dcccbe6 )
1935 	ROM_LOAD_EVEN( "bf.1",        0x20000, 0x10000, 0x158f4cb3 )
1936 	ROM_LOAD_ODD ( "bf.2",        0x20000, 0x10000, 0xaf01a718 )
1937 
1938 	ROM_REGION( 0x80000, REGION_CPU2 )	/* Sound CPU */
1939 	ROM_LOAD( "bf.7",            0x00000,  0x08000, 0xf8b293b5 )
1940 	ROM_CONTINUE(                0x18000,  0x08000 )
1941 	ROM_LOAD( "bf.8",            0x30000,  0x10000, 0x8a43497b )
1942 	ROM_LOAD( "bf.9",            0x50000,  0x10000, 0x1408416f )
1943 
1944 	ROM_REGION( 0x010000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
1945 	ROM_LOAD( "bfv1_05.bin",     0x00000,  0x08000, 0xbe269dbf )
1946 	ROM_LOAD( "bfv1_06.bin",     0x08000,  0x08000, 0x022b9de9 )
1947 
1948 	ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
1949 	ROM_LOAD( "bf.10",           0x000000, 0x20000, 0x613313ba )
1950 	ROM_LOAD( "bf.14",           0x020000, 0x20000, 0xefda5c45 )
1951 	ROM_LOAD( "bf.18",           0x040000, 0x20000, 0xe886146a )
1952 	ROM_LOAD( "bf.11",           0x080000, 0x20000, 0x92b42eba )
1953 	ROM_LOAD( "bf.15",           0x0a0000, 0x20000, 0xba3b9f5a )
1954 	ROM_LOAD( "bf.19",           0x0c0000, 0x20000, 0x8994bf10 )
1955 	ROM_LOAD( "bf.12",           0x100000, 0x20000, 0x7ca8bb32 )
1956 	ROM_LOAD( "bf.16",           0x120000, 0x20000, 0x2aa74125 )
1957 	ROM_LOAD( "bf.20",           0x140000, 0x20000, 0xbab6a7c5 )
1958 	ROM_LOAD( "bf.13",           0x180000, 0x20000, 0x56a3a26a )
1959 	ROM_LOAD( "bf.17",           0x1a0000, 0x20000, 0x6b37d048 )
1960 	ROM_LOAD( "bf.21",           0x1c0000, 0x20000, 0xbc3b3944 )
1961 ROM_END
1962 
1963 ROM_START( skysoldr )
1964 	ROM_REGION( 0x80000, REGION_CPU1 )
1965 	ROM_LOAD_EVEN( "ss.3",       0x00000, 0x10000, 0x7b88aa2e )
1966 	ROM_CONTINUE ( 0x40000,      0x10000 | ROMFLAG_ALTERNATE )
1967 	ROM_LOAD_ODD ( "ss.4",       0x00000, 0x10000, 0xf0283d43 )
1968 	ROM_CONTINUE ( 0x40001,      0x10000 | ROMFLAG_ALTERNATE )
1969 	ROM_LOAD_EVEN( "ss.1",       0x20000, 0x10000, 0x20e9dbc7 )
1970 	ROM_CONTINUE ( 0x60000,      0x10000 | ROMFLAG_ALTERNATE )
1971 	ROM_LOAD_ODD ( "ss.2",       0x20000, 0x10000, 0x486f3432 )
1972 	ROM_CONTINUE ( 0x60001,      0x10000 | ROMFLAG_ALTERNATE )
1973 
1974 	ROM_REGION( 0x80000, REGION_CPU2 )	/* Sound CPU */
1975 	ROM_LOAD( "ss.7",            0x00000, 0x08000, 0xb711fad4 )
1976 	ROM_CONTINUE(                0x18000, 0x08000 )
1977 	ROM_LOAD( "ss.8",            0x30000, 0x10000, 0xe5cf7b37 )
1978 	ROM_LOAD( "ss.9",            0x50000, 0x10000, 0x76124ca2 )
1979 
1980 	ROM_REGION( 0x010000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
1981 	ROM_LOAD( "ss.5",            0x00000, 0x08000, 0x928ba287 )
1982 	ROM_LOAD( "ss.6",            0x08000, 0x08000, 0x93b30b55 )
1983 
1984 	ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
1985 	ROM_LOAD( "ss.10",          0x000000, 0x20000, 0xe48c1623 )
1986 	ROM_LOAD( "ss.14",			0x020000, 0x20000, 0x190c8704 )
1987 	ROM_LOAD( "ss.18",			0x040000, 0x20000, 0xcb6ff33a )
1988 	ROM_LOAD( "ss.22",			0x060000, 0x20000, 0xe69b4485 )
1989 	ROM_LOAD( "ss.11",			0x080000, 0x20000, 0x6c63e9c5 )
1990 	ROM_LOAD( "ss.15",			0x0a0000, 0x20000, 0x55f71ab1 )
1991 	ROM_LOAD( "ss.19",			0x0c0000, 0x20000, 0x312a21f5 )
1992 	ROM_LOAD( "ss.23",			0x0e0000, 0x20000, 0x923c19c2 )
1993 	ROM_LOAD( "ss.12",			0x100000, 0x20000, 0x63bb4e89 )
1994 	ROM_LOAD( "ss.16",			0x120000, 0x20000, 0x138179f7 )
1995 	ROM_LOAD( "ss.20",			0x140000, 0x20000, 0x268cc7b4 )
1996 	ROM_LOAD( "ss.24",			0x160000, 0x20000, 0xf63b8417 )
1997 	ROM_LOAD( "ss.13",			0x180000, 0x20000, 0x3506c06b )
1998 	ROM_LOAD( "ss.17",			0x1a0000, 0x20000, 0xa7f524e0 )
1999 	ROM_LOAD( "ss.21",			0x1c0000, 0x20000, 0xcb7bf5fe )
2000 	ROM_LOAD( "ss.25",			0x1e0000, 0x20000, 0x65138016 )
2001 
2002 	ROM_REGION( 0x80000, REGION_USER1 ) /* Reload the code here for upper bank */
2003 	ROM_LOAD_EVEN( "ss.3",      0x00000, 0x10000, 0x7b88aa2e )
2004 	ROM_CONTINUE ( 0x40000,     0x10000 | ROMFLAG_ALTERNATE )
2005 	ROM_LOAD_ODD ( "ss.4",      0x00000, 0x10000, 0xf0283d43 )
2006 	ROM_CONTINUE ( 0x40001,     0x10000 | ROMFLAG_ALTERNATE )
2007 	ROM_LOAD_EVEN( "ss.1",      0x20000, 0x10000, 0x20e9dbc7 )
2008 	ROM_CONTINUE ( 0x60000,     0x10000 | ROMFLAG_ALTERNATE )
2009 	ROM_LOAD_ODD ( "ss.2",      0x20000, 0x10000, 0x486f3432 )
2010 	ROM_CONTINUE ( 0x60001,     0x10000 | ROMFLAG_ALTERNATE )
2011 ROM_END
2012 
2013 ROM_START( goldmedl )
2014 	ROM_REGION( 0x40000, REGION_CPU1 )
2015 	ROM_LOAD_EVEN( "gm.3",      0x00000,  0x10000, 0xddf0113c )
2016 	ROM_LOAD_ODD ( "gm.4",      0x00000,  0x10000, 0x16db4326 )
2017 	ROM_LOAD_EVEN( "gm.1",      0x20000,  0x10000, 0x54a11e28 )
2018 	ROM_LOAD_ODD ( "gm.2",      0x20000,  0x10000, 0x4b6a13e4 )
2019 
2020 	ROM_REGION( 0x90000, REGION_CPU2 )	/* Sound CPU */
2021 	ROM_LOAD( "goldsnd0.c47",   0x00000,  0x08000, 0x031d27dc )
2022 	ROM_CONTINUE(               0x18000,  0x78000 )
2023 
2024 	ROM_REGION( 0x010000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
2025 	ROM_LOAD( "gm.5",           0x000000, 0x08000, 0x667f33f1 )
2026 	ROM_LOAD( "gm.6",           0x008000, 0x08000, 0x56020b13 )
2027 
2028 	ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
2029 	ROM_LOAD( "goldchr3.c46",   0x000000, 0x80000, 0x6faaa07a )
2030 	ROM_LOAD( "goldchr2.c45",   0x080000, 0x80000, 0xe6b0aa2c )
2031 	ROM_LOAD( "goldchr1.c44",   0x100000, 0x80000, 0x55db41cd )
2032 	ROM_LOAD( "goldchr0.c43",   0x180000, 0x80000, 0x76572c3f )
2033 ROM_END
2034 
2035 ROM_START( goldmedb )
2036 	ROM_REGION( 0x40000, REGION_CPU1 )
2037 	ROM_LOAD_EVEN( "l_3.bin",   0x00000,  0x10000, 0x5e106bcf)
2038 	ROM_LOAD_ODD ( "l_4.bin",   0x00000,  0x10000, 0xe19966af)
2039 	ROM_LOAD_EVEN( "l_1.bin",   0x20000,  0x08000, 0x7eec7ee5)
2040 	ROM_LOAD_ODD ( "l_2.bin",   0x20000,  0x08000, 0xbf59e4f9)
2041 
2042 	ROM_REGION( 0x88000, REGION_CPU2 )	/* Sound CPU */
2043 	ROM_LOAD( "goldsnd0.c47",   0x00000,  0x08000, 0x031d27dc )
2044 	ROM_CONTINUE(               0x10000,  0x78000 )
2045 
2046 	ROM_REGION( 0x010000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
2047 	ROM_LOAD( "gm.5",           0x000000, 0x08000, 0x667f33f1 )
2048 	ROM_LOAD( "gm.6",           0x008000, 0x08000, 0x56020b13 )
2049 //	ROM_LOAD( "33.bin", 0x000000, 0x10000, 0x5600b13 )
2050 
2051 	/* I haven't yet verified if these are the same as the bootleg */
2052 
2053 	ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
2054 	ROM_LOAD( "goldchr3.c46",   0x000000, 0x80000, 0x6faaa07a )
2055 	ROM_LOAD( "goldchr2.c45",   0x080000, 0x80000, 0xe6b0aa2c )
2056 	ROM_LOAD( "goldchr1.c44",   0x100000, 0x80000, 0x55db41cd )
2057 	ROM_LOAD( "goldchr0.c43",   0x180000, 0x80000, 0x76572c3f )
2058 
2059 	ROM_REGION( 0x10000, REGION_USER1 )
2060 	ROM_LOAD_EVEN( "l_1.bin",   0x00000,  0x08000, 0x7eec7ee5)
2061 	ROM_LOAD_ODD ( "l_2.bin",   0x00000,  0x08000, 0xbf59e4f9)
2062 ROM_END
2063 
2064 ROM_START( skyadvnt )
2065 	ROM_REGION( 0x40000, REGION_CPU1 )
2066 	ROM_LOAD_EVEN( "sa_v3.1",   0x00000,  0x20000, 0x862393b5 )
2067 	ROM_LOAD_ODD ( "sa_v3.2",   0x00000,  0x20000, 0xfa7a14d1 )
2068 
2069 	ROM_REGION( 0x90000, REGION_CPU2 )	/* Sound CPU */
2070 	ROM_LOAD( "sa.3",           0x00000,  0x08000, 0x3d0b32e0 )
2071 	ROM_CONTINUE(               0x18000,  0x08000 )
2072 	ROM_LOAD( "sa.4",           0x30000,  0x10000, 0xc2e3c30c )
2073 	ROM_LOAD( "sa.5",           0x50000,  0x10000, 0x11cdb868 )
2074 	ROM_LOAD( "sa.6",           0x70000,  0x08000, 0x237d93fd )
2075 
2076 	ROM_REGION( 0x020000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
2077 	ROM_LOAD( "sa.7",           0x000000, 0x08000, 0xea26e9c5 )
2078 
2079 	ROM_REGION( 0x280000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
2080 	ROM_LOAD( "sachr3",         0x000000, 0x80000, 0xa986b8d5 )
2081 	ROM_LOAD( "sachr2",         0x0a0000, 0x80000, 0x504b07ae )
2082 	ROM_LOAD( "sachr1",         0x140000, 0x80000, 0xe734dccd )
2083 	ROM_LOAD( "sachr0",         0x1e0000, 0x80000, 0xe281b204 )
2084 ROM_END
2085 
2086 ROM_START( gangwars )
2087 	ROM_REGION( 0x40000, REGION_CPU1 )
2088 	ROM_LOAD_EVEN( "u1",        0x00000, 0x20000, 0x11433507 )
2089 	ROM_LOAD_ODD ( "u2",        0x00000, 0x20000, 0x44cc375f )
2090 
2091 	ROM_REGION( 0x90000, REGION_CPU2 )	/* Sound CPU */
2092 	ROM_LOAD( "u12",            0x00000, 0x08000, 0x2620caa1 )
2093 	ROM_CONTINUE(               0x18000, 0x08000 )
2094 	ROM_LOAD( "u9",             0x70000, 0x10000, 0x9136745e )
2095 	ROM_LOAD( "u10",            0x50000, 0x10000, 0x636978ae )
2096 	ROM_LOAD( "u11",            0x30000, 0x10000, 0x2218ceb9 )
2097 
2098 /*
2099 
2100 These roms are from the bootleg version, the original graphics
2101 should be the same.  The original uses 4 512k mask roms and 4 128k
2102 eeproms to store the same data.  The 512k roms are not dumped but
2103 the 128k ones are and match these ones.
2104 
2105 */
2106 
2107 	ROM_REGION( 0x020000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
2108 	ROM_LOAD( "gwb_ic.m19",		0x000000, 0x10000, 0xb75bf1d0 )
2109 
2110 	ROM_REGION( 0x280000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
2111 	ROM_LOAD( "gwb_ic.308",		0x000000, 0x10000, 0x321a2fdd )
2112 	ROM_LOAD( "gwb_ic.309",		0x010000, 0x10000, 0x4d908f65 )
2113 	ROM_LOAD( "gwb_ic.310",		0x020000, 0x10000, 0xfc888541 )
2114 	ROM_LOAD( "gwb_ic.311",		0x030000, 0x10000, 0x181b128b )
2115 	ROM_LOAD( "gwb_ic.312",		0x040000, 0x10000, 0x930665f3 )
2116 	ROM_LOAD( "gwb_ic.313",		0x050000, 0x10000, 0xc18f4ca8 )
2117 	ROM_LOAD( "gwb_ic.314",		0x060000, 0x10000, 0xdfc44b60 )
2118 	ROM_LOAD( "gwb_ic.307",		0x070000, 0x10000, 0x28082a7f )
2119 	ROM_LOAD( "gwb_ic.320",		0x080000, 0x10000, 0x9a7b51d8 )
2120 	ROM_LOAD( "gwb_ic.321",		0x090000, 0x10000, 0x6b421c7b )
2121 	ROM_LOAD( "gwb_ic.300",		0x0a0000, 0x10000, 0xf3fa0877 )
2122 	ROM_LOAD( "gwb_ic.301",		0x0b0000, 0x10000, 0xf8c866de )
2123 	ROM_LOAD( "gwb_ic.302",		0x0c0000, 0x10000, 0x5b0d587d )
2124 	ROM_LOAD( "gwb_ic.303",		0x0d0000, 0x10000, 0xd8c0e102 )
2125 	ROM_LOAD( "gwb_ic.304",		0x0e0000, 0x10000, 0xb02bc9d8 )
2126 	ROM_LOAD( "gwb_ic.305",		0x0f0000, 0x10000, 0x5e04a9aa )
2127 	ROM_LOAD( "gwb_ic.306",		0x100000, 0x10000, 0xe2172955 )
2128 	ROM_LOAD( "gwb_ic.299",		0x110000, 0x10000, 0xe39f5599 )
2129 	ROM_LOAD( "gwb_ic.318",		0x120000, 0x10000, 0x9aeaddf9 )
2130 	ROM_LOAD( "gwb_ic.319",		0x130000, 0x10000, 0xc5b862b7 )
2131 	ROM_LOAD( "gwb_ic.292",		0x140000, 0x10000, 0xc125f7be )
2132 	ROM_LOAD( "gwb_ic.293",		0x150000, 0x10000, 0xc04fce8e )
2133 	ROM_LOAD( "gwb_ic.294",		0x160000, 0x10000, 0x4eda3df5 )
2134 	ROM_LOAD( "gwb_ic.295",		0x170000, 0x10000, 0x6e60c475 )
2135 	ROM_LOAD( "gwb_ic.296",		0x180000, 0x10000, 0x99b2a557 )
2136 	ROM_LOAD( "gwb_ic.297",		0x190000, 0x10000, 0x10373f63 )
2137 	ROM_LOAD( "gwb_ic.298",		0x1a0000, 0x10000, 0xdf37ec4d )
2138 	ROM_LOAD( "gwb_ic.291",		0x1b0000, 0x10000, 0xbeb07a2e )
2139 	ROM_LOAD( "gwb_ic.316",		0x1c0000, 0x10000, 0x655b1518 )
2140 	ROM_LOAD( "gwb_ic.317",		0x1d0000, 0x10000, 0x1622fadd )
2141 	ROM_LOAD( "gwb_ic.284",		0x1e0000, 0x10000, 0x4aa95d66 )
2142 	ROM_LOAD( "gwb_ic.285",		0x1f0000, 0x10000, 0x3a1f3ce0 )
2143 	ROM_LOAD( "gwb_ic.286",		0x200000, 0x10000, 0x886e298b )
2144 	ROM_LOAD( "gwb_ic.287",		0x210000, 0x10000, 0xb9542e6a )
2145 	ROM_LOAD( "gwb_ic.288",		0x220000, 0x10000, 0x8e620056 )
2146 	ROM_LOAD( "gwb_ic.289",		0x230000, 0x10000, 0xc754d69f )
2147 	ROM_LOAD( "gwb_ic.290",		0x240000, 0x10000, 0x306d1963 )
2148 	ROM_LOAD( "gwb_ic.283",		0x250000, 0x10000, 0xb46e5761 )
2149 	ROM_LOAD( "gwb_ic.280",		0x260000, 0x10000, 0x222b3dcd )
2150 	ROM_LOAD( "gwb_ic.315",		0x270000, 0x10000, 0xe7c9b103 )
2151 
2152 	ROM_REGION( 0x40000, REGION_USER1 ) /* Extra code bank */
2153 	ROM_LOAD_EVEN( "u3",        0x00000,  0x20000, 0xde6fd3c0 )
2154 	ROM_LOAD_ODD ( "u4",        0x00000,  0x20000, 0x43f7f5d3 )
2155 ROM_END
2156 
2157 ROM_START( gangwarb )
2158 	ROM_REGION( 0x40000, REGION_CPU1 )
2159 	ROM_LOAD_EVEN( "gwb_ic.m15", 0x00000, 0x20000, 0x7752478e )
2160 	ROM_LOAD_ODD ( "gwb_ic.m16", 0x00000, 0x20000, 0xc2f3b85e )
2161 
2162 	ROM_REGION( 0x90000, REGION_CPU2 )	/* Sound CPU */
2163 	ROM_LOAD( "gwb_ic.380",      0x00000, 0x08000, 0xe6d6c9cf )
2164 	ROM_CONTINUE(                0x18000, 0x08000 )
2165 	ROM_LOAD( "gwb_ic.419",      0x30000, 0x10000, 0x84e5c946 )
2166 	ROM_LOAD( "gwb_ic.420",      0x50000, 0x10000, 0xeb305d42 )
2167 	ROM_LOAD( "gwb_ic.421",      0x70000, 0x10000, 0x7b9f2608 )
2168 
2169 	ROM_REGION( 0x020000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
2170 	ROM_LOAD( "gwb_ic.m19",		0x000000, 0x10000, 0xb75bf1d0 )
2171 
2172 	ROM_REGION( 0x280000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
2173 	ROM_LOAD( "gwb_ic.308",		0x000000, 0x10000, 0x321a2fdd )
2174 	ROM_LOAD( "gwb_ic.309",		0x010000, 0x10000, 0x4d908f65 )
2175 	ROM_LOAD( "gwb_ic.310",		0x020000, 0x10000, 0xfc888541 )
2176 	ROM_LOAD( "gwb_ic.311",		0x030000, 0x10000, 0x181b128b )
2177 	ROM_LOAD( "gwb_ic.312",		0x040000, 0x10000, 0x930665f3 )
2178 	ROM_LOAD( "gwb_ic.313",		0x050000, 0x10000, 0xc18f4ca8 )
2179 	ROM_LOAD( "gwb_ic.314",		0x060000, 0x10000, 0xdfc44b60 )
2180 	ROM_LOAD( "gwb_ic.307",		0x070000, 0x10000, 0x28082a7f )
2181 	ROM_LOAD( "gwb_ic.320",		0x080000, 0x10000, 0x9a7b51d8 )
2182 	ROM_LOAD( "gwb_ic.321",		0x090000, 0x10000, 0x6b421c7b )
2183 	ROM_LOAD( "gwb_ic.300",		0x0a0000, 0x10000, 0xf3fa0877 )
2184 	ROM_LOAD( "gwb_ic.301",		0x0b0000, 0x10000, 0xf8c866de )
2185 	ROM_LOAD( "gwb_ic.302",		0x0c0000, 0x10000, 0x5b0d587d )
2186 	ROM_LOAD( "gwb_ic.303",		0x0d0000, 0x10000, 0xd8c0e102 )
2187 	ROM_LOAD( "gwb_ic.304",		0x0e0000, 0x10000, 0xb02bc9d8 )
2188 	ROM_LOAD( "gwb_ic.305",		0x0f0000, 0x10000, 0x5e04a9aa )
2189 	ROM_LOAD( "gwb_ic.306",		0x100000, 0x10000, 0xe2172955 )
2190 	ROM_LOAD( "gwb_ic.299",		0x110000, 0x10000, 0xe39f5599 )
2191 	ROM_LOAD( "gwb_ic.318",		0x120000, 0x10000, 0x9aeaddf9 )
2192 	ROM_LOAD( "gwb_ic.319",		0x130000, 0x10000, 0xc5b862b7 )
2193 	ROM_LOAD( "gwb_ic.292",		0x140000, 0x10000, 0xc125f7be )
2194 	ROM_LOAD( "gwb_ic.293",		0x150000, 0x10000, 0xc04fce8e )
2195 	ROM_LOAD( "gwb_ic.294",		0x160000, 0x10000, 0x4eda3df5 )
2196 	ROM_LOAD( "gwb_ic.295",		0x170000, 0x10000, 0x6e60c475 )
2197 	ROM_LOAD( "gwb_ic.296",		0x180000, 0x10000, 0x99b2a557 )
2198 	ROM_LOAD( "gwb_ic.297",		0x190000, 0x10000, 0x10373f63 )
2199 	ROM_LOAD( "gwb_ic.298",		0x1a0000, 0x10000, 0xdf37ec4d )
2200 	ROM_LOAD( "gwb_ic.291",		0x1b0000, 0x10000, 0xbeb07a2e )
2201 	ROM_LOAD( "gwb_ic.316",		0x1c0000, 0x10000, 0x655b1518 )
2202 	ROM_LOAD( "gwb_ic.317",		0x1d0000, 0x10000, 0x1622fadd )
2203 	ROM_LOAD( "gwb_ic.284",		0x1e0000, 0x10000, 0x4aa95d66 )
2204 	ROM_LOAD( "gwb_ic.285",		0x1f0000, 0x10000, 0x3a1f3ce0 )
2205 	ROM_LOAD( "gwb_ic.286",		0x200000, 0x10000, 0x886e298b )
2206 	ROM_LOAD( "gwb_ic.287",		0x210000, 0x10000, 0xb9542e6a )
2207 	ROM_LOAD( "gwb_ic.288",		0x220000, 0x10000, 0x8e620056 )
2208 	ROM_LOAD( "gwb_ic.289",		0x230000, 0x10000, 0xc754d69f )
2209 	ROM_LOAD( "gwb_ic.290",		0x240000, 0x10000, 0x306d1963 )
2210 	ROM_LOAD( "gwb_ic.283",		0x250000, 0x10000, 0xb46e5761 )
2211 	ROM_LOAD( "gwb_ic.280",		0x260000, 0x10000, 0x222b3dcd )
2212 	ROM_LOAD( "gwb_ic.315",		0x270000, 0x10000, 0xe7c9b103 )
2213 
2214 	ROM_REGION( 0x40000, REGION_USER1 ) /* Extra code bank */
2215 	ROM_LOAD_EVEN( "gwb_ic.m17", 0x00000, 0x20000, 0x2a5fe86e )
2216 	ROM_LOAD_ODD ( "gwb_ic.m18", 0x00000, 0x20000, 0xc8b60c53 )
2217 ROM_END
2218 
2219 ROM_START( sbasebal )
2220 	ROM_REGION( 0x40000, REGION_CPU1 )
2221 	ROM_LOAD_EVEN( "snksb1.bin", 0x00000, 0x20000, 0x304fef2d )
2222 	ROM_LOAD_ODD ( "snksb2.bin", 0x00000, 0x20000, 0x35821339 )
2223 
2224 	ROM_REGION( 0x90000, REGION_CPU2 )	/* Sound CPU */
2225 	ROM_LOAD( "snksb3.bin",      0x00000, 0x08000, 0x89e12f25 )
2226 	ROM_CONTINUE(                0x18000, 0x08000 )
2227 	ROM_LOAD( "snksb4.bin",      0x30000, 0x10000, 0xcca2555d )
2228 	ROM_LOAD( "snksb5.bin",      0x50000, 0x10000, 0xf45ee36f )
2229 	ROM_LOAD( "snksb6.bin",      0x70000, 0x10000, 0x651c9472 )
2230 
2231 	ROM_REGION( 0x020000, REGION_GFX1 | REGIONFLAG_DISPOSE )	/* chars */
2232 	ROM_LOAD( "snksb7.bin",      0x000000, 0x10000, 0x8f3c2e25 )
2233 
2234 	ROM_REGION( 0x280000, REGION_GFX2 | REGIONFLAG_DISPOSE )	/* sprites */
2235 	ROM_LOAD( "kcbchr3.bin",     0x000000, 0x80000, 0x719071c7 )
2236 	ROM_LOAD( "kcbchr2.bin",     0x0a0000, 0x80000, 0x014f0f90 )
2237 	ROM_LOAD( "kcbchr1.bin",     0x140000, 0x80000, 0xa5ce1e10 )
2238 	ROM_LOAD( "kcbchr0.bin",     0x1e0000, 0x80000, 0xb8a1a088 )
2239 ROM_END
2240 
2241 /******************************************************************************/
2242 
2243 static READ_HANDLER( timesold_cycle_r )
2244 {
2245 	int ret=READ_WORD(&shared_ram[0x8]);
2246 
2247 	if (cpu_get_pc()==0x9ea2 && (ret&0xff00)==0) {
2248 		cpu_spinuntil_int();
2249 		return 0x100 | (ret&0xff);
2250 	}
2251 
2252 	return ret;
2253 }
2254 
READ_HANDLER(skysoldr_cycle_r)2255 static READ_HANDLER( skysoldr_cycle_r )
2256 {
2257 	int ret=READ_WORD(&shared_ram[0x8]);
2258 
2259 	if (cpu_get_pc()==0x1f4e && (ret&0xff00)==0) {
2260 		cpu_spinuntil_int();
2261 		return 0x100 | (ret&0xff);
2262 	}
2263 
2264 	return ret;
2265 }
2266 
READ_HANDLER(gangwars_cycle_r)2267 static READ_HANDLER( gangwars_cycle_r )
2268 {
2269 	int ret=READ_WORD(&shared_ram[0x206]);
2270 
2271 	if (cpu_get_pc()==0xbbca || cpu_get_pc()==0xbbb6) {
2272 		cpu_spinuntil_int();
2273 		return (ret+2)&0xff;
2274 	}
2275 
2276 	return ret;
2277 }
2278 
init_timesold(void)2279 static void init_timesold(void)
2280 {
2281 	install_mem_read_handler(0, 0x40008, 0x40009, timesold_cycle_r);
2282 	invert_controls=0;
2283 }
2284 
init_skysoldr(void)2285 static void init_skysoldr(void)
2286 {
2287 	install_mem_read_handler(0, 0x40008, 0x40009, skysoldr_cycle_r);
2288 	cpu_setbank(8, (memory_region(REGION_USER1))+0x40000);
2289 	invert_controls=0;
2290 }
2291 
init_goldmedb(void)2292 static void init_goldmedb(void)
2293 {
2294 	cpu_setbank(8, memory_region(REGION_USER1));
2295 	invert_controls=0;
2296 }
2297 
init_gangwars(void)2298 static void init_gangwars(void)
2299 {
2300 	install_mem_read_handler(0, 0x40206, 0x40207, gangwars_cycle_r);
2301 	cpu_setbank(8, memory_region(REGION_USER1));
2302 	invert_controls=0;
2303 	microcontroller_id=0x8512;
2304 }
2305 
init_btlfield(void)2306 static void init_btlfield(void)
2307 {
2308 	invert_controls=1;
2309 }
2310 
init_sbasebal(void)2311 static void init_sbasebal(void)
2312 {
2313 	unsigned char *RAM = memory_region(REGION_CPU1);
2314 
2315 	/* Game hangs on divide by zero?!  Patch it */
2316 	WRITE_WORD (&RAM[0xb672],0x4E71);
2317 
2318 	/* And patch the ROM checksums */
2319 	WRITE_WORD (&RAM[0x44e],0x4E71);
2320 	WRITE_WORD (&RAM[0x450],0x4E71);
2321 	WRITE_WORD (&RAM[0x458],0x4E71);
2322 	WRITE_WORD (&RAM[0x45a],0x4E71);
2323 
2324 	microcontroller_id=0x8512;
2325 	invert_controls=0;
2326 }
2327 
init_skyadvnt(void)2328 static void init_skyadvnt(void)
2329 {
2330 	microcontroller_id=0x8814;
2331 	invert_controls=0;
2332 }
2333 
init_kyros(void)2334 static void init_kyros(void)
2335 {
2336 	microcontroller_id=0x12;
2337 }
2338 
init_sstingry(void)2339 static void init_sstingry(void)
2340 {
2341 	microcontroller_id=0xff;
2342 }
2343 
init_goldmedl(void)2344 static void init_goldmedl(void)
2345 {
2346 	invert_controls=0;
2347 }
2348 
2349 /******************************************************************************/
2350 
2351 GAMEX(1985, kouyakyu, 0,        kouyakyu,      sstingry, 0,        ROT0,       "Alpha Denshi Co.", "The Koukouyakyuh", GAME_NOT_WORKING )
2352 GAMEX(1986, sstingry, 0,        sstingry,      sstingry, sstingry, ROT90,      "Alpha Denshi Co.", "Super Stingray", GAME_WRONG_COLORS | GAME_NO_SOUND )
2353 GAMEX(1987, kyros,    0,        kyros,         kyros,    kyros,    ROT90,      "World Games Inc", "Kyros", GAME_WRONG_COLORS | GAME_NO_SOUND )
2354 GAMEX(1988, paddlema, 0,        alpha68k_I,    timesold, 0,        ROT90,      "SNK", "Paddle Mania", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
2355 GAME( 1987, timesold, 0,        alpha68k_II,   timesold, timesold, ROT90,      "SNK / Romstar", "Time Soldiers (US Rev 3)" )
2356 GAME( 1987, timesol1, timesold, alpha68k_II,   timesold, btlfield, ROT90,      "SNK / Romstar", "Time Soldiers (US Rev 1)" )
2357 GAME( 1987, btlfield, timesold, alpha68k_II,   btlfield, btlfield, ROT90,      "SNK", "Battle Field (Japan)" )
2358 GAME( 1988, skysoldr, 0,        alpha68k_II,   skysoldr, skysoldr, ROT90,      "SNK / Romstar", "Sky Soldiers (US)" )
2359 GAMEX(1988, goldmedl, 0,        alpha68k_II,   goldmedl, goldmedl, ROT0,       "SNK", "Gold Medalist", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
2360 GAMEX(1988, goldmedb, goldmedl, alpha68k_II,   goldmedl, goldmedb, ROT0,       "bootleg", "Gold Medalist (bootleg)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
2361 GAMEX(1989, skyadvnt, 0,        alpha68k_V,    skyadvnt, skyadvnt, ROT90,      "SNK of America (licensed from Alpha)", "Sky Adventure (US)", GAME_NO_COCKTAIL )
2362 GAME( 1989, gangwars, 0,        alpha68k_V,    gangwars, gangwars, ROT0_16BIT, "Alpha Denshi Co.", "Gang Wars (US)" )
2363 GAME( 1989, gangwarb, gangwars, alpha68k_V,    gangwars, gangwars, ROT0_16BIT, "bootleg", "Gang Wars (bootleg)" )
2364 GAMEX(1989, sbasebal, 0,        alpha68k_V_sb, sbasebal, sbasebal, ROT0,       "SNK of America (licensed from Alpha)", "Super Champion Baseball", GAME_NO_COCKTAIL )
2365 
2366 /*
2367  Super Baseball and Sky Adventure don't write to their flipscreen ports - I'm not yet sure if this
2368 is a microcontroller protection issue (flipscreen is controlled by the Alpha microcontroller) or these
2369 games simply don't support it.
2370 */
2371