1 /***************************************************************************
2 
3 Various Video System Co. games using the C7-01 GGA, VS8803, VS8904, VS8905
4 video chips.
5 C7-01 GGA is used in a lot of games, some of them without sprites. So it
6 either controls tilemaps, or the video signal, or both.
7 I think 8904/8905 handle sprites, don't know about 8803.
8 tail2nos doesn't have the 8904/8905, and indeed it has a different sprite
9 system.
10 
11 Driver by Nicola Salmoria
12 
13 
14 Notes:
15 - Sprite zoom is probably not 100% accurate.
16   In pspikes, the zooming text during attract mode is horrible.
17 
18 pspikes/turbofrc/aerofgtb write to two addresses which look like control
19 registers for a video generator. Maybe they control the display size/position.
20 aerofgt is different, it writes to consecutive memory addresses and the values
21 it writes don't seem to be related to these ones.
22 
23                   00 01 02 03 04 05  08 09 0a 0b 0c 0d
24                   ------------------------------------
25 pspikes  352x240? 57 63 69 71 1f 00  77 79 7b 7f 1f 00
26 karatblz 352x240  57 63 69 71 1f 00  77 79 7b 7f 1f 00
27 turbofrc 352x240  57 63 69 71 1f 00  77 79 7b 7f 1f 00
28 spinlbrk 352x240  57 68 6f 75 ff 01  77 78 7b 7f ff 00
29 aerofgtb 320x224  4f 5d 63 71 1f 00  6f 70 72 7c 1f 02
30 tail2nos 320x240  4f 5e 64 71 1f 09  7a 7c 7e 7f 1f 02
31 f1gp     320x240  4f 5e 64 71 1f 09  7a 7c 7e 7f 1f 02
32 welltris 352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00
33 
34 games with 8x4 tiles:
35 
36 pipedrm  352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
37 hatris   352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
38 idolmj   352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00
39 mjnatsu  352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
40 mfunclub 352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
41 daiyogen 352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
42 nmsengen 352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
43 fromance 352x240  57 63 69 71 1f 00  7a 7b 7e 7f 1f 00 * register 0b also briefly toggled to ff
44 
45 register 00 could be screen width / 4 (hblank start?)
46 register 08 could be screen height / 2 (vblank start?)
47 
48 ***************************************************************************/
49 
50 #include "driver.h"
51 #include "vidhrdw/generic.h"
52 #include "cpu/z80/z80.h"
53 
54 
55 extern data16_t *aerofgt_rasterram;
56 extern data16_t *aerofgt_bg1videoram,*aerofgt_bg2videoram;
57 extern data16_t *aerofgt_spriteram1,*aerofgt_spriteram2,*aerofgt_spriteram3;
58 extern size_t aerofgt_spriteram1_size,aerofgt_spriteram2_size,aerofgt_spriteram3_size;
59 
60 WRITE16_HANDLER( aerofgt_bg1videoram_w );
61 WRITE16_HANDLER( aerofgt_bg2videoram_w );
62 WRITE16_HANDLER( pspikes_gfxbank_w );
63 WRITE16_HANDLER( karatblz_gfxbank_w );
64 WRITE16_HANDLER( spinlbrk_gfxbank_w );
65 WRITE16_HANDLER( turbofrc_gfxbank_w );
66 WRITE16_HANDLER( aerofgt_gfxbank_w );
67 WRITE16_HANDLER( aerofgt_bg1scrollx_w );
68 WRITE16_HANDLER( aerofgt_bg1scrolly_w );
69 WRITE16_HANDLER( aerofgt_bg2scrollx_w );
70 WRITE16_HANDLER( aerofgt_bg2scrolly_w );
71 WRITE16_HANDLER( pspikes_palette_bank_w );
72 VIDEO_START( pspikes );
73 VIDEO_START( karatblz );
74 VIDEO_START( spinlbrk );
75 VIDEO_START( turbofrc );
76 VIDEO_UPDATE( pspikes );
77 VIDEO_UPDATE( karatblz );
78 VIDEO_UPDATE( spinlbrk );
79 VIDEO_UPDATE( turbofrc );
80 VIDEO_UPDATE( aerofgt );
81 
82 
83 
84 
85 static int pending_command;
86 
WRITE16_HANDLER(sound_command_w)87 static WRITE16_HANDLER( sound_command_w )
88 {
89 	if (ACCESSING_LSB)
90 	{
91 		pending_command = 1;
92 		soundlatch_w(offset,data & 0xff);
93 		cpu_set_irq_line(1, IRQ_LINE_NMI, PULSE_LINE);
94 	}
95 }
96 
WRITE16_HANDLER(turbofrc_sound_command_w)97 static WRITE16_HANDLER( turbofrc_sound_command_w )
98 {
99 	if (ACCESSING_MSB)
100 	{
101 		pending_command = 1;
102 		soundlatch_w(offset,(data >> 8) & 0xff);
103 		cpu_set_irq_line(1, IRQ_LINE_NMI, PULSE_LINE);
104 	}
105 }
106 
READ16_HANDLER(pending_command_r)107 static READ16_HANDLER( pending_command_r )
108 {
109 	return pending_command;
110 }
111 
WRITE_HANDLER(pending_command_clear_w)112 static WRITE_HANDLER( pending_command_clear_w )
113 {
114 	pending_command = 0;
115 }
116 
WRITE_HANDLER(aerofgt_sh_bankswitch_w)117 static WRITE_HANDLER( aerofgt_sh_bankswitch_w )
118 {
119 	data8_t *rom = memory_region(REGION_CPU2) + 0x10000;
120 
121 	cpu_setbank(1,rom + (data & 0x03) * 0x8000);
122 }
123 
MACHINE_INIT(aerofgt)124 static MACHINE_INIT( aerofgt )
125 {
126 	aerofgt_sh_bankswitch_w(0,0);	/* needed by spinlbrk */
127 }
128 
129 
130 
MEMORY_READ16_START(pspikes_readmem)131 static MEMORY_READ16_START( pspikes_readmem )
132 	{ 0x000000, 0x03ffff, MRA16_ROM },
133 	{ 0x100000, 0x10ffff, MRA16_RAM },
134 	{ 0x200000, 0x203fff, MRA16_RAM },
135 	{ 0xff8000, 0xff8fff, MRA16_RAM },
136 	{ 0xffd000, 0xffdfff, MRA16_RAM },
137 	{ 0xffe000, 0xffefff, MRA16_RAM },
138 	{ 0xfff000, 0xfff001, input_port_0_word_r },
139 	{ 0xfff002, 0xfff003, input_port_1_word_r },
140 	{ 0xfff004, 0xfff005, input_port_2_word_r },
141 	{ 0xfff006, 0xfff007, pending_command_r },
142 MEMORY_END
143 
144 static MEMORY_WRITE16_START( pspikes_writemem )
145 	{ 0x000000, 0x03ffff, MWA16_ROM },
146 	{ 0x100000, 0x10ffff, MWA16_RAM },	/* work RAM */
147 	{ 0x200000, 0x203fff, MWA16_RAM, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
148 	{ 0xff8000, 0xff8fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
149 	{ 0xffc000, 0xffc3ff, MWA16_RAM, &aerofgt_spriteram3, &aerofgt_spriteram3_size },
150 	{ 0xffd000, 0xffdfff, MWA16_RAM, &aerofgt_rasterram },	/* bg1 scroll registers */
151 	{ 0xffe000, 0xffefff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 },
152 	{ 0xfff000, 0xfff001, pspikes_palette_bank_w },
153 	{ 0xfff002, 0xfff003, pspikes_gfxbank_w },
154 	{ 0xfff004, 0xfff005, aerofgt_bg1scrolly_w },
155 	{ 0xfff006, 0xfff007, sound_command_w },
156 MEMORY_END
157 
158 static MEMORY_READ16_START( karatblz_readmem )
159 	MEMORY_ADDRESS_BITS(20)
160 	{ 0x000000, 0x07ffff, MRA16_ROM },
161 	{ 0x080000, 0x081fff, MRA16_RAM },
162 	{ 0x082000, 0x083fff, MRA16_RAM },
163 	{ 0x0a0000, 0x0affff, MRA16_RAM },
164 	{ 0x0b0000, 0x0bffff, MRA16_RAM },
165 	{ 0x0c0000, 0x0cffff, MRA16_RAM },	/* work RAM */
166 	{ 0x0f8000, 0x0fbfff, MRA16_RAM },	/* work RAM */
167 	{ 0x0fc000, 0x0fc7ff, MRA16_RAM },
168 	{ 0x0fe000, 0x0fe7ff, MRA16_RAM },
169 	{ 0x0ff000, 0x0ff001, input_port_0_word_r },
170 	{ 0x0ff002, 0x0ff003, input_port_1_word_r },
171 	{ 0x0ff004, 0x0ff005, input_port_2_word_r },
172 	{ 0x0ff006, 0x0ff007, input_port_3_word_r },
173 	{ 0x0ff008, 0x0ff009, input_port_4_word_r },
174 	{ 0x0ff00a, 0x0ff00b, pending_command_r },
175 MEMORY_END
176 
177 static MEMORY_WRITE16_START( karatblz_writemem )
178 	MEMORY_ADDRESS_BITS(20)
179 	{ 0x000000, 0x07ffff, MWA16_ROM },
180 	{ 0x080000, 0x081fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
181 	{ 0x082000, 0x083fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
182 	{ 0x0a0000, 0x0affff, MWA16_RAM, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
183 	{ 0x0b0000, 0x0bffff, MWA16_RAM, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
184 	{ 0x0c0000, 0x0cffff, MWA16_RAM },	/* work RAM */
185 	{ 0x0f8000, 0x0fbfff, MWA16_RAM },	/* work RAM */
186 	{ 0x0fc000, 0x0fc7ff, MWA16_RAM, &aerofgt_spriteram3, &aerofgt_spriteram3_size },
187 	{ 0x0fe000, 0x0fe7ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 },
188 	{ 0x0ff002, 0x0ff003, karatblz_gfxbank_w },
189 	{ 0x0ff006, 0x0ff007, sound_command_w },
190 	{ 0x0ff008, 0x0ff009, aerofgt_bg1scrollx_w },
191 	{ 0x0ff00a, 0x0ff00b, aerofgt_bg1scrolly_w },
192 	{ 0x0ff00c, 0x0ff00d, aerofgt_bg2scrollx_w },
193 	{ 0x0ff00e, 0x0ff00f, aerofgt_bg2scrolly_w },
194 MEMORY_END
195 
196 static MEMORY_READ16_START( spinlbrk_readmem )
197 	{ 0x000000, 0x03ffff, MRA16_ROM },
198 	{ 0x080000, 0x080fff, MRA16_RAM },
199 	{ 0x082000, 0x082fff, MRA16_RAM },
200 	{ 0xff8000, 0xffbfff, MRA16_RAM },
201 	{ 0xffc000, 0xffc7ff, MRA16_RAM },
202 	{ 0xffd000, 0xffd1ff, MRA16_RAM },
203 	{ 0xffe000, 0xffe7ff, MRA16_RAM },
204 	{ 0xfff000, 0xfff001, input_port_0_word_r },
205 	{ 0xfff002, 0xfff003, input_port_1_word_r },
206 	{ 0xfff004, 0xfff005, input_port_2_word_r },
207 MEMORY_END
208 
209 static MEMORY_WRITE16_START( spinlbrk_writemem )
210 	{ 0x000000, 0x03ffff, MWA16_ROM },
211 	{ 0x080000, 0x080fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
212 	{ 0x082000, 0x082fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
213 	{ 0xff8000, 0xffbfff, MWA16_RAM },	/* work RAM */
214 	{ 0xffc000, 0xffc7ff, MWA16_RAM, &aerofgt_spriteram3, &aerofgt_spriteram3_size },
215 	{ 0xffd000, 0xffd1ff, MWA16_RAM, &aerofgt_rasterram },	/* bg1 scroll registers */
216 	{ 0xffe000, 0xffe7ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 },
217 	{ 0xfff000, 0xfff001, spinlbrk_gfxbank_w },
218 	{ 0xfff002, 0xfff003, aerofgt_bg2scrollx_w },
219 	{ 0xfff006, 0xfff007, sound_command_w },
220 MEMORY_END
221 
222 static MEMORY_READ16_START( turbofrc_readmem )
223 	MEMORY_ADDRESS_BITS(20)
224 	{ 0x000000, 0x0bffff, MRA16_ROM },
225 	{ 0x0c0000, 0x0cffff, MRA16_RAM },	/* work RAM */
226 	{ 0x0d0000, 0x0d1fff, MRA16_RAM },
227 	{ 0x0d2000, 0x0d3fff, MRA16_RAM },
228 	{ 0x0e0000, 0x0e3fff, MRA16_RAM },
229 	{ 0x0e4000, 0x0e7fff, MRA16_RAM },
230 	{ 0x0f8000, 0x0fbfff, MRA16_RAM },	/* work RAM */
231 	{ 0x0fc000, 0x0fc7ff, MRA16_RAM },
232 	{ 0x0fd000, 0x0fdfff, MRA16_RAM },
233 	{ 0x0fe000, 0x0fe7ff, MRA16_RAM },
234 	{ 0x0ff000, 0x0ff001, input_port_0_word_r },
235 	{ 0x0ff002, 0x0ff003, input_port_1_word_r },
236 	{ 0x0ff004, 0x0ff005, input_port_2_word_r },
237 	{ 0x0ff006, 0x0ff007, pending_command_r },
238 	{ 0x0ff008, 0x0ff009, input_port_3_word_r },
239 MEMORY_END
240 
241 static MEMORY_WRITE16_START( turbofrc_writemem )
242 	MEMORY_ADDRESS_BITS(20)
243 	{ 0x000000, 0x0bffff, MWA16_ROM },
244 	{ 0x0c0000, 0x0cffff, MWA16_RAM },	/* work RAM */
245 	{ 0x0d0000, 0x0d1fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
246 	{ 0x0d2000, 0x0d3fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
247 	{ 0x0e0000, 0x0e3fff, MWA16_RAM, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
248 	{ 0x0e4000, 0x0e7fff, MWA16_RAM, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
249 	{ 0x0f8000, 0x0fbfff, MWA16_RAM },	/* work RAM */
250 	{ 0x0fc000, 0x0fc7ff, MWA16_RAM, &aerofgt_spriteram3, &aerofgt_spriteram3_size },
251 	{ 0x0fd000, 0x0fdfff, MWA16_RAM, &aerofgt_rasterram },	/* bg1 scroll registers */
252 	{ 0x0fe000, 0x0fe7ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 },
253 	{ 0x0ff002, 0x0ff003, aerofgt_bg1scrolly_w },
254 	{ 0x0ff004, 0x0ff005, aerofgt_bg2scrollx_w },
255 	{ 0x0ff006, 0x0ff007, aerofgt_bg2scrolly_w },
256 	{ 0x0ff008, 0x0ff00b, turbofrc_gfxbank_w },
257 	{ 0x0ff00c, 0x0ff00d, MWA16_NOP },	/* related to bg2 (written together with the scroll registers) */
258 	{ 0x0ff00e, 0x0ff00f, turbofrc_sound_command_w },
259 MEMORY_END
260 
261 static MEMORY_READ16_START( aerofgtb_readmem )
262 	{ 0x000000, 0x07ffff, MRA16_ROM },
263 	{ 0x0c0000, 0x0cffff, MRA16_RAM },	/* work RAM */
264 	{ 0x0d0000, 0x0d1fff, MRA16_RAM },
265 	{ 0x0d2000, 0x0d3fff, MRA16_RAM },
266 	{ 0x0e0000, 0x0e3fff, MRA16_RAM },
267 	{ 0x0e4000, 0x0e7fff, MRA16_RAM },
268 	{ 0x0f8000, 0x0fbfff, MRA16_RAM },	/* work RAM */
269 	{ 0x0fc000, 0x0fc7ff, MRA16_RAM },
270 	{ 0x0fd000, 0x0fd7ff, MRA16_RAM },
271 	{ 0x0fe000, 0x0fe001, input_port_0_word_r },
272 	{ 0x0fe002, 0x0fe003, input_port_1_word_r },
273 	{ 0x0fe004, 0x0fe005, input_port_2_word_r },
274 	{ 0x0fe006, 0x0fe007, pending_command_r },
275 	{ 0x0fe008, 0x0fe009, input_port_3_word_r },
276 	{ 0x0ff000, 0x0fffff, MRA16_RAM },
277 MEMORY_END
278 
279 static MEMORY_WRITE16_START( aerofgtb_writemem )
280 	{ 0x000000, 0x07ffff, MWA16_ROM },
281 	{ 0x0c0000, 0x0cffff, MWA16_RAM },	/* work RAM */
282 	{ 0x0d0000, 0x0d1fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
283 	{ 0x0d2000, 0x0d3fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
284 	{ 0x0e0000, 0x0e3fff, MWA16_RAM, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
285 	{ 0x0e4000, 0x0e7fff, MWA16_RAM, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
286 	{ 0x0f8000, 0x0fbfff, MWA16_RAM },	/* work RAM */
287 	{ 0x0fc000, 0x0fc7ff, MWA16_RAM, &aerofgt_spriteram3, &aerofgt_spriteram3_size },
288 	{ 0x0fd000, 0x0fd7ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 },
289 	{ 0x0fe002, 0x0fe003, aerofgt_bg1scrolly_w },
290 	{ 0x0fe004, 0x0fe005, aerofgt_bg2scrollx_w },
291 	{ 0x0fe006, 0x0fe007, aerofgt_bg2scrolly_w },
292 	{ 0x0fe008, 0x0fe00b, turbofrc_gfxbank_w },
293 	{ 0x0fe00e, 0x0fe00f, turbofrc_sound_command_w },
294 	{ 0x0ff000, 0x0fffff, MWA16_RAM, &aerofgt_rasterram },	/* used only for the scroll registers */
295 MEMORY_END
296 
297 static MEMORY_READ16_START( aerofgt_readmem )
298 	{ 0x000000, 0x07ffff, MRA16_ROM },
299 	{ 0x1a0000, 0x1a07ff, MRA16_RAM },
300 	{ 0x1b0000, 0x1b07ff, MRA16_RAM },
301 	{ 0x1b0800, 0x1b0801, MRA16_NOP },	/* ??? */
302 	{ 0x1b0ff0, 0x1b0fff, MRA16_RAM },	/* stack area during boot */
303 	{ 0x1b2000, 0x1b3fff, MRA16_RAM },
304 	{ 0x1b4000, 0x1b5fff, MRA16_RAM },
305 	{ 0x1c0000, 0x1c3fff, MRA16_RAM },
306 	{ 0x1c4000, 0x1c7fff, MRA16_RAM },
307 	{ 0x1d0000, 0x1d1fff, MRA16_RAM },
308 	{ 0xfef000, 0xffefff, MRA16_RAM },	/* work RAM */
309 	{ 0xffffa0, 0xffffa1, input_port_0_word_r },
310 	{ 0xffffa2, 0xffffa3, input_port_1_word_r },
311 	{ 0xffffa4, 0xffffa5, input_port_2_word_r },
312 	{ 0xffffa6, 0xffffa7, input_port_3_word_r },
313 	{ 0xffffa8, 0xffffa9, input_port_4_word_r },
314 	{ 0xffffac, 0xffffad, pending_command_r },
315 	{ 0xffffae, 0xffffaf, input_port_5_word_r },
316 MEMORY_END
317 
318 static MEMORY_WRITE16_START( aerofgt_writemem )
319 	{ 0x000000, 0x07ffff, MWA16_ROM },
320 	{ 0x1a0000, 0x1a07ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 },
321 	{ 0x1b0000, 0x1b07ff, MWA16_RAM, &aerofgt_rasterram },	/* used only for the scroll registers */
322 	{ 0x1b0800, 0x1b0801, MWA16_NOP },	/* ??? */
323 	{ 0x1b0ff0, 0x1b0fff, MWA16_RAM },	/* stack area during boot */
324 	{ 0x1b2000, 0x1b3fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
325 	{ 0x1b4000, 0x1b5fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
326 	{ 0x1c0000, 0x1c3fff, MWA16_RAM, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
327 	{ 0x1c4000, 0x1c7fff, MWA16_RAM, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
328 	{ 0x1d0000, 0x1d1fff, MWA16_RAM, &aerofgt_spriteram3, &aerofgt_spriteram3_size },
329 	{ 0xfef000, 0xffefff, MWA16_RAM },	/* work RAM */
330 	{ 0xffff80, 0xffff87, aerofgt_gfxbank_w },
331 	{ 0xffff88, 0xffff89, aerofgt_bg1scrolly_w },	/* + something else in the top byte */
332 	{ 0xffff90, 0xffff91, aerofgt_bg2scrolly_w },	/* + something else in the top byte */
333 	{ 0xffffac, 0xffffad, MWA16_NOP },	/* ??? */
334 	{ 0xffffc0, 0xffffc1, sound_command_w },
335 MEMORY_END
336 
337 
338 
339 static MEMORY_READ_START( sound_readmem )
340 	{ 0x0000, 0x77ff, MRA_ROM },
341 	{ 0x7800, 0x7fff, MRA_RAM },
342 	{ 0x8000, 0xffff, MRA_BANK1 },
343 MEMORY_END
344 
345 static MEMORY_WRITE_START( sound_writemem )
346 	{ 0x0000, 0x77ff, MWA_ROM },
347 	{ 0x7800, 0x7fff, MWA_RAM },
348 	{ 0x8000, 0xffff, MWA_ROM },
349 MEMORY_END
350 
351 static PORT_READ_START( turbofrc_sound_readport )
352 	{ 0x14, 0x14, soundlatch_r },
353 	{ 0x18, 0x18, YM2610_status_port_0_A_r },
354 	{ 0x1a, 0x1a, YM2610_status_port_0_B_r },
355 PORT_END
356 
357 static PORT_WRITE_START( turbofrc_sound_writeport )
358 	{ 0x00, 0x00, aerofgt_sh_bankswitch_w },
359 	{ 0x14, 0x14, pending_command_clear_w },
360 	{ 0x18, 0x18, YM2610_control_port_0_A_w },
361 	{ 0x19, 0x19, YM2610_data_port_0_A_w },
362 	{ 0x1a, 0x1a, YM2610_control_port_0_B_w },
363 	{ 0x1b, 0x1b, YM2610_data_port_0_B_w },
364 PORT_END
365 
366 static PORT_READ_START( aerofgt_sound_readport )
367 	{ 0x00, 0x00, YM2610_status_port_0_A_r },
368 	{ 0x02, 0x02, YM2610_status_port_0_B_r },
369 	{ 0x0c, 0x0c, soundlatch_r },
370 PORT_END
371 
372 static PORT_WRITE_START( aerofgt_sound_writeport )
373 	{ 0x00, 0x00, YM2610_control_port_0_A_w },
374 	{ 0x01, 0x01, YM2610_data_port_0_A_w },
375 	{ 0x02, 0x02, YM2610_control_port_0_B_w },
376 	{ 0x03, 0x03, YM2610_data_port_0_B_w },
377 	{ 0x04, 0x04, aerofgt_sh_bankswitch_w },
378 	{ 0x08, 0x08, pending_command_clear_w },
379 PORT_END
380 
381 
382 
383 INPUT_PORTS_START( pspikes )
384 	PORT_START
385 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
386 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
387 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
388 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
389 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
390 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
391 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
392 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
393 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
394 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
395 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
396 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
397 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
398 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
399 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
400 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
401 
402 	PORT_START
403 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
404 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
405 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
406 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
407 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
408 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
409 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
410 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
411 
412 	PORT_START
413 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) )
414 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
415 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
416 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_1C ) )
417 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_2C ) )
418 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) )
419 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_1C ) )
420 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
421 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_1C ) )
422 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_2C ) )
423 	/* the following two select country in the Chinese version (ROMs not available) */
424 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
425 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
426 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
427 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
428 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
429 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
430 	PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
431 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
432 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
433 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
434 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
435 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
436 	PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
437 	PORT_DIPNAME( 0x0600, 0x0600, "1 Player Starting Score" )
438 	PORT_DIPSETTING(      0x0600, "12-12" )
439 	PORT_DIPSETTING(      0x0400, "11-11" )
440 	PORT_DIPSETTING(      0x0200, "11-12" )
441 	PORT_DIPSETTING(      0x0000, "10-12" )
442 	PORT_DIPNAME( 0x1800, 0x1800, "2 Players Starting Score" )
443 	PORT_DIPSETTING(      0x1800, "9-9" )
444 	PORT_DIPSETTING(      0x1000, "7-7" )
445 	PORT_DIPSETTING(      0x0800, "5-5" )
446 	PORT_DIPSETTING(      0x0000, "0-0" )
447 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Difficulty ) )
448 	PORT_DIPSETTING(      0x2000, "Normal" )
449 	PORT_DIPSETTING(      0x0000, "Hard" )
450 	PORT_DIPNAME( 0x4000, 0x4000, "2 Players Time per Credit" )
451 	PORT_DIPSETTING(      0x4000, "3 min" )
452 	PORT_DIPSETTING(      0x0000, "2 min" )
453 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
454 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
455 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
456 INPUT_PORTS_END
457 
458 INPUT_PORTS_START( karatblz )
459 	PORT_START
460 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
461 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
462 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
463 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
464 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
465 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
466 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
467 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 )
468 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
469 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
470 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
471 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
472 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
473 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
474 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
475 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
476 
477 	PORT_START
478 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
479 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
480 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
481 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
482 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
483 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
484 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
485 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
486 
487 	PORT_START
488 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
489 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
490 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
491 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
492 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
493 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
494 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
495 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER3 )
496 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN3 )
497 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 )
498 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 )
499 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START4 )
500 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
501 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
502 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE2 )
503 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
504 
505 	PORT_START
506 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER4 )
507 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER4 )
508 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER4 )
509 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4 )
510 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
511 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
512 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER4 )
513 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER4 )
514 
515 	PORT_START
516 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )
517 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
518 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
519 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_1C ) )
520 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
521 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_2C ) )
522 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_3C ) )
523 	PORT_DIPSETTING(      0x0001, DEF_STR( 1C_5C ) )
524 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
525 	PORT_DIPNAME( 0x0008, 0x0008, "2 Coins to Start, 1 to Continue" )
526 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
527 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
528 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Lives ) )
529 	PORT_DIPSETTING(      0x0000, "1" )
530 	PORT_DIPSETTING(      0x0010, "2" )
531 	PORT_DIPNAME( 0x0060, 0x0020, DEF_STR( Cabinet ) )
532 	PORT_DIPSETTING(      0x0060, "2 Players" )
533 	PORT_DIPSETTING(      0x0040, "3 Players" )
534 	PORT_DIPSETTING(      0x0020, "4 Players" )
535 	PORT_DIPSETTING(      0x0000, "4 Players (Team)" )
536 	/*  With 4 player (Team) selected and Same Coin Slot:
537 		Coin A & B credit together for use by _only_ player 1 or player 2
538 		Coin C & D credit together for use by _only_ player 3 or player 4
539 		Otherwise with Individual selected, everyone is seperate  */
540 	PORT_DIPNAME( 0x0080, 0x0080, "Coin Slot" )
541 	PORT_DIPSETTING(      0x0080, "Same" )
542 	PORT_DIPSETTING(      0x0000, "Individual" )
543 	PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
544 	PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) )
545 	PORT_DIPSETTING(      0x0400, "Easy" )
546 	PORT_DIPSETTING(      0x0600, "Normal" )
547 	PORT_DIPSETTING(      0x0200, "Hard" )
548 	PORT_DIPSETTING(      0x0000, "Hardest" )
549 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
550 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
551 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
552 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
553 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
554 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
555 	PORT_DIPNAME( 0x2000, 0x2000, "Freeze" )
556 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
557 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
558 	PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Demo_Sounds ) )
559 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
560 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
561 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Flip_Screen ) )
562 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
563 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
564 INPUT_PORTS_END
565 
566 INPUT_PORTS_START( spinlbrk )
567 	PORT_START
568 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
569 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
570 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
571 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
572 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
573 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
574 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
575 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
576 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
577 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
578 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
579 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
580 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
581 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
582 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
583 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
584 
585 	PORT_START
586 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
587 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
588 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
589 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
590 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
591 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
592 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
593 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
594 
595 	PORT_START
596 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
597 	PORT_DIPSETTING(      0x000f, "1 Credit 1 Health Pack" )	/* I chose "Health Packs" as the actual value can change */
598 	PORT_DIPSETTING(      0x000e, "1 Credit 2 Health Packs" )	/*  via dipswitch 2-7 (0x4000) see below */
599 	PORT_DIPSETTING(      0x000d, "1 Credit 3 Health Packs" )
600 	PORT_DIPSETTING(      0x000c, "1 Credit 4 Health Packs" )
601 	PORT_DIPSETTING(      0x000b, "1 Credit 5 Health Packs" )
602 	PORT_DIPSETTING(      0x000a, "1 Credit 6 Health Packs" )
603 	PORT_DIPSETTING(      0x0009, "2 Credits 1 Health Pack" )
604 	PORT_DIPSETTING(      0x0008, "3 Credits 1 Health Pack" )
605 	PORT_DIPSETTING(      0x0007, "4 Credits 1 Health Pack" )
606 	PORT_DIPSETTING(      0x0006, "5 Credits 1 Health Pack" )
607 	PORT_DIPSETTING(      0x0005, "2 Credits 2 Health Packs" )
608 	PORT_DIPSETTING(      0x0004, "2-1-1C  1-1-1 HPs" )
609 	PORT_DIPSETTING(      0x0003, "2-2C 1-2 HPs" )
610 	PORT_DIPSETTING(      0x0002, "1-1-1-1-1C 1-1-1-1-2 HPs" )
611 	PORT_DIPSETTING(      0x0001, "1-1-1-1C 1-1-1-2 HPs" )
612 	PORT_DIPSETTING(      0x0000, "1-1C 1-2 HPs" )
613 /* The last 5 Coin/Credit selections are cycles:
614 	Example: 0x0004 = 2-1-1C 1-1-1 HPs:
615 	2 Credits for the 1st Health Pack, 1 Credit for the 2nd Health Pack, 1 Credit
616 	for the 3rd Health Pack... Then back to 2 Credits agian for 1 HP, then 1 credit
617 	and 1 credit.... on and on.  With all Coin/Credit dips set to on, it's 1 Health
618 	Pack for odd credits, 2 Health Packs for even credits :p
619 	*/
620 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
621 	PORT_DIPSETTING(      0x00f0, "1 Credit 1 Health Pack" )
622 	PORT_DIPSETTING(      0x00e0, "1 Credit 2 Health Packs" )
623 	PORT_DIPSETTING(      0x00d0, "1 Credit 3 Health Packs" )
624 	PORT_DIPSETTING(      0x00c0, "1 Credit 4 Health Packs" )
625 	PORT_DIPSETTING(      0x00b0, "1 Credit 5 Health Packs" )
626 	PORT_DIPSETTING(      0x00a0, "1 Credit 6 Health Packs" )
627 	PORT_DIPSETTING(      0x0090, "2 Credits 1 Health Pack" )
628 	PORT_DIPSETTING(      0x0080, "3 Credits 1 Health Pack" )
629 	PORT_DIPSETTING(      0x0070, "4 Credits 1 Health Pack" )
630 	PORT_DIPSETTING(      0x0060, "5 Credits 1 Health Pack" )
631 	PORT_DIPSETTING(      0x0050, "2 Credits 2 Health Packs" )
632 	PORT_DIPSETTING(      0x0040, "2-1-1C  1-1-1 HPs" )
633 	PORT_DIPSETTING(      0x0030, "2-2C 1-2 HPs" )
634 	PORT_DIPSETTING(      0x0020, "1-1-1-1-1C 1-1-1-1-2 HPs" )
635 	PORT_DIPSETTING(      0x0010, "1-1-1-1C 1-1-1-2 HPs" )
636 	PORT_DIPSETTING(      0x0000, "1-1C 1-2 HPs" )
637 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
638 	PORT_DIPSETTING(      0x0300, "Normal" )
639 	PORT_DIPSETTING(      0x0200, "Easy" )
640 	PORT_DIPSETTING(      0x0100, "Hard" )
641 	PORT_DIPSETTING(      0x0000, "Hardest" )
642 	PORT_DIPNAME( 0x0400, 0x0400, "Coin Slot" )		/* Japan ver acts like "Same" is always selected */
643 	PORT_DIPSETTING(      0x0000, "Same" )
644 	PORT_DIPSETTING(      0x0400, "Individual" )
645 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Flip_Screen ) )
646 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
647 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
648 	PORT_DIPNAME( 0x1000, 0x1000, "Player Lever Check?" ) /* Possibly Demo Sound??? but causes lever error??? */
649 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
650 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
651 	PORT_SERVICE( 0x2000, IP_ACTIVE_LOW )
652 	PORT_DIPNAME( 0x4000, 0x4000, "Health Pack" )
653 	PORT_DIPSETTING(      0x4000, "20 Hitpoints" )			/* World and Japan ver this value is 32 */
654 	PORT_DIPSETTING(      0x0000, "32 Hitpoints" )			/* World and Japan ver this value is 40 */
655 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
656 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )			/* This DIP has no effect that I can see */
657 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )			/*  most likely "Bonus Life" */
658 INPUT_PORTS_END
659 
660 INPUT_PORTS_START( turbofrc )
661 	PORT_START
662 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
663 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
664 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
665 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
666 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
667 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
668 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
669 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
670 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
671 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
672 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
673 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
674 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE )	/* "TEST" */
675 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
676 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 )
677 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN3 )
678 
679 	PORT_START
680 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
681 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
682 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
683 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
684 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
685 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
686 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
687 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )//START1 )
688 
689 	PORT_START
690 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) /* Coins 1, 2 & 3 */
691 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
692 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
693 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_1C ) )
694 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
695 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_2C ) )
696 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_3C ) )
697 	PORT_DIPSETTING(      0x0001, DEF_STR( 1C_5C ) )
698 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
699 	PORT_DIPNAME( 0x0008, 0x0008, "2 Coins to Start, 1 to Continue" )
700 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
701 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
702 	PORT_DIPNAME( 0x0010, 0x0000, "Coin Slot" )
703 	PORT_DIPSETTING(      0x0010, "Same" )
704 	PORT_DIPSETTING(      0x0000, "Individual" )
705 	PORT_DIPNAME( 0x0020, 0x0000, "Max Players" )
706 	PORT_DIPSETTING(      0x0020, "2" )
707 	PORT_DIPSETTING(      0x0000, "3" )
708 	PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
709 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
710 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
711 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
712 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
713 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
714 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
715 	PORT_DIPNAME( 0x0e00, 0x0800, DEF_STR( Difficulty ) )
716 	PORT_DIPSETTING(      0x0e00, "1 (Easiest)")
717 	PORT_DIPSETTING(      0x0c00, "2" )
718 	PORT_DIPSETTING(      0x0a00, "3" )
719 	PORT_DIPSETTING(      0x0800, "4 (Normal)" )
720 	PORT_DIPSETTING(      0x0600, "5" )
721 	PORT_DIPSETTING(      0x0400, "6" )
722 	PORT_DIPSETTING(      0x0200, "7" )
723 	PORT_DIPSETTING(      0x0000, "8 (Hardest)" )
724 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Lives ) )
725 	PORT_DIPSETTING(      0x0000, "2" )
726 	PORT_DIPSETTING(      0x1000, "3" )
727 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Bonus_Life ) )
728 	PORT_DIPSETTING(      0x2000, "200000" )
729 	PORT_DIPSETTING(      0x0000, "300000" )
730 
731 	PORT_START
732 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
733 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
734 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
735 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
736 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
737 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
738 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
739 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 )
740 INPUT_PORTS_END
741 
742 INPUT_PORTS_START( aerofgtb )
743 	PORT_START
744 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
745 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
746 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
747 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
748 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
749 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
750 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
751 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
752 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
753 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
754 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
755 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
756 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
757 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
758 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
759 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
760 
761 	PORT_START
762 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
763 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
764 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
765 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
766 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
767 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
768 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
769 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
770 
771 	PORT_START
772 	PORT_DIPNAME( 0x0001, 0x0001, "Coin Slot" )
773 	PORT_DIPSETTING(      0x0001, "Same" )
774 	PORT_DIPSETTING(      0x0000, "Individual" )
775 	PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) )
776 	PORT_DIPSETTING(      0x000a, DEF_STR( 3C_1C ) )
777 	PORT_DIPSETTING(      0x000c, DEF_STR( 2C_1C ) )
778 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_1C ) )
779 	PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
780 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_3C ) )
781 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
782 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_5C ) )
783 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
784 	PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) )
785 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
786 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_1C ) )
787 	PORT_DIPSETTING(      0x0070, DEF_STR( 1C_1C ) )
788 	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_2C ) )
789 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_3C ) )
790 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
791 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_5C ) )
792 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
793 	PORT_DIPNAME( 0x0080, 0x0080, "2 Coins to Start, 1 to Continue" )
794 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
795 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
796 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
797 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
798 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
799 	PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Demo_Sounds ) )
800 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
801 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
802 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
803 	PORT_DIPSETTING(      0x0800, "Easy" )
804 	PORT_DIPSETTING(      0x0c00, "Normal" )
805 	PORT_DIPSETTING(      0x0400, "Hard" )
806 	PORT_DIPSETTING(      0x0000, "Hardest" )
807 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
808 	PORT_DIPSETTING(      0x2000, "1" )
809 	PORT_DIPSETTING(      0x1000, "2" )
810 	PORT_DIPSETTING(      0x3000, "3" )
811 	PORT_DIPSETTING(      0x0000, "4" )
812 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Bonus_Life ) )
813 	PORT_DIPSETTING(      0x4000, "200000" )
814 	PORT_DIPSETTING(      0x0000, "300000" )
815 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
816 
817 	PORT_START
818 	PORT_DIPNAME( 0x0001, 0x0000, "Country" )
819 	PORT_DIPSETTING(      0x0000, "Japan" )
820 	PORT_DIPSETTING(      0x0001, "Taiwan" )
821 	/* TODO: there are others in the table at 11910 */
822 	/* this port is checked at 1b080 */
823 INPUT_PORTS_END
824 
825 INPUT_PORTS_START( aerofgt )
826 	PORT_START
827 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
828 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
829 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
830 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
831 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
832 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
833 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
834 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
835 
836 	PORT_START
837 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
838 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
839 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
840 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
841 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
842 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
843 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
844 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
845 
846 	PORT_START
847 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
848 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
849 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
850 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
851 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
852 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
853 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 )
854 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
855 
856 	PORT_START
857 	PORT_DIPNAME( 0x0001, 0x0001, "Coin Slot" )
858 	PORT_DIPSETTING(      0x0001, "Same" )
859 	PORT_DIPSETTING(      0x0000, "Individual" )
860 	PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) )
861 	PORT_DIPSETTING(      0x000a, DEF_STR( 3C_1C ) )
862 	PORT_DIPSETTING(      0x000c, DEF_STR( 2C_1C ) )
863 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_1C ) )
864 	PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
865 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_3C ) )
866 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
867 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_5C ) )
868 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
869 	PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) )
870 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
871 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_1C ) )
872 	PORT_DIPSETTING(      0x0070, DEF_STR( 1C_1C ) )
873 	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_2C ) )
874 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_3C ) )
875 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
876 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_5C ) )
877 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
878 	PORT_DIPNAME( 0x0080, 0x0080, "2 Coins to Start, 1 to Continue" )
879 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
880 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
881 
882 	PORT_START
883 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
884 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
885 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
886 	PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) )
887 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
888 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
889 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
890 	PORT_DIPSETTING(      0x0008, "Easy" )
891 	PORT_DIPSETTING(      0x000c, "Normal" )
892 	PORT_DIPSETTING(      0x0004, "Hard" )
893 	PORT_DIPSETTING(      0x0000, "Hardest" )
894 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
895 	PORT_DIPSETTING(      0x0020, "1" )
896 	PORT_DIPSETTING(      0x0010, "2" )
897 	PORT_DIPSETTING(      0x0030, "3" )
898 	PORT_DIPSETTING(      0x0000, "4" )
899 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Bonus_Life ) )
900 	PORT_DIPSETTING(      0x0040, "200000" )
901 	PORT_DIPSETTING(      0x0000, "300000" )
902 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
903 
904 	PORT_START
905 	PORT_DIPNAME( 0x000f, 0x0000, "Country" )
906 	PORT_DIPSETTING(      0x0000, "Any" )
907 	PORT_DIPSETTING(      0x000f, "USA" )
908 	PORT_DIPSETTING(      0x000e, "Korea" )
909 	PORT_DIPSETTING(      0x000d, "Hong Kong" )
910 	PORT_DIPSETTING(      0x000b, "Taiwan" )
911 INPUT_PORTS_END
912 
913 
914 
915 static struct GfxLayout pspikes_charlayout =
916 {
917 	8,8,
918 	RGN_FRAC(1,1),
919 	4,
920 	{ 0, 1, 2, 3 },
921 	{ 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4 },
922 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
923 	32*8
924 };
925 
926 static struct GfxLayout aerofgt_charlayout =
927 {
928 	8,8,
929 	RGN_FRAC(1,1),
930 	4,
931 	{ 0, 1, 2, 3 },
932 	{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
933 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
934 	32*8
935 };
936 
937 static struct GfxLayout pspikes_spritelayout =
938 {
939 	16,16,
940 	RGN_FRAC(1,2),
941 	4,
942 	{ 0, 1, 2, 3 },
943 	{ 1*4, 0*4, 3*4, 2*4, RGN_FRAC(1,2)+1*4, RGN_FRAC(1,2)+0*4, RGN_FRAC(1,2)+3*4, RGN_FRAC(1,2)+2*4,
944 			5*4, 4*4, 7*4, 6*4, RGN_FRAC(1,2)+5*4, RGN_FRAC(1,2)+4*4, RGN_FRAC(1,2)+7*4, RGN_FRAC(1,2)+6*4 },
945 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
946 			8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
947 	64*8
948 };
949 
950 static struct GfxLayout aerofgtb_spritelayout =
951 {
952 	16,16,
953 	RGN_FRAC(1,2),
954 	4,
955 	{ 0, 1, 2, 3 },
956 	{ 3*4, 2*4, 1*4, 0*4, RGN_FRAC(1,2)+3*4, RGN_FRAC(1,2)+2*4, RGN_FRAC(1,2)+1*4, RGN_FRAC(1,2)+0*4,
957 			7*4, 6*4, 5*4, 4*4, RGN_FRAC(1,2)+7*4, RGN_FRAC(1,2)+6*4, RGN_FRAC(1,2)+5*4, RGN_FRAC(1,2)+4*4 },
958 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
959 			8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
960 	64*8
961 };
962 
963 static struct GfxLayout aerofgt_spritelayout =
964 {
965 	16,16,
966 	RGN_FRAC(1,1),
967 	4,
968 	{ 0, 1, 2, 3 },
969 	{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4,
970 			10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 },
971 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
972 			8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
973 	128*8
974 };
975 
976 static struct GfxDecodeInfo pspikes_gfxdecodeinfo[] =
977 {
978 	{ REGION_GFX1, 0, &pspikes_charlayout,      0, 64 },	/* colors    0-1023 in 8 banks */
979 	{ REGION_GFX2, 0, &pspikes_spritelayout, 1024, 64 },	/* colors 1024-2047 in 4 banks */
980 	{ -1 } /* end of array */
981 };
982 
983 static struct GfxDecodeInfo turbofrc_gfxdecodeinfo[] =
984 {
985 	{ REGION_GFX1, 0, &pspikes_charlayout,     0, 16 },
986 	{ REGION_GFX2, 0, &pspikes_charlayout,   256, 16 },
987 	{ REGION_GFX3, 0, &pspikes_spritelayout, 512, 16 },
988 	{ REGION_GFX4, 0, &pspikes_spritelayout, 768, 16 },
989 	{ -1 } /* end of array */
990 };
991 
992 static struct GfxDecodeInfo aerofgtb_gfxdecodeinfo[] =
993 {
994 	{ REGION_GFX1, 0, &pspikes_charlayout,      0, 16 },
995 	{ REGION_GFX2, 0, &pspikes_charlayout,    256, 16 },
996 	{ REGION_GFX3, 0, &aerofgtb_spritelayout, 512, 16 },
997 	{ REGION_GFX4, 0, &aerofgtb_spritelayout, 768, 16 },
998 	{ -1 } /* end of array */
999 };
1000 
1001 static struct GfxDecodeInfo aerofgt_gfxdecodeinfo[] =
1002 {
1003 	{ REGION_GFX1, 0, &aerofgt_charlayout,     0, 16 },
1004 	{ REGION_GFX1, 0, &aerofgt_charlayout,   256, 16 },
1005 	{ REGION_GFX2, 0, &aerofgt_spritelayout, 512, 16 },
1006 	{ REGION_GFX3, 0, &aerofgt_spritelayout, 768, 16 },
1007 	{ -1 } /* end of array */
1008 };
1009 
1010 
1011 
irqhandler(int irq)1012 static void irqhandler(int irq)
1013 {
1014 	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
1015 }
1016 
1017 static struct YM2610interface ym2610_interface =
1018 {
1019 	1,
1020 	8000000,	/* 8 MHz??? */
1021 	{ 25 },
1022 	{ 0 },
1023 	{ 0 },
1024 	{ 0 },
1025 	{ 0 },
1026 	{ irqhandler },
1027 	{ REGION_SOUND1 },
1028 	{ REGION_SOUND2 },
1029 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) }
1030 };
1031 
1032 
1033 
1034 static MACHINE_DRIVER_START( pspikes )
1035 
1036 	/* basic machine hardware */
1037 	MDRV_CPU_ADD(M68000,20000000/2)	/* 10 MHz (?) */
1038 	MDRV_CPU_MEMORY(pspikes_readmem,pspikes_writemem)
1039 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
1040 
1041 	MDRV_CPU_ADD(Z80,8000000/2)
1042 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
1043 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
1044 	MDRV_CPU_PORTS(turbofrc_sound_readport,turbofrc_sound_writeport)
1045 								/* IRQs are triggered by the YM2610 */
1046 	MDRV_FRAMES_PER_SECOND(60)
1047 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1048 
1049 	MDRV_MACHINE_INIT(aerofgt)
1050 
1051 	/* video hardware */
1052 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1053 	MDRV_SCREEN_SIZE(64*8, 32*8)
1054 	MDRV_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
1055 	MDRV_GFXDECODE(pspikes_gfxdecodeinfo)
1056 	MDRV_PALETTE_LENGTH(2048)
1057 
1058 	MDRV_VIDEO_START(pspikes)
1059 	MDRV_VIDEO_UPDATE(pspikes)
1060 
1061 	/* sound hardware */
1062 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1063 	MDRV_SOUND_ADD(YM2610, ym2610_interface)
1064 MACHINE_DRIVER_END
1065 
1066 static MACHINE_DRIVER_START( karatblz )
1067 
1068 	/* basic machine hardware */
1069 	MDRV_CPU_ADD(M68000,20000000/2)	/* 10 MHz (?) */
1070 	MDRV_CPU_MEMORY(karatblz_readmem,karatblz_writemem)
1071 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
1072 
1073 	MDRV_CPU_ADD(Z80,8000000/2)
1074 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
1075 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
1076 	MDRV_CPU_PORTS(turbofrc_sound_readport,turbofrc_sound_writeport)
1077 								/* IRQs are triggered by the YM2610 */
1078 	MDRV_FRAMES_PER_SECOND(60)
1079 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1080 
1081 	MDRV_MACHINE_INIT(aerofgt)
1082 
1083 	/* video hardware */
1084 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1085 	MDRV_SCREEN_SIZE(64*8, 32*8)
1086 	MDRV_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1)
1087 	MDRV_GFXDECODE(turbofrc_gfxdecodeinfo)
1088 	MDRV_PALETTE_LENGTH(1024)
1089 
1090 	MDRV_VIDEO_START(karatblz)
1091 	MDRV_VIDEO_UPDATE(karatblz)
1092 
1093 	/* sound hardware */
1094 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1095 	MDRV_SOUND_ADD(YM2610, ym2610_interface)
1096 MACHINE_DRIVER_END
1097 
1098 static MACHINE_DRIVER_START( spinlbrk )
1099 
1100 	/* basic machine hardware */
1101 	MDRV_CPU_ADD(M68000,20000000/2)	/* 10 MHz (?) */
1102 	MDRV_CPU_MEMORY(spinlbrk_readmem,spinlbrk_writemem)
1103 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* there are vectors for 3 and 4 too */
1104 
1105 	MDRV_CPU_ADD(Z80,8000000/2)
1106 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
1107 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
1108 	MDRV_CPU_PORTS(turbofrc_sound_readport,turbofrc_sound_writeport)
1109 								/* IRQs are triggered by the YM2610 */
1110 	MDRV_FRAMES_PER_SECOND(60)
1111 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1112 
1113 	MDRV_MACHINE_INIT(aerofgt)
1114 
1115 	/* video hardware */
1116 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1117 	MDRV_SCREEN_SIZE(64*8, 32*8)
1118 	MDRV_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1)
1119 	MDRV_GFXDECODE(turbofrc_gfxdecodeinfo)
1120 	MDRV_PALETTE_LENGTH(1024)
1121 
1122 	MDRV_VIDEO_START(spinlbrk)
1123 	MDRV_VIDEO_UPDATE(spinlbrk)
1124 
1125 	/* sound hardware */
1126 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1127 	MDRV_SOUND_ADD(YM2610, ym2610_interface)
1128 MACHINE_DRIVER_END
1129 
1130 static MACHINE_DRIVER_START( turbofrc )
1131 
1132 	/* basic machine hardware */
1133 	MDRV_CPU_ADD(M68000,20000000/2)	/* 10 MHz (?) */
1134 	MDRV_CPU_MEMORY(turbofrc_readmem,turbofrc_writemem)
1135 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
1136 
1137 	MDRV_CPU_ADD(Z80,8000000/2)
1138 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
1139 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
1140 	MDRV_CPU_PORTS(turbofrc_sound_readport,turbofrc_sound_writeport)
1141 								/* IRQs are triggered by the YM2610 */
1142 	MDRV_FRAMES_PER_SECOND(60)
1143 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1144 
1145 	MDRV_MACHINE_INIT(aerofgt)
1146 
1147 	/* video hardware */
1148 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1149 	MDRV_SCREEN_SIZE(64*8, 32*8)
1150 	MDRV_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
1151 	MDRV_GFXDECODE(turbofrc_gfxdecodeinfo)
1152 	MDRV_PALETTE_LENGTH(1024)
1153 
1154 	MDRV_VIDEO_START(turbofrc)
1155 	MDRV_VIDEO_UPDATE(turbofrc)
1156 
1157 	/* sound hardware */
1158 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1159 	MDRV_SOUND_ADD(YM2610, ym2610_interface)
1160 MACHINE_DRIVER_END
1161 
1162 static MACHINE_DRIVER_START( aerofgtb )
1163 
1164 	/* basic machine hardware */
1165 	MDRV_CPU_ADD(M68000,20000000/2)	/* 10 MHz (?) */
1166 	MDRV_CPU_MEMORY(aerofgtb_readmem,aerofgtb_writemem)
1167 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
1168 
1169 	MDRV_CPU_ADD(Z80,8000000/2)
1170 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
1171 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
1172 	MDRV_CPU_PORTS(aerofgt_sound_readport,aerofgt_sound_writeport)
1173 								/* IRQs are triggered by the YM2610 */
1174 	MDRV_FRAMES_PER_SECOND(60)
1175 	MDRV_VBLANK_DURATION(500)
1176 				/* wrong but improves sprite-background synchronization */
1177 
1178 	MDRV_MACHINE_INIT(aerofgt)
1179 
1180 	/* video hardware */
1181 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1182 	MDRV_SCREEN_SIZE(64*8, 32*8)
1183 	MDRV_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
1184 	MDRV_GFXDECODE(aerofgtb_gfxdecodeinfo)
1185 	MDRV_PALETTE_LENGTH(1024)
1186 
1187 	MDRV_VIDEO_START(turbofrc)
1188 	MDRV_VIDEO_UPDATE(turbofrc)
1189 
1190 	/* sound hardware */
1191 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1192 	MDRV_SOUND_ADD(YM2610, ym2610_interface)
1193 MACHINE_DRIVER_END
1194 
1195 static MACHINE_DRIVER_START( aerofgt )
1196 
1197 	/* basic machine hardware */
1198 	MDRV_CPU_ADD(M68000,20000000/2)	/* 10 MHz (?) */
1199 	MDRV_CPU_MEMORY(aerofgt_readmem,aerofgt_writemem)
1200 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
1201 
1202 	MDRV_CPU_ADD(Z80,8000000/2)
1203 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
1204 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
1205 	MDRV_CPU_PORTS(aerofgt_sound_readport,aerofgt_sound_writeport)
1206 								/* IRQs are triggered by the YM2610 */
1207 	MDRV_FRAMES_PER_SECOND(60)
1208 	MDRV_VBLANK_DURATION(400)
1209 				/* wrong but improves sprite-background synchronization */
1210 
1211 	MDRV_MACHINE_INIT(aerofgt)
1212 
1213 	/* video hardware */
1214 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1215 	MDRV_SCREEN_SIZE(64*8, 32*8)
1216 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1217 	MDRV_GFXDECODE(aerofgt_gfxdecodeinfo)
1218 	MDRV_PALETTE_LENGTH(1024)
1219 
1220 	MDRV_VIDEO_START(turbofrc)
1221 	MDRV_VIDEO_UPDATE(aerofgt)
1222 
1223 	/* sound hardware */
1224 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1225 	MDRV_SOUND_ADD(YM2610, ym2610_interface)
1226 MACHINE_DRIVER_END
1227 
1228 
1229 
1230 /***************************************************************************
1231 
1232   Game driver(s)
1233 
1234 ***************************************************************************/
1235 
1236 ROM_START( pspikes )
1237 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )	/* 68000 code */
1238 	ROM_LOAD16_WORD_SWAP( "pspikes2.bin", 0x00000, 0x40000, CRC(ec0c070e) SHA1(4ddcc184e835a2f9d15f01aaa03734fd75fe797e) )
1239 
1240 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1241 	ROM_LOAD( "19",           0x00000, 0x20000, CRC(7e8ed6e5) SHA1(eeb1a1e1989fad8fc1e741928422efaec0598868) )
1242 	ROM_RELOAD(               0x10000, 0x20000 )
1243 
1244 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )
1245 	ROM_LOAD( "g7h",          0x000000, 0x80000, CRC(74c23c3d) SHA1(c0ac57d1f05c42556f97154ce1a08f465948546b) )
1246 
1247 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1248 	ROM_LOAD( "g7j",          0x000000, 0x80000, CRC(0b9e4739) SHA1(64b440a5026735aafe1a7cc2806fe0d78f4a6fba) )
1249 	ROM_LOAD( "g7l",          0x080000, 0x80000, CRC(943139ff) SHA1(59065f9c3b3a47159c5968df199bdcb1b4f51f29) )
1250 
1251 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1252 	ROM_LOAD( "a47",          0x00000, 0x40000, CRC(c6779dfa) SHA1(ea7adefdb0da02755428aac9a6f86c908fc11253) )
1253 
1254 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1255 	ROM_LOAD( "o5b",          0x000000, 0x100000, CRC(07d6cbac) SHA1(d3d5778dbaca7b6cdceae959d0847d56df7b5cc1) )
1256 ROM_END
1257 
1258 ROM_START( pspikesk )
1259 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )	/* 68000 code */
1260 	ROM_LOAD16_WORD_SWAP( "20",           0x00000, 0x40000, CRC(75cdcee2) SHA1(272a08c46c1d0989f9fbb156e28e6a7ffa9c0a53) )
1261 
1262 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1263 	ROM_LOAD( "19",           0x00000, 0x20000, CRC(7e8ed6e5) SHA1(eeb1a1e1989fad8fc1e741928422efaec0598868) )
1264 	ROM_RELOAD(               0x10000, 0x20000 )
1265 
1266 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )
1267 	ROM_LOAD( "g7h",          0x000000, 0x80000, CRC(74c23c3d) SHA1(c0ac57d1f05c42556f97154ce1a08f465948546b) )
1268 
1269 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1270 	ROM_LOAD( "g7j",          0x000000, 0x80000, CRC(0b9e4739) SHA1(64b440a5026735aafe1a7cc2806fe0d78f4a6fba) )
1271 	ROM_LOAD( "g7l",          0x080000, 0x80000, CRC(943139ff) SHA1(59065f9c3b3a47159c5968df199bdcb1b4f51f29) )
1272 
1273 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1274 	ROM_LOAD( "a47",          0x00000, 0x40000, CRC(c6779dfa) SHA1(ea7adefdb0da02755428aac9a6f86c908fc11253) )
1275 
1276 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1277 	ROM_LOAD( "o5b",          0x000000, 0x100000, CRC(07d6cbac) SHA1(d3d5778dbaca7b6cdceae959d0847d56df7b5cc1) )
1278 ROM_END
1279 
1280 ROM_START( svolly91 )
1281 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )	/* 68000 code */
1282 	ROM_LOAD16_WORD_SWAP( "u11.jpn",      0x00000, 0x40000, CRC(ea2e4c82) SHA1(f9cf9122499d9b1e54221fb8b6ef9c12004ca85e) )
1283 
1284 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1285 	ROM_LOAD( "19",           0x00000, 0x20000, CRC(7e8ed6e5) SHA1(eeb1a1e1989fad8fc1e741928422efaec0598868) )
1286 	ROM_RELOAD(               0x10000, 0x20000 )
1287 
1288 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )
1289 	ROM_LOAD( "g7h",          0x000000, 0x80000, CRC(74c23c3d) SHA1(c0ac57d1f05c42556f97154ce1a08f465948546b) )
1290 
1291 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1292 	ROM_LOAD( "g7j",          0x000000, 0x80000, CRC(0b9e4739) SHA1(64b440a5026735aafe1a7cc2806fe0d78f4a6fba) )
1293 	ROM_LOAD( "g7l",          0x080000, 0x80000, CRC(943139ff) SHA1(59065f9c3b3a47159c5968df199bdcb1b4f51f29) )
1294 
1295 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1296 	ROM_LOAD( "a47",          0x00000, 0x40000, CRC(c6779dfa) SHA1(ea7adefdb0da02755428aac9a6f86c908fc11253) )
1297 
1298 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1299 	ROM_LOAD( "o5b",          0x000000, 0x100000, CRC(07d6cbac) SHA1(d3d5778dbaca7b6cdceae959d0847d56df7b5cc1) )
1300 ROM_END
1301 
1302 ROM_START( spinlbrk )
1303 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 68000 code */
1304 	ROM_LOAD16_BYTE( "ic98",    0x00000, 0x10000, CRC(36c2bf70) SHA1(f627d0e7dad1760bcc95af4a6346050a1a277048) )
1305 	ROM_LOAD16_BYTE( "ic104",   0x00001, 0x10000, CRC(34a7e158) SHA1(5884570c1be38bfedffca3fd38089d0ae3391d4f) )
1306 	ROM_LOAD16_BYTE( "ic93",    0x20000, 0x10000, CRC(726f4683) SHA1(65aff0548333571d47a96d4bf5a7857f12399cc7) )
1307 	ROM_LOAD16_BYTE( "ic94",    0x20001, 0x10000, CRC(c4385e03) SHA1(6683eed812fa8a5430125b14e8647f8e9024bbdd) )
1308 
1309 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1310 	ROM_LOAD( "ic117",        0x00000, 0x08000, CRC(625ada41) SHA1(2dd0674c68ea382431115c155afbf880f5b9deb2) )
1311 	ROM_LOAD( "ic118",        0x10000, 0x10000, CRC(1025f024) SHA1(3e497c74c950d2cd2a0931cf2ae9b0124d11ca6a) )
1312 
1313 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1314 	ROM_LOAD( "ic15",         0x000000, 0x80000, CRC(e318cf3a) SHA1(d634001a0029566ce7b8fa30075970919eb5f44e) )
1315 	ROM_LOAD( "ic9",          0x080000, 0x80000, CRC(e071f674) SHA1(b6d98d7fcc28516d937d8c655d07305515be8a20) )
1316 
1317 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1318 	ROM_LOAD( "ic17",         0x000000, 0x80000, CRC(a63d5a55) SHA1(a942651a206a2abe4f60f0717e1d5d8e89b993d4) )
1319 	ROM_LOAD( "ic11",         0x080000, 0x80000, CRC(7dcc913d) SHA1(527bae5020581d1ac322ea25c8e0994d54bbc051) )
1320 	ROM_LOAD( "ic16",         0x100000, 0x80000, CRC(0d84af7f) SHA1(07356ee61c84c4c4ccb49c8dfe8c468990580041) )	/*FIRST AND SECOND HALF IDENTICAL*/
1321 
1322 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1323 	ROM_LOAD( "ic12",         0x000000, 0x80000, CRC(d63fac4e) SHA1(bb96d2e41334d136b9208dbe7e88a45e3bbc6542) )
1324 	ROM_LOAD( "ic18",         0x080000, 0x80000, CRC(5a60444b) SHA1(62c418aedd1087dac82dcb44830cce00278103dd) )
1325 
1326 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1327 	ROM_LOAD( "ic14",         0x000000, 0x80000, CRC(1befd0f3) SHA1(7ab6fb5bf814ef3ae9a306a0d32d1078ee594461) )
1328 	ROM_LOAD( "ic20",         0x080000, 0x80000, CRC(c2f84a61) SHA1(1dce538ced54a61c43ed25e1d71b5ac1c8935cc5) )
1329 	ROM_LOAD( "ic35",         0x100000, 0x80000, CRC(eba8e1a3) SHA1(976ef30437df9aba6fa6d5cd11728476f34eb05b) )
1330 	ROM_LOAD( "ic40",         0x180000, 0x80000, CRC(5ef5aa7e) SHA1(8d4b0f2348c536c6781c8ba25722301673aca289) )
1331 
1332 	ROM_REGION16_BE( 0x24000, REGION_GFX5, 0 )	/* hardcoded sprite maps */
1333 	ROM_LOAD16_BYTE( "ic19",    0x00000, 0x10000, CRC(db24eeaa) SHA1(300dd1ce81dd258b265bc3a64b8542ed152ed2cf) )
1334 	ROM_LOAD16_BYTE( "ic13",    0x00001, 0x10000, CRC(97025bf4) SHA1(0519f0c94f3d417bf8ff0124a3a137035a4013dc) )
1335 	/* 20000-23fff empty space, filled in vh_startup */
1336 
1337 	/* no REGION_SOUND1 */
1338 
1339 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1340 	ROM_LOAD( "ic166",        0x000000, 0x80000, CRC(6e0d063a) SHA1(313983e69f9625814de033fef7f6e9564694117a) )
1341 	ROM_LOAD( "ic163",        0x080000, 0x80000, CRC(e6621dfb) SHA1(85ee77c4720b7eb20ecf293c16b3105c8dcb1114) )	/*FIRST AND SECOND HALF IDENTICAL*/
1342 ROM_END
1343 
1344 ROM_START( spinlbru )
1345 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 68000 code */
1346 	ROM_LOAD16_BYTE( "ic98.u5", 0x00000, 0x10000, CRC(3a0f7667) SHA1(55d5fa1a325c17532ed83d231032bdbe9fb84d85) )
1347 	ROM_LOAD16_BYTE( "ic104.u6",0x00001, 0x10000, CRC(a0e0af31) SHA1(21f6c3246bb7be2fd926324fd6d041e319a4e214) )
1348 	ROM_LOAD16_BYTE( "ic93.u4", 0x20000, 0x10000, CRC(0cf73029) SHA1(e1346b759a41f9eec9536dc90671778582e595b4) )
1349 	ROM_LOAD16_BYTE( "ic94.u3", 0x20001, 0x10000, CRC(5cf7c426) SHA1(b201da40c4511d2845004dff72d36adbb8a4fab9) )
1350 
1351 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1352 	ROM_LOAD( "ic117",        0x00000, 0x08000, CRC(625ada41) SHA1(2dd0674c68ea382431115c155afbf880f5b9deb2) )
1353 	ROM_LOAD( "ic118",        0x10000, 0x10000, CRC(1025f024) SHA1(3e497c74c950d2cd2a0931cf2ae9b0124d11ca6a) )
1354 
1355 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1356 	ROM_LOAD( "ic15",         0x000000, 0x80000, CRC(e318cf3a) SHA1(d634001a0029566ce7b8fa30075970919eb5f44e) )
1357 	ROM_LOAD( "ic9",          0x080000, 0x80000, CRC(e071f674) SHA1(b6d98d7fcc28516d937d8c655d07305515be8a20) )
1358 
1359 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1360 	ROM_LOAD( "ic17",         0x000000, 0x80000, CRC(a63d5a55) SHA1(a942651a206a2abe4f60f0717e1d5d8e89b993d4) )
1361 	ROM_LOAD( "ic11",         0x080000, 0x80000, CRC(7dcc913d) SHA1(527bae5020581d1ac322ea25c8e0994d54bbc051) )
1362 	ROM_LOAD( "ic16",         0x100000, 0x80000, CRC(0d84af7f) SHA1(07356ee61c84c4c4ccb49c8dfe8c468990580041) )	/*FIRST AND SECOND HALF IDENTICAL*/
1363 
1364 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1365 	ROM_LOAD( "ic12",         0x000000, 0x80000, CRC(d63fac4e) SHA1(bb96d2e41334d136b9208dbe7e88a45e3bbc6542) )
1366 	ROM_LOAD( "ic18",         0x080000, 0x80000, CRC(5a60444b) SHA1(62c418aedd1087dac82dcb44830cce00278103dd) )
1367 
1368 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1369 	ROM_LOAD( "ic14",         0x000000, 0x80000, CRC(1befd0f3) SHA1(7ab6fb5bf814ef3ae9a306a0d32d1078ee594461) )
1370 	ROM_LOAD( "ic20",         0x080000, 0x80000, CRC(c2f84a61) SHA1(1dce538ced54a61c43ed25e1d71b5ac1c8935cc5) )
1371 	ROM_LOAD( "ic35",         0x100000, 0x80000, CRC(eba8e1a3) SHA1(976ef30437df9aba6fa6d5cd11728476f34eb05b) )
1372 	ROM_LOAD( "ic40",         0x180000, 0x80000, CRC(5ef5aa7e) SHA1(8d4b0f2348c536c6781c8ba25722301673aca289) )
1373 
1374 	ROM_REGION16_BE( 0x24000, REGION_GFX5, 0 )	/* hardcoded sprite maps */
1375 	ROM_LOAD16_BYTE( "ic19",    0x00000, 0x10000, CRC(db24eeaa) SHA1(300dd1ce81dd258b265bc3a64b8542ed152ed2cf) )
1376 	ROM_LOAD16_BYTE( "ic13",    0x00001, 0x10000, CRC(97025bf4) SHA1(0519f0c94f3d417bf8ff0124a3a137035a4013dc) )
1377 	/* 20000-23fff empty space, filled in vh_startup */
1378 
1379 	/* no REGION_SOUND1 */
1380 
1381 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1382 	ROM_LOAD( "ic166",        0x000000, 0x80000, CRC(6e0d063a) SHA1(313983e69f9625814de033fef7f6e9564694117a) )
1383 	ROM_LOAD( "ic163",        0x080000, 0x80000, CRC(e6621dfb) SHA1(85ee77c4720b7eb20ecf293c16b3105c8dcb1114) )	/*FIRST AND SECOND HALF IDENTICAL*/
1384 ROM_END
1385 
1386 ROM_START( spinlbrj )
1387 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 68000 code */
1388 	ROM_LOAD16_BYTE( "j5",      0x00000, 0x10000, CRC(6a3d690e) SHA1(4ac1985ea0a73b8fc12105ff75121718595dd171) )
1389 	ROM_LOAD16_BYTE( "j6",      0x00001, 0x10000, CRC(869593fa) SHA1(5821b011d42113f247bd100cecf140bbfc1e969c) )
1390 	ROM_LOAD16_BYTE( "j4",      0x20000, 0x10000, CRC(33e33912) SHA1(d6d052cd8dbedfd254bdf5e82ad770e4bf241777) )
1391 	ROM_LOAD16_BYTE( "j3",      0x20001, 0x10000, CRC(16ca61d0) SHA1(5d99a1261251412c3c758af751997fe31026c0d6) )
1392 
1393 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1394 	ROM_LOAD( "ic117",        0x00000, 0x08000, CRC(625ada41) SHA1(2dd0674c68ea382431115c155afbf880f5b9deb2) )
1395 	ROM_LOAD( "ic118",        0x10000, 0x10000, CRC(1025f024) SHA1(3e497c74c950d2cd2a0931cf2ae9b0124d11ca6a) )
1396 
1397 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1398 	ROM_LOAD( "ic15",         0x000000, 0x80000, CRC(e318cf3a) SHA1(d634001a0029566ce7b8fa30075970919eb5f44e) )
1399 	ROM_LOAD( "ic9",          0x080000, 0x80000, CRC(e071f674) SHA1(b6d98d7fcc28516d937d8c655d07305515be8a20) )
1400 
1401 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1402 	ROM_LOAD( "ic17",         0x000000, 0x80000, CRC(a63d5a55) SHA1(a942651a206a2abe4f60f0717e1d5d8e89b993d4) )
1403 	ROM_LOAD( "ic11",         0x080000, 0x80000, CRC(7dcc913d) SHA1(527bae5020581d1ac322ea25c8e0994d54bbc051) )
1404 	ROM_LOAD( "ic16",         0x100000, 0x80000, CRC(0d84af7f) SHA1(07356ee61c84c4c4ccb49c8dfe8c468990580041) )	/*FIRST AND SECOND HALF IDENTICAL*/
1405 
1406 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1407 	ROM_LOAD( "ic12",         0x000000, 0x80000, CRC(d63fac4e) SHA1(bb96d2e41334d136b9208dbe7e88a45e3bbc6542) )
1408 	ROM_LOAD( "ic18",         0x080000, 0x80000, CRC(5a60444b) SHA1(62c418aedd1087dac82dcb44830cce00278103dd) )
1409 
1410 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1411 	ROM_LOAD( "ic14",         0x000000, 0x80000, CRC(1befd0f3) SHA1(7ab6fb5bf814ef3ae9a306a0d32d1078ee594461) )
1412 	ROM_LOAD( "ic20",         0x080000, 0x80000, CRC(c2f84a61) SHA1(1dce538ced54a61c43ed25e1d71b5ac1c8935cc5) )
1413 	ROM_LOAD( "ic35",         0x100000, 0x80000, CRC(eba8e1a3) SHA1(976ef30437df9aba6fa6d5cd11728476f34eb05b) )
1414 	ROM_LOAD( "ic40",         0x180000, 0x80000, CRC(5ef5aa7e) SHA1(8d4b0f2348c536c6781c8ba25722301673aca289) )
1415 
1416 	ROM_REGION16_BE( 0x24000, REGION_GFX5, 0 )	/* hardcoded sprite maps */
1417 	ROM_LOAD16_BYTE( "ic19",    0x00000, 0x10000, CRC(db24eeaa) SHA1(300dd1ce81dd258b265bc3a64b8542ed152ed2cf) )
1418 	ROM_LOAD16_BYTE( "ic13",    0x00001, 0x10000, CRC(97025bf4) SHA1(0519f0c94f3d417bf8ff0124a3a137035a4013dc) )
1419 	/* 20000-23fff empty space, filled in vh_startup */
1420 
1421 	/* no REGION_SOUND1 */
1422 
1423 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1424 	ROM_LOAD( "ic166",        0x000000, 0x80000, CRC(6e0d063a) SHA1(313983e69f9625814de033fef7f6e9564694117a) )
1425 	ROM_LOAD( "ic163",        0x080000, 0x80000, CRC(e6621dfb) SHA1(85ee77c4720b7eb20ecf293c16b3105c8dcb1114) )	/*FIRST AND SECOND HALF IDENTICAL*/
1426 ROM_END
1427 
1428 ROM_START( karatblz )
1429 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 68000 code */
1430 	ROM_LOAD16_WORD_SWAP( "rom2v3",  0x00000, 0x40000, CRC(01f772e1) SHA1(f87f19a82d75839b5671f23ce14218d7b910eabc) )
1431 	ROM_LOAD16_WORD_SWAP( "1.u15",   0x40000, 0x40000, CRC(d16ee21b) SHA1(d454cdf22b72a537b9d7ae73deb8136a4f09da47) )
1432 
1433 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1434 	ROM_LOAD( "5.u92",        0x00000, 0x20000, CRC(97d67510) SHA1(1ffd419e3dec7de1099cd5819b0309f7dd0df80e) )
1435 	ROM_RELOAD(               0x10000, 0x20000 )
1436 
1437 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
1438 	ROM_LOAD( "gha.u55",      0x00000, 0x80000, CRC(3e0cea91) SHA1(bab41715f106d364013b64649441d280bc6893cf) )
1439 
1440 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
1441 	ROM_LOAD( "gh9.u61",      0x00000, 0x80000, CRC(5d1676bd) SHA1(6227d489c9c6259a0ac2bef62821fbf94efca8c6) )
1442 
1443 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )
1444 	ROM_LOAD( "u42",          0x000000, 0x100000, CRC(65f0da84) SHA1(0bfbc6f4b87583703246704eb9fa13b1b3e6f90e) )
1445 	ROM_LOAD( "3.u44",        0x100000, 0x020000, CRC(34bdead2) SHA1(99f9a8cac807fcd599db55d2dc624ed92a3862ef) )
1446 	ROM_LOAD( "u43",          0x200000, 0x100000, CRC(7b349e5d) SHA1(8590a328f403e2c697a8d698c08d4adaf01fff62) )
1447 	ROM_LOAD( "4.u45",        0x300000, 0x020000, CRC(be4d487d) SHA1(6d19c91d0498c43017219f0c10f4845a51ccfa7f) )
1448 
1449 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE )
1450 	ROM_LOAD( "u59.ghb",      0x000000, 0x80000, CRC(158c9cde) SHA1(a2c1b404d40e6c2627691f5c7a3f63484bd5d2de) )
1451 	ROM_LOAD( "ghd.u60",      0x080000, 0x80000, CRC(73180ae3) SHA1(e4eaf6693826d9e72032d0a0e25938a23ab7d792) )
1452 
1453 	ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* sound samples */
1454 	ROM_LOAD( "u105.gh8",     0x000000, 0x080000, CRC(7a68cb1b) SHA1(1bdd0000c2d68019b9e5bf8f7ad84a6ae1af8443) )
1455 
1456 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1457 	ROM_LOAD( "u104",         0x000000, 0x100000, CRC(5795e884) SHA1(a4178497ad0a1e60ceb87612b218d77b36d2a11b) )
1458 ROM_END
1459 
1460 ROM_START( karatblu )
1461 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 68000 code */
1462 	ROM_LOAD16_WORD_SWAP( "2.u14",   0x00000, 0x40000, CRC(202e6220) SHA1(2605511a0574cbc39fdf3d8ae27a0aa9b43345fb) )
1463 	ROM_LOAD16_WORD_SWAP( "1.u15",   0x40000, 0x40000, CRC(d16ee21b) SHA1(d454cdf22b72a537b9d7ae73deb8136a4f09da47) )
1464 
1465 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1466 	ROM_LOAD( "5.u92",        0x00000, 0x20000, CRC(97d67510) SHA1(1ffd419e3dec7de1099cd5819b0309f7dd0df80e) )
1467 	ROM_RELOAD(               0x10000, 0x20000 )
1468 
1469 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
1470 	ROM_LOAD( "gha.u55",      0x00000, 0x80000, CRC(3e0cea91) SHA1(bab41715f106d364013b64649441d280bc6893cf) )
1471 
1472 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
1473 	ROM_LOAD( "gh9.u61",      0x00000, 0x80000, CRC(5d1676bd) SHA1(6227d489c9c6259a0ac2bef62821fbf94efca8c6) )
1474 
1475 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )
1476 	ROM_LOAD( "u42",          0x000000, 0x100000, CRC(65f0da84) SHA1(0bfbc6f4b87583703246704eb9fa13b1b3e6f90e) )
1477 	ROM_LOAD( "3.u44",        0x100000, 0x020000, CRC(34bdead2) SHA1(99f9a8cac807fcd599db55d2dc624ed92a3862ef) )
1478 	ROM_LOAD( "u43",          0x200000, 0x100000, CRC(7b349e5d) SHA1(8590a328f403e2c697a8d698c08d4adaf01fff62) )
1479 	ROM_LOAD( "4.u45",        0x300000, 0x020000, CRC(be4d487d) SHA1(6d19c91d0498c43017219f0c10f4845a51ccfa7f) )
1480 
1481 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE )
1482 	ROM_LOAD( "u59.ghb",      0x000000, 0x80000, CRC(158c9cde) SHA1(a2c1b404d40e6c2627691f5c7a3f63484bd5d2de) )
1483 	ROM_LOAD( "ghd.u60",      0x080000, 0x80000, CRC(73180ae3) SHA1(e4eaf6693826d9e72032d0a0e25938a23ab7d792) )
1484 
1485 	ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* sound samples */
1486 	ROM_LOAD( "u105.gh8",     0x000000, 0x080000, CRC(7a68cb1b) SHA1(1bdd0000c2d68019b9e5bf8f7ad84a6ae1af8443) )
1487 
1488 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1489 	ROM_LOAD( "u104",         0x000000, 0x100000, CRC(5795e884) SHA1(a4178497ad0a1e60ceb87612b218d77b36d2a11b) )
1490 ROM_END
1491 
1492 ROM_START( turbofrc )
1493 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )	/* 68000 code */
1494 	ROM_LOAD16_WORD_SWAP( "tfrc2.bin",    0x00000, 0x40000, CRC(721300ee) SHA1(79ab32fdfd377592a0bdbd1c4794cfd529a3eb7b) )
1495 	ROM_LOAD16_WORD_SWAP( "tfrc1.bin",    0x40000, 0x40000, CRC(6cd5312b) SHA1(57b109fe268fb963e981c91b6d288667a3c9a665) )
1496 	ROM_LOAD16_WORD_SWAP( "tfrc3.bin",    0x80000, 0x40000, CRC(63f50557) SHA1(f8dba8c9ba412c9a67457ec31a804c57593ab20b) )
1497 
1498 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1499 	ROM_LOAD( "tfrcu166.bin", 0x00000, 0x20000, CRC(2ca14a65) SHA1(95f6e7b4fa7ca26872ff472d7e6fb75fd4f281d5) )
1500 	ROM_RELOAD(               0x10000, 0x20000 )
1501 
1502 	ROM_REGION( 0x0a0000, REGION_GFX1, ROMREGION_DISPOSE )
1503 	ROM_LOAD( "tfrcu94.bin",  0x000000, 0x80000, CRC(baa53978) SHA1(7f103122dd0bf675226ccf309fba73f645e0c79b) )
1504 	ROM_LOAD( "tfrcu95.bin",  0x080000, 0x20000, CRC(71a6c573) SHA1(f14ebca676d85fabcde27631145933abc376dd12) )
1505 
1506 	ROM_REGION( 0x0a0000, REGION_GFX2, ROMREGION_DISPOSE )
1507 	ROM_LOAD( "tfrcu105.bin", 0x000000, 0x80000, CRC(4de4e59e) SHA1(571396dadb8aac043319cabe24e629210e442d57) )
1508 	ROM_LOAD( "tfrcu106.bin", 0x080000, 0x20000, CRC(c6479eb5) SHA1(47a58f082c73bc9dae3970e760ba46478ce6a190) )
1509 
1510 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
1511 	ROM_LOAD( "tfrcu116.bin", 0x000000, 0x80000, CRC(df210f3b) SHA1(990ac43e4a46fee6b929c5b27d317cdadf179b8b) )
1512 	ROM_LOAD( "tfrcu118.bin", 0x080000, 0x40000, CRC(f61d1d79) SHA1(2b8e33912c05c26170afd2fced0ff06cb7a097fa) )
1513 	ROM_LOAD( "tfrcu117.bin", 0x100000, 0x80000, CRC(f70812fd) SHA1(1964e1134940825211cd4825fdd3f13b8242192d) )
1514 	ROM_LOAD( "tfrcu119.bin", 0x180000, 0x40000, CRC(474ea716) SHA1(67753e96fa4fc8cd689a8bddeb60dbde259cacaa) )
1515 
1516 	ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE )
1517 	ROM_LOAD( "tfrcu134.bin", 0x000000, 0x80000, CRC(487330a2) SHA1(0bd36c1f5776ba2773f621e9bcb22f56ed1d84ec) )
1518 	ROM_LOAD( "tfrcu135.bin", 0x080000, 0x80000, CRC(3a7e5b6d) SHA1(0079ffaa1bf93a5087c75615c78ec596b28c9a32) )
1519 
1520 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* sound samples */
1521 	ROM_LOAD( "tfrcu180.bin",   0x00000, 0x20000, CRC(39c7c7d5) SHA1(66ee9f7cbc18ffab2c70f77ab0edead6bb018ca9) )
1522 
1523 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1524 	ROM_LOAD( "tfrcu179.bin", 0x000000, 0x100000, CRC(60ca0333) SHA1(28b94edc98d360386759780ccd1122d43ffa5279) )
1525 ROM_END
1526 
1527 ROM_START( aerofgt )
1528 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 68000 code */
1529 	ROM_LOAD16_WORD_SWAP( "1.u4",         0x00000, 0x80000, CRC(6fdff0a2) SHA1(7cc9529b426091027aa3e23586cb7d162376c0ff) )
1530 
1531 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1532 	ROM_LOAD( "2.153",        0x00000, 0x20000, CRC(a1ef64ec) SHA1(fa3e434738bf4e742ad68882c1e914100ce0f761) )
1533 	ROM_RELOAD(               0x10000, 0x20000 )
1534 
1535 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1536 	ROM_LOAD( "538a54.124",   0x000000, 0x80000, CRC(4d2c4df2) SHA1(f51c2b3135f0a921ac1a79e63d6878c03cb6254b) )
1537 	ROM_LOAD( "1538a54.124",  0x080000, 0x80000, CRC(286d109e) SHA1(3a5f3d2d89cf58f6ef15e4bd3f570b84e8e695b2) )
1538 
1539 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1540 	ROM_LOAD( "538a53.u9",    0x000000, 0x100000, CRC(630d8e0b) SHA1(5a0c252ccd53c5199a695909d25ecb4e53dc15b9) )
1541 
1542 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )
1543 	ROM_LOAD( "534g8f.u18",   0x000000, 0x80000, CRC(76ce0926) SHA1(5ef4cec215d4dd600d8fcd1bd9a4c09081d59e33) )
1544 
1545 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1546 	ROM_LOAD( "it-19-01",     0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
1547 
1548 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1549 	ROM_LOAD( "it-19-06",     0x000000, 0x100000, CRC(cdbbdb1d) SHA1(067c816545f246ff1fd4c821d70df1e7eb47938c) )
1550 ROM_END
1551 
1552 ROM_START( aerofgtb )
1553 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 68000 code */
1554 	ROM_LOAD16_BYTE( "v2",                0x00000, 0x40000, CRC(5c9de9f0) SHA1(93b62c59f0bc052c6fdbd5aae292a7ab2122dfd1) )
1555 	ROM_LOAD16_BYTE( "v1",                0x00001, 0x40000, CRC(89c1dcf4) SHA1(41401d63049c140e4254dc791022d85c44271390) )
1556 
1557 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1558 	ROM_LOAD( "v3",           0x00000, 0x20000, CRC(cbb18cf4) SHA1(7119a7536cf710660ff06d1e7d2879c79ef12b3d) )
1559 	ROM_RELOAD(               0x10000, 0x20000 )
1560 
1561 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )
1562 	ROM_LOAD( "it-19-03",     0x000000, 0x80000, CRC(85eba1a4) SHA1(5691a95d6359fdab29be0d615066370c2b856c0a) )
1563 
1564 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1565 	ROM_LOAD( "it-19-02",     0x000000, 0x80000, CRC(4f57f8ba) SHA1(aaad548e9a7490dfd48a975135716225f416b6f6) )
1566 
1567 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1568 	ROM_LOAD( "it-19-04",     0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
1569 	ROM_LOAD( "it-19-05",     0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
1570 
1571 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE )
1572 	ROM_LOAD( "g27",          0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
1573 	ROM_LOAD( "g26",          0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
1574 
1575 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1576 	ROM_LOAD( "it-19-01",     0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
1577 
1578 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1579 	ROM_LOAD( "it-19-06",     0x000000, 0x100000, CRC(cdbbdb1d) SHA1(067c816545f246ff1fd4c821d70df1e7eb47938c) )
1580 ROM_END
1581 
1582 ROM_START( aerofgtc )
1583 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 68000 code */
1584 	ROM_LOAD16_BYTE( "v2.149",            0x00000, 0x40000, CRC(f187aec6) SHA1(8905af34f114ae22fbfbd3ae115f19280bdd4fb3) )
1585 	ROM_LOAD16_BYTE( "v1.111",            0x00001, 0x40000, CRC(9e684b19) SHA1(b5e1e5b74ed9fd223c9315ee2d548e620224c102) )
1586 
1587 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1588 	ROM_LOAD( "2.153",        0x00000, 0x20000, CRC(a1ef64ec) SHA1(fa3e434738bf4e742ad68882c1e914100ce0f761) )
1589 	ROM_RELOAD(               0x10000, 0x20000 )
1590 
1591 	/* gfx ROMs were missing in this set, I'm using the aerofgtb ones */
1592 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )
1593 	ROM_LOAD( "it-19-03",     0x000000, 0x80000, CRC(85eba1a4) SHA1(5691a95d6359fdab29be0d615066370c2b856c0a) )
1594 
1595 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1596 	ROM_LOAD( "it-19-02",     0x000000, 0x80000, CRC(4f57f8ba) SHA1(aaad548e9a7490dfd48a975135716225f416b6f6) )
1597 
1598 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1599 	ROM_LOAD( "it-19-04",     0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
1600 	ROM_LOAD( "it-19-05",     0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
1601 
1602 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE )
1603 	ROM_LOAD( "g27",          0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
1604 	ROM_LOAD( "g26",          0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
1605 
1606 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1607 	ROM_LOAD( "it-19-01",     0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
1608 
1609 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1610 	ROM_LOAD( "it-19-06",     0x000000, 0x100000, CRC(cdbbdb1d) SHA1(067c816545f246ff1fd4c821d70df1e7eb47938c) )
1611 ROM_END
1612 
1613 ROM_START( sonicwi )
1614 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 68000 code */
1615 	ROM_LOAD16_BYTE( "2.149",        0x00000, 0x40000, CRC(3d1b96ba) SHA1(941be323c0cb15e05c92b897984617b05c5cf676) )
1616 	ROM_LOAD16_BYTE( "1.111",        0x00001, 0x40000, CRC(a3d09f94) SHA1(a1064d659488878f5303edc2b8636312ab632a83) )
1617 
1618 	ROM_REGION( 0x30000, REGION_CPU2, 0 )	/* 64k for the audio CPU + banks */
1619 	ROM_LOAD( "2.153",        0x00000, 0x20000, CRC(a1ef64ec) SHA1(fa3e434738bf4e742ad68882c1e914100ce0f761) )	/* 3.156*/
1620 	ROM_RELOAD(               0x10000, 0x20000 )
1621 
1622 	/* gfx ROMs were missing in this set, I'm using the aerofgtb ones */
1623 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )
1624 	ROM_LOAD( "it-19-03",     0x000000, 0x80000, CRC(85eba1a4) SHA1(5691a95d6359fdab29be0d615066370c2b856c0a) )
1625 
1626 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1627 	ROM_LOAD( "it-19-02",     0x000000, 0x80000, CRC(4f57f8ba) SHA1(aaad548e9a7490dfd48a975135716225f416b6f6) )
1628 
1629 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1630 	ROM_LOAD( "it-19-04",     0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
1631 	ROM_LOAD( "it-19-05",     0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
1632 
1633 	ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE )
1634 	ROM_LOAD( "g27",          0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
1635 	ROM_LOAD( "g26",          0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
1636 
1637 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* sound samples */
1638 	ROM_LOAD( "it-19-01",     0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
1639 
1640 	ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */
1641 	ROM_LOAD( "it-19-06",     0x000000, 0x100000, CRC(cdbbdb1d) SHA1(067c816545f246ff1fd4c821d70df1e7eb47938c) )
1642 ROM_END
1643 
1644 
1645 
1646 GAMEX( 1990, spinlbrk, 0,        spinlbrk, spinlbrk, 0, ROT0,   "V-System Co.", "Spinal Breakers (World)", GAME_NO_COCKTAIL )
1647 GAMEX( 1990, spinlbru, spinlbrk, spinlbrk, spinlbrk, 0, ROT0,   "V-System Co.", "Spinal Breakers (US)", GAME_NO_COCKTAIL )
1648 GAMEX( 1990, spinlbrj, spinlbrk, spinlbrk, spinlbrk, 0, ROT0,   "V-System Co.", "Spinal Breakers (Japan)", GAME_NO_COCKTAIL )
1649 GAMEX( 1991, pspikes,  0,        pspikes,  pspikes,  0, ROT0,   "Video System Co.", "Power Spikes (World)", GAME_NO_COCKTAIL )
1650 GAMEX( 1991, pspikesk, pspikes,  pspikes,  pspikes,  0, ROT0,   "Video System Co.", "Power Spikes (Korea)", GAME_NO_COCKTAIL )
1651 GAMEX( 1991, svolly91, pspikes,  pspikes,  pspikes,  0, ROT0,   "Video System Co.", "Super Volley '91 (Japan)", GAME_NO_COCKTAIL )
1652 GAMEX( 1991, karatblz, 0,        karatblz, karatblz, 0, ROT0,   "Video System Co.", "Karate Blazers (World[Q])", GAME_NO_COCKTAIL )
1653 GAMEX( 1991, karatblu, karatblz, karatblz, karatblz, 0, ROT0,   "Video System Co.", "Karate Blazers (US)", GAME_NO_COCKTAIL )
1654 GAMEX( 1991, turbofrc, 0,        turbofrc, turbofrc, 0, ROT270, "Video System Co.", "Turbo Force", GAME_NO_COCKTAIL )
1655 GAMEX( 1992, aerofgt,  0,        aerofgt,  aerofgt,  0, ROT270, "Video System Co.", "Aero Fighters", GAME_NO_COCKTAIL )
1656 GAMEX( 1992, aerofgtb, aerofgt,  aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 1)", GAME_NO_COCKTAIL )
1657 GAMEX( 1992, aerofgtc, aerofgt,  aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 2)", GAME_NO_COCKTAIL )
1658 GAMEX( 1992, sonicwi,  aerofgt,  aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Sonic Wings (Japan)", GAME_NO_COCKTAIL )
1659