1 /****************************************************************************
2 
3 		ToaPlan game hardware from 1987
4 		-------------------------------
5 		Driver by: Quench
6 		Flying Shark details: Carl-Henrik Skarstedt  &  Magnus Danielsson
7 		Flying Shark bootleg info: Ruben Panossian
8 
9 
10 Supported games:
11 
12 	Toaplan Board Number:	TP-007
13 	Taito game number:		B02
14 		Flying Shark (World)
15 		Sky Shark (USA Romstar license)
16 		Hishou Zame (Flying Shark Japan license)
17 		Flying Shark bootleg (USA Romstar license)
18 
19 	Toaplan Board Number:	TP-011
20 	Taito game number:		B30
21 		Twin Cobra (World)
22 		Twin Cobra (USA license)
23 		Kyukyoku Tiger (Japan license)
24 
25 	Comad Board Number:		??????
26 	Comad game number:		???
27 		GulfWar II (Game play very similar to Twin cobra)
28 
29 Difference between Twin Cobra and Kyukyoko Tiger:
30 	T.C. supports two simultaneous players.
31 	K.T. supports two players, but only one at a time.
32 		 for this reason, it also supports Table Top cabinets.
33 	T.C. stores 3 characters for high scores.
34 	K.T. stores 6 characters for high scores.
35 	T.C. heros are Red and Blue for player 1 and 2 respectively.
36 	K.T. heros are grey for both players.
37 	T.C. dead remains of ground tanks are circular.
38 	K.T. dead remains of ground tanks always vary in shape.
39 	T.C. does not use DSW1-1 and DSW2-8.
40 	K.T. uses DSW1-1 for cabinet type, and DSW2-8 for allow game continue.
41 	T.C. continues new hero and continued game at current position.
42 	K.T. continues new hero and continued game at predefined positions.
43 		 After dying, and your new hero appears, if you do not travel more
44 		 than your helicopter length forward, you are penalised and moved
45 		 back further when your next hero appears.
46 	K.T. Due to this difference in continue sequence, Kyukyoko Tiger is MUCH
47 		 harder, challenging, and nearly impossible to complete !
48 
49 **************************** Memory & I/O Maps *****************************
50 68000: Main CPU
51 
52 00000-1ffff ROM for Flying Shark
53 00000-2ffff ROM for Twin Cobra
54 30000-33fff RAM shared with TMS320C10NL-14 protection microcontroller
55 40000-40fff RAM sprite display properties (co-ordinates, character, color - etc)
56 50000-50dff Palette RAM
57 7a000-7abff RAM shared with Z80; 16-bit on this side, 8-bit on Z80 side
58 
59 read:
60 78001		DSW1 (Flying Shark)
61 78003		DSW2 (Flying Shark)
62 
63 78005		Player 1 Joystick and Buttons input port
64 78007		Player 2 Joystick and Buttons input port
65 78009		bit 7 vblank, coin and control/service inputs (Flying shark)
66 				Flying Shark implements Tilt as 'freeze system' and also has
67 				a reset button, but its not implelemted here (not needed)
68 
69 7e000-7e005 read data from video RAM (see below)
70 
71 write:
72 60000-60003 CRT 6845 controller. 0 = register offset , 2 = register data
73 70000-70001 scroll   y   for character page (centre normally 0x01c9)
74 70002-70003 scroll < x > for character page (centre normally 0x00e2)
75 70004-70005 offset in character page to write character (7e000)
76 
77 72000-72001 scroll   y   for foreground page (starts from     0x03c9)
78 72002-72003 scroll < x > for foreground page (centre normally 0x002a)
79 72004-72005 offset in character page to write character (7e002)
80 
81 74000-74001 scroll   y   for background page (starts from     0x03c9)
82 74002-74003 scroll < x > for background page (centre normally 0x002a)
83 74004-74005 offset in character page to write character (7e004)
84 
85 76000-76003 as above but for another layer maybe ??? (Not used here)
86 7800a		This activates INT line for Flying shark. (Not via 7800C)
87 			00		Activate INTerrupt line to the TMS320C10 DSP.
88 			01		Inhibit  INTerrupt line to the TMS320C10 DSP.
89 
90 7800c		Control register (Byte write access).
91 			bits 7-4 always 0
92 			bits 3-1 select the control signal to drive.
93 			bit   0  is the value passed to the control signal.
94 
95 			Value (hex):
96 			00-03	????
97 			04		Clear IPL2 line to 68000 inactive hi (Interrupt priority 4)
98 			05		Set   IPL2 line to 68000 active  low (Interrupt priority 4)
99 			06		Dont flip display
100 			07		Flip display
101 			08		Switch to background layer ram bank 0
102 			09		Switch to background layer ram bank 1
103 			0A		Switch to foreground layer rom bank 0
104 			0B		Switch to foreground layer rom bank 1
105 			0C		Activate INTerrupt line to the TMS320C10 DSP  (Twin Cobra)
106 			0D		Inhibit  INTerrupt line to the TMS320C10 DSP  (Twin Cobra)
107 			0E		Turn screen off
108 			0F		Turn screen on
109 
110 7e000-7e001 data to write in text video RAM (70000)
111 7e002-7e003 data to write in bg video RAM (72004)
112 7e004-7e005 data to write in fg video RAM (74004)
113 
114 Z80: Sound CPU
115 0000-7fff ROM
116 8000-87ff shared with 68000; 8-bit on this side, 16-bit on 68000 side
117 
118 in:
119 00		  YM3812 status
120 10		  Coin inputs and control/service inputs (Twin Cobra)
121 40		  DSW1 (Twin Cobra)
122 50		  DSW2 (Twin Cobra)
123 
124 out:
125 00		  YM3812 control
126 01		  YM3812 data
127 20		  Coin counters / Coin lockouts
128 
129 TMS320C10 DSP: Harvard type architecture. RAM and ROM on seperate data buses.
130 0000-07ff ROM 16-bit opcodes (word access only). Moved to $8000-8fff for
131 				 MAME compatibility. View this ROM in the debugger at $8000h
132 0000-0090 Internal RAM (words).
133 
134 
135 in:
136 01		  data read from addressed 68K address space (Main RAM/Sprite RAM)
137 
138 out:
139 00		  address of 68K to read/write to
140 01		  data to write to addressed 68K address space (Main RAM/Sprite RAM)
141 03		  bit 15 goes to BIO line of TMS320C10. BIO is a polled input line.
142 
143 
144 MCUs used with this hardware: (TMS320C10 in custom Toaplan/Taito disguise)
145 
146 Twin Cobra					Sky Shark					Wardner
147 D70016U						D70012U  					D70012U
148 GXC-04						GXC-02						GXC-02
149 MCU (delta) 74000			MCU 71400					MCU (delta) 71900
150 
151 
152 
153 68K writes the following to $30000 to tell DSP to do the following:
154 Twin  Kyukyoku
155 Cobra Tiger
156 00		00	 do nothing
157 01		0C	 run self test, and report DSP ROM checksum		from 68K PC:23CA6
158 02		07	 control all enemy shots						from 68K PC:23BFA
159 04		0B	 start the enemy helicopters					from 68K PC:23C66
160 05		08	 check for colision with enemy fire ???			from 68K PC:23C20
161 06		09	 check for colision with enemy ???				from 68K PC:23C44
162 07		01	 control enemy helicopter shots					from 68K PC:23AB2
163 08		02	 control all ground enemy shots
164 0A		04	 read hero position and send enemy to it ?		from 68K PC:23B58
165 
166 03		0A	\
167 09		03	 \ These functions within the DSP never seem to be called ????
168 0B		05	 /
169 0C		06	/
170 
171 68K writes the following to $30004 to tell DSP to do the following:
172 Flying	Hishou
173 Shark	Zame
174 00		00	 do nothing
175 03		0B	 Write sprite to sprite RAM
176 05		01	 Get angle
177 06		02	 Rotate towards direction
178 09		05	 Check collision between 2 spheres!??
179 0A		06	 Polar coordinates add
180 0B		07	 run self test, and report DSP ROM checksum
181 
182 01		09	\
183 02		0A	 \
184 04		08	  > These functions within the DSP never seem to be called ????
185 07		03	 /
186 08		04	/
187 *****************************************************************************/
188 
189 
190 #include "driver.h"
191 #include "vidhrdw/generic.h"
192 #include "cpu/m68000/m68000.h"
193 #include "cpu/tms32010/tms32010.h"
194 
195 
196 
197 /**************** Machine stuff ******************/
198 MACHINE_INIT( fsharkbt_reset_8741_mcu );
199 INTERRUPT_GEN  ( twincobr_interrupt );
200 READ16_HANDLER ( fsharkbt_dsp_r );
201 READ16_HANDLER ( twincobr_dsp_r );
202 WRITE16_HANDLER( twincobr_dsp_w );
203 READ16_HANDLER ( twincobr_BIO_r );
204 WRITE_HANDLER  ( twincobr_coin_w );
205 WRITE16_HANDLER( fshark_coin_dsp_w );
206 READ16_HANDLER ( twincobr_68k_dsp_r );
207 WRITE16_HANDLER( twincobr_68k_dsp_w );
208 WRITE16_HANDLER( twincobr_control_w );
209 READ16_HANDLER ( twincobr_sharedram_r );
210 WRITE16_HANDLER( twincobr_sharedram_w );
211 
212 extern data16_t *twincobr_68k_dsp_ram;
213 extern data8_t *twincobr_sharedram;
214 
215 
216 /**************** Video stuff ******************/
217 WRITE16_HANDLER( twincobr_txscroll_w );
218 WRITE16_HANDLER( twincobr_bgscroll_w );
219 WRITE16_HANDLER( twincobr_fgscroll_w );
220 WRITE16_HANDLER( twincobr_exscroll_w );
221 WRITE16_HANDLER( twincobr_txoffs_w );
222 WRITE16_HANDLER( twincobr_bgoffs_w );
223 WRITE16_HANDLER( twincobr_fgoffs_w );
224 READ16_HANDLER ( twincobr_txram_r );
225 READ16_HANDLER ( twincobr_bgram_r );
226 READ16_HANDLER ( twincobr_fgram_r );
227 WRITE16_HANDLER( twincobr_txram_w );
228 WRITE16_HANDLER( twincobr_bgram_w );
229 WRITE16_HANDLER( twincobr_fgram_w );
230 WRITE16_HANDLER( twincobr_crtc_reg_sel_w );
231 WRITE16_HANDLER( twincobr_crtc_data_w );
232 
233 VIDEO_START( toaplan0 );
234 VIDEO_UPDATE( toaplan0 );
235 VIDEO_EOF( toaplan0 );
236 
237 
238 
239 
240 /* 68000 memory maps */
MEMORY_READ16_START(readmem)241 static MEMORY_READ16_START( readmem )
242 	{ 0x000000, 0x02ffff, MRA16_ROM },
243 	{ 0x030000, 0x033fff, twincobr_68k_dsp_r },		/* 68K and DSP shared RAM */
244 	{ 0x040000, 0x040fff, MRA16_RAM },				/* sprite ram data */
245 	{ 0x050000, 0x050dff, paletteram16_word_r },
246 	{ 0x078000, 0x078001, input_port_3_word_r },	/* Flying Shark - DSW A */
247 	{ 0x078002, 0x078003, input_port_4_word_r },	/* Flying Shark - DSW B */
248 	{ 0x078004, 0x078005, input_port_1_word_r },	/* Player 1 inputs */
249 	{ 0x078006, 0x078007, input_port_2_word_r },	/* Player 2 inputs */
250 	{ 0x078008, 0x078009, input_port_0_word_r },	/* V-Blank & FShark Coin/Start */
251 	{ 0x07a000, 0x07abff, twincobr_sharedram_r },	/* 16-bit on 68000 side, 8-bit on Z80 side */
252 	{ 0x07e000, 0x07e001, twincobr_txram_r },		/* data from text video RAM */
253 	{ 0x07e002, 0x07e003, twincobr_bgram_r },		/* data from bg video RAM */
254 	{ 0x07e004, 0x07e005, twincobr_fgram_r },		/* data from fg video RAM */
255 MEMORY_END
256 
257 static MEMORY_WRITE16_START( writemem )
258 	{ 0x000000, 0x02ffff, MWA16_ROM },
259 	{ 0x030000, 0x033fff, twincobr_68k_dsp_w, &twincobr_68k_dsp_ram },	/* 68K and DSP shared RAM */
260 	{ 0x040000, 0x040fff, MWA16_RAM, &spriteram16, &spriteram_size },	/* sprite ram data */
261 	{ 0x050000, 0x050dff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
262 	{ 0x060000, 0x060001, twincobr_crtc_reg_sel_w },/* 6845 CRT controller */
263 	{ 0x060002, 0x060003, twincobr_crtc_data_w },	/* 6845 CRT controller */
264 	{ 0x070000, 0x070003, twincobr_txscroll_w },	/* text layer scroll */
265 	{ 0x070004, 0x070005, twincobr_txoffs_w },		/* offset in text video RAM */
266 	{ 0x072000, 0x072003, twincobr_bgscroll_w },	/* bg layer scroll */
267 	{ 0x072004, 0x072005, twincobr_bgoffs_w },		/* offset in bg video RAM */
268 	{ 0x074000, 0x074003, twincobr_fgscroll_w },	/* fg layer scroll */
269 	{ 0x074004, 0x074005, twincobr_fgoffs_w },		/* offset in fg video RAM */
270 	{ 0x076000, 0x076003, twincobr_exscroll_w },	/* Spare layer scroll */
271 	{ 0x07800a, 0x07800b, fshark_coin_dsp_w },		/* Flying Shark DSP Comms & coin stuff */
272 	{ 0x07800c, 0x07800d, twincobr_control_w },		/* Twin Cobra DSP Comms & system control */
273 	{ 0x07a000, 0x07afff, twincobr_sharedram_w },	/* 16-bit on 68000 side, 8-bit on Z80 side */
274 	{ 0x07e000, 0x07e001, twincobr_txram_w },		/* data for text video RAM */
275 	{ 0x07e002, 0x07e003, twincobr_bgram_w },		/* data for bg video RAM */
276 	{ 0x07e004, 0x07e005, twincobr_fgram_w },		/* data for fg video RAM */
277 MEMORY_END
278 
279 
280 /* Z80 memory/port maps */
281 static MEMORY_READ_START( sound_readmem )
282 	{ 0x0000, 0x7fff, MRA_ROM },
283 	{ 0x8000, 0x87ff, MRA_RAM },
284 MEMORY_END
285 
286 static MEMORY_WRITE_START( sound_writemem )
287 	{ 0x0000, 0x7fff, MWA_ROM },
288 	{ 0x8000, 0x87ff, MWA_RAM, &twincobr_sharedram },
289 MEMORY_END
290 
291 static PORT_READ_START( sound_readport )
292 	{ 0x00, 0x00, YM3812_status_port_0_r },
293 	{ 0x10, 0x10, input_port_5_r },		/* Twin Cobra - Coin/Start */
294 	{ 0x40, 0x40, input_port_3_r },		/* Twin Cobra - DSW A */
295 	{ 0x50, 0x50, input_port_4_r },		/* Twin Cobra - DSW B */
296 PORT_END
297 
298 static PORT_WRITE_START( sound_writeport )
299 	{ 0x00, 0x00, YM3812_control_port_0_w },
300 	{ 0x01, 0x01, YM3812_write_port_0_w },
301 	{ 0x20, 0x20, twincobr_coin_w },	/* Twin Cobra coin count-lockout */
302 PORT_END
303 
304 
305 /* TMS32010 memory/port maps */
306 static MEMORY_READ16_START( DSP_readmem )
307 	{ TMS32010_DATA_ADDR_RANGE(0x000, 0x08f), MRA16_RAM },	/* 90h words internal RAM */
308 	{ TMS32010_PGM_ADDR_RANGE(0x000, 0x7ff), MRA16_ROM },	/* 800h words. The real DSPs ROM is at */
309 									/* address 0 */
310 									/* View it at 8000h in the debugger */
311 MEMORY_END
312 
313 static MEMORY_WRITE16_START( DSP_writemem )
314 	{ TMS32010_DATA_ADDR_RANGE(0x000, 0x08f), MWA16_RAM },
315 	{ TMS32010_PGM_ADDR_RANGE(0x000, 0x7ff), MWA16_ROM },
316 MEMORY_END
317 
318 static PORT_READ16_START( DSP_readport )
319 	{ TMS32010_PORT_RANGE(1, 1),       twincobr_dsp_r },
320 	{ TMS32010_PORT_RANGE(2, 2),       fsharkbt_dsp_r },
321 	{ TMS32010_PORT_RANGE(TMS32010_BIO, TMS32010_BIO), twincobr_BIO_r },
322 PORT_END
323 
324 static PORT_WRITE16_START( DSP_writeport )
325 	{ TMS32010_PORT_RANGE(0, 3),       twincobr_dsp_w },
326 PORT_END
327 
328 
329 
330 /*****************************************************************************
331 	Input Port definitions
332 *****************************************************************************/
333 
334 #define  TOAPLAN_PLAYER_INPUT( player )										 \
335 	PORT_START 																 \
336 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | player ) \
337 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | player ) \
338 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | player ) \
339 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | player ) \
340 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | player)					 \
341 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | player)					 \
342 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )							 \
343 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
344 
345 #define  TOAPLAN_JAPAN_DSW_A							\
346 	PORT_START		/* DSW A */							\
347 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )		\
348 	PORT_DIPSETTING(	0x01, DEF_STR( Upright ) )		\
349 	PORT_DIPSETTING(	0x00, DEF_STR( Cocktail ) )		\
350 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )	\
351 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )			\
352 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )			\
353 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )	\
354 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )			\
355 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )			\
356 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )	\
357 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )			\
358 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )			\
359 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )		\
360 	PORT_DIPSETTING(	0x20, DEF_STR( 2C_1C ) )		\
361 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )		\
362 	PORT_DIPSETTING(	0x30, DEF_STR( 2C_3C ) )		\
363 	PORT_DIPSETTING(	0x10, DEF_STR( 1C_2C ) )		\
364 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )		\
365 	PORT_DIPSETTING(	0x80, DEF_STR( 2C_1C ) )		\
366 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )		\
367 	PORT_DIPSETTING(	0xc0, DEF_STR( 2C_3C ) )		\
368 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_2C ) )
369 
370 #define  TWINCOBR_VBLANK_INPUT( active_level )		\
371 	PORT_START										\
372 	PORT_BIT( 0x7f, active_level, IPT_UNKNOWN )		\
373 	PORT_BIT( 0x80, active_level, IPT_VBLANK )
374 
375 #define  TWINCOBR_SYSTEM_INPUTS							\
376 	PORT_START											\
377 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )			\
378 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT )			\
379 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )	\
380 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )			\
381 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )			\
382 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )			\
383 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )			\
384 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )		\
385 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )		\
386 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
387 
388 #define TWINCOBR_DSW_B		/* not KTIGER */			\
389 	PORT_START		/* DSW B */							\
390 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )	\
391 	PORT_DIPSETTING(	0x01, "Easy" )					\
392 	PORT_DIPSETTING(	0x00, "Normal" )				\
393 	PORT_DIPSETTING(	0x02, "Hard" )					\
394 	PORT_DIPSETTING(	0x03, "Hardest" )				\
395 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )	\
396 	PORT_DIPSETTING(	0x00, "50K, then every 150K" )	\
397 	PORT_DIPSETTING(	0x04, "70K, then every 200K" )	\
398 	PORT_DIPSETTING(	0x08, "50000" )					\
399 	PORT_DIPSETTING(	0x0c, "100000" )				\
400 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )		\
401 	PORT_DIPSETTING(	0x30, "2" )						\
402 	PORT_DIPSETTING(	0x00, "3" )						\
403 	PORT_DIPSETTING(	0x20, "4" )						\
404 	PORT_DIPSETTING(	0x10, "5" )						\
405 	PORT_DIPNAME( 0x40, 0x00, "Show DIP SW Settings" )	\
406 	PORT_DIPSETTING(	0x00, DEF_STR( No ) )			\
407 	PORT_DIPSETTING(	0x40, DEF_STR( Yes ) )			\
408 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )		\
409 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )			\
410 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
411 
412 #define  FSHARK_SYSTEM_INPUTS		/* V-Blank is also here */				 \
413 	PORT_START																 \
414 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )								 \
415 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT )		/* tilt causes freeze */ \
416 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )	/* reset button */		 \
417 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )								 \
418 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )								 \
419 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )							 \
420 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )							 \
421 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
422 
423 #define FSHARK_DSW_B									\
424 	PORT_START		/* DSW B */							\
425 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )	\
426 	PORT_DIPSETTING(	0x01, "Easy" )					\
427 	PORT_DIPSETTING(	0x00, "Normal" )				\
428 	PORT_DIPSETTING(	0x02, "Hard" )					\
429 	PORT_DIPSETTING(	0x03, "Hardest" )				\
430 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )	\
431 	PORT_DIPSETTING(	0x00, "50K, then every 150K" )	\
432 	PORT_DIPSETTING(	0x04, "70K, then every 200K" )	\
433 	PORT_DIPSETTING(	0x08, "50000" )					\
434 	PORT_DIPSETTING(	0x0c, "100000" )				\
435 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )		\
436 	PORT_DIPSETTING(	0x20, "1" )						\
437 	PORT_DIPSETTING(	0x30, "2" )						\
438 	PORT_DIPSETTING(	0x00, "3" )						\
439 	PORT_DIPSETTING(	0x10, "5" )						\
440 	PORT_DIPNAME( 0x40, 0x00, "Show DIP SW Settings" )	\
441 	PORT_DIPSETTING(	0x00, DEF_STR( No ) )			\
442 	PORT_DIPSETTING(	0x40, DEF_STR( Yes ) )			\
443 	PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )		\
444 	PORT_DIPSETTING(	0x00, DEF_STR( No ) )			\
445 	PORT_DIPSETTING(	0x80, DEF_STR( Yes ) )
446 
447 
448 
449 
450 INPUT_PORTS_START( twincobr )
451 	TWINCOBR_VBLANK_INPUT( IP_ACTIVE_HIGH )
452 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
453 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
454 
455 	PORT_START		/* DSW A */
456 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
457 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
458 	PORT_DIPSETTING(	0x01, DEF_STR( On ) )
459 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
460 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
461 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
462 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )
463 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
464 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )
465 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
466 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
467 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
468 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
469 	PORT_DIPSETTING(	0x30, DEF_STR( 4C_1C ) )
470 	PORT_DIPSETTING(	0x20, DEF_STR( 3C_1C ) )
471 	PORT_DIPSETTING(	0x10, DEF_STR( 2C_1C ) )
472 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
473 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
474 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_2C ) )
475 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_3C ) )
476 	PORT_DIPSETTING(	0x80, DEF_STR( 1C_4C ) )
477 	PORT_DIPSETTING(	0xc0, DEF_STR( 1C_6C ) )
478 
479 	TWINCOBR_DSW_B
480 	TWINCOBR_SYSTEM_INPUTS
481 INPUT_PORTS_END
482 
483 INPUT_PORTS_START( twincobu )
484 	TWINCOBR_VBLANK_INPUT( IP_ACTIVE_HIGH )
485 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
486 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
487 
488 	PORT_START		/* DSW A */
489 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
490 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
491 	PORT_DIPSETTING(	0x01, DEF_STR( On ) )
492 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
493 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
494 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
495 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )
496 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
497 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )
498 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
499 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
500 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
501 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
502 	PORT_DIPSETTING(	0x20, DEF_STR( 2C_1C ) )
503 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
504 	PORT_DIPSETTING(	0x30, DEF_STR( 2C_3C ) )
505 	PORT_DIPSETTING(	0x10, DEF_STR( 1C_2C ) )
506 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
507 	PORT_DIPSETTING(	0x80, DEF_STR( 2C_1C ) )
508 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
509 	PORT_DIPSETTING(	0xc0, DEF_STR( 2C_3C ) )
510 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_2C ) )
511 
512 	TWINCOBR_DSW_B
513 	TWINCOBR_SYSTEM_INPUTS
514 INPUT_PORTS_END
515 
516 INPUT_PORTS_START( ktiger )
517 	TWINCOBR_VBLANK_INPUT( IP_ACTIVE_HIGH )
518 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
519 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
520 	TOAPLAN_JAPAN_DSW_A
521 
522 	PORT_START		/* DSW B */
523 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
524 	PORT_DIPSETTING(	0x01, "Easy" )
525 	PORT_DIPSETTING(	0x00, "Normal" )
526 	PORT_DIPSETTING(	0x02, "Hard" )
527 	PORT_DIPSETTING(	0x03, "Hardest" )
528 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
529 	PORT_DIPSETTING(	0x00, "70K, then every 200K" )
530 	PORT_DIPSETTING(	0x04, "50K, then every 150K" )
531 	PORT_DIPSETTING(	0x08, "100000" )
532 	PORT_DIPSETTING(	0x0c, "No Extend" )
533 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
534 	PORT_DIPSETTING(	0x30, "2" )
535 	PORT_DIPSETTING(	0x00, "3" )
536 	PORT_DIPSETTING(	0x20, "4" )
537 	PORT_DIPSETTING(	0x10, "5" )
538 	PORT_DIPNAME( 0x40, 0x00, "Show DIP SW Settings" )
539 	PORT_DIPSETTING(	0x00, DEF_STR( No ) )
540 	PORT_DIPSETTING(	0x40, DEF_STR( Yes ) )
541 	PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )
542 	PORT_DIPSETTING(	0x00, DEF_STR( No ) )
543 	PORT_DIPSETTING(	0x80, DEF_STR( Yes ) )
544 
545 	TWINCOBR_SYSTEM_INPUTS
546 INPUT_PORTS_END
547 
548 INPUT_PORTS_START( fshark )
549 	FSHARK_SYSTEM_INPUTS
550 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
551 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
552 
553 	PORT_START		/* DSW A */
554 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
555 	PORT_DIPSETTING(	0x01, DEF_STR( Upright ) )
556 	PORT_DIPSETTING(	0x00, DEF_STR( Cocktail ) )
557 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
558 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
559 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
560 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )
561 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
562 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )
563 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
564 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
565 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
566 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
567 	PORT_DIPSETTING(	0x30, DEF_STR( 4C_1C ) )
568 	PORT_DIPSETTING(	0x20, DEF_STR( 3C_1C ) )
569 	PORT_DIPSETTING(	0x10, DEF_STR( 2C_1C ) )
570 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
571 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
572 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_2C ) )
573 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_3C ) )
574 	PORT_DIPSETTING(	0x80, DEF_STR( 1C_4C ) )
575 	PORT_DIPSETTING(	0xc0, DEF_STR( 1C_6C ) )
576 
577 	FSHARK_DSW_B
578 INPUT_PORTS_END
579 
580 INPUT_PORTS_START( skyshark )
581 	FSHARK_SYSTEM_INPUTS
582 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
583 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
584 
585 	PORT_START		/* DSW A */
586 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
587 	PORT_DIPSETTING(	0x01, DEF_STR( Upright ) )
588 	PORT_DIPSETTING(	0x00, DEF_STR( Cocktail ) )
589 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
590 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
591 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
592 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )
593 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
594 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )
595 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
596 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
597 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
598 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
599 	PORT_DIPSETTING(	0x10, DEF_STR( 2C_1C ) )
600 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
601 	PORT_DIPSETTING(	0x20, DEF_STR( 1C_2C ) )
602 /*	PORT_DIPSETTING(	0x30, DEF_STR( 1C_2C ) )	Same as previous */
603 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
604 	PORT_DIPSETTING(	0x40, DEF_STR( 2C_1C ) )
605 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
606 	PORT_DIPSETTING(	0x80, DEF_STR( 1C_2C ) )
607 /*	PORT_DIPSETTING(	0xc0, DEF_STR( 1C_2C ) )	Same as previous */
608 
609 	FSHARK_DSW_B
610 INPUT_PORTS_END
611 
612 INPUT_PORTS_START( hishouza )
613 	FSHARK_SYSTEM_INPUTS
614 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
615 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
616 	TOAPLAN_JAPAN_DSW_A
617 	FSHARK_DSW_B
618 INPUT_PORTS_END
619 
620 INPUT_PORTS_START( gulfwar2 )
621 	TWINCOBR_VBLANK_INPUT( IP_ACTIVE_LOW )
622 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER1 )
623 	TOAPLAN_PLAYER_INPUT( IPF_PLAYER2 )
624 
625 	PORT_START		/* DSW A */
626 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
627 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
628 	PORT_DIPSETTING(	0x01, DEF_STR( On ) )
629 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
630 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
631 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
632 	PORT_DIPNAME( 0x04, 0x00, "Cross Hatch Pattern" )
633 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
634 	PORT_DIPSETTING(	0x04, DEF_STR( On ) )
635 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
636 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
637 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
638 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
639 	PORT_DIPSETTING(	0x30, DEF_STR( 4C_1C ) )
640 	PORT_DIPSETTING(	0x20, DEF_STR( 3C_1C ) )
641 	PORT_DIPSETTING(	0x10, DEF_STR( 2C_1C ) )
642 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
643 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
644 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_2C ) )
645 	PORT_DIPSETTING(	0x40, DEF_STR( 1C_3C ) )
646 	PORT_DIPSETTING(	0x80, DEF_STR( 1C_4C ) )
647 	PORT_DIPSETTING(	0xc0, DEF_STR( 1C_6C ) )
648 
649 	TWINCOBR_DSW_B
650 	TWINCOBR_SYSTEM_INPUTS
651 INPUT_PORTS_END
652 
653 
654 
655 static struct GfxLayout charlayout =
656 {
657 	8,8,			/* 8*8 characters */
658 	RGN_FRAC(1,3),	/* 2048 characters */
659 	3,				/* 3 bits per pixel */
660 	{ RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) },
661 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
662 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
663 	8*8				/* every char takes 8 consecutive bytes */
664 };
665 
666 static struct GfxLayout tilelayout =
667 {
668 	8,8,			/* 8*8 tiles */
669 	RGN_FRAC(1,4),	/* 4096/8192 tiles */
670 	4,				/* 4 bits per pixel */
671 	{ RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) },
672 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
673 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
674 	8*8				/* every tile takes 8 consecutive bytes */
675 };
676 
677 static struct GfxLayout spritelayout =
678 {
679 	16,16,			/* 16*16 sprites */
680 	RGN_FRAC(1,4),	/* 2048 sprites */
681 	4,				/* 4 bits per pixel */
682 	{ RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) },
683 	{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
684 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
685 			8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
686 	32*8			/* every sprite takes 32 consecutive bytes */
687 };
688 
689 static struct GfxDecodeInfo gfxdecodeinfo[] =
690 {
691 	{ REGION_GFX1, 0x00000, &charlayout,	1536, 32 },	/* colors 1536-1791 */
692 	{ REGION_GFX2, 0x00000, &tilelayout,	1280, 16 },	/* colors 1280-1535 */
693 	{ REGION_GFX3, 0x00000, &tilelayout,	1024, 16 },	/* colors 1024-1079 */
694 	{ REGION_GFX4, 0x00000, &spritelayout,	   0, 64 },	/* colors    0-1023 */
695 	{ -1 } /* end of array */
696 };
697 
698 
699 
700 /* handler called by the 3812 emulator when the internal timers cause an IRQ */
irqhandler(int linestate)701 static void irqhandler(int linestate)
702 {
703 	cpu_set_irq_line(1,0,linestate);
704 }
705 
706 static struct YM3812interface ym3812_interface =
707 {
708 	1,				/* 1 chip  */
709 	28000000/8,		/* 3.5MHz */
710 	{ 100 },		/* volume */
711 	{ irqhandler },
712 };
713 
714 
715 
716 static MACHINE_DRIVER_START( twincobr )
717 
718 	/* basic machine hardware */
719 	MDRV_CPU_ADD(M68000,28000000/4)			/* 7.0MHz - Main board Crystal is 28MHz */
MDRV_CPU_MEMORY(readmem,writemem)720 	MDRV_CPU_MEMORY(readmem,writemem)
721 	MDRV_CPU_VBLANK_INT(twincobr_interrupt,1)
722 
723 	MDRV_CPU_ADD(Z80,28000000/8)			/* 3.5MHz */
724 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
725 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
726 
727 	MDRV_CPU_ADD(TMS32010,28000000/2)		/* 14MHz CLKin */
728 	MDRV_CPU_MEMORY(DSP_readmem,DSP_writemem)
729 	MDRV_CPU_PORTS(DSP_readport,DSP_writeport)
730 
731 	MDRV_FRAMES_PER_SECOND( (28000000.0 / 4) / (446 * 286) )
732 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
733 	MDRV_INTERLEAVE(100)
734 
735 	MDRV_MACHINE_INIT(fsharkbt_reset_8741_mcu)	/* Reset fshark bootleg 8741 MCU data */
736 
737 	/* video hardware */
738 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
739 	MDRV_SCREEN_SIZE(64*8, 32*8)
740 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
741 	MDRV_GFXDECODE(gfxdecodeinfo)
742 	MDRV_PALETTE_LENGTH(1792)
743 
744 	MDRV_VIDEO_START(toaplan0)
745 	MDRV_VIDEO_EOF(toaplan0)
746 	MDRV_VIDEO_UPDATE(toaplan0)
747 
748 	/* sound hardware */
749 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
750 MACHINE_DRIVER_END
751 
752 
753 
754 /***************************************************************************
755 
756   Game driver(s)
757 
758 ***************************************************************************/
759 
760 ROM_START( twincobr )
761 	ROM_REGION( 0x30000, REGION_CPU1, 0 )	/* Main 68K code */
762 	ROM_LOAD16_BYTE( "tc16",		0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
763 	ROM_LOAD16_BYTE( "tc14",		0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
764 	ROM_LOAD16_BYTE( "tc15",		0x20000, 0x08000, CRC(3a646618) SHA1(fc1ed8f3c491f5cf16a17e5ce08c5d8f3ce03683) )
765 	ROM_LOAD16_BYTE( "tc13",		0x20001, 0x08000, CRC(d7d1e317) SHA1(57b8433b1677a390a7c7e00a1464bb8ed9cbfc73) )
766 
767 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
768 	ROM_LOAD( "tc12",			0x00000, 0x08000, CRC(e37b3c44) SHA1(5fed10b29c14e27aee0cd92ecde5c5cb422273b1) )	/* slightly different from the other two sets */
769 
770 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Co-Processor TMS320C10 MCU code */
771 	ROM_LOAD16_BYTE( "dsp_22.bin",	0x8001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
772 	ROM_LOAD16_BYTE( "dsp_21.bin",	0x8000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
773 /******  The following are from a bootleg board. ******
774 	A0 and A1 are swapped between the TMS320C10 and these BPROMs on the board.
775 	ROM_LOAD16_BYTE( "tc1b",		0x0000, 0x0800, CRC(1757cc33) )
776 	ROM_LOAD16_BYTE( "tc2a",		0x0001, 0x0800, CRC(d6d878c9) )
777 */
778 
779 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
780 	ROM_LOAD( "tc11",			0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
781 	ROM_LOAD( "tc03",			0x04000, 0x04000, CRC(e9e2d4b1) SHA1(e0a19dd46a9ba85d95bba7fbf81d8dc36dbfeabd) )
782 	ROM_LOAD( "tc04",			0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
783 
784 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
785 	ROM_LOAD( "tc01",			0x00000, 0x10000, CRC(15b3991d) SHA1(f5e7ed7a7721ed7e6dfd440634160390b7a294e4) )
786 	ROM_LOAD( "tc02",			0x10000, 0x10000, CRC(d9e2e55d) SHA1(0409e6df836d1d5198b64b21b42192631aa6d096) )
787 	ROM_LOAD( "tc06",			0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
788 	ROM_LOAD( "tc05",			0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
789 
790 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
791 	ROM_LOAD( "tc07",			0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
792 	ROM_LOAD( "tc08",			0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
793 	ROM_LOAD( "tc09",			0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
794 	ROM_LOAD( "tc10",			0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
795 
796 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
797 	ROM_LOAD( "tc20",			0x00000, 0x10000, CRC(cb4092b8) SHA1(35b1d1e04af760fa106124bd5a94174d63ff9705) )
798 	ROM_LOAD( "tc19",			0x10000, 0x10000, CRC(9cb8675e) SHA1(559c21d505c60401f7368d4ab2b686b15075c5c5) )
799 	ROM_LOAD( "tc18",			0x20000, 0x10000, CRC(806fb374) SHA1(3eebefadcbdf713bf2a65b438092746b07edd3f0) )
800 	ROM_LOAD( "tc17",			0x30000, 0x10000, CRC(4264bff8) SHA1(3271b8b23f51346d1928ae01f8b547fed49181e6) )
801 
802 	ROM_REGION( 0x260, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
803 	ROM_LOAD( "82s129.d3",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
804 	ROM_LOAD( "82s129.d4",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
805 	ROM_LOAD( "82s123.d2",	0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )	/* sprite control ?? */
806 	ROM_LOAD( "82s123.e18",	0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )	/* sprite attribute (flip/position) ?? */
807 	ROM_LOAD( "82s123.b24",	0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )	/* tile to sprite priority ?? */
808 ROM_END
809 
810 ROM_START( twincobu )
811 	ROM_REGION( 0x30000, REGION_CPU1, 0 )	/* Main 68K code */
812 	ROM_LOAD16_BYTE( "tc16",			0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
813 	ROM_LOAD16_BYTE( "tc14",			0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
814 	ROM_LOAD16_BYTE( "tcbra26.bin",	0x20000, 0x08000, CRC(bdd00ba4) SHA1(b76b22f03eb4b821a8c555edd9fcee814f2e66a7) )
815 	ROM_LOAD16_BYTE( "tcbra27.bin",	0x20001, 0x08000, CRC(ed600907) SHA1(e5964db9eab2c334940795d71cb90f6679490227) )
816 
817 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
818 	ROM_LOAD( "b30-05",				0x00000, 0x08000, CRC(1a8f1e10) SHA1(0c37a7a50b2523506ad77ac03ae752eb94092ff6) )
819 
820 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Co-Processor TMS320C10 MCU code */
821 	ROM_LOAD16_BYTE( "dsp_22.bin",	0x8001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
822 	ROM_LOAD16_BYTE( "dsp_21.bin",	0x8000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
823 
824 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
825 	ROM_LOAD( "tc11",			0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
826 	ROM_LOAD( "tc03",			0x04000, 0x04000, CRC(e9e2d4b1) SHA1(e0a19dd46a9ba85d95bba7fbf81d8dc36dbfeabd) )
827 	ROM_LOAD( "tc04",			0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
828 
829 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
830 	ROM_LOAD( "tc01",			0x00000, 0x10000, CRC(15b3991d) SHA1(f5e7ed7a7721ed7e6dfd440634160390b7a294e4) )
831 	ROM_LOAD( "tc02",			0x10000, 0x10000, CRC(d9e2e55d) SHA1(0409e6df836d1d5198b64b21b42192631aa6d096) )
832 	ROM_LOAD( "tc06",			0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
833 	ROM_LOAD( "tc05",			0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
834 
835 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
836 	ROM_LOAD( "tc07",			0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
837 	ROM_LOAD( "tc08",			0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
838 	ROM_LOAD( "tc09",			0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
839 	ROM_LOAD( "tc10",			0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
840 
841 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
842 	ROM_LOAD( "tc20",			0x00000, 0x10000, CRC(cb4092b8) SHA1(35b1d1e04af760fa106124bd5a94174d63ff9705) )
843 	ROM_LOAD( "tc19",			0x10000, 0x10000, CRC(9cb8675e) SHA1(559c21d505c60401f7368d4ab2b686b15075c5c5) )
844 	ROM_LOAD( "tc18",			0x20000, 0x10000, CRC(806fb374) SHA1(3eebefadcbdf713bf2a65b438092746b07edd3f0) )
845 	ROM_LOAD( "tc17",			0x30000, 0x10000, CRC(4264bff8) SHA1(3271b8b23f51346d1928ae01f8b547fed49181e6) )
846 
847 	ROM_REGION( 0x260, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
848 	ROM_LOAD( "82s129.d3",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
849 	ROM_LOAD( "82s129.d4",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
850 	ROM_LOAD( "82s123.d2",	0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )	/* sprite control ?? */
851 	ROM_LOAD( "82s123.e18",	0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )	/* sprite attribute (flip/position) ?? */
852 	ROM_LOAD( "82s123.b24",	0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )	/* tile to sprite priority ?? */
853 ROM_END
854 
855 ROM_START( ktiger )
856 	ROM_REGION( 0x30000, REGION_CPU1, 0 )	/* Main 68K code */
857 	ROM_LOAD16_BYTE( "tc16",		0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
858 	ROM_LOAD16_BYTE( "tc14",		0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
859 	ROM_LOAD16_BYTE( "b30-02",	0x20000, 0x08000, CRC(1d63e9c4) SHA1(bdf013487a6fe8f8cbb03fda5f4fae881064831c) )
860 	ROM_LOAD16_BYTE( "b30-04",	0x20001, 0x08000, CRC(03957a30) SHA1(d809881a16b05595b6f184e44a36e592f46ba04a) )
861 
862 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
863 	ROM_LOAD( "b30-05",			0x00000, 0x08000, CRC(1a8f1e10) SHA1(0c37a7a50b2523506ad77ac03ae752eb94092ff6) )
864 
865 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Co-Processor TMS320C10 MCU code */
866 	ROM_LOAD16_BYTE( "dsp-22",	0x8001, 0x0800, BAD_DUMP CRC(8a1d48d9) SHA1(f345c95a97adfbe89676f81ac83fbbec25703440)  )
867 	ROM_LOAD16_BYTE( "dsp-21",	0x8000, 0x0800, BAD_DUMP CRC(33d99bc2) SHA1(9372dcfc2313abc4835365ae99842f732329d4e6)  )
868 
869 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
870 	ROM_LOAD( "tc11",			0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
871 	ROM_LOAD( "tc03",			0x04000, 0x04000, CRC(e9e2d4b1) SHA1(e0a19dd46a9ba85d95bba7fbf81d8dc36dbfeabd) )
872 	ROM_LOAD( "tc04",			0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
873 
874 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
875 	ROM_LOAD( "tc01",			0x00000, 0x10000, CRC(15b3991d) SHA1(f5e7ed7a7721ed7e6dfd440634160390b7a294e4) )
876 	ROM_LOAD( "tc02",			0x10000, 0x10000, CRC(d9e2e55d) SHA1(0409e6df836d1d5198b64b21b42192631aa6d096) )
877 	ROM_LOAD( "tc06",			0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
878 	ROM_LOAD( "tc05",			0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
879 
880 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
881 	ROM_LOAD( "tc07",			0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
882 	ROM_LOAD( "tc08",			0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
883 	ROM_LOAD( "tc09",			0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
884 	ROM_LOAD( "tc10",			0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
885 
886 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
887 	ROM_LOAD( "tc20",			0x00000, 0x10000, CRC(cb4092b8) SHA1(35b1d1e04af760fa106124bd5a94174d63ff9705) )
888 	ROM_LOAD( "tc19",			0x10000, 0x10000, CRC(9cb8675e) SHA1(559c21d505c60401f7368d4ab2b686b15075c5c5) )
889 	ROM_LOAD( "tc18",			0x20000, 0x10000, CRC(806fb374) SHA1(3eebefadcbdf713bf2a65b438092746b07edd3f0) )
890 	ROM_LOAD( "tc17",			0x30000, 0x10000, CRC(4264bff8) SHA1(3271b8b23f51346d1928ae01f8b547fed49181e6) )
891 
892 	ROM_REGION( 0x260, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
893 	ROM_LOAD( "82s129.d3",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
894 	ROM_LOAD( "82s129.d4",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
895 	ROM_LOAD( "82s123.d2",	0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )	/* sprite control ?? */
896 	ROM_LOAD( "82s123.e18",	0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )	/* sprite attribute (flip/position) ?? */
897 	ROM_LOAD( "82s123.b24",	0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )	/* tile to sprite priority ?? */
898 ROM_END
899 
900 ROM_START( fshark )
901 	ROM_REGION( 0x20000, REGION_CPU1, 0 )	/* Main 68K code */
902 	ROM_LOAD16_BYTE( "b02_18-1.rom",	0x00000, 0x10000, CRC(04739e02) SHA1(8a14284adb0f0f33adf9affdec081c90de85d594) )
903 	ROM_LOAD16_BYTE( "b02_17-1.rom",	0x00001, 0x10000, CRC(fd6ef7a8) SHA1(ddbc05ce694ab4d929f5f621d95800b612bc5f66) )
904 
905 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
906 	ROM_LOAD( "b02_16.rom",		0x0000, 0x8000, CRC(cdd1a153) SHA1(de9827a959039cf753ecac6756fb1925c37466d8) )
907 
908 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Space for Co-Processor TMS320C10 */
909 
910 	ROM_REGION( 0x1000, REGION_USER1, 0 )	/* Co-Processor TMS320C10 MCU code */
911 	ROM_LOAD_NIB_HIGH( "82s137-1.mcu",  0x0000, 0x0400, CRC(cc5b3f53) SHA1(33589665ac995cc4645b56bbcd6d1c1cd5368f88) ) /* msb */
912 	ROM_LOAD_NIB_LOW ( "82s137-2.mcu",  0x0000, 0x0400, CRC(47351d55) SHA1(826add3ea3987f2c9ba2d3fc69a4ad2d9b033c89) )
913 	ROM_LOAD_NIB_HIGH( "82s137-5.mcu",  0x0400, 0x0400, CRC(f35b978a) SHA1(90da4ab12126727cd9510fdfe4f626452116c543) )
914 	ROM_LOAD_NIB_LOW ( "82s137-6.mcu",  0x0400, 0x0400, CRC(0459e51b) SHA1(b673f5e1fcf60c0ba668aeb98d545d17b988945d) )
915 	ROM_LOAD_NIB_HIGH( "82s137-3.mcu",  0x0800, 0x0400, CRC(70b537b9) SHA1(5211ec4605894727747dda66b70c9427652b16b4) ) /* lsb */
916 	ROM_LOAD_NIB_LOW ( "82s137-4.mcu",  0x0800, 0x0400, CRC(6edb2de8) SHA1(48459037c3b865f0c0d63a416fa71ba1119f7a09) )
917 	ROM_LOAD_NIB_HIGH( "82s137-7.mcu",  0x0c00, 0x0400, CRC(cbf3184b) SHA1(a3eafadc319183ed688dc081c4dfcbe8d476abea) )
918 	ROM_LOAD_NIB_LOW ( "82s137-8.mcu",  0x0c00, 0x0400, CRC(8246a05c) SHA1(2511fa99fbdd6c75281fa85ecca2a617d36eb360) )
919 
920 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
921 	ROM_LOAD( "b02_07-1.rom",	0x00000, 0x04000, CRC(e669f80e) SHA1(05c1a4ff9adaa6c8035f38a76c5ee333fafba2bf) )
922 	ROM_LOAD( "b02_06-1.rom",	0x04000, 0x04000, CRC(5e53ae47) SHA1(55bde4133deebb59a87d9b96c6d0fd7b4bbc0e02) )
923 	ROM_LOAD( "b02_05-1.rom",	0x08000, 0x04000, CRC(a8b05bd0) SHA1(37317838ea57cb98cf9599cedf8e72bcae913d29) )
924 
925 	ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
926 	ROM_LOAD( "b02_12.rom",		0x00000, 0x08000, CRC(733b9997) SHA1(75e874a1d148fcc8fa09bb724ce8346565ace4e5) )
927 	ROM_LOAD( "b02_15.rom",		0x08000, 0x08000, CRC(8b70ef32) SHA1(e1f988d650dce17e3bfbea12e5fddbb671df18d4) )
928 	ROM_LOAD( "b02_14.rom",		0x10000, 0x08000, CRC(f711ba7d) SHA1(49644a264c09fc2d743e4f801b8b82e980f2def9) )
929 	ROM_LOAD( "b02_13.rom",		0x18000, 0x08000, CRC(62532cd3) SHA1(df483db7604c0135130f92b08bad3fbffb4f5c47) )
930 
931 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
932 	ROM_LOAD( "b02_08.rom",		0x00000, 0x08000, CRC(ef0cf49c) SHA1(6fd5727462cd6c5dab4c5d780bd7504e48583894) )
933 	ROM_LOAD( "b02_11.rom",		0x08000, 0x08000, CRC(f5799422) SHA1(3f79dd849db787695a587f0db19a6782153b5955) )
934 	ROM_LOAD( "b02_10.rom",		0x10000, 0x08000, CRC(4bd099ff) SHA1(9326075f83549b0a9656f69bd4436fb1be2ac805) )
935 	ROM_LOAD( "b02_09.rom",		0x18000, 0x08000, CRC(230f1582) SHA1(0fd4156a46ed64cb6e5c59b8836382dd86c229cf) )
936 
937 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
938 	ROM_LOAD( "b02_01.512",		0x00000, 0x10000, CRC(2234b424) SHA1(bd6242b9dcdb0f582565df588106cd1ce2aad53b) )
939 	ROM_LOAD( "b02_02.512",		0x10000, 0x10000, CRC(30d4c9a8) SHA1(96ce4f41207c5487e801a8444030ec4dc7b58b23) )
940 	ROM_LOAD( "b02_03.512",		0x20000, 0x10000, CRC(64f3d88f) SHA1(d0155cfb0a8885d58e34141f9696b9aa208440ca) )
941 	ROM_LOAD( "b02_04.512",		0x30000, 0x10000, CRC(3b23a9fc) SHA1(2ac34445618e17371b5eed7eb6f43da4dbb99e28) )
942 
943 	ROM_REGION( 0x300, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
944 	ROM_LOAD( "clr2.bpr",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
945 	ROM_LOAD( "clr1.bpr",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
946 	ROM_LOAD( "clr3.bpr",	0x200, 0x100, CRC(016fe2f7) SHA1(909f815a61e759fdf998674ee383512ecd8fee65) )	/* ?? */
947 ROM_END
948 
949 ROM_START( skyshark )
950 	ROM_REGION( 0x20000, REGION_CPU1, 0 )	/* Main 68K code */
951 	ROM_LOAD16_BYTE( "18-2",		0x00000, 0x10000, CRC(888e90f3) SHA1(3a40d7e7653cc929af8186e48f272989fb332e14) )
952 	ROM_LOAD16_BYTE( "17-2",		0x00001, 0x10000, CRC(066d67be) SHA1(a66be35b956da2c2ddf97cae66d79c0efd228621) )
953 
954 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
955 	ROM_LOAD( "b02_16.rom",		0x0000, 0x8000, CRC(cdd1a153) SHA1(de9827a959039cf753ecac6756fb1925c37466d8) )
956 
957 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Space for Co-Processor TMS320C10 */
958 
959 	ROM_REGION( 0x1000, REGION_USER1, 0 )	/* Co-Processor TMS320C10 MCU code */
960 	ROM_LOAD_NIB_HIGH( "82s137-1.mcu",  0x0000, 0x0400, CRC(cc5b3f53) SHA1(33589665ac995cc4645b56bbcd6d1c1cd5368f88) ) /* msb */
961 	ROM_LOAD_NIB_LOW ( "82s137-2.mcu",  0x0000, 0x0400, CRC(47351d55) SHA1(826add3ea3987f2c9ba2d3fc69a4ad2d9b033c89) )
962 	ROM_LOAD_NIB_HIGH( "82s137-5.mcu",  0x0400, 0x0400, CRC(f35b978a) SHA1(90da4ab12126727cd9510fdfe4f626452116c543) )
963 	ROM_LOAD_NIB_LOW ( "82s137-6.mcu",  0x0400, 0x0400, CRC(0459e51b) SHA1(b673f5e1fcf60c0ba668aeb98d545d17b988945d) )
964 	ROM_LOAD_NIB_HIGH( "82s137-3.mcu",  0x0800, 0x0400, CRC(70b537b9) SHA1(5211ec4605894727747dda66b70c9427652b16b4) ) /* lsb */
965 	ROM_LOAD_NIB_LOW ( "82s137-4.mcu",  0x0800, 0x0400, CRC(6edb2de8) SHA1(48459037c3b865f0c0d63a416fa71ba1119f7a09) )
966 	ROM_LOAD_NIB_HIGH( "82s137-7.mcu",  0x0c00, 0x0400, CRC(cbf3184b) SHA1(a3eafadc319183ed688dc081c4dfcbe8d476abea) )
967 	ROM_LOAD_NIB_LOW ( "82s137-8.mcu",  0x0c00, 0x0400, CRC(8246a05c) SHA1(2511fa99fbdd6c75281fa85ecca2a617d36eb360) )
968 
969 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
970 	ROM_LOAD( "7-2",			0x00000, 0x04000, CRC(af48c4e6) SHA1(07e8bb6cb92f812990112063f87073df9a346ff4) )
971 	ROM_LOAD( "6-2",			0x04000, 0x04000, CRC(9a29a862) SHA1(5742f1f5a9c8d644d2a48496466039d18f192929) )
972 	ROM_LOAD( "5-2",			0x08000, 0x04000, CRC(fb7cad55) SHA1(91815a717511cc97477f08f0fed568247c7fd143) )
973 
974 	ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
975 	ROM_LOAD( "b02_12.rom",		0x00000, 0x08000, CRC(733b9997) SHA1(75e874a1d148fcc8fa09bb724ce8346565ace4e5) )
976 	ROM_LOAD( "b02_15.rom",		0x08000, 0x08000, CRC(8b70ef32) SHA1(e1f988d650dce17e3bfbea12e5fddbb671df18d4) )
977 	ROM_LOAD( "b02_14.rom",		0x10000, 0x08000, CRC(f711ba7d) SHA1(49644a264c09fc2d743e4f801b8b82e980f2def9) )
978 	ROM_LOAD( "b02_13.rom",		0x18000, 0x08000, CRC(62532cd3) SHA1(df483db7604c0135130f92b08bad3fbffb4f5c47) )
979 
980 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
981 	ROM_LOAD( "b02_08.rom",		0x00000, 0x08000, CRC(ef0cf49c) SHA1(6fd5727462cd6c5dab4c5d780bd7504e48583894) )
982 	ROM_LOAD( "b02_11.rom",		0x08000, 0x08000, CRC(f5799422) SHA1(3f79dd849db787695a587f0db19a6782153b5955) )
983 	ROM_LOAD( "b02_10.rom",		0x10000, 0x08000, CRC(4bd099ff) SHA1(9326075f83549b0a9656f69bd4436fb1be2ac805) )
984 	ROM_LOAD( "b02_09.rom",		0x18000, 0x08000, CRC(230f1582) SHA1(0fd4156a46ed64cb6e5c59b8836382dd86c229cf) )
985 
986 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
987 	ROM_LOAD( "b02_01.512",		0x00000, 0x10000, CRC(2234b424) SHA1(bd6242b9dcdb0f582565df588106cd1ce2aad53b) )
988 	ROM_LOAD( "b02_02.512",		0x10000, 0x10000, CRC(30d4c9a8) SHA1(96ce4f41207c5487e801a8444030ec4dc7b58b23) )
989 	ROM_LOAD( "b02_03.512",		0x20000, 0x10000, CRC(64f3d88f) SHA1(d0155cfb0a8885d58e34141f9696b9aa208440ca) )
990 	ROM_LOAD( "b02_04.512",		0x30000, 0x10000, CRC(3b23a9fc) SHA1(2ac34445618e17371b5eed7eb6f43da4dbb99e28) )
991 
992 	ROM_REGION( 0x300, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
993 	ROM_LOAD( "clr2.bpr",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
994 	ROM_LOAD( "clr1.bpr",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
995 	ROM_LOAD( "clr3.bpr",	0x200, 0x100, CRC(016fe2f7) SHA1(909f815a61e759fdf998674ee383512ecd8fee65) )	/* ?? */
996 ROM_END
997 
998 ROM_START( hishouza )
999 	ROM_REGION( 0x20000, REGION_CPU1, 0 )	/* Main 68K code */
1000 	ROM_LOAD16_BYTE( "b02-18.rom",	0x00000, 0x10000, CRC(4444bb94) SHA1(5ff955a5190d1b356187de105cfb8ea181fc1282) )
1001 	ROM_LOAD16_BYTE( "b02-17.rom",	0x00001, 0x10000, CRC(cdac7228) SHA1(6b0d67e4b0661a858653d2eabb8936af9148167e) )
1002 
1003 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
1004 	ROM_LOAD( "b02_16.rom",		0x0000, 0x8000, CRC(cdd1a153) SHA1(de9827a959039cf753ecac6756fb1925c37466d8) )
1005 
1006 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Space for Co-Processor TMS320C10 */
1007 
1008 	ROM_REGION( 0x1000, REGION_USER1, 0 )	/* Co-Processor TMS320C10 MCU code */
1009 	ROM_LOAD_NIB_HIGH( "dsp-a1.bpr", 0x0000, 0x0400, CRC(45d4d1b1) SHA1(e776a056f0f72cbeb309c5a23f803330cb8b3763) ) /* msb */
1010 	ROM_LOAD_NIB_LOW ( "dsp-a2.bpr", 0x0000, 0x0400, CRC(edd227fa) SHA1(34aba84b5216ecbe462e7166d0f66785ca049a34) )
1011 	ROM_LOAD_NIB_HIGH( "dsp-b5.bpr", 0x0400, 0x0400, CRC(85ca5d47) SHA1(3c6e21e2897fd35834021ec9f81f57bebfd13ef8) )
1012 	ROM_LOAD_NIB_LOW ( "dsp-b6.bpr", 0x0400, 0x0400, CRC(81816b2c) SHA1(1e58ab7aef2a34f42267debf4cad9558d5e14159) )
1013 	ROM_LOAD_NIB_HIGH( "dsp-a3.bpr", 0x0800, 0x0400, CRC(df88e79b) SHA1(661b057fa2eef37b9d794151381d7d74a7bfa93a) ) /* lsb */
1014 	ROM_LOAD_NIB_LOW ( "dsp-a4.bpr", 0x0800, 0x0400, CRC(a2094a7f) SHA1(0f1c173643046c76aa89eab66fba6ea51c3f2223) )
1015 	ROM_LOAD_NIB_HIGH( "dsp-b7.bpr", 0x0c00, 0x0400, CRC(e87540cd) SHA1(bb6e98c47ed46abbbfa06571806cb2d663880419) )
1016 	ROM_LOAD_NIB_LOW ( "dsp-b8.bpr", 0x0c00, 0x0400, CRC(d3c16c5c) SHA1(a24d9536914734c1875c8a39938a346ff4418dd0) )
1017 
1018 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
1019 	ROM_LOAD( "b02-07.rom",		0x00000, 0x04000, CRC(c13a775e) SHA1(b60d26126ec6ebc24a7ca87dd0234e4d9d3e78fc) )
1020 	ROM_LOAD( "b02-06.rom",		0x04000, 0x04000, CRC(ad5f1371) SHA1(feae9d7bb75bfab5353be4c5931d78a530bd9bcd) )
1021 	ROM_LOAD( "b02-05.rom",		0x08000, 0x04000, CRC(85a7bff6) SHA1(38cd89aa0800e3796f7ecac657d14119543057c2) )
1022 
1023 	ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
1024 	ROM_LOAD( "b02_12.rom",		0x00000, 0x08000, CRC(733b9997) SHA1(75e874a1d148fcc8fa09bb724ce8346565ace4e5) )
1025 	ROM_LOAD( "b02_15.rom",		0x08000, 0x08000, CRC(8b70ef32) SHA1(e1f988d650dce17e3bfbea12e5fddbb671df18d4) )
1026 	ROM_LOAD( "b02_14.rom",		0x10000, 0x08000, CRC(f711ba7d) SHA1(49644a264c09fc2d743e4f801b8b82e980f2def9) )
1027 	ROM_LOAD( "b02_13.rom",		0x18000, 0x08000, CRC(62532cd3) SHA1(df483db7604c0135130f92b08bad3fbffb4f5c47) )
1028 
1029 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
1030 	ROM_LOAD( "b02_08.rom",		0x00000, 0x08000, CRC(ef0cf49c) SHA1(6fd5727462cd6c5dab4c5d780bd7504e48583894) )
1031 	ROM_LOAD( "b02_11.rom",		0x08000, 0x08000, CRC(f5799422) SHA1(3f79dd849db787695a587f0db19a6782153b5955) )
1032 	ROM_LOAD( "b02_10.rom",		0x10000, 0x08000, CRC(4bd099ff) SHA1(9326075f83549b0a9656f69bd4436fb1be2ac805) )
1033 	ROM_LOAD( "b02_09.rom",		0x18000, 0x08000, CRC(230f1582) SHA1(0fd4156a46ed64cb6e5c59b8836382dd86c229cf) )
1034 
1035 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
1036 	ROM_LOAD( "b02_01.512",		0x00000, 0x10000, CRC(2234b424) SHA1(bd6242b9dcdb0f582565df588106cd1ce2aad53b) )
1037 	ROM_LOAD( "b02_02.512",		0x10000, 0x10000, CRC(30d4c9a8) SHA1(96ce4f41207c5487e801a8444030ec4dc7b58b23) )
1038 	ROM_LOAD( "b02_03.512",		0x20000, 0x10000, CRC(64f3d88f) SHA1(d0155cfb0a8885d58e34141f9696b9aa208440ca) )
1039 	ROM_LOAD( "b02_04.512",		0x30000, 0x10000, CRC(3b23a9fc) SHA1(2ac34445618e17371b5eed7eb6f43da4dbb99e28) )
1040 
1041 	ROM_REGION( 0x300, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
1042 	ROM_LOAD( "clr2.bpr",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
1043 	ROM_LOAD( "clr1.bpr",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
1044 	ROM_LOAD( "clr3.bpr",	0x200, 0x100, CRC(016fe2f7) SHA1(909f815a61e759fdf998674ee383512ecd8fee65) )	/* ?? */
1045 ROM_END
1046 
1047 ROM_START( fsharkbt )
1048 	ROM_REGION( 0x20000, REGION_CPU1, 0 )	/* Main 68K code */
1049 	ROM_LOAD16_BYTE( "r18",		0x00000, 0x10000, CRC(ef30f563) SHA1(755d6ce4c1e631d7c11d3fab99dae300b6a3452e) )
1050 	ROM_LOAD16_BYTE( "r17",		0x00001, 0x10000, CRC(0e18d25f) SHA1(82fc94830b3087c826d07cff699af9a3638e8087) )
1051 
1052 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
1053 	ROM_LOAD( "b02_16.rom",		0x0000, 0x8000, CRC(cdd1a153) SHA1(de9827a959039cf753ecac6756fb1925c37466d8) )
1054 
1055 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Space for Co-Processor TMS320C10 */
1056 
1057 	ROM_REGION( 0x1000, REGION_USER1, 0 )	/* Co-Processor TMS320C10 MCU code */
1058 	ROM_LOAD_NIB_HIGH( "mcu-1.bpr",  0x0000, 0x0400, CRC(45d4d1b1) SHA1(e776a056f0f72cbeb309c5a23f803330cb8b3763) ) /* msb */
1059 	ROM_LOAD_NIB_LOW ( "mcu-2.bpr",  0x0000, 0x0400, CRC(651336d1) SHA1(3c968d5cb58abe35794b7c88520a22fc0b45a449) )
1060 	ROM_LOAD_NIB_HIGH( "mcu-5.bpr",  0x0400, 0x0400, CRC(f97a58da) SHA1(77a659943d95d5b859fab50f827f11222c3dbf1f) )
1061 	ROM_LOAD_NIB_LOW ( "mcu-6.bpr",  0x0400, 0x0400, CRC(ffcc422d) SHA1(9b4331e8bb5fe37bb8efcccc500a1d7cd026bf93) )
1062 	ROM_LOAD_NIB_HIGH( "mcu-3.bpr",  0x0800, 0x0400, CRC(df88e79b) SHA1(661b057fa2eef37b9d794151381d7d74a7bfa93a) ) /* lsb */
1063 	ROM_LOAD_NIB_LOW ( "mcu-4.bpr",  0x0800, 0x0400, CRC(a2094a7f) SHA1(0f1c173643046c76aa89eab66fba6ea51c3f2223) )
1064 	ROM_LOAD_NIB_HIGH( "mcu-7.bpr",  0x0c00, 0x0400, CRC(0cd30d49) SHA1(65d65a199bfb740b94af19843640e625a5e67f46) )
1065 	ROM_LOAD_NIB_LOW ( "mcu-8.bpr",  0x0c00, 0x0400, CRC(3379bbff) SHA1(2f577b8de6d523087b472691cdde2eb525877878) )
1066 
1067 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
1068 	ROM_LOAD( "b02_07-1.rom",	0x00000, 0x04000, CRC(e669f80e) SHA1(05c1a4ff9adaa6c8035f38a76c5ee333fafba2bf) )
1069 	ROM_LOAD( "b02_06-1.rom",	0x04000, 0x04000, CRC(5e53ae47) SHA1(55bde4133deebb59a87d9b96c6d0fd7b4bbc0e02) )
1070 	ROM_LOAD( "b02_05-1.rom",	0x08000, 0x04000, CRC(a8b05bd0) SHA1(37317838ea57cb98cf9599cedf8e72bcae913d29) )
1071 
1072 	ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
1073 	ROM_LOAD( "b02_12.rom",		0x00000, 0x08000, CRC(733b9997) SHA1(75e874a1d148fcc8fa09bb724ce8346565ace4e5) )
1074 	ROM_LOAD( "b02_15.rom",		0x08000, 0x08000, CRC(8b70ef32) SHA1(e1f988d650dce17e3bfbea12e5fddbb671df18d4) )
1075 	ROM_LOAD( "b02_14.rom",		0x10000, 0x08000, CRC(f711ba7d) SHA1(49644a264c09fc2d743e4f801b8b82e980f2def9) )
1076 	ROM_LOAD( "b02_13.rom",		0x18000, 0x08000, CRC(62532cd3) SHA1(df483db7604c0135130f92b08bad3fbffb4f5c47) )
1077 
1078 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
1079 	ROM_LOAD( "b02_08.rom",		0x00000, 0x08000, CRC(ef0cf49c) SHA1(6fd5727462cd6c5dab4c5d780bd7504e48583894) )
1080 	ROM_LOAD( "b02_11.rom",		0x08000, 0x08000, CRC(f5799422) SHA1(3f79dd849db787695a587f0db19a6782153b5955) )
1081 	ROM_LOAD( "b02_10.rom",		0x10000, 0x08000, CRC(4bd099ff) SHA1(9326075f83549b0a9656f69bd4436fb1be2ac805) )
1082 	ROM_LOAD( "b02_09.rom",		0x18000, 0x08000, CRC(230f1582) SHA1(0fd4156a46ed64cb6e5c59b8836382dd86c229cf) )
1083 
1084 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
1085 	ROM_LOAD( "b02_01.512",		0x00000, 0x10000, CRC(2234b424) SHA1(bd6242b9dcdb0f582565df588106cd1ce2aad53b) )
1086 	ROM_LOAD( "b02_02.512",		0x10000, 0x10000, CRC(30d4c9a8) SHA1(96ce4f41207c5487e801a8444030ec4dc7b58b23) )
1087 	ROM_LOAD( "b02_03.512",		0x20000, 0x10000, CRC(64f3d88f) SHA1(d0155cfb0a8885d58e34141f9696b9aa208440ca) )
1088 	ROM_LOAD( "b02_04.512",		0x30000, 0x10000, CRC(3b23a9fc) SHA1(2ac34445618e17371b5eed7eb6f43da4dbb99e28) )
1089 
1090 	ROM_REGION( 0x300, REGION_PROMS, 0 )	/* nibble bproms, lo/hi order to be determined */
1091 	ROM_LOAD( "clr2.bpr",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
1092 	ROM_LOAD( "clr1.bpr",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
1093 	ROM_LOAD( "clr3.bpr",	0x200, 0x100, CRC(016fe2f7) SHA1(909f815a61e759fdf998674ee383512ecd8fee65) )	/* ?? */
1094 ROM_END
1095 
1096 ROM_START( gulfwar2 )
1097 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* Main 68K code */
1098 	ROM_LOAD16_BYTE( "07-u92.bin",  0x00001, 0x20000, CRC(b73e6b25) SHA1(53cde41e5a2e8f721c3f43abf1fff46479f658d8) )
1099 	ROM_LOAD16_BYTE( "08-u119.bin", 0x00000, 0x20000, CRC(41ebf9c0) SHA1(85207dda76abded727ed95717024a2ea2bd85dac) )
1100 
1101 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound Z80 code */
1102 	ROM_LOAD( "06-u51.bin",			0x00000, 0x08000, CRC(75504f95) SHA1(5bd23e700e1bd4f0fac622dfb7c8cc69ba764956) )
1103 
1104 	ROM_REGION( 0x10000, REGION_CPU3, 0 )	/* Co-Processor TMS320C10 MCU code */
1105 	ROM_LOAD16_BYTE( "02-u1.rom",	0x8001, 0x2000, CRC(abefe4ca) SHA1(f05f12a1ff19411f34f4eee98ce9ba450fec38f2) ) /* Same code as Twin Cobra*/
1106 	ROM_LOAD16_BYTE( "01-u2.rom",	0x8000, 0x2000, CRC(01399b65) SHA1(4867ec815e22c9124c7aa00ebb6089c2611fa31f) ) /* Same code as Twin Cobra*/
1107 
1108 	ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE )	/* chars */
1109 	ROM_LOAD( "03-u9.bin",			0x00000, 0x04000, CRC(1b7934b3) SHA1(c7f5ac364dec4c7843c30e098fd02e0901bdf4b7) )
1110 	ROM_LOAD( "04-u10.bin",			0x04000, 0x04000, CRC(6f7bfb58) SHA1(4c5602668938a52321b70cd971326fe1a4930889) )
1111 	ROM_LOAD( "05-u11.bin",			0x08000, 0x04000, CRC(31814724) SHA1(bdcf270e6219555a7f776167f6bf971c6ff18a83) )
1112 
1113 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )	/* fg tiles */
1114 	ROM_LOAD( "16-u202.bin",			0x00000, 0x10000, CRC(d815d175) SHA1(917043d0731226d18bcc22dfe27e5a5a18b03c06) )
1115 	ROM_LOAD( "13-u199.bin",			0x10000, 0x10000, CRC(d949b0d9) SHA1(1974d3b54e082baa9084dd619c8a879d954644cd) )
1116 	ROM_LOAD( "14-u200.bin",			0x20000, 0x10000, CRC(c109a6ac) SHA1(3a13ec802e5bafcf599c273a0bb0fd078e01e171) )
1117 	ROM_LOAD( "15-u201.bin",			0x30000, 0x10000, CRC(ad21f2ab) SHA1(0ab6eeb4dc9c2531c6f19479e7f9bc54fc1c1fdf) )
1118 
1119 	ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )	/* bg tiles */
1120 	ROM_LOAD( "09-u195.bin",			0x00000, 0x08000, CRC(b7be3a6d) SHA1(68b9223fd07e81d443a1ae3ff04b2af105b27548) )
1121 	ROM_LOAD( "12-u198.bin",			0x08000, 0x08000, CRC(fd7032a6) SHA1(8be6315d732b154163a3573e2017fdfc77c92e54) )
1122 	ROM_LOAD( "11-u197.bin",			0x10000, 0x08000, CRC(7b721ed3) SHA1(afd10229414c65a56e184d56a69460ca3a502a27) )
1123 	ROM_LOAD( "10-u196.rom",			0x18000, 0x08000, CRC(160f38ab) SHA1(da310ec387d439b26c8b6b881e5dcc07c2b9bb00) )
1124 
1125 	ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE )	/* sprites */
1126 	ROM_LOAD( "20-u262.bin",			0x00000, 0x10000, CRC(10665ca0) SHA1(0c552c3807e00a7ef4f9fd28c7988a232628a1f5) )
1127 	ROM_LOAD( "19-u261.bin",			0x10000, 0x10000, CRC(cfa6d417) SHA1(f6c17d938b58dc5756ecf617f00fbfaf701602a7) )
1128 	ROM_LOAD( "18-u260.bin",			0x20000, 0x10000, CRC(2e6a0c49) SHA1(0b7ddad8775dcebe240a8246ef7816113f517f87) )
1129 	ROM_LOAD( "17-u259.bin",			0x30000, 0x10000, CRC(66c1b0e6) SHA1(82f3659245913f835c4434131c179b49ee195961) )
1130 
1131 	ROM_REGION( 0x260, REGION_PROMS, 0 )
1132 	ROM_LOAD( "82s129.d3",	0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )	/* sprite priority control ?? */
1133 	ROM_LOAD( "82s129.d4",	0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )	/* sprite priority control ?? */
1134 	ROM_LOAD( "82s123.d2",	0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )	/* sprite control ?? */
1135 	ROM_LOAD( "82s123.e18",	0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )	/* sprite attribute (flip/position) ?? */
1136 	ROM_LOAD( "82s123.b24",	0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )	/* tile to sprite priority ?? */
1137 ROM_END
1138 
1139 static DRIVER_INIT( fshark )
1140 {
1141 	data8_t *source = memory_region(REGION_USER1);
1142 	data16_t *dest = (data16_t *)&memory_region(REGION_CPU3)[TMS32010_PGM_OFFSET];
1143 	int A;
1144 
1145 	/* The ROM loader fixes the nibble images. Here we fix the byte ordering. */
1146 	for (A = 0;A < 0x0800;A++)
1147 		dest[A] = (source[A] << 8) | source[A + 0x800];
1148 }
1149 
1150 
1151 
1152 GAME( 1987, twincobr, 0,        twincobr, twincobr, 0,      ROT270, "[Toaplan] Taito Corporation", "Twin Cobra (World)" )
1153 GAME( 1987, twincobu, twincobr, twincobr, twincobu, 0,      ROT270, "[Toaplan] Taito America Corporation (Romstar license)", "Twin Cobra (US)" )
1154 GAME( 1987, ktiger,   twincobr, twincobr, ktiger,   0,      ROT270, "[Toaplan] Taito Corporation", "Kyukyoku Tiger (Japan)" )
1155 GAME( 1987, fshark,   0,        twincobr, fshark,   fshark, ROT270, "[Toaplan] Taito Corporation", "Flying Shark (World)" )
1156 GAME( 1987, skyshark, fshark,   twincobr, skyshark, fshark, ROT270, "[Toaplan] Taito America Corporation (Romstar license)", "Sky Shark (US)" )
1157 GAME( 1987, hishouza, fshark,   twincobr, hishouza, fshark, ROT270, "[Toaplan] Taito Corporation", "Hishou Zame (Japan)" )
1158 GAME( 1987, fsharkbt, fshark,   twincobr, skyshark, fshark, ROT270, "bootleg", "Flying Shark (bootleg)" )
1159 GAME( 1991, gulfwar2, 0,        twincobr, gulfwar2, 0,      ROT270, "Comad", "Gulf War II" )
1160