1 /********************************************************************
2 
3 Urashima Mahjong         UPL        68000 <unknown cpu> OKIM6295
4 Task Force Harrier       UPL        68000 Z80           YM2203 2xOKIM6295
5 Mustang                  UPL        68000 NMK004        YM2203 2xOKIM6295
6 Mustang (bootleg)        UPL        68000 Z80           YM3812 OKIM6295
7 Bio-ship Paladin         UPL        68000 <unknown cpu> YM2203(?) 2xOKIM6295
8 Vandyke                  UPL        68000 NMK004        YM2203 2xOKIM6295
9 Black Heart              UPL        68000 NMK004        YM2203 2xOKIM6295
10 Acrobat Mission          UPL        68000 NMK004        YM2203 2xOKIM6295
11 Strahl                   UPL        68000 <unknown cpu> YM2203 2xOKIM6295
12 Thunder Dragon           NMK/Tecmo  68000 <unknown cpu> YM2203 2xOKIM6295
13 Thunder Dragon (bootleg) NMK/Tecmo  68000 Z80           YM3812 OKIM6295
14 Hacha Mecha Fighter      NMK        68000 <unknown cpu> YM2203 2xOKIM6295
15 Macross                  Banpresto  68000 <unknown cpu> YM2203 2xOKIM6295
16 GunNail                  NMK/Tecmo  68000 NMK004        YM2203 2xOKIM6295
17 Macross II               Banpresto  68000 Z80           YM2203 2xOKIM6295
18 Thunder Dragon 2         NMK        68000 Z80           YM2203 2xOKIM6295
19 Saboten Bombers          NMK/Tecmo  68000               2xOKIM6295
20 Bombjack Twin            NMK        68000               2xOKIM6295
21 Nouryoku Koujou Iinkai   Tecmo      68000               2xOKIM6295
22 Many Block               Bee-Oh     68000 Z80           YM2203 2xOKIM6295
23 S.S. Mission             Comad      68000 Z80           OKIM6295
24 Rapid Hero				 NMK		68000 tmp90c841     YM2203 2xOKIM6295
25 
26 driver by Mirko Buffoni, Richard Bush, Nicola Salmoria, Bryan McPhail,
27           David Haywood, and R. Belmont.
28 
29 The NMK004 CPU might be a Toshiba TLCS-90 class CPU with internal ROM in the
30 0000-3fff range.
31 
32 The later games have an higher resolution (384x224 instead of 256x224)
33 but the hardware is pretty much the same. It's obvious that the higher
34 res is an afterthought, because the tilemap layout is weird (the left
35 8 screen columns have to be taken from the rightmost 8 columns of the
36 tilemap), and the games rely on mirror addresses to access the tilemap
37 sequentially.
38 
39 TODO:
40 - Protection is patched in several games, it's the same chip as Macross/Task
41   Force Harrier so it can probably be emulated.  I don't think it's an actual MCU,
42   just some type of state machine (Bryan).
43 - Input ports in Bio-ship Paladin, Strahl
44 - Sound communication in Mustang might be incorrectly implemented
45 - Several games use an unknown (custom?) CPU to drive sound and for protection.
46   In macross and gunnail it's easy to work around, the others are more complex.
47   In hachamf it seems that the two CPUs share some RAM (fe000-fefff), and the
48   main CPU fetches pointers from that shared RAM to do important operations
49   like reading the input ports. Some of them are easily deduced checking for
50   similarities in macross and bjtwin; however another protection check involves
51   (see the routine at 01429a) writing data to the fe100-fe1ff range, and then
52   jumping to subroutines in that range (most likely function pointers since
53   each one is only 0x10 bytes long), and heaven knows what those should do.
54   On startup, hachamf does a RAM test, then copies some stuff and jumps to
55   RAM at 0xfef00, where it sits in a loop. Maybe the RAM is shared with the
56   sound CPU, and used as a protection. We patch around that by replacing the
57   reset vector with the "real" one.
58 - Cocktail mode is supported, but tilemap.c has problems with asymmetrical
59   visible areas.
60 - Macross2 dip switches (the ones currently listed match macross)
61 - Macross2 background is wrong in level 2 at the end of the vertical scroll.
62   The tilemap layout is probably different from the one I used, the dimensions
63   should be correct but the page order is likely different.
64 - Music timing in nouryoku is a little off.
65 - DSW's in Tdragon2
66 - In Bioship, there's an occasional flicker of one of the sprites composing big
67   ships. Increasing CPU speed from 12 to 16 MHz improved it, but it's still not
68   100% fixed.
69 
70 ----
71 
72 IRQ1 controls audio output and coin/joysticks reads
73 IRQ4 controls DSW reads and vblank.
74 IRQ2 points to RTE (not used).
75 
76 ----
77 
78 mustang and hachamf test mode:
79 
80 1)  Press player 2 buttons 1+2 during reset.  "Ready?" will appear
81 2)	Press player 1 button 2 14 (!) times
82 
83 gunnail test mode:
84 
85 1)  Press player 2 buttons 1+2 during reset.  "Ready?" will appear
86 2)	Press player 2 button 1 3 times
87 
88 bjtwin test mode:
89 
90 1)  Press player 2 buttons 1+2 during reset.  "Ready?" will appear
91 2)	Press player 1 buttons in this sequence:
92 	2,2,2, 1,1,1, 2,2,2, 1,1,1
93 	The release date of this program will appear.
94 
95 Some code has to be patched out for this to work (see below). The program
96 remaps button 2 and 3 to button 1, so you can't enter the above sequence.
97 
98 ---
99 
100 Questions / Notes
101 The 2nd cpu program roms .. anyone got any idea what cpu they run on
102 areas 0x0000 - 0x3fff in several of them look like they contain nothing
103 of value.. maybe this area wouldn't be accessable really and there is
104 ram there in that cpu's address space (shared with the main cpu ?)
105 .. maybe the roms are bitswapped like the gfx.. needs investigating
106 really..
107 
108 'manybloc' :
109 
110   - There are writes to 0x080010.w and 0x080012.w (MCU ?) in code between
111     0x005000 to 0x005690, but I see no call to "main" routine at 0x005504 !
112   - There are writes to 0x08001c.w and 0x08001e.w but I can't tell what
113     the effect is ! Could it be related to sound and/or interrupts ?
114 
115   - In the "test mode", press BOTH player 1 buttons to exit
116 
117   - When help is available, press BUTTON2 twice within the timer to "solve"
118 
119 ---
120 
121 Sound notes for games with a Z80:
122 
123 mustangb and tdragonb use the Seibu Raiden sound hardware and a modified
124 Z80 program (but the music is intact and recognizable).  See sndhrdw/seibu.c
125 for more info on this.
126 
127 tharrier and manybloc share a sound board.  manybloc has some weird/missing
128 sound effects and unknown writes at F600 and F700.  Possibly these are some
129 sort of OKIM6295 bankswitch?  But there's only 2 256k sample ROMs, and the
130 6295 can address 512k on it's own?
131 
132 tharrier doesn't do the extra writes and doesn't appear to have any trouble.
133 If someone could fix the protection it'd be fully playable with sound and music...
134 
135 ********************************************************************/
136 
137 #include "driver.h"
138 #include "vidhrdw/generic.h"
139 #include "sndhrdw/seibu.h"
140 
141 extern data16_t *nmk_bgvideoram,*nmk_fgvideoram,*nmk_txvideoram;
142 extern data16_t *gunnail_scrollram;
143 
144 READ16_HANDLER( nmk_bgvideoram_r );
145 WRITE16_HANDLER( nmk_bgvideoram_w );
146 READ16_HANDLER( nmk_fgvideoram_r );
147 WRITE16_HANDLER( nmk_fgvideoram_w );
148 READ16_HANDLER( nmk_txvideoram_r );
149 WRITE16_HANDLER( nmk_txvideoram_w );
150 WRITE16_HANDLER( nmk_scroll_w );
151 WRITE16_HANDLER( nmk_scroll_2_w );
152 WRITE16_HANDLER( nmk_scroll_3_w );
153 WRITE16_HANDLER( gunnail_scrollx_w );
154 WRITE16_HANDLER( gunnail_scrolly_w );
155 WRITE16_HANDLER( nmk_flipscreen_w );
156 WRITE16_HANDLER( nmk_tilebank_w );
157 WRITE16_HANDLER( bioship_scroll_w );
158 WRITE16_HANDLER( bioship_bank_w );
159 WRITE16_HANDLER( mustang_scroll_w );
160 WRITE16_HANDLER( vandyke_scroll_w );
161 
162 VIDEO_START( macross );
163 VIDEO_UPDATE( manybloc );
164 VIDEO_START( gunnail );
165 VIDEO_START( macross2 );
166 VIDEO_START( tdragon2 );
167 VIDEO_START( bjtwin );
168 VIDEO_START( bioship );
169 VIDEO_START( strahl );
170 VIDEO_UPDATE( bioship );
171 VIDEO_UPDATE( strahl );
172 VIDEO_UPDATE( macross );
173 VIDEO_UPDATE( gunnail );
174 VIDEO_UPDATE( bjtwin );
175 VIDEO_EOF( nmk );
176 
177 static int respcount; // used with mcu function
178 
MACHINE_INIT(nmk16)179 static MACHINE_INIT( nmk16 )
180 {
181 	respcount = 0;
182 }
183 
MACHINE_INIT(mustang_sound)184 static MACHINE_INIT( mustang_sound )
185 {
186 	respcount = 0;
187 	machine_init_seibu_sound_1();
188 }
189 
WRITE16_HANDLER(ssmissin_sound_w)190 WRITE16_HANDLER ( ssmissin_sound_w )
191 {
192 	/* maybe .. */
193 	if (ACCESSING_LSB)
194 	{
195 		soundlatch_w(0,data & 0xff);
196 		cpu_set_irq_line(1,0, ASSERT_LINE);
197 	}
198 
199 	if (ACCESSING_MSB)
200 		if ((data >> 8) & 0x80)
201 			cpu_set_irq_line(1,0, CLEAR_LINE);
202 }
203 
204 
205 
WRITE_HANDLER(ssmissin_soundbank_w)206 WRITE_HANDLER ( ssmissin_soundbank_w )
207 {
208 	unsigned char *rom = memory_region(REGION_SOUND1);
209 	int bank;
210 
211 	bank = data & 0x3;
212 
213 	memcpy(rom + 0x20000,rom + 0x80000 + bank * 0x20000,0x20000);
214 }
215 
216 
217 static data16_t *ram;
218 
WRITE16_HANDLER(macross_mcu_w)219 static WRITE16_HANDLER( macross_mcu_w )
220 {
221 	logerror("%04x: mcu_w %04x\n",activecpu_get_pc(),data);
222 
223 
224 	/* since its starting to look more unlikely every day that we'll be
225 	   able to emulate the NMK004 sound cpu this provides some sound in
226 	   gunnail and macross, its entirely guesswork, sadly music can't be
227 	   simulated in a similar way :-( what is the NMK004 anyway, are
228 	   these really code roms we have, or does it have internal code of
229 	   its own, BioShip Paladin's 'Sound Program' Rom looks cleaner than
230 	   the others */
231 
232 
233 	/* Note: this doesn't play correct samples, it plays drums and stuff.
234 	   That's not quite right so I'm leaving it disabled */
235 #if 0
236 	if (!strcmp(Machine->gamedrv->name,"gunnail")) {
237 		if (ACCESSING_LSB) {
238 			if ((data & 0xff) == 0x00) { /* unknown */
239 				/* ?? */
240 			} else if ((data & 0xff) == 0xcc) { /* unknown */
241 				/* ?? */
242 			} else if ((data & 0xff) == 0xd0) { /* fire normal? */
243 				OKIM6295_data_0_w(0, 0x80 | 0x01 );
244 				OKIM6295_data_0_w(0, 0x00 | 0x10 );
245 			} else if ((data & 0xff) == 0xd1) { /* fire purple? */
246 				OKIM6295_data_0_w(0, 0x80 | 0x03 );
247 				OKIM6295_data_0_w(0, 0x00 | 0x10 );
248 			} else if ((data & 0xff) == 0xd2) { /* fire red? */
249 				OKIM6295_data_0_w(0, 0x80 | 0x03 );
250 				OKIM6295_data_0_w(0, 0x00 | 0x10 );
251 			} else if ((data & 0xff) == 0xd3) { /* fire blue? */
252 				OKIM6295_data_0_w(0, 0x80 | 0x03 );
253 				OKIM6295_data_0_w(0, 0x00 | 0x10 );
254 			} else if ((data & 0xff) == 0xd8) { /* explosion1? */
255 				OKIM6295_data_0_w(0, 0x80 | 0x07 );
256 				OKIM6295_data_0_w(0, 0x00 | 0x20 );
257 			} else if ((data & 0xff) == 0xdb) { /* explosion2? */
258 				OKIM6295_data_0_w(0, 0x80 | 0x08 );
259 				OKIM6295_data_0_w(0, 0x00 | 0x20 );
260 			} else if ((data & 0xff) == 0xe0) { /* coin? */
261 				OKIM6295_data_0_w(0, 0x80 | 0x10 );
262 				OKIM6295_data_0_w(0, 0x00 | 0x10 );
263 			} else {
264 //				usrintf_showmessage("%04x: mcu_w %04x\n",activecpu_get_pc(),data);
265 			}
266 		}
267 	}
268 
269 
270 	if (!strcmp(Machine->gamedrv->name,"macross")) {
271 		if (ACCESSING_LSB) {
272 			if ((data & 0xff) == 0xc4) { /* unknown */
273 				/* ?? */
274 			} else if ((data & 0xff) == 0xc5) { /* with bomb? */
275 				/* ?? */
276 			} else if ((data & 0xff) == 0xc6) { /* unknown */
277 				/* ?? */
278 			} else if ((data & 0xff) == 0xcc) { /* unknown */
279 				/* ?? */
280 			} else if ((data & 0xff) == 0xce) { /* green ememy die? */
281 				OKIM6295_data_0_w(0, 0x80 | 0x0f );
282 				OKIM6295_data_0_w(0, 0x00 | 0x40 );
283 			} else if ((data & 0xff) == 0xd0) { /* coin */
284 				OKIM6295_data_0_w(0, 0x80 | 0x01 );
285 				OKIM6295_data_0_w(0, 0x00 | 0x10 );
286 			} else if ((data & 0xff) == 0xd1) { /* shoot? */
287 				OKIM6295_data_0_w(0, 0x80 | 0x03 );
288 				OKIM6295_data_0_w(0, 0x00 | 0x20 );
289 			} else if ((data & 0xff) == 0xdb) { /* explosion? */
290 				OKIM6295_data_0_w(0, 0x80 | 0x10 );
291 				OKIM6295_data_0_w(0, 0x00 | 0x40 );
292 			} else if ((data & 0xff) == 0xdd) { /* player death? */
293 				OKIM6295_data_0_w(0, 0x80 | 0x0e );
294 				OKIM6295_data_0_w(0, 0x00 | 0x40 );
295 			} else if ((data & 0xff) == 0xde) { /* bomb? */
296 				OKIM6295_data_0_w(0, 0x80 | 0x0d );
297 				OKIM6295_data_0_w(0, 0x00 | 0x40 );
298 			} else if ((data & 0xff) == 0xdf) { /* some enemy fire? */
299 				OKIM6295_data_0_w(0, 0x80 | 0x12 );
300 				OKIM6295_data_0_w(0, 0x00 | 0x20 );
301 			} else if ((data & 0xff) == 0xe5) { /* power up? */
302 				OKIM6295_data_0_w(0, 0x80 | 0x16 );
303 				OKIM6295_data_0_w(0, 0x00 | 0x80 );
304 			} else {
305 //				usrintf_showmessage("%04x: mcu_w %04x\n",activecpu_get_pc(),data);
306 			}
307 		}
308 	}
309 #endif
310 }
311 
312 
READ16_HANDLER(macross_mcu_r)313 static READ16_HANDLER( macross_mcu_r )
314 {
315 	static int resp[] = {	0x82, 0xc7, 0x00,
316 							0x2c, 0x6c, 0x00,
317 							0x9f, 0xc7, 0x00,
318 							0x29, 0x69, 0x00,
319 							0x8b, 0xc7, 0x00 };
320 	int res;
321 
322 	if (activecpu_get_pc()==0x8aa) res = (ram[0x064/2])|0x20; /* Task Force Harrier */
323 	else if (activecpu_get_pc()==0x8ce) res = (ram[0x064/2])|0x60; /* Task Force Harrier */
324 	else if (activecpu_get_pc() == 0x0332	/* Macross */
325 			||	activecpu_get_pc() == 0x64f4)	/* GunNail */
326 		res = ram[0x0f6/2];
327 	else
328 	{
329 		res = resp[respcount++];
330 		if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
331 	}
332 
333 logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
334 
335 	return res;
336 }
337 
READ16_HANDLER(urashima_mcu_r)338 static READ16_HANDLER( urashima_mcu_r )
339 {
340 	static int resp[] = {	0x99, 0xd8, 0x00,
341 							0x2a, 0x6a, 0x00,
342 							0x9c, 0xd8, 0x00,
343 							0x2f, 0x6f, 0x00,
344 							0x22, 0x62, 0x00,
345 							0x25, 0x65, 0x00 };
346 	int res;
347 
348 	res = resp[respcount++];
349 	if (respcount >= sizeof(resp)/sizeof(resp[0])) respcount = 0;
350 
351 logerror("%04x: mcu_r %02x\n",activecpu_get_pc(),res);
352 
353 	return res;
354 }
355 
WRITE16_HANDLER(tharrier_mcu_control_w)356 static WRITE16_HANDLER( tharrier_mcu_control_w )
357 {
358 //	logerror("%04x: mcu_control_w %02x\n",activecpu_get_pc(),data);
359 }
360 
READ16_HANDLER(tharrier_mcu_r)361 static READ16_HANDLER( tharrier_mcu_r )
362 {
363 	/* The MCU is mapped as the top byte for byte accesses only,
364 		all word accesses are to the input port */
365 	if (ACCESSING_MSB && !ACCESSING_LSB)
366 		return macross_mcu_r(offset,0)<<8;
367 	else
368 		return ~input_port_1_word_r(0,0);
369 }
370 
WRITE16_HANDLER(macross2_sound_command_w)371 static WRITE16_HANDLER( macross2_sound_command_w )
372 {
373 	if (ACCESSING_LSB)
374 		soundlatch_w(0,data & 0xff);
375 }
376 
READ16_HANDLER(macross2_sound_result_r)377 static READ16_HANDLER( macross2_sound_result_r )
378 {
379 	return soundlatch2_r(0);
380 }
381 
WRITE_HANDLER(macross2_sound_bank_w)382 static WRITE_HANDLER( macross2_sound_bank_w )
383 {
384 	const UINT8 *rom = memory_region(REGION_CPU2) + 0x10000;
385 
386 	cpu_setbank(1,rom + (data & 0x07) * 0x4000);
387 }
388 
WRITE_HANDLER(macross2_oki6295_bankswitch_w)389 static WRITE_HANDLER( macross2_oki6295_bankswitch_w )
390 {
391 	/* The OKI6295 ROM space is divided in four banks, each one indepentently
392 	   controlled. The sample table at the beginning of the addressing space is
393 	   divided in four pages as well, banked together with the sample data. */
394 	#define TABLESIZE 0x100
395 	#define BANKSIZE 0x10000
396 	int chip = (offset & 4) >> 2;
397 	int banknum = offset & 3;
398 	unsigned char *rom = memory_region(REGION_SOUND1 + chip);
399 	int size = memory_region_length(REGION_SOUND1 + chip) - 0x40000;
400 	int bankaddr = (data * BANKSIZE) & (size-1);
401 
402 	/* copy the samples */
403 	memcpy(rom + banknum * BANKSIZE,rom + 0x40000 + bankaddr,BANKSIZE);
404 
405 	/* and also copy the samples address table */
406 	rom += banknum * TABLESIZE;
407 	memcpy(rom,rom + 0x40000 + bankaddr,TABLESIZE);
408 }
409 
WRITE16_HANDLER(bjtwin_oki6295_bankswitch_w)410 static WRITE16_HANDLER( bjtwin_oki6295_bankswitch_w )
411 {
412 	if (ACCESSING_LSB)
413 		macross2_oki6295_bankswitch_w(offset,data & 0xff);
414 }
415 
READ16_HANDLER(hachamf_protection_hack_r)416 static READ16_HANDLER( hachamf_protection_hack_r )
417 {
418 	/* adresses for the input ports */
419 	static int pap[] = { 0x0008, 0x0000, 0x0008, 0x0002, 0x0008, 0x0008 };
420 
421 	return pap[offset];
422 }
423 
424 /***************************************************************************/
425 
MEMORY_READ16_START(urashima_readmem)426 static MEMORY_READ16_START( urashima_readmem )
427 	{ 0x000000, 0x03ffff, MRA16_ROM },
428 	{ 0x080004, 0x080005, urashima_mcu_r },
429 	{ 0x09e000, 0x09e7ff, nmk_txvideoram_r },
430 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
431 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
432 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
433 #if 0
434 	{ 0x080000, 0x080001, input_port_0_word_r },
435 	{ 0x080002, 0x080003, input_port_1_word_r },
436 	{ 0x080008, 0x080009, input_port_2_word_r },
437 	{ 0x08000a, 0x08000b, input_port_3_word_r },
438 	{ 0x088000, 0x0887ff, MRA16_RAM },
439 	{ 0x09e000, 0x0a1fff, nmk_bgvideoram_r },
440 #endif
441 MEMORY_END
442 
443 static MEMORY_WRITE16_START( urashima_writemem )
444 	{ 0x000000, 0x03ffff, MWA16_ROM },
445 	{ 0x080014, 0x080015, macross_mcu_w },
446 	{ 0x09e000, 0x09e7ff, nmk_txvideoram_w, &nmk_txvideoram },
447 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
448 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
449 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram },	/* Work RAM again */
450 #if 0
451 	{ 0x080014, 0x080015, nmk_flipscreen_w },
452 	{ 0x080016, 0x080017, MWA16_NOP },	/* IRQ enable? */
453 	{ 0x080018, 0x080019, nmk_tilebank_w },
454 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
455 	{ 0x08c000, 0x08c007, nmk_scroll_w },
456 	{ 0x09e000, 0x0a1fff, nmk_bgvideoram_w, &nmk_bgvideoram },
457 #endif
458 MEMORY_END
459 
460 
461 static MEMORY_READ16_START( vandyke_readmem )
462 	{ 0x000000, 0x03ffff, MRA16_ROM },
463 	{ 0x080000, 0x080001, input_port_0_word_r },
464 	{ 0x080002, 0x080003, input_port_1_word_r },
465 	{ 0x080008, 0x080009, input_port_2_word_r },
466 	{ 0x08000a, 0x08000b, input_port_3_word_r },
467 	{ 0x08000e, 0x08000f, macross_mcu_r },
468 	{ 0x088000, 0x0887ff, MRA16_RAM },
469 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
470 	{ 0x09d000, 0x09d7ff, nmk_txvideoram_r },
471 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
472 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
473 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
474 MEMORY_END
475 
476 static MEMORY_WRITE16_START( vandyke_writemem )
477 	{ 0x000000, 0x03ffff, MWA16_ROM },
478 	{ 0x080016, 0x080017, MWA16_NOP },	/* IRQ enable? */
479 	{ 0x080018, 0x080019, nmk_tilebank_w },
480 	{ 0x08001e, 0x08001f, macross_mcu_w },
481 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
482 	{ 0x08c000, 0x08c007, vandyke_scroll_w },
483 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
484 //	{ 0x094000, 0x097fff, MWA16_RAM }, /* what is this */
485 	{ 0x09d000, 0x09d7ff, nmk_txvideoram_w, &nmk_txvideoram },
486 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },
487 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
488 	{ 0x0f9000, 0x0fffff, MWA16_RAM }, /* not tested in tests .. hardly used probably some registers not ram */
489 MEMORY_END
490 
491 static READ16_HANDLER(logr)
492 {
493 //logerror("Read input port 1 %05x\n",activecpu_get_pc());
494 return ~input_port_0_word_r(0,0);
495 }
496 
MEMORY_READ16_START(manybloc_readmem)497 static MEMORY_READ16_START( manybloc_readmem )
498 	{ 0x000000, 0x03ffff, MRA16_ROM },
499 	{ 0x080000, 0x080001, input_port_0_word_r },
500 	{ 0x080002, 0x080003, input_port_1_word_r },
501 	{ 0x080004, 0x080005, input_port_2_word_r },
502 	{ 0x08001e, 0x08001f, soundlatch2_word_r },
503 	{ 0x088000, 0x0883ff, MRA16_RAM },
504 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
505 	{ 0x09c000, 0x09cfff, MRA16_RAM }, /* Scroll? */
506 	{ 0x09d000, 0x09d7ff, nmk_txvideoram_r },
507 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
508 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
509 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
510 MEMORY_END
511 
512 static MEMORY_WRITE16_START( manybloc_writemem )
513 	{ 0x000000, 0x03ffff, MWA16_ROM },
514 	{ 0x080010, 0x080011, MWA16_NOP },			/* See notes at the top of the driver */
515 	{ 0x080012, 0x080013, MWA16_NOP },			/* See notes at the top of the driver */
516 	{ 0x080014, 0x080015, nmk_flipscreen_w },
517 	{ 0x08001c, 0x08001d, MWA16_NOP },			/* See notes at the top of the driver */
518 	{ 0x08001e, 0x08001f, soundlatch_word_w },
519 	{ 0x088000, 0x0883ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
520 	{ 0x08c000, 0x08c007, nmk_scroll_w },
521 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
522 	{ 0x09c000, 0x09cfff, MWA16_RAM }, /* Scroll? */
523 	{ 0x09d000, 0x09d7ff, nmk_txvideoram_w, &nmk_txvideoram },
524 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
525 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
526 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram },
527 MEMORY_END
528 
529 static MEMORY_READ_START( manybloc_sound_readmem )
530 	{ 0x0000, 0xbfff, MRA_ROM },
531 	{ 0xc000, 0xc7ff, MRA_RAM },
532 	{ 0xf000, 0xf000, soundlatch_r },
533 	{ 0xf400, 0xf400, OKIM6295_status_0_r },
534 	{ 0xf500, 0xf500, OKIM6295_status_1_r },
535 MEMORY_END
536 
537 static MEMORY_WRITE_START( manybloc_sound_writemem)
538 	{ 0x0000, 0xbfff, MWA_ROM },
539 	{ 0xc000, 0xc7ff, MWA_RAM },
540 	{ 0xf000, 0xf000, soundlatch2_w },
541 	{ 0xf400, 0xf400, OKIM6295_data_0_w },
542 	{ 0xf500, 0xf500, OKIM6295_data_1_w },
543 	{ 0xf600, 0xf600, MWA_NOP },
544 	{ 0xf700, 0xf700, MWA_NOP },
545 MEMORY_END
546 
547 static PORT_READ_START( manybloc_sound_readport )
548 	{ 0x00, 0x00, YM2203_status_port_0_r },
549 	{ 0x01, 0x01, YM2203_read_port_0_r },
550 PORT_END
551 
552 static PORT_WRITE_START( manybloc_sound_writeport )
553 	{ 0x00, 0x00, YM2203_control_port_0_w },
554 	{ 0x01, 0x01, YM2203_write_port_0_w },
555 PORT_END
556 
557 static MEMORY_READ16_START( tharrier_readmem )
558 	{ 0x000000, 0x03ffff, MRA16_ROM },
559 	{ 0x080000, 0x080001, logr },//input_port_0_word_r },
560 	{ 0x080002, 0x080003, tharrier_mcu_r }, //input_port_1_word_r },
561 //	{ 0x080004, 0x080005, input_port_2_word_r },
562 	{ 0x08000e, 0x08000f, soundlatch2_word_r },	/* from Z80 */
563 	{ 0x088000, 0x0883ff, MRA16_RAM },
564 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
565 	{ 0x09d000, 0x09d7ff, nmk_txvideoram_r },
566 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
567 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
568 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
569 MEMORY_END
570 
571 static MEMORY_WRITE16_START( tharrier_writemem )
572 	{ 0x000000, 0x03ffff, MWA16_ROM },
573 	{ 0x080010, 0x080011, tharrier_mcu_control_w },
574 	{ 0x080012, 0x080013, macross_mcu_w },
575 //	{ 0x080014, 0x080015, nmk_flipscreen_w },
576 //	{ 0x080018, 0x080019, nmk_tilebank_w },
577 	{ 0x08001e, 0x08001f, soundlatch_word_w },
578 	{ 0x088000, 0x0883ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
579 	{ 0x08c000, 0x08c007, nmk_scroll_w },
580 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
581 	{ 0x09c000, 0x09c7ff, MWA16_NOP }, /* Unused txvideoram area? */
582 	{ 0x09d000, 0x09d7ff, nmk_txvideoram_w, &nmk_txvideoram },
583 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
584 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
585 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram },	/* Work RAM again (fe000-fefff is shared with the sound CPU) */
586 MEMORY_END
587 
588 //Read input port 1 030c8/  BAD
589 //3478  GOOD
590 
591 static MEMORY_READ16_START( mustang_readmem )
592 	{ 0x000000, 0x03ffff, MRA16_ROM },
593 	{ 0x080000, 0x080001, input_port_0_word_r },
594 	{ 0x080002, 0x080003, input_port_1_word_r },
595 	{ 0x080004, 0x080005, input_port_2_word_r },
596 	{ 0x08000e, 0x08000f, macross_mcu_r },
597 //	{ 0x08000e, 0x08000f, soundlatch2_word_r },	/* from Z80 bootleg only? */
598 	{ 0x088000, 0x0887ff, MRA16_RAM },
599 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
600 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_r },
601 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
602 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
603 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
604 MEMORY_END
605 
606 static MEMORY_WRITE16_START( mustang_writemem )
607 	{ 0x000000, 0x03ffff, MWA16_ROM },
608 	{ 0x08000e, 0x08000f, macross_mcu_w },
609 	{ 0x080014, 0x080015, nmk_flipscreen_w },
610 	{ 0x080016, 0x080017, MWA16_NOP },	// frame number?
611 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
612 	{ 0x08c000, 0x08c007, mustang_scroll_w },
613 //{ 0x08c000, 0x08c001, MWA16_NOP },
614 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
615 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_w, &nmk_txvideoram },
616 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
617 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
618 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram },	/* Work RAM */
619 MEMORY_END
620 
621 static MEMORY_WRITE16_START( mustangb_writemem )
622 	{ 0x000000, 0x03ffff, MWA16_ROM },
623 	{ 0x080014, 0x080015, nmk_flipscreen_w },
624 	{ 0x080016, 0x080017, MWA16_NOP },	// frame number?
625 	{ 0x08001e, 0x08001f, seibu_main_mustb_w },
626 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
627 	{ 0x08c000, 0x08c007, mustang_scroll_w },
628 //{ 0x08c000, 0x08c001, MWA16_NOP },
629 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
630 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_w, &nmk_txvideoram },
631 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
632 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
633 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram },	/* Work RAM */
634 MEMORY_END
635 
636 static MEMORY_READ16_START( acrobatm_readmem )
637 	{ 0x00000, 0x3ffff, MRA16_ROM },
638 	{ 0x80000, 0x8ffff, MRA16_RAM },
639 	{ 0xc0000, 0xc0001, input_port_0_word_r },
640 	{ 0xc0002, 0xc0003, input_port_1_word_r },
641 	{ 0xc0008, 0xc0009, input_port_2_word_r },
642 	{ 0xc000a, 0xc000b, input_port_3_word_r },
643 	{ 0xc4000, 0xc45ff, MRA16_RAM },
644 	{ 0xcc000, 0xcffff, nmk_bgvideoram_r },
645 	{ 0xd4000, 0xd47ff, nmk_txvideoram_r },
646 MEMORY_END
647 
648 static MEMORY_WRITE16_START( acrobatm_writemem )
649 	{ 0x00000, 0x3ffff, MWA16_ROM },
650 	{ 0x88000, 0x88fff, MWA16_RAM, &spriteram16, &spriteram_size },
651 	{ 0x80000, 0x8ffff, MWA16_RAM },
652 	{ 0xc0014, 0xc0015, nmk_flipscreen_w },
653 	{ 0xc4000, 0xc45ff, paletteram16_RRRRGGGGBBBBxxxx_word_w, &paletteram16 },
654 	{ 0xc8000, 0xc8007, nmk_scroll_w },
655 	{ 0xcc000, 0xcffff, nmk_bgvideoram_w, &nmk_bgvideoram },
656 	{ 0xd4000, 0xd47ff, nmk_txvideoram_w, &nmk_txvideoram },
657 MEMORY_END
658 
659 static MEMORY_READ16_START( hachamf_readmem )
660 	{ 0x000000, 0x03ffff, MRA16_ROM },
661 	{ 0x080000, 0x080001, input_port_0_word_r },
662 	{ 0x080002, 0x080003, input_port_1_word_r },
663 	{ 0x080008, 0x080009, input_port_2_word_r },
664 	{ 0x088000, 0x0887ff, MRA16_RAM },
665 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
666 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_r },
667 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
668 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
669 	{ 0x0fe000, 0x0fe00b, hachamf_protection_hack_r },
670 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
671 MEMORY_END
672 
673 static MEMORY_WRITE16_START( hachamf_writemem )
674 	{ 0x000000, 0x03ffff, MWA16_ROM },
675 	{ 0x080014, 0x080015, nmk_flipscreen_w },
676 	{ 0x080018, 0x080019, nmk_tilebank_w },
677 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
678 	{ 0x08c000, 0x08c007, nmk_scroll_w },
679 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
680 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_w, &nmk_txvideoram },
681 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
682 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
683 	{ 0x0f9000, 0x0fffff, MWA16_RAM },	/* Work RAM again (fe000-fefff is shared with the sound CPU) */
684 MEMORY_END
685 
686 static MEMORY_READ16_START( bioship_readmem )
687 	{ 0x000000, 0x03ffff, MRA16_ROM },
688 	{ 0x080000, 0x080001, input_port_0_word_r },
689 	{ 0x080002, 0x080003, input_port_1_word_r },
690 	{ 0x080008, 0x080009, input_port_2_word_r },
691 	{ 0x08000a, 0x08000b, input_port_3_word_r },
692 	{ 0x088000, 0x0887ff, MRA16_RAM },
693 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
694 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_r },
695 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
696 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
697 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
698 MEMORY_END
699 
700 static MEMORY_WRITE16_START( bioship_writemem )
701 	{ 0x000000, 0x03ffff, MWA16_ROM },
702 //	{ 0x080014, 0x080015, nmk_flipscreen_w },
703 	{ 0x084000, 0x084001, bioship_bank_w },
704 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
705 	{ 0x08c000, 0x08c007, mustang_scroll_w },
706 	{ 0x08c010, 0x08c017, bioship_scroll_w },
707 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
708 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_w, &nmk_txvideoram },
709 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
710 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
711 	{ 0x0f9000, 0x0fffff, MWA16_RAM },	/* Work RAM again (fe000-fefff is shared with the sound CPU) */
712 MEMORY_END
713 
714 static MEMORY_READ16_START( tdragon_readmem )
715 	{ 0x000000, 0x03ffff, MRA16_ROM },
716 	{ 0x044022, 0x044023, MRA16_NOP },  /* No Idea */
717 	{ 0x0b0000, 0x0b7fff, MRA16_RAM },	/* Work RAM */
718 	{ 0x0b8000, 0x0b8fff, MRA16_RAM },	/* Sprite RAM */
719 	{ 0x0b9000, 0x0bffff, MRA16_RAM },	/* Work RAM */
720 	{ 0x0c8000, 0x0c87ff, MRA16_RAM },  /* Palette RAM */
721 	{ 0x0c0000, 0x0c0001, input_port_0_word_r },
722 	{ 0x0c0002, 0x0c0003, input_port_1_word_r },
723 	{ 0x0c0008, 0x0c0009, input_port_2_word_r },
724 	{ 0x0c000a, 0x0c000b, input_port_3_word_r },
725 	{ 0x0cc000, 0x0cffff, nmk_bgvideoram_r },
726 	{ 0x0d0000, 0x0d07ff, nmk_txvideoram_r },
727 MEMORY_END
728 
729 static MEMORY_WRITE16_START( tdragon_writemem )
730 	{ 0x000000, 0x03ffff, MWA16_ROM },
731 	{ 0x0b0000, 0x0b7fff, MWA16_RAM },	/* Work RAM */
732 	{ 0x0b8000, 0x0b8fff, MWA16_RAM, &spriteram16, &spriteram_size },	/* Sprite RAM */
733 	{ 0x0b9000, 0x0bffff, MWA16_RAM },	/* Work RAM */
734 	{ 0x0c0014, 0x0c0015, nmk_flipscreen_w }, /* Maybe */
735 	{ 0x0c0018, 0x0c0019, nmk_tilebank_w }, /* Tile Bank ? */
736 	{ 0x0c001e, 0x0c001f, MWA16_NOP },
737 	{ 0x0c4000, 0x0c4007, nmk_scroll_w },
738 	{ 0x0c8000, 0x0c87ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
739 	{ 0x0cc000, 0x0cffff, nmk_bgvideoram_w, &nmk_bgvideoram },
740 	{ 0x0d0000, 0x0d07ff, nmk_txvideoram_w, &nmk_txvideoram },
741 MEMORY_END
742 
743 static MEMORY_WRITE16_START( tdragonb_writemem )
744 	{ 0x000000, 0x03ffff, MWA16_ROM },
745 	{ 0x0b0000, 0x0b7fff, MWA16_RAM },	/* Work RAM */
746 	{ 0x0b8000, 0x0b8fff, MWA16_RAM, &spriteram16, &spriteram_size },	/* Sprite RAM */
747 	{ 0x0b9000, 0x0bffff, MWA16_RAM },	/* Work RAM */
748 	{ 0x0c0014, 0x0c0015, nmk_flipscreen_w }, /* Maybe */
749 	{ 0x0c0018, 0x0c0019, nmk_tilebank_w }, /* Tile Bank ? */
750 	{ 0x0c001e, 0x0c001f, seibu_main_mustb_w },
751 	{ 0x0c4000, 0x0c4007, nmk_scroll_w },
752 	{ 0x0c8000, 0x0c87ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
753 	{ 0x0cc000, 0x0cffff, nmk_bgvideoram_w, &nmk_bgvideoram },
754 	{ 0x0d0000, 0x0d07ff, nmk_txvideoram_w, &nmk_txvideoram },
755 MEMORY_END
756 
757 static MEMORY_READ16_START( ssmissin_readmem )
758 	{ 0x000000, 0x03ffff, MRA16_ROM },
759 	{ 0x0b0000, 0x0b7fff, MRA16_RAM },	/* Work RAM */
760 	{ 0x0b8000, 0x0b8fff, MRA16_RAM },	/* Sprite RAM */
761 	{ 0x0b9000, 0x0bffff, MRA16_RAM },	/* Work RAM */
762 	{ 0x0c8000, 0x0c87ff, MRA16_RAM },  /* Palette RAM */
763 	{ 0x0c0000, 0x0c0001, input_port_0_word_r },
764 	{ 0x0c0004, 0x0c0005, input_port_1_word_r },
765 	{ 0x0c0006, 0x0c0007, input_port_2_word_r },
766 //	{ 0x0c000e, 0x0c000f, ?? },
767 	{ 0x0cc000, 0x0cffff, nmk_bgvideoram_r },
768 	{ 0x0d0000, 0x0d07ff, nmk_txvideoram_r },
769 MEMORY_END
770 
771 static MEMORY_WRITE16_START( ssmissin_writemem )
772 	{ 0x000000, 0x03ffff, MWA16_ROM },
773 	{ 0x0b0000, 0x0b7fff, MWA16_RAM },	/* Work RAM */
774 	{ 0x0b8000, 0x0b8fff, MWA16_RAM, &spriteram16, &spriteram_size },	/* Sprite RAM */
775 	{ 0x0b9000, 0x0bffff, MWA16_RAM },	/* Work RAM */
776 	{ 0x0c0014, 0x0c0015, nmk_flipscreen_w }, /* Maybe */
777 	{ 0x0c0018, 0x0c0019, nmk_tilebank_w }, /* Tile Bank ? */
778 	{ 0x0c001e, 0x0c001f, ssmissin_sound_w },
779 	{ 0x0c4000, 0x0c4007, nmk_scroll_w },
780 	{ 0x0c8000, 0x0c87ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
781 	{ 0x0cc000, 0x0cffff, nmk_bgvideoram_w, &nmk_bgvideoram },
782 	{ 0x0d0000, 0x0d07ff, nmk_txvideoram_w, &nmk_txvideoram },
783 MEMORY_END
784 
785 
786 
787 static MEMORY_READ_START( ssmissin_sound_readmem )
788 	{ 0x0000, 0x7fff, MRA_ROM },
789 	{ 0x8000, 0x87ff, MRA_RAM },
790 	{ 0x9800, 0x9800, OKIM6295_status_0_r },
791 	{ 0xa000, 0xa000, soundlatch_r },
792 MEMORY_END
793 
794 static MEMORY_WRITE_START( ssmissin_sound_writemem )
795 	{ 0x0000, 0x7fff, MWA_ROM },
796 	{ 0x8000, 0x87ff, MWA_RAM },
797 	{ 0x9000, 0x9000, ssmissin_soundbank_w },
798 	{ 0x9800, 0x9800, OKIM6295_data_0_w },
799 MEMORY_END
800 
801 
802 static MEMORY_READ16_START( strahl_readmem )
803 	{ 0x00000, 0x3ffff, MRA16_ROM },
804 	{ 0x80000, 0x80001, input_port_0_word_r },
805 	{ 0x80002, 0x80003, input_port_1_word_r },
806 	{ 0x80008, 0x80009, input_port_2_word_r },
807 	{ 0x8000a, 0x8000b, input_port_3_word_r },
808 	{ 0x8c000, 0x8c7ff, MRA16_RAM },
809 	{ 0x90000, 0x93fff, nmk_bgvideoram_r },
810 	{ 0x94000, 0x97fff, nmk_fgvideoram_r },
811 	{ 0x9c000, 0x9c7ff, nmk_txvideoram_r },
812 	{ 0xf0000, 0xf7fff, MRA16_RAM },
813 	{ 0xf8000, 0xfefff, MRA16_RAM },
814 	{ 0xff000, 0xfffff, MRA16_RAM },
815 MEMORY_END
816 
817 static MEMORY_WRITE16_START( strahl_writemem )
818 	{ 0x00000, 0x3ffff, MWA16_ROM },
819 	{ 0x80014, 0x80015, nmk_flipscreen_w },
820 	{ 0x8001e, 0x8001f, MWA16_NOP }, /* -> Sound cpu */
821 	{ 0x84000, 0x84007, nmk_scroll_w },
822 	{ 0x88000, 0x88007, nmk_scroll_2_w },
823 	{ 0x8c000, 0x8c7ff, paletteram16_RRRRGGGGBBBBxxxx_word_w, &paletteram16 },
824 	{ 0x90000, 0x93fff, nmk_bgvideoram_w, &nmk_bgvideoram },
825 	{ 0x94000, 0x97fff, nmk_fgvideoram_w, &nmk_fgvideoram },
826 	{ 0x9c000, 0x9c7ff, nmk_txvideoram_w, &nmk_txvideoram },
827 	{ 0xf0000, 0xf7fff, MWA16_RAM },	/* Work RAM */
828 	{ 0xf8000, 0xfefff, MWA16_RAM, &ram },	/* Work RAM again */
829 	{ 0xff000, 0xfffff, MWA16_RAM, &spriteram16, &spriteram_size },
830 MEMORY_END
831 
832 static MEMORY_READ16_START( macross_readmem )
833 	{ 0x000000, 0x07ffff, MRA16_ROM },
834 	{ 0x080000, 0x080001, input_port_0_word_r },
835 	{ 0x080002, 0x080003, input_port_1_word_r },
836 	{ 0x080008, 0x080009, input_port_2_word_r },
837 	{ 0x08000a, 0x08000b, input_port_3_word_r },
838 	{ 0x08000e, 0x08000f, macross_mcu_r },
839 	{ 0x088000, 0x0887ff, MRA16_RAM },
840 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
841 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_r },
842 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
843 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
844 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
845 MEMORY_END
846 
847 static MEMORY_WRITE16_START( macross_writemem )
848 	{ 0x000000, 0x07ffff, MWA16_ROM },
849 	{ 0x080014, 0x080015, nmk_flipscreen_w },
850 	{ 0x080016, 0x080017, MWA16_NOP },	/* IRQ enable? */
851 	{ 0x080018, 0x080019, nmk_tilebank_w },
852 	{ 0x08001e, 0x08001f, macross_mcu_w },
853 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
854 	{ 0x08c000, 0x08c007, nmk_scroll_w },
855 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
856 	{ 0x09c000, 0x09c7ff, nmk_txvideoram_w, &nmk_txvideoram },
857 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
858 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
859 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram },	/* Work RAM again */
860 MEMORY_END
861 
862 static MEMORY_READ16_START( gunnail_readmem )
863 	{ 0x000000, 0x07ffff, MRA16_ROM },
864 	{ 0x080000, 0x080001, input_port_0_word_r },
865 	{ 0x080002, 0x080003, input_port_1_word_r },
866 	{ 0x080008, 0x080009, input_port_2_word_r },
867 	{ 0x08000a, 0x08000b, input_port_3_word_r },
868 	{ 0x08000e, 0x08000f, macross_mcu_r },
869 	{ 0x088000, 0x0887ff, MRA16_RAM }, /* palette ram */
870 	{ 0x090000, 0x093fff, nmk_bgvideoram_r },
871 	{ 0x09c000, 0x09cfff, nmk_txvideoram_r },
872 	{ 0x09d000, 0x09dfff, nmk_txvideoram_r },	/* mirror */
873 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
874 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
875 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
876 MEMORY_END
877 
878 static MEMORY_WRITE16_START( gunnail_writemem )
879 	{ 0x000000, 0x07ffff, MWA16_ROM },
880 	{ 0x08001e, 0x08001f, macross_mcu_w },
881 	{ 0x080014, 0x080015, nmk_flipscreen_w },
882 	{ 0x080016, 0x080017, MWA16_NOP },	/* IRQ enable? */
883 	{ 0x080018, 0x080019, nmk_tilebank_w },
884 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
885 	{ 0x08c000, 0x08c1ff, gunnail_scrollx_w, &gunnail_scrollram },
886 	{ 0x08c200, 0x08c201, gunnail_scrolly_w },
887 //	{ 0x08c202, 0x08c7ff, MWA16_RAM },	// unknown
888 	{ 0x090000, 0x093fff, nmk_bgvideoram_w, &nmk_bgvideoram },
889 	{ 0x09c000, 0x09cfff, nmk_txvideoram_w, &nmk_txvideoram },
890 	{ 0x09d000, 0x09dfff, nmk_txvideoram_w },	/* mirror */
891 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
892 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
893 	{ 0x0f9000, 0x0fffff, MWA16_RAM, &ram }, /* Work RAM again */
894 MEMORY_END
895 
896 static MEMORY_READ16_START( macross2_readmem )
897 	{ 0x000000, 0x07ffff, MRA16_ROM },
898 	{ 0x100000, 0x100001, input_port_0_word_r },
899 	{ 0x100002, 0x100003, input_port_1_word_r },
900 	{ 0x100008, 0x100009, input_port_2_word_r },
901 	{ 0x10000a, 0x10000b, input_port_3_word_r },
902 	{ 0x10000e, 0x10000f, macross2_sound_result_r },	/* from Z80 */
903 	{ 0x120000, 0x1207ff, MRA16_RAM },
904 	{ 0x140000, 0x14ffff, nmk_bgvideoram_r },
905 	{ 0x170000, 0x170fff, nmk_txvideoram_r },
906 	{ 0x171000, 0x171fff, nmk_txvideoram_r },	/* mirror */
907 	{ 0x1f0000, 0x1f7fff, MRA16_RAM },
908 	{ 0x1f8000, 0x1f8fff, MRA16_RAM },
909 	{ 0x1f9000, 0x1fffff, MRA16_RAM },
910 MEMORY_END
911 
912 static MEMORY_WRITE16_START( macross2_writemem )
913 	{ 0x000000, 0x07ffff, MWA16_ROM },
914 	{ 0x100014, 0x100015, nmk_flipscreen_w },
915 	{ 0x100016, 0x100017, MWA16_NOP },	/* IRQ eanble? */
916 	{ 0x100018, 0x100019, nmk_tilebank_w },
917 	{ 0x10001e, 0x10001f, macross2_sound_command_w },	/* to Z80 */
918 	{ 0x120000, 0x1207ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
919 	{ 0x130000, 0x130007, nmk_scroll_w },
920 	{ 0x130008, 0x1307ff, MWA16_NOP },	/* 0 only? */
921 	{ 0x140000, 0x14ffff, nmk_bgvideoram_w, &nmk_bgvideoram },
922 	{ 0x170000, 0x170fff, nmk_txvideoram_w, &nmk_txvideoram },
923 	{ 0x171000, 0x171fff, nmk_txvideoram_w },	/* mirror */
924 	{ 0x1f0000, 0x1f7fff, MWA16_RAM },	/* Work RAM */
925 	{ 0x1f8000, 0x1f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
926 	{ 0x1f9000, 0x1fffff, MWA16_RAM, &ram },	/* Work RAM again */
927 MEMORY_END
928 
929 static MEMORY_WRITE16_START( raphero_writemem )
930 	{ 0x000000, 0x07ffff, MWA16_ROM },
931 	{ 0x100014, 0x100015, nmk_flipscreen_w },
932 	{ 0x100016, 0x100017, MWA16_NOP },	/* IRQ eanble? */
933 	{ 0x100018, 0x100019, nmk_tilebank_w },
934 	{ 0x10001e, 0x10001f, macross2_sound_command_w },	/* to Z80 */
935 	{ 0x120000, 0x1207ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
936 	{ 0x130000, 0x1307ff, nmk_scroll_3_w, &gunnail_scrollram },
937 //	{ 0x130010, 0x1307ff, MWA16_RAM },	/* 0 only? */
938 	{ 0x140000, 0x14ffff, nmk_bgvideoram_w, &nmk_bgvideoram },
939 	{ 0x170000, 0x170fff, nmk_txvideoram_w, &nmk_txvideoram },
940 	{ 0x171000, 0x171fff, nmk_txvideoram_w },	/* mirror */
941 	{ 0x1f0000, 0x1f7fff, MWA16_RAM },	/* Work RAM */
942 	{ 0x1f8000, 0x1f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
943 	{ 0x1f9000, 0x1fffff, MWA16_RAM, &ram },	/* Work RAM again */
944 MEMORY_END
945 
946 static MEMORY_READ_START( macross2_sound_readmem )
947 	{ 0x0000, 0x7fff, MRA_ROM },
948 	{ 0x8000, 0xbfff, MRA_BANK1 },	/* banked ROM */
949 	{ 0xa000, 0xa000, MRA_NOP },	/* IRQ ack? watchdog? */
950 	{ 0xc000, 0xdfff, MRA_RAM },
951 	{ 0xf000, 0xf000, soundlatch_r },	/* from 68000 */
952 MEMORY_END
953 
954 static MEMORY_WRITE_START( macross2_sound_writemem )
955 	{ 0x0000, 0xbfff, MWA_ROM },
956 	{ 0xc000, 0xdfff, MWA_RAM },
957 	{ 0xe001, 0xe001, macross2_sound_bank_w },
958 	{ 0xf000, 0xf000, soundlatch2_w },	/* to 68000 */
959 MEMORY_END
960 
961 static PORT_READ_START( macross2_sound_readport )
962 	{ 0x00, 0x00, YM2203_status_port_0_r },
963 	{ 0x01, 0x01, YM2203_read_port_0_r },
964 	{ 0x80, 0x80, OKIM6295_status_0_r },
965 	{ 0x88, 0x88, OKIM6295_status_1_r },
966 PORT_END
967 
968 static PORT_WRITE_START( macross2_sound_writeport )
969 	{ 0x00, 0x00, YM2203_control_port_0_w },
970 	{ 0x01, 0x01, YM2203_write_port_0_w },
971 	{ 0x80, 0x80, OKIM6295_data_0_w },
972 	{ 0x88, 0x88, OKIM6295_data_1_w },
973 	{ 0x90, 0x97, macross2_oki6295_bankswitch_w },
974 PORT_END
975 
976 static MEMORY_READ16_START( bjtwin_readmem )
977 	{ 0x000000, 0x07ffff, MRA16_ROM },
978 	{ 0x080000, 0x080001, input_port_0_word_r },
979 	{ 0x080002, 0x080003, input_port_1_word_r },
980 	{ 0x080008, 0x080009, input_port_2_word_r },
981 	{ 0x08000a, 0x08000b, input_port_3_word_r },
982 	{ 0x084000, 0x084001, OKIM6295_status_0_lsb_r },
983 	{ 0x084010, 0x084011, OKIM6295_status_1_lsb_r },
984 	{ 0x088000, 0x0887ff, MRA16_RAM },
985 	{ 0x09c000, 0x09cfff, nmk_bgvideoram_r },
986 	{ 0x09d000, 0x09dfff, nmk_bgvideoram_r },	/* mirror */
987 	{ 0x0f0000, 0x0f7fff, MRA16_RAM },
988 	{ 0x0f8000, 0x0f8fff, MRA16_RAM },
989 	{ 0x0f9000, 0x0fffff, MRA16_RAM },
990 MEMORY_END
991 
992 static MEMORY_WRITE16_START( bjtwin_writemem )
993 	{ 0x000000, 0x07ffff, MWA16_ROM },
994 	{ 0x080014, 0x080015, nmk_flipscreen_w },
995 	{ 0x084000, 0x084001, OKIM6295_data_0_lsb_w },
996 	{ 0x084010, 0x084011, OKIM6295_data_1_lsb_w },
997 	{ 0x084020, 0x08402f, bjtwin_oki6295_bankswitch_w },
998 	{ 0x088000, 0x0887ff, paletteram16_RRRRGGGGBBBBRGBx_word_w, &paletteram16 },
999 	{ 0x094000, 0x094001, nmk_tilebank_w },
1000 	{ 0x094002, 0x094003, MWA16_NOP },	/* IRQ enable? */
1001 	{ 0x09c000, 0x09cfff, nmk_bgvideoram_w, &nmk_bgvideoram },
1002 	{ 0x09d000, 0x09dfff, nmk_bgvideoram_w },	/* mirror */
1003 	{ 0x0f0000, 0x0f7fff, MWA16_RAM },	/* Work RAM */
1004 	{ 0x0f8000, 0x0f8fff, MWA16_RAM, &spriteram16, &spriteram_size },
1005 	{ 0x0f9000, 0x0fffff, MWA16_RAM },	/* Work RAM again */
1006 MEMORY_END
1007 
1008 
1009 INPUT_PORTS_START( vandyke )
1010 	PORT_START		/* IN0 */
1011 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1012 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1013 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1014 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1015 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1016 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1017 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1018 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1019 
1020 	PORT_START      /* IN1 */
1021 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1022 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1023 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1024 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1025 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1026 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1027 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1028 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1029 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1030 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1031 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1032 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1033 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1034 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1035 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1036 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1037 
1038 	PORT_START	/* DSW 1 */
1039 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
1040 	PORT_DIPSETTING(    0x00,  "2" )
1041 	PORT_DIPSETTING(    0x01,  "3" )
1042 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1043 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1044 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1045 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1046 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1047 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1048 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Service_Mode ) )
1049 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1050 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1051 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1052 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1053 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1054 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1055 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1056 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1057 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1058 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1059 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1060 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1061 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1062 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1063 
1064 	PORT_START	/* DSW 2 */
1065 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1066 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1067 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1068 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1069 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1070 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1071 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
1072 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
1073 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_1C ) )
1074 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
1075 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
1076 	PORT_DIPSETTING(    0x1c, DEF_STR( 1C_1C ) )
1077 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_2C ) )
1078 	PORT_DIPSETTING(    0x14, DEF_STR( 1C_3C ) )
1079 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
1080 	PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
1081 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
1082 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_1C ) )
1083 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_1C ) )
1084 	PORT_DIPSETTING(    0xc0, DEF_STR( 2C_1C ) )
1085 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_1C ) )
1086 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_2C ) )
1087 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_3C ) )
1088 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
1089 INPUT_PORTS_END
1090 
1091 INPUT_PORTS_START( blkheart )
1092 	PORT_START		/* IN0 */
1093 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1094 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1095 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1096 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1097 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1098 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1099 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1100 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1101 
1102 	PORT_START      /* IN1 */
1103 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1104 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1105 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1106 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1107 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1108 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1109 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1110 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1111 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1112 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1113 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1114 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1115 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1116 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1117 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1118 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1119 
1120 	PORT_START	/* DSW 1 */
1121 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1122 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1123 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1124 	PORT_SERVICE( 0x02, IP_ACTIVE_LOW )
1125 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
1126 	PORT_DIPSETTING(    0x04, "Normal" )
1127 	PORT_DIPSETTING(    0x00, "Hard" )
1128 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1129 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1130 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1131 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1132 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1133 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1134 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1135 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1136 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1137 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
1138 	PORT_DIPSETTING(    0x40,  "2" )
1139 	PORT_DIPSETTING(    0xc0,  "3" )
1140 	PORT_DIPSETTING(    0x80,  "4" )
1141 	PORT_DIPSETTING(    0x00,  "5" )
1142 
1143 	PORT_START	/* DSW 2 */
1144 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1145 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1146 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1147 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1148 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1149 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1150 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
1151 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_1C ) )
1152 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
1153 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
1154 	PORT_DIPSETTING(    0x1c, DEF_STR( 1C_1C ) )
1155 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_2C ) )
1156 	PORT_DIPSETTING(    0x14, DEF_STR( 1C_3C ) )
1157 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
1158 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1159 	PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
1160 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_1C ) )
1161 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_1C ) )
1162 	PORT_DIPSETTING(    0xc0, DEF_STR( 2C_1C ) )
1163 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_1C ) )
1164 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_2C ) )
1165 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_3C ) )
1166 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
1167 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1168 INPUT_PORTS_END
1169 
1170 INPUT_PORTS_START( manybloc )
1171 	PORT_START	/* IN0 - 0x080000 */
1172 	PORT_BIT( 0x7fff, IP_ACTIVE_HIGH, IPT_UNUSED )
1173 	PORT_BIT( 0x8000, IP_ACTIVE_LOW,  IPT_UNKNOWN )		// VBLANK ? Check code at 0x005640
1174 
1175 	PORT_START	/* IN1 - 0x080002 */
1176 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_START1 )
1177 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )	// select fruits
1178 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )	// help
1179 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
1180 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
1181 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
1182 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
1183 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_COIN1 )
1184 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START2 )
1185 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )	// select fruits
1186 	PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )	// help
1187 	PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
1188 	PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
1189 	PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
1190 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
1191 	PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_COIN2 )
1192 
1193 	PORT_START	/* DSW - 0x080004 -> 0x0f0036 */
1194 	PORT_DIPNAME( 0x0001, 0x0000, "Slot System" )
1195 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1196 	PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
1197 	PORT_DIPNAME( 0x0002, 0x0000, "Explanation" )
1198 	PORT_DIPSETTING(      0x0000, "English" )
1199 	PORT_DIPSETTING(      0x0002, "Japanese" )
1200 	PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) )
1201 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1202 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1203 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Cabinet ) )		// "Play Type"
1204 	PORT_DIPSETTING(      0x0008, DEF_STR( Upright ) )		//   "Uplight" !
1205 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )		//   "Table"
1206 	PORT_SERVICE( 0x0010, IP_ACTIVE_HIGH )				// "Test Mode"
1207 	PORT_DIPNAME( 0x0060, 0x0000, DEF_STR( Difficulty ) )
1208 	PORT_DIPSETTING(      0x0060, "Easy" )				//   "Level 1
1209 	PORT_DIPSETTING(      0x0000, "Normal" )				//   "Level 2
1210 	PORT_DIPSETTING(      0x0020, "Hard" )				//   "Level 3
1211 	PORT_DIPSETTING(      0x0040, "Hardest" )				//   "Level 4
1212 	PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Flip_Screen ) )	// "Display"
1213 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )			//   "Normal"
1214 	PORT_DIPSETTING(      0x0080, DEF_STR( On ) )			//   "Inverse"
1215 	PORT_DIPNAME( 0x0700, 0x0000, DEF_STR( Coin_A ) )
1216 	PORT_DIPSETTING(      0x0700, DEF_STR( 5C_1C ) )
1217 	PORT_DIPSETTING(      0x0600, DEF_STR( 4C_1C ) )
1218 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
1219 	PORT_DIPSETTING(      0x0400, DEF_STR( 2C_1C ) )
1220 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_1C ) )
1221 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_2C ) )
1222 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_3C ) )
1223 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_4C ) )
1224 	PORT_DIPNAME( 0x3800, 0x0000, DEF_STR( Coin_B ) )
1225 	PORT_DIPSETTING(      0x3800, DEF_STR( 5C_1C ) )
1226 	PORT_DIPSETTING(      0x3000, DEF_STR( 4C_1C ) )
1227 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
1228 	PORT_DIPSETTING(      0x2000, DEF_STR( 2C_1C ) )
1229 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_1C ) )
1230 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_2C ) )
1231 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_3C ) )
1232 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_4C ) )
1233 	PORT_DIPNAME( 0xc000, 0x0000, "Plate Probability" )
1234 	PORT_DIPSETTING(      0xc000, "Bad" )
1235 	PORT_DIPSETTING(      0x0000, "Normal" )
1236 	PORT_DIPSETTING(      0x4000, "Better" )
1237 	PORT_DIPSETTING(      0x8000, "Best" )
1238 INPUT_PORTS_END
1239 
1240 INPUT_PORTS_START( tharrier )
1241 	PORT_START		/* IN0 */
1242 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1243 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1244 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1245 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1246 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1247 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
1248 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
1249 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1250 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1251 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1252 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1253 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1254 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1255 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1256 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1257 	PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Mcu status? */
1258 
1259 	PORT_START      /* IN1 */
1260 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1261 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1262 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1263 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1264 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN1 )
1265 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 )
1266 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1267 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
1268 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1269 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1270 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1271 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1272 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1273 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1274 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1275 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1276 
1277 	PORT_START	/* DSW */
1278 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
1279 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1280 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1281 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1282 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1283 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1284 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1285 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1286 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1287 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1288 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1289 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1290 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1291 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1292 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1293 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
1294 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1295 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1296 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1297 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1298 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1299 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
1300 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1301 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1302 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
1303 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
1304 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1305 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1306 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
1307 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1308 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
1309 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
1310 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1311 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
1312 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
1313 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1314 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
1315 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
1316 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1317 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
1318 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
1319 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1320 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
1321 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
1322 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1323 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
1324 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
1325 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1326 INPUT_PORTS_END
1327 
1328 INPUT_PORTS_START( mustang )
1329 	PORT_START		/* IN0 */
1330 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1331 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1332 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1333 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1334 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1335 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	// TEST in service mode
1336 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1337 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1338 
1339 	PORT_START      /* IN1 */
1340 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1341 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1342 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1343 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1344 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1345 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1346 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1347 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1348 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1349 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1350 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1351 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1352 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1353 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1354 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1355 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1356 
1357 	PORT_START	/* DSW */
1358 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
1359 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1360 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1361 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
1362 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1363 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
1364 	PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) )
1365 	PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
1366 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
1367 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_1C ) )
1368 	PORT_DIPSETTING(      0x001c, DEF_STR( 1C_1C ) )
1369 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_2C ) )
1370 	PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
1371 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
1372 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1373 	PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) )
1374 	PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
1375 	PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
1376 	PORT_DIPSETTING(      0x00c0, DEF_STR( 2C_1C ) )
1377 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_1C ) )
1378 	PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
1379 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
1380 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
1381 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1382 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
1383 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
1384 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1385 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1386 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
1387 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1388 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
1389 	PORT_DIPSETTING(      0x0400, "Easy" )
1390 	PORT_DIPSETTING(      0x0c00, "Normal" )
1391 	PORT_DIPSETTING(      0x0800, "Hard" )
1392 	PORT_DIPSETTING(      0x0000, "Hardest" )
1393 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
1394 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
1395 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1396 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
1397 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
1398 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1399 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
1400 	PORT_DIPSETTING(      0x4000, "2" )
1401 	PORT_DIPSETTING(      0xc000, "3" )
1402 	PORT_DIPSETTING(      0x8000, "4" )
1403 	PORT_DIPSETTING(      0x0000, "5" )
1404 INPUT_PORTS_END
1405 
1406 INPUT_PORTS_START( hachamf )
1407 	PORT_START		/* IN0 */
1408 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1409 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1410 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1411 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1412 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1413 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1414 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1415 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan:  test mode in some games?
1416 
1417 	PORT_START      /* IN1 */
1418 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1419 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1420 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1421 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1422 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1423 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1424 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1425 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1426 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1427 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1428 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1429 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1430 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1431 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1432 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1433 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1434 
1435 	PORT_START  /* DSW A */
1436 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
1437 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_1C ) )
1438 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_1C ) )
1439 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
1440 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
1441 	PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
1442 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
1443 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
1444 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1445 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
1446 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_1C ) )
1447 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) )
1448 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
1449 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
1450 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
1451 	PORT_DIPSETTING(    0x28, DEF_STR( 1C_3C ) )
1452 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
1453 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1454 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
1455 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1456 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
1457 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
1458 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1459 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1460 
1461 	PORT_START  /* DSW B */
1462 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1463 	PORT_DIPSETTING(    0x00, "1" )
1464 	PORT_DIPSETTING(    0x02, "2" )
1465 	PORT_DIPSETTING(    0x03, "3" )
1466 	PORT_DIPSETTING(    0x01, "4" )
1467 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
1468 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1469 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1470 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
1471 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1472 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1473 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
1474 	PORT_DIPSETTING(    0x20, "Easy" )
1475 	PORT_DIPSETTING(    0x30, "Normal" )
1476 	PORT_DIPSETTING(    0x10, "Hard" )
1477 	PORT_DIPSETTING(    0x00, "Hardest" )
1478 	PORT_DIPNAME( 0x40, 0x00, "Language" )
1479 	PORT_DIPSETTING(    0x00, "English" )
1480 	PORT_DIPSETTING(    0x40, "Japanese" )
1481 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
1482 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1483 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1484 INPUT_PORTS_END
1485 
1486 INPUT_PORTS_START( strahl )
1487 	PORT_START		/* IN0 */
1488 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1489 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1490 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1491 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1492 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1493 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1494 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1495 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan:  test mode in some games?
1496 
1497 	PORT_START      /* IN1 */
1498 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1499 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1500 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1501 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1502 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1503 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1504 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1505 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1506 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1507 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1508 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1509 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1510 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1511 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1512 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1513 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1514 
1515 	PORT_START  /* DSW A */
1516 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
1517 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
1518 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_1C ) )
1519 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_1C ) )
1520 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
1521 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
1522 	PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
1523 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
1524 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
1525 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
1526 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
1527 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_1C ) )
1528 	PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) )
1529 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
1530 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
1531 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
1532 	PORT_DIPSETTING(    0x28, DEF_STR( 1C_3C ) )
1533 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
1534 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) )
1535 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1536 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1537 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
1538 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1539 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1540 
1541 	PORT_START  /* DSW B */
1542 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
1543 	PORT_DIPSETTING(    0x02, "2" )
1544 	PORT_DIPSETTING(    0x03, "3" )
1545 	PORT_DIPSETTING(    0x01, "4" )
1546 	PORT_DIPSETTING(    0x00, "5" )
1547 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
1548 	PORT_DIPSETTING(    0x08, "Easy" )
1549 	PORT_DIPSETTING(    0x0c, "Normal" )
1550 	PORT_DIPSETTING(    0x04, "Hard" )
1551 	PORT_DIPSETTING(    0x00, "Hardest" )
1552 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
1553 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1554 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1555 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) )
1556 	PORT_DIPSETTING(    0x40, "100k and every 200k" )
1557 	PORT_DIPSETTING(    0x60, "200k and every 200k" )
1558 	PORT_DIPSETTING(    0x20, "300k and every 300k" )
1559 	PORT_DIPSETTING(    0x00, "None" )
1560 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
1561 INPUT_PORTS_END
1562 
1563 INPUT_PORTS_START( acrobatm )
1564 	PORT_START		/* IN0 */
1565 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1566 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1567 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1568 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1569 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1570 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1571 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1572 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1573 
1574 	PORT_START      /* IN1 */
1575 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1576 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1577 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1578 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1579 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1580 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1581 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1582 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1583 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1584 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1585 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1586 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1587 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1588 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1589 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1590 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1591 
1592 	PORT_START /* DSW A */
1593 	PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) )
1594 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1595 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1596 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
1597 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1598 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1599 	PORT_DIPNAME( 0x001C, 0x001C, DEF_STR( Coin_B ) )
1600 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1601 	PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
1602 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
1603 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_1C ) )
1604 	PORT_DIPSETTING(      0x001C, DEF_STR( 1C_1C ) )
1605 	PORT_DIPSETTING(      0x000C, DEF_STR( 1C_2C ) )
1606 	PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
1607 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
1608 	PORT_DIPNAME( 0x00E0, 0x00E0, DEF_STR( Coin_A ) )
1609 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1610 	PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
1611 	PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
1612 	PORT_DIPSETTING(      0x00C0, DEF_STR( 2C_1C ) )
1613 	PORT_DIPSETTING(      0x00E0, DEF_STR( 1C_1C ) )
1614 	PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
1615 	PORT_DIPSETTING(      0x00A0, DEF_STR( 1C_3C ) )
1616 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
1617 
1618 	PORT_START /* DSW B */
1619 	PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
1620 	PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) )
1621 	PORT_DIPSETTING(    0x02, "50k and 100k" )
1622 	PORT_DIPSETTING(    0x06, "100k and 100k" )
1623 	PORT_DIPSETTING(    0x04, "100k and 200k" )
1624 	PORT_DIPSETTING(    0x00, "None" )
1625 	PORT_DIPNAME( 0x08, 0x00, "Language" )
1626 	PORT_DIPSETTING(    0x00, "English" )
1627 	PORT_DIPSETTING(    0x08, "Japanese" )
1628 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
1629 	PORT_DIPSETTING(    0x00, "Hardest" )
1630 	PORT_DIPSETTING(    0x10, "Easy" )
1631 	PORT_DIPSETTING(    0x20, "Hard" )
1632 	PORT_DIPSETTING(    0x30, "Normal" )
1633 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
1634 	PORT_DIPSETTING(    0x40, "2" )
1635 	PORT_DIPSETTING(    0xc0, "3" )
1636 	PORT_DIPSETTING(    0x80, "4" )
1637 	PORT_DIPSETTING(    0x00, "5" )
1638 INPUT_PORTS_END
1639 
1640 INPUT_PORTS_START( bioship )
1641 	PORT_START		/* IN0 */
1642 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1643 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1644 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1645 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1646 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1647 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1648 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1649 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan:  test mode in some games?
1650 
1651 	PORT_START      /* IN1 */
1652 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1653 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1654 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1655 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1656 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1657 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1658 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1659 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1660 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1661 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1662 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1663 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1664 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1665 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1666 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1667 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1668 
1669 	PORT_START /* DSW A */
1670 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
1671 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1672 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1673 	PORT_DIPNAME( 0x0006, 0x0006, DEF_STR( Difficulty ) )
1674 	PORT_DIPSETTING(      0x0000, "Easy" )
1675 	PORT_DIPSETTING(      0x0006, "Normal" )
1676 	PORT_DIPSETTING(      0x0002, "Hard" )
1677 	PORT_DIPSETTING(      0x0004, "Hardest" )
1678 	PORT_SERVICE( 0x0008, IP_ACTIVE_LOW )
1679 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1680 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1681 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1682 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )
1683 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1684 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
1685 	PORT_DIPNAME( 0x00C0, 0x00C0, DEF_STR( Lives ) )
1686 	PORT_DIPSETTING(      0x0000, "2" )
1687 	PORT_DIPSETTING(      0x00C0, "3" )
1688 	PORT_DIPSETTING(      0x0080, "4" )
1689 	PORT_DIPSETTING(      0x0040, "5" )
1690 
1691 	PORT_START /* DSW B */
1692 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
1693 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1694 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1695 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1696 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1697 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1698 	PORT_DIPNAME( 0x001C, 0x001C, DEF_STR( Coin_B ) )
1699 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1700 	PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
1701 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
1702 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_1C ) )
1703 	PORT_DIPSETTING(      0x001C, DEF_STR( 1C_1C ) )
1704 	PORT_DIPSETTING(      0x000C, DEF_STR( 1C_2C ) )
1705 	PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
1706 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
1707 	PORT_DIPNAME( 0x00E0, 0x00E0, DEF_STR( Coin_A ) )
1708 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1709 	PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
1710 	PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
1711 	PORT_DIPSETTING(      0x00C0, DEF_STR( 2C_1C ) )
1712 	PORT_DIPSETTING(      0x00E0, DEF_STR( 1C_1C ) )
1713 	PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
1714 	PORT_DIPSETTING(      0x00A0, DEF_STR( 1C_3C ) )
1715 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
1716 INPUT_PORTS_END
1717 
1718 INPUT_PORTS_START( tdragon )
1719 	PORT_START		/* IN0 */
1720 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1721 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1722 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1723 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1724 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1725 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	// TEST in service mode
1726 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1727 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1728 
1729 	PORT_START      /* IN1 */
1730 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1731 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1732 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1733 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1734 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1735 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1736 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1737 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1738 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1739 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1740 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1741 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1742 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1743 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1744 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1745 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1746 
1747 	PORT_START	/* DSW 1 */
1748 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) )
1749 	PORT_DIPSETTING(      0x0000, "1" )
1750 	PORT_DIPSETTING(      0x0002, "2" )
1751 	PORT_DIPSETTING(      0x0003, "3" )
1752 	PORT_DIPSETTING(      0x0001, "4" )
1753 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1754 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1755 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1756 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1757 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1758 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1759 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Difficulty ))
1760 	PORT_DIPSETTING(      0x0020, "Easy" )
1761 	PORT_DIPSETTING(      0x0030, "Normal" )
1762 	PORT_DIPSETTING(      0x0010, "Hard" )
1763 	PORT_DIPSETTING(      0x0000, "Hardest" )
1764 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1765 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1766 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1767 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
1768 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1769 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1770 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
1771 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
1772 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1773 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1774 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
1775 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1776 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
1777 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
1778 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1779 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
1780 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
1781 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1782 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
1783 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
1784 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1785 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
1786 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
1787 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1788 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
1789 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
1790 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1791 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
1792 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
1793 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1794 
1795 	PORT_START	/* DSW 2 */
1796 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
1797 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
1798 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
1799 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_1C ) )
1800 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
1801 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_2C ) )
1802 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_3C ) )
1803 	PORT_DIPSETTING(      0x0001, DEF_STR( 1C_4C ) )
1804 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1805 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
1806 	PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
1807 	PORT_DIPSETTING(      0x0028, DEF_STR( 3C_1C ) )
1808 	PORT_DIPSETTING(      0x0030, DEF_STR( 2C_1C ) )
1809 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
1810 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_2C ) )
1811 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_3C ) )
1812 	PORT_DIPSETTING(      0x0008, DEF_STR( 1C_4C ) )
1813 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1814 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ))
1815 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ))
1816 	PORT_DIPSETTING(      0x0040, DEF_STR( On ))
1817 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
1818 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1819 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1820 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
1821 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
1822 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1823 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1824 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
1825 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1826 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
1827 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
1828 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1829 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
1830 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
1831 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1832 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
1833 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
1834 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1835 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
1836 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
1837 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1838 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
1839 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
1840 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1841 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
1842 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
1843 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1844 INPUT_PORTS_END
1845 
1846 INPUT_PORTS_START( ssmissin )
1847 	PORT_START		/* IN0 */
1848 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1849 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1850 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )		// "Servise" in "test mode"
1851 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1852 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1853 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1854 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1855 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1856 
1857 	PORT_START      /* IN1 */
1858 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1859 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1860 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1861 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1862 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )		// "Fire"
1863 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )		// "Bomb"
1864 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1865 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1866 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1867 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1868 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1869 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1870 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )		// "Fire"
1871 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )		// "Bomb"
1872 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1873 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1874 
1875 	PORT_START	/* DSW 1 */
1876 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
1877 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1878 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1879 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) )
1880 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1881 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1882 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
1883 	PORT_DIPSETTING(      0x0004, "Easy" )
1884 	PORT_DIPSETTING(      0x000c, "Normal" )
1885 	PORT_DIPSETTING(      0x0008, "Hard" )
1886 	PORT_DIPSETTING(      0x0000, "Hardest" )
1887 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
1888 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1889 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1890 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
1891 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1892 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1893 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) )
1894 	PORT_DIPSETTING(      0x0000, "1" )
1895 	PORT_DIPSETTING(      0x0040, "2" )
1896 	PORT_DIPSETTING(      0x00c0, "3" )
1897 	PORT_DIPSETTING(      0x0080, "4" )
1898 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) )
1899 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
1900 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1901 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) )
1902 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
1903 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1904 #if 0
1905 	PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_B ) )	// initialised but not read back
1906 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
1907 	PORT_DIPSETTING(      0x1400, DEF_STR( 3C_1C ) )
1908 	PORT_DIPSETTING(      0x0c00, DEF_STR( 2C_1C ) )
1909 	PORT_DIPSETTING(      0x1c00, DEF_STR( 1C_1C ) )
1910 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_2C ) )
1911 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_3C ) )
1912 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
1913 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1914 #else
1915 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) )
1916 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
1917 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1918 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) )
1919 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
1920 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1921 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) )
1922 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
1923 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1924 #endif
1925 	PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) )
1926 	PORT_DIPSETTING(      0x2000, DEF_STR( 4C_1C ) )
1927 	PORT_DIPSETTING(      0xa000, DEF_STR( 3C_1C ) )
1928 	PORT_DIPSETTING(      0x6000, DEF_STR( 2C_1C ) )
1929 	PORT_DIPSETTING(      0xe000, DEF_STR( 1C_1C ) )
1930 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_2C ) )
1931 	PORT_DIPSETTING(      0x4000, DEF_STR( 1C_3C ) )
1932 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_4C ) )
1933 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1934 INPUT_PORTS_END
1935 
1936 INPUT_PORTS_START( macross )
1937 	PORT_START		/* IN0 */
1938 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1939 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1940 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1941 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1942 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1943 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1944 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1945 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
1946 
1947 	PORT_START      /* IN1 */
1948 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1949 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
1950 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
1951 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
1952 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1953 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1954 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1955 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1956 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1957 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
1958 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
1959 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
1960 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1961 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1962 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1963 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1964 
1965 	PORT_START	/* DSW A */
1966 	PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
1967 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
1968 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1969 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1970 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
1971 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1972 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1973 	PORT_DIPNAME( 0x08, 0x00, "Language" )
1974 	PORT_DIPSETTING(    0x00, "English" )
1975 	PORT_DIPSETTING(    0x08, "Japanese" )
1976 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
1977 	PORT_DIPSETTING(    0x10, "Easy" )
1978 	PORT_DIPSETTING(    0x30, "Normal" )
1979 	PORT_DIPSETTING(    0x20, "Hard" )
1980 	PORT_DIPSETTING(    0x00, "Hardest" )
1981 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
1982 	PORT_DIPSETTING(    0x00, "1" )
1983 	PORT_DIPSETTING(    0x40, "2" )
1984 	PORT_DIPSETTING(    0xc0, "3" )
1985 	PORT_DIPSETTING(    0x80, "4" )
1986 
1987 	PORT_START	/* DSW B */
1988 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) )
1989 	PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
1990 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_1C ) )
1991 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
1992 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_3C ) )
1993 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_2C ) )
1994 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_3C ) )
1995 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1996 	PORT_DIPSETTING(    0x0c, DEF_STR( 3C_4C ) )
1997 	PORT_DIPSETTING(    0x0e, DEF_STR( 2C_3C ) )
1998 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_2C ) )
1999 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
2000 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_3C ) )
2001 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
2002 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_5C ) )
2003 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
2004 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
2005 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) )
2006 	PORT_DIPSETTING(    0x40, DEF_STR( 4C_1C ) )
2007 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
2008 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
2009 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_2C ) )
2010 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_3C ) )
2011 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
2012 	PORT_DIPSETTING(    0xc0, DEF_STR( 3C_4C ) )
2013 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_3C ) )
2014 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) )
2015 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
2016 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_3C ) )
2017 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
2018 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
2019 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
2020 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
2021 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2022 INPUT_PORTS_END
2023 
2024 INPUT_PORTS_START( macross2 )
2025 	PORT_START		/* IN0 */
2026 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2027 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2028 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2029 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2030 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2031 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2032 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2033 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2034 
2035 	PORT_START      /* IN1 */
2036 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2037 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
2038 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
2039 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
2040 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2041 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2042 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2043 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2044 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2045 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2046 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2047 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2048 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2049 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2050 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2051 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2052 
2053 	PORT_START	/* DSW A */
2054 	PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
2055 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2056 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2057 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2058 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
2059 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2060 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2061 	PORT_DIPNAME( 0x08, 0x00, "Language" )
2062 	PORT_DIPSETTING(    0x00, "English" )
2063 	PORT_DIPSETTING(    0x08, "Japanese" )
2064 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
2065 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
2066 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2067 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
2068 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
2069 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2070 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2071 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2072 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2073 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2074 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
2075 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2076 
2077 	PORT_START	/* DSW B */
2078 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) )
2079 	PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
2080 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_1C ) )
2081 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
2082 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_3C ) )
2083 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_2C ) )
2084 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_3C ) )
2085 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
2086 	PORT_DIPSETTING(    0x0c, DEF_STR( 3C_4C ) )
2087 	PORT_DIPSETTING(    0x0e, DEF_STR( 2C_3C ) )
2088 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_2C ) )
2089 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
2090 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_3C ) )
2091 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
2092 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_5C ) )
2093 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
2094 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
2095 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) )
2096 	PORT_DIPSETTING(    0x40, DEF_STR( 4C_1C ) )
2097 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
2098 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
2099 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_2C ) )
2100 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_3C ) )
2101 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
2102 	PORT_DIPSETTING(    0xc0, DEF_STR( 3C_4C ) )
2103 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_3C ) )
2104 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) )
2105 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
2106 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_3C ) )
2107 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
2108 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
2109 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
2110 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
2111 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2112 INPUT_PORTS_END
2113 
2114 INPUT_PORTS_START( tdragon2 )
2115 	PORT_START		/* IN0 */
2116 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2117 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2118 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2119 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2120 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2121 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2122 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2123 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2124 
2125 	PORT_START      /* IN1 */
2126 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2127 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
2128 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
2129 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
2130 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2131 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2132 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
2133 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2134 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2135 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2136 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2137 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2138 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2139 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2140 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
2141 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2142 
2143 	PORT_START	/* DSW A */
2144 	PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
2145 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
2146 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2147 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
2148 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) )
2149 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2150 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2151 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
2152 	PORT_DIPSETTING(    0x00, DEF_STR( Off) )
2153 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2154 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
2155 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
2156 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2157 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
2158 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
2159 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2160 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
2161 	PORT_DIPSETTING(    0x00, "1" )
2162 	PORT_DIPSETTING(    0x40, "2" )
2163 	PORT_DIPSETTING(    0xc0, "3" )
2164 	PORT_DIPSETTING(    0x80, "4" )
2165 
2166 	PORT_START	/* DSW B */
2167 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) )
2168 	PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
2169 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_1C ) )
2170 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
2171 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_3C ) )
2172 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_2C ) )
2173 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_3C ) )
2174 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
2175 	PORT_DIPSETTING(    0x0c, DEF_STR( 3C_4C ) )
2176 	PORT_DIPSETTING(    0x0e, DEF_STR( 2C_3C ) )
2177 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_2C ) )
2178 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
2179 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_3C ) )
2180 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
2181 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_5C ) )
2182 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
2183 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
2184 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) )
2185 	PORT_DIPSETTING(    0x40, DEF_STR( 4C_1C ) )
2186 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
2187 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
2188 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_2C ) )
2189 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_3C ) )
2190 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
2191 	PORT_DIPSETTING(    0xc0, DEF_STR( 3C_4C ) )
2192 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_3C ) )
2193 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) )
2194 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
2195 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_3C ) )
2196 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
2197 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
2198 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
2199 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
2200 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2201 INPUT_PORTS_END
2202 
2203 INPUT_PORTS_START( gunnail )
2204 	PORT_START		/* IN0 */
2205 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2206 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2207 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2208 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2209 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2210 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2211 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2212 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2213 
2214 	PORT_START      /* IN1 */
2215 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2216 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
2217 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
2218 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
2219 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2220 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2221 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2222 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2223 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2224 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2225 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2226 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2227 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2228 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2229 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2230 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2231 
2232 	PORT_START	/* DSW A */
2233 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
2234 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2235 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2236 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2237 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2238 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2239 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
2240 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2241 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2242 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
2243 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
2244 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2245 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
2246 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
2247 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2248 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
2249 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
2250 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2251 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2252 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
2253 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2254 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2255 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
2256 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2257 
2258 	PORT_START /* DSW B */
2259 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2260 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2261 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2262 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2263 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2264 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2265 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
2266 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_1C ) )
2267 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
2268 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
2269 	PORT_DIPSETTING(    0x1c, DEF_STR( 1C_1C ) )
2270 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_2C ) )
2271 	PORT_DIPSETTING(    0x14, DEF_STR( 1C_3C ) )
2272 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
2273 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2274 	PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
2275 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_1C ) )
2276 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_1C ) )
2277 	PORT_DIPSETTING(    0xc0, DEF_STR( 2C_1C ) )
2278 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_1C ) )
2279 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_2C ) )
2280 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_3C ) )
2281 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
2282 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2283 INPUT_PORTS_END
2284 
2285 INPUT_PORTS_START( sabotenb )
2286 	PORT_START		/* IN0 */
2287 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2288 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2289 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2290 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2291 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2292 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* shown in service mode, but no effect */
2293 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2294 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2295 
2296 	PORT_START      /* IN1 */
2297 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2298 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
2299 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
2300 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
2301 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2302 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2303 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2304 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2305 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2306 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2307 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2308 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2309 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2310 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2311 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2312 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2313 
2314 	PORT_START	/* DSW A */
2315 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
2316 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2317 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2318 	PORT_DIPNAME( 0x02, 0x02, "Language" )
2319 	PORT_DIPSETTING(    0x02, "Japanese" )
2320 	PORT_DIPSETTING(    0x00, "English" )
2321 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
2322 	PORT_DIPSETTING(    0x08, "Easy" )
2323 	PORT_DIPSETTING(    0x0c, "Normal" )
2324 	PORT_DIPSETTING(    0x04, "Hard" )
2325 	PORT_DIPSETTING(    0x00, "Hardest" )
2326 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
2327 	PORT_DIPSETTING(    0x00, "1" )
2328 	PORT_DIPSETTING(    0x40, "2" )
2329 	PORT_DIPSETTING(    0xc0, "3" )
2330 	PORT_DIPSETTING(    0x80, "4" )
2331 
2332 	PORT_START	/* DSW B */
2333 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2334 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2335 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2336 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
2337 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2338 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
2339 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
2340 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_1C ) )
2341 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
2342 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
2343 	PORT_DIPSETTING(    0x1c, DEF_STR( 1C_1C ) )
2344 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_2C ) )
2345 	PORT_DIPSETTING(    0x14, DEF_STR( 1C_3C ) )
2346 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
2347 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2348 	PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
2349 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_1C ) )
2350 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_1C ) )
2351 	PORT_DIPSETTING(    0xc0, DEF_STR( 2C_1C ) )
2352 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_1C ) )
2353 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_2C ) )
2354 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_3C ) )
2355 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
2356 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2357 INPUT_PORTS_END
2358 
2359 INPUT_PORTS_START( bjtwin )
2360 	PORT_START		/* IN0 */
2361 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2362 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2363 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2364 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2365 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2366 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* shown in service mode, but no effect */
2367 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2368 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* Maybe unused */
2369 
2370 	PORT_START      /* IN1 */
2371 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2372 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
2373 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
2374 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
2375 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2376 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2377 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2378 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2379 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2380 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2381 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2382 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2383 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2384 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2385 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2386 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2387 
2388 	PORT_START	/* DSW A */
2389 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
2390 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2391 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2392 	PORT_DIPNAME( 0x0e, 0x0e, "Starting level" )
2393 	PORT_DIPSETTING(    0x08, "Germany" )
2394 	PORT_DIPSETTING(    0x04, "Thailand" )
2395 	PORT_DIPSETTING(    0x0c, "Nevada" )
2396 	PORT_DIPSETTING(    0x0e, "Japan" )
2397 	PORT_DIPSETTING(    0x06, "Korea" )
2398 	PORT_DIPSETTING(    0x0a, "England" )
2399 	PORT_DIPSETTING(    0x02, "Hong Kong" )
2400 	PORT_DIPSETTING(    0x00, "China" )
2401 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
2402 	PORT_DIPSETTING(    0x20, "Easy" )
2403 	PORT_DIPSETTING(    0x30, "Normal" )
2404 	PORT_DIPSETTING(    0x10, "Hard" )
2405 	PORT_DIPSETTING(    0x00, "Hardest" )
2406 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
2407 	PORT_DIPSETTING(    0x00, "1" )
2408 	PORT_DIPSETTING(    0x40, "2" )
2409 	PORT_DIPSETTING(    0xc0, "3" )
2410 	PORT_DIPSETTING(    0x80, "4" )
2411 
2412 	PORT_START	/* DSW B */
2413 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2414 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2415 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2416 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
2417 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2418 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
2419 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
2420 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_1C ) )
2421 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
2422 	PORT_DIPSETTING(    0x18, DEF_STR( 2C_1C ) )
2423 	PORT_DIPSETTING(    0x1c, DEF_STR( 1C_1C ) )
2424 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_2C ) )
2425 	PORT_DIPSETTING(    0x14, DEF_STR( 1C_3C ) )
2426 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
2427 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2428 	PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
2429 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_1C ) )
2430 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_1C ) )
2431 	PORT_DIPSETTING(    0xc0, DEF_STR( 2C_1C ) )
2432 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_1C ) )
2433 	PORT_DIPSETTING(    0x60, DEF_STR( 1C_2C ) )
2434 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_3C ) )
2435 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
2436 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
2437 INPUT_PORTS_END
2438 
2439 INPUT_PORTS_START( nouryoku )
2440 	PORT_START		/* IN0 */
2441 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
2442 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
2443 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2444 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2445 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
2446 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2447 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2448 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2449 
2450 	PORT_START      /* IN1 */
2451 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2452 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
2453 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
2454 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
2455 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2456 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2457 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2458 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2459 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
2460 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
2461 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
2462 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
2463 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2464 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2465 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2466 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
2467 
2468 	PORT_START	/* DSW A */
2469 	PORT_DIPNAME( 0x03, 0x03, "Life Decrease Speed" )
2470 	PORT_DIPSETTING(    0x02, "Slow" )
2471 	PORT_DIPSETTING(    0x03, "Normal" )
2472 	PORT_DIPSETTING(    0x01, "Fast" )
2473 	PORT_DIPSETTING(    0x00, "Very Fast" )
2474 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
2475 	PORT_DIPSETTING(    0x08, "Easy" )
2476 	PORT_DIPSETTING(    0x0c, "Normal" )
2477 	PORT_DIPSETTING(    0x04, "Hard" )
2478 	PORT_DIPSETTING(    0x00, "Hardest" )
2479 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) )
2480 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
2481 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2482 	PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) )
2483 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
2484 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
2485 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_1C ) )
2486 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_1C ) )
2487 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) )
2488 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_2C ) )
2489 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
2490 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_4C ) )
2491 
2492 	PORT_START	/* DSW B */
2493 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2494 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2495 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2496 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2497 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2498 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2499 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
2500 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2501 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2502 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
2503 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
2504 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2505 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
2506 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
2507 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2508 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
2509 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
2510 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2511 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
2512 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2513 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
2514 	PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
2515 INPUT_PORTS_END
2516 
2517 
2518 
2519 static struct GfxLayout charlayout =
2520 {
2521 	8,8,
2522 	RGN_FRAC(1,1),
2523 	4,
2524 	{ 0, 1, 2, 3 },
2525 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
2526 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
2527 	32*8
2528 };
2529 
2530 static struct GfxLayout tilelayout =
2531 {
2532 	16,16,
2533 	RGN_FRAC(1,1),
2534 	4,
2535 	{ 0, 1, 2, 3 },
2536 	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
2537 			16*32+0*4, 16*32+1*4, 16*32+2*4, 16*32+3*4, 16*32+4*4, 16*32+5*4, 16*32+6*4, 16*32+7*4 },
2538 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
2539 			8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
2540 	32*32
2541 };
2542 
2543 static struct GfxDecodeInfo tharrier_gfxdecodeinfo[] =
2544 {
2545 	{ REGION_GFX1, 0, &charlayout, 0x000, 16 },	/* color 0x200-0x2ff */
2546 	{ REGION_GFX2, 0, &tilelayout, 0x000, 16 },	/* color 0x000-0x0ff */
2547 	{ REGION_GFX3, 0, &tilelayout, 0x100, 16 },	/* color 0x100-0x1ff */
2548 	{ -1 } /* end of array */
2549 };
2550 
2551 static struct GfxDecodeInfo macross_gfxdecodeinfo[] =
2552 {
2553 	{ REGION_GFX1, 0, &charlayout, 0x200, 16 },	/* color 0x200-0x2ff */
2554 	{ REGION_GFX2, 0, &tilelayout, 0x000, 16 },	/* color 0x000-0x0ff */
2555 	{ REGION_GFX3, 0, &tilelayout, 0x100, 16 },	/* color 0x100-0x1ff */
2556 	{ -1 } /* end of array */
2557 };
2558 
2559 static struct GfxDecodeInfo macross2_gfxdecodeinfo[] =
2560 {
2561 	{ REGION_GFX1, 0, &charlayout, 0x300, 16 },	/* color 0x300-0x3ff */
2562 	{ REGION_GFX2, 0, &tilelayout, 0x000, 16 },	/* color 0x000-0x0ff */
2563 	{ REGION_GFX3, 0, &tilelayout, 0x100, 32 },	/* color 0x100-0x2ff */
2564 	{ -1 } /* end of array */
2565 };
2566 
2567 static struct GfxDecodeInfo bjtwin_gfxdecodeinfo[] =
2568 {
2569 	{ REGION_GFX1, 0, &charlayout, 0x000, 16 },	/* color 0x000-0x0ff */
2570 	{ REGION_GFX2, 0, &charlayout, 0x000, 16 },	/* color 0x000-0x0ff */
2571 	{ REGION_GFX3, 0, &tilelayout, 0x100, 16 },	/* color 0x100-0x1ff */
2572 	{ -1 } /* end of array */
2573 };
2574 
2575 static struct GfxDecodeInfo bioship_gfxdecodeinfo[] =
2576 {
2577 	{ REGION_GFX1, 0, &charlayout, 0x300, 16 },	/* color 0x300-0x3ff */
2578 	{ REGION_GFX2, 0, &tilelayout, 0x100, 16 },	/* color 0x100-0x1ff */
2579 	{ REGION_GFX3, 0, &tilelayout, 0x200, 16 },	/* color 0x200-0x2ff */
2580 	{ REGION_GFX4, 0, &tilelayout, 0x000, 16 },	/* color 0x000-0x0ff */
2581 	{ -1 }
2582 };
2583 
2584 static struct GfxDecodeInfo strahl_gfxdecodeinfo[] =
2585 {
2586 	{ REGION_GFX1, 0, &charlayout, 0x000, 16 },	/* color 0x000-0x0ff */
2587 	{ REGION_GFX2, 0, &tilelayout, 0x300, 16 },	/* color 0x300-0x3ff */
2588 	{ REGION_GFX3, 0, &tilelayout, 0x100, 16 },	/* color 0x100-0x1ff */
2589 	{ REGION_GFX4, 0, &tilelayout, 0x200, 16 },	/* color 0x200-0x2ff */
2590 	{ -1 }
2591 };
2592 
2593 
ym2203_irqhandler(int irq)2594 static void ym2203_irqhandler(int irq)
2595 {
2596 	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
2597 }
2598 
2599 static struct YM2203interface ym2203_interface_15 =
2600 {
2601 	1,			/* 1 chip */
2602 	1500000,	/* 2 MHz ??? */
2603 	{ YM2203_VOL(90,90) },
2604 	{ 0 },
2605 	{ 0 },
2606 	{ 0 },
2607 	{ 0 },
2608 	{ ym2203_irqhandler }
2609 };
2610 
2611 static struct OKIM6295interface okim6295_interface_dual =
2612 {
2613 	2,              					/* 2 chips */
2614 	{ 16000000/4/165, 16000000/4/165 },	/* 24242Hz frequency? */
2615 	{ REGION_SOUND1, REGION_SOUND2 },	/* memory region */
2616 	{ 40, 40 }							/* volume */
2617 };
2618 
2619 static struct OKIM6295interface okim6295_interface_ssmissin =
2620 {
2621 	1,              	/* 1 chip */
2622 	{ 8000000/4/165 },	/* ? unknown */
2623 	{ REGION_SOUND1 },	/* memory region */
2624 	{ 100 }				/* volume */
2625 };
2626 
INTERRUPT_GEN(nmk_interrupt)2627 static INTERRUPT_GEN( nmk_interrupt )
2628 {
2629 	if (cpu_getiloops() == 0) cpu_set_irq_line(0, 4, HOLD_LINE);
2630 	else cpu_set_irq_line(0, 2, HOLD_LINE);
2631 }
2632 
2633 /* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
2634 SEIBU_SOUND_SYSTEM_YM3812_HARDWARE(14318180/4, 8000, REGION_SOUND1);
2635 
2636 static MACHINE_DRIVER_START( urashima )
2637 
2638 	/* basic machine hardware */
2639 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
MDRV_CPU_MEMORY(urashima_readmem,urashima_writemem)2640 	MDRV_CPU_MEMORY(urashima_readmem,urashima_writemem)
2641 //	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)	/* ???????? */
2642 
2643 	MDRV_FRAMES_PER_SECOND(60)
2644 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2645 	MDRV_MACHINE_INIT(nmk16)
2646 
2647 	/* video hardware */
2648 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2649 	MDRV_SCREEN_SIZE(256, 256)
2650 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2651 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2652 	MDRV_PALETTE_LENGTH(1024)
2653 
2654 	MDRV_VIDEO_START(macross)
2655 	MDRV_VIDEO_EOF(nmk)
2656 	MDRV_VIDEO_UPDATE(macross)
2657 
2658 	/* sound hardware */
2659 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2660 MACHINE_DRIVER_END
2661 
2662 
2663 static MACHINE_DRIVER_START( vandyke )
2664 
2665 	/* basic machine hardware */
2666 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
2667 	MDRV_CPU_MEMORY(vandyke_readmem,vandyke_writemem)
2668 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2669 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2670 
2671 	MDRV_FRAMES_PER_SECOND(60)
2672 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2673 	MDRV_MACHINE_INIT(nmk16)
2674 
2675 	/* video hardware */
2676 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2677 	MDRV_SCREEN_SIZE(256, 256)
2678 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2679 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2680 	MDRV_PALETTE_LENGTH(1024)
2681 
2682 	MDRV_VIDEO_START(macross)
2683 	MDRV_VIDEO_EOF(nmk)
2684 	MDRV_VIDEO_UPDATE(macross)
2685 
2686 	/* sound hardware */
2687 	/* there's also a YM2203 */
2688 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2689 MACHINE_DRIVER_END
2690 
2691 
2692 static MACHINE_DRIVER_START( tharrier )
2693 
2694 	/* basic machine hardware */
2695 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz */
2696 	MDRV_CPU_MEMORY(tharrier_readmem,tharrier_writemem)
2697 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2698 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2699 
2700 	MDRV_CPU_ADD(Z80, 3000000)
2701 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
2702 	MDRV_CPU_MEMORY(manybloc_sound_readmem,manybloc_sound_writemem)
2703 	MDRV_CPU_PORTS(manybloc_sound_readport,manybloc_sound_writeport)
2704 
2705 	MDRV_FRAMES_PER_SECOND(60)
2706 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2707 	MDRV_MACHINE_INIT(mustang_sound)
2708 
2709 	/* video hardware */
2710 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2711 	MDRV_SCREEN_SIZE(256, 256)
2712 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2713 	MDRV_GFXDECODE(tharrier_gfxdecodeinfo)
2714 	MDRV_PALETTE_LENGTH(512)
2715 
2716 	MDRV_VIDEO_START(macross)
2717 	MDRV_VIDEO_EOF(nmk)
2718 	MDRV_VIDEO_UPDATE(macross)
2719 
2720 	/* sound hardware */
2721 	MDRV_SOUND_ADD(YM2203, ym2203_interface_15)
2722 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2723 MACHINE_DRIVER_END
2724 
2725 static MACHINE_DRIVER_START( manybloc )
2726 
2727 	/* basic machine hardware */
2728 	MDRV_CPU_ADD(M68000, 10000000) /* 10? MHz - check */
2729 	MDRV_CPU_MEMORY(manybloc_readmem,manybloc_writemem)
2730 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2731 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,60)/* is this is too high it breaks the game on this one, too low sprites flicker */
2732 
2733 	MDRV_CPU_ADD(Z80, 3000000)
2734 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
2735 	MDRV_CPU_MEMORY(manybloc_sound_readmem,manybloc_sound_writemem)
2736 	MDRV_CPU_PORTS(manybloc_sound_readport,manybloc_sound_writeport)
2737 
2738 	MDRV_FRAMES_PER_SECOND(60)
2739 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2740 
2741 	/* video hardware */
2742 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2743 	MDRV_SCREEN_SIZE(256, 256)
2744 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2745 	MDRV_GFXDECODE(tharrier_gfxdecodeinfo)
2746 	MDRV_PALETTE_LENGTH(512)
2747 
2748 	MDRV_VIDEO_START(macross)
2749 //	MDRV_VIDEO_EOF(nmk)
2750 	MDRV_VIDEO_UPDATE(manybloc)
2751 
2752 	/* sound hardware */
2753 	MDRV_SOUND_ADD(YM2203, ym2203_interface_15)
2754 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2755 MACHINE_DRIVER_END
2756 
2757 static MACHINE_DRIVER_START( mustang )
2758 
2759 	/* basic machine hardware */
2760 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
2761 	MDRV_CPU_MEMORY(mustang_readmem,mustang_writemem)
2762 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2763 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2764 
2765 	MDRV_FRAMES_PER_SECOND(60)
2766 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2767 	MDRV_MACHINE_INIT(nmk16)
2768 
2769 	/* video hardware */
2770 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2771 	MDRV_SCREEN_SIZE(256, 256)
2772 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2773 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2774 	MDRV_PALETTE_LENGTH(1024)
2775 
2776 	MDRV_VIDEO_START(macross)
2777 	MDRV_VIDEO_EOF(nmk)
2778 	MDRV_VIDEO_UPDATE(macross)
2779 
2780 
2781 	/* sound hardware */
2782 	MDRV_SOUND_ADD(YM2203, ym2203_interface_15)
2783 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2784 MACHINE_DRIVER_END
2785 
2786 static MACHINE_DRIVER_START( mustangb )
2787 
2788 	/* basic machine hardware */
2789 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
2790 	MDRV_CPU_MEMORY(mustang_readmem,mustangb_writemem)
2791 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2792 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2793 
2794 	SEIBU_SOUND_SYSTEM_CPU(14318180/4)
2795 
2796 	MDRV_FRAMES_PER_SECOND(60)
2797 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2798 	MDRV_MACHINE_INIT(mustang_sound)
2799 
2800 	/* video hardware */
2801 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2802 	MDRV_SCREEN_SIZE(256, 256)
2803 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2804 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2805 	MDRV_PALETTE_LENGTH(1024)
2806 
2807 	MDRV_VIDEO_START(macross)
2808 	MDRV_VIDEO_EOF(nmk)
2809 	MDRV_VIDEO_UPDATE(macross)
2810 
2811 	/* sound hardware */
2812 	SEIBU_SOUND_SYSTEM_YM3812_INTERFACE
2813 
2814 MACHINE_DRIVER_END
2815 
2816 static MACHINE_DRIVER_START( acrobatm )
2817 
2818 	/* basic machine hardware */
2819 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? 12 MHz? */
2820 	MDRV_CPU_MEMORY(acrobatm_readmem,acrobatm_writemem)
2821 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2822 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2823 
2824 	MDRV_FRAMES_PER_SECOND(60)
2825 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2826 	MDRV_MACHINE_INIT(nmk16)
2827 
2828 	/* video hardware */
2829 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2830 	MDRV_SCREEN_SIZE(256, 256)
2831 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2832 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2833 	MDRV_PALETTE_LENGTH(1024)
2834 
2835 	MDRV_VIDEO_START(macross)
2836 	MDRV_VIDEO_EOF(nmk)
2837 	MDRV_VIDEO_UPDATE(macross)
2838 
2839 	/* sound hardware */
2840 	/* there's also a YM2203? */
2841 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2842 MACHINE_DRIVER_END
2843 
2844 
2845 static MACHINE_DRIVER_START( bioship )
2846 
2847 	/* basic machine hardware */
2848 	MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ? */
2849 	MDRV_CPU_MEMORY(bioship_readmem,bioship_writemem)
2850 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2851 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2852 
2853 	MDRV_FRAMES_PER_SECOND(60)
2854 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2855 	MDRV_MACHINE_INIT(nmk16)
2856 
2857 	/* video hardware */
2858 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2859 	MDRV_SCREEN_SIZE(256, 256)
2860 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2861 	MDRV_GFXDECODE(bioship_gfxdecodeinfo)
2862 	MDRV_PALETTE_LENGTH(1024)
2863 
2864 	MDRV_VIDEO_START(bioship)
2865 	MDRV_VIDEO_EOF(nmk)
2866 	MDRV_VIDEO_UPDATE(bioship)
2867 
2868 	/* sound hardware */
2869 	/* there's also a YM2203 */
2870 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2871 MACHINE_DRIVER_END
2872 
2873 
2874 /* bootleg using Raiden sound hardware */
2875 static MACHINE_DRIVER_START( tdragonb )
2876 
2877 	/* basic machine hardware */
2878 	MDRV_CPU_ADD(M68000, 10000000)
2879 	MDRV_CPU_MEMORY(tdragon_readmem,tdragonb_writemem)
2880 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
2881 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ?? drives music */
2882 
2883 	SEIBU_SOUND_SYSTEM_CPU(14318180/4)
2884 
2885 	MDRV_FRAMES_PER_SECOND(60)
2886 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2887 	MDRV_MACHINE_INIT(mustang_sound)
2888 
2889 	/* video hardware */
2890 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2891 	MDRV_SCREEN_SIZE(256, 256)
2892 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2893 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2894 	MDRV_PALETTE_LENGTH(1024)
2895 
2896 	MDRV_VIDEO_START(macross)
2897 	MDRV_VIDEO_EOF(nmk)
2898 	MDRV_VIDEO_UPDATE(macross)
2899 
2900 	/* sound hardware */
2901 	SEIBU_SOUND_SYSTEM_YM3812_INTERFACE
2902 MACHINE_DRIVER_END
2903 
2904 static MACHINE_DRIVER_START( tdragon )
2905 
2906 	/* basic machine hardware */
2907 	MDRV_CPU_ADD(M68000, 10000000)
2908 	MDRV_CPU_MEMORY(tdragon_readmem,tdragon_writemem)
2909 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
2910 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ?? drives music */
2911 
2912 	MDRV_FRAMES_PER_SECOND(60)
2913 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2914 	MDRV_MACHINE_INIT(nmk16)
2915 
2916 	/* video hardware */
2917 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2918 	MDRV_SCREEN_SIZE(256, 256)
2919 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2920 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2921 	MDRV_PALETTE_LENGTH(1024)
2922 
2923 	MDRV_VIDEO_START(macross)
2924 	MDRV_VIDEO_EOF(nmk)
2925 	MDRV_VIDEO_UPDATE(macross)
2926 
2927 	/* sound hardware */
2928 MACHINE_DRIVER_END
2929 
2930 static MACHINE_DRIVER_START( ssmissin )
2931 
2932 	/* basic machine hardware */
2933 	MDRV_CPU_ADD(M68000, 10000000)
2934 	MDRV_CPU_MEMORY(ssmissin_readmem,ssmissin_writemem)
2935 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
2936 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112) /* input related */
2937 
2938 	MDRV_CPU_ADD(Z80, 4000000)
2939 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ? */
2940 	MDRV_CPU_MEMORY(ssmissin_sound_readmem,ssmissin_sound_writemem)
2941 
2942 	MDRV_FRAMES_PER_SECOND(60)
2943 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2944 	MDRV_MACHINE_INIT(nmk16)
2945 
2946 	/* video hardware */
2947 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2948 	MDRV_SCREEN_SIZE(256, 256)
2949 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2950 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
2951 	MDRV_PALETTE_LENGTH(1024)
2952 
2953 	MDRV_VIDEO_START(macross)
2954 	MDRV_VIDEO_EOF(nmk)
2955 	MDRV_VIDEO_UPDATE(macross)
2956 
2957 	/* sound hardware */
2958 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_ssmissin)
2959 MACHINE_DRIVER_END
2960 
2961 
2962 static MACHINE_DRIVER_START( strahl )
2963 
2964 	/* basic machine hardware */
2965 	MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ? */
2966 	MDRV_CPU_MEMORY(strahl_readmem,strahl_writemem)
2967 	MDRV_CPU_VBLANK_INT(nmk_interrupt,2)
2968 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2969 
2970 	MDRV_FRAMES_PER_SECOND(60)
2971 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
2972 	MDRV_MACHINE_INIT(nmk16)
2973 
2974 	/* video hardware */
2975 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
2976 	MDRV_SCREEN_SIZE(256, 256)
2977 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2978 	MDRV_GFXDECODE(strahl_gfxdecodeinfo)
2979 	MDRV_PALETTE_LENGTH(1024)
2980 
2981 	MDRV_VIDEO_START(strahl)
2982 	MDRV_VIDEO_EOF(nmk)
2983 	MDRV_VIDEO_UPDATE(strahl)
2984 
2985 	/* sound hardware */
2986 	/* there's also a YM2203 */
2987 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
2988 MACHINE_DRIVER_END
2989 
2990 
2991 static MACHINE_DRIVER_START( hachamf )
2992 
2993 	/* basic machine hardware */
2994 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
2995 	MDRV_CPU_MEMORY(hachamf_readmem,hachamf_writemem)
2996 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
2997 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
2998 
2999 	MDRV_FRAMES_PER_SECOND(60)
3000 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3001 	MDRV_MACHINE_INIT(nmk16)
3002 
3003 	/* video hardware */
3004 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3005 	MDRV_SCREEN_SIZE(256, 256)
3006 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3007 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
3008 	MDRV_PALETTE_LENGTH(1024)
3009 
3010 	MDRV_VIDEO_START(macross)
3011 	MDRV_VIDEO_EOF(nmk)
3012 	MDRV_VIDEO_UPDATE(macross)
3013 
3014 	/* sound hardware */
3015 	/* there's also a YM2203 */
3016 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3017 MACHINE_DRIVER_END
3018 
3019 
3020 static MACHINE_DRIVER_START( macross )
3021 
3022 	/* basic machine hardware */
3023 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
3024 	MDRV_CPU_MEMORY(macross_readmem,macross_writemem)
3025 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3026 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
3027 
3028 	MDRV_FRAMES_PER_SECOND(60)
3029 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3030 	MDRV_MACHINE_INIT(nmk16)
3031 
3032 	/* video hardware */
3033 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3034 	MDRV_SCREEN_SIZE(256, 256)
3035 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3036 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
3037 	MDRV_PALETTE_LENGTH(1024)
3038 
3039 	MDRV_VIDEO_START(macross)
3040 	MDRV_VIDEO_EOF(nmk)
3041 	MDRV_VIDEO_UPDATE(macross)
3042 
3043 	/* sound hardware */
3044 	/* there's also a YM2203 */
3045 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3046 MACHINE_DRIVER_END
3047 
3048 
3049 static MACHINE_DRIVER_START( gunnail )
3050 
3051 	/* basic machine hardware */
3052 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz? */
3053 	MDRV_CPU_MEMORY(gunnail_readmem,gunnail_writemem)
3054 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3055 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)
3056 
3057 	MDRV_FRAMES_PER_SECOND(60)
3058 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3059 	MDRV_MACHINE_INIT(nmk16)
3060 
3061 	/* video hardware */
3062 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3063 	MDRV_SCREEN_SIZE(512, 256)
3064 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
3065 	MDRV_GFXDECODE(macross_gfxdecodeinfo)
3066 	MDRV_PALETTE_LENGTH(1024)
3067 
3068 	MDRV_VIDEO_START(gunnail)
3069 	MDRV_VIDEO_EOF(nmk)
3070 	MDRV_VIDEO_UPDATE(gunnail)
3071 
3072 	/* sound hardware */
3073 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3074 MACHINE_DRIVER_END
3075 
3076 
3077 static MACHINE_DRIVER_START( macross2 )
3078 
3079 	/* basic machine hardware */
3080 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
3081 	MDRV_CPU_MEMORY(macross2_readmem,macross2_writemem)
3082 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3083 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
3084 
3085 	MDRV_CPU_ADD(Z80, 4000000)
3086 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ? */
3087 	MDRV_CPU_MEMORY(macross2_sound_readmem,macross2_sound_writemem)
3088 	MDRV_CPU_PORTS(macross2_sound_readport,macross2_sound_writeport)
3089 
3090 	MDRV_FRAMES_PER_SECOND(57)
3091 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3092 	MDRV_MACHINE_INIT(nmk16)
3093 
3094 	/* video hardware */
3095 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3096 	MDRV_SCREEN_SIZE(512, 256)
3097 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
3098 	MDRV_GFXDECODE(macross2_gfxdecodeinfo)
3099 	MDRV_PALETTE_LENGTH(1024)
3100 
3101 	MDRV_VIDEO_START(macross2)
3102 	MDRV_VIDEO_EOF(nmk)
3103 	MDRV_VIDEO_UPDATE(macross)
3104 
3105 	/* sound hardware */
3106 	MDRV_SOUND_ADD(YM2203, ym2203_interface_15)
3107 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3108 MACHINE_DRIVER_END
3109 
3110 static MACHINE_DRIVER_START( tdragon2 )
3111 
3112 	/* basic machine hardware */
3113 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */
3114 	MDRV_CPU_MEMORY(macross2_readmem,macross2_writemem)
3115 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3116 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
3117 
3118 	MDRV_CPU_ADD(Z80, 4000000)
3119 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ? */
3120 	MDRV_CPU_MEMORY(macross2_sound_readmem,macross2_sound_writemem)
3121 	MDRV_CPU_PORTS(macross2_sound_readport,macross2_sound_writeport)
3122 
3123 	MDRV_FRAMES_PER_SECOND(57)
3124 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3125 	MDRV_MACHINE_INIT(nmk16)
3126 
3127 	/* video hardware */
3128 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3129 	MDRV_SCREEN_SIZE(512, 256)
3130 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
3131 	MDRV_GFXDECODE(macross2_gfxdecodeinfo)
3132 	MDRV_PALETTE_LENGTH(1024)
3133 
3134 	MDRV_VIDEO_START(tdragon2)
3135 	MDRV_VIDEO_EOF(nmk)
3136 	MDRV_VIDEO_UPDATE(macross)
3137 
3138 	/* sound hardware */
3139 	MDRV_SOUND_ADD(YM2203, ym2203_interface_15)
3140 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3141 MACHINE_DRIVER_END
3142 
3143 static MACHINE_DRIVER_START( raphero )
3144 
3145 	/* basic machine hardware */
3146 	MDRV_CPU_ADD(M68000, 14000000) /* 14 MHz measured */
3147 	MDRV_CPU_MEMORY(macross2_readmem,raphero_writemem)
3148 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3149 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
3150 
3151 //	MDRV_CPU_ADD(Z80, 4000000) // tmp90c841 ?
3152 //<ianpatt> looks like the tmp90c841 is a microcontroller from toshiba compatible with the z80 instruction set
3153 //<ianpatt> and luckily it isn't one of the versions with embedded ROM
3154 //	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ? */
3155 //	MDRV_CPU_MEMORY(macross2_sound_readmem,macross2_sound_writemem)
3156 //	MDRV_CPU_PORTS(macross2_sound_readport,macross2_sound_writeport)
3157 
3158 	MDRV_FRAMES_PER_SECOND(56) // measured
3159 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3160 	MDRV_MACHINE_INIT(nmk16)
3161 
3162 	/* video hardware */
3163 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3164 	MDRV_SCREEN_SIZE(512, 256)
3165 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
3166 	MDRV_GFXDECODE(macross2_gfxdecodeinfo)
3167 	MDRV_PALETTE_LENGTH(1024)
3168 
3169 	MDRV_VIDEO_START(macross2)
3170 	MDRV_VIDEO_EOF(nmk)
3171 	MDRV_VIDEO_UPDATE(macross)
3172 
3173 	/* sound hardware */
3174 	MDRV_SOUND_ADD(YM2203, ym2203_interface_15)
3175 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3176 MACHINE_DRIVER_END
3177 
3178 static MACHINE_DRIVER_START( bjtwin )
3179 
3180 	/* basic machine hardware */
3181 	MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz? It's a P12, but xtals are 10MHz and 16MHz */
3182 	MDRV_CPU_MEMORY(bjtwin_readmem,bjtwin_writemem)
3183 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3184 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ?? drives music */
3185 
3186 	MDRV_FRAMES_PER_SECOND(60)
3187 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3188 	MDRV_MACHINE_INIT(nmk16)
3189 
3190 	/* video hardware */
3191 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3192 	MDRV_SCREEN_SIZE(512, 256)
3193 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
3194 	MDRV_GFXDECODE(bjtwin_gfxdecodeinfo)
3195 	MDRV_PALETTE_LENGTH(1024)
3196 
3197 	MDRV_VIDEO_START(bjtwin)
3198 	MDRV_VIDEO_EOF(nmk)
3199 	MDRV_VIDEO_UPDATE(bjtwin)
3200 
3201 	/* sound hardware */
3202 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface_dual)
3203 MACHINE_DRIVER_END
3204 
3205 
3206 
3207 ROM_START ( urashima )
3208 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* 68000 code */
3209 	ROM_LOAD16_BYTE( "um-2.15d",  0x00000, 0x20000, CRC(a90a47e3) SHA1(2f912001e9177cce8c3795f3d299115b80fdca4e) )
3210 	ROM_LOAD16_BYTE( "um-1.15c",  0x00001, 0x20000, CRC(5f5c8f39) SHA1(cef663965c3112f87788d6a871e609c0b10ef9a2) )
3211 
3212 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3213 	ROM_LOAD( "um-5.22j",		0x000000, 0x020000, CRC(991776a2) SHA1(56740553d7d26aaeb9bec8557727030950bb01f7) )	/* 8x8 tiles */
3214 
3215 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* 16x16 Tiles */
3216 	ROM_LOAD( "um-7.4l",	0x000000, 0x080000, CRC(d2a68cfb) SHA1(eb6cb1fad306b697b2035a31ad48e8996722a032) )
3217 
3218 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* Maybe there are no Sprites? */
3219 	ROM_LOAD( "um-6.2l",	0x000000, 0x080000, CRC(076be5b5) SHA1(77444025f149a960137d3c79abecf9b30defa341) )
3220 
3221 	ROM_REGION( 0x0240, REGION_PROMS, 0 )
3222 	ROM_LOAD( "um-10.2b",      0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3223 	ROM_LOAD( "um-11.2c",      0x0100, 0x0100, CRC(ff5660cf) SHA1(a4635dcf9d6dd637ea4f36f1ad233db0bd039731) )	/* unknown */
3224 	ROM_LOAD( "um-12.20c",     0x0200, 0x0020, CRC(bdb66b02) SHA1(8755244de638d7e835e35e08c62b0612958e6ca5) )	/* unknown */
3225 	ROM_LOAD( "um-13.10l",     0x0220, 0x0020, CRC(4ce07ec0) SHA1(5f5744ddc7f258307f036fde4c0a8e6271b2d1f9) )	/* unknown */
3226 
3227 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3228 	ROM_LOAD( "um-3.22c",		0x000000, 0x080000, CRC(9fd8c8fa) SHA1(0346f74c03a4daa7a84b64c9edf0e54297c82fd9) )
3229 ROM_END
3230 
3231 ROM_START( vandyke )
3232 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* 68000 code */
3233 	ROM_LOAD16_BYTE( "vdk-1.16",  0x00000, 0x20000, CRC(c1d01c59) SHA1(04a7fd31ca4d87d078070390660edf08bf1d96b5) )
3234 	ROM_LOAD16_BYTE( "vdk-2.15",  0x00001, 0x20000, CRC(9d741cc2) SHA1(2d101044fba5fc5b7d63869a0a053c42fdc2598b) )
3235 
3236 	ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */
3237 	ROM_LOAD( "vdk-4.127",    0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) )
3238 
3239 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )
3240 	ROM_LOAD( "vdk-3.222",		0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) )	/* 8x8 tiles */
3241 
3242 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3243 	ROM_LOAD( "vdk-01.13",		0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) )	/* 16x16 tiles */
3244 
3245 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
3246 	ROM_LOAD16_BYTE( "vdk-07.202",	0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) )	/* Sprites */
3247 	ROM_LOAD16_BYTE( "vdk-06.203",	0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) )	/* Sprites */
3248 	ROM_LOAD16_BYTE( "vdk-04.2-1",	0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) )	/* Sprites */
3249 	ROM_LOAD16_BYTE( "vdk-05.3-1",	0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) )	/* Sprites */
3250 
3251 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3252 	ROM_LOAD( "vdk-02.126",     0x000000, 0x080000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) )	/* all banked */
3253 
3254 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3255 	ROM_LOAD( "vdk-03.165",     0x000000, 0x080000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) )	/* all banked */
3256 
3257 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3258 	ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) )	/* V-sync hw (unused) */
3259 	ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* H-sync hw (unused) */
3260 ROM_END
3261 
3262 ROM_START( vandyjal )
3263 	ROM_REGION( 0x40000, REGION_CPU1, 0 )  /* 68000 code */
3264 	ROM_LOAD16_BYTE( "vdk-1.16",   0x00000, 0x20000, CRC(c1d01c59) SHA1(04a7fd31ca4d87d078070390660edf08bf1d96b5) )
3265 	ROM_LOAD16_BYTE( "jaleco2.15", 0x00001, 0x20000, CRC(170e4d2e) SHA1(6009d19d30e345fea93e039d165061e2b20ff058) )
3266 
3267 	ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */
3268 	ROM_LOAD( "vdk-4.127",    0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) )
3269 
3270 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )
3271 	ROM_LOAD( "vdk-3.222",		0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) )	/* 8x8 tiles */
3272 
3273 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3274 	ROM_LOAD( "vdk-01.13",		0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) )	/* 16x16 tiles */
3275 
3276 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
3277 	ROM_LOAD16_BYTE( "vdk-07.202",	0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) )	/* Sprites */
3278 	ROM_LOAD16_BYTE( "vdk-06.203",	0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) )	/* Sprites */
3279 	ROM_LOAD16_BYTE( "vdk-04.2-1",	0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) )	/* Sprites */
3280 	ROM_LOAD16_BYTE( "vdk-05.3-1",	0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) )	/* Sprites */
3281 
3282 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3283 	ROM_LOAD( "vdk-02.126",     0x000000, 0x080000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) )	/* all banked */
3284 
3285 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3286 	ROM_LOAD( "vdk-03.165",     0x000000, 0x080000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) )	/* all banked */
3287 
3288 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3289 	ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) )	/* V-sync hw (unused) */
3290 	ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* H-sync hw (unused) */
3291 ROM_END
3292 
3293 ROM_START( tharrier )
3294 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3295 	ROM_LOAD16_BYTE( "2" ,   0x00000, 0x20000, CRC(78923aaa) SHA1(28338f49581180604403e1bd200f524fc4cb8b9f) )
3296 	ROM_LOAD16_BYTE( "3" ,   0x00001, 0x20000, CRC(99cea259) SHA1(75abfb08b2358dd13809ade5a2dfffeb8b8df82c) )
3297 
3298 	ROM_REGION( 0x010000, REGION_CPU2, 0 )
3299 	ROM_LOAD( "12" ,   0x00000, 0x10000, CRC(b959f837) SHA1(073b14935e7d5b0cad19a3471fd26e9e3a363827) )
3300 
3301 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3302 	ROM_LOAD( "1" ,        0x000000, 0x10000, CRC(c7402e4a) SHA1(25cade2f8d4784887f0f51beb48b1e6b695629c2) )
3303 
3304 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3305 	ROM_LOAD( "89050-4" ,  0x000000, 0x80000, CRC(64d7d687) SHA1(dcfeac71fd577439e31cc1186b720388fbdc6ca0) )
3306 
3307 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3308 	ROM_LOAD16_BYTE( "89050-13",	0x000000, 0x80000, CRC(24db3fa4) SHA1(e0d76c479dfcacf03c04ec4760caecf3fd1e2ff7) )	/* Sprites */
3309 	ROM_LOAD16_BYTE( "89050-17",	0x000001, 0x80000, CRC(7f715421) SHA1(bde5e0e1e22519e51ca0fd806909e90cc5b1c5b8) )
3310 
3311 	ROM_REGION(0x80000, REGION_SOUND1, 0 )	/* Oki sample data */
3312 	ROM_LOAD( "89050-8",   0x00000, 0x80000, CRC(11ee4c39) SHA1(163295c385cff963a5bf87dc3e7bef6019e10ba8) )
3313 
3314 	ROM_REGION(0x80000, REGION_SOUND2, 0 )	/* Oki sample data */
3315 	ROM_LOAD( "89050-10",  0x00000, 0x80000, CRC(893552ab) SHA1(b0a34291f4e482858ed295203ae031b17c2dbabc) )
3316 
3317 	ROM_REGION( 0x140, REGION_PROMS, 0 )
3318 	ROM_LOAD( "21.bpr",  0x00000, 0x100, CRC(fcd5efea) SHA1(cbda6b14127dabd1788cc256743cf62efaa5e8c4) )
3319 	ROM_LOAD( "22.bpr",  0x00000, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )
3320 	ROM_LOAD( "23.bpr",  0x00000, 0x020, CRC(fc3569f4) SHA1(e1c498085e4ae9d0a995c94530544b0a5b760fbf) )
3321 	ROM_LOAD( "24.bpr",  0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) )
3322 	ROM_LOAD( "25.bpr",  0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) /* same as 24.bin */
3323 	ROM_LOAD( "26.bpr",  0x00120, 0x020, CRC(0cbfb33e) SHA1(5dfee031a0a14bcd667fe2af2fa9cdfac3941d22) )
3324 ROM_END
3325 
3326 ROM_START( tharierj )
3327 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3328 	ROM_LOAD16_BYTE( "2.bin" ,   0x00000, 0x20000, CRC(f3887a44) SHA1(4e5b660d33ba1d1e00263030efa67e2db376a234) )
3329 	ROM_LOAD16_BYTE( "3.bin" ,   0x00001, 0x20000, CRC(65c247f6) SHA1(9f35f2b6f54814b4c4d23e2d78db8043e678fef2) )
3330 
3331 	ROM_REGION( 0x010000, REGION_CPU2, 0 )
3332 	ROM_LOAD( "12" ,   0x00000, 0x10000, CRC(b959f837) SHA1(073b14935e7d5b0cad19a3471fd26e9e3a363827) )
3333 
3334 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3335 	ROM_LOAD( "1.bin" ,        0x000000, 0x10000, CRC(005c26c3) SHA1(ee88d8f956b9b0a8ba5fb49c5c05f6ed6f01729c) )
3336 
3337 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3338 	ROM_LOAD( "89050-4" ,  0x000000, 0x80000, CRC(64d7d687) SHA1(dcfeac71fd577439e31cc1186b720388fbdc6ca0) )
3339 
3340 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3341 	ROM_LOAD16_BYTE( "89050-13",	0x000000, 0x80000, CRC(24db3fa4) SHA1(e0d76c479dfcacf03c04ec4760caecf3fd1e2ff7) )	/* Sprites */
3342 	ROM_LOAD16_BYTE( "89050-17",	0x000001, 0x80000, CRC(7f715421) SHA1(bde5e0e1e22519e51ca0fd806909e90cc5b1c5b8) )
3343 
3344 	ROM_REGION(0x80000, REGION_SOUND1, 0 )	/* Oki sample data */
3345 	ROM_LOAD( "89050-8",   0x00000, 0x80000, CRC(11ee4c39) SHA1(163295c385cff963a5bf87dc3e7bef6019e10ba8) )
3346 
3347 	ROM_REGION(0x80000, REGION_SOUND2, 0 )	/* Oki sample data */
3348 	ROM_LOAD( "89050-10",  0x00000, 0x80000, CRC(893552ab) SHA1(b0a34291f4e482858ed295203ae031b17c2dbabc) )
3349 
3350 	ROM_REGION( 0x140, REGION_PROMS, 0 )
3351 	ROM_LOAD( "21.bpr",  0x00000, 0x100, CRC(fcd5efea) SHA1(cbda6b14127dabd1788cc256743cf62efaa5e8c4) )
3352 	ROM_LOAD( "22.bpr",  0x00000, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )
3353 	ROM_LOAD( "23.bpr",  0x00000, 0x020, CRC(fc3569f4) SHA1(e1c498085e4ae9d0a995c94530544b0a5b760fbf) )
3354 	ROM_LOAD( "24.bpr",  0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) )
3355 	ROM_LOAD( "25.bpr",  0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) /* same as 24.bin */
3356 	ROM_LOAD( "26.bpr",  0x00120, 0x020, CRC(0cbfb33e) SHA1(5dfee031a0a14bcd667fe2af2fa9cdfac3941d22) )
3357 ROM_END
3358 
3359 ROM_START( mustang )
3360 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3361 	ROM_LOAD16_BYTE( "2.bin",    0x00000, 0x20000, CRC(bd9f7c89) SHA1(a0af46a8ff82b90bece2515e1bd74e7a7ddf5379) )
3362 	ROM_LOAD16_BYTE( "3.bin",    0x00001, 0x20000, CRC(0eec36a5) SHA1(c549fbcd3e2741a6d0f2633ded6a85909d37f633) )
3363 
3364 	ROM_REGION(0x10000, REGION_CPU2, 0 )	/* 64k for sound cpu code */
3365 	ROM_LOAD( "90058-7",    0x00000, 0x10000, CRC(920a93c8) SHA1(7660ca419e2fd98848ae7f5994994eaed023151e) )
3366 
3367 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3368 	ROM_LOAD( "90058-1",    0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) )
3369 
3370 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3371 	ROM_LOAD( "90058-4",    0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) )
3372 
3373 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3374 	ROM_LOAD16_BYTE( "90058-8",    0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) )
3375 	ROM_LOAD16_BYTE( "90058-9",    0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) )
3376 
3377 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3378 	ROM_LOAD( "90058-5",    0x000000, 0x80000, CRC(c60c883e) SHA1(8a01950cad820b2e781ec81cd12737829edc4f19) )
3379 
3380 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3381 	ROM_LOAD( "90058-6",    0x000000, 0x80000, CRC(233c1776) SHA1(7010a2f914611698a65bf4f22bc1753a9ed26277) )
3382 
3383 	ROM_REGION( 0x200, REGION_PROMS, 0 )
3384 	ROM_LOAD( "10.bpr",  0x00000, 0x100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */
3385 	ROM_LOAD( "90058-11",  0x00100, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */
3386 ROM_END
3387 
3388 ROM_START( mustangs )
3389 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3390 	ROM_LOAD16_BYTE( "90058-2",    0x00000, 0x20000, CRC(833aa458) SHA1(a9924f7044397e3a36c674b064173ffae80a79ec) )
3391 	ROM_LOAD16_BYTE( "90058-3",    0x00001, 0x20000, CRC(e4b80f06) SHA1(ce589cebb5ea85c89eb44796b821a4bd0c44b9a8) )
3392 
3393 	ROM_REGION(0x10000, REGION_CPU2, 0 )	/* 64k for sound cpu code */
3394 	ROM_LOAD( "90058-7",    0x00000, 0x10000, CRC(920a93c8) SHA1(7660ca419e2fd98848ae7f5994994eaed023151e) )
3395 
3396 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3397 	ROM_LOAD( "90058-1",    0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) )
3398 
3399 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3400 	ROM_LOAD( "90058-4",    0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) )
3401 
3402 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3403 	ROM_LOAD16_BYTE( "90058-8",    0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) )
3404 	ROM_LOAD16_BYTE( "90058-9",    0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) )
3405 
3406 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3407 	ROM_LOAD( "90058-5",    0x000000, 0x80000, CRC(c60c883e) SHA1(8a01950cad820b2e781ec81cd12737829edc4f19) )
3408 
3409 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3410 	ROM_LOAD( "90058-6",    0x000000, 0x80000, CRC(233c1776) SHA1(7010a2f914611698a65bf4f22bc1753a9ed26277) )
3411 
3412 	ROM_REGION( 0x200, REGION_PROMS, 0 )
3413 	ROM_LOAD( "90058-10",  0x00000, 0x100, CRC(de156d99) SHA1(07b70deca74e23bab7c13e5e9aee32d0dbb06509) ) /* unknown */
3414 	ROM_LOAD( "90058-11",  0x00100, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */
3415 ROM_END
3416 
3417 ROM_START( mustangb )
3418 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3419 	ROM_LOAD16_BYTE( "mustang.14",    0x00000, 0x20000, CRC(13c6363b) SHA1(e2c1985d1c8ec9751c47cd7e1b85e007f3aeb6fd) )
3420 	ROM_LOAD16_BYTE( "mustang.13",    0x00001, 0x20000, CRC(d8ccce31) SHA1(e8e3e34a480fcd298f11833c6c968c5df77c0e2a) )
3421 
3422 	ROM_REGION(0x20000, REGION_CPU2, 0 )	/* 64k for sound cpu code */
3423 	ROM_LOAD( "mustang.16",    0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) )
3424 	ROM_CONTINUE(             0x010000, 0x08000 )
3425 	ROM_COPY( REGION_CPU2, 0, 0x018000, 0x08000 )
3426 
3427 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3428 	ROM_LOAD( "90058-1",    0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) )
3429 
3430 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3431 	ROM_LOAD( "90058-4",    0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) )
3432 
3433 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3434 	ROM_LOAD16_BYTE( "90058-8",    0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) )
3435 	ROM_LOAD16_BYTE( "90058-9",    0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) )
3436 
3437 	ROM_REGION( 0x010000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3438 	ROM_LOAD( "mustang.17",    0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) )
3439 ROM_END
3440 
3441 ROM_START( acrobatm )
3442 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3443 	ROM_LOAD16_BYTE( "02_ic100.bin",    0x00000, 0x20000, CRC(3fe487f4) SHA1(29aba5debcfddff14e584a1c7c5a403e85fc6ec0) )
3444 	ROM_LOAD16_BYTE( "01_ic101.bin",    0x00001, 0x20000, CRC(17175753) SHA1(738865744badb78a0414ff650a94b97e516d0ea0) )
3445 
3446 	ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
3447 	ROM_LOAD( "03_ic79.bin",   0x000000, 0x10000, CRC(d86c186e) SHA1(2e263d4780f2ba7acc7faa88472c85216fbae6a3) ) /* Characters */
3448 
3449 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3450 	ROM_LOAD( "09_ic8.bin",  0x000000, 0x100000, CRC(7c12afed) SHA1(ae793e41599355a126cbcce91cd2c9f212d21853) ) /* Foreground */
3451 
3452 	ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE )
3453 	ROM_LOAD( "07_ic42.bin",  0x000000, 0x100000, CRC(5672bdaa) SHA1(5401a104d72904de19b73125451767bc63d36809) ) /* Sprites */
3454 	ROM_LOAD( "08_ic29.bin",  0x100000, 0x080000, CRC(b4c0ace3) SHA1(5d638781d588cfbf4025d002d5a2309049fe1ee5) )
3455 
3456 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
3457 	ROM_LOAD( "04_ic74.bin",    0x00000, 0x10000, CRC(176905fb) SHA1(135a184f44bedd93b293b9124fa0bd725e0ee93b) )
3458 
3459 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3460 	ROM_LOAD( "05_ic54.bin",    0x00000, 0x80000, CRC(3b8c2b0e) SHA1(72491da32512823540b67dc5027f21c74af08c7d) )
3461 
3462 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3463 	ROM_LOAD( "06_ic53.bin",    0x00000, 0x80000, CRC(c1517cd4) SHA1(5a91ddc608c7a6fbdd9f93e503d39eac02ef04a4) )
3464 
3465 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3466 	ROM_LOAD( "10_ic81.bin",    0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3467 	ROM_LOAD( "11_ic80.bin",    0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) )	/* unknown */
3468 ROM_END
3469 
3470 ROM_START( bioship )
3471 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3472 	ROM_LOAD16_BYTE( "2",    0x00000, 0x20000, CRC(acf56afb) SHA1(0e8ec494ab406cfee24cf586059878332265de75) )
3473 	ROM_LOAD16_BYTE( "1",    0x00001, 0x20000, CRC(820ef303) SHA1(d2ef29557b05abf8ae79a2c7ce0d15a91b36eeff) )
3474 
3475 	ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
3476 	ROM_LOAD( "7",         0x000000, 0x10000, CRC(2f3f5a10) SHA1(c1006eb755eec75f69dc7972d78d0c59088eb140) ) /* Characters */
3477 
3478 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
3479 	ROM_LOAD( "sbs-g.01",  0x000000, 0x80000, CRC(21302e78) SHA1(a17939c0529c8e9ec2a4edd5e6be4bcb67f86787) ) /* Foreground */
3480 
3481 	ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE )
3482 	ROM_LOAD( "sbs-g.03",  0x000000, 0x80000, CRC(60e00d7b) SHA1(36fd02a7842ce1e79b8c4cfbe9c97052bef4aa62) ) /* Sprites */
3483 
3484 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE )
3485 	ROM_LOAD( "sbs-g.02",  0x000000, 0x80000, CRC(f31eb668) SHA1(67d6d56ea203edfbae4db658399bf61f14134206) ) /* Background */
3486 
3487 	ROM_REGION16_BE(0x20000, REGION_GFX5, 0 )	/* Background tilemaps (used at runtime) */
3488 	ROM_LOAD16_BYTE( "8",    0x00000, 0x10000, CRC(75a46fea) SHA1(3d78cfc482b42779bb5aedb722c4a39cbc71bd10) )
3489 	ROM_LOAD16_BYTE( "9",    0x00001, 0x10000, CRC(d91448ee) SHA1(7f84ca3605edcab4bf226dab8dd7218cd5c3e5a4) )
3490 
3491 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
3492 	ROM_LOAD( "6",    0x00000, 0x10000, CRC(5f39a980) SHA1(2a440f86685249f9c317634cad8cdedc8a8f1491) )
3493 
3494 	ROM_REGION(0x80000, REGION_SOUND1, 0 )	/* Oki sample data */
3495 	ROM_LOAD( "sbs-g.04",    0x00000, 0x80000, CRC(7c74cc4e) SHA1(92097b372eacabdb9e8e261b0bc4223821ff9273) )
3496 
3497 	ROM_REGION(0x80000, REGION_SOUND2, 0 )	/* Oki sample data */
3498 	ROM_LOAD( "sbs-g.05",    0x00000, 0x80000, CRC(f0a782e3) SHA1(d572226b8e597f1c34d246cb284e047a6e2d9290) )
3499 ROM_END
3500 
3501 ROM_START( blkheart )
3502 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3503 	ROM_LOAD16_BYTE( "blkhrt.7",  0x00000, 0x20000, CRC(5bd248c0) SHA1(0649f4f8682404aeb3fc80643fcabc2d7836bb23) )
3504 	ROM_LOAD16_BYTE( "blkhrt.6",  0x00001, 0x20000, CRC(6449e50d) SHA1(d8cd126d921c95478346da96c20da01212395d77) )
3505 
3506 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Code for (unknown?) CPU */
3507 	ROM_LOAD( "4.bin",      0x00000, 0x10000, CRC(7cefa295) SHA1(408f46613b3620cee31dec43281688d231b47ddd) )
3508 
3509 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3510 	ROM_LOAD( "3.bin",    0x000000, 0x020000, CRC(a1ab3a16) SHA1(3fb57c9d2ef94ee188cbadd70378ae6f4407e71d) )	/* 8x8 tiles */
3511 
3512 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3513 	ROM_LOAD( "90068-5.bin", 0x000000, 0x100000, CRC(a1ab4f24) SHA1(b9f8104d53eda87ccd4000d049ee74ac9aa20b3e) )	/* 16x16 tiles */
3514 
3515 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3516 	ROM_LOAD16_WORD_SWAP( "90068-8.bin", 0x000000, 0x100000, CRC(9d3204b2) SHA1(b37a246ad37f9ce092b371f01122ddf2bc8b2db6) )	/* Sprites */
3517 
3518 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3519 	ROM_LOAD( "90068-1.bin", 0x000000, 0x080000, CRC(e7af69d2) SHA1(da050880e186954bcf0e0adf00750dd5a371551b) )	/* all banked */
3520 
3521 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3522 	ROM_LOAD( "90068-2.bin", 0x000000, 0x080000, CRC(3a583184) SHA1(9226f1ea7725e4b48bb055d1c17389cf960d75f8) )	/* all banked */
3523 
3524 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3525 	ROM_LOAD( "9.bpr",      0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) )	/* unknown */
3526 	ROM_LOAD( "10.bpr",     0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3527 ROM_END
3528 
3529 ROM_START( blkhearj )
3530 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3531 	ROM_LOAD16_BYTE( "7.bin",  0x00000, 0x20000, CRC(e0a5c667) SHA1(3ef39b2dc1f7ffdddf586f0b3080ecd1f362ec37) )
3532 	ROM_LOAD16_BYTE( "6.bin",  0x00001, 0x20000, CRC(7cce45e8) SHA1(72491e30d1f9be2eede21fdde5a7484d4f65cfbf) )
3533 
3534 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Code for (unknown?) CPU */
3535 	ROM_LOAD( "4.bin",      0x00000, 0x10000, CRC(7cefa295) SHA1(408f46613b3620cee31dec43281688d231b47ddd) )
3536 
3537 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3538 	ROM_LOAD( "3.bin",    0x000000, 0x020000, CRC(a1ab3a16) SHA1(3fb57c9d2ef94ee188cbadd70378ae6f4407e71d) )	/* 8x8 tiles */
3539 
3540 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3541 	ROM_LOAD( "90068-5.bin", 0x000000, 0x100000, CRC(a1ab4f24) SHA1(b9f8104d53eda87ccd4000d049ee74ac9aa20b3e) )	/* 16x16 tiles */
3542 
3543 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3544 	ROM_LOAD16_WORD_SWAP( "90068-8.bin", 0x000000, 0x100000, CRC(9d3204b2) SHA1(b37a246ad37f9ce092b371f01122ddf2bc8b2db6) )	/* Sprites */
3545 
3546 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3547 	ROM_LOAD( "90068-1.bin", 0x000000, 0x080000, CRC(e7af69d2) SHA1(da050880e186954bcf0e0adf00750dd5a371551b) )	/* all banked */
3548 
3549 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3550 	ROM_LOAD( "90068-2.bin", 0x000000, 0x080000, CRC(3a583184) SHA1(9226f1ea7725e4b48bb055d1c17389cf960d75f8) )	/* all banked */
3551 
3552 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3553 	ROM_LOAD( "9.bpr",      0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) )	/* unknown */
3554 	ROM_LOAD( "10.bpr",     0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3555 ROM_END
3556 
3557 ROM_START( tdragon )
3558 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code -bitswapped- */
3559 	ROM_LOAD16_BYTE( "thund.8",  0x00000, 0x20000, CRC(edd02831) SHA1(d6bc8d2c37707768a8bf666090f33eea12dda336) )
3560 	ROM_LOAD16_BYTE( "thund.7",  0x00001, 0x20000, CRC(52192fe5) SHA1(9afef197410e7feb71dc48003e181fbbaf5c99b2) )
3561 
3562 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3563 	ROM_LOAD( "thund.6",		0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) )	/* 8x8 tiles */
3564 
3565 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3566 	ROM_LOAD( "thund.5",		0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) )	/* 16x16 tiles */
3567 
3568 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3569 	ROM_LOAD16_WORD_SWAP( "thund.4",	0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) )	/* Sprites */
3570 
3571 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* Code for (unknown?) CPU */
3572 	ROM_LOAD( "thund.1",      0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) )
3573 
3574 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* OKIM6295 samples? */
3575 	ROM_LOAD( "thund.2",     0x00000, 0x80000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) )
3576 	ROM_LOAD( "thund.3",     0x80000, 0x80000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) )
3577 
3578 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3579 	ROM_LOAD( "9.bin",  0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3580 	ROM_LOAD( "10.bin", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) )	/* unknown */
3581 ROM_END
3582 
3583 ROM_START( tdragonb )
3584 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code -bitswapped- */
3585 	ROM_LOAD16_BYTE( "td_04.bin",  0x00000, 0x20000, CRC(e8a62d3e) SHA1(dd221bcd80149fffb1bdddfd3d394996bd2f8ec5) )
3586 	ROM_LOAD16_BYTE( "td_03.bin",  0x00001, 0x20000, CRC(2fa1aa04) SHA1(ddf2b2ff179c31a1677d15d0403b00d77f9f0a6c) )
3587 
3588 	ROM_REGION(0x20000, REGION_CPU2, 0 )	/* 64k for sound cpu code */
3589 	ROM_LOAD( "td_02.bin",    0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) )
3590 	ROM_CONTINUE(             0x010000, 0x08000 )
3591 	ROM_COPY( REGION_CPU2, 0, 0x018000, 0x08000 )
3592 
3593 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3594 	ROM_LOAD( "td_08.bin",		0x000000, 0x20000, CRC(5144dc69) SHA1(e64d88dc0e7672f811868621f74ec209aeafbc6f) )	/* 8x8 tiles */
3595 
3596 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3597 	ROM_LOAD( "td_06.bin",		0x000000, 0x80000, CRC(c1be8a4d) SHA1(6269fd7fccf1546a01bab755d8b6b7dcffc1166e) )	/* 16x16 tiles */
3598 	ROM_LOAD( "td_07.bin",		0x080000, 0x80000, CRC(2c3e371f) SHA1(77956425661f4f81c370fff63845d42057fcaec3) )	/* 16x16 tiles */
3599 
3600 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3601 	ROM_LOAD16_BYTE( "td_10.bin",	0x000000, 0x080000, CRC(bfd0ec5d) SHA1(7983661f74e8695f56e45c6e5c278d7d86431052) )	/* Sprites */
3602 	ROM_LOAD16_BYTE( "td_09.bin",	0x000001, 0x080000, CRC(b6e074eb) SHA1(bdde068f03415391b5edaa42f1389df0f7eef899) )	/* Sprites */
3603 
3604 	ROM_REGION( 0x010000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3605 	ROM_LOAD( "td_01.bin",     0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) )
3606 ROM_END
3607 
3608 ROM_START( ssmissin )
3609 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3610 	ROM_LOAD16_BYTE( "ssm14.165",    0x00001, 0x20000, CRC(eda61b74) SHA1(6247682c27d2be7dff1fad407ccf86fe2a25f11c) )
3611 	ROM_LOAD16_BYTE( "ssm15.166",    0x00000, 0x20000, CRC(aff15927) SHA1(258c2722ac7ca50360bfefa7b4e621373975a835) )
3612 
3613 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3614 	ROM_LOAD( "ssm16.172",		0x000000, 0x20000, CRC(5cf6eb1f) SHA1(d406b11cf06ae1afc57a50685689e358e5677a45) )	/* 8x8 tiles */
3615 
3616 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3617 	ROM_LOAD( "ssm17.147",		0x000000, 0x080000, CRC(c9c28455) SHA1(6a3e754aff3f368bde0e8905c33074084ad6ac30) )	/* 16x16 tiles */
3618 	ROM_LOAD( "ssm18.148",		0x080000, 0x080000, CRC(ebfdaad6) SHA1(0814cdfe83f36a7dd7b5416f9d0478192733dac0) )	/* 16x16 tiles */
3619 
3620 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3621 	ROM_LOAD16_BYTE( "ssm20.34",		0x000001, 0x080000, CRC(a0c16c4d) SHA1(e198f69b4d8660e33851a2631b5411611b1b2ea6) )	/* 16x16 tiles */
3622 	ROM_LOAD16_BYTE( "ssm19.33",		0x000000, 0x080000, CRC(b1943657) SHA1(97c05483b634315af338434bd2f565cc151a7283) )	/* 16x16 tiles */
3623 
3624 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* Code for Sound CPU */
3625 	ROM_LOAD( "ssm11.188",      0x00000, 0x08000, CRC(8be6dce3) SHA1(d9a235c36e0bc44025c291247d6b0b753e4bc0c8) )
3626 
3627 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* OKIM6295 samples? */
3628 	ROM_LOAD( "ssm13.190",     0x00000, 0x20000, CRC(618f66f0) SHA1(97637a03d9fd82305e872e9bfa489862c974bb6c) )
3629 	ROM_LOAD( "ssm12.189",     0x80000, 0x80000, CRC(e8219c83) SHA1(68673d071a58ca2bfd2de344a830417d10bc5757) ) /* banked */
3630 
3631 	ROM_REGION( 0x0300, REGION_PROMS, 0 )
3632 	ROM_LOAD( "ssm-pr2.113",  0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3633 	ROM_LOAD( "ssm-pr1.114",  0x0100, 0x0200, CRC(ed0bd072) SHA1(66a6d435d8587c82ae96dd09c39ed5749fe00e24) )	/* unknown */
3634 ROM_END
3635 
3636 
3637 ROM_START( strahl )
3638 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3639 	ROM_LOAD16_BYTE( "strahl-2.82", 0x00000, 0x20000, CRC(c9d008ae) SHA1(e9218a3143d5887e702df051354a9083a806c69c) )
3640 	ROM_LOAD16_BYTE( "strahl-1.83", 0x00001, 0x20000, CRC(afc3c4d6) SHA1(ab3dd7db692eb01e3a87f4216d322a702f3beaad) )
3641 
3642 	ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
3643 	ROM_LOAD( "strahl-3.73",  0x000000, 0x10000, CRC(2273b33e) SHA1(fa53e91b80dfea3f8b2c1f0ce66e5c6920c4960f) ) /* Characters */
3644 
3645 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
3646 	ROM_LOAD( "str7b2r0.275", 0x000000, 0x40000, CRC(5769e3e1) SHA1(7d7a16b11027d0a7618df1ec1e3484224b772e90) ) /* Tiles */
3647 
3648 	ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE )
3649 	ROM_LOAD( "strl3-01.32",  0x000000, 0x80000, CRC(d8337f15) SHA1(4df23fff2506b66a94dae4e0cf7d25499936b942) ) /* Sprites */
3650 	ROM_LOAD( "strl4-02.57",  0x080000, 0x80000, CRC(2a38552b) SHA1(82335fc6aa3de9145dd84952e5ed423493bf7141) )
3651 	ROM_LOAD( "strl5-03.58",  0x100000, 0x80000, CRC(a0e7d210) SHA1(96a762a3a1cdeaa91bde50429e0ac665fb81190b) )
3652 
3653 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE )
3654 	ROM_LOAD( "str6b1w1.776", 0x000000, 0x80000, CRC(bb1bb155) SHA1(83a02e89180e15f0e7817e0e92b4bf4e209bb69a) ) /* Tiles */
3655 
3656 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
3657 	ROM_LOAD( "strahl-4.66",    0x00000, 0x10000, CRC(60a799c4) SHA1(8ade3cf827a389f7cb4080957dc4d67077ea4166) )
3658 
3659 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* Oki sample data */
3660 	ROM_LOAD( "str8pmw1.540",    0x00000, 0x80000, CRC(01d6bb6a) SHA1(b157f6f921483ed8067a7e13e370f73fdb60d136) )
3661 
3662 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* Oki sample data */
3663 	ROM_LOAD( "str9pew1.639",    0x00000, 0x80000, CRC(6bb3eb9f) SHA1(9c1394df4f8a08f9098c85eb3d38fb862d6eabbb) )
3664 ROM_END
3665 
3666 ROM_START( strahla )
3667 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
3668 	ROM_LOAD16_BYTE( "rom2", 0x00000, 0x20000, CRC(f80a22ef) SHA1(22099eb0bbb445702e0276713c3e48d60de60c30) )
3669 	ROM_LOAD16_BYTE( "rom1", 0x00001, 0x20000, CRC(802ecbfc) SHA1(cc776023c7bd6b6d6af9659a0c822a2887e50199) )
3670 
3671 	ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
3672 	ROM_LOAD( "strahl-3.73",  0x000000, 0x10000, CRC(2273b33e) SHA1(fa53e91b80dfea3f8b2c1f0ce66e5c6920c4960f) ) /* Characters */
3673 
3674 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
3675 	ROM_LOAD( "str7b2r0.275", 0x000000, 0x40000, CRC(5769e3e1) SHA1(7d7a16b11027d0a7618df1ec1e3484224b772e90) ) /* Tiles */
3676 
3677 	ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE )
3678 	ROM_LOAD( "strl3-01.32",  0x000000, 0x80000, CRC(d8337f15) SHA1(4df23fff2506b66a94dae4e0cf7d25499936b942) ) /* Sprites */
3679 	ROM_LOAD( "strl4-02.57",  0x080000, 0x80000, CRC(2a38552b) SHA1(82335fc6aa3de9145dd84952e5ed423493bf7141) )
3680 	ROM_LOAD( "strl5-03.58",  0x100000, 0x80000, CRC(a0e7d210) SHA1(96a762a3a1cdeaa91bde50429e0ac665fb81190b) )
3681 
3682 	ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE )
3683 	ROM_LOAD( "str6b1w1.776", 0x000000, 0x80000, CRC(bb1bb155) SHA1(83a02e89180e15f0e7817e0e92b4bf4e209bb69a) ) /* Tiles */
3684 
3685 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
3686 	ROM_LOAD( "strahl-4.66",    0x00000, 0x10000, CRC(60a799c4) SHA1(8ade3cf827a389f7cb4080957dc4d67077ea4166) )
3687 
3688 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* Oki sample data */
3689 	ROM_LOAD( "str8pmw1.540",    0x00000, 0x80000, CRC(01d6bb6a) SHA1(b157f6f921483ed8067a7e13e370f73fdb60d136) )
3690 
3691 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* Oki sample data */
3692 	ROM_LOAD( "str9pew1.639",    0x00000, 0x80000, CRC(6bb3eb9f) SHA1(9c1394df4f8a08f9098c85eb3d38fb862d6eabbb) )
3693 ROM_END
3694 
3695 ROM_START( hachamf )
3696 	ROM_REGION( 0x40000, REGION_CPU1, 0 )		/* 68000 code */
3697 	ROM_LOAD16_BYTE( "hmf_07.rom",  0x00000, 0x20000, CRC(9d847c31) SHA1(1d370d8db9cadadb9c2cb213e32f681947d81b7f) )
3698 	ROM_LOAD16_BYTE( "hmf_06.rom",  0x00001, 0x20000, CRC(de6408a0) SHA1(2df77fecd44d2d8b0444abd4545923213ed76b2d) )
3699 
3700 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* unknown  - sound cpu ?????? */
3701 	ROM_LOAD( "hmf_01.rom",  0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) )
3702 
3703 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3704 	ROM_LOAD( "hmf_05.rom",  0x000000, 0x020000, CRC(29fb04a2) SHA1(9654b90a66d0e2a0f9cd369cab29cdd0c6f77869) )	/* 8x8 tiles */
3705 
3706 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
3707 	ROM_LOAD( "hmf_04.rom",  0x000000, 0x080000, CRC(05a624e3) SHA1(e1b686b36c0adedfddf70eeb6411671bbcd897d8) )	/* 16x16 tiles */
3708 
3709 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3710 	ROM_LOAD16_WORD_SWAP( "hmf_08.rom",  0x000000, 0x100000, CRC(7fd0f556) SHA1(d1b4bec0946869d3d7bcb870d9ae3bd17395a231) )	/* Sprites */
3711 
3712 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3713 	ROM_LOAD( "hmf_02.rom",  0x000000, 0x080000, CRC(3f1e67f2) SHA1(413e78587d8a043a0eb94447313ba1b3c5b35be5) )
3714 
3715 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3716 	ROM_LOAD( "hmf_03.rom",  0x000000, 0x080000, CRC(b25ed93b) SHA1(d7bc686bbccf982f40420a11158aa8e5dd4207c5) )
3717 ROM_END
3718 
3719 ROM_START( macross )
3720 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3721 	ROM_LOAD16_WORD_SWAP( "921a03",        0x00000, 0x80000, CRC(33318d55) SHA1(c99f85e09bd334dc8ce138b08cbed2331b0d67dd) )
3722 
3723 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* sound program (unknown CPU) */
3724 	ROM_LOAD( "921a02",      0x00000, 0x10000, CRC(77c082c7) SHA1(be07aa14d0116f830f98e11a19f1debb48a5230e) )
3725 
3726 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3727 	ROM_LOAD( "921a01",      0x000000, 0x020000, CRC(bbd8242d) SHA1(7cf4897be1278e1190f499f00bc78384817a5160) )	/* 8x8 tiles */
3728 
3729 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3730 	ROM_LOAD( "921a04",      0x000000, 0x200000, CRC(4002e4bb) SHA1(281433d798ac85c84d4f1f3751a3032e8a3b5cd4) )	/* 16x16 tiles */
3731 
3732 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
3733 	ROM_LOAD16_WORD_SWAP( "921a07",      0x000000, 0x200000, CRC(7d2bf112) SHA1(1997c99c2d3998096842abd1cee89e0e6ab43a47) )	/* Sprites */
3734 
3735 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3736 	ROM_LOAD( "921a05",      0x000000, 0x080000, CRC(d5a1eddd) SHA1(42b5b255f02b9c6d856b1578af9a5dfc51ea6ebb) )
3737 
3738 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3739 	ROM_LOAD( "921a06",      0x000000, 0x080000, CRC(89461d0f) SHA1(b7d27d0ee0b7ab44c20ab710b567f64fc3afb90c) )
3740 
3741 	ROM_REGION( 0x0220, REGION_PROMS, 0 )
3742 	ROM_LOAD( "921a08",      0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
3743 	ROM_LOAD( "921a09",      0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) )	/* unknown */
3744 	ROM_LOAD( "921a10",      0x0200, 0x0020, CRC(8371e42d) SHA1(6cfd70dfa00e85ec1df8832d41df331cc3e3733a) )	/* unknown */
3745 ROM_END
3746 
3747 ROM_START( gunnail )
3748 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3749 	ROM_LOAD16_BYTE( "3e.bin",  0x00000, 0x40000, CRC(61d985b2) SHA1(96daca603f18accb47f98a3e584b2c84fc5a2ca4) )
3750 	ROM_LOAD16_BYTE( "3o.bin",  0x00001, 0x40000, CRC(f114e89c) SHA1(a12f5278167f446bb5277e87289c41b5aa365c86) )
3751 
3752 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Code for (unknown?) CPU */
3753 	ROM_LOAD( "92077_2.bin",      0x00000, 0x10000, CRC(cd4e55f8) SHA1(92182767ca0ec37ec4949bd1a88c2efdcdcb60ed) )
3754 
3755 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3756 	ROM_LOAD( "1.bin",    0x000000, 0x020000, CRC(3d00a9f4) SHA1(91a82e3e74c8774d7f8b2adceb228b97010facfd) )	/* 8x8 tiles */
3757 
3758 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3759 	ROM_LOAD( "92077-4.bin", 0x000000, 0x100000, CRC(a9ea2804) SHA1(14dbdb3c7986db5e44dc7c5be6fcf39f3d1e50b0) )	/* 16x16 tiles */
3760 
3761 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
3762 	ROM_LOAD16_WORD_SWAP( "92077-7.bin", 0x000000, 0x200000, CRC(d49169b3) SHA1(565ff7725dd6ace79b55706114132d8d867e81a9) )	/* Sprites */
3763 
3764 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3765 	ROM_LOAD( "92077-6.bin", 0x000000, 0x080000, CRC(6d133f0d) SHA1(8a5e6e27a297196f20e4de0d060f1188115809bb) )	/* all banked */
3766 
3767 	ROM_REGION( 0x080000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3768 	ROM_LOAD( "92077-5.bin", 0x000000, 0x080000, CRC(feb83c73) SHA1(b44e9d20b4af02e218c4bc875d66a7d6b8551cae) )	/* all banked */
3769 
3770 	ROM_REGION( 0x0220, REGION_PROMS, 0 )
3771 	ROM_LOAD( "8.bpr",      0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) )	/* unknown */
3772 	ROM_LOAD( "9.bpr",      0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) )	/* unknown */
3773 	ROM_LOAD( "10.bpr",     0x0200, 0x0020, CRC(c60103c8) SHA1(dfb05b704bb5e1f75f5aaa4fa36e8ddcc905f8b6) )	/* unknown */
3774 ROM_END
3775 
3776 ROM_START( macross2 )
3777 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3778 	ROM_LOAD16_WORD_SWAP( "mcrs2j.3",      0x00000, 0x80000, CRC(36a618fe) SHA1(56fdb2bcb4a39888cfbaf9692d66335524a6ac0c) )
3779 
3780 	ROM_REGION( 0x30000, REGION_CPU2, 0 )		/* Z80 code */
3781 	ROM_LOAD( "mcrs2j.2",    0x00000, 0x20000, CRC(b4aa8ac7) SHA1(73a6de56cbfb468450d9b39fcbae0362f242f37b) )
3782 	ROM_RELOAD(              0x10000, 0x20000 )				/* banked */
3783 
3784 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3785 	ROM_LOAD( "mcrs2j.1",    0x000000, 0x020000, CRC(c7417410) SHA1(41431d8f1ff4d66baf1a8518a0b0c0125d1d71d4) )	/* 8x8 tiles */
3786 
3787 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3788 	ROM_LOAD( "bp932an.a04", 0x000000, 0x200000, CRC(c4d77ff0) SHA1(aca60a3f5f89265e7e3799e5d80ea8196fb11ff3) )	/* 16x16 tiles */
3789 
3790 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )
3791 	ROM_LOAD16_WORD_SWAP( "bp932an.a07", 0x000000, 0x200000, CRC(aa1b21b9) SHA1(133822e3d8628aa4eb3e62fbd054956799423b98) )	/* Sprites */
3792 	ROM_LOAD16_WORD_SWAP( "bp932an.a08", 0x200000, 0x200000, CRC(67eb2901) SHA1(25e0f9fda1a8c0c2b59616dd153cb6dcb459d2d9) )
3793 
3794 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3795 	ROM_LOAD( "bp932an.a06", 0x040000, 0x200000, CRC(ef0ffec0) SHA1(fd72cc77e02d1a00bf27e77a33d7dab5f6ba1cb4) )	/* all banked */
3796 
3797 	ROM_REGION( 0x140000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3798 	ROM_LOAD( "bp932an.a05", 0x040000, 0x100000, CRC(b5335abb) SHA1(f4eaf4e465eeca31741d432ee46ed39ffcd92cca) )	/* all banked */
3799 
3800 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3801 	ROM_LOAD( "mcrs2bpr.9",  0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) )	/* unknown */
3802 	ROM_LOAD( "mcrs2bpr.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) )	/* unknown */
3803 ROM_END
3804 
3805 ROM_START( tdragon2 )
3806 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3807 	ROM_LOAD16_WORD_SWAP( "6.bin",      0x00000, 0x80000, CRC(310d6bca) SHA1(f46ad1d13cf5014aef1f0e8862b369ab31c22866) )
3808 
3809 	ROM_REGION( 0x30000, REGION_CPU2, 0 )		/* Z80 code */
3810 	ROM_LOAD( "5.bin",    0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) )
3811 	ROM_RELOAD(              0x10000, 0x20000 )				/* banked */
3812 
3813 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3814 	ROM_LOAD( "1.bin",    0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) )	/* 8x8 tiles */
3815 
3816 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3817 	ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) )	/* 16x16 tiles */
3818 
3819 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )
3820 	ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) )	/* Sprites */
3821 	ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) )
3822 
3823 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3824 	ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) )	/* all banked */
3825 
3826 	ROM_REGION( 0x240000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3827 	ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) )	/* all banked */
3828 
3829 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3830 	ROM_LOAD( "9.bpr",  0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) )	/* unknown */
3831 	ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) )	/* unknown */
3832 ROM_END
3833 
3834 ROM_START( bigbang )
3835 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3836 	ROM_LOAD16_WORD_SWAP( "eprom.3",      0x00000, 0x80000, CRC(28e5957a) SHA1(fe4f870a9c2235cc02b4e036a2a4116f071d59ad) )
3837 
3838 	ROM_REGION( 0x30000, REGION_CPU2, 0 )		/* Z80 code */
3839 	ROM_LOAD( "5.bin",    0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) )
3840 	ROM_RELOAD(              0x10000, 0x20000 )				/* banked */
3841 
3842 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3843 	ROM_LOAD( "1.bin",    0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) )	/* 8x8 tiles */
3844 
3845 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3846 	ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) )	/* 16x16 tiles */
3847 
3848 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )
3849 	ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) )	/* Sprites */
3850 	ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) )
3851 
3852 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3853 	ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) )	/* all banked */
3854 
3855 	ROM_REGION( 0x240000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3856 	ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) )	/* all banked */
3857 
3858 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3859 	ROM_LOAD( "9.bpr",  0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) )	/* unknown */
3860 	ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) )	/* unknown */
3861 ROM_END
3862 
3863 /*
3864 
3865 Rapid Hero
3866 NMK, 1994
3867 
3868 The main board has no ROMs at all except 3 PROMs. There is a plug-in daughter
3869 board that holds all the ROMs. It has the capacity for 3 socketed EPROMS and 7x
3870 16M MASK ROMs total.
3871 
3872 
3873 PCB Layout (Main board)
3874 -----------------------
3875 
3876 AWA94099
3877 -----------------------------------------------------------------------
3878 |    YM2203  TMP90C841 6264 DSW2(8) 62256 62256 6116 62256 62256 6116 |
3879 |   6295 NMK112      12MHz     DSW1(8)                                |
3880 |  YM3014B 6295      16MHz NMK005   62256 62256 6116 62256 62256 6116 |
3881 |J       -----------------                                            |
3882 |A       |               |                                            |
3883 |M       -----------------                                            |
3884 |M                   PROM3                           NMK009  NMK009   |
3885 |A   NMK111   6116                    6116  NMK008                    |
3886 |       |-|   6116                    6116                            |
3887 |6116   | | NMK902   -----------------                                |
3888 |6116   | |          |               |                                |
3889 |PROM1  | |          -----------------                                |
3890 |       | |                                                           |
3891 |NMK111 | | NMK903                                                    |
3892 |       | | NMK903       PROM2                                        |
3893 |NMK111 | |                                                           |
3894 |       |-|                   6116                  TMP68HC000P-16    |
3895 | 62256     NMK901            6116                             14MHz  |
3896 | 62256                                                               |
3897 -----------------------------------------------------------------------
3898 
3899 Notes:
3900       68k clock: 14.00MHz
3901           VSync: 56Hz
3902           HSync: 15.35kHz
3903    90c841 clock: 8.000MHz
3904 
3905 
3906 PCB Layout (Daughter board)
3907 ---------------------------
3908 
3909 AWA94099-ROME
3910 --------------------------
3911 | 2      6   7   5    3  |
3912 |                        |
3913 | 1                      |
3914 |                        |
3915 |                        |
3916 |                        |
3917 | 4           8   9   10 |
3918 |                        |
3919 |                        |
3920 |                        |
3921 --------------------------
3922 
3923 */
3924 
3925 ROM_START( raphero )
3926 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3927 	ROM_LOAD16_WORD_SWAP( "rhp94099.3",      0x00000, 0x80000, CRC(ec9b4f05) SHA1(e5bd797620dc449fd78b41d87e9ba5a764eb8b44) )
3928 
3929 	ROM_REGION( 0x20000, REGION_CPU2, 0 )		/* tmp90c841 ??? sound code/data */
3930 	ROM_LOAD( "rhp94099.2",    0x00000, 0x20000, CRC(fe01ece1) SHA1(c469fb79f2774089848c814f92ddd3c9e384050f) )
3931 
3932 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
3933 	ROM_LOAD( "rhp94099.1",    0x000000, 0x020000, CRC(55a7a011) SHA1(87ded56bfdd38cbf8d3bd8b3789831f768550a12) )	/* 8x8 tiles */
3934 
3935 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3936 	ROM_LOAD( "rhp94099.4", 0x000000, 0x200000,  CRC(076eee7b) SHA1(7c315fe33d0fcd92e0ce2f274996c8059228b005) )	/* 16x16 tiles */
3937 
3938 	ROM_REGION( 0x600000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */
3939 	ROM_LOAD16_WORD_SWAP( "rhp94099.8", 0x000000, 0x200000, CRC(49892f07) SHA1(2f5d20cd193cffcba9041aa11d6665adebeffffa) )	/* 16x16 tiles */
3940 	ROM_LOAD16_WORD_SWAP( "rhp94099.9", 0x200000, 0x200000, CRC(ea2e47f0) SHA1(97dfa8f95f27b36deb5ce1c80e3d727bad24e52b) )	/* 16x16 tiles */
3941 	ROM_LOAD16_WORD_SWAP( "rhp94099.10",0x400000, 0x200000, CRC(512cb839) SHA1(4a2c5ac88e4bf8a6f07c703277c4d33e649fd192) )	/* 16x16 tiles */
3942 
3943 	ROM_REGION( 0x400000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3944 	ROM_LOAD( "rhp94099.5", 0x000000, 0x200000, CRC(515eba93) SHA1(c35cb5f31f4bc7327be5777624af168f9fb364a5) )	/* all banked */
3945 	ROM_LOAD( "rhp94099.6", 0x200000, 0x200000, CRC(f1a80e5a) SHA1(218bd7b0c3d8b283bf96b95bf888228810699370) )	/* all banked */
3946 
3947 	ROM_REGION( 0x240000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3948 	ROM_LOAD( "rhp94099.7", 0x040000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) )	/* all banked */
3949 
3950 	ROM_REGION( 0x0300, REGION_PROMS, 0 )
3951 	ROM_LOAD( "prom1.u19",      0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */
3952 	ROM_LOAD( "prom2.u53",      0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */
3953 	ROM_LOAD( "prom3.u60",      0x0200, 0x0100, CRC(304f98c6) SHA1(8dfd9bf719087ec30c83efe95c4561666c7d1801) ) /* unknown */
3954 ROM_END
3955 
3956 ROM_START( sabotenb )
3957 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
3958 	ROM_LOAD16_BYTE( "ic76.sb1",  0x00000, 0x40000, CRC(b2b0b2cf) SHA1(219f1cefdb107d8404f4f8bfa0700fd3218d9320) )
3959 	ROM_LOAD16_BYTE( "ic75.sb2",  0x00001, 0x40000, CRC(367e87b7) SHA1(c950041529b5117686e4bb1ae77db82fe758c1d0) )
3960 
3961 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )
3962 	ROM_LOAD( "ic35.sb3",		0x000000, 0x010000, CRC(eb7bc99d) SHA1(b3063afd58025a441d4750c22483e9129da402e7) )	/* 8x8 tiles */
3963 
3964 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3965 	ROM_LOAD( "ic32.sb4",		0x000000, 0x200000, CRC(24c62205) SHA1(3ab0ca5d7c698328d91421ccf6f7dafc20df3c8d) )	/* 16x16 tiles */
3966 
3967 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
3968 	ROM_LOAD16_WORD_SWAP( "ic100.sb5",	0x000000, 0x200000, CRC(b20f166e) SHA1(074d770fd6d233040a80a92f4467d81f961c650b) )	/* Sprites */
3969 
3970 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
3971 	ROM_LOAD( "ic30.sb6",    0x040000, 0x100000, CRC(288407af) SHA1(78c08fae031337222681c593dc86a08df6a34a4b) )	/* all banked */
3972 
3973 	ROM_REGION( 0x140000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
3974 	ROM_LOAD( "ic27.sb7",    0x040000, 0x100000, CRC(43e33a7e) SHA1(51068b63f4415712eaa25dcf1ee6b0cc2850974e) )	/* all banked */
3975 ROM_END
3976 
3977 ROM_START( bjtwin )
3978 	ROM_REGION( 0x80000, REGION_CPU1, 0 )  /* 68000 code */
3979 	ROM_LOAD16_BYTE( "93087-1.bin",  0x00000, 0x20000, CRC(93c84e2d) SHA1(ad0755cabfef78e7e689856379d6f8c88a9b27c1) )
3980 	ROM_LOAD16_BYTE( "93087-2.bin",  0x00001, 0x20000, CRC(30ff678a) SHA1(aa3ce4905e448e371e254545ef9ed7edb00b1cc3) )
3981 
3982 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )
3983 	ROM_LOAD( "93087-3.bin",  0x000000, 0x010000, CRC(aa13df7c) SHA1(162d4f12364c68028e86fe97ee75c262daa4c699) ) /* 8x8 tiles */
3984 
3985 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
3986 	ROM_LOAD( "93087-4.bin",  0x000000, 0x100000, CRC(8a4f26d0) SHA1(be057a2b6d28c623ac1f16cf02ddbe12ca430b4a) ) /* 16x16 tiles */
3987 
3988 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
3989 	ROM_LOAD16_WORD_SWAP( "93087-5.bin", 0x000000, 0x100000, CRC(bb06245d) SHA1(c91e2284d95370b8ef2eb1b9d6305fdd6cde23a0) ) /* Sprites */
3990 
3991 	ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
3992 	ROM_LOAD( "93087-6.bin",    0x040000, 0x100000, CRC(372d46dd) SHA1(18f44e777241af50787730652fa018c51b65ea15) ) /* all banked */
3993 
3994 	ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 samples */
3995 	ROM_LOAD( "93087-7.bin",    0x040000, 0x100000, CRC(8da67808) SHA1(f042574c097f5a8c2684fcc23f2c817c168254ef) ) /* all banked */
3996 
3997 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
3998 	ROM_LOAD( "8.bpr",      0x0000, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */
3999 	ROM_LOAD( "9.bpr",      0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */
4000 ROM_END
4001 
4002 
4003 ROM_START( nouryoku )
4004 	ROM_REGION( 0x80000, REGION_CPU1, 0 )		/* 68000 code */
4005 	ROM_LOAD16_BYTE( "ic76.1",  0x00000, 0x40000, CRC(26075988) SHA1(c3d0eef0417be3f78008c026915fd7e2fd589563) )
4006 	ROM_LOAD16_BYTE( "ic75.2",  0x00001, 0x40000, CRC(75ab82cd) SHA1(fb828f87eebbe9d61766535efc18de9dfded110c) )
4007 
4008 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )
4009 	ROM_LOAD( "ic35.3",		0x000000, 0x010000, CRC(03d0c3b1) SHA1(4d5427c324e2141d0a953cc5133d10b327827e0b) )	/* 8x8 tiles */
4010 
4011 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
4012 	ROM_LOAD( "ic32.4",		0x000000, 0x200000, CRC(88d454fd) SHA1(c79c48d9b3602266499a5dd0b15fd2fb032809be) )	/* 16x16 tiles */
4013 
4014 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )
4015 	ROM_LOAD16_WORD_SWAP( "ic100.5",	0x000000, 0x200000, CRC(24d3e24e) SHA1(71e38637953ec98bf308824aaef5628803aead21) )	/* Sprites */
4016 
4017 	ROM_REGION( 0x140000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
4018 	ROM_LOAD( "ic30.6",     0x040000, 0x100000, CRC(feea34f4) SHA1(bee467e74dbad497c6f5f6b38b7e52001e767012) )	/* all banked */
4019 
4020 	ROM_REGION( 0x140000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
4021 	ROM_LOAD( "ic27.7",     0x040000, 0x100000, CRC(8a69fded) SHA1(ee73f1789bcc672232606a4b3b28087fea1c5c69) )	/* all banked */
4022 ROM_END
4023 
4024 ROM_START( manybloc )
4025 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 code */
4026 	ROM_LOAD16_BYTE( "1-u33.bin",  0x00001, 0x20000, CRC(07473154) SHA1(e67f637e74dfe5f1be558f963c0b3225254afe33) )
4027 	ROM_LOAD16_BYTE( "2-u35.bin",  0x00000, 0x20000, CRC(04acd8c1) SHA1(3ef329e8d25565c7f7166f12137f4df5a057022f) )
4028 
4029 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Z80? CPU */
4030 	ROM_LOAD( "3-u146.bin",      0x00000, 0x10000, CRC(7bf5fafa) SHA1(d17feca628775860d6c7019a9725bd40fbc5b7d7) )
4031 
4032 	ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
4033 	ROM_LOAD( "12-u39.bin",    0x000000, 0x10000, CRC(413b5438) SHA1(af366ce998ebe0d25255cc0cb1cd81689d3696ec) )	/* 8x8 tiles */
4034 
4035 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprite tiles */
4036 	ROM_LOAD16_BYTE( "8-u54b.bin",  0x000000, 0x20000, CRC(03eede77) SHA1(2476a488bb0d39790b2cc7f261ddb973378022ff) )
4037 	ROM_LOAD16_BYTE( "10-u86b.bin", 0x000001, 0x20000, CRC(9eab216f) SHA1(616f3ee2d06aa7151af634773a5e8633bff9588e) )
4038 	ROM_LOAD16_BYTE( "9-u53b.bin",  0x040000, 0x20000, CRC(dfcfa040) SHA1(f1561defe9746afdb1a5327d0a4435a6f3e87a77) )
4039 	ROM_LOAD16_BYTE( "11-u85b.bin", 0x040001, 0x20000, CRC(fe747dd5) SHA1(6ba57a45f4d77e2574de95d4a2f0718c601e7214) )
4040 
4041 	ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
4042 	ROM_LOAD( "4-u96.bin", 0x000000, 0x40000, CRC(28af2640) SHA1(08fa57de66cf58fe2256455538261c2d05d27e1e) )
4043 	ROM_LOAD( "5-u97.bin", 0x040000, 0x40000, CRC(536699e6) SHA1(13ec233f5e4f2a65ac7bc55511e988508269acd5) )
4044 
4045 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* OKIM6295 samples */
4046 	ROM_LOAD( "6-u131.bin", 0x000000, 0x40000, CRC(79a4ae75) SHA1(f7609d0ca18b4af8c5f37daa1795a7a6c6d768ae) )
4047 
4048 	ROM_REGION( 0x40000, REGION_SOUND2, 0 )	/* OKIM6295 samples */
4049 	ROM_LOAD( "7-u132.bin", 0x000000, 0x40000, CRC(21db875e) SHA1(e1d96155b6d8825f7c449f276d02f9769258345d) )
4050 
4051 	ROM_REGION( 0x20220, REGION_PROMS, 0 )
4052 	ROM_LOAD( "u7.bpr",      0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) )	/* unknown */
4053 	ROM_LOAD( "u120.bpr",      0x0100, 0x0100, CRC(576c5984) SHA1(6e9b7f30de0d91cb766a62abc5888ec9af085a27) )	/* unknown */
4054 	ROM_LOAD( "u200.bpr",      0x0200, 0x0020, CRC(1823600b) SHA1(7011156ebcb815b176856bd67898ce655ea1b5ab) )	/* unknown */
4055 	ROM_LOAD( "u10.bpr",      0x0100, 0x0200, CRC(8e9b569a) SHA1(1d8d633fbeb72d5e55ad4b282df02e9ca5e240eb) )	/* unknown */
4056 ROM_END
4057 
4058 static unsigned char decode_byte(unsigned char src, unsigned char *bitp)
4059 {
4060 	unsigned char ret, i;
4061 
4062 	ret = 0;
4063 	for (i=0; i<8; i++)
4064 		ret |= (((src >> bitp[i]) & 1) << (7-i));
4065 
4066 	return ret;
4067 }
4068 
bjtwin_address_map_bg0(unsigned long addr)4069 static unsigned long bjtwin_address_map_bg0(unsigned long addr)
4070 {
4071    return ((addr&0x00004)>> 2) | ((addr&0x00800)>> 10) | ((addr&0x40000)>>16);
4072 }
4073 
4074 
decode_word(unsigned short src,unsigned char * bitp)4075 static unsigned short decode_word(unsigned short src, unsigned char *bitp)
4076 {
4077 	unsigned short ret, i;
4078 
4079 	ret=0;
4080 	for (i=0; i<16; i++)
4081 		ret |= (((src >> bitp[i]) & 1) << (15-i));
4082 
4083 	return ret;
4084 }
4085 
4086 
bjtwin_address_map_sprites(unsigned long addr)4087 static unsigned long bjtwin_address_map_sprites(unsigned long addr)
4088 {
4089    return ((addr&0x00010)>> 4) | ((addr&0x20000)>>16) | ((addr&0x100000)>>18);
4090 }
4091 
4092 
decode_gfx(void)4093 static void decode_gfx(void)
4094 {
4095 	/* GFX are scrambled.  We decode them here.  (BIG Thanks to Antiriad for descrambling info) */
4096 	unsigned char *rom;
4097 	int A;
4098 
4099 	static unsigned char decode_data_bg[8][8] =
4100 	{
4101 		{0x3,0x0,0x7,0x2,0x5,0x1,0x4,0x6},
4102 		{0x1,0x2,0x6,0x5,0x4,0x0,0x3,0x7},
4103 		{0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0},
4104 		{0x7,0x6,0x5,0x0,0x1,0x4,0x3,0x2},
4105 		{0x2,0x0,0x1,0x4,0x3,0x5,0x7,0x6},
4106 		{0x5,0x3,0x7,0x0,0x4,0x6,0x2,0x1},
4107 		{0x2,0x7,0x0,0x6,0x5,0x3,0x1,0x4},
4108 		{0x3,0x4,0x7,0x6,0x2,0x0,0x5,0x1},
4109 	};
4110 
4111 	static unsigned char decode_data_sprite[8][16] =
4112 	{
4113 		{0x9,0x3,0x4,0x5,0x7,0x1,0xb,0x8,0x0,0xd,0x2,0xc,0xe,0x6,0xf,0xa},
4114 		{0x1,0x3,0xc,0x4,0x0,0xf,0xb,0xa,0x8,0x5,0xe,0x6,0xd,0x2,0x7,0x9},
4115 		{0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0},
4116 		{0xf,0xe,0xc,0x6,0xa,0xb,0x7,0x8,0x9,0x2,0x3,0x4,0x5,0xd,0x1,0x0},
4117 
4118 		{0x1,0x6,0x2,0x5,0xf,0x7,0xb,0x9,0xa,0x3,0xd,0xe,0xc,0x4,0x0,0x8}, /* Haze 20/07/00 */
4119 		{0x7,0x5,0xd,0xe,0xb,0xa,0x0,0x1,0x9,0x6,0xc,0x2,0x3,0x4,0x8,0xf}, /* Haze 20/07/00 */
4120 		{0x0,0x5,0x6,0x3,0x9,0xb,0xa,0x7,0x1,0xd,0x2,0xe,0x4,0xc,0x8,0xf}, /* Antiriad, Corrected by Haze 20/07/00 */
4121 		{0x9,0xc,0x4,0x2,0xf,0x0,0xb,0x8,0xa,0xd,0x3,0x6,0x5,0xe,0x1,0x7}, /* Antiriad, Corrected by Haze 20/07/00 */
4122 	};
4123 
4124 
4125 	/* background */
4126 	rom = memory_region(REGION_GFX2);
4127 	for (A = 0;A < memory_region_length(REGION_GFX2);A++)
4128 	{
4129 		rom[A] = decode_byte( rom[A], decode_data_bg[bjtwin_address_map_bg0(A)]);
4130 	}
4131 
4132 	/* sprites */
4133 	rom = memory_region(REGION_GFX3);
4134 	for (A = 0;A < memory_region_length(REGION_GFX3);A += 2)
4135 	{
4136 		unsigned short tmp = decode_word( rom[A+1]*256 + rom[A], decode_data_sprite[bjtwin_address_map_sprites(A)]);
4137 		rom[A+1] = tmp >> 8;
4138 		rom[A] = tmp & 0xff;
4139 	}
4140 }
4141 
decode_tdragonb(void)4142 static void decode_tdragonb(void)
4143 {
4144 	/* Descrambling Info Again Taken from Raine, Huge Thanks to Antiriad and the Raine Team for
4145 	   going Open Source, best of luck in future development. */
4146 
4147 	unsigned char *rom;
4148 	int A;
4149 
4150 	/* The Main 68k Program of the Bootleg is Bitswapped */
4151 	static unsigned char decode_data_tdragonb[1][16] =
4152 	{
4153 		{0xe,0xc,0xa,0x8,0x7,0x5,0x3,0x1,0xf,0xd,0xb,0x9,0x6,0x4,0x2,0x0},
4154 	};
4155 
4156 	/* Graphic Roms Could Also Do With Rearranging to make things simpler */
4157 	static unsigned char decode_data_tdragonbgfx[1][8] =
4158 	{
4159 		{0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0},
4160 	};
4161 
4162 	rom = memory_region(REGION_CPU1);
4163 	for (A = 0;A < memory_region_length(REGION_CPU1);A += 2)
4164 	{
4165 #ifdef MSB_FIRST
4166 		unsigned short tmp = decode_word( rom[A]*256 + rom[A+1], decode_data_tdragonb[0]);
4167 		rom[A] = tmp >> 8;
4168 		rom[A+1] = tmp & 0xff;
4169 #else
4170 		unsigned short tmp = decode_word( rom[A+1]*256 + rom[A], decode_data_tdragonb[0]);
4171 		rom[A+1] = tmp >> 8;
4172 		rom[A] = tmp & 0xff;
4173 #endif
4174 	}
4175 
4176 	rom = memory_region(REGION_GFX2);
4177 	for (A = 0;A < memory_region_length(REGION_GFX2);A++)
4178 	{
4179 		rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]);
4180 	}
4181 
4182 	rom = memory_region(REGION_GFX3);
4183 	for (A = 0;A < memory_region_length(REGION_GFX3);A++)
4184 	{
4185 		rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]);
4186 	}
4187 }
4188 
decode_ssmissin(void)4189 static void decode_ssmissin(void)
4190 {
4191 	/* Like Thunder Dragon Bootleg without the Program Rom Swapping */
4192 	unsigned char *rom;
4193 	int A;
4194 
4195 	/* Graphic Roms Could Also Do With Rearranging to make things simpler */
4196 	static unsigned char decode_data_tdragonbgfx[1][8] =
4197 	{
4198 		{0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0},
4199 	};
4200 
4201 	rom = memory_region(REGION_GFX2);
4202 	for (A = 0;A < memory_region_length(REGION_GFX2);A++)
4203 	{
4204 		rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]);
4205 	}
4206 
4207 	rom = memory_region(REGION_GFX3);
4208 	for (A = 0;A < memory_region_length(REGION_GFX3);A++)
4209 	{
4210 		rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]);
4211 	}
4212 }
4213 
4214 
DRIVER_INIT(nmk)4215 static DRIVER_INIT( nmk )
4216 {
4217 	decode_gfx();
4218 }
4219 
DRIVER_INIT(hachamf)4220 static DRIVER_INIT( hachamf )
4221 {
4222 	data16_t *rom = (data16_t *)memory_region(REGION_CPU1);
4223 
4224 	rom[0x0006/2] = 0x7dc2;	/* replace reset vector with the "real" one */
4225 }
4226 
DRIVER_INIT(acrobatm)4227 static DRIVER_INIT( acrobatm )
4228 {
4229 	data16_t *RAM = (data16_t *)memory_region(REGION_CPU1);
4230 
4231 	RAM[0x724/2] = 0x4e71; /* Protection */
4232 	RAM[0x726/2] = 0x4e71;
4233 	RAM[0x728/2] = 0x4e71;
4234 
4235 	RAM[0x9d8/2] = 0x3e3C; /* Checksum */
4236 	RAM[0x9da/2] = 0x0;
4237 	RAM[0x97c/2] = 0x3e3C;
4238 	RAM[0x97e/2] = 0x0;
4239 }
4240 
DRIVER_INIT(tdragonb)4241 static DRIVER_INIT( tdragonb )
4242 {
4243 	data16_t *ROM = (data16_t *)memory_region(REGION_CPU1);
4244 
4245 	decode_tdragonb();
4246 
4247 	/* The Following Patch is taken from Raine, Otherwise the game has no Sprites in Attract Mode or After Level 1
4248 	   which is rather odd considering its a bootleg.. */
4249 	ROM[0x00308/2] = 0x4e71; /* Sprite Problem */
4250 }
4251 
DRIVER_INIT(tdragon)4252 static DRIVER_INIT( tdragon )
4253 {
4254 	data16_t *RAM = (data16_t *)memory_region(REGION_CPU1);
4255 
4256 	RAM[0x94b0/2] = 0; /* Patch out JMP to shared memory (protection) */
4257 	RAM[0x94b2/2] = 0x92f4;
4258 }
4259 
DRIVER_INIT(ssmissin)4260 static DRIVER_INIT( ssmissin )
4261 {
4262 	decode_ssmissin();
4263 }
4264 
4265 
DRIVER_INIT(strahl)4266 static DRIVER_INIT( strahl )
4267 {
4268 	data16_t *RAM = (data16_t *)memory_region(REGION_CPU1);
4269 
4270 	RAM[0x79e/2] = 0x4e71; /* Protection */
4271 	RAM[0x7a0/2] = 0x4e71;
4272 	RAM[0x7a2/2] = 0x4e71;
4273 
4274 	RAM[0x968/2] = 0x4e71; /* Checksum error */
4275 	RAM[0x96a/2] = 0x4e71;
4276 	RAM[0x8e0/2] = 0x4e71; /* Checksum error */
4277 	RAM[0x8e2/2] = 0x4e71;
4278 }
4279 
DRIVER_INIT(bioship)4280 static DRIVER_INIT( bioship )
4281 {
4282 	data16_t *RAM = (data16_t *)memory_region(REGION_CPU1);
4283 
4284 	RAM[0xe78a/2] = 0x4e71; /* Protection */
4285 	RAM[0xe78c/2] = 0x4e71;
4286 
4287 	RAM[0xe798/2] = 0x4e71; /* Checksum */
4288 	RAM[0xe79a/2] = 0x4e71;
4289 }
4290 
4291 
4292 int is_blkheart;
4293 
4294 // see raine's games/nmk.c
4295 
WRITE16_HANDLER(test_2a_w)4296 static WRITE16_HANDLER ( test_2a_w )
4297 {
4298 	data = data >> 8;
4299 
4300 	ram[0x2a/2] = (data << 8) | data;
4301 
4302 	if (data == 1 || data == 2) {
4303 		ram[0x68/2] = 11;
4304 		ram[0x6a/2] = 0;
4305 	}
4306 }
4307 
WRITE16_HANDLER(test_2a_mustang_w)4308 static WRITE16_HANDLER ( test_2a_mustang_w )
4309 {
4310 	data = data >> 8;
4311 
4312 	ram[0x2a/2] = (data << 8) | data;
4313 
4314 	if (data == 1 || data == 2) {
4315 		ram[0x2e/2] = 10;
4316 		ram[0x2c/2] = 0;
4317 	}
4318 
4319 }
4320 
DRIVER_INIT(blkheart)4321 static DRIVER_INIT( blkheart )
4322 {
4323 	data16_t *RAM = (data16_t *)memory_region(REGION_CPU1);
4324 
4325 	is_blkheart = 1; // sprite enable is different?
4326 
4327    // see raine's games/nmk.c
4328 	RAM[0x872/2] = 0x4e71;
4329    	RAM[0x874/2] = 0x4e71;
4330    	RAM[0x876/2] = 0x4e71;
4331    	RAM[0x8d6/2] = 0x0300;
4332    	RAM[0xe1c/2] = 0x0300;
4333    	RAM[0x23dc/2] = 0x0300;
4334    	RAM[0x3dea/2] = 0x0300;
4335 
4336 	install_mem_write16_handler(0, 0xf902a, 0xf902b, test_2a_w );
4337 }
4338 
DRIVER_INIT(mustang)4339 static DRIVER_INIT( mustang )
4340 {
4341 	data16_t *RAM = (data16_t *)memory_region(REGION_CPU1);
4342 
4343 	is_blkheart = 1; // sprite enable is different?
4344 
4345    // see raine's games/nmk.c
4346 	RAM[0x85c/2] = 0x4e71;
4347 	RAM[0x85e/2] = 0x4e71;
4348 	RAM[0x860/2] = 0x4e71;
4349 	RAM[0x8c0/2] = 0x0300;
4350   	RAM[0xc00/2] = 0x0300;
4351   	RAM[0x30b2/2] = 0x0300;
4352 
4353 	install_mem_write16_handler(0, 0xf902a, 0xf902b, test_2a_mustang_w );
4354 }
4355 
DRIVER_INIT(bjtwin)4356 static DRIVER_INIT( bjtwin )
4357 {
4358 	init_nmk();
4359 
4360 	/* Patch rom to enable test mode */
4361 
4362 /*	008F54: 33F9 0008 0000 000F FFFC move.w  $80000.l, $ffffc.l
4363  *	008F5E: 3639 0008 0002           move.w  $80002.l, D3
4364  *	008F64: 3003                     move.w  D3, D0				\
4365  *	008F66: 3203                     move.w  D3, D1				|	This code remaps
4366  *	008F68: 0041 BFBF                ori.w   #-$4041, D1		|   buttons 2 and 3 to
4367  *	008F6C: E441                     asr.w   #2, D1				|   button 1, so
4368  *	008F6E: 0040 DFDF                ori.w   #-$2021, D0		|   you can't enter
4369  *	008F72: E240                     asr.w   #1, D0				|   service mode7
4370  *	008F74: C640                     and.w   D0, D3				|
4371  *	008F76: C641                     and.w   D1, D3				/
4372  *	008F78: 33C3 000F FFFE           move.w  D3, $ffffe.l
4373  *	008F7E: 207C 000F 9000           movea.l #$f9000, A0
4374  */
4375 
4376 //	data 16_t *rom = (data16_t *)memory_region(REGION_CPU1);
4377 //	rom[0x09172/2] = 0x6006;	/* patch checksum error */
4378 //	rom[0x08f74/2] = 0x4e71);
4379 }
4380 
4381 
4382 
4383 GAMEX( 1989, urashima, 0,       urashima, macross,  0,        ROT0,   "UPL",							"Urashima Mahjong", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* Similar Hardware? */
4384 GAMEX( 1989, tharrier, 0,       tharrier, tharrier, 0,        ROT270, "UPL (American Sammy license)",	"Task Force Harrier", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4385 GAMEX( 1989, tharierj, tharrier,tharrier, tharrier, 0,        ROT270, "UPL",	                        "Task Force Harrier (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4386 GAMEX( 1990, mustang,  0,       mustang,  mustang,  mustang,  ROT0,   "UPL",							"US AAF Mustang (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND) // Playable but there are Still Protection Problems
4387 GAMEX( 1990, mustangs, mustang, mustang,  mustang,  mustang,  ROT0,   "UPL (Seoul Trading license)",	"US AAF Mustang (Seoul Trading)", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // Playable but there are Still Protection Problems
4388 GAMEX( 1990, mustangb, mustang, mustangb, mustang,  mustang,  ROT0,   "bootleg",						"US AAF Mustang (bootleg)", GAME_UNEMULATED_PROTECTION ) // Playable but there are Still Protection Problems
4389 GAMEX( 1990, bioship,  0,       bioship,  bioship,  bioship,  ROT0,   "UPL (American Sammy license)",	"Bio-ship Paladin", GAME_NO_SOUND )
4390 GAMEX( 1990, vandyke,  0,       vandyke,  vandyke,  0,        ROT270, "UPL",							"Vandyke (Japan)",  GAME_NO_SOUND )
4391 GAMEX( 1990, vandyjal, vandyke, vandyke,  vandyke,  0,        ROT270, "UPL (Jaleco license)",           "Vandyke (Jaleco)",  GAME_NO_SOUND )
4392 GAMEX( 1991, manybloc, 0,       manybloc, manybloc, 0,        ROT270, "Bee-Oh",                         "Many Block", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
4393 GAMEX( 1991, blkheart, 0,       macross,  blkheart, blkheart, ROT0,   "UPL",							"Black Heart", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND  ) // Playable but there are Still Protection Problems
4394 GAMEX( 1991, blkhearj, blkheart,macross,  blkheart, blkheart, ROT0,   "UPL",							"Black Heart (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // Playable but there are Still Protection Problems
4395 GAMEX( 1991, acrobatm, 0,       acrobatm, acrobatm, acrobatm, ROT270, "UPL (Taito license)",			"Acrobat Mission", GAME_NO_SOUND )
4396 GAMEX( 1992, strahl,   0,       strahl,   strahl,   strahl,   ROT0,   "UPL",							"Koutetsu Yousai Strahl (Japan set 1)", GAME_NO_SOUND )
4397 GAMEX( 1992, strahla,  strahl,  strahl,   strahl,   strahl,   ROT0,   "UPL",							"Koutetsu Yousai Strahl (Japan set 2)", GAME_NO_SOUND )
4398 GAMEX( 1991, tdragon,  0,       tdragon,  tdragon,  tdragon,  ROT270, "NMK / Tecmo",					"Thunder Dragon", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_NO_SOUND )
4399 GAME(  1991, tdragonb, tdragon, tdragonb, tdragon,  tdragonb, ROT270, "NMK / Tecmo",					"Thunder Dragon (Bootleg)" )
4400 GAMEX( 1992, ssmissin, 0,       ssmissin, ssmissin, ssmissin, ROT270, "Comad",				            "S.S. Mission", GAME_NO_COCKTAIL )
4401 GAMEX( 1991, hachamf,  0,       hachamf,  hachamf,  hachamf,  ROT0,   "NMK",							"Hacha Mecha Fighter", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
4402 GAMEX( 1992, macross,  0,       macross,  macross,  nmk,      ROT270, "Banpresto",						"Super Spacefortress Macross / Chou-Jikuu Yousai Macross", GAME_NO_SOUND )
4403 GAMEX( 1993, gunnail,  0,       gunnail,  gunnail,  nmk,      ROT270, "NMK / Tecmo",					"GunNail", GAME_NO_SOUND )
4404 GAMEX( 1993, macross2, 0,       macross2, macross2, 0,        ROT0,   "Banpresto",						"Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", GAME_NO_COCKTAIL )
4405 GAMEX( 1993, tdragon2, 0,       tdragon2, tdragon2, 0,        ROT270, "NMK",				         	"Thunder Dragon 2", GAME_NO_COCKTAIL )
4406 GAMEX( 1993, bigbang,  tdragon2,tdragon2, tdragon2, 0,        ROT270, "NMK",				         	"Big Bang", GAME_NO_COCKTAIL )
4407 GAMEX( 1994, raphero,  0,       raphero,  tdragon2, 0,        ROT270, "Media Trading Corp",             "Rapid Hero (Japan?)", GAME_NO_SOUND ) // 23rd July 1993 in test mode, (c)1994 on title screen
4408 
4409 GAMEX( 1992, sabotenb, 0,       bjtwin,   sabotenb, nmk,      ROT0,   "NMK / Tecmo",					"Saboten Bombers", GAME_NO_COCKTAIL )
4410 GAMEX( 1993, bjtwin,   0,       bjtwin,   bjtwin,   bjtwin,   ROT270, "NMK",							"Bombjack Twin", GAME_NO_COCKTAIL )
4411 GAMEX( 1995, nouryoku, 0,       bjtwin,   nouryoku, nmk,      ROT0,   "Tecmo",							"Nouryoku Koujou Iinkai", GAME_NO_COCKTAIL )
4412