1 /***************************************************************************
2 
3   Edward Randy      (c) 1990 Data East Corporation (World version)
4   Edward Randy      (c) 1990 Data East Corporation (Japanese version)
5   Caveman Ninja     (c) 1991 Data East Corporation (World version)
6   Caveman Ninja     (c) 1991 Data East Corporation (USA version)
7   Joe & Mac         (c) 1991 Data East Corporation (Japanese version)
8   Robocop 2         (c) 1991 Data East Corporation (USA version)
9   Robocop 2         (c) 1991 Data East Corporation (Japanese version)
10   Robocop 2         (c) 1991 Data East Corporation (World version)
11   Stone Age         (Italian bootleg)
12   Mutant Fighter	(c) 1992 Data East Corporation (World version)
13   Death Brade		(c) 1992 Data East Corporation (Japanese version)
14 
15   Edward Randy runs on the same board as Caveman Ninja but the protection
16   chip is different.  Robocop 2 also has a different protection chip but
17   strangely makes very little use of it (only one check at the start).
18   Robocop 2 is a different board but similar hardware.
19 
20   Edward Randy (World rev 1) seems much more polished than World rev 2 -
21   better attract mode at least.
22 
23   The sound program of Stoneage is ripped from Block Out (by Technos!)
24 
25   Mutant Fighter introduced alpha-blending to this basic board design.
26   The characters shadows sometimes jump around a little - a bug in the
27   original board, not the emulation.
28 
29 Caveman Ninja Issues:
30   End of level 2 is corrupt.
31 
32   Emulation by Bryan McPhail, mish@tendril.co.uk
33 
34 ***************************************************************************/
35 
36 #include "driver.h"
37 #include "cninja.h"
38 #include "vidhrdw/generic.h"
39 #include "cpu/h6280/h6280.h"
40 #include "deco16ic.h"
41 #include "decocrpt.h"
42 #include "decoprot.h"
43 
44 static int cninja_scanline, cninja_irq_mask;
45 static void *raster_irq_timer;
46 static data16_t *cninja_ram;
47 
48 /**********************************************************************************/
49 
WRITE16_HANDLER(cninja_sound_w)50 static WRITE16_HANDLER( cninja_sound_w )
51 {
52 	soundlatch_w(0,data&0xff);
53 	cpu_set_irq_line(1,0,HOLD_LINE);
54 }
55 
WRITE16_HANDLER(stoneage_sound_w)56 static WRITE16_HANDLER( stoneage_sound_w )
57 {
58 	soundlatch_w(0,data&0xff);
59 	cpu_set_irq_line(1,IRQ_LINE_NMI,PULSE_LINE);
60 }
61 
interrupt_gen(int scanline)62 static void interrupt_gen(int scanline)
63 {
64 	/* Save state of scroll registers before the IRQ */
65 	deco16_raster_display_list[deco16_raster_display_position++]=scanline;
66 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf12_control[1]&0xffff;
67 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf12_control[2]&0xffff;
68 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf12_control[3]&0xffff;
69 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf12_control[4]&0xffff;
70 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf34_control[1]&0xffff;
71 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf34_control[2]&0xffff;
72 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf34_control[3]&0xffff;
73 	deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf34_control[4]&0xffff;
74 
75 	cpu_set_irq_line(0, (cninja_irq_mask&0x10) ? 3 : 4, ASSERT_LINE);
76 	timer_adjust(raster_irq_timer,TIME_NEVER,0,0);
77 }
78 
READ16_HANDLER(cninja_irq_r)79 static READ16_HANDLER( cninja_irq_r )
80 {
81 	switch (offset) {
82 
83 	case 1: /* Raster IRQ scanline position */
84 		return cninja_scanline;
85 
86 	case 2: /* Raster IRQ ACK - value read is not used */
87 		cpu_set_irq_line(0, 3, CLEAR_LINE);
88 		cpu_set_irq_line(0, 4, CLEAR_LINE);
89 		return 0;
90 	}
91 
92 	logerror("%08x:  Unmapped IRQ read %d\n",activecpu_get_pc(),offset);
93 	return 0;
94 }
95 
WRITE16_HANDLER(cninja_irq_w)96 static WRITE16_HANDLER( cninja_irq_w )
97 {
98 	switch (offset) {
99 	case 0:
100 		/* IRQ enable:
101 			0xca:	Raster IRQ turned off
102 			0xc8:	Raster IRQ turned on (68k IRQ level 4)
103 			0xd8:	Raster IRQ turned on (68k IRQ level 3)
104 		*/
105 		logerror("%08x:  IRQ write %d %08x\n",activecpu_get_pc(),offset,data);
106 		cninja_irq_mask=data&0xff;
107 		return;
108 
109 	case 1: /* Raster IRQ scanline position, only valid for values between 1 & 239 (0 and 240-256 do NOT generate IRQ's) */
110 		cninja_scanline=data&0xff;
111 		if ((cninja_irq_mask&0x2)==0 && cninja_scanline>0 && cninja_scanline<240)
112 			timer_adjust(raster_irq_timer,cpu_getscanlinetime(cninja_scanline),cninja_scanline,TIME_NEVER);
113 		else
114 			timer_adjust(raster_irq_timer,TIME_NEVER,0,0);
115 		return;
116 
117 	case 2: /* VBL irq ack */
118 		return;
119 	}
120 
121 	logerror("%08x:  Unmapped IRQ write %d %04x\n",activecpu_get_pc(),offset,data);
122 }
123 
READ16_HANDLER(robocop2_prot_r)124 static READ16_HANDLER( robocop2_prot_r )
125 {
126  	switch (offset<<1) {
127 		case 0x41a: /* Player 1 & 2 input ports */
128 			return readinputport(0);
129 		case 0x320: /* Coins */
130 			return readinputport(1);
131 		case 0x4e6: /* Dip switches */
132 			return readinputport(2);
133 		case 0x504: /* PC: 6b6.  b4, 2c, 36 written before read */
134 			logerror("Protection PC %06x: warning - read unmapped memory address %04x\n",activecpu_get_pc(),offset);
135 			return 0x84;
136 	}
137 	logerror("Protection PC %06x: warning - read unmapped memory address %04x\n",activecpu_get_pc(),offset);
138 	return 0;
139 }
140 
141 /**********************************************************************************/
142 
MEMORY_READ16_START(cninja_readmem)143 static MEMORY_READ16_START( cninja_readmem )
144 	{ 0x000000, 0x0bffff, MRA16_ROM },
145 	{ 0x144000, 0x144fff, MRA16_RAM },
146 	{ 0x146000, 0x146fff, MRA16_RAM },
147 	{ 0x14e000, 0x14e7ff, MRA16_RAM },
148 	{ 0x154000, 0x154fff, MRA16_RAM },
149 	{ 0x156000, 0x156fff, MRA16_RAM },
150 	{ 0x15c000, 0x15c7ff, MRA16_RAM },
151 	{ 0x15e000, 0x15e7ff, MRA16_RAM },
152 	{ 0x184000, 0x187fff, MRA16_RAM },
153 	{ 0x190000, 0x190007, cninja_irq_r },
154 	{ 0x19c000, 0x19dfff, MRA16_RAM },
155 	{ 0x1a4000, 0x1a47ff, MRA16_RAM }, /* Sprites */
156 	{ 0x1bc000, 0x1bcfff, deco16_104_cninja_prot_r }, /* Protection device */
157 MEMORY_END
158 
159 static MEMORY_WRITE16_START( cninja_writemem )
160 	{ 0x000000, 0x0bffff, MWA16_ROM },
161 
162 	{ 0x140000, 0x14000f, MWA16_RAM, &deco16_pf12_control },
163 	{ 0x144000, 0x144fff, deco16_pf1_data_w, &deco16_pf1_data },
164 	{ 0x146000, 0x146fff, deco16_pf2_data_w, &deco16_pf2_data },
165 	{ 0x14c000, 0x14c7ff, MWA16_RAM, &deco16_pf1_rowscroll },
166 	{ 0x14e000, 0x14e7ff, MWA16_RAM, &deco16_pf2_rowscroll },
167 
168 	{ 0x150000, 0x15000f, MWA16_RAM, &deco16_pf34_control },
169 	{ 0x154000, 0x154fff, deco16_pf3_data_w, &deco16_pf3_data },
170 	{ 0x156000, 0x156fff, deco16_pf4_data_w, &deco16_pf4_data },
171 	{ 0x15c000, 0x15c7ff, MWA16_RAM, &deco16_pf3_rowscroll },
172 	{ 0x15e000, 0x15e7ff, MWA16_RAM, &deco16_pf4_rowscroll },
173 
174 	{ 0x184000, 0x187fff, MWA16_RAM, &cninja_ram }, /* Main ram */
175 	{ 0x190000, 0x190007, cninja_irq_w },
176 	{ 0x19c000, 0x19dfff, deco16_nonbuffered_palette_w, &paletteram16 },
177 	{ 0x1a4000, 0x1a47ff, MWA16_RAM, &spriteram16, &spriteram_size },
178 	{ 0x1b4000, 0x1b4001, buffer_spriteram16_w }, /* DMA flag */
179 	{ 0x1bc000, 0x1bc0ff, deco16_104_cninja_prot_w, &deco16_prot_ram }, /* Protection writes */
180 	{ 0x308000, 0x308fff, MWA16_NOP }, /* Bootleg only */
181 MEMORY_END
182 
183 static MEMORY_READ16_START( edrandy_readmem )
184 	{ 0x000000, 0x0fffff, MRA16_ROM },
185 	{ 0x144000, 0x144fff, MRA16_RAM },
186 	{ 0x144000, 0x144fff, MRA16_RAM },
187 	{ 0x146000, 0x146fff, MRA16_RAM },
188 	{ 0x14c000, 0x14c7ff, MRA16_RAM },
189 	{ 0x14e000, 0x14e7ff, MRA16_RAM },
190 	{ 0x154000, 0x154fff, MRA16_RAM },
191 	{ 0x156000, 0x156fff, MRA16_RAM },
192 	{ 0x15c000, 0x15c7ff, MRA16_RAM },
193 	{ 0x15e000, 0x15e7ff, MRA16_RAM },
194 	{ 0x188000, 0x189fff, MRA16_RAM },
195 	{ 0x194000, 0x197fff, MRA16_RAM },
196 	{ 0x198000, 0x1987ff, deco16_60_prot_r }, /* Protection device */
197 	{ 0x1a4000, 0x1a4007, cninja_irq_r },
198 	{ 0x1bc000, 0x1bc7ff, MRA16_RAM }, /* Sprites */
199 MEMORY_END
200 
201 static MEMORY_WRITE16_START( edrandy_writemem )
202 	{ 0x000000, 0x0fffff, MWA16_ROM },
203 
204 	{ 0x140000, 0x14000f, MWA16_RAM, &deco16_pf12_control },
205 	{ 0x144000, 0x144fff, deco16_pf1_data_w, &deco16_pf1_data },
206 	{ 0x146000, 0x146fff, deco16_pf2_data_w, &deco16_pf2_data },
207 	{ 0x14c000, 0x14c7ff, MWA16_RAM, &deco16_pf1_rowscroll },
208 	{ 0x14e000, 0x14e7ff, MWA16_RAM, &deco16_pf2_rowscroll },
209 
210 	{ 0x150000, 0x15000f, MWA16_RAM, &deco16_pf34_control },
211 	{ 0x154000, 0x154fff, deco16_pf3_data_w, &deco16_pf3_data },
212 	{ 0x156000, 0x156fff, deco16_pf4_data_w, &deco16_pf4_data },
213 	{ 0x15c000, 0x15c7ff, MWA16_RAM, &deco16_pf3_rowscroll },
214 	{ 0x15e000, 0x15e7ff, MWA16_RAM, &deco16_pf4_rowscroll },
215 
216 	{ 0x188000, 0x189fff, deco16_nonbuffered_palette_w, &paletteram16 },
217 	{ 0x194000, 0x197fff, MWA16_RAM, &cninja_ram }, /* Main ram */
218 	{ 0x198000, 0x1987ff, deco16_60_prot_w, &deco16_prot_ram }, /* Protection writes */
219 	{ 0x199550, 0x199551, MWA16_NOP }, /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
220 	{ 0x199750, 0x199751, MWA16_NOP }, /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
221 
222 	{ 0x1a4000, 0x1a4007, cninja_irq_w },
223 	{ 0x1ac000, 0x1ac001, buffer_spriteram16_w }, /* DMA flag */
224 	{ 0x1bc000, 0x1bc7ff, MWA16_RAM, &spriteram16, &spriteram_size },
225 	{ 0x1bc800, 0x1bcfff, MWA16_NOP }, /* Another bug in game code?  Sprite list can overrun.  Doesn't seem to mirror */
226 MEMORY_END
227 
228 static MEMORY_READ16_START( robocop2_readmem )
229 	{ 0x000000, 0x0fffff, MRA16_ROM },
230 	{ 0x180000, 0x1807ff, MRA16_RAM },
231 	{ 0x18c000, 0x18c7ff, robocop2_prot_r }, /* Protection device */
232 	{ 0x1a8000, 0x1a9fff, MRA16_RAM },
233 	{ 0x1b0000, 0x1b0007, cninja_irq_r },
234 	{ 0x1b8000, 0x1bbfff, MRA16_RAM },
235 	{ 0x144000, 0x144fff, MRA16_RAM },
236 	{ 0x146000, 0x146fff, MRA16_RAM },
237 	{ 0x14c000, 0x14c7ff, MRA16_RAM },
238 	{ 0x14e000, 0x14e7ff, MRA16_RAM },
239 	{ 0x154000, 0x154fff, MRA16_RAM },
240 	{ 0x156000, 0x156fff, MRA16_RAM },
241 	{ 0x15c000, 0x15c7ff, MRA16_RAM },
242 	{ 0x15e000, 0x15e7ff, MRA16_RAM },
243 MEMORY_END
244 
245 static MEMORY_WRITE16_START( robocop2_writemem )
246 	{ 0x000000, 0x0fffff, MWA16_ROM },
247 	{ 0x140000, 0x14000f, MWA16_RAM, &deco16_pf12_control },
248 	{ 0x144000, 0x144fff, deco16_pf1_data_w, &deco16_pf1_data },
249 	{ 0x146000, 0x146fff, deco16_pf2_data_w, &deco16_pf2_data },
250 	{ 0x14c000, 0x14c7ff, MWA16_RAM, &deco16_pf1_rowscroll },
251 	{ 0x14e000, 0x14e7ff, MWA16_RAM, &deco16_pf2_rowscroll },
252 
253 	{ 0x150000, 0x15000f, MWA16_RAM, &deco16_pf34_control },
254 	{ 0x154000, 0x154fff, deco16_pf3_data_w, &deco16_pf3_data },
255 	{ 0x156000, 0x156fff, deco16_pf4_data_w, &deco16_pf4_data },
256 	{ 0x15c000, 0x15c7ff, MWA16_RAM, &deco16_pf3_rowscroll },
257 	{ 0x15e000, 0x15e7ff, MWA16_RAM, &deco16_pf4_rowscroll },
258 
259 	{ 0x180000, 0x1807ff, MWA16_RAM, &spriteram16, &spriteram_size },
260 	{ 0x18c064, 0x18c065, cninja_sound_w },
261 //	{ 0x18c000, 0x18c0ff, cninja_loopback_w }, /* Protection writes */
262 	{ 0x198000, 0x198001, buffer_spriteram16_w }, /* DMA flag */
263 	{ 0x1a8000, 0x1a9fff, deco16_nonbuffered_palette_w, &paletteram16 },
264 	{ 0x1b0000, 0x1b0007, cninja_irq_w },
265 	{ 0x1b8000, 0x1bbfff, MWA16_RAM, &cninja_ram }, /* Main ram */
266 	{ 0x1f0000, 0x1f0001, deco16_priority_w },
267 MEMORY_END
268 
269 static MEMORY_READ16_START( mutantf_readmem )
270 	{ 0x000000, 0x07ffff, MRA16_ROM },
271 	{ 0x100000, 0x103fff, MRA16_RAM },
272 	{ 0x120000, 0x1207ff, MRA16_RAM },
273 	{ 0x140000, 0x1407ff, MRA16_RAM },
274 	{ 0x160000, 0x161fff, MRA16_RAM },
275 	{ 0x1a0000, 0x1a07ff, deco16_66_prot_r }, /* Protection device */
276 	{ 0x1c0000, 0x1c0001, deco16_71_r },
277 
278 	{ 0x304000, 0x305fff, MRA16_RAM },
279 	{ 0x306000, 0x307fff, MRA16_RAM },
280 	{ 0x308000, 0x3087ff, MRA16_RAM },
281 	{ 0x30a000, 0x30a7ff, MRA16_RAM },
282 	{ 0x314000, 0x315fff, MRA16_RAM },
283 	{ 0x316000, 0x317fff, MRA16_RAM },
284 	{ 0x318000, 0x3187ff, MRA16_RAM },
285 	{ 0x31a000, 0x31a7ff, MRA16_RAM },
286 	{ 0xad00ac, 0xad00ff, MRA16_NOP }, /* Reads from here seem to be a game code bug */
287 MEMORY_END
288 
289 static MEMORY_WRITE16_START( mutantf_writemem )
290 	{ 0x000000, 0x07ffff, MWA16_ROM },
291 	{ 0x100000, 0x103fff, MWA16_RAM }, /* Main ram */
292 	{ 0x120000, 0x1207ff, MWA16_RAM, &spriteram16, &spriteram_size },
293 	{ 0x140000, 0x1407ff, MWA16_RAM, &spriteram16_2, &spriteram_2_size },
294 	{ 0x160000, 0x161fff, deco16_nonbuffered_palette_w, &paletteram16 },
295 	{ 0x180000, 0x180001, deco16_priority_w },
296 	{ 0x180002, 0x180003, MWA16_NOP }, /* VBL irq ack */
297 	{ 0x1a0000, 0x1a07ff, deco16_66_prot_w, &deco16_prot_ram }, /* Protection writes */
298 	{ 0x1c0000, 0x1c0001, buffer_spriteram16_w },
299 	{ 0x1e0000, 0x1e0001, buffer_spriteram16_2_w },
300 
301 	{ 0x300000, 0x30000f, MWA16_RAM, &deco16_pf12_control },
302 	{ 0x304000, 0x305fff, deco16_pf1_data_w, &deco16_pf1_data },
303 	{ 0x306000, 0x307fff, deco16_pf2_data_w, &deco16_pf2_data },
304 	{ 0x308000, 0x3087ff, MWA16_RAM, &deco16_pf1_rowscroll },
305 	{ 0x30a000, 0x30a7ff, MWA16_RAM, &deco16_pf2_rowscroll },
306 
307 	{ 0x310000, 0x31000f, MWA16_RAM, &deco16_pf34_control },
308 	{ 0x314000, 0x315fff, deco16_pf3_data_w, &deco16_pf3_data },
309 	{ 0x316000, 0x317fff, deco16_pf4_data_w, &deco16_pf4_data },
310 	{ 0x318000, 0x3187ff, MWA16_RAM, &deco16_pf3_rowscroll },
311 	{ 0x31a000, 0x31a7ff, MWA16_RAM, &deco16_pf4_rowscroll },
312 MEMORY_END
313 
314 /******************************************************************************/
315 
316 static MEMORY_READ_START( sound_readmem )
317 	{ 0x000000, 0x00ffff, MRA_ROM },
318 	{ 0x100000, 0x100001, YM2203_status_port_0_r },
319 	{ 0x110000, 0x110001, YM2151_status_port_0_r },
320 	{ 0x120000, 0x120001, OKIM6295_status_0_r },
321 	{ 0x130000, 0x130001, OKIM6295_status_1_r },
322 	{ 0x140000, 0x140001, soundlatch_r },
323 	{ 0x1f0000, 0x1f1fff, MRA_BANK8 },
324 MEMORY_END
325 
326 static MEMORY_WRITE_START( sound_writemem )
327 	{ 0x000000, 0x00ffff, MWA_ROM },
328 	{ 0x100000, 0x100001, YM2203_word_0_w },
329 	{ 0x110000, 0x110001, YM2151_word_0_w },
330 	{ 0x120000, 0x120001, OKIM6295_data_0_w },
331 	{ 0x130000, 0x130001, OKIM6295_data_1_w },
332 	{ 0x1f0000, 0x1f1fff, MWA_BANK8 },
333 	{ 0x1fec00, 0x1fec01, H6280_timer_w },
334 	{ 0x1ff402, 0x1ff403, H6280_irq_status_w },
335 MEMORY_END
336 
337 static MEMORY_READ_START( sound_readmem_mutantf )
338 	{ 0x000000, 0x00ffff, MRA_ROM },
339 	{ 0x100000, 0x100001, MRA_NOP },
340 	{ 0x110000, 0x110001, YM2151_status_port_0_r },
341 	{ 0x120000, 0x120001, OKIM6295_status_0_r },
342 	{ 0x130000, 0x130001, OKIM6295_status_1_r },
343 	{ 0x140000, 0x140001, soundlatch_r },
344 	{ 0x1f0000, 0x1f1fff, MRA_BANK8 },
345 MEMORY_END
346 
347 static MEMORY_WRITE_START( sound_writemem_mutantf )
348 	{ 0x000000, 0x00ffff, MWA_ROM },
349 	{ 0x100000, 0x100001, MWA_NOP },
350 	{ 0x110000, 0x110001, YM2151_word_0_w },
351 	{ 0x120000, 0x120001, OKIM6295_data_0_w },
352 	{ 0x130000, 0x130001, OKIM6295_data_1_w },
353 	{ 0x1f0000, 0x1f1fff, MWA_BANK8 },
354 	{ 0x1fec00, 0x1fec01, H6280_timer_w },
355 	{ 0x1ff402, 0x1ff403, H6280_irq_status_w },
356 MEMORY_END
357 
358 static MEMORY_READ_START( stoneage_s_readmem )
359 	{ 0x0000, 0x7fff, MRA_ROM },
360 	{ 0x8000, 0x87ff, MRA_RAM },
361 	{ 0x8801, 0x8801, YM2151_status_port_0_r },
362 	{ 0xa000, 0xa000, soundlatch_r },
363 	{ 0x9800, 0x9800, OKIM6295_status_0_r },
364 MEMORY_END
365 
366 static MEMORY_WRITE_START( stoneage_s_writemem )
367 	{ 0x0000, 0x7fff, MWA_ROM },
368 	{ 0x8000, 0x87ff, MWA_RAM },
369 	{ 0x8800, 0x8800, YM2151_register_port_0_w },
370 	{ 0x8801, 0x8801, YM2151_data_port_0_w },
371 	{ 0x9800, 0x9800, OKIM6295_data_0_w },
372 MEMORY_END
373 
374 /**********************************************************************************/
375 
376 INPUT_PORTS_START( edrandy )
377 	PORT_START
378 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
379 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
380 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
381 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
382 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
383 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
384 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
385 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
386 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
387 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
388 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
389 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
390 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
391 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
392 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
393 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
394 
395 	PORT_START
396 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
397 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
398 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
399 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )
400 
401 	PORT_START
402 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
403 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
404 	PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
405 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
406 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
407 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
408 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
409 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_5C ) )
410 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_6C ) )
411 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
412 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
413 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
414 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
415 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
416 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
417 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
418 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_5C ) )
419 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ) )
420 	PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Flip_Screen ) )
421 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
422 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
423 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
424 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
425 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
426 	PORT_DIPNAME( 0x0300, 0x0300, "Energy" )
427 	PORT_DIPSETTING(      0x0100, "2.5" )
428 	PORT_DIPSETTING(      0x0000, "3" )
429 	PORT_DIPSETTING(      0x0300, "3.5" )
430 	PORT_DIPSETTING(      0x0200, "4.5" )
431 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) /* Not confirmed */
432 	PORT_DIPSETTING(      0x0800, "Easy" )
433 	PORT_DIPSETTING(      0x0c00, "Normal" )
434 	PORT_DIPSETTING(      0x0400, "Hard" )
435 	PORT_DIPSETTING(      0x0000, "Hardest" )
436 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
437 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
438 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
439 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
440 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
441 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
442 	PORT_DIPNAME( 0x4000, 0x4000, "Continues" )
443 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
444 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
445 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
446 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
447 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
448 INPUT_PORTS_END
449 
450 INPUT_PORTS_START( cninja )
451 	PORT_START
452 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
453 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
454 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
455 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
456 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
457 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
458 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
459 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
460 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
461 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
462 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
463 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
464 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
465 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
466 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
467 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
468 
469 	PORT_START
470 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
471 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
472 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
473 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )
474 
475 	PORT_START
476 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
477 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
478 	PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
479 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
480 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
481 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
482 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
483 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_5C ) )
484 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_6C ) )
485 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
486 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
487 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
488 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
489 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
490 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
491 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
492 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_5C ) )
493 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ) )
494 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )
495 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
496 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
497 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
498 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
499 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
500 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
501 	PORT_DIPSETTING(      0x0100, "1" )
502 	PORT_DIPSETTING(      0x0000, "2" )
503 	PORT_DIPSETTING(      0x0300, "3" )
504 	PORT_DIPSETTING(      0x0200, "4" )
505 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
506 	PORT_DIPSETTING(      0x0800, "Easy" )
507 	PORT_DIPSETTING(      0x0c00, "Normal" )
508 	PORT_DIPSETTING(      0x0400, "Hard" )
509 	PORT_DIPSETTING(      0x0000, "Hardest" )
510 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
511 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
512 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
513 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
514 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
515 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
516 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
517 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
518 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
519 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
520 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
521 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
522 INPUT_PORTS_END
523 
524 INPUT_PORTS_START( cninjau )
525 	PORT_START
526 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
527 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
528 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
529 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
530 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
531 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
532 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
533 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
534 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
535 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
536 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
537 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
538 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
539 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
540 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
541 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
542 
543 	PORT_START
544 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
545 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
546 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
547 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )
548 
549 	PORT_START
550 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
551 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
552 	PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
553 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
554 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
555 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
556 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
557 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_5C ) )
558 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_6C ) )
559 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
560 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
561 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
562 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
563 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
564 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
565 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
566 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_5C ) )
567 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ) )
568 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )
569 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
570 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
571 	PORT_DIPNAME( 0x0080, 0x0080, "Credit(s) to Start" ) /* Also, if Coin A and B are on 1/1, 0x00 gives 2 to start, 1 to continue */
572 	PORT_DIPSETTING(      0x0080, "1" )
573 	PORT_DIPSETTING(      0x0000, "2" )
574 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
575 	PORT_DIPSETTING(      0x0100, "1" )
576 	PORT_DIPSETTING(      0x0000, "2" )
577 	PORT_DIPSETTING(      0x0300, "3" )
578 	PORT_DIPSETTING(      0x0200, "4" )
579 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
580 	PORT_DIPSETTING(      0x0800, "Easy" )
581 	PORT_DIPSETTING(      0x0c00, "Normal" )
582 	PORT_DIPSETTING(      0x0400, "Hard" )
583 	PORT_DIPSETTING(      0x0000, "Hardest" )
584 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
585 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
586 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
587 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
588 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
589 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
590 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
591 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
592 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
593 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
594 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
595 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
596 INPUT_PORTS_END
597 
598 INPUT_PORTS_START( robocop2 )
599 	PORT_START
600 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
601 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
602 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
603 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
604 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
605 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
606 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
607 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
608 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
609 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
610 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
611 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
612 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
613 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
614 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
615 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
616 
617 	PORT_START
618 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
619 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
620 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
621 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )
622 
623 	PORT_START	/* Dip switch bank 1 */
624 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
625 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
626 	PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
627 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
628 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
629 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
630 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
631 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_5C ) )
632 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_6C ) )
633 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
634 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
635 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
636 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
637 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
638 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
639 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
640 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_5C ) )
641 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ) )
642 	PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Flip_Screen ) )
643 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
644 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
645 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
646 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
647 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
648 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
649 	PORT_DIPSETTING(      0x0100, "1" )
650 	PORT_DIPSETTING(      0x0000, "2" )
651 	PORT_DIPSETTING(      0x0300, "3" )
652 	PORT_DIPSETTING(      0x0200, "4" )
653 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
654 	PORT_DIPSETTING(      0x0800, "Easy" )
655 	PORT_DIPSETTING(      0x0c00, "Normal" )
656 	PORT_DIPSETTING(      0x0400, "Hard" )
657 	PORT_DIPSETTING(      0x0000, "Hardest" )
658 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
659 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
660 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
661 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
662 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
663 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
664 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
665 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
666 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
667 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
668 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
669 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
670 INPUT_PORTS_END
671 
672 INPUT_PORTS_START( mutantf )
673 	PORT_START
674 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
675 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
676 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
677 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
678 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
679 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
680 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
681 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
682 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
683 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
684 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
685 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
686 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
687 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
688 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
689 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
690 
691 	PORT_START
692 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
693 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
694 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
695 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )
696 
697 	PORT_START
698 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
699 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
700 	PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
701 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
702 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
703 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
704 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
705 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_5C ) )
706 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_6C ) )
707 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
708 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
709 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
710 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
711 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
712 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
713 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
714 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_5C ) )
715 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ) )
716 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )
717 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
718 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
719 	PORT_DIPNAME( 0x0080, 0x0080, "Continue Coin" )
720 	PORT_DIPSETTING(      0x0080, "Normal" )
721 	PORT_DIPSETTING(      0x0000, "Two Coin Start" )
722 	PORT_DIPNAME( 0x0300, 0x0300, "Timer Decrement" )
723 	PORT_DIPSETTING(      0x0100, "Slow" )
724 	PORT_DIPSETTING(      0x0300, "Normal" )
725 	PORT_DIPSETTING(      0x0200, "Fast" )
726 	PORT_DIPSETTING(      0x0000, "Very Fast" )
727 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
728 	PORT_DIPSETTING(      0x0800, "Easy" )
729 	PORT_DIPSETTING(      0x0c00, "Normal" )
730 	PORT_DIPSETTING(      0x0400, "Hard" )
731 	PORT_DIPSETTING(      0x0000, "Hardest" )
732 	PORT_DIPNAME( 0x3000, 0x3000, "Life Per Stage" )
733 	PORT_DIPSETTING(      0x0000, "Least" )
734 	PORT_DIPSETTING(      0x1000, "Little" )
735 	PORT_DIPSETTING(      0x2000, "Less" )
736 	PORT_DIPSETTING(      0x3000, "Normal" )
737 	PORT_DIPNAME( 0x4000, 0x4000, "Continues" )
738 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
739 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
740 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
741 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
742 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
743 INPUT_PORTS_END
744 
745 /**********************************************************************************/
746 
747 static struct GfxLayout charlayout =
748 {
749 	8,8,
750 	RGN_FRAC(1,2),
751 	4,
752 	{ RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
753 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
754 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
755 	16*8	/* every char takes 8 consecutive bytes */
756 };
757 
758 static struct GfxLayout spritelayout =
759 {
760 	16,16,
761 	RGN_FRAC(1,1),
762 	4,
763 	{ 16, 0, 24, 8 },
764 	{ 64*8+0, 64*8+1, 64*8+2, 64*8+3, 64*8+4, 64*8+5, 64*8+6, 64*8+7,
765 		0, 1, 2, 3, 4, 5, 6, 7 },
766 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
767 			8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
768 	128*8
769 };
770 
771 static struct GfxLayout tilelayout =
772 {
773 	16,16,
774 	RGN_FRAC(1,2),
775 	4,
776 	{ RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0,  },
777 	{ 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7,
778 		0, 1, 2, 3, 4, 5, 6, 7 },
779 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
780 			8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
781 	64*8
782 };
783 
784 static struct GfxLayout tilelayout_8bpp =
785 {
786 	16,16,
787 	4096,
788 	8,
789 	{ 0x100000*8+8, 0x100000*8, 0x40000*8+8, 0x40000*8, 0xc0000*8+8, 0xc0000*8, 8, 0 },
790 	{ 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7,
791 		0, 1, 2, 3, 4, 5, 6, 7 },
792 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
793 			8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
794 	64*8
795 };
796 
797 static struct GfxDecodeInfo gfxdecodeinfo[] =
798 {
799 	{ REGION_GFX1, 0, &charlayout,    0, 32 },	/* Characters 8x8 */
800 	{ REGION_GFX2, 0, &tilelayout,    0, 32 },	/* Tiles 16x16 */
801 	{ REGION_GFX3, 0, &tilelayout,  512, 64 },	/* Tiles 16x16 */
802 	{ REGION_GFX4, 0, &spritelayout,768, 32 },	/* Sprites 16x16 */
803 	{ -1 } /* end of array */
804 };
805 
806 static struct GfxDecodeInfo gfxdecodeinfo_robocop2[] =
807 {
808 	{ REGION_GFX1, 0, &charlayout,    0, 32 },	/* Characters 8x8 */
809 	{ REGION_GFX2, 0, &tilelayout,    0, 32 },	/* Tiles 16x16 */
810 	{ REGION_GFX3, 0, &tilelayout,  512, 64 },	/* Tiles 16x16 */
811 	{ REGION_GFX4, 0, &spritelayout,768, 32 },	/* Sprites 16x16 */
812 	{ REGION_GFX3, 0, &tilelayout_8bpp,  512, 1 },	/* Tiles 16x16 */
813 	{ -1 } /* end of array */
814 };
815 
816 static struct GfxDecodeInfo gfxdecodeinfo_mutantf[] =
817 {
818 	{ REGION_GFX1, 0, &charlayout,          0, 64 },	/* Characters 8x8 */
819 	{ REGION_GFX2, 0, &tilelayout,          0, 64 },	/* Tiles 16x16 */
820 	{ REGION_GFX3, 0, &tilelayout,          0, 64 },	/* Tiles 16x16 */
821 	{ REGION_GFX4, 0, &spritelayout,      256, 128 },	/* Sprites 16x16 */
822 	{ REGION_GFX5, 0, &spritelayout,     1024+768, 16 },	/* Sprites 16x16 */
823 	{ -1 } /* end of array */
824 };
825 
826 /**********************************************************************************/
827 
MACHINE_INIT(cninja)828 static MACHINE_INIT( cninja )
829 {
830 	raster_irq_timer = timer_alloc(interrupt_gen);
831 	cninja_scanline=0;
832 	cninja_irq_mask=0;
833 }
834 
835 static struct YM2203interface ym2203_interface =
836 {
837 	1,
838 	32220000/8, /* Accurate, audio section crystal is 32.220 MHz */
839 	{ YM2203_VOL(60,60) },
840 	{ 0 },
841 	{ 0 },
842 	{ 0 },
843 	{ 0 }
844 };
845 
sound_irq(int state)846 static void sound_irq(int state)
847 {
848 	cpu_set_irq_line(1,1,state); /* IRQ 2 */
849 }
850 
sound_irq2(int state)851 static void sound_irq2(int state)
852 {
853 	cpu_set_irq_line(1,0,state);
854 }
855 
WRITE_HANDLER(sound_bankswitch_w)856 static WRITE_HANDLER( sound_bankswitch_w )
857 {
858 	/* the second OKIM6295 ROM is bank switched */
859 	OKIM6295_set_bank_base(1, (data & 1) * 0x40000);
860 }
861 
862 static struct YM2151interface ym2151_interface =
863 {
864 	1,
865 	32220000/9, /* Accurate, audio section crystal is 32.220 MHz */
866 	{ YM3012_VOL(45,MIXER_PAN_LEFT,45,MIXER_PAN_RIGHT) },
867 	{ sound_irq },
868 	{ sound_bankswitch_w }
869 };
870 
871 static struct YM2151interface ym2151_interface2 =
872 {
873 	1,
874 	3579545,	/* 3.579545 MHz (?) */
875 	{ YM3012_VOL(50,MIXER_PAN_CENTER,50,MIXER_PAN_CENTER) },
876 	{ sound_irq2 }
877 };
878 
879 static struct OKIM6295interface okim6295_interface =
880 {
881 	2,              /* 2 chips */
882 	{ 32220000/32/132, 32220000/16/132 },/* Frequency */
883 	{ REGION_SOUND1, REGION_SOUND2 },
884 	{ 75, 60 } /* Note!  Keep chip 1 (voices) louder than chip 2 */
885 };
886 
887 /**********************************************************************************/
888 
889 static MACHINE_DRIVER_START( cninja )
890 
891 	/* basic machine hardware */
892 	MDRV_CPU_ADD(M68000, 12000000)
MDRV_CPU_MEMORY(cninja_readmem,cninja_writemem)893 	MDRV_CPU_MEMORY(cninja_readmem,cninja_writemem)
894 	MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
895 
896 	MDRV_CPU_ADD(H6280,32220000/8)
897 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* Accurate */
898 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
899 
900 	MDRV_MACHINE_INIT(cninja)
901 	MDRV_FRAMES_PER_SECOND(58)
902 	MDRV_VBLANK_DURATION(529)
903 
904 	/* video hardware */
905 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_BUFFERS_SPRITERAM)
906 	MDRV_SCREEN_SIZE(32*8, 32*8)
907 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
908 	MDRV_GFXDECODE(gfxdecodeinfo)
909 	MDRV_PALETTE_LENGTH(2048)
910 
911 	MDRV_VIDEO_START(cninja)
912 	MDRV_VIDEO_UPDATE(cninja)
913 	MDRV_VIDEO_EOF(cninja)
914 
915 	/* sound hardware */
916 	MDRV_SOUND_ADD(YM2203, ym2203_interface)
917 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
918 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
919 MACHINE_DRIVER_END
920 
921 static MACHINE_DRIVER_START( stoneage )
922 
923 	/* basic machine hardware */
924 	MDRV_CPU_ADD(M68000, 12000000)
925 	MDRV_CPU_MEMORY(cninja_readmem,cninja_writemem)
926 	MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
927 
928 	MDRV_CPU_ADD(Z80, 3579545)
929 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
930 	MDRV_CPU_MEMORY(stoneage_s_readmem,stoneage_s_writemem)
931 
932 	MDRV_MACHINE_INIT(cninja)
933 	MDRV_FRAMES_PER_SECOND(58)
934 	MDRV_VBLANK_DURATION(529)
935 
936 	/* video hardware */
937 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_BUFFERS_SPRITERAM)
938 	MDRV_SCREEN_SIZE(32*8, 32*8)
939 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
940 	MDRV_GFXDECODE(gfxdecodeinfo)
941 	MDRV_PALETTE_LENGTH(2048)
942 
943 	MDRV_VIDEO_START(stoneage)
944 	MDRV_VIDEO_UPDATE(cninja)
945 	MDRV_VIDEO_EOF(cninja)
946 
947 	/* sound hardware */
948 	MDRV_SOUND_ADD(YM2151, ym2151_interface2)
949 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
950 MACHINE_DRIVER_END
951 
952 static MACHINE_DRIVER_START( edrandy )
953 
954 	/* basic machine hardware */
955 	MDRV_CPU_ADD(M68000, 12000000)
956 	MDRV_CPU_MEMORY(edrandy_readmem,edrandy_writemem)
957 	MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
958 
959 	MDRV_CPU_ADD(H6280,32220000/8)
960 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* Accurate */
961 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
962 
963 	MDRV_MACHINE_INIT(cninja)
964 	MDRV_FRAMES_PER_SECOND(58)
965 	MDRV_VBLANK_DURATION(529)
966 
967 	/* video hardware */
968 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_BUFFERS_SPRITERAM)
969 	MDRV_SCREEN_SIZE(32*8, 32*8)
970 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
971 	MDRV_GFXDECODE(gfxdecodeinfo)
972 	MDRV_PALETTE_LENGTH(2048)
973 
974 	MDRV_VIDEO_START(edrandy)
975 	MDRV_VIDEO_UPDATE(edrandy)
976 	MDRV_VIDEO_EOF(cninja)
977 
978 	/* sound hardware */
979 	MDRV_SOUND_ADD(YM2203, ym2203_interface)
980 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
981 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
982 MACHINE_DRIVER_END
983 
984 static MACHINE_DRIVER_START( robocop2 )
985 
986 	/* basic machine hardware */
987 	MDRV_CPU_ADD(M68000, 14000000)
988 	MDRV_CPU_MEMORY(robocop2_readmem,robocop2_writemem)
989 	MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
990 
991 	MDRV_CPU_ADD(H6280,32220000/8)
992 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* Accurate */
993 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
994 
995 	MDRV_MACHINE_INIT(cninja)
996 	MDRV_FRAMES_PER_SECOND(60)
997 	MDRV_VBLANK_DURATION(529)
998 
999 	/* video hardware */
1000 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_BUFFERS_SPRITERAM)
1001 	MDRV_SCREEN_SIZE(40*8, 32*8)
1002 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1003 	MDRV_GFXDECODE(gfxdecodeinfo_robocop2)
1004 	MDRV_PALETTE_LENGTH(2048)
1005 
1006 	MDRV_VIDEO_START(robocop2)
1007 	MDRV_VIDEO_UPDATE(robocop2)
1008 	MDRV_VIDEO_EOF(cninja)
1009 
1010 	/* sound hardware */
1011 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1012 	MDRV_SOUND_ADD(YM2203, ym2203_interface)
1013 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
1014 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
1015 MACHINE_DRIVER_END
1016 
1017 static MACHINE_DRIVER_START( mutantf )
1018 
1019 	/* basic machine hardware */
1020 	MDRV_CPU_ADD(M68000, 14000000)
1021 	MDRV_CPU_MEMORY(mutantf_readmem,mutantf_writemem)
1022 	MDRV_CPU_VBLANK_INT(irq6_line_hold,1)
1023 
1024 	MDRV_CPU_ADD(H6280,32220000/8)
1025 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
1026 	MDRV_CPU_MEMORY(sound_readmem_mutantf,sound_writemem_mutantf)
1027 
1028 	MDRV_FRAMES_PER_SECOND(60)
1029 	MDRV_VBLANK_DURATION(529)
1030 
1031 	/* video hardware */
1032 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_BUFFERS_SPRITERAM | VIDEO_RGB_DIRECT)
1033 	MDRV_SCREEN_SIZE(40*8, 32*8)
1034 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1035 	MDRV_GFXDECODE(gfxdecodeinfo_mutantf)
1036 	MDRV_PALETTE_LENGTH(2048)
1037 
1038 	MDRV_VIDEO_START(mutantf)
1039 	MDRV_VIDEO_UPDATE(mutantf)
1040 
1041 	/* sound hardware */
1042 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1043 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
1044 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
1045 MACHINE_DRIVER_END
1046 
1047 /**********************************************************************************/
1048 
1049 ROM_START( cninja )
1050 	ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1051 	ROM_LOAD16_BYTE( "gn02rev3.bin", 0x00000, 0x20000, CRC(39aea12a) SHA1(5de4e26d2c03c559249720b6a204567673754774) )
1052 	ROM_LOAD16_BYTE( "gn05rev2.bin", 0x00001, 0x20000, CRC(0f4360ef) SHA1(d60b3377e818a037d0f94383dd207865853f529d) )
1053 	ROM_LOAD16_BYTE( "gn01rev2.bin", 0x40000, 0x20000, CRC(f740ef7e) SHA1(e70bf04e2407dc0c512617417581388365eb1d35) )
1054 	ROM_LOAD16_BYTE( "gn04rev2.bin", 0x40001, 0x20000, CRC(c98fcb62) SHA1(b2ee52a9418190c62e0b34920e44111270d68286) )
1055 	ROM_LOAD16_BYTE( "gn-00.rom",    0x80000, 0x20000, CRC(0b110b16) SHA1(a967c8aeae3f0cee1f354583cf26ee736636aaf8) )
1056 	ROM_LOAD16_BYTE( "gn-03.rom",    0x80001, 0x20000, CRC(1e28e697) SHA1(2313e97f3a34892dfdc338944c0f00538fcae800) )
1057 
1058 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1059 	ROM_LOAD( "gl-07.rom",  0x00000,  0x10000,  CRC(ca8bef96) SHA1(fcdbd598c85e339a3389a2ef58cf2d5b3a2779af) )
1060 
1061 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1062 	ROM_LOAD16_BYTE( "gl-08.rom",  0x00001,  0x10000,  CRC(33a2b400) SHA1(fdb8de315f33705719c0ac03a61fb56ffbfdf597) )	/* chars */
1063 	ROM_LOAD16_BYTE( "gl-09.rom",  0x00000,  0x10000,  CRC(5a2d4752) SHA1(617dd10a99b5b55ca64dcdd22a0f133b0d6b770d) )
1064 
1065 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1066 	ROM_LOAD( "mag-02.rom", 0x000000, 0x80000,  CRC(de89c69a) SHA1(b41bdf859854b5541c7eae7cd541b910cea1f839) )	/* tiles 3 */
1067 
1068 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1069 	ROM_LOAD( "mag-00.rom", 0x000000, 0x40000,  CRC(a8f05d33) SHA1(a1330bc9ca4648219403db087622badfc632b47d) )	/* tiles 1 */
1070 	ROM_CONTINUE(           0x080000, 0x40000 )
1071 	ROM_LOAD( "mag-01.rom", 0x040000, 0x40000,  CRC(5b399eed) SHA1(490f8f9c0c557b0ba94c6019e3fe680641a0787e) )	/* tiles 2 */
1072 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1073 
1074 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1075 	ROM_LOAD16_BYTE( "mag-03.rom", 0x000000, 0x80000,  CRC(2220eb9f) SHA1(bdf0bd6e6ba375f0770b9d08a7efa32201cbb6ef) )	/* sprites */
1076 	ROM_LOAD16_BYTE( "mag-05.rom", 0x000001, 0x80000,  CRC(56a53254) SHA1(10940cfdc6fbe9013865107de3394ca7f782d9c7) )
1077 	ROM_LOAD16_BYTE( "mag-04.rom", 0x100000, 0x80000,  CRC(144b94cc) SHA1(d982508608942a714b428a2b721bf24e1627cbb6) )
1078 	ROM_LOAD16_BYTE( "mag-06.rom", 0x100001, 0x80000,  CRC(82d44749) SHA1(c471fa573e00c2f8ae44068439ba6d849a124c68) )
1079 
1080 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1081 	ROM_LOAD( "gl-06.rom",  0x00000,  0x20000,  CRC(d92e519d) SHA1(08238f12bf7058a3965ab6348b468e3d35d4cd23) )
1082 
1083 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1084 	ROM_LOAD( "mag-07.rom", 0x00000,  0x80000,  CRC(08eb5264) SHA1(3e33085f00b758acfc78034dc9a75fd6921fc3fe) )	/* banked */
1085 
1086 	ROM_REGION( 1024, REGION_PROMS, 0 )
1087 	ROM_LOAD( "mb7122h.7v", 0x00000,  0x400,  CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) )	/* Priority  Unused */
1088 ROM_END
1089 
1090 ROM_START( cninja0 )
1091 	ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1092 	ROM_LOAD16_BYTE( "gn-02.rom", 0x00000, 0x20000, CRC(ccc59524) SHA1(430ae28ca38ec6a97b00cc3dee02d57e073819d4) )
1093 	ROM_LOAD16_BYTE( "gn-05.rom", 0x00001, 0x20000, CRC(a002cbe4) SHA1(76f57e49fc41a779856f70feb14432a8ffd08bff) )
1094 	ROM_LOAD16_BYTE( "gn-01.rom", 0x40000, 0x20000, CRC(18f0527c) SHA1(17b7ea68909c7c8b819578e2039f5be4a640ea75) )
1095 	ROM_LOAD16_BYTE( "gn-04.rom", 0x40001, 0x20000, CRC(ea4b6d53) SHA1(263319750524756319587b6e51dfead0265809cb) )
1096 	ROM_LOAD16_BYTE( "gn-00.rom", 0x80000, 0x20000, CRC(0b110b16) SHA1(a967c8aeae3f0cee1f354583cf26ee736636aaf8) )
1097 	ROM_LOAD16_BYTE( "gn-03.rom", 0x80001, 0x20000, CRC(1e28e697) SHA1(2313e97f3a34892dfdc338944c0f00538fcae800) )
1098 
1099 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1100 	ROM_LOAD( "gl-07.rom",  0x00000,  0x10000,  CRC(ca8bef96) SHA1(fcdbd598c85e339a3389a2ef58cf2d5b3a2779af) )
1101 
1102 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1103 	ROM_LOAD16_BYTE( "gl-08.rom",  0x00001,  0x10000,  CRC(33a2b400) SHA1(fdb8de315f33705719c0ac03a61fb56ffbfdf597) )	/* chars */
1104 	ROM_LOAD16_BYTE( "gl-09.rom",  0x00000,  0x10000,  CRC(5a2d4752) SHA1(617dd10a99b5b55ca64dcdd22a0f133b0d6b770d) )
1105 
1106 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1107 	ROM_LOAD( "mag-02.rom", 0x000000, 0x80000,  CRC(de89c69a) SHA1(b41bdf859854b5541c7eae7cd541b910cea1f839) )	/* tiles 3 */
1108 
1109 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1110 	ROM_LOAD( "mag-00.rom", 0x000000, 0x40000,  CRC(a8f05d33) SHA1(a1330bc9ca4648219403db087622badfc632b47d) )	/* tiles 1 */
1111 	ROM_CONTINUE(           0x080000, 0x40000 )
1112 	ROM_LOAD( "mag-01.rom", 0x040000, 0x40000,  CRC(5b399eed) SHA1(490f8f9c0c557b0ba94c6019e3fe680641a0787e) )	/* tiles 2 */
1113 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1114 
1115 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1116 	ROM_LOAD16_BYTE( "mag-03.rom", 0x000000, 0x80000,  CRC(2220eb9f) SHA1(bdf0bd6e6ba375f0770b9d08a7efa32201cbb6ef) )	/* sprites */
1117 	ROM_LOAD16_BYTE( "mag-05.rom", 0x000001, 0x80000,  CRC(56a53254) SHA1(10940cfdc6fbe9013865107de3394ca7f782d9c7) )
1118 	ROM_LOAD16_BYTE( "mag-04.rom", 0x100000, 0x80000,  CRC(144b94cc) SHA1(d982508608942a714b428a2b721bf24e1627cbb6) )
1119 	ROM_LOAD16_BYTE( "mag-06.rom", 0x100001, 0x80000,  CRC(82d44749) SHA1(c471fa573e00c2f8ae44068439ba6d849a124c68) )
1120 
1121 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1122 	ROM_LOAD( "gl-06.rom",  0x00000,  0x20000,  CRC(d92e519d) SHA1(08238f12bf7058a3965ab6348b468e3d35d4cd23) )
1123 
1124 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1125 	ROM_LOAD( "mag-07.rom", 0x00000,  0x80000,  CRC(08eb5264) SHA1(3e33085f00b758acfc78034dc9a75fd6921fc3fe) )	/* banked */
1126 
1127 	ROM_REGION( 1024, REGION_PROMS, 0 )
1128 	ROM_LOAD( "mb7122h.7v", 0x00000,  0x400,  CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) )	/* Priority  Unused */
1129 ROM_END
1130 
1131 ROM_START( cninjau )
1132 	ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1133 	ROM_LOAD16_BYTE( "gm02-3.1k", 0x00000, 0x20000, CRC(d931c3b1) SHA1(336390072a3a085fc534d9e2443c76104093b24f) )
1134 	ROM_LOAD16_BYTE( "gm05-2.3k", 0x00001, 0x20000, CRC(7417d3fb) SHA1(24c65101585955d56440b63a307021b5c137d7b9) )
1135 	ROM_LOAD16_BYTE( "gm01-2.1j", 0x40000, 0x20000, CRC(72041f7e) SHA1(cad62d6f3d77e361c7bb642401544baf01aec40d) )
1136 	ROM_LOAD16_BYTE( "gm04-2.3j", 0x40001, 0x20000, CRC(2104d005) SHA1(7fcb33745f1200024a05feb87a35b82de6030bd2) )
1137 	ROM_LOAD16_BYTE( "gn-00.rom", 0x80000, 0x20000, CRC(0b110b16) SHA1(a967c8aeae3f0cee1f354583cf26ee736636aaf8) )
1138 	ROM_LOAD16_BYTE( "gn-03.rom", 0x80001, 0x20000, CRC(1e28e697) SHA1(2313e97f3a34892dfdc338944c0f00538fcae800) )
1139 
1140 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1141 	ROM_LOAD( "gl-07.rom",  0x00000,  0x10000,  CRC(ca8bef96) SHA1(fcdbd598c85e339a3389a2ef58cf2d5b3a2779af) )
1142 
1143 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1144 	ROM_LOAD16_BYTE( "gl-08.rom",  0x00001,  0x10000,  CRC(33a2b400) SHA1(fdb8de315f33705719c0ac03a61fb56ffbfdf597) )	/* chars */
1145 	ROM_LOAD16_BYTE( "gl-09.rom",  0x00000,  0x10000,  CRC(5a2d4752) SHA1(617dd10a99b5b55ca64dcdd22a0f133b0d6b770d) )
1146 
1147 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1148 	ROM_LOAD( "mag-02.rom", 0x000000, 0x80000,  CRC(de89c69a) SHA1(b41bdf859854b5541c7eae7cd541b910cea1f839) )	/* tiles 3 */
1149 
1150 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1151 	ROM_LOAD( "mag-00.rom", 0x000000, 0x40000,  CRC(a8f05d33) SHA1(a1330bc9ca4648219403db087622badfc632b47d) )	/* tiles 1 */
1152 	ROM_CONTINUE(           0x080000, 0x40000 )
1153 	ROM_LOAD( "mag-01.rom", 0x040000, 0x40000,  CRC(5b399eed) SHA1(490f8f9c0c557b0ba94c6019e3fe680641a0787e) )	/* tiles 2 */
1154 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1155 
1156 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1157 	ROM_LOAD16_BYTE( "mag-03.rom", 0x000000, 0x80000,  CRC(2220eb9f) SHA1(bdf0bd6e6ba375f0770b9d08a7efa32201cbb6ef) )	/* sprites */
1158 	ROM_LOAD16_BYTE( "mag-05.rom", 0x000001, 0x80000,  CRC(56a53254) SHA1(10940cfdc6fbe9013865107de3394ca7f782d9c7) )
1159 	ROM_LOAD16_BYTE( "mag-04.rom", 0x100000, 0x80000,  CRC(144b94cc) SHA1(d982508608942a714b428a2b721bf24e1627cbb6) )
1160 	ROM_LOAD16_BYTE( "mag-06.rom", 0x100001, 0x80000,  CRC(82d44749) SHA1(c471fa573e00c2f8ae44068439ba6d849a124c68) )
1161 
1162 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1163 	ROM_LOAD( "gl-06.rom",  0x00000,  0x20000,  CRC(d92e519d) SHA1(08238f12bf7058a3965ab6348b468e3d35d4cd23) )
1164 
1165 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1166 	ROM_LOAD( "mag-07.rom", 0x00000,  0x80000,  CRC(08eb5264) SHA1(3e33085f00b758acfc78034dc9a75fd6921fc3fe) )	/* banked */
1167 
1168 	ROM_REGION( 1024, REGION_PROMS, 0 )
1169 	ROM_LOAD( "mb7122h.7v", 0x00000,  0x400,  CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) )	/* Priority  Unused */
1170 ROM_END
1171 
1172 ROM_START( joemac )
1173 	ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1174 	ROM_LOAD16_BYTE( "gl02-2.k1", 0x00000, 0x20000,  CRC(80da12e2) SHA1(1037ed56c15dbe1eb8bb8b70f0bc3affc1119782) )
1175 	ROM_LOAD16_BYTE( "gl05-2.k3", 0x00001, 0x20000,  CRC(fe4dbbbb) SHA1(85a3c5470270ebfc695fc5e937cf133a33860bec) )
1176 	ROM_LOAD16_BYTE( "gl01-2.j1", 0x40000, 0x20000,  CRC(0b245307) SHA1(839735c0739cebb7ac5e328aa8b69170f390b96e) )
1177 	ROM_LOAD16_BYTE( "gl04-2.j3", 0x40001, 0x20000,  CRC(1b331f61) SHA1(7811c3c25bd17188ae9cc792e106b303ccb14cde) )
1178 	ROM_LOAD16_BYTE( "gn-00.rom", 0x80000, 0x20000,  CRC(0b110b16) SHA1(a967c8aeae3f0cee1f354583cf26ee736636aaf8) )
1179 	ROM_LOAD16_BYTE( "gn-03.rom", 0x80001, 0x20000,  CRC(1e28e697) SHA1(2313e97f3a34892dfdc338944c0f00538fcae800) )
1180 
1181 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1182 	ROM_LOAD( "gl-07.rom",  0x00000,  0x10000,  CRC(ca8bef96) SHA1(fcdbd598c85e339a3389a2ef58cf2d5b3a2779af) )
1183 
1184 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1185 	ROM_LOAD16_BYTE( "gl-08.rom",  0x00001,  0x10000,  CRC(33a2b400) SHA1(fdb8de315f33705719c0ac03a61fb56ffbfdf597) )	/* chars */
1186 	ROM_LOAD16_BYTE( "gl-09.rom",  0x00000,  0x10000,  CRC(5a2d4752) SHA1(617dd10a99b5b55ca64dcdd22a0f133b0d6b770d) )
1187 
1188 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1189 	ROM_LOAD( "mag-02.rom", 0x000000, 0x80000,  CRC(de89c69a) SHA1(b41bdf859854b5541c7eae7cd541b910cea1f839) )	/* tiles 3 */
1190 
1191 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1192 	ROM_LOAD( "mag-00.rom", 0x000000, 0x40000,  CRC(a8f05d33) SHA1(a1330bc9ca4648219403db087622badfc632b47d) )	/* tiles 1 */
1193 	ROM_CONTINUE(           0x080000, 0x40000 )
1194 	ROM_LOAD( "mag-01.rom", 0x040000, 0x40000,  CRC(5b399eed) SHA1(490f8f9c0c557b0ba94c6019e3fe680641a0787e) )	/* tiles 2 */
1195 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1196 
1197 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1198 	ROM_LOAD16_BYTE( "mag-03.rom", 0x000000, 0x80000,  CRC(2220eb9f) SHA1(bdf0bd6e6ba375f0770b9d08a7efa32201cbb6ef) )	/* sprites */
1199 	ROM_LOAD16_BYTE( "mag-05.rom", 0x000001, 0x80000,  CRC(56a53254) SHA1(10940cfdc6fbe9013865107de3394ca7f782d9c7) )
1200 	ROM_LOAD16_BYTE( "mag-04.rom", 0x100000, 0x80000,  CRC(144b94cc) SHA1(d982508608942a714b428a2b721bf24e1627cbb6) )
1201 	ROM_LOAD16_BYTE( "mag-06.rom", 0x100001, 0x80000,  CRC(82d44749) SHA1(c471fa573e00c2f8ae44068439ba6d849a124c68) )
1202 
1203 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1204 	ROM_LOAD( "gl-06.rom",  0x00000,  0x20000,  CRC(d92e519d) SHA1(08238f12bf7058a3965ab6348b468e3d35d4cd23) )
1205 
1206 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1207 	ROM_LOAD( "mag-07.rom", 0x00000,  0x80000,  CRC(08eb5264) SHA1(3e33085f00b758acfc78034dc9a75fd6921fc3fe) )	/* banked */
1208 
1209 	ROM_REGION( 1024, REGION_PROMS, 0 )
1210 	ROM_LOAD( "mb7122h.7v", 0x00000,  0x400,  CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) )	/* Priority  Unused */
1211 ROM_END
1212 
1213 ROM_START( stoneage )
1214 	ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1215 	ROM_LOAD16_BYTE( "sa_1_019.bin", 0x00000, 0x20000,  CRC(7fb8c44f) SHA1(0167805793a4288f545c0a8ea66bd1ad82bac437) )
1216 	ROM_LOAD16_BYTE( "sa_1_033.bin", 0x00001, 0x20000,  CRC(961c752b) SHA1(b9ac7882662f84de7309c46f8c9344693215d9f7) )
1217 	ROM_LOAD16_BYTE( "sa_1_018.bin", 0x40000, 0x20000,  CRC(a4043022) SHA1(084e80eaf4ffd9243996615ed20b7debcd185754) )
1218 	ROM_LOAD16_BYTE( "sa_1_032.bin", 0x40001, 0x20000,  CRC(f52a3286) SHA1(04bc64ddefd1c52c87fe653423fb1e15746b8abc) )
1219 	ROM_LOAD16_BYTE( "sa_1_017.bin", 0x80000, 0x20000,  CRC(08d6397a) SHA1(ae3a50a043b3247545378611381c593b3ceeb561) )
1220 	ROM_LOAD16_BYTE( "sa_1_031.bin", 0x80001, 0x20000,  CRC(103079f5) SHA1(7ed28ab957be14974badeaa23f570f99ada61633) )
1221 
1222 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1223 	ROM_LOAD( "sa_1_012.bin",  0x00000,  0x10000, CRC(56058934) SHA1(99a007884c92c2d931d9270c6c2ec02fbc913922) )
1224 
1225 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1226 	ROM_LOAD16_BYTE( "gl-08.rom",  0x00001,  0x10000,  CRC(33a2b400) SHA1(fdb8de315f33705719c0ac03a61fb56ffbfdf597) )	/* chars */
1227 	ROM_LOAD16_BYTE( "gl-09.rom",  0x00000,  0x10000,  CRC(5a2d4752) SHA1(617dd10a99b5b55ca64dcdd22a0f133b0d6b770d) )
1228 
1229 	/* The bootleg graphics are stored in a different arrangement but
1230 		seem to be the same as the original set */
1231 
1232 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1233 	ROM_LOAD( "mag-02.rom", 0x000000, 0x80000,  CRC(de89c69a) SHA1(b41bdf859854b5541c7eae7cd541b910cea1f839) )	/* tiles 3 */
1234 
1235 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1236 	ROM_LOAD( "mag-00.rom", 0x000000, 0x40000,  CRC(a8f05d33) SHA1(a1330bc9ca4648219403db087622badfc632b47d) )	/* tiles 1 */
1237 	ROM_CONTINUE(           0x080000, 0x40000 )
1238 	ROM_LOAD( "mag-01.rom", 0x040000, 0x40000,  CRC(5b399eed) SHA1(490f8f9c0c557b0ba94c6019e3fe680641a0787e) )	/* tiles 2 */
1239 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1240 
1241 	ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
1242 	ROM_LOAD16_BYTE( "mag-03.rom", 0x000000, 0x80000,  CRC(2220eb9f) SHA1(bdf0bd6e6ba375f0770b9d08a7efa32201cbb6ef) )	/* sprites */
1243 	ROM_LOAD16_BYTE( "mag-05.rom", 0x000001, 0x80000,  CRC(56a53254) SHA1(10940cfdc6fbe9013865107de3394ca7f782d9c7) )
1244 	ROM_LOAD16_BYTE( "mag-04.rom", 0x100000, 0x80000,  CRC(144b94cc) SHA1(d982508608942a714b428a2b721bf24e1627cbb6) )
1245 	ROM_LOAD16_BYTE( "mag-06.rom", 0x100001, 0x80000,  CRC(82d44749) SHA1(c471fa573e00c2f8ae44068439ba6d849a124c68) )
1246 
1247 	ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Oki samples */
1248 	ROM_LOAD( "sa_1_069.bin",  0x00000,  0x40000, CRC(2188f3ca) SHA1(9c29b62ed261e63d701ff8d43020089c89a64ab2) )
1249 
1250 	/* No extra Oki samples in the bootleg */
1251 ROM_END
1252 
1253 ROM_START( edrandy )
1254 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1255   	ROM_LOAD16_BYTE( "gg-00-2", 0x00000, 0x20000, CRC(ce1ba964) SHA1(da21734721344eff41a64a7f2382d5c027a24782) )
1256 	ROM_LOAD16_BYTE( "gg-04-2", 0x00001, 0x20000, CRC(24caed19) SHA1(bdca689dbb13685e71d3385a9ff7b356d2459d45) )
1257 	ROM_LOAD16_BYTE( "gg-01-2", 0x40000, 0x20000, CRC(33677b80) SHA1(d16b926053a61723d321a50f5cabf3e5faebadcf) )
1258  	ROM_LOAD16_BYTE( "gg-05-2", 0x40001, 0x20000, CRC(79a68ca6) SHA1(b1ec168ffe7aace481055a8f38d88ed71994191d) )
1259 	ROM_LOAD16_BYTE( "ge-02",   0x80000, 0x20000, CRC(c2969fbb) SHA1(faa7da7f5271108dbbc95d111caa2c986e494933) )
1260 	ROM_LOAD16_BYTE( "ge-06",   0x80001, 0x20000, CRC(5c2e6418) SHA1(b9ed769b27c37959fcba2acd6dba02ccd62149e7) )
1261 	ROM_LOAD16_BYTE( "ge-03",   0xc0000, 0x20000, CRC(5e7b19a8) SHA1(637945e36c3665c74d31f4b14e600e93ed9be054) )
1262 	ROM_LOAD16_BYTE( "ge-07",   0xc0001, 0x20000, CRC(5eb819a1) SHA1(1852cb624eccd0a424d404bc853b5df307875cc9) )
1263 
1264 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1265 	ROM_LOAD( "ge-09",    0x00000, 0x10000, CRC(9f94c60b) SHA1(56edf63850189b2168c602e1f21492ef14662682) )
1266 
1267 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1268  	ROM_LOAD16_BYTE( "gg-10",    0x000001, 0x10000, CRC(b96c6cbe) SHA1(1f3a18387f360705d2f2ab8f5780a270621e107f) )
1269 	ROM_LOAD16_BYTE( "gg-11",    0x000000, 0x10000, CRC(ee567448) SHA1(40c673535b9edf7b8bbb4912235bbb09ef77e221) )
1270 
1271 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1272 	ROM_LOAD( "mad-00",   0x000000, 0x40000, CRC(3735b22d) SHA1(fd9c3dc7a880592104c091730b9016641043987a) ) /* tiles 1 */
1273 	ROM_CONTINUE(         0x080000, 0x40000 )
1274 	ROM_LOAD( "mad-01",   0x040000, 0x40000, CRC(7bb13e1c) SHA1(2753e0345b746bb4e8a5572d057d0b888487cbc3) ) /* tiles 2 */
1275 	ROM_CONTINUE(         0x0c0000, 0x40000 )
1276 
1277 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1278 	ROM_LOAD( "mad-02",   0x000000, 0x80000, CRC(6c76face) SHA1(e485b118e1e5bdf130c7ae29eea2f192f85f93a5) ) /* tiles 3 */
1279 
1280 	ROM_REGION( 0x500000, REGION_GFX4, ROMREGION_DISPOSE )
1281 	ROM_LOAD16_BYTE( "mad-03",   0x000000, 0x80000, CRC(c0bff892) SHA1(a3f3bdcc68f6183031438c0572e1e7c2c6fafb6a) ) /* sprites */
1282 	ROM_LOAD16_BYTE( "mad-05",   0x000001, 0x80000, CRC(3f2ccf95) SHA1(ed9585f2162ca53a7621b86a9def45a46cd08331) )
1283 	ROM_LOAD16_BYTE( "mad-04",   0x100000, 0x80000, CRC(464f3eb9) SHA1(c86212f37e4ca97ef71680643487f1e2afb7ec8a) )
1284 	ROM_LOAD16_BYTE( "mad-06",   0x100001, 0x80000, CRC(60871f77) SHA1(45d3042986fba76951438fd69545a2a48e478a6a) )
1285 	ROM_LOAD16_BYTE( "mad-07",   0x200000, 0x80000, CRC(ac03466e) SHA1(bfaa779f1818d8cd2b7de7a6ad1c2c396ce7309e) )
1286 	ROM_LOAD16_BYTE( "mad-08",   0x200001, 0x80000, CRC(1b420ec8) SHA1(291119e16121fc81f982216772dc6d8bb3b3b12d) )
1287 	ROM_LOAD16_BYTE( "mad-10",   0x300000, 0x80000, CRC(42da8ef0) SHA1(704a154db952e89c13a1bd115bdb57d5a6da479a) )
1288 	ROM_LOAD16_BYTE( "mad-11",   0x300001, 0x80000, CRC(03c1f982) SHA1(1cc63e4e96356d1d281b254c3b7de009866e865b) )
1289 	ROM_LOAD16_BYTE( "mad-09",   0x400000, 0x80000, CRC(930f4900) SHA1(dd09d3c8a251b8397996f6a3330e6e704f65d7fa) )
1290 	ROM_LOAD16_BYTE( "mad-12",   0x400001, 0x80000, CRC(a0bd62b6) SHA1(a1ab365f3c63fc4edc32b09ecf8f982beb4bfae5) )
1291 
1292 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* ADPCM samples */
1293 	ROM_LOAD( "ge-08",    0x00000, 0x20000, CRC(dfe28c7b) SHA1(aba55834b276cbab194e03858564077cad21eff1) )
1294 
1295 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1296 	ROM_LOAD( "mad-13", 0x00000, 0x80000, CRC(6ab28eba) SHA1(12d3025478ee5af4bdea037656d9b1146cd9759f) )	/* banked */
1297 
1298 	ROM_REGION( 1024, REGION_PROMS, 0 )
1299 	ROM_LOAD( "ge-12", 0x00000,  0x400,  CRC(278f674f) SHA1(d4f5b9770d6d2ddebf1b999e291c80a3e274d492) )	/* Priority  Unused, same as Robocop 2 */
1300 ROM_END
1301 
1302 ROM_START( edrandy1 )
1303 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1304   	ROM_LOAD16_BYTE( "gg00-1.bin", 0x00000, 0x20000, CRC(a029cc4a) SHA1(3801fd6df6d1299972eeadbdbba1b0b7acf89139) )
1305   	ROM_LOAD16_BYTE( "gg04-1.bin", 0x00001, 0x20000, CRC(8b7928a4) SHA1(4075713a830c9d5e324bb790468ec555fa747106) )
1306 	ROM_LOAD16_BYTE( "gg01-1.bin", 0x40000, 0x20000, CRC(84360123) SHA1(3e9241cf68839c15d7a1209fe735b51ed90a1de7) )
1307  	ROM_LOAD16_BYTE( "gg05-1.bin", 0x40001, 0x20000, CRC(0bf85d9d) SHA1(7b7c1c32d3f0de7e675cea3d2ba4f28e9ce387a9) )
1308 	ROM_LOAD16_BYTE( "ge-02",   0x80000, 0x20000, CRC(c2969fbb) SHA1(faa7da7f5271108dbbc95d111caa2c986e494933) )
1309 	ROM_LOAD16_BYTE( "ge-06",   0x80001, 0x20000, CRC(5c2e6418) SHA1(b9ed769b27c37959fcba2acd6dba02ccd62149e7) )
1310 	ROM_LOAD16_BYTE( "ge-03",   0xc0000, 0x20000, CRC(5e7b19a8) SHA1(637945e36c3665c74d31f4b14e600e93ed9be054) )
1311 	ROM_LOAD16_BYTE( "ge-07",   0xc0001, 0x20000, CRC(5eb819a1) SHA1(1852cb624eccd0a424d404bc853b5df307875cc9) )
1312 
1313 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1314 	ROM_LOAD( "ge-09",    0x00000, 0x10000, CRC(9f94c60b) SHA1(56edf63850189b2168c602e1f21492ef14662682) )
1315 
1316 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1317  	ROM_LOAD16_BYTE( "gg-10",    0x000001, 0x10000, CRC(b96c6cbe) SHA1(1f3a18387f360705d2f2ab8f5780a270621e107f) )
1318 	ROM_LOAD16_BYTE( "gg-11",    0x000000, 0x10000, CRC(ee567448) SHA1(40c673535b9edf7b8bbb4912235bbb09ef77e221) )
1319 
1320 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1321 	ROM_LOAD( "mad-00",   0x000000, 0x40000, CRC(3735b22d) SHA1(fd9c3dc7a880592104c091730b9016641043987a) ) /* tiles 1 */
1322 	ROM_CONTINUE(         0x080000, 0x40000 )
1323 	ROM_LOAD( "mad-01",   0x040000, 0x40000, CRC(7bb13e1c) SHA1(2753e0345b746bb4e8a5572d057d0b888487cbc3) ) /* tiles 2 */
1324 	ROM_CONTINUE(         0x0c0000, 0x40000 )
1325 
1326 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1327 	ROM_LOAD( "mad-02",   0x000000, 0x80000, CRC(6c76face) SHA1(e485b118e1e5bdf130c7ae29eea2f192f85f93a5) ) /* tiles 3 */
1328 
1329 	ROM_REGION( 0x500000, REGION_GFX4, ROMREGION_DISPOSE )
1330 	ROM_LOAD16_BYTE( "mad-03",   0x000000, 0x80000, CRC(c0bff892) SHA1(a3f3bdcc68f6183031438c0572e1e7c2c6fafb6a) ) /* sprites */
1331 	ROM_LOAD16_BYTE( "mad-05",   0x000001, 0x80000, CRC(3f2ccf95) SHA1(ed9585f2162ca53a7621b86a9def45a46cd08331) )
1332 	ROM_LOAD16_BYTE( "mad-04",   0x100000, 0x80000, CRC(464f3eb9) SHA1(c86212f37e4ca97ef71680643487f1e2afb7ec8a) )
1333 	ROM_LOAD16_BYTE( "mad-06",   0x100001, 0x80000, CRC(60871f77) SHA1(45d3042986fba76951438fd69545a2a48e478a6a) )
1334 	ROM_LOAD16_BYTE( "mad-07",   0x200000, 0x80000, CRC(ac03466e) SHA1(bfaa779f1818d8cd2b7de7a6ad1c2c396ce7309e) )
1335 	ROM_LOAD16_BYTE( "mad-08",   0x200001, 0x80000, CRC(1b420ec8) SHA1(291119e16121fc81f982216772dc6d8bb3b3b12d) )
1336 	ROM_LOAD16_BYTE( "mad-10",   0x300000, 0x80000, CRC(42da8ef0) SHA1(704a154db952e89c13a1bd115bdb57d5a6da479a) )
1337 	ROM_LOAD16_BYTE( "mad-11",   0x300001, 0x80000, CRC(03c1f982) SHA1(1cc63e4e96356d1d281b254c3b7de009866e865b) )
1338 	ROM_LOAD16_BYTE( "mad-09",   0x400000, 0x80000, CRC(930f4900) SHA1(dd09d3c8a251b8397996f6a3330e6e704f65d7fa) )
1339 	ROM_LOAD16_BYTE( "mad-12",   0x400001, 0x80000, CRC(a0bd62b6) SHA1(a1ab365f3c63fc4edc32b09ecf8f982beb4bfae5) )
1340 
1341 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* ADPCM samples */
1342 	ROM_LOAD( "ge-08",    0x00000, 0x20000, CRC(dfe28c7b) SHA1(aba55834b276cbab194e03858564077cad21eff1) )
1343 
1344 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1345 	ROM_LOAD( "mad-13", 0x00000, 0x80000, CRC(6ab28eba) SHA1(12d3025478ee5af4bdea037656d9b1146cd9759f) )	/* banked */
1346 
1347 	ROM_REGION( 1024, REGION_PROMS, 0 )
1348 	ROM_LOAD( "ge-12", 0x00000,  0x400,  CRC(278f674f) SHA1(d4f5b9770d6d2ddebf1b999e291c80a3e274d492) )	/* Priority  Unused, same as Robocop 2 */
1349 ROM_END
1350 
1351 ROM_START( edrandyj )
1352 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1353   	ROM_LOAD16_BYTE( "ge-00-2",   0x00000, 0x20000, CRC(b3d2403c) SHA1(9747dbe7905e1453e3e7764c874c523c54970e2e) )
1354   	ROM_LOAD16_BYTE( "ge-04-2",   0x00001, 0x20000, CRC(8a9624d6) SHA1(d5a9b56bc8a1d67fa28df95299cb205e9c965310) )
1355 	ROM_LOAD16_BYTE( "ge-01-2",   0x40000, 0x20000, CRC(84360123) SHA1(3e9241cf68839c15d7a1209fe735b51ed90a1de7) )
1356  	ROM_LOAD16_BYTE( "ge-05-2",   0x40001, 0x20000, CRC(0bf85d9d) SHA1(7b7c1c32d3f0de7e675cea3d2ba4f28e9ce387a9) )
1357 	ROM_LOAD16_BYTE( "ge-02",     0x80000, 0x20000, CRC(c2969fbb) SHA1(faa7da7f5271108dbbc95d111caa2c986e494933) )
1358 	ROM_LOAD16_BYTE( "ge-06",     0x80001, 0x20000, CRC(5c2e6418) SHA1(b9ed769b27c37959fcba2acd6dba02ccd62149e7) )
1359 	ROM_LOAD16_BYTE( "ge-03",     0xc0000, 0x20000, CRC(5e7b19a8) SHA1(637945e36c3665c74d31f4b14e600e93ed9be054) )
1360 	ROM_LOAD16_BYTE( "ge-07",     0xc0001, 0x20000, CRC(5eb819a1) SHA1(1852cb624eccd0a424d404bc853b5df307875cc9) )
1361 
1362 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1363 	ROM_LOAD( "ge-09",    0x00000, 0x10000, CRC(9f94c60b) SHA1(56edf63850189b2168c602e1f21492ef14662682) )
1364 
1365 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1366 	ROM_LOAD16_BYTE( "ge-10",    0x000001, 0x10000, CRC(2528d795) SHA1(8081b5d13875287a75f868a0566a2d06e0e42949) )
1367   	ROM_LOAD16_BYTE( "ge-11",    0x000000, 0x10000, CRC(e34a931e) SHA1(0e06359347e48d53ee96d6551d34685110b0f5fb) )
1368 
1369 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1370 	ROM_LOAD( "mad-00",   0x000000, 0x40000, CRC(3735b22d) SHA1(fd9c3dc7a880592104c091730b9016641043987a) ) /* tiles 1 */
1371 	ROM_CONTINUE(         0x080000, 0x40000 )
1372 	ROM_LOAD( "mad-01",   0x040000, 0x40000, CRC(7bb13e1c) SHA1(2753e0345b746bb4e8a5572d057d0b888487cbc3) ) /* tiles 2 */
1373 	ROM_CONTINUE(         0x0c0000, 0x40000 )
1374 
1375 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1376 	ROM_LOAD( "mad-02",   0x000000, 0x80000, CRC(6c76face) SHA1(e485b118e1e5bdf130c7ae29eea2f192f85f93a5) ) /* tiles 3 */
1377 
1378 	ROM_REGION( 0x500000, REGION_GFX4, ROMREGION_DISPOSE )
1379 	ROM_LOAD16_BYTE( "mad-03",   0x000000, 0x80000, CRC(c0bff892) SHA1(a3f3bdcc68f6183031438c0572e1e7c2c6fafb6a) ) /* sprites */
1380 	ROM_LOAD16_BYTE( "mad-05",   0x000001, 0x80000, CRC(3f2ccf95) SHA1(ed9585f2162ca53a7621b86a9def45a46cd08331) )
1381 	ROM_LOAD16_BYTE( "mad-04",   0x100000, 0x80000, CRC(464f3eb9) SHA1(c86212f37e4ca97ef71680643487f1e2afb7ec8a) )
1382 	ROM_LOAD16_BYTE( "mad-06",   0x100001, 0x80000, CRC(60871f77) SHA1(45d3042986fba76951438fd69545a2a48e478a6a) )
1383 	ROM_LOAD16_BYTE( "mad-07",   0x200000, 0x80000, CRC(ac03466e) SHA1(bfaa779f1818d8cd2b7de7a6ad1c2c396ce7309e) )
1384 	ROM_LOAD16_BYTE( "mad-08",   0x200001, 0x80000, CRC(1b420ec8) SHA1(291119e16121fc81f982216772dc6d8bb3b3b12d) )
1385 	ROM_LOAD16_BYTE( "mad-10",   0x300000, 0x80000, CRC(42da8ef0) SHA1(704a154db952e89c13a1bd115bdb57d5a6da479a) )
1386 	ROM_LOAD16_BYTE( "mad-11",   0x300001, 0x80000, CRC(03c1f982) SHA1(1cc63e4e96356d1d281b254c3b7de009866e865b) )
1387 	ROM_LOAD16_BYTE( "mad-09",   0x400000, 0x80000, CRC(930f4900) SHA1(dd09d3c8a251b8397996f6a3330e6e704f65d7fa) )
1388 	ROM_LOAD16_BYTE( "mad-12",   0x400001, 0x80000, CRC(a0bd62b6) SHA1(a1ab365f3c63fc4edc32b09ecf8f982beb4bfae5) )
1389 
1390 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* ADPCM samples */
1391 	ROM_LOAD( "ge-08",    0x00000, 0x20000, CRC(dfe28c7b) SHA1(aba55834b276cbab194e03858564077cad21eff1) )
1392 
1393 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1394 	ROM_LOAD( "mad-13", 0x00000, 0x80000, CRC(6ab28eba) SHA1(12d3025478ee5af4bdea037656d9b1146cd9759f) )	/* banked */
1395 
1396 	ROM_REGION( 1024, REGION_PROMS, 0 )
1397 	ROM_LOAD( "ge-12", 0x00000,  0x400,  CRC(278f674f) SHA1(d4f5b9770d6d2ddebf1b999e291c80a3e274d492) )	/* Priority Unused, same as Robocop 2 */
1398 ROM_END
1399 
1400 ROM_START( robocop2 )
1401 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1402 	ROM_LOAD16_BYTE( "gq-03.1k",   0x00000, 0x20000, CRC(a7e90c28) SHA1(e1ff720e4e63de3adc94505a566e7340f65567d5) )
1403 	ROM_LOAD16_BYTE( "gq-07.3k",   0x00001, 0x20000, CRC(d2287ec1) SHA1(8f596205c69b0ed3974cb0bd17fcc3b3bf47a0ca) )
1404 	ROM_LOAD16_BYTE( "gq-02.1j",   0x40000, 0x20000, CRC(6777b8a0) SHA1(9081bd187c3b5923efab3e4abde952e9ab29d946) )
1405 	ROM_LOAD16_BYTE( "gq-06.3j",   0x40001, 0x20000, CRC(e11e27b5) SHA1(03570da040b7cef2cecebce51b27f8a8fcf62eb1) )
1406 	ROM_LOAD16_BYTE( "go-01-1.h1", 0x80000, 0x20000, CRC(ab5356c0) SHA1(297a89b4d9212c916745997bbb959b0ed660f909) )
1407 	ROM_LOAD16_BYTE( "go-05-1.h3", 0x80001, 0x20000, CRC(ce21bda5) SHA1(615701d4abdb56d50da44589e6e03909f4b28d45) )
1408 	ROM_LOAD16_BYTE( "go-00.f1",   0xc0000, 0x20000, CRC(a93369ea) SHA1(9e13c36112eb7ebc97dc919e24d0b2955c57e10e) )
1409 	ROM_LOAD16_BYTE( "go-04.f3",   0xc0001, 0x20000, CRC(ee2f6ad9) SHA1(3abc07792f444a3415fd32e50d6855843e900b1d) )
1410 
1411 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1412 	ROM_LOAD( "gp-09.k13",  0x00000,  0x10000,  CRC(4a4e0f8d) SHA1(5408465667d2854bbade23a26ba619d42a0c22f8) )
1413 
1414 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1415 	ROM_LOAD16_BYTE( "gp10-1.y6",  0x00001,  0x10000,  CRC(d25d719c) SHA1(be874cf403ec0e607eb9b54b7cfff0a53f4d59a2) )	/* chars */
1416 	ROM_LOAD16_BYTE( "gp11-1.z6",  0x00000,  0x10000,  CRC(030ded47) SHA1(59ded540b2601ec37255e871e38ac71a47c8d007) )
1417 
1418 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1419 	ROM_LOAD( "mah-04.z4", 0x000000, 0x40000,  CRC(9b6ca18c) SHA1(29a20200ea50b9e8e79da072c1b6e580e6ca180f) )
1420 	ROM_CONTINUE(          0x080000, 0x40000 )
1421 	ROM_LOAD( "mah-03.y4", 0x040000, 0x40000,  CRC(37894ddc) SHA1(ee08440b3b2023ec6ee2af6d509b642bcead2e60) )
1422 	ROM_CONTINUE(          0x0c0000, 0x40000 )
1423 
1424 	ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE )
1425 	ROM_LOAD( "mah-01.z1", 0x000000, 0x40000,  CRC(26e0dfff) SHA1(8cca2dbcda64f4bc6ee0842486da7dc7df3046fd) )
1426 	ROM_CONTINUE(          0x0c0000, 0x40000 )
1427 	ROM_LOAD( "mah-00.y1", 0x040000, 0x40000,  CRC(7bd69e41) SHA1(296adbf7d40f1092bf38599b3bad51f39d8093b2) )
1428 	ROM_CONTINUE(          0x100000, 0x40000 )
1429 	ROM_LOAD( "mah-02.a1", 0x080000, 0x40000,  CRC(328a247d) SHA1(879f75452dc7c327fd5b35c960c58bc0c0efd33c) )
1430 	ROM_CONTINUE(          0x140000, 0x40000 )
1431 
1432 	ROM_REGION( 0x300000, REGION_GFX4, ROMREGION_DISPOSE )
1433 	ROM_LOAD16_BYTE( "mah-05.y9",  0x000000, 0x80000,  CRC(6773e613) SHA1(ee6cb4272bb9f80e0d918dc059b40e0a47db0876) )
1434 	ROM_LOAD16_BYTE( "mah-08.y12", 0x000001, 0x80000,  CRC(88d310a5) SHA1(82d249f331f51b7c72f9114ecf4e835ccdae7e97) )
1435 	ROM_LOAD16_BYTE( "mah-06.z9",  0x100000, 0x80000,  CRC(27a8808a) SHA1(cb14992d1073de38406e36f5884d77933dd6b765) )
1436 	ROM_LOAD16_BYTE( "mah-09.z12", 0x100001, 0x80000,  CRC(a58c43a7) SHA1(0b7f743cf0443d998479b7d5d95b8f2aaf1ef136) )
1437 	ROM_LOAD16_BYTE( "mah-07.a9",  0x200000, 0x80000,  CRC(526f4190) SHA1(23cb79230ec267b8e4236381b5a596d7af8ec5b3) )
1438 	ROM_LOAD16_BYTE( "mah-10.a12", 0x200001, 0x80000,  CRC(14b770da) SHA1(6d57da630da1ec457ebaeed8c251e85bd737e97c) )
1439 
1440 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1441 	ROM_LOAD( "gp-08.j13",  0x00000,  0x20000,  CRC(365183b1) SHA1(7d3c201c49981c3ac84022283b048e380cbb7ec3) )
1442 
1443 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1444 	ROM_LOAD( "mah-11.f13", 0x00000,  0x80000,  CRC(642bc692) SHA1(8d9e446b7633bb6acc46d9f92044a69b99a0ccc9) )	/* banked */
1445 
1446 	ROM_REGION( 1024, REGION_PROMS, 0 )
1447 	ROM_LOAD( "go-12.v7", 0x00000,  0x400,  CRC(278f674f) SHA1(d4f5b9770d6d2ddebf1b999e291c80a3e274d492) )	/* Priority  Unused */
1448 ROM_END
1449 
1450 ROM_START( robocp2u )
1451 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1452 	ROM_LOAD16_BYTE( "robo03.k1",  0x00000, 0x20000, CRC(f4c96cc9) SHA1(2eb58aca1134c33f2084267e65a565f9adc6ba49) )
1453 	ROM_LOAD16_BYTE( "robo07.k3",  0x00001, 0x20000, CRC(11e53a7c) SHA1(cdeb7f1983a771238d9d2000f99aed35ae4a06ee) )
1454 	ROM_LOAD16_BYTE( "robo02.j1",  0x40000, 0x20000, CRC(fa086a0d) SHA1(34a3f9c6890e1fbacbde3e39a861e42d511cd8ec) )
1455 	ROM_LOAD16_BYTE( "robo06.j3",  0x40001, 0x20000, CRC(703b49d0) SHA1(be51644fe730d0cb95e1b09f8595da2e36c09aeb) )
1456 	ROM_LOAD16_BYTE( "go-01-1.h1", 0x80000, 0x20000, CRC(ab5356c0) SHA1(297a89b4d9212c916745997bbb959b0ed660f909) )
1457 	ROM_LOAD16_BYTE( "go-05-1.h3", 0x80001, 0x20000, CRC(ce21bda5) SHA1(615701d4abdb56d50da44589e6e03909f4b28d45) )
1458 	ROM_LOAD16_BYTE( "go-00.f1",   0xc0000, 0x20000, CRC(a93369ea) SHA1(9e13c36112eb7ebc97dc919e24d0b2955c57e10e) )
1459 	ROM_LOAD16_BYTE( "go-04.f3",   0xc0001, 0x20000, CRC(ee2f6ad9) SHA1(3abc07792f444a3415fd32e50d6855843e900b1d) )
1460 
1461 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1462 	ROM_LOAD( "gp-09.k13",  0x00000,  0x10000,  CRC(4a4e0f8d) SHA1(5408465667d2854bbade23a26ba619d42a0c22f8) )
1463 
1464 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1465 	ROM_LOAD16_BYTE( "gp10-1.y6",  0x00001,  0x10000,  CRC(d25d719c) SHA1(be874cf403ec0e607eb9b54b7cfff0a53f4d59a2) )	/* chars */
1466 	ROM_LOAD16_BYTE( "gp11-1.z6",  0x00000,  0x10000,  CRC(030ded47) SHA1(59ded540b2601ec37255e871e38ac71a47c8d007) )
1467 
1468 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1469 	ROM_LOAD( "mah-04.z4", 0x000000, 0x40000,  CRC(9b6ca18c) SHA1(29a20200ea50b9e8e79da072c1b6e580e6ca180f) )
1470 	ROM_CONTINUE(          0x080000, 0x40000 )
1471 	ROM_LOAD( "mah-03.y4", 0x040000, 0x40000,  CRC(37894ddc) SHA1(ee08440b3b2023ec6ee2af6d509b642bcead2e60) )
1472 	ROM_CONTINUE(          0x0c0000, 0x40000 )
1473 
1474 	ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE )
1475 	ROM_LOAD( "mah-01.z1", 0x000000, 0x40000,  CRC(26e0dfff) SHA1(8cca2dbcda64f4bc6ee0842486da7dc7df3046fd) )
1476 	ROM_CONTINUE(          0x0c0000, 0x40000 )
1477 	ROM_LOAD( "mah-00.y1", 0x040000, 0x40000,  CRC(7bd69e41) SHA1(296adbf7d40f1092bf38599b3bad51f39d8093b2) )
1478 	ROM_CONTINUE(          0x100000, 0x40000 )
1479 	ROM_LOAD( "mah-02.a1", 0x080000, 0x40000,  CRC(328a247d) SHA1(879f75452dc7c327fd5b35c960c58bc0c0efd33c) )
1480 	ROM_CONTINUE(          0x140000, 0x40000 )
1481 
1482 	ROM_REGION( 0x300000, REGION_GFX4, ROMREGION_DISPOSE )
1483 	ROM_LOAD16_BYTE( "mah-05.y9",  0x000000, 0x80000,  CRC(6773e613) SHA1(ee6cb4272bb9f80e0d918dc059b40e0a47db0876) )
1484 	ROM_LOAD16_BYTE( "mah-08.y12", 0x000001, 0x80000,  CRC(88d310a5) SHA1(82d249f331f51b7c72f9114ecf4e835ccdae7e97) )
1485 	ROM_LOAD16_BYTE( "mah-06.z9",  0x100000, 0x80000,  CRC(27a8808a) SHA1(cb14992d1073de38406e36f5884d77933dd6b765) )
1486 	ROM_LOAD16_BYTE( "mah-09.z12", 0x100001, 0x80000,  CRC(a58c43a7) SHA1(0b7f743cf0443d998479b7d5d95b8f2aaf1ef136) )
1487 	ROM_LOAD16_BYTE( "mah-07.a9",  0x200000, 0x80000,  CRC(526f4190) SHA1(23cb79230ec267b8e4236381b5a596d7af8ec5b3) )
1488 	ROM_LOAD16_BYTE( "mah-10.a12", 0x200001, 0x80000,  CRC(14b770da) SHA1(6d57da630da1ec457ebaeed8c251e85bd737e97c) )
1489 
1490 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1491 	ROM_LOAD( "gp-08.j13",  0x00000,  0x20000,  CRC(365183b1) SHA1(7d3c201c49981c3ac84022283b048e380cbb7ec3) )
1492 
1493 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1494 	ROM_LOAD( "mah-11.f13", 0x00000,  0x80000,  CRC(642bc692) SHA1(8d9e446b7633bb6acc46d9f92044a69b99a0ccc9) )	/* banked */
1495 
1496 	ROM_REGION( 1024, REGION_PROMS, 0 )
1497 	ROM_LOAD( "go-12.v7", 0x00000,  0x400,  CRC(278f674f) SHA1(d4f5b9770d6d2ddebf1b999e291c80a3e274d492) )	/* Priority  Unused */
1498 ROM_END
1499 
1500 ROM_START( robocp2j )
1501 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
1502 	ROM_LOAD16_BYTE( "go_03-1.k1", 0x00000, 0x20000, CRC(52506608) SHA1(a0e738fe1083a17cb40f28ad95b695b6caebf3b1) )
1503 	ROM_LOAD16_BYTE( "go_07-1.k3", 0x00001, 0x20000, CRC(739cda17) SHA1(5a69873d79beabace4739ad313e8c090919206ba) )
1504 	ROM_LOAD16_BYTE( "go_02-1.j1", 0x40000, 0x20000, CRC(48c0ace9) SHA1(cf53eb97552aa503e62eb3361af4a19494dfe1ff) )
1505 	ROM_LOAD16_BYTE( "go_06-1.j3", 0x40001, 0x20000, CRC(41abec87) SHA1(83d24d9344508124a8ced402bdc5749e5fcc8e9c) )
1506 	ROM_LOAD16_BYTE( "go-01-1.h1", 0x80000, 0x20000, CRC(ab5356c0) SHA1(297a89b4d9212c916745997bbb959b0ed660f909) )
1507 	ROM_LOAD16_BYTE( "go-05-1.h3", 0x80001, 0x20000, CRC(ce21bda5) SHA1(615701d4abdb56d50da44589e6e03909f4b28d45) )
1508 	ROM_LOAD16_BYTE( "go-00.f1",   0xc0000, 0x20000, CRC(a93369ea) SHA1(9e13c36112eb7ebc97dc919e24d0b2955c57e10e) )
1509 	ROM_LOAD16_BYTE( "go-04.f3",   0xc0001, 0x20000, CRC(ee2f6ad9) SHA1(3abc07792f444a3415fd32e50d6855843e900b1d) )
1510 
1511 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */
1512 	ROM_LOAD( "gp-09.k13",  0x00000,  0x10000,  CRC(4a4e0f8d) SHA1(5408465667d2854bbade23a26ba619d42a0c22f8) )
1513 
1514 	ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE )
1515 	ROM_LOAD16_BYTE( "gp10-1.y6",  0x00001,  0x10000,  CRC(d25d719c) SHA1(be874cf403ec0e607eb9b54b7cfff0a53f4d59a2) )	/* chars */
1516 	ROM_LOAD16_BYTE( "gp11-1.z6",  0x00000,  0x10000,  CRC(030ded47) SHA1(59ded540b2601ec37255e871e38ac71a47c8d007) )
1517 
1518 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1519 	ROM_LOAD( "mah-04.z4", 0x000000, 0x40000,  CRC(9b6ca18c) SHA1(29a20200ea50b9e8e79da072c1b6e580e6ca180f) )
1520 	ROM_CONTINUE(          0x080000, 0x40000 )
1521 	ROM_LOAD( "mah-03.y4", 0x040000, 0x40000,  CRC(37894ddc) SHA1(ee08440b3b2023ec6ee2af6d509b642bcead2e60) )
1522 	ROM_CONTINUE(          0x0c0000, 0x40000 )
1523 
1524 	ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE )
1525 	ROM_LOAD( "mah-01.z1", 0x000000, 0x40000,  CRC(26e0dfff) SHA1(8cca2dbcda64f4bc6ee0842486da7dc7df3046fd) )
1526 	ROM_CONTINUE(          0x0c0000, 0x40000 )
1527 	ROM_LOAD( "mah-00.y1", 0x040000, 0x40000,  CRC(7bd69e41) SHA1(296adbf7d40f1092bf38599b3bad51f39d8093b2) )
1528 	ROM_CONTINUE(          0x100000, 0x40000 )
1529 	ROM_LOAD( "mah-02.a1", 0x080000, 0x40000,  CRC(328a247d) SHA1(879f75452dc7c327fd5b35c960c58bc0c0efd33c) )
1530 	ROM_CONTINUE(          0x140000, 0x40000 )
1531 
1532 	ROM_REGION( 0x300000, REGION_GFX4, ROMREGION_DISPOSE )
1533 	ROM_LOAD16_BYTE( "mah-05.y9",  0x000000, 0x80000,  CRC(6773e613) SHA1(ee6cb4272bb9f80e0d918dc059b40e0a47db0876) )
1534 	ROM_LOAD16_BYTE( "mah-08.y12", 0x000001, 0x80000,  CRC(88d310a5) SHA1(82d249f331f51b7c72f9114ecf4e835ccdae7e97) )
1535 	ROM_LOAD16_BYTE( "mah-06.z9",  0x100000, 0x80000,  CRC(27a8808a) SHA1(cb14992d1073de38406e36f5884d77933dd6b765) )
1536 	ROM_LOAD16_BYTE( "mah-09.z12", 0x100001, 0x80000,  CRC(a58c43a7) SHA1(0b7f743cf0443d998479b7d5d95b8f2aaf1ef136) )
1537 	ROM_LOAD16_BYTE( "mah-07.a9",  0x200000, 0x80000,  CRC(526f4190) SHA1(23cb79230ec267b8e4236381b5a596d7af8ec5b3) )
1538 	ROM_LOAD16_BYTE( "mah-10.a12", 0x200001, 0x80000,  CRC(14b770da) SHA1(6d57da630da1ec457ebaeed8c251e85bd737e97c) )
1539 
1540 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Oki samples */
1541 	ROM_LOAD( "gp-08.j13",  0x00000,  0x20000,  CRC(365183b1) SHA1(7d3c201c49981c3ac84022283b048e380cbb7ec3) )
1542 
1543 	ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Extra Oki samples */
1544 	ROM_LOAD( "mah-11.f13", 0x00000,  0x80000,  CRC(642bc692) SHA1(8d9e446b7633bb6acc46d9f92044a69b99a0ccc9) )	/* banked */
1545 
1546 	ROM_REGION( 1024, REGION_PROMS, 0 )
1547 	ROM_LOAD( "go-12.v7", 0x00000,  0x400,  CRC(278f674f) SHA1(d4f5b9770d6d2ddebf1b999e291c80a3e274d492) )	/* Priority  Unused */
1548 ROM_END
1549 
1550 ROM_START( mutantf )
1551 	ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */
1552 	ROM_LOAD16_BYTE("hd03-4.2c",  0x00000, 0x20000, CRC(94859545) SHA1(4b218442bf1ba01b9b6b54c0037c76c827b79d35) )
1553 	ROM_LOAD16_BYTE("hd00-4.2a",  0x00001, 0x20000, CRC(3cdb648f) SHA1(f803d2894d4c32de770861c70f837377afd329fe) )
1554 	ROM_LOAD16_BYTE("hf-04-1.4c", 0x40000, 0x20000, CRC(fd2ea8d7) SHA1(00e50d42fcc7f6d5076963b02f5abb36275dc993) )
1555 	ROM_LOAD16_BYTE("hf-01-1.4a", 0x40001, 0x20000, CRC(48a247ac) SHA1(c69d67e44ffae92b261de247f8d3eac2e02fcf11) )
1556 
1557 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1558 	ROM_LOAD( "hf-12.21j",  0x00000,  0x10000,  CRC(13d55f11) SHA1(6438dca57f43b3ca6d273bf82b62104a49260132) )
1559 
1560 	ROM_REGION( 0x0a0000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars */
1561 	ROM_LOAD16_BYTE( "hf-06-1.8d", 0x000000, 0x10000, CRC(8b7a558b) SHA1(06f1f6910b9a54e208ee9a0b734d5df946016236) )
1562 	ROM_LOAD16_BYTE( "hf-07-1.9d", 0x000001, 0x10000, CRC(d2a3d449) SHA1(10ad634eb0238f6e9ba04266e4dbaf9470f5d169) )
1563 
1564 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1565 	ROM_LOAD( "maf-00.8a", 0x000000, 0x80000,  CRC(e56f528d) SHA1(3908d9b189fa4895c532d1d1f133df0913810cf9) ) /* tiles 3 */
1566 
1567 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1568 	ROM_LOAD( "maf-01.9a",  0x000000, 0x40000,  CRC(c3d5173d) SHA1(2b6559bf65d7cc5b957ad347b64cf6a18f661686) ) /* tiles 1 */
1569 	ROM_CONTINUE(           0x080000, 0x40000 )
1570 	ROM_LOAD( "maf-02.11a", 0x040000, 0x40000,  CRC(0b37d849) SHA1(a0606fb8130a2e86a241ce5ce0b4f61373a88c17) ) /* tiles 2 */
1571 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1572 
1573 	ROM_REGION( 0x500000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprites */
1574 	ROM_LOAD16_BYTE( "maf-03.18a",   0x000000, 0x100000, CRC(f4366d2c) SHA1(20964d0e1b879b3e5cb5d18a46d2a17dca2b4171) )
1575 	ROM_LOAD16_BYTE( "maf-04.20a",   0x200000, 0x100000, CRC(0c8f654e) SHA1(e566d4b789b345e20caf7e061e43be7c2e1be9b2) )
1576 	ROM_LOAD16_BYTE( "maf-05.21a",   0x400000, 0x080000, CRC(b0cfeb80) SHA1(b8519c604b03eb8bcf26d00a43b39d48f1b45ab5) )
1577 	ROM_LOAD16_BYTE( "maf-06.18d",   0x000001, 0x100000, CRC(f5c7a9b5) SHA1(92efc9401347598c90acf62c9aef30109c990ad6) )
1578 	ROM_LOAD16_BYTE( "maf-07.20d",   0x200001, 0x100000, CRC(fd6008a3) SHA1(7b680424eca3804c70fa0c4dc415d665c8626498) )
1579 	ROM_LOAD16_BYTE( "maf-08.21d",   0x400001, 0x080000, CRC(e41cf1e7) SHA1(06524e1aed0adc4c32c92e16a00dc983014f4994) )
1580 
1581 	ROM_REGION( 0x40000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprites 2 */
1582 	ROM_LOAD32_BYTE("hf-08.15a", 0x00001, 0x10000, CRC(93b7279f) SHA1(14304a1ffe1bc791bfa83f8200793d897449133c) )
1583 	ROM_LOAD32_BYTE("hf-09.17a", 0x00003, 0x10000, CRC(05e2c074) SHA1(ec95303e8196424864964b5d2ae862bf75571e83) )
1584 	ROM_LOAD32_BYTE("hf-10.15c", 0x00000, 0x10000, CRC(9b06f418) SHA1(d1579ae36676e38c96ee55a1ffa20aa307a21654) )
1585 	ROM_LOAD32_BYTE("hf-11.17c", 0x00002, 0x10000, CRC(3859a531) SHA1(a2a0c1aa28181b5ef6c075ff0118178340389693) )
1586 
1587 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* ADPCM samples */
1588 	ROM_LOAD( "maf-10.20l",    0x00000, 0x40000, CRC(7c57f48b) SHA1(9a5624553b3b038d70f9b517f410a635c00a8771) )
1589 
1590 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* ADPCM samples */
1591 	ROM_LOAD( "maf-09.18l",    0x00000, 0x80000, CRC(28e7ed81) SHA1(e168a2748b75c647f6f9c0d7d25d4f046aa98094) )
1592 ROM_END
1593 
1594 ROM_START( mutantfa )
1595 	ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */
1596 	ROM_LOAD16_BYTE("hd03-3.2c",   0x00000, 0x20000, CRC(e6f53574) SHA1(98d5a76bda52346e4bee5b1b0755e3fee4ad8283) )
1597 	ROM_LOAD16_BYTE("hd00-3.2a",   0x00001, 0x20000, CRC(d3055454) SHA1(83531ae52e5928ac64279bcb98878eef291f8f70) )
1598 	ROM_LOAD16_BYTE("hf-04-1.4c", 0x40000, 0x20000, CRC(fd2ea8d7) SHA1(00e50d42fcc7f6d5076963b02f5abb36275dc993) )
1599 	ROM_LOAD16_BYTE("hf-01-1.4a", 0x40001, 0x20000, CRC(48a247ac) SHA1(c69d67e44ffae92b261de247f8d3eac2e02fcf11) )
1600 
1601 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1602 	ROM_LOAD( "hf-12.21j",  0x00000,  0x10000,  CRC(13d55f11) SHA1(6438dca57f43b3ca6d273bf82b62104a49260132) )
1603 
1604 	ROM_REGION( 0x0a0000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars */
1605 	ROM_LOAD16_BYTE( "hf-06-1.8d", 0x000000, 0x10000, CRC(8b7a558b) SHA1(06f1f6910b9a54e208ee9a0b734d5df946016236) )
1606 	ROM_LOAD16_BYTE( "hf-07-1.9d", 0x000001, 0x10000, CRC(d2a3d449) SHA1(10ad634eb0238f6e9ba04266e4dbaf9470f5d169) )
1607 
1608 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1609 	ROM_LOAD( "maf-00.8a", 0x000000, 0x80000,  CRC(e56f528d) SHA1(3908d9b189fa4895c532d1d1f133df0913810cf9) ) /* tiles 3 */
1610 
1611 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1612 	ROM_LOAD( "maf-01.9a",  0x000000, 0x40000,  CRC(c3d5173d) SHA1(2b6559bf65d7cc5b957ad347b64cf6a18f661686) ) /* tiles 1 */
1613 	ROM_CONTINUE(           0x080000, 0x40000 )
1614 	ROM_LOAD( "maf-02.11a", 0x040000, 0x40000,  CRC(0b37d849) SHA1(a0606fb8130a2e86a241ce5ce0b4f61373a88c17) ) /* tiles 2 */
1615 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1616 
1617 	ROM_REGION( 0x500000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprites */
1618 	ROM_LOAD16_BYTE( "maf-03.18a",   0x000000, 0x100000, CRC(f4366d2c) SHA1(20964d0e1b879b3e5cb5d18a46d2a17dca2b4171) )
1619 	ROM_LOAD16_BYTE( "maf-04.20a",   0x200000, 0x100000, CRC(0c8f654e) SHA1(e566d4b789b345e20caf7e061e43be7c2e1be9b2) )
1620 	ROM_LOAD16_BYTE( "maf-05.21a",   0x400000, 0x080000, CRC(b0cfeb80) SHA1(b8519c604b03eb8bcf26d00a43b39d48f1b45ab5) )
1621 	ROM_LOAD16_BYTE( "maf-06.18d",   0x000001, 0x100000, CRC(f5c7a9b5) SHA1(92efc9401347598c90acf62c9aef30109c990ad6) )
1622 	ROM_LOAD16_BYTE( "maf-07.20d",   0x200001, 0x100000, CRC(fd6008a3) SHA1(7b680424eca3804c70fa0c4dc415d665c8626498) )
1623 	ROM_LOAD16_BYTE( "maf-08.21d",   0x400001, 0x080000, CRC(e41cf1e7) SHA1(06524e1aed0adc4c32c92e16a00dc983014f4994) )
1624 
1625 	ROM_REGION( 0x40000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprites 2 */
1626 	ROM_LOAD32_BYTE("hf-08.15a", 0x00001, 0x10000, CRC(93b7279f) SHA1(14304a1ffe1bc791bfa83f8200793d897449133c) )
1627 	ROM_LOAD32_BYTE("hf-09.17a", 0x00003, 0x10000, CRC(05e2c074) SHA1(ec95303e8196424864964b5d2ae862bf75571e83) )
1628 	ROM_LOAD32_BYTE("hf-10.15c", 0x00000, 0x10000, CRC(9b06f418) SHA1(d1579ae36676e38c96ee55a1ffa20aa307a21654) )
1629 	ROM_LOAD32_BYTE("hf-11.17c", 0x00002, 0x10000, CRC(3859a531) SHA1(a2a0c1aa28181b5ef6c075ff0118178340389693) )
1630 
1631 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* ADPCM samples */
1632 	ROM_LOAD( "maf-10.20l",    0x00000, 0x40000, CRC(7c57f48b) SHA1(9a5624553b3b038d70f9b517f410a635c00a8771) )
1633 
1634 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* ADPCM samples */
1635 	ROM_LOAD( "maf-09.18l",    0x00000, 0x80000, CRC(28e7ed81) SHA1(e168a2748b75c647f6f9c0d7d25d4f046aa98094) )
1636 ROM_END
1637 
1638 ROM_START( deathbrd )
1639 	ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */
1640 	ROM_LOAD16_BYTE("hf-03-2.2c", 0x00000, 0x20000, CRC(fb86fff3) SHA1(af4cfc19ec85e0aa49b5e46d95bdd94a20922cce) )
1641 	ROM_LOAD16_BYTE("hf-00-2.2a", 0x00001, 0x20000, CRC(099aa422) SHA1(b62f261b1903dd2d1a308f7abb9584b3726204b5) )
1642 	ROM_LOAD16_BYTE("hf-04-1.4c", 0x40000, 0x20000, CRC(fd2ea8d7) SHA1(00e50d42fcc7f6d5076963b02f5abb36275dc993) )
1643 	ROM_LOAD16_BYTE("hf-01-1.4a", 0x40001, 0x20000, CRC(48a247ac) SHA1(c69d67e44ffae92b261de247f8d3eac2e02fcf11) )
1644 
1645 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1646 	ROM_LOAD( "hf-12.21j",  0x00000,  0x10000,  CRC(13d55f11) SHA1(6438dca57f43b3ca6d273bf82b62104a49260132) )
1647 
1648 	ROM_REGION( 0x0a0000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars */
1649 	ROM_LOAD16_BYTE( "hf-06-1.8d", 0x000000, 0x10000, CRC(8b7a558b) SHA1(06f1f6910b9a54e208ee9a0b734d5df946016236) )
1650 	ROM_LOAD16_BYTE( "hf-07-1.9d", 0x000001, 0x10000, CRC(d2a3d449) SHA1(10ad634eb0238f6e9ba04266e4dbaf9470f5d169) )
1651 
1652 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )
1653 	ROM_LOAD( "maf-00.8a", 0x000000, 0x80000,  CRC(e56f528d) SHA1(3908d9b189fa4895c532d1d1f133df0913810cf9) ) /* tiles 3 */
1654 
1655 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )
1656 	ROM_LOAD( "maf-01.9a",  0x000000, 0x40000,  CRC(c3d5173d) SHA1(2b6559bf65d7cc5b957ad347b64cf6a18f661686) ) /* tiles 1 */
1657 	ROM_CONTINUE(           0x080000, 0x40000 )
1658 	ROM_LOAD( "maf-02.11a", 0x040000, 0x40000,  CRC(0b37d849) SHA1(a0606fb8130a2e86a241ce5ce0b4f61373a88c17) ) /* tiles 2 */
1659 	ROM_CONTINUE(           0x0c0000, 0x40000 )
1660 
1661 	ROM_REGION( 0x500000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprites */
1662 	ROM_LOAD16_BYTE( "maf-03.18a",   0x000000, 0x100000, CRC(f4366d2c) SHA1(20964d0e1b879b3e5cb5d18a46d2a17dca2b4171) )
1663 	ROM_LOAD16_BYTE( "maf-04.20a",   0x200000, 0x100000, CRC(0c8f654e) SHA1(e566d4b789b345e20caf7e061e43be7c2e1be9b2) )
1664 	ROM_LOAD16_BYTE( "maf-05.21a",   0x400000, 0x080000, CRC(b0cfeb80) SHA1(b8519c604b03eb8bcf26d00a43b39d48f1b45ab5) )
1665 	ROM_LOAD16_BYTE( "maf-06.18d",   0x000001, 0x100000, CRC(f5c7a9b5) SHA1(92efc9401347598c90acf62c9aef30109c990ad6) )
1666 	ROM_LOAD16_BYTE( "maf-07.20d",   0x200001, 0x100000, CRC(fd6008a3) SHA1(7b680424eca3804c70fa0c4dc415d665c8626498) )
1667 	ROM_LOAD16_BYTE( "maf-08.21d",   0x400001, 0x080000, CRC(e41cf1e7) SHA1(06524e1aed0adc4c32c92e16a00dc983014f4994) )
1668 
1669 	ROM_REGION( 0x40000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprites 2 */
1670 	ROM_LOAD32_BYTE("hf-08.15a", 0x00001, 0x10000, CRC(93b7279f) SHA1(14304a1ffe1bc791bfa83f8200793d897449133c) )
1671 	ROM_LOAD32_BYTE("hf-09.17a", 0x00003, 0x10000, CRC(05e2c074) SHA1(ec95303e8196424864964b5d2ae862bf75571e83) )
1672 	ROM_LOAD32_BYTE("hf-10.15c", 0x00000, 0x10000, CRC(9b06f418) SHA1(d1579ae36676e38c96ee55a1ffa20aa307a21654) )
1673 	ROM_LOAD32_BYTE("hf-11.17c", 0x00002, 0x10000, CRC(3859a531) SHA1(a2a0c1aa28181b5ef6c075ff0118178340389693) )
1674 
1675 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* ADPCM samples */
1676 	ROM_LOAD( "maf-10.20l",    0x00000, 0x40000, CRC(7c57f48b) SHA1(9a5624553b3b038d70f9b517f410a635c00a8771) )
1677 
1678 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* ADPCM samples */
1679 	ROM_LOAD( "maf-09.18l",    0x00000, 0x80000, CRC(28e7ed81) SHA1(e168a2748b75c647f6f9c0d7d25d4f046aa98094) )
1680 ROM_END
1681 
1682 /**********************************************************************************/
1683 
1684 static void cninja_patch(void)
1685 {
1686 	data16_t *RAM = (UINT16 *)memory_region(REGION_CPU1);
1687 	int i;
1688 
1689 	for (i=0; i<0x80000/2; i++) {
1690 		int aword=RAM[i];
1691 
1692 		if (aword==0x66ff || aword==0x67ff) {
1693 			data16_t doublecheck=RAM[i-4];
1694 
1695 			/* Cmpi + btst controlling opcodes */
1696 			if (doublecheck==0xc39 || doublecheck==0x839) {
1697 				RAM[i]=0x4E71;
1698 		        RAM[i-1]=0x4E71;
1699 		        RAM[i-2]=0x4E71;
1700 		        RAM[i-3]=0x4E71;
1701 		        RAM[i-4]=0x4E71;
1702 			}
1703 		}
1704 	}
1705 }
1706 
1707 /**********************************************************************************/
1708 
DRIVER_INIT(cninja)1709 static DRIVER_INIT( cninja )
1710 {
1711 	install_mem_write16_handler(0, 0x1bc0a8, 0x1bc0a9, cninja_sound_w);
1712 	cninja_patch();
1713 }
1714 
DRIVER_INIT(stoneage)1715 static DRIVER_INIT( stoneage )
1716 {
1717 	install_mem_write16_handler(0, 0x1bc0a8, 0x1bc0a9, stoneage_sound_w);
1718 }
1719 
DRIVER_INIT(mutantf)1720 static DRIVER_INIT( mutantf )
1721 {
1722 	const data8_t *src = memory_region(REGION_GFX2);
1723 	data8_t *dst = memory_region(REGION_GFX1);
1724 
1725 	/* The 16x16 graphic has some 8x8 chars in it - decode them in GFX1 */
1726 	memcpy(dst+0x50000,dst+0x10000,0x10000);
1727 	memcpy(dst+0x10000,src,0x40000);
1728 	memcpy(dst+0x60000,src+0x40000,0x40000);
1729 
1730 	deco56_decrypt(REGION_GFX1);
1731 	deco56_decrypt(REGION_GFX2);
1732 }
1733 
1734 /**********************************************************************************/
1735 
1736 GAME( 1990, edrandy,  0,       edrandy,  edrandy, 0,        ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World revision 2)" )
1737 GAME( 1990, edrandy1, edrandy, edrandy,  edrandy, 0,        ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World revision 1)" )
1738 GAME( 1990, edrandyj, edrandy, edrandy,  edrandy, 0,        ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (Japan)" )
1739 GAME( 1991, cninja,   0,       cninja,   cninja,  cninja,   ROT0, "Data East Corporation", "Caveman Ninja (World revision 3)" )
1740 GAME( 1991, cninja0,  cninja,  cninja,   cninja,  cninja,   ROT0, "Data East Corporation", "Caveman Ninja (World revision 0)" )
1741 GAME( 1991, cninjau,  cninja,  cninja,   cninjau, cninja,   ROT0, "Data East Corporation", "Caveman Ninja (US)" )
1742 GAME( 1991, joemac,   cninja,  cninja,   cninja,  cninja,   ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan)" )
1743 GAME( 1991, stoneage, cninja,  stoneage, cninja,  stoneage, ROT0, "bootleg", "Stoneage" )
1744 GAME( 1991, robocop2, 0,       robocop2, robocop2,0,        ROT0, "Data East Corporation", "Robocop 2 (World)" )
1745 GAME( 1991, robocp2u, robocop2,robocop2, robocop2,0,        ROT0, "Data East Corporation", "Robocop 2 (US)" )
1746 GAME( 1991, robocp2j, robocop2,robocop2, robocop2,0,        ROT0, "Data East Corporation", "Robocop 2 (Japan)" )
1747 GAME( 1992, mutantf,  0,       mutantf,  mutantf, mutantf,  ROT0, "Data East Corporation", "Mutant Fighter (World Rev 4, EM-5)" )
1748 GAME( 1992, mutantfa, mutantf, mutantf,  mutantf, mutantf,  ROT0, "Data East Corporation", "Mutant Fighter (World Rev 3, EM-4)" )
1749 GAME( 1992, deathbrd, mutantf, mutantf,  mutantf, mutantf,  ROT0, "Data East Corporation", "Death Brade (Japan Rev 2, JM-3)" )
1750