1 /*	System18 Hardware
2 **
3 **	MC68000 + Z80
4 **	2xYM3438 + Custom PCM
5 **
6 **	Ace Attacker
7 **	Alien Storm
8 **	Bloxeed
9 **	Clutch Hitter
10 **	D.D. Crew
11 **	Laser Ghost
12 **	Michael Jackson's Moonwalker
13 **	Shadow Dancer
14 **	Search Wally
15 */
16 
17 #include "driver.h"
18 #include "vidhrdw/generic.h"
19 #include "cpu/z80/z80.h"
20 #include "cpu/i8039/i8039.h"
21 #include "system16.h"
22 
23 /***************************************************************************/
24 
25 static data16_t sys16_coinctrl;
26 
WRITE16_HANDLER(sys18_refreshenable_w)27 static WRITE16_HANDLER( sys18_refreshenable_w ){
28 	if( ACCESSING_LSB ){
29 		sys16_coinctrl = data&0xff;
30 		sys16_refreshenable = sys16_coinctrl & 0x02;
31 		/* bit 2 is also used (0 in shadow dancer) */
32 		/* shadow dancer also sets bit 7 */
33 	}
34 }
35 
36 /***************************************************************************/
37 
set_fg_page(int data)38 static void set_fg_page( int data ){
39 	sys16_fg_page[0] = data>>12;
40 	sys16_fg_page[1] = (data>>8)&0xf;
41 	sys16_fg_page[2] = (data>>4)&0xf;
42 	sys16_fg_page[3] = data&0xf;
43 }
44 
set_bg_page(int data)45 static void set_bg_page( int data ){
46 	sys16_bg_page[0] = data>>12;
47 	sys16_bg_page[1] = (data>>8)&0xf;
48 	sys16_bg_page[2] = (data>>4)&0xf;
49 	sys16_bg_page[3] = data&0xf;
50 }
51 
set_fg2_page(int data)52 static void set_fg2_page( int data ){
53 	sys16_fg2_page[0] = data>>12;
54 	sys16_fg2_page[1] = (data>>8)&0xf;
55 	sys16_fg2_page[2] = (data>>4)&0xf;
56 	sys16_fg2_page[3] = data&0xf;
57 }
58 
set_bg2_page(int data)59 static void set_bg2_page( int data ){
60 	sys16_bg2_page[0] = data>>12;
61 	sys16_bg2_page[1] = (data>>8)&0xf;
62 	sys16_bg2_page[2] = (data>>4)&0xf;
63 	sys16_bg2_page[3] = data&0xf;
64 }
65 
66 /***************************************************************************/
67 
68 static UINT8 *sys18_SoundMemBank;
69 
READ_HANDLER(system18_bank_r)70 static READ_HANDLER( system18_bank_r ){
71 	return sys18_SoundMemBank[offset];
72 }
73 
MEMORY_READ_START(sound_readmem_18)74 static MEMORY_READ_START( sound_readmem_18 )
75 	{ 0x0000, 0x9fff, MRA_ROM },
76 	{ 0xa000, 0xbfff, system18_bank_r },
77 	/**** D/A register ****/
78 	{ 0xd000, 0xdfff, RF5C68_r },
79 	{ 0xe000, 0xffff, MRA_RAM },
80 MEMORY_END
81 
82 static MEMORY_WRITE_START( sound_writemem_18 )
83 	{ 0x0000, 0xbfff, MWA_ROM },
84 	/**** D/A register ****/
85 	{ 0xc000, 0xc008, RF5C68_reg_w },
86 	{ 0xd000, 0xdfff, RF5C68_w },
87 	{ 0xe000, 0xffff, MWA_RAM },	//??
88 MEMORY_END
89 
90 static WRITE_HANDLER( sys18_soundbank_w ){
91 	/* select access bank for a000~bfff */
92 	unsigned char *RAM = memory_region(REGION_CPU2);
93 	int Bank=0;
94 	switch( data&0xc0 ){
95 		case 0x00:
96 			Bank = data<<13;
97 			break;
98 		case 0x40:
99 			Bank = ((data&0x1f) + 128/8)<<13;
100 			break;
101 		case 0x80:
102 			Bank = ((data&0x1f) + (256+128)/8)<<13;
103 			break;
104 		case 0xc0:
105 			Bank = ((data&0x1f) + (512+128)/8)<<13;
106 			break;
107 	}
108 	sys18_SoundMemBank = &RAM[Bank+0x10000];
109 }
110 
PORT_READ_START(sound_readport_18)111 static PORT_READ_START( sound_readport_18 )
112 	{ 0x80, 0x80, YM2612_status_port_0_A_r },
113 //	{ 0x82, 0x82, YM2612_status_port_0_B_r },
114 //	{ 0x90, 0x90, YM2612_status_port_1_A_r },
115 //	{ 0x92, 0x92, YM2612_status_port_1_B_r },
116 	{ 0xc0, 0xc0, soundlatch_r },
117 PORT_END
118 
119 static PORT_WRITE_START( sound_writeport_18 )
120 	{ 0x80, 0x80, YM2612_control_port_0_A_w },
121 	{ 0x81, 0x81, YM2612_data_port_0_A_w },
122 	{ 0x82, 0x82, YM2612_control_port_0_B_w },
123 	{ 0x83, 0x83, YM2612_data_port_0_B_w },
124 	{ 0x90, 0x90, YM2612_control_port_1_A_w },
125 	{ 0x91, 0x91, YM2612_data_port_1_A_w },
126 	{ 0x92, 0x92, YM2612_control_port_1_B_w },
127 	{ 0x93, 0x93, YM2612_data_port_1_B_w },
128 	{ 0xa0, 0xa0, sys18_soundbank_w },
129 PORT_END
130 
131 static WRITE16_HANDLER( sound_command_nmi_w ){
132 	if( ACCESSING_LSB ){
133 		soundlatch_w( 0,data&0xff );
134 		cpu_set_nmi_line(1, PULSE_LINE);
135 	}
136 }
137 
138 /***************************************************************************/
139 
140 #if 0
141 static READ16_HANDLER( shdancer_skip_r ){
142 	if (activecpu_get_pc()==0x2f76) {cpu_spinuntil_int(); return 0xffff;}
143 	return sys16_workingram[0];
144 }
145 #endif
146 
MEMORY_READ16_START(shdancer_readmem)147 static MEMORY_READ16_START( shdancer_readmem )
148 	{ 0x000000, 0x07ffff, MRA16_ROM },
149 	{ 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
150 	{ 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
151 	{ 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
152 	{ 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
153 	{ 0xc00000, 0xc00007, SYS16_MRA16_EXTRAM },
154 	{ 0xe4000a, 0xe4000b, input_port_3_word_r }, // dip1
155 	{ 0xe4000c, 0xe4000d, input_port_4_word_r }, // dip2
156 	{ 0xe40000, 0xe40001, input_port_0_word_r }, // player1
157 	{ 0xe40002, 0xe40003, input_port_1_word_r }, // player2
158 	{ 0xe40008, 0xe40009, input_port_2_word_r }, // service
159 	{ 0xe43034, 0xe43035, MRA16_NOP },
160 	{ 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
161 MEMORY_END
162 
163 static MEMORY_WRITE16_START( shdancer_writemem )
164 	{ 0x000000, 0x07ffff, MWA16_ROM },
165 	{ 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
166 	{ 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
167 	{ 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
168 	{ 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
169 	{ 0xc00000, 0xc00007, SYS16_MWA16_EXTRAM },
170 	{ 0xe4001c, 0xe4001d, sys18_refreshenable_w },
171 	{ 0xe43034, 0xe43035, MWA16_NOP },
172 	{ 0xfe0006, 0xfe0007, sound_command_nmi_w },
173 	{ 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
174 MEMORY_END
175 
176 /***************************************************************************/
177 
178 static void shdancer_update_proc( void ){
179 	sys16_fg_scrolly = sys16_textram[0x0e90/2];
180 	sys16_bg_scrolly = sys16_textram[0x0e92/2];
181 	sys16_fg_scrollx = sys16_textram[0x0e98/2];
182 	sys16_bg_scrollx = sys16_textram[0x0e9a/2];/*?*/
183 
184 	set_fg_page( sys16_textram[0x0e80/2] );
185 	set_bg_page( sys16_textram[0x0e82/2] );
186 
187 	sys16_fg2_scrollx = sys16_textram[0x0e9c/2];
188 	sys16_bg2_scrollx = sys16_textram[0x0e9e/2];
189 	sys16_fg2_scrolly = sys16_textram[0x0e94/2];
190 	sys16_bg2_scrolly = sys16_textram[0x0e96/2];
191 
192 	set_fg2_page( sys16_textram[0x0e84/2] );
193 	set_bg2_page( sys16_textram[0x0e86/2] );
194 
195 	sys18_bg2_active=0;
196 	sys18_fg2_active=0;
197 
198 	if(sys16_fg2_scrollx | sys16_fg2_scrolly | sys16_textram[0x0e84/2]) sys18_fg2_active=1;
199 	if(sys16_bg2_scrollx | sys16_bg2_scrolly | sys16_textram[0x0e86/2]) sys18_bg2_active=1;
200 
201 	{
202 		data16_t data = sys16_extraram[0/2];
203 		sys16_tile_bank0 = data&0xf;
204 		sys16_tile_bank1 = (data>>4)&0xf;
205 	}
206 }
207 
MACHINE_INIT(shdancer)208 static MACHINE_INIT( shdancer ){
209 	sys16_spritelist_end=0x8000;
210 	sys16_update_proc = shdancer_update_proc;
211 }
212 
DRIVER_INIT(shdancer)213 static DRIVER_INIT( shdancer ){
214 	unsigned char *RAM = memory_region(REGION_CPU2);
215 	machine_init_sys16_onetime();
216 	sys18_splittab_fg_x=&sys16_textram[0x0f80/2];
217 	sys18_splittab_bg_x=&sys16_textram[0x0fc0/2];
218 //	install_mem_read_handler(0, 0xffc000, 0xffc001, shdancer_skip_r );
219 	sys16_MaxShadowColors=0; // doesn't seem to use transparent shadows
220 
221 	memcpy(RAM,&RAM[0x10000],0xa000);
222 }
223 
224 /***************************************************************************/
225 
226 /*
227 static READ_HANDLER( shdancer_skip_r ){
228 	if (activecpu_get_pc()==0x2f76) {cpu_spinuntil_int(); return 0xffff;}
229 	return (*(UINT16 *)(&sys16_workingram[0x0000]));
230 }
231 */
232 
MEMORY_READ16_START(shdancbl_readmem)233 static MEMORY_READ16_START( shdancbl_readmem )
234 	{ 0x000000, 0x07ffff, MRA16_ROM },
235 	{ 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
236 	{ 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
237 	{ 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
238 	{ 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
239 	{ 0xc00000, 0xc00007, SYS16_MRA16_EXTRAM },
240 	{ 0xc40000, 0xc40001, input_port_3_word_r }, // dip1
241 	{ 0xc40002, 0xc40003, input_port_4_word_r }, // dip2
242 	{ 0xc41002, 0xc41003, input_port_0_word_r }, // player1
243 	{ 0xc41004, 0xc41005, input_port_1_word_r }, // player2
244 	{ 0xc41000, 0xc41001, input_port_2_word_r }, // service
245 //	{ 0xc40000, 0xc4ffff, MRA16_EXTRAM3 },
246 	{ 0xe43034, 0xe43035, MRA16_NOP },
247 //	{ 0xffc000, 0xffc001, shdancer_skip_r },
248 	{ 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
249 MEMORY_END
250 
251 static MEMORY_WRITE16_START( shdancbl_writemem )
252 	{ 0x000000, 0x07ffff, MWA16_ROM },
253 	{ 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
254 	{ 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
255 	{ 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
256 	{ 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
257 	{ 0xc00000, 0xc00007, SYS16_MWA16_EXTRAM },
258 //	{ 0xc40000, 0xc4ffff, SYS16_MWA16_EXTRAM3 },
259 	{ 0xe4001c, 0xe4001d, sys18_refreshenable_w },
260 	{ 0xe43034, 0xe43035, MWA16_NOP },
261 	{ 0xfe0006, 0xfe0007, sound_command_nmi_w },
262 	{ 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
263 MEMORY_END
264 
265 /***************************************************************************/
266 
267 static void shdancbl_update_proc( void ){
268 	// this is all wrong and needs re-doing
269 	sys16_fg_scrollx = sys16_textram[0x0e98/2];
270 	sys16_bg_scrollx = sys16_textram[0x0e9a/2];
271 	sys16_fg_scrolly = sys16_textram[0x0e90/2];
272 	sys16_bg_scrolly = sys16_textram[0x0e92/2];
273 
274 	set_fg_page( sys16_textram[0x0e80/2] );
275 	set_bg_page( sys16_textram[0x0e82/2] );
276 
277 	sys16_fg2_scrollx = sys16_textram[0x0e9c/2];
278 	sys16_bg2_scrollx = sys16_textram[0x0e9e/2];
279 	sys16_fg2_scrolly = sys16_textram[0x0e94/2];
280 	sys16_bg2_scrolly = sys16_textram[0x0e96/2];
281 
282 	set_fg2_page( sys16_textram[0x0e84/2] );
283 	set_bg2_page( sys16_textram[0x0e82/2] );
284 
285 	sys18_bg2_active=0;
286 	sys18_fg2_active=0;
287 
288 	if(sys16_fg2_scrollx | sys16_fg2_scrolly | sys16_textram[0x0e84/2])
289 		sys18_fg2_active=1;
290 	if(sys16_bg2_scrollx | sys16_bg2_scrolly | sys16_textram[0x0e86/2])
291 		sys18_bg2_active=1;
292 
293 	{
294 		data16_t data = sys16_extraram[0/2];
295 		sys16_tile_bank0 = data&0xf;
296 		sys16_tile_bank1 = (data>>4)&0xf;
297 	}
298 }
299 
300 
MACHINE_INIT(shdancbl)301 static MACHINE_INIT( shdancbl ){
302 	sys16_spritelist_end=0x8000;
303 	sys16_sprxoffset = -0xbc+0x77;
304 
305 	sys16_update_proc = shdancbl_update_proc;
306 }
307 
DRIVER_INIT(shdancbl)308 static DRIVER_INIT( shdancbl ){
309 	unsigned char *RAM= memory_region(REGION_CPU2);
310 	int i;
311 
312 	machine_init_sys16_onetime();
313 	sys18_splittab_fg_x=&sys16_textram[0x0f80/2];
314 	sys18_splittab_bg_x=&sys16_textram[0x0fc0/2];
315 //	install_mem_read_handler(0, 0xffc000, 0xffc001, shdancer_skip_r );
316 	sys16_MaxShadowColors=0;		// doesn't seem to use transparent shadows
317 
318 	memcpy(RAM,&RAM[0x10000],0xa000);
319 
320 	/* invert the graphics bits on the tiles */
321 	for (i = 0; i < 0xc0000; i++)
322 		memory_region(REGION_GFX1)[i] ^= 0xff;
323 }
324 
325 /***************************************************************************/
326 #if 0
327 static READ16_HANDLER( shdancrj_skip_r ){
328 	if (activecpu_get_pc()==0x2f70) {cpu_spinuntil_int(); return 0xffff;}
329 	return sys16_workingram[0xc000/2];
330 }
331 #endif
332 
MACHINE_INIT(shdancrj)333 static MACHINE_INIT( shdancrj ){
334 	sys16_spritelist_end=0x8000;
335 	sys16_patch_code(0x6821, 0xdf);
336 	sys16_update_proc = shdancer_update_proc;
337 }
338 
DRIVER_INIT(shdancrj)339 static DRIVER_INIT( shdancrj ){
340 	unsigned char *RAM= memory_region(REGION_CPU2);
341 	machine_init_sys16_onetime();
342 	sys18_splittab_fg_x=&sys16_textram[0x0f80/2];
343 	sys18_splittab_bg_x=&sys16_textram[0x0fc0/2];
344 //	install_mem_read_handler(0, 0xffc000, 0xffc001, shdancrj_skip_r );
345 
346 	memcpy(RAM,&RAM[0x10000],0xa000);
347 }
348 
349 /***************************************************************************/
350 
READ16_HANDLER(moonwlkb_skip_r)351 static READ16_HANDLER( moonwlkb_skip_r ){
352 	if (activecpu_get_pc()==0x308a) {cpu_spinuntil_int(); return 0xffff;}
353 	return sys16_workingram[0x202c/2];
354 }
355 
MEMORY_READ16_START(moonwalk_readmem)356 static MEMORY_READ16_START( moonwalk_readmem )
357 	{ 0x000000, 0x07ffff, MRA16_ROM },
358 	{ 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
359 	{ 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
360 	{ 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
361 	{ 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
362 	{ 0xc00000, 0xc0ffff, SYS16_MRA16_EXTRAM },
363 	{ 0xc40000, 0xc40001, input_port_3_word_r }, // dip1
364 	{ 0xc40002, 0xc40003, input_port_4_word_r }, // dip2
365 	{ 0xc41002, 0xc41003, input_port_0_word_r }, // player1
366 	{ 0xc41004, 0xc41005, input_port_1_word_r }, // player2
367 	{ 0xc41006, 0xc41007, input_port_5_word_r }, // player3
368 	{ 0xc41000, 0xc41001, input_port_2_word_r }, // service
369 	{ 0xe40000, 0xe4ffff, SYS16_MRA16_EXTRAM2 },
370 	{ 0xfe0000, 0xfeffff, SYS16_MRA16_EXTRAM4 },
371 	{ 0xffe02c, 0xffe02d, moonwlkb_skip_r },
372 	{ 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
373 MEMORY_END
374 
375 static MEMORY_WRITE16_START( moonwalk_writemem )
376 	{ 0x000000, 0x07ffff, MWA16_ROM },
377 	{ 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
378 	{ 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
379 	{ 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
380 	{ 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
381 	{ 0xc00000, 0xc0ffff, SYS16_MWA16_EXTRAM },
382 	{ 0xc40006, 0xc40007, sound_command_nmi_w },
383 	{ 0xc46600, 0xc46601, sys18_refreshenable_w },
384 	{ 0xc46800, 0xc46801, SYS16_MWA16_EXTRAM3 },
385 	{ 0xe40000, 0xe4ffff, SYS16_MWA16_EXTRAM2 },
386 	{ 0xfe0000, 0xfeffff, SYS16_MWA16_EXTRAM4 },
387 	{ 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
388 MEMORY_END
389 
390 /***************************************************************************/
391 
392 static void moonwalk_update_proc( void ){
393 	sys16_fg_scrollx = sys16_textram[0x0e98/2];
394 	sys16_bg_scrollx = sys16_textram[0x0e9a/2];
395 	sys16_fg_scrolly = sys16_textram[0x0e90/2];
396 	sys16_bg_scrolly = sys16_textram[0x0e92/2];
397 
398 	set_fg_page( sys16_textram[0x0e80/2] );
399 	set_bg_page( sys16_textram[0x0e82/2] );
400 
401 	sys16_fg2_scrollx = sys16_textram[0x0e9c/2];
402 	sys16_bg2_scrollx = sys16_textram[0x0e9e/2];
403 	sys16_fg2_scrolly = sys16_textram[0x0e94/2];
404 	sys16_bg2_scrolly = sys16_textram[0x0e96/2];
405 
406 	set_fg2_page( sys16_textram[0x0e84/2] );
407 	set_bg2_page( sys16_textram[0x0e86/2] );
408 
409 	if(sys16_fg2_scrollx | sys16_fg2_scrolly | sys16_textram[0x0e84/2])
410 		sys18_fg2_active=1;
411 	else
412 		sys18_fg2_active=0;
413 	if(sys16_bg2_scrollx | sys16_bg2_scrolly | sys16_textram[0x0e86/2])
414 		sys18_bg2_active=1;
415 	else
416 		sys18_bg2_active=0;
417 
418 	{
419 		data16_t data = sys16_extraram3[0/2];
420 		sys16_tile_bank0 = data&0xf;
421 		sys16_tile_bank1 = (data>>4)&0xf;
422 	}
423 }
424 
MACHINE_INIT(moonwalk)425 static MACHINE_INIT( moonwalk ){
426 	sys16_bg_priority_value=0x1000;
427 	sys16_sprxoffset = -0x238;
428 	sys16_spritelist_end=0x8000;
429 
430 	sys16_patch_code( 0x70116, 0x4e);
431 	sys16_patch_code( 0x70117, 0x71);
432 
433 	sys16_patch_code( 0x314a, 0x46);
434 	sys16_patch_code( 0x314b, 0x42);
435 
436 	sys16_patch_code( 0x311b, 0x3f);
437 
438 	sys16_patch_code( 0x70103, 0x00);
439 	sys16_patch_code( 0x70109, 0x00);
440 	sys16_patch_code( 0x07727, 0x00);
441 	sys16_patch_code( 0x07729, 0x00);
442 	sys16_patch_code( 0x0780d, 0x00);
443 	sys16_patch_code( 0x0780f, 0x00);
444 	sys16_patch_code( 0x07861, 0x00);
445 	sys16_patch_code( 0x07863, 0x00);
446 	sys16_patch_code( 0x07d47, 0x00);
447 	sys16_patch_code( 0x07863, 0x00);
448 	sys16_patch_code( 0x08533, 0x00);
449 	sys16_patch_code( 0x08535, 0x00);
450 	sys16_patch_code( 0x085bd, 0x00);
451 	sys16_patch_code( 0x085bf, 0x00);
452 	sys16_patch_code( 0x09a4b, 0x00);
453 	sys16_patch_code( 0x09a4d, 0x00);
454 	sys16_patch_code( 0x09b2f, 0x00);
455 	sys16_patch_code( 0x09b31, 0x00);
456 	sys16_patch_code( 0x0a05b, 0x00);
457 	sys16_patch_code( 0x0a05d, 0x00);
458 	sys16_patch_code( 0x0a23f, 0x00);
459 	sys16_patch_code( 0x0a241, 0x00);
460 	sys16_patch_code( 0x10159, 0x00);
461 	sys16_patch_code( 0x1015b, 0x00);
462 	sys16_patch_code( 0x109fb, 0x00);
463 	sys16_patch_code( 0x109fd, 0x00);
464 
465 	// * SEGA mark
466 	sys16_patch_code( 0x70212, 0x4e);
467 	sys16_patch_code( 0x70213, 0x71);
468 
469 	sys16_update_proc = moonwalk_update_proc;
470 }
471 
DRIVER_INIT(moonwalk)472 static DRIVER_INIT( moonwalk ){
473 	unsigned char *RAM= memory_region(REGION_CPU2);
474 	machine_init_sys16_onetime();
475 	sys18_splittab_fg_x=&sys16_textram[0x0f80/2];
476 	sys18_splittab_bg_x=&sys16_textram[0x0fc0/2];
477 
478 	memcpy(RAM,&RAM[0x10000],0xa000);
479 }
480 
481 /***************************************************************************/
482 
READ16_HANDLER(astorm_skip_r)483 static READ16_HANDLER( astorm_skip_r ){
484 	if (activecpu_get_pc()==0x3d4c) {cpu_spinuntil_int(); return 0xffff;}
485 	return sys16_workingram[0x2c2c/2];
486 }
487 
MEMORY_READ16_START(astorm_readmem)488 static MEMORY_READ16_START( astorm_readmem )
489 	{ 0x000000, 0x07ffff, MRA16_ROM },
490 	{ 0x100000, 0x10ffff, SYS16_MRA16_TILERAM },
491 	{ 0x110000, 0x110fff, SYS16_MRA16_TEXTRAM },
492 	{ 0x140000, 0x140fff, SYS16_MRA16_PALETTERAM },
493 	{ 0x200000, 0x200fff, SYS16_MRA16_SPRITERAM },
494 	{ 0xa00000, 0xa00001, input_port_3_word_r }, // dip1
495 	{ 0xa00002, 0xa00003, input_port_4_word_r }, // dip2
496 	{ 0xa01002, 0xa01003, input_port_0_word_r }, // player1
497 	{ 0xa01004, 0xa01005, input_port_1_word_r }, // player2
498 	{ 0xa01006, 0xa01007, input_port_5_word_r }, // player3
499 	{ 0xa01000, 0xa01001, input_port_2_word_r }, // service
500 	{ 0xa00000, 0xa0ffff, SYS16_MRA16_EXTRAM2 },
501 	{ 0xc00000, 0xc0ffff, SYS16_MRA16_EXTRAM },
502 	{ 0xffec2c, 0xffec2d, astorm_skip_r },
503 	{ 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
504 MEMORY_END
505 
506 static MEMORY_WRITE16_START( astorm_writemem )
507 	{ 0x000000, 0x07ffff, MWA16_ROM },
508 	{ 0x100000, 0x10ffff, SYS16_MWA16_TILERAM },
509 	{ 0x110000, 0x110fff, SYS16_MWA16_TEXTRAM },
510 	{ 0x140000, 0x140fff, SYS16_MWA16_PALETTERAM },
511 	{ 0x200000, 0x200fff, SYS16_MWA16_SPRITERAM },
512 	{ 0xa00006, 0xa00007, sound_command_nmi_w },
513 	{ 0xa00000, 0xa0ffff, SYS16_MWA16_EXTRAM2 },
514 	{ 0xc00000, 0xc0ffff, SYS16_MWA16_EXTRAM },
515 	{ 0xc46600, 0xc46601, sys18_refreshenable_w },
516 	{ 0xfe0020, 0xfe003f, MWA16_NOP },
517 	{ 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
518 MEMORY_END
519 
520 /***************************************************************************/
521 
522 static void astorm_update_proc( void ){
523 	data16_t data;
524 	sys16_fg_scrollx = sys16_textram[0x0e98/2];
525 	sys16_bg_scrollx = sys16_textram[0x0e9a/2];
526 	sys16_fg_scrolly = sys16_textram[0x0e90/2];
527 	sys16_bg_scrolly = sys16_textram[0x0e92/2];
528 
529 	data = sys16_textram[0x0e80/2];
530 	sys16_fg_page[1] = data>>12;
531 	sys16_fg_page[3] = (data>>8)&0xf;
532 	sys16_fg_page[0] = (data>>4)&0xf;
533 	sys16_fg_page[2] = data&0xf;
534 
535 	data = sys16_textram[0x0e82/2];
536 	sys16_bg_page[1] = data>>12;
537 	sys16_bg_page[3] = (data>>8)&0xf;
538 	sys16_bg_page[0] = (data>>4)&0xf;
539 	sys16_bg_page[2] = data&0xf;
540 
541 	sys16_fg2_scrollx = sys16_textram[0x0e9c/2];
542 	sys16_bg2_scrollx = sys16_textram[0x0e9e/2];
543 	sys16_fg2_scrolly = sys16_textram[0x0e94/2];
544 	sys16_bg2_scrolly = sys16_textram[0x0e96/2];
545 
546 	data = sys16_textram[0x0e84/2];
547 	sys16_fg2_page[1] = data>>12;
548 	sys16_fg2_page[3] = (data>>8)&0xf;
549 	sys16_fg2_page[0] = (data>>4)&0xf;
550 	sys16_fg2_page[2] = data&0xf;
551 
552 	data = sys16_textram[0x0e86/2];
553 	sys16_bg2_page[1] = data>>12;
554 	sys16_bg2_page[3] = (data>>8)&0xf;
555 	sys16_bg2_page[0] = (data>>4)&0xf;
556 	sys16_bg2_page[2] = data&0xf;
557 
558 // enable regs
559 	if(sys16_fg2_scrollx | sys16_fg2_scrolly | sys16_textram[0x0e84/2])
560 		sys18_fg2_active=1;
561 	else
562 		sys18_fg2_active=0;
563 	if(sys16_bg2_scrollx | sys16_bg2_scrolly | sys16_textram[0x0e86/2])
564 		sys18_bg2_active=1;
565 	else
566 		sys18_bg2_active=0;
567 
568 	{
569 		data = sys16_extraram2[0xe/2]; // 0xa0000f
570 		sys16_tile_bank0 = data&0xf;
571 		sys16_tile_bank1 = (data>>4)&0xf;
572 	}
573 }
574 
MACHINE_INIT(astorm)575 static MACHINE_INIT( astorm ){
576 	sys16_fgxoffset = sys16_bgxoffset = -9;
577 
578 	sys16_patch_code( 0x2D6E, 0x32 );
579 	sys16_patch_code( 0x2D6F, 0x3c );
580 	sys16_patch_code( 0x2D70, 0x80 );
581 	sys16_patch_code( 0x2D71, 0x00 );
582 	sys16_patch_code( 0x2D72, 0x33 );
583 	sys16_patch_code( 0x2D73, 0xc1 );
584 	sys16_patch_code( 0x2ea2, 0x30 );
585 	sys16_patch_code( 0x2ea3, 0x38 );
586 	sys16_patch_code( 0x2ea4, 0xec );
587 	sys16_patch_code( 0x2ea5, 0xf6 );
588 	sys16_patch_code( 0x2ea6, 0x30 );
589 	sys16_patch_code( 0x2ea7, 0x80 );
590 	sys16_patch_code( 0x2e5c, 0x30 );
591 	sys16_patch_code( 0x2e5d, 0x38 );
592 	sys16_patch_code( 0x2e5e, 0xec );
593 	sys16_patch_code( 0x2e5f, 0xe2 );
594 	sys16_patch_code( 0x2e60, 0xc0 );
595 	sys16_patch_code( 0x2e61, 0x7c );
596 
597 	sys16_patch_code( 0x4cd8, 0x02 );
598 	sys16_patch_code( 0x4cec, 0x03 );
599 	sys16_patch_code( 0x2dc6c, 0xe9 );
600 	sys16_patch_code( 0x2dc64, 0x10 );
601 	sys16_patch_code( 0x2dc65, 0x10 );
602 	sys16_patch_code( 0x3a100, 0x10 );
603 	sys16_patch_code( 0x3a101, 0x13 );
604 	sys16_patch_code( 0x3a102, 0x90 );
605 	sys16_patch_code( 0x3a103, 0x2b );
606 	sys16_patch_code( 0x3a104, 0x00 );
607 	sys16_patch_code( 0x3a105, 0x01 );
608 	sys16_patch_code( 0x3a106, 0x0c );
609 	sys16_patch_code( 0x3a107, 0x00 );
610 	sys16_patch_code( 0x3a108, 0x00 );
611 	sys16_patch_code( 0x3a109, 0x01 );
612 	sys16_patch_code( 0x3a10a, 0x66 );
613 	sys16_patch_code( 0x3a10b, 0x06 );
614 	sys16_patch_code( 0x3a10c, 0x42 );
615 	sys16_patch_code( 0x3a10d, 0x40 );
616 	sys16_patch_code( 0x3a10e, 0x54 );
617 	sys16_patch_code( 0x3a10f, 0x8b );
618 	sys16_patch_code( 0x3a110, 0x60 );
619 	sys16_patch_code( 0x3a111, 0x02 );
620 	sys16_patch_code( 0x3a112, 0x30 );
621 	sys16_patch_code( 0x3a113, 0x1b );
622 	sys16_patch_code( 0x3a114, 0x34 );
623 	sys16_patch_code( 0x3a115, 0xc0 );
624 	sys16_patch_code( 0x3a116, 0x34 );
625 	sys16_patch_code( 0x3a117, 0xdb );
626 	sys16_patch_code( 0x3a118, 0x24 );
627 	sys16_patch_code( 0x3a119, 0xdb );
628 	sys16_patch_code( 0x3a11a, 0x24 );
629 	sys16_patch_code( 0x3a11b, 0xdb );
630 	sys16_patch_code( 0x3a11c, 0x4e );
631 	sys16_patch_code( 0x3a11d, 0x75 );
632 	sys16_patch_code( 0xaf8e, 0x66 );
633 
634 	/* fix missing credit text */
635 	sys16_patch_code( 0x3f9a, 0xec );
636 	sys16_patch_code( 0x3f9b, 0x36 );
637 
638 	sys16_update_proc = astorm_update_proc;
639 }
640 
DRIVER_INIT(astorm)641 static DRIVER_INIT( astorm ){
642 	unsigned char *RAM= memory_region(REGION_CPU2);
643 	machine_init_sys16_onetime();
644 	sys18_splittab_fg_x=&sys16_textram[0x0f80/2];
645 	sys18_splittab_bg_x=&sys16_textram[0x0fc0/2];
646 
647 	memcpy(RAM,&RAM[0x10000],0xa000);
648 	sys16_MaxShadowColors = 0; // doesn't seem to use transparent shadows
649 }
650 
651 /*****************************************************************************/
652 
653 static MACHINE_DRIVER_START( system18 )
654 
655 	/* basic machine hardware */
656 	MDRV_CPU_ADD_TAG("main", M68000, 10000000)
657 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
658 
659 	MDRV_CPU_ADD_TAG("sound", Z80, 4096000*2) /* overclocked to fix sound, but wrong! */
660 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
661 	MDRV_CPU_MEMORY(sound_readmem_18,sound_writemem_18)
662 	MDRV_CPU_PORTS(sound_readport_18,sound_writeport_18)
663 
664 	MDRV_FRAMES_PER_SECOND(57.23)
665 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
666 
667 	/* video hardware */
668 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
669 	MDRV_SCREEN_SIZE(40*8, 28*8)
670 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
671 	MDRV_GFXDECODE(sys16_gfxdecodeinfo)
672 	MDRV_PALETTE_LENGTH(2048*ShadowColorsMultiplier)
673 
674 	MDRV_VIDEO_START(system18)
675 	MDRV_VIDEO_UPDATE(system18)
676 
677 	/* sound hardware */
678 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
679 	MDRV_SOUND_ADD_TAG("3438", YM3438, sys18_ym3438_interface)
680 	MDRV_SOUND_ADD_TAG("5c68", RF5C68, sys18_rf5c68_interface)
681 MACHINE_DRIVER_END
682 
683 
684 static MACHINE_DRIVER_START( astorm )
685 
686 	/* basic machine hardware */
687 	MDRV_IMPORT_FROM(system18)
688 	MDRV_CPU_MODIFY("main")
689 	MDRV_CPU_MEMORY(astorm_readmem,astorm_writemem)
690 
691 	MDRV_MACHINE_INIT(astorm)
692 MACHINE_DRIVER_END
693 
694 
695 static MACHINE_DRIVER_START( moonwalk )
696 
697 	/* basic machine hardware */
698 	MDRV_IMPORT_FROM(system18)
699 	MDRV_CPU_MODIFY("main")
700 	MDRV_CPU_MEMORY(moonwalk_readmem,moonwalk_writemem)
701 
702 	MDRV_MACHINE_INIT(moonwalk)
703 MACHINE_DRIVER_END
704 
705 
706 static MACHINE_DRIVER_START( shdancer )
707 
708 	/* basic machine hardware */
709 	MDRV_IMPORT_FROM(system18)
710 	MDRV_CPU_MODIFY("main")
711 	MDRV_CPU_MEMORY(shdancer_readmem,shdancer_writemem)
712 
713 	MDRV_MACHINE_INIT(shdancer)
714 MACHINE_DRIVER_END
715 
716 
717 static MACHINE_DRIVER_START( shdancbl )
718 
719 	/* basic machine hardware */
720 	MDRV_IMPORT_FROM(system18)
721 	MDRV_CPU_MODIFY("main")
722 	MDRV_CPU_MEMORY(shdancbl_readmem,shdancbl_writemem)
723 
724 	MDRV_MACHINE_INIT(shdancbl)
725 MACHINE_DRIVER_END
726 
727 
728 static MACHINE_DRIVER_START( shdancrj )
729 
730 	/* basic machine hardware */
731 	MDRV_IMPORT_FROM(shdancer)
732 
733 	MDRV_MACHINE_INIT(shdancrj)
734 MACHINE_DRIVER_END
735 
736 
737 /***************************************************************************/
738 
739 INPUT_PORTS_START( astorm )
740 	PORT_START /* player 1 */
741 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
742 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
743 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
744 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
745 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
746 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
747 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
748 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
749 	PORT_START /* player 2 */
750 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
751 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
752 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
753 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
754 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
755 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
756 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
757 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
758 	PORT_START
759 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
760 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
761 	PORT_BITX(0x04, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
762 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
763 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
764 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
765 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 )
766 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
767 	SYS16_COINAGE
768 	PORT_START	/* DSW1 */
769 	PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" )
770 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
771 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
772 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
773 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
774 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
775 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) )
776 	PORT_DIPSETTING(    0x04, "Easiest" )
777 	PORT_DIPSETTING(    0x08, "Easier" )
778 	PORT_DIPSETTING(    0x0c, "Easy" )
779 	PORT_DIPSETTING(    0x1c, "Normal" )
780 	PORT_DIPSETTING(    0x10, "Hard" )
781 	PORT_DIPSETTING(    0x14, "Harder" )
782 	PORT_DIPSETTING(    0x18, "Hardest" )
783 	PORT_DIPSETTING(    0x00, "Special" )
784 	PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" )
785 	PORT_DIPSETTING(    0x20, "3" )
786 	PORT_DIPSETTING(    0x00, "1" )
787 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
788 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
789 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
790 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
791 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
792 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
793 	PORT_START /* player 3 */
794 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
795 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
796 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
797 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
798 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
799 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
800 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
801 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
802 INPUT_PORTS_END
803 
804 INPUT_PORTS_START( moonwalk )
805 	PORT_START /* player 1 */
806 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
807 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
808 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
809 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
810 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
811 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
812 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
813 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
814 	PORT_START /* player 2 */
815 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
816 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
817 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
818 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
819 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
820 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
821 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
822 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
823 	PORT_START /* service */
824 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
825 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
826 	PORT_BITX(0x04, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
827 	PORT_BITX(0x08, 0x08, IPT_TILT, "Test", KEYCODE_T, IP_JOY_NONE )
828 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
829 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
830 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
831 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
832 	SYS16_COINAGE
833 	PORT_START	/* DSW1 */
834 	PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" )
835 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
836 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
837 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
838 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
839 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
840 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
841 	PORT_DIPSETTING(    0x04, "2" )
842 	PORT_DIPSETTING(    0x00, "3" )
843 	PORT_DIPNAME( 0x08, 0x08, "Player Vitality" )
844 	PORT_DIPSETTING(    0x08, "Low" )
845 	PORT_DIPSETTING(    0x00, "High" )
846 	PORT_DIPNAME( 0x10, 0x00, "Play Mode" )
847 	PORT_DIPSETTING(    0x10, "2 Players" )
848 	PORT_DIPSETTING(    0x00, "3 Players" )
849 	PORT_DIPNAME( 0x20, 0x20, "Coin Mode" )
850 	PORT_DIPSETTING(    0x20, "Common" )
851 	PORT_DIPSETTING(    0x00, "Individual" )
852 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
853 	PORT_DIPSETTING(    0x80, "Easy" )
854 	PORT_DIPSETTING(    0xc0, "Normal" )
855 	PORT_DIPSETTING(    0x40, "Hard" )
856 	PORT_DIPSETTING(    0x00, "Hardest" )
857 	PORT_START /* player 3 */
858 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
859 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
860 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
861 //	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
862 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 )
863 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
864 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
865 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
866 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
867 INPUT_PORTS_END
868 
869 INPUT_PORTS_START( shdancer )
870 	PORT_START /* player 1 */
871 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
872 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
873 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
874 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
875 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
876 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
877 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
878 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
879 	PORT_START /* player 2 */
880 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
881 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
882 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
883 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
884 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
885 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
886 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
887 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
888 	SYS16_SERVICE
889 	SYS16_COINAGE
890 	PORT_START	/* DSW1 */
891 	PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" )
892 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
893 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
894 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
895 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
896 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
897 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
898 	PORT_DIPSETTING(    0x00, "2" )
899 	PORT_DIPSETTING(    0x0c, "3" )
900 	PORT_DIPSETTING(    0x08, "4" )
901 	PORT_DIPSETTING(    0x04, "5" )
902 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
903 	PORT_DIPSETTING(    0x20, "Easy" )
904 	PORT_DIPSETTING(    0x30, "Normal" )
905 	PORT_DIPSETTING(    0x10, "Hard" )
906 	PORT_DIPSETTING(    0x00, "Hardest" )
907 	PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" )
908 	PORT_DIPSETTING(    0x00, "2.20" )
909 	PORT_DIPSETTING(    0x40, "2.40" )
910 	PORT_DIPSETTING(    0xc0, "3.00" )
911 	PORT_DIPSETTING(    0x80, "3.30" )
912 INPUT_PORTS_END
913 
914 /*****************************************************************************/
915 
916 // Ace Attacker
917 ROM_START( aceattac )
918 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
919 	ROM_LOAD16_BYTE( "11491.4a", 0x000000, 0x10000, CRC(77b820f1) SHA1(c33183c94c5029e2c4d6444f37404da66aacecc4) )
920 	ROM_LOAD16_BYTE( "11489.1a", 0x000001, 0x10000, CRC(bbe623c5) SHA1(6d047699c7b6df7ebb7a3c9bee032e2536eed84c) )
921 	ROM_LOAD16_BYTE( "11492.5a", 0x020000, 0x10000, CRC(d8bd3139) SHA1(54915d4e8a616e0e54135ca34daf4357b8bfa068) )
922 	ROM_LOAD16_BYTE( "11490.2a", 0x020001, 0x10000, CRC(38cb3a41) SHA1(1d74cc69907cdff2d85e965b80bf3f551465257e) )
923 
924 	ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
925 	ROM_LOAD( "11493.9b",  0x00000, 0x10000, CRC(654485d9) SHA1(b431270564c4e33fd70c8c85af1fcbff8b59ba49) )
926 	ROM_LOAD( "11494.10b", 0x10000, 0x10000, CRC(b67971ab) SHA1(95cb6927baf425bcc290832ea9741b19852c7a1b) )
927 	ROM_LOAD( "11495.11b", 0x20000, 0x10000, CRC(b687ab61) SHA1(b08130a9d777c918972895136b1bf520d7117114) )
928 
929 	ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
930 	ROM_LOAD16_BYTE( "11501.1b", 0x00001, 0x10000, CRC(09179ead) SHA1(3e6bf04e1e9ea867d087a47ff04ad0a064a8e299) )
931 	ROM_LOAD16_BYTE( "11502.2b", 0x00000, 0x10000, CRC(a3ee36b8) SHA1(bc946ad67b8ad09d947465ab73160885a4a57be5) )
932 	ROM_LOAD16_BYTE( "11503.3b", 0x20001, 0x10000, CRC(344c0692) SHA1(3125701f6bb91d8f64515e214b571e169c30a444) )
933 	ROM_LOAD16_BYTE( "11504.4b", 0x20000, 0x10000, CRC(7cae7920) SHA1(9f00e01d7cc86a0bf4f84e78a56b7efbb97c5591) )
934 	ROM_LOAD16_BYTE( "11505.5b", 0x40001, 0x10000, CRC(b67f1ecf) SHA1(3a26cdf91e5a1a11c1a8857e713a9e00cc1bfce0) )
935 	ROM_LOAD16_BYTE( "11506.6b", 0x40000, 0x10000, CRC(b0104def) SHA1(c81a66ec3a600c1d4c5d058caef15936c59b2574) )
936 	ROM_LOAD16_BYTE( "11507.7b", 0x60001, 0x10000, CRC(a2af710a) SHA1(1c8b75b72797146c2eb788511f8cb1b367fc3e0d) )
937 	ROM_LOAD16_BYTE( "11508.8b", 0x60000, 0x10000, CRC(5cbb833c) SHA1(dc7041b6a4fa75d050bfc2176d0f9e242b55a0b8) )
938 
939 	ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
940 	ROM_LOAD( "11496.7a",	 0x00000, 0x08000, CRC(82cb40a9) SHA1(daf2233438331ba6e6ff8bda4015e92d23e616c5) )
941 	ROM_LOAD( "11497.8a",    0x10000, 0x08000, CRC(b04f62cc) SHA1(29b468e5a565dc14e00c371913663eca66ccb44d) )
942 	ROM_LOAD( "11498.9a",    0x18000, 0x08000, CRC(97baf52b) SHA1(97800014250b0099c7e53d597b0ef02ae14e6dba) )
943 	ROM_LOAD( "11499.10a",   0x20000, 0x08000, CRC(ea332866) SHA1(eba0b422b39f7f3f81af1059043a87d944c4aff7) )
944 	ROM_LOAD( "11500.11a",   0x28000, 0x08000, CRC(2ddf1c31) SHA1(77b20edbbd801072b20d9dc5e8fa2f468e53d79e) )
945 ROM_END
946 
947 // Alien Storm
948 ROM_START( astorm )
949 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
950 	ROM_LOAD16_BYTE( "epr13085.bin", 0x000000, 0x40000, CRC(15f74e2d) SHA1(30d9d099ec18907edd3d20df312565c3bd5a80de) )
951 	ROM_LOAD16_BYTE( "epr13084.bin", 0x000001, 0x40000, CRC(9687b38f) SHA1(cdeb5b4f06ad4ad8ca579392c1ec901487b08e76) )
952 
953 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
954 	ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) )
955 	ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) )
956 	ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) )
957 
958 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
959 	ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) )
960 	ROM_LOAD16_BYTE( "mpr13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) )
961 	ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) )
962 	ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) )
963 	ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) )
964 	ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) )
965 	ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) )
966 	ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
967 
968 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* sound CPU */
969 	ROM_LOAD( "epr13083.bin", 0x10000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) )
970 	ROM_LOAD( "epr13076.bin", 0x30000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
971 	ROM_LOAD( "epr13077.bin", 0x70000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
972 	ROM_LOAD( "epr13078.bin", 0xb0000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
973 ROM_END
974 
975 ROM_START( astorm2p )
976 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
977 	ROM_LOAD16_BYTE( "epr13182.bin", 0x000000, 0x40000, CRC(e31f2a1c) SHA1(690ee10c36e5bb6175470fb5564527e0e4a94d2c) )
978 	ROM_LOAD16_BYTE( "epr13181.bin", 0x000001, 0x40000, CRC(78cd3b26) SHA1(a81b807c5da625d8e4648ae80c41e4ca3870c0fa) )
979 
980 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
981 	ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) )
982 	ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) )
983 	ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) )
984 
985 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
986 	ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) )
987 	ROM_LOAD16_BYTE( "mpr13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) )
988 	ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) )
989 	ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) )
990 	ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) )
991 	ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) )
992 	ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) )
993 	ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
994 
995 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* sound CPU */
996 	ROM_LOAD( "ep13083a.bin", 0x10000, 0x20000, CRC(e7528e06) SHA1(1f4e618692c20aeb316d578c5ded12440eb072ab) )
997 	ROM_LOAD( "epr13076.bin", 0x30000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
998 	ROM_LOAD( "epr13077.bin", 0x70000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
999 	ROM_LOAD( "epr13078.bin", 0xb0000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
1000 ROM_END
1001 
1002 ROM_START( astormbl )
1003 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
1004 	ROM_LOAD16_BYTE( "astorm.a6", 0x000000, 0x40000, CRC(7682ed3e) SHA1(b857352ad9c66488e91f60989472638c483e4ae8) )
1005 	ROM_LOAD16_BYTE( "astorm.a5", 0x000001, 0x40000, CRC(efe9711e) SHA1(496fd9e30941fde1658fab7292a669ef7964cecb) )
1006 
1007 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1008 	ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) )
1009 	ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) )
1010 	ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) )
1011 
1012 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1013 	ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) )
1014 	ROM_LOAD16_BYTE( "astorm.a11",   0x000000, 0x40000, CRC(7829c4f3) SHA1(3adb7aa7f70163d3848c98316e18b9783c41d663) )
1015 	ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) )
1016 	ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) )
1017 	ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) )
1018 	ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) )
1019 	ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) )
1020 	ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
1021 
1022 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* sound CPU */
1023 	ROM_LOAD( "epr13083.bin", 0x10000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) )
1024 	ROM_LOAD( "epr13076.bin", 0x30000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
1025 	ROM_LOAD( "epr13077.bin", 0x70000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
1026 	ROM_LOAD( "epr13078.bin", 0xb0000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
1027 ROM_END
1028 
1029 // Bloxeed
1030 ROM_START( bloxeed )
1031 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1032 	ROM_LOAD16_BYTE( "rom-e.rom", 0x000000, 0x20000, CRC(a481581a) SHA1(5ce5a0a082622919d2fe0e7d52ec807b2e2c25a2) )
1033 	ROM_LOAD16_BYTE( "rom-o.rom", 0x000001, 0x20000, CRC(dd1bc3bf) SHA1(c0d79862a349ea4dac103c17325633c5dd4a93d1) )
1034 
1035 	ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1036 	ROM_LOAD( "scr0.rom", 0x00000, 0x10000, CRC(e024aa33) SHA1(d734be240cd05031aaadf9735c0b1b00e8e6d4cb) )
1037 	ROM_LOAD( "scr1.rom", 0x10000, 0x10000, CRC(8041b814) SHA1(29fa49ba9a73eed07865a86ea774e2c6a60aed5b) )
1038 	ROM_LOAD( "scr2.rom", 0x20000, 0x10000, CRC(de32285e) SHA1(8994dc128d6a23763e5fcfca1868b336d4aa0a21) )
1039 
1040 	ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */
1041 	ROM_LOAD16_BYTE( "obj0-e.rom", 0x00001, 0x10000, CRC(90d31a8c) SHA1(1747652a5109ce65add197cf06535f2463a99fdc) )
1042 	ROM_LOAD16_BYTE( "obj0-o.rom", 0x00000, 0x10000, CRC(f0c0f49d) SHA1(7ecd591265165f3149241e2ceb5059faab88360f) )
1043 
1044 	ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
1045 	ROM_LOAD( "sound0.rom",	 0x00000, 0x20000, CRC(6f2fc63c) SHA1(3cce22c8f80013f05b5a2d36c42a61a81e4d6cbd) )
1046 ROM_END
1047 
1048 // Clutch Hitter
1049 ROM_START( cltchitr )
1050 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1051 	ROM_LOAD16_BYTE( "epr13795.6a", 0x000000, 0x40000, CRC(b0b60b67) SHA1(ee3325ddb7461008f556c1696157a766225b9ef5) )
1052 	ROM_LOAD16_BYTE( "epr13751.4a", 0x000001, 0x40000, CRC(c8d80233) SHA1(69cdbb989f580abbb006820347becf8d233fa773) )
1053 	ROM_LOAD16_BYTE( "epr13786.7a", 0x080000, 0x40000, CRC(3095dac0) SHA1(20edce74b6f2a82a3865613e601a0e212615d0e4) )
1054 	ROM_LOAD16_BYTE( "epr13784.5a", 0x080001, 0x40000, CRC(80c8180d) SHA1(80e72ab7d97714009fd31b3d50176af84b0dcdb7) )
1055 
1056 	ROM_REGION( 0x180000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1057 	ROM_LOAD( "mpr13787.10a", 0x000000, 0x80000, CRC(f05c68c6) SHA1(b6a0535b6c734a0c89fdb6506c32ffe6ab3aa8cd) )
1058 	ROM_LOAD( "mpr13788.11a", 0x080000, 0x80000, CRC(0106fea6) SHA1(e16e2a469ecbbc704021dee6264db30aa0898368) )
1059 	ROM_LOAD( "mpr13789.12a", 0x100000, 0x80000, CRC(09ba8835) SHA1(72e83dd1793a7f4b2b881e71f262493e3d4992b3) )
1060 
1061 	ROM_REGION( 0x300000, REGION_GFX2, 0 ) /* sprites */
1062 	ROM_LOAD16_BYTE( "mpr13773.1c",  0x000001, 0x80000, CRC(3fc600e5) SHA1(8bec4ecf6a4e4b38d13133960036a5a4800a668e) )
1063 	ROM_LOAD16_BYTE( "mpr13774.2c",  0x000000, 0x80000, CRC(2411a824) SHA1(0e383ccc4e0830ffb395d5102e2950610c147007) )
1064 	ROM_LOAD16_BYTE( "mpr13775.3c",  0x100001, 0x80000, CRC(cf527bf6) SHA1(1f9cf1f0e92709f0465dc97ebbdaa715a419f7a7) )
1065 	ROM_LOAD16_BYTE( "mpr13779.10c", 0x100000, 0x80000, CRC(c707f416) SHA1(e6a9d89849f7f1c303a3ca29a629f81397945a2d) )
1066 	ROM_LOAD16_BYTE( "mpr13780.11c", 0x200001, 0x80000, CRC(a4c341e0) SHA1(15a0b5a42b56465a7b7df98968cc2ed177ce6f59) )
1067 	ROM_LOAD16_BYTE( "mpr13781.12c", 0x200000, 0x80000, CRC(f33b13af) SHA1(d3eb64dcf12d532454bf3cd6c86528c0f11ee316) )
1068 
1069 	ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */
1070 	ROM_LOAD( "epr13793.7c",    0x000000, 0x80000, CRC(a3d31944) SHA1(44d17aa0598eacfac4b12c8955fd1067ca09abbd) )
1071 	ROM_LOAD( "epr13791.5c",	0x080000, 0x80000, CRC(35c16d80) SHA1(7ed04600748c5efb63e25f066daa163e9c0d8038) )
1072 	ROM_LOAD( "epr13792.6c",    0x100000, 0x80000, CRC(808f9695) SHA1(d50677d20083ad56dbf0864db05f76f93a4e9eba) )
1073 ROM_END
1074 
1075 // DD Crew
1076 ROM_START( ddcrew )
1077 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1078 	ROM_LOAD16_BYTE( "14153.6a", 0x000000, 0x40000, CRC(e01fae0c) SHA1(7166f955324f73e94d8ae6d2a5b2f4b497e62933) )
1079 	ROM_LOAD16_BYTE( "14152.4a", 0x000001, 0x40000, CRC(69c7b571) SHA1(9fe4815a1cff0a46a754a6bdee12abaf7beb6501) )
1080 	ROM_LOAD16_BYTE( "14141.7a", 0x080000, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
1081 	ROM_LOAD16_BYTE( "14139.5a", 0x080001, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
1082 
1083 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1084 	ROM_LOAD( "14127.1c", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
1085 	ROM_LOAD( "14128.2c", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
1086 	ROM_LOAD( "14129.3c", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
1087 
1088 	ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* sprites */
1089 	ROM_LOAD16_BYTE( "14134.10c", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
1090 	ROM_LOAD16_BYTE( "14142.10a", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
1091 	ROM_LOAD16_BYTE( "14135.11c", 0x100001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
1092 	ROM_LOAD16_BYTE( "14143.11a", 0x100000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
1093 	ROM_LOAD16_BYTE( "14136.12c", 0x200001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
1094 	ROM_LOAD16_BYTE( "14144.12a", 0x200000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
1095 	ROM_LOAD16_BYTE( "14137.13c", 0x300001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
1096 	ROM_LOAD16_BYTE( "14145.13a", 0x300000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
1097 
1098 	ROM_REGION( 0x1a0000, REGION_CPU2, 0 ) /* sound CPU */
1099 	ROM_LOAD( "14133.7c",	 0x000000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
1100 	ROM_LOAD( "14130.4c",    0x020000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
1101 	ROM_LOAD( "14131.5c",    0x0a0000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
1102 	ROM_LOAD( "14132.6c",    0x120000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
1103 ROM_END
1104 
1105 // Laser Ghost
1106 ROM_START( lghost )
1107 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1108 	ROM_LOAD16_BYTE( "13429", 0x000000, 0x20000, CRC(0e0ccf26) SHA1(072c39771f4d8806c05499bad9a0e7f63709333e) )
1109 	ROM_LOAD16_BYTE( "13437", 0x000001, 0x20000, CRC(38b4dc2f) SHA1(28071d4bc1e658e97f6a63ac07aea5e38cbced24) )
1110 	ROM_LOAD16_BYTE( "13411", 0x040000, 0x20000, CRC(c3aeae07) SHA1(922f6c6cd2cb2c191be221434e7a1bbff81b57cb) )
1111 	ROM_LOAD16_BYTE( "13413", 0x040001, 0x20000, CRC(75f43e21) SHA1(a8f65972604bf4ad886d90ac2afffccfc27ac769) )
1112 
1113 	ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1114 	ROM_LOAD( "13414", 0x00000, 0x20000, CRC(82025f3b) SHA1(bc496ec3bea7eb61534b964f11f32c297b36bf10) )
1115 	ROM_LOAD( "13415", 0x20000, 0x20000, CRC(a76852e9) SHA1(45b570e6b28678d98540a2b6c87f0fea1c98a471) )
1116 	ROM_LOAD( "13416", 0x40000, 0x20000, CRC(e88db149) SHA1(a43a3682cbdcfd8dce22f2f0b6bdff8b3e26765e) )
1117 
1118 	ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* sprites */
1119 	ROM_LOAD16_BYTE( "13603", 0x00001, 0x20000, CRC(2e3cc07b) SHA1(520cd9a264860f8e9bbeeb19b203cceaa404fc4e) )
1120 	ROM_LOAD16_BYTE( "13604", 0x00000, 0x20000, CRC(576388af) SHA1(699b9223d90ec69a56f3c7721315c0344d00696a) )
1121 	ROM_LOAD16_BYTE( "13421", 0x40001, 0x20000, CRC(abee8771) SHA1(67cfbaefd3a5a45574bb127b5cdbd26a8537cde0) )
1122 	ROM_LOAD16_BYTE( "13424", 0x40000, 0x20000, CRC(260ab077) SHA1(1d9ad0e80341f3993364e03dc0be5f4d0a2261af) )
1123 	ROM_LOAD16_BYTE( "13422", 0x80001, 0x20000, CRC(36cef12c) SHA1(50d29ffd59f245a911b5116dbcac27d0ed467888) )
1124 	ROM_LOAD16_BYTE( "13425", 0x80000, 0x20000, CRC(e0ff8807) SHA1(88b1d8d32662ba6d261a5a447418bdcd62ca7acb) )
1125 	ROM_LOAD16_BYTE( "13423", 0xc0001, 0x20000, CRC(5b8e0053) SHA1(40b2b44f9956e36294194e3c26973b33556201a8) )
1126 	ROM_LOAD16_BYTE( "13426", 0xc0000, 0x20000, CRC(c689853b) SHA1(3444c1a256531b4371bc79e93d37f6b0ff0ca2d9) )
1127 
1128 	ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* sound CPU */
1129 	ROM_LOAD( "13417",	 0x00000, 0x20000, CRC(cd7beb49) SHA1(2435ce000f1eefdd06b27ea93e22fd82c0e999d2) )
1130 	ROM_LOAD( "13420",   0x20000, 0x20000, CRC(03199cbb) SHA1(e6195ff31a2fd5a298669995d7f8a174c750fdc6) )
1131 	ROM_LOAD( "13419",   0x40000, 0x20000, CRC(a918ef68) SHA1(1e0394e77b175ab3a552c3e18351427c6e8cc64b) )
1132 	ROM_LOAD( "13418",   0x60000, 0x20000, CRC(4006c9f1) SHA1(e9cecfafdbcfdf716aa2ba911273b18550faea98) )
1133 ROM_END
1134 
1135 ROM_START( moonwalk )
1136 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code - custom cpu 317-0159 */
1137 	ROM_LOAD16_BYTE( "epr13235.a6", 0x000000, 0x40000, CRC(6983e129) SHA1(a8dd430620ab8ce11df46aa208d762d47f510464) )
1138 	ROM_LOAD16_BYTE( "epr13234.a5", 0x000001, 0x40000, CRC(c9fd20f2) SHA1(9476e6481e6d8f223acd52f543fa04f408d48dc3) )
1139 
1140 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1141 	ROM_LOAD( "mpr13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) )
1142 	ROM_LOAD( "mpr13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) )
1143 	ROM_LOAD( "mpr13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) )
1144 
1145 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1146 	ROM_LOAD16_BYTE( "mpr13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) )
1147 	ROM_LOAD16_BYTE( "mpr13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) )
1148 	ROM_LOAD16_BYTE( "mpr13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) )
1149 	ROM_LOAD16_BYTE( "mpr13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) )
1150 	ROM_LOAD16_BYTE( "mpr13222.b9",  0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) )
1151 	ROM_LOAD16_BYTE( "mpr13229.a9",  0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) )
1152 	ROM_LOAD16_BYTE( "epr13221.b8",  0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) )
1153 	ROM_LOAD16_BYTE( "epr13228.a8",  0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) )
1154 
1155 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* sound CPU */
1156 	ROM_LOAD( "epr13225.a4", 0x10000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) )
1157 	ROM_LOAD( "mpr13219.b4", 0x30000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) )
1158 	ROM_LOAD( "mpr13220.b5", 0x70000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) )
1159 	ROM_LOAD( "mpr13249.b6", 0xb0000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) )
1160 ROM_END
1161 
1162 ROM_START( moonwlka )
1163 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code - custom cpu 317-0158 */
1164 	ROM_LOAD16_BYTE( "epr13233", 0x000000, 0x40000, CRC(f3dac671) SHA1(cd9d372c7e272d2371bc1f9fb0167831c804423f) )
1165 	ROM_LOAD16_BYTE( "epr13232", 0x000001, 0x40000, CRC(541d8bdf) SHA1(6a99153fddca246ba070e93c4bacd145f15f76bf) )
1166 
1167 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1168 	ROM_LOAD( "mpr13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) )
1169 	ROM_LOAD( "mpr13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) )
1170 	ROM_LOAD( "mpr13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) )
1171 
1172 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1173 	ROM_LOAD16_BYTE( "mpr13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) )
1174 	ROM_LOAD16_BYTE( "mpr13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) )
1175 	ROM_LOAD16_BYTE( "mpr13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) )
1176 	ROM_LOAD16_BYTE( "mpr13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) )
1177 	ROM_LOAD16_BYTE( "mpr13222.b9",  0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) )
1178 	ROM_LOAD16_BYTE( "mpr13229.a9",  0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) )
1179 	ROM_LOAD16_BYTE( "epr13221.b8",  0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) )
1180 	ROM_LOAD16_BYTE( "epr13228.a8",  0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) )
1181 
1182 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* sound CPU */
1183 	ROM_LOAD( "epr13225.a4", 0x10000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) )
1184 	ROM_LOAD( "mpr13219.b4", 0x30000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) )
1185 	ROM_LOAD( "mpr13220.b5", 0x70000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) )
1186 	ROM_LOAD( "mpr13249.b6", 0xb0000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) )
1187 ROM_END
1188 
1189 ROM_START( moonwlkb )
1190 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
1191 	ROM_LOAD16_BYTE( "moonwlkb.01", 0x000000, 0x10000, CRC(f49cdb16) SHA1(34b7e98d31c3b9db2f0f055d7b249b0e5e5cb746) )
1192 	ROM_LOAD16_BYTE( "moonwlkb.05", 0x000001, 0x10000, CRC(c483f29f) SHA1(8fdfa764d8e49754844a9dc001400d439f9af9f0) )
1193 	ROM_LOAD16_BYTE( "moonwlkb.02", 0x020000, 0x10000, CRC(0bde1896) SHA1(42731ae90d56918dc50c0dcb53d092dcfb957159) )
1194 	ROM_LOAD16_BYTE( "moonwlkb.06", 0x020001, 0x10000, CRC(5b9fc688) SHA1(53d8143c3876548f63b392f0ea16c0e7c30a7917) )
1195 	ROM_LOAD16_BYTE( "moonwlkb.03", 0x040000, 0x10000, CRC(0c5fe15c) SHA1(626e3f37f019448c3c96bf73b2d2b5fe4b3716c0) )
1196 	ROM_LOAD16_BYTE( "moonwlkb.07", 0x040001, 0x10000, CRC(9e600704) SHA1(efd3d450b26f81dc2b74f44b4aaf906fa017e437) )
1197 	ROM_LOAD16_BYTE( "moonwlkb.04", 0x060000, 0x10000, CRC(64692f79) SHA1(ad7f32997b78863e3aa3214018cdd24e3ec9c5cb) )
1198 	ROM_LOAD16_BYTE( "moonwlkb.08", 0x060001, 0x10000, CRC(546ca530) SHA1(51f74878fdc221fee026e2e6a7ca96f290c8947f) )
1199 
1200 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1201 	ROM_LOAD( "mpr13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) )
1202 	ROM_LOAD( "mpr13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) )
1203 	ROM_LOAD( "mpr13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) )
1204 
1205 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1206 	ROM_LOAD16_BYTE( "mpr13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) )
1207 	ROM_LOAD16_BYTE( "mpr13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) )
1208 	ROM_LOAD16_BYTE( "mpr13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) )
1209 	ROM_LOAD16_BYTE( "mpr13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) )
1210 	ROM_LOAD16_BYTE( "mpr13222.b9",  0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) )
1211 	ROM_LOAD16_BYTE( "mpr13229.a9",  0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) )
1212 	ROM_LOAD16_BYTE( "epr13221.b8",  0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) )
1213 	ROM_LOAD16_BYTE( "epr13228.a8",  0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) )
1214 
1215 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* sound CPU */
1216 	ROM_LOAD( "epr13225.a4", 0x10000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) )
1217 	ROM_LOAD( "mpr13219.b4", 0x30000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) )
1218 	ROM_LOAD( "mpr13220.b5", 0x70000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) )
1219 	ROM_LOAD( "mpr13249.b6", 0xb0000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) )
1220 ROM_END
1221 
1222 // Shadow Dancer
1223 ROM_START( shdancer )
1224 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
1225 	ROM_LOAD16_BYTE( "shdancer.a6", 0x000000, 0x40000, CRC(3d5b3fa9) SHA1(370dd6e8ab9fb9e77eee9262d13fbdb4cf575abc) )
1226 	ROM_LOAD16_BYTE( "shdancer.a5", 0x000001, 0x40000, CRC(2596004e) SHA1(1b993aa74e7559f7e99253fd2144db9449c04cce) )
1227 
1228 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1229 	ROM_LOAD( "sd12712.bin", 0x00000, 0x40000, CRC(9bdabe3d) SHA1(4bb30fa2d4cdefe4a864cef7153b516bc5b02c42) )
1230 	ROM_LOAD( "sd12713.bin", 0x40000, 0x40000, CRC(852d2b1c) SHA1(8e5bc83d45e48b621ea3016207f2028fe41701e6) )
1231 	ROM_LOAD( "sd12714.bin", 0x80000, 0x40000, CRC(448226ce) SHA1(3060e4a43311069e2691d659c1e0c1a48edfeedb) )
1232 
1233 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1234 	ROM_LOAD16_BYTE( "sd12719.bin",  0x000001, 0x40000, CRC(d6888534) SHA1(2201f1921a68cf39e5a94b487c90e48d032d630f) )
1235 	ROM_LOAD16_BYTE( "sd12726.bin",  0x000000, 0x40000, CRC(ff344945) SHA1(2743778c42f53321f9691d60bbf94ea8baf1382f) )
1236 	ROM_LOAD16_BYTE( "sd12718.bin",  0x080001, 0x40000, CRC(ba2efc0c) SHA1(459a1a280f870c94aefb70127ed007cb090ed203) )
1237 	ROM_LOAD16_BYTE( "sd12725.bin",  0x080000, 0x40000, CRC(268a0c17) SHA1(2756054fa3c3aed30a1fce5e41acb0ceaebe90b5) )
1238 	ROM_LOAD16_BYTE( "sd12717.bin",  0x100001, 0x40000, CRC(c81cc4f8) SHA1(22f364e85057ceef533e051c8d0755b9691c5ec4) )
1239 	ROM_LOAD16_BYTE( "sd12724.bin",  0x100000, 0x40000, CRC(0f4903dc) SHA1(851bd60e877c9e39be23dc1fde91efc9da513c29) )
1240 	ROM_LOAD16_BYTE( "sd12716.bin",  0x180001, 0x40000, CRC(a870e629) SHA1(29f6633240f9737ec19e16100decc7aa045b2060) )
1241 	ROM_LOAD16_BYTE( "sd12723.bin",  0x180000, 0x40000, CRC(c606cf90) SHA1(cb53ae9a6da1eb31c584173d1fbbd1c8539fb54c) )
1242 
1243 	ROM_REGION( 0x70000, REGION_CPU2, 0 ) /* sound CPU */
1244 	ROM_LOAD( "sd12720.bin", 0x10000, 0x20000, CRC(7a0d8de1) SHA1(eca5e2104e5b3e772d083a718171234f06ea8a55) )
1245 	ROM_LOAD( "sd12715.bin", 0x30000, 0x40000, CRC(07051a52) SHA1(d48658497f4a34665d3e051f893ff057c38925ae) )
1246 ROM_END
1247 
1248 ROM_START( shdancbl )
1249 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
1250 	ROM_LOAD16_BYTE( "ic39", 0x000000, 0x10000, CRC(adc1781c) SHA1(b2ca2831a48779df7533e6b2a406ee539e1f650c) )
1251 	ROM_LOAD16_BYTE( "ic53", 0x000001, 0x10000, CRC(1c1ac463) SHA1(21075f7afae372daef197f04f5f12d14479a8140) )
1252 	ROM_LOAD16_BYTE( "ic38", 0x020000, 0x10000, CRC(cd6e155b) SHA1(e37b53cc431533091d26b37be9b8e30494de5faf) )
1253 	ROM_LOAD16_BYTE( "ic52", 0x020001, 0x10000, CRC(bb3c49a4) SHA1(ab01a6de1a6d338d30f9cfea7b3bf80dda67f215) )
1254 	ROM_LOAD16_BYTE( "ic37", 0x040000, 0x10000, CRC(1bd8d5c3) SHA1(4d663362c059e112ac6c742d80200be98d50d175) )
1255 	ROM_LOAD16_BYTE( "ic51", 0x040001, 0x10000, CRC(ce2e71b4) SHA1(3e251319cd4c8c63c66e6b92b2eef514d79dba8e) )
1256 	ROM_LOAD16_BYTE( "ic36", 0x060000, 0x10000, CRC(bb861290) SHA1(62ea8eec74c6b1f5530ee86f97ad821daeac26ad) )
1257 	ROM_LOAD16_BYTE( "ic50", 0x060001, 0x10000, CRC(7f7b82b1) SHA1(675020b57ce689b2767ff83773e2b828cda5aeed) )
1258 
1259 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1260 	ROM_LOAD( "ic4",  0x00000, 0x20000, CRC(f0a016fe) SHA1(1426f3fbf50a04a8c5e998e071ca0e78d15f37a8) )
1261 	ROM_LOAD( "ic18", 0x20000, 0x20000, CRC(f6bee053) SHA1(39ee5edfcc67bb4855217c7428254f3e8c862ba0) )
1262 	ROM_LOAD( "ic3",  0x40000, 0x20000, CRC(e07e6b5d) SHA1(bdeb1193415049d0c9261ca261073bdd9e251b88) )
1263 	ROM_LOAD( "ic17", 0x60000, 0x20000, CRC(f59deba1) SHA1(21188d22fe607281bb7da1e1f418a33d4a315695) )
1264 	ROM_LOAD( "ic2",  0x80000, 0x20000, CRC(60095070) SHA1(913c2ee51fb6f838f3c6cbd27032bdf754fbadf1) )
1265 	ROM_LOAD( "ic16", 0xa0000, 0x20000, CRC(0f0d5dd3) SHA1(76812e2f831256a8b6598257dd84a7f07443642e) )
1266 
1267 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1268 	ROM_LOAD16_BYTE( "ic73", 0x000001, 0x10000, CRC(59e77c96) SHA1(08da058529ac83352a4528d3792a21edda348f7a) )
1269 	ROM_LOAD16_BYTE( "ic74", 0x000000, 0x10000, CRC(90ea5407) SHA1(4bdd93c86cb35822517433d491aa8be6857dd36c) )
1270 	ROM_LOAD16_BYTE( "ic75", 0x020001, 0x10000, CRC(27d2fa61) SHA1(0ba3cd9448e54ce9fc9433f3edd28de9a4e451e9) )
1271 	ROM_LOAD16_BYTE( "ic76", 0x020000, 0x10000, CRC(f36db688) SHA1(a527298ce9ca1d9f5aa7b9eac93985f34ca8119f) )
1272 	ROM_LOAD16_BYTE( "ic58", 0x040001, 0x10000, CRC(9cd5c8c7) SHA1(54c2d0a683bda37eb9a75f90f4ca5e620c09c4cf) )
1273 	ROM_LOAD16_BYTE( "ic59", 0x040000, 0x10000, CRC(ff40e872) SHA1(bd2c4aac427d106a46318f4cb2eb05c34d3c70b6) )
1274 	ROM_LOAD16_BYTE( "ic60", 0x060001, 0x10000, CRC(826d7245) SHA1(bb3394de058bd63b9939cd05f22c925e0cdc840a) )
1275 	ROM_LOAD16_BYTE( "ic61", 0x060000, 0x10000, CRC(dcf8068b) SHA1(9c78de224df76fc90fb90f1bbd9b22dad0874f69) )
1276 	ROM_LOAD16_BYTE( "ic77", 0x080001, 0x10000, CRC(f93470b7) SHA1(1041afa43aa8d0589d6def9743721cdbda617f78) )
1277 	ROM_LOAD16_BYTE( "ic78", 0x080000, 0x10000, CRC(4d523ea3) SHA1(053c30778017127dddeae0783af463aef17bcc9a) )
1278 	ROM_LOAD16_BYTE( "ic95", 0x0a0001, 0x10000, CRC(828b8294) SHA1(f2cdb882fb0709a909e6ef98f0315aceeb8bf283) )
1279 	ROM_LOAD16_BYTE( "ic94", 0x0a0000, 0x10000, CRC(542b2d1e) SHA1(1ce91aea6c49e6e365a91c30ca3049682c2162da) )
1280 	ROM_LOAD16_BYTE( "ic62", 0x0c0001, 0x10000, CRC(50ca8065) SHA1(8c0d6ae34b9da6c376df387e8fc8b1068bcb4dcb) )
1281 	ROM_LOAD16_BYTE( "ic63", 0x0c0000, 0x10000, CRC(d1866aa9) SHA1(524c82a12a1c484a246b8d49d9f05a774d008108) )
1282 	ROM_LOAD16_BYTE( "ic90", 0x0e0001, 0x10000, CRC(3602b758) SHA1(d25b6c8420e07d0f2ac3e1d8717f14738466df16) )
1283 	ROM_LOAD16_BYTE( "ic89", 0x0e0000, 0x10000, CRC(1ba4be93) SHA1(6f4fe2016e375be3df477436f5cde7508a24ecd1) )
1284 	ROM_LOAD16_BYTE( "ic79", 0x100001, 0x10000, CRC(f22548ee) SHA1(723cb7604784c6715817daa8c86c18c6bcd1388d) )
1285 	ROM_LOAD16_BYTE( "ic80", 0x100000, 0x10000, CRC(6209f7f9) SHA1(09b33c99d972a62af8ef56dacfa6262f002aba0c) )
1286 	ROM_LOAD16_BYTE( "ic81", 0x120001, 0x10000, CRC(34692f23) SHA1(56126a81ac279662e3e3423da5205f65a62c4600) )
1287 	ROM_LOAD16_BYTE( "ic82", 0x120000, 0x10000, CRC(7ae40237) SHA1(fae97cfcfd3cd557da3330158831e4727c438745) )
1288 	ROM_LOAD16_BYTE( "ic64", 0x140001, 0x10000, CRC(7a8b7bcc) SHA1(00cbbbc4b3db48ca3ac65ff56b02c7d63a1b898a) )
1289 	ROM_LOAD16_BYTE( "ic65", 0x140000, 0x10000, CRC(90ffca14) SHA1(00962e5309a79ce34c6f420036054bc607595dfe) )
1290 	ROM_LOAD16_BYTE( "ic66", 0x160001, 0x10000, CRC(5d655517) SHA1(2a1c197dde62bd7946ca7b5f1c2833bdbc2e2e32) )
1291 	ROM_LOAD16_BYTE( "ic67", 0x160000, 0x10000, CRC(0e5d0855) SHA1(3c15088f7fdda5c2bba9c89d244bbcff022f05fd) )
1292 	ROM_LOAD16_BYTE( "ic83", 0x180001, 0x10000, CRC(a9040a32) SHA1(7b0b375285f528b2833c50892b55b0d4c550506d) )
1293 	ROM_LOAD16_BYTE( "ic84", 0x180000, 0x10000, CRC(d6810031) SHA1(a82857a9ac442fbe076cdafcf7390765391ed136) )
1294 	ROM_LOAD16_BYTE( "ic92", 0x1a0001, 0x10000, CRC(b57d5cb5) SHA1(636f1a07a84d37cecbe388a2f585893c4611436c) )
1295 	ROM_LOAD16_BYTE( "ic91", 0x1a0000, 0x10000, CRC(49def6c8) SHA1(d8b2cc1993f0808553f87bf56fdbe47374576c5a) )
1296 	ROM_LOAD16_BYTE( "ic68", 0x1c0001, 0x10000, CRC(8d684e53) SHA1(00e82ddaf875a7452ff978b7b7eb87a1a5a8fb64) )
1297 	ROM_LOAD16_BYTE( "ic69", 0x1c0000, 0x10000, CRC(c47d32e2) SHA1(92b21f51abdd7950fb09d965b1d71b7bffac31ec) )
1298 	ROM_LOAD16_BYTE( "ic88", 0x1e0001, 0x10000, CRC(9de140e1) SHA1(f1125e056a898a4fa519b49ae866c5c742e36bf7) )
1299 	ROM_LOAD16_BYTE( "ic87", 0x1e0000, 0x10000, CRC(8172a991) SHA1(6d12b1533a19cb02613b473cc8ba73ece1f2a2fc) )
1300 
1301 	ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
1302 	ROM_LOAD( "ic45", 0x10000, 0x10000, CRC(576b3a81) SHA1(b65356a3837ed3875634ab0cbcd61acce44f2bb9) )
1303 	ROM_LOAD( "ic46", 0x20000, 0x10000, CRC(c84e8c84) SHA1(f57895bedb6152c30733e91e6f4795702a62ac3a) )
1304 ROM_END
1305 
1306 ROM_START( shdancrj )
1307 	ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
1308 	ROM_LOAD16_BYTE( "sd12722b.bin", 0x000000, 0x40000, CRC(c00552a2) SHA1(74fddfe596bc00bc11c4a06e2103417e8fd334f6) )
1309 	ROM_LOAD16_BYTE( "sd12721b.bin", 0x000001, 0x40000, CRC(653d351a) SHA1(1a03a154cb81a5a2f28c38aecdd6b5d107ea7ffa) )
1310 
1311 	ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1312 	ROM_LOAD( "sd12712.bin",  0x00000, 0x40000, CRC(9bdabe3d) SHA1(4bb30fa2d4cdefe4a864cef7153b516bc5b02c42) )
1313 	ROM_LOAD( "sd12713.bin",  0x40000, 0x40000, CRC(852d2b1c) SHA1(8e5bc83d45e48b621ea3016207f2028fe41701e6) )
1314 	ROM_LOAD( "sd12714.bin",  0x80000, 0x40000, CRC(448226ce) SHA1(3060e4a43311069e2691d659c1e0c1a48edfeedb) )
1315 
1316 	ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1317 	ROM_LOAD16_BYTE( "sd12719.bin",  0x000001, 0x40000, CRC(d6888534) SHA1(2201f1921a68cf39e5a94b487c90e48d032d630f) )
1318 	ROM_LOAD16_BYTE( "sd12726.bin",  0x000000, 0x40000, CRC(ff344945) SHA1(2743778c42f53321f9691d60bbf94ea8baf1382f) )
1319 	ROM_LOAD16_BYTE( "sd12718.bin",  0x080001, 0x40000, CRC(ba2efc0c) SHA1(459a1a280f870c94aefb70127ed007cb090ed203) )
1320 	ROM_LOAD16_BYTE( "sd12725.bin",  0x080000, 0x40000, CRC(268a0c17) SHA1(2756054fa3c3aed30a1fce5e41acb0ceaebe90b5) )
1321 	ROM_LOAD16_BYTE( "sd12717.bin",  0x100001, 0x40000, CRC(c81cc4f8) SHA1(22f364e85057ceef533e051c8d0755b9691c5ec4) )
1322 	ROM_LOAD16_BYTE( "sd12724.bin",  0x100000, 0x40000, CRC(0f4903dc) SHA1(851bd60e877c9e39be23dc1fde91efc9da513c29) )
1323 	ROM_LOAD16_BYTE( "sd12716.bin",  0x180001, 0x40000, CRC(a870e629) SHA1(29f6633240f9737ec19e16100decc7aa045b2060) )
1324 	ROM_LOAD16_BYTE( "sd12723.bin",  0x180000, 0x40000, CRC(c606cf90) SHA1(cb53ae9a6da1eb31c584173d1fbbd1c8539fb54c) )
1325 
1326 	ROM_REGION( 0x70000, REGION_CPU2, 0 ) /* sound CPU */
1327 	ROM_LOAD( "sd12720.bin", 0x10000, 0x20000, CRC(7a0d8de1) SHA1(eca5e2104e5b3e772d083a718171234f06ea8a55) )
1328 	ROM_LOAD( "sd12715.bin", 0x30000, 0x40000, CRC(07051a52) SHA1(d48658497f4a34665d3e051f893ff057c38925ae) )
1329 ROM_END
1330 
1331 /*****************************************************************************/
1332 
1333 GAMEX(1990, astorm,   0,        astorm,   astorm,   astorm,   ROT0, "Sega",    "Alien Storm", GAME_NOT_WORKING )
1334 GAMEX(1990, astorm2p, astorm,   astorm,   astorm,   astorm,   ROT0, "Sega",    "Alien Storm (2 Player)", GAME_NOT_WORKING )
1335 GAME( 1990, astormbl, astorm,   astorm,   astorm,   astorm,   ROT0, "bootleg", "Alien Storm (bootleg)" )
1336 GAMEX(1990, moonwalk, 0,        moonwalk, moonwalk, moonwalk, ROT0, "Sega",    "Michael Jackson's Moonwalker (Set 1)", GAME_NOT_WORKING )
1337 GAMEX(1990, moonwlka, moonwalk, moonwalk, moonwalk, moonwalk, ROT0, "Sega",    "Michael Jackson's Moonwalker (Set 2)", GAME_NOT_WORKING )
1338 GAME( 1990, moonwlkb, moonwalk, moonwalk, moonwalk, moonwalk, ROT0, "bootleg", "Michael Jackson's Moonwalker (bootleg)" )
1339 GAME( 1989, shdancer, 0,        shdancer, shdancer, shdancer, ROT0, "Sega",    "Shadow Dancer (US)" )
1340 GAMEX(1989, shdancbl, shdancer, shdancbl, shdancer, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg)", GAME_NOT_WORKING )
1341 GAME( 1989, shdancrj, shdancer, shdancrj, shdancer, shdancrj, ROT0, "Sega",    "Shadow Dancer (Japan)" )
1342 
1343 GAMEX(19??, aceattac, 0,        shdancer, shdancer, shdancer, ROT0, "Sega", "Ace Attacker", GAME_NOT_WORKING )
1344 GAMEX(1990, bloxeed,  0,        shdancer, shdancer, shdancer, ROT0, "Sega", "Bloxeed", GAME_NOT_WORKING )
1345 GAMEX(19??, cltchitr, 0,        shdancer, shdancer, shdancer, ROT0, "Sega", "Clutch Hitter", GAME_NOT_WORKING )
1346 GAMEX(19??, ddcrew,   0,        shdancer, shdancer, shdancer, ROT0, "Sega", "DD Crew", GAME_NOT_WORKING )
1347 GAMEX(19??, lghost,   0,        shdancer, shdancer, shdancer, ROT0, "Sega", "Laser Ghost", GAME_NOT_WORKING )
1348