1 #include "../machine/pacplus.c"
2 #include "../machine/theglob.c"
3 
4 /***************************************************************************
5 
6 Pac-Man memory map (preliminary)
7 
8 0000-3fff ROM
9 4000-43ff Video RAM
10 4400-47ff Color RAM
11 4c00-4fff RAM
12 8000-9fff ROM (Ms Pac-Man and Ponpoko only)
13 a000-bfff ROM (Ponpoko only)
14 
15 memory mapped ports:
16 
17 read:
18 5000      IN0
19 5040      IN1
20 5080      DSW 1
21 50c0	  DSW 2 (Ponpoko only)
22 see the input_ports definition below for details on the input bits
23 
24 write:
25 4ff0-4fff 8 pairs of two bytes:
26           the first byte contains the sprite image number (bits 2-7), Y flip (bit 0),
27 		  X flip (bit 1); the second byte the color
28 5000      interrupt enable
29 5001      sound enable
30 5002      ????
31 5003      flip screen
32 5004      1 player start lamp
33 5005      2 players start lamp
34 5006      coin lockout
35 5007      coin counter
36 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only)
37 5045      sound voice 1 waveform (nibble)
38 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only)
39 504a      sound voice 2 waveform (nibble)
40 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only)
41 504f      sound voice 3 waveform (nibble)
42 5050-5054 sound voice 1 frequency (nibbles)
43 5055      sound voice 1 volume (nibble)
44 5056-5059 sound voice 2 frequency (nibbles)
45 505a      sound voice 2 volume (nibble)
46 505b-505e sound voice 3 frequency (nibbles)
47 505f      sound voice 3 volume (nibble)
48 5060-506f Sprite coordinates, x/y pairs for 8 sprites
49 50c0      Watchdog reset
50 
51 I/O ports:
52 OUT on port $0 sets the interrupt vector
53 
54 
55 
56 Make Trax driver
57 
58 
59 Make Trax protection description:
60 
61 Make Trax has a "Special" chip that it uses for copy protection.
62 The following chart shows when reads and writes may occur:
63 
64 AAAAAAAA AAAAAAAA
65 11111100 00000000  <- address bits
66 54321098 76543210
67 xxx1xxxx 01xxxxxx - read data bits 4 and 7
68 xxx1xxxx 10xxxxxx - read data bits 6 and 7
69 xxx1xxxx 11xxxxxx - read data bits 0 through 5
70 
71 xxx1xxxx 00xxx100 - write to Special
72 xxx1xxxx 00xxx101 - write to Special
73 xxx1xxxx 00xxx110 - write to Special
74 xxx1xxxx 00xxx111 - write to Special
75 
76 In practical terms, it reads from Special when it reads from
77 location $5040-$50FF.  Note that these locations overlap our
78 inputs and Dip Switches.  Yuk.
79 
80 I don't bother trapping the writes right now, because I don't
81 know how to interpret them.  However, comparing against Crush
82 Roller gives most of the values necessary on the reads.
83 
84 Instead of always reading from $5040, $5080, and $50C0, the Make
85 Trax programmers chose to read from a wide variety of locations,
86 probably to make debugging easier.  To us, it means that for the most
87 part we can just assign a specific value to return for each address and
88 we'll be OK.  This falls apart for the following addresses:  $50C0, $508E,
89 $5090, and $5080.  These addresses should return multiple values.  The other
90 ugly thing happening is in the ROMs at $3AE5.  It keeps checking for
91 different values of $50C0 and $5080, and weird things happen if it gets
92 the wrong values.  The only way I've found around these is to patch the
93 ROMs using the same patches Crush Roller uses.  The only thing to watch
94 with this is that changing the ROMs will break the beginning checksum.
95 That's why we use the rom opcode decode function to do our patches.
96 
97 Incidentally, there are extremely few differences between Crush Roller
98 and Make Trax.  About 98% of the differences appear to be either unused
99 bytes, the name of the game, or code related to the protection.  I've
100 only spotted two or three actual differences in the games, and they all
101 seem minor.
102 
103 If anybody cares, here's a list of disassembled addresses for every
104 read and write to the Special chip (not all of the reads are
105 specifically for checking the Special bits, some are for checking
106 player inputs and Dip Switches):
107 
108 Writes: $0084, $012F, $0178, $023C, $0C4C, $1426, $1802, $1817,
109 	$280C, $2C2E, $2E22, $3205, $3AB7, $3ACC, $3F3D, $3F40,
110 	$3F4E, $3F5E
111 Reads:  $01C8, $01D2, $0260, $030E, $040E, $0416, $046E, $0474,
112 	$0560, $0568, $05B0, $05B8, $096D, $0972, $0981, $0C27,
113 	$0C2C, $0F0A, $10B8, $10BE, $111F, $1127, $1156, $115E,
114 	$11E3, $11E8, $18B7, $18BC, $18CA, $1973, $197A, $1BE7,
115 	$1C06, $1C9F, $1CAA, $1D79, $213D, $2142, $2389, $238F,
116 	$2AAE, $2BF4, $2E0A, $39D5, $39DA, $3AE2, $3AEA, $3EE0,
117 	$3EE9, $3F07, $3F0D
118 
119 
120 
121 Notes:
122 
123 - The mystery items in Ali Baba don't work correctly because of protection
124 
125 ***************************************************************************/
126 
127 #include "driver.h"
128 #include "vidhrdw/generic.h"
129 
130 
131 
132 int pacman_vh_start(void);
133 void pacman_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
134 WRITE_HANDLER( pengo_flipscreen_w );
135 void pengo_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
136 
137 extern unsigned char *pengo_soundregs;
138 WRITE_HANDLER( pengo_sound_enable_w );
139 WRITE_HANDLER( pengo_sound_w );
140 
141 extern void pacplus_decode(void);
142 
143 void theglob_init_machine(void);
144 READ_HANDLER( theglob_decrypt_rom );
145 
146 
147 static int speedcheat = 0;	/* a well known hack allows to make Pac Man run at four times */
148 					/* his usual speed. When we start the emulation, we check if the */
149 					/* hack can be applied, and set this flag accordingly. */
150 
151 
pacman_init_machine(void)152 void pacman_init_machine(void)
153 {
154 	unsigned char *RAM = memory_region(REGION_CPU1);
155 
156 
157 	/* check if the loaded set of ROMs allows the Pac Man speed hack */
158 	if ((RAM[0x180b] == 0xbe && RAM[0x1ffd] == 0x00) ||
159 			(RAM[0x180b] == 0x01 && RAM[0x1ffd] == 0xbd))
160 		speedcheat = 1;
161 	else
162 		speedcheat = 0;
163 }
164 
pacman_interrupt(void)165 static int pacman_interrupt(void)
166 {
167 	unsigned char *RAM = memory_region(REGION_CPU1);
168 
169 	/* speed up cheat */
170 	if (speedcheat)
171 	{
172 		if (readinputport(4) & 1)	/* check status of the fake dip switch */
173 		{
174 			/* activate the cheat */
175 			RAM[0x180b] = 0x01;
176 			RAM[0x1ffd] = 0xbd;
177 		}
178 		else
179 		{
180 			/* remove the cheat */
181 			RAM[0x180b] = 0xbe;
182 			RAM[0x1ffd] = 0x00;
183 		}
184 	}
185 
186 	return interrupt();
187 }
188 
189 
WRITE_HANDLER(pacman_leds_w)190 static WRITE_HANDLER( pacman_leds_w )
191 {
192 	osd_led_w(offset,data);
193 }
194 
WRITE_HANDLER(alibaba_sound_w)195 static WRITE_HANDLER( alibaba_sound_w )
196 {
197 	/* since the sound region in Ali Baba is not contiguous, translate the
198 	   offset into the 0-0x1f range */
199  	if (offset < 0x10)
200 		pengo_sound_w(offset, data);
201 	else if (offset < 0x20)
202 		spriteram_2[offset - 0x10] = data;
203 	else
204 		pengo_sound_w(offset - 0x10, data);
205 }
206 
207 
READ_HANDLER(alibaba_mystery_1_r)208 static READ_HANDLER( alibaba_mystery_1_r )
209 {
210 	// The return value determines what the mystery item is.  Each bit corresponds
211 	// to a question mark
212 
213 	return rand() & 0x0f;
214 }
215 
READ_HANDLER(alibaba_mystery_2_r)216 static READ_HANDLER( alibaba_mystery_2_r )
217 {
218 	static int mystery = 0;
219 
220 	// The single bit return value determines when the mystery is lit up.
221 	// This is certainly wrong
222 
223 	mystery++;
224 	return (mystery >> 10) & 1;
225 }
226 
227 
WRITE_HANDLER(pacman_coin_lockout_global_w)228 static WRITE_HANDLER( pacman_coin_lockout_global_w )
229 {
230 	coin_lockout_global_w(offset, ~data & 0x01);
231 }
232 
233 
234 static struct MemoryReadAddress readmem[] =
235 {
236 	{ 0x0000, 0x3fff, MRA_ROM },
237 	{ 0x4000, 0x47ff, MRA_RAM },	/* video and color RAM */
238 	{ 0x4c00, 0x4fff, MRA_RAM },	/* including sprite codes at 4ff0-4fff */
239 	{ 0x5000, 0x503f, input_port_0_r },	/* IN0 */
240 	{ 0x5040, 0x507f, input_port_1_r },	/* IN1 */
241 	{ 0x5080, 0x50bf, input_port_2_r },	/* DSW1 */
242 	{ 0x50c0, 0x50ff, input_port_3_r },	/* DSW2 */
243 	{ 0x8000, 0xbfff, MRA_ROM },	/* Ms. Pac-Man / Ponpoko only */
244 	{ -1 }	/* end of table */
245 };
246 
247 static struct MemoryWriteAddress writemem[] =
248 {
249 	{ 0x0000, 0x3fff, MWA_ROM },
250 	{ 0x4000, 0x43ff, videoram_w, &videoram, &videoram_size },
251 	{ 0x4400, 0x47ff, colorram_w, &colorram },
252 	{ 0x4c00, 0x4fef, MWA_RAM },
253 	{ 0x4ff0, 0x4fff, MWA_RAM, &spriteram, &spriteram_size },
254 	{ 0x5000, 0x5000, interrupt_enable_w },
255 	{ 0x5001, 0x5001, pengo_sound_enable_w },
256 	{ 0x5002, 0x5002, MWA_NOP },
257 	{ 0x5003, 0x5003, pengo_flipscreen_w },
258  	{ 0x5004, 0x5005, pacman_leds_w },
259 // 	{ 0x5006, 0x5006, pacman_coin_lockout_global_w },	this breaks many games
260  	{ 0x5007, 0x5007, coin_counter_w },
261 	{ 0x5040, 0x505f, pengo_sound_w, &pengo_soundregs },
262 	{ 0x5060, 0x506f, MWA_RAM, &spriteram_2 },
263 	{ 0x50c0, 0x50c0, watchdog_reset_w },
264 	{ 0x8000, 0xbfff, MWA_ROM },	/* Ms. Pac-Man / Ponpoko only */
265 	{ 0xc000, 0xc3ff, videoram_w }, /* mirror address for video ram, */
266 	{ 0xc400, 0xc7ef, colorram_w }, /* used to display HIGH SCORE and CREDITS */
267 	{ 0xffff, 0xffff, MWA_NOP },	/* Eyes writes to this location to simplify code */
268 	{ -1 }	/* end of table */
269 };
270 
271 
272 static struct MemoryReadAddress alibaba_readmem[] =
273 	{
274 	{ 0x0000, 0x3fff, MRA_ROM },
275 	{ 0x4000, 0x47ff, MRA_RAM },	/* video and color RAM */
276 	{ 0x4c00, 0x4fff, MRA_RAM },	/* including sprite codes at 4ef0-4eff */
277 	{ 0x5000, 0x503f, input_port_0_r },	/* IN0 */
278 	{ 0x5040, 0x507f, input_port_1_r },	/* IN1 */
279 	{ 0x5080, 0x50bf, input_port_2_r },	/* DSW1 */
280 	{ 0x50c0, 0x50c0, alibaba_mystery_1_r },
281 	{ 0x50c1, 0x50c1, alibaba_mystery_2_r },
282 	{ 0x8000, 0x8fff, MRA_ROM },
283 	{ 0x9000, 0x93ff, MRA_RAM },
284 	{ 0xa000, 0xa7ff, MRA_ROM },
285 	{ -1 }	/* end of table */
286 };
287 
288 static struct MemoryWriteAddress alibaba_writemem[] =
289 {
290 	{ 0x0000, 0x3fff, MWA_ROM },
291 	{ 0x4000, 0x43ff, videoram_w, &videoram, &videoram_size },
292 	{ 0x4400, 0x47ff, colorram_w, &colorram },
293 	{ 0x4ef0, 0x4eff, MWA_RAM, &spriteram, &spriteram_size },
294 	{ 0x4c00, 0x4fff, MWA_RAM },
295 	{ 0x5000, 0x5000, watchdog_reset_w },
296  	{ 0x5004, 0x5005, pacman_leds_w },
297  	{ 0x5006, 0x5006, pacman_coin_lockout_global_w },
298  	{ 0x5007, 0x5007, coin_counter_w },
299 	{ 0x5040, 0x506f, alibaba_sound_w, &pengo_soundregs },  /* the sound region is not contiguous */
300 	{ 0x5060, 0x506f, MWA_RAM, &spriteram_2 }, /* actually at 5050-505f, here to point to free RAM */
301 	{ 0x50c0, 0x50c0, pengo_sound_enable_w },
302 	{ 0x50c1, 0x50c1, pengo_flipscreen_w },
303 	{ 0x50c2, 0x50c2, interrupt_enable_w },
304 	{ 0x8000, 0x8fff, MWA_ROM },
305 	{ 0x9000, 0x93ff, MWA_RAM },
306 	{ 0xa000, 0xa7ff, MWA_ROM },
307 	{ 0xc000, 0xc3ff, videoram_w }, /* mirror address for video ram, */
308 	{ 0xc400, 0xc7ef, colorram_w }, /* used to display HIGH SCORE and CREDITS */
309 	{ -1 }	/* end of table */
310 };
311 
312 
313 
314 static struct IOWritePort writeport[] =
315 {
316 	{ 0x00, 0x00, interrupt_vector_w },	/* Pac-Man only */
317 	{ -1 }	/* end of table */
318 };
319 
320 
321 static struct IOWritePort vanvan_writeport[] =
322 {
323 	{ 0x01, 0x01, SN76496_0_w },
324 	{ 0x02, 0x02, SN76496_1_w },
325 	{ -1 }
326 };
327 
328 static struct IOWritePort dremshpr_writeport[] =
329 {
330 	{ 0x06, 0x06, AY8910_write_port_0_w },
331 	{ 0x07, 0x07, AY8910_control_port_0_w },
332 	{ -1 }
333 };
334 
335 
336 static struct MemoryReadAddress theglob_readmem[] =
337 {
338 	{ 0x0000, 0x3fff, MRA_BANK1 },
339 	{ 0x4000, 0x47ff, MRA_RAM },	/* video and color RAM */
340 	{ 0x4c00, 0x4fff, MRA_RAM },	/* including sprite codes at 4ff0-4fff */
341 	{ 0x5000, 0x503f, input_port_0_r },	/* IN0 */
342 	{ 0x5040, 0x507f, input_port_1_r },	/* IN1 */
343 	{ 0x5080, 0x50bf, input_port_2_r },	/* DSW1 */
344 	{ 0x50c0, 0x50ff, input_port_3_r },	/* DSW2 */
345 	{ -1 }	/* end of table */
346 };
347 
348 static struct IOReadPort theglob_readport[] =
349 {
350 	{ 0x00, 0xff, theglob_decrypt_rom },	/* Switch protection logic */
351 	{ -1 }	/* end of table */
352 };
353 
354 
355 INPUT_PORTS_START( pacman )
356 	PORT_START	/* IN0 */
357 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
358 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
359 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
360 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
361 	PORT_BITX(    0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
362 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
363 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
364 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
365 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
366 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
367 
368 	PORT_START	/* IN1 */
369 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
370 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
371 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
372 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
373 	PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
374 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
375 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
376 	PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
377 	PORT_DIPSETTING(   0x80, DEF_STR( Upright ) )
378 	PORT_DIPSETTING(   0x00, DEF_STR( Cocktail ) )
379 
380 	PORT_START	/* DSW 1 */
381 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
382 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
383 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
384 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
385 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
386 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
387 	PORT_DIPSETTING(    0x00, "1" )
388 	PORT_DIPSETTING(    0x04, "2" )
389 	PORT_DIPSETTING(    0x08, "3" )
390 	PORT_DIPSETTING(    0x0c, "5" )
391 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
392 	PORT_DIPSETTING(    0x00, "10000" )
393 	PORT_DIPSETTING(    0x10, "15000" )
394 	PORT_DIPSETTING(    0x20, "20000" )
395 	PORT_DIPSETTING(    0x30, "None" )
396 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
397 	PORT_DIPSETTING(    0x40, "Normal" )
398 	PORT_DIPSETTING(    0x00, "Hard" )
399 	PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
400 	PORT_DIPSETTING(    0x80, "Normal" )
401 	PORT_DIPSETTING(    0x00, "Alternate" )
402 
403 	PORT_START	/* DSW 2 */
404 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
405 
406 	PORT_START	/* FAKE */
407 	/* This fake input port is used to get the status of the fire button */
408 	/* and activate the speedup cheat if it is. */
409 	PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Speedup Cheat", KEYCODE_LCONTROL, JOYCODE_1_BUTTON1 )
410 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
411 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
412 INPUT_PORTS_END
413 
414 /* Ms. Pac-Man input ports are identical to Pac-Man, the only difference is */
415 /* the missing Ghost Names dip switch. */
416 INPUT_PORTS_START( mspacman )
417 	PORT_START	/* IN0 */
418 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
419 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
420 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
421 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
422 	PORT_BITX(    0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
423 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
424 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
425 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
426 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
427 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
428 
429 	PORT_START	/* IN1 */
430 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
431 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
432 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
433 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
434 	PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
435 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
436 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
437 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
438 	PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
439 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
440 
441 	PORT_START	/* DSW 1 */
442 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
443 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
444 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
445 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
446 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
447 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
448 	PORT_DIPSETTING(    0x00, "1" )
449 	PORT_DIPSETTING(    0x04, "2" )
450 	PORT_DIPSETTING(    0x08, "3" )
451 	PORT_DIPSETTING(    0x0c, "5" )
452 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
453 	PORT_DIPSETTING(    0x00, "10000" )
454 	PORT_DIPSETTING(    0x10, "15000" )
455 	PORT_DIPSETTING(    0x20, "20000" )
456 	PORT_DIPSETTING(    0x30, "None" )
457 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
458 	PORT_DIPSETTING(    0x40, "Normal" )
459 	PORT_DIPSETTING(    0x00, "Hard" )
460 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
461 
462 	PORT_START	/* DSW 2 */
463 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
464 
465 	PORT_START	/* FAKE */
466 	/* This fake input port is used to get the status of the fire button */
467 	/* and activate the speedup cheat if it is. */
468 	PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Speedup Cheat", KEYCODE_LCONTROL, JOYCODE_1_BUTTON1 )
469 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
470 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
471 INPUT_PORTS_END
472 
473 INPUT_PORTS_START( maketrax )
474 	PORT_START	/* IN0 */
475 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
476 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
477 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
478 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
479 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
480 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
481 	PORT_DIPSETTING(    0x10, DEF_STR( Cocktail ) )
482 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
483 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
484 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
485 
486 	PORT_START	/* IN1 */
487 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
488 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
489 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
490 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
491 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection */
492 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
493 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
494 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection */
495 
496 	PORT_START	/* DSW 1 */
497 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
498 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
499 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
500 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
501 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
502 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) )
503 	PORT_DIPSETTING(    0x00, "3" )
504 	PORT_DIPSETTING(    0x04, "4" )
505 	PORT_DIPSETTING(    0x08, "5" )
506 	PORT_DIPSETTING(    0x0c, "6" )
507 	PORT_DIPNAME( 0x10, 0x10, "First Pattern" )
508 	PORT_DIPSETTING(    0x10, "Easy" )
509 	PORT_DIPSETTING(    0x00, "Hard" )
510 	PORT_DIPNAME( 0x20, 0x20, "Teleport Holes" )
511 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
512 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
513  	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection */
514 
515 	PORT_START	/* DSW 2 */
516 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
517 INPUT_PORTS_END
518 
519 INPUT_PORTS_START( mbrush )
520 	PORT_START	/* IN0 */
521 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
522 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
523 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
524 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
525 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
526 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
527 	PORT_DIPSETTING(    0x10, DEF_STR( Cocktail ) )
528 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
529 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
530 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
531 
532 	PORT_START	/* IN1 */
533 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
534 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
535 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
536 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
537 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
538 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
539 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
540 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
541 
542 	PORT_START	/* DSW 1 */
543 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
544 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
545 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
546 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
547 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
548 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
549 	PORT_DIPSETTING(    0x00, "1" )
550 	PORT_DIPSETTING(    0x04, "2" )
551 	PORT_DIPSETTING(    0x08, "3" )
552 	PORT_DIPSETTING(    0x0c, "4" )
553 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
554 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
555 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
556 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
557 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
558 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
559 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
560 
561 	PORT_START	/* DSW 2 */
562 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
563 INPUT_PORTS_END
564 
565 INPUT_PORTS_START( paintrlr )
566 	PORT_START	/* IN0 */
567 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
568 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
569 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
570 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
571 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
572 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
573 	PORT_DIPSETTING(    0x10, DEF_STR( Cocktail ) )
574 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
575 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
576 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
577 
578 	PORT_START	/* IN1 */
579 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
580 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
581 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
582 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
583 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
584 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
585 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
586 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
587 
588 	PORT_START	/* DSW 1 */
589 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
590 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
591 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
592 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
593 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
594 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) )
595 	PORT_DIPSETTING(    0x00, "3" )
596 	PORT_DIPSETTING(    0x04, "4" )
597 	PORT_DIPSETTING(    0x08, "5" )
598 	PORT_DIPSETTING(    0x0c, "6" )
599 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
600 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
601 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
602 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
603 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
604 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
605 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
606 
607 	PORT_START	/* DSW 2 */
608 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
609 INPUT_PORTS_END
610 
611 INPUT_PORTS_START( ponpoko )
612 	PORT_START	/* IN0 */
613 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
614 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
615 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
616 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
617 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
618 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
619 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
620 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
621 
622 	/* The 2nd player controls are used even in upright mode */
623 	PORT_START	/* IN1 */
624 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
625 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
626 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
627 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
628 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
629 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
630 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
631 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
632 
633 	PORT_START	/* DSW 1 */
634 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
635 	PORT_DIPSETTING(    0x01, "10000" )
636 	PORT_DIPSETTING(    0x02, "30000" )
637 	PORT_DIPSETTING(    0x03, "50000" )
638 	PORT_DIPSETTING(    0x00, "None" )
639 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Unknown ) )
640 	PORT_DIPSETTING(    0x00, "0" )
641 	PORT_DIPSETTING(    0x04, "1" )
642 	PORT_DIPSETTING(    0x08, "2" )
643 	PORT_DIPSETTING(    0x0c, "3" )
644 	PORT_DIPNAME( 0x30, 0x20, DEF_STR( Lives ) )
645 	PORT_DIPSETTING(    0x00, "2" )
646 	PORT_DIPSETTING(    0x10, "3" )
647 	PORT_DIPSETTING(    0x20, "4" )
648 	PORT_DIPSETTING(    0x30, "5" )
649 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
650 	PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
651 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
652 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
653 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
654 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
655 
656 	PORT_START	/* DSW 2 */
657 	PORT_DIPNAME( 0x0f, 0x01, DEF_STR( Coinage ) )
658 	PORT_DIPSETTING(    0x04, "A 3/1 B 3/1" )
659 	PORT_DIPSETTING(    0x0e, "A 3/1 B 1/2" )
660 	PORT_DIPSETTING(    0x0f, "A 3/1 B 1/4" )
661 	PORT_DIPSETTING(    0x02, "A 2/1 B 2/1" )
662 	PORT_DIPSETTING(    0x0d, "A 2/1 B 1/1" )
663 	PORT_DIPSETTING(    0x07, "A 2/1 B 1/3" )
664 	PORT_DIPSETTING(    0x0b, "A 2/1 B 1/5" )
665 	PORT_DIPSETTING(    0x0c, "A 2/1 B 1/6" )
666 	PORT_DIPSETTING(    0x01, "A 1/1 B 1/1" )
667 	PORT_DIPSETTING(    0x06, "A 1/1 B 4/5" )
668 	PORT_DIPSETTING(    0x05, "A 1/1 B 2/3" )
669 	PORT_DIPSETTING(    0x0a, "A 1/1 B 1/3" )
670 	PORT_DIPSETTING(    0x08, "A 1/1 B 1/5" )
671 	PORT_DIPSETTING(    0x09, "A 1/1 B 1/6" )
672 	PORT_DIPSETTING(    0x03, "A 1/2 B 1/2" )
673 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
674 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )  /* Most likely unused */
675 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
676 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
677 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )  /* Most likely unused */
678 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
679 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
680 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
681 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
682 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
683 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )  /* Most likely unused */
684 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
685 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
686 INPUT_PORTS_END
687 
688 INPUT_PORTS_START( eyes )
689 	PORT_START  /* IN0 */
690 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
691 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
692 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
693 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
694 	PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
695 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
696 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
697 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
698 
699 	PORT_START	/* IN1 */
700 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
701 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
702 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
703 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
704 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
705 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
706 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
707 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
708 
709 	PORT_START	/* DSW 1 */
710 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
711 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
712 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
713 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
714 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
715 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
716 	PORT_DIPSETTING(    0x0c, "2" )
717 	PORT_DIPSETTING(    0x08, "3" )
718 	PORT_DIPSETTING(    0x04, "4" )
719 	PORT_DIPSETTING(    0x00, "5" )
720 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
721 	PORT_DIPSETTING(    0x30, "50000" )
722 	PORT_DIPSETTING(    0x20, "75000" )
723 	PORT_DIPSETTING(    0x10, "100000" )
724 	PORT_DIPSETTING(    0x00, "125000" )
725 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
726 	PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
727 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
728 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )  /* Not accessed */
729 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
730 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
731 
732 	PORT_START	/* DSW 2 */
733 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
734 INPUT_PORTS_END
735 
736 INPUT_PORTS_START( mrtnt )
737 	PORT_START  /* IN0 */
738 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
739 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
740 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
741 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
742 	PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
743 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
744 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
745 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
746 
747 	PORT_START	/* IN1 */
748 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
749 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
750 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
751 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
752 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
753 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
754 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
755 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
756 
757 	PORT_START	/* DSW 1 */
758 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
759 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
760 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
761 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
762 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
763 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
764 	PORT_DIPSETTING(    0x0c, "2" )
765 	PORT_DIPSETTING(    0x08, "3" )
766 	PORT_DIPSETTING(    0x04, "4" )
767 	PORT_DIPSETTING(    0x00, "5" )
768 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
769 	PORT_DIPSETTING(    0x30, "75000" )
770 	PORT_DIPSETTING(    0x20, "100000" )
771 	PORT_DIPSETTING(    0x10, "125000" )
772 	PORT_DIPSETTING(    0x00, "150000" )
773 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
774 	PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
775 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
776 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
777 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
778 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
779 
780 	PORT_START	/* DSW 2 */
781 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
782 INPUT_PORTS_END
783 
784 INPUT_PORTS_START( lizwiz )
785 	PORT_START	/* IN0 */
786 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
787 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
788 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
789 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
790 	PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
791 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
792 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
793 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
794 
795 	PORT_START	/* IN1 */
796 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
797 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
798 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
799 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
800 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
801 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
802 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
803 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
804 
805 	PORT_START	/* DSW 1 */
806 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
807 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
808 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
809 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
810 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
811 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
812 	PORT_DIPSETTING(    0x0c, "2" )
813 	PORT_DIPSETTING(    0x08, "3" )
814 	PORT_DIPSETTING(    0x04, "4" )
815 	PORT_DIPSETTING(    0x00, "5" )
816 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
817 	PORT_DIPSETTING(    0x30, "75000" )
818 	PORT_DIPSETTING(    0x20, "100000" )
819 	PORT_DIPSETTING(    0x10, "125000" )
820 	PORT_DIPSETTING(    0x00, "150000" )
821 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
822 	PORT_DIPSETTING(    0x40, "Normal" )
823 	PORT_DIPSETTING(    0x00, "Hard" )
824 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
825 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
826 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
827 
828 	PORT_START	/* DSW 2 */
829 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
830 INPUT_PORTS_END
831 
832 INPUT_PORTS_START( theglob )
833 	PORT_START	/* IN0 */
834 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
835 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
836 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
837 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
838 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
839 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
840 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
841 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
842 
843 	PORT_START	/* IN1 */
844 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
845 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
846 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
847 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
848 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
849 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
850 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
851 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
852 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
853 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
854 	PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
855 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
856 
857 	PORT_START	/* DSW 1 */
858 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
859 	PORT_DIPSETTING(    0x03, "3" )
860 	PORT_DIPSETTING(    0x02, "4" )
861 	PORT_DIPSETTING(    0x01, "5" )
862 	PORT_DIPSETTING(    0x00, "6" )
863 	PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) )
864 	PORT_DIPSETTING(    0x1c, "Easiest" )
865 	PORT_DIPSETTING(    0x18, "Very Easy" )
866 	PORT_DIPSETTING(    0x14, "Easy" )
867 	PORT_DIPSETTING(    0x10, "Normal" )
868 	PORT_DIPSETTING(    0x0c, "Difficult" )
869 	PORT_DIPSETTING(    0x08, "Very Difficult" )
870 	PORT_DIPSETTING(    0x04, "Very Hard" )
871 	PORT_DIPSETTING(    0x00, "Hardest" )
872 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
873 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
874 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
875 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
876 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
877 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
878 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
879 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
880 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
881 
882 	PORT_START	/* DSW 2 */
883 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
884 INPUT_PORTS_END
885 
886 INPUT_PORTS_START( vanvan )
887 	PORT_START	/* IN0 */
888 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
889 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
890 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
891 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
892 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
893 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
894 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
895 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
896 
897 	/* The 2nd player controls are used even in upright mode */
898 	PORT_START	/* IN1 */
899 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
900 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
901 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
902 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
903 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
904 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
905 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
906 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
907 
908 	PORT_START	/* DSW 1 */
909 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
910 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
911 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
912 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
913 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
914 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
915 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
916 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
917 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
918 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
919 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
920 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
921 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
922 	PORT_DIPSETTING(    0x30, "3" )
923 	PORT_DIPSETTING(    0x20, "4" )
924 	PORT_DIPSETTING(    0x10, "5" )
925 	PORT_DIPSETTING(    0x00, "6" )
926 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coin_A ) )
927 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
928 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
929 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Coin_B ) )
930 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
931 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_3C ) )
932 
933 	PORT_START	/* DSW 2 */
934 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
935 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
936 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
937 	PORT_BITX(    0x02, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", KEYCODE_F1, IP_JOY_NONE )
938 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
939 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
940 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
941 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
942 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
943 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
944 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
945 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
946 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
947 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
948 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
949 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
950 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
951 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
952 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
953 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
954 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
955 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
956 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
957 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
958 INPUT_PORTS_END
959 
960 INPUT_PORTS_START( vanvans )
961 	PORT_START	/* IN0 */
962 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
963 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
964 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
965 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
966 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
967 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
968 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
969 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
970 
971 	/* The 2nd player controls are used even in upright mode */
972 	PORT_START	/* IN1 */
973 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
974 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
975 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
976 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
977 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
978 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
979 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
980 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
981 
982 	PORT_START	/* DSW 1 */
983 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
984 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
985 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
986 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
987 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
988 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
989 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
990 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
991 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
992 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
993 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
994 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
995 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
996 	PORT_DIPSETTING(    0x30, "3" )
997 	PORT_DIPSETTING(    0x20, "4" )
998 	PORT_DIPSETTING(    0x10, "5" )
999 	PORT_DIPSETTING(    0x00, "6" )
1000 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
1001 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
1002 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) )
1003 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
1004 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
1005 
1006 	PORT_START	/* DSW 2 */
1007 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
1008 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1009 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
1010 	PORT_BITX(    0x02, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", KEYCODE_F1, IP_JOY_NONE )
1011 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1012 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1013 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
1014 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1015 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
1016 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
1017 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1018 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1019 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
1020 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1021 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1022 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
1023 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1024 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
1025 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
1026 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1027 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
1028 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
1029 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1030 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
1031 INPUT_PORTS_END
1032 
1033 INPUT_PORTS_START( dremshpr )
1034 	PORT_START	/* IN0 */
1035 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
1036 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
1037 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
1038 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
1039 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
1040 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
1041 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1042 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1043 
1044 	PORT_START	/* IN1 */
1045 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
1046 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
1047 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
1048 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
1049 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1050 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
1051 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1052 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1053 
1054 	PORT_START	/* DSW 1 */
1055 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
1056 	PORT_DIPSETTING(    0x01, DEF_STR( Upright ) )
1057 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1058 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
1059 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1060 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1061 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
1062 	PORT_DIPSETTING(    0x08, "30000" )
1063 	PORT_DIPSETTING(    0x04, "50000" )
1064 	PORT_DIPSETTING(    0x00, "70000" )
1065 	PORT_DIPSETTING(    0x0c, "None" )
1066 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
1067 	PORT_DIPSETTING(    0x30, "3" )
1068 	PORT_DIPSETTING(    0x20, "4" )
1069 	PORT_DIPSETTING(    0x10, "5" )
1070 	PORT_DIPSETTING(    0x00, "6" )
1071 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
1072 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
1073 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) )
1074 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
1075 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
1076 
1077 	PORT_START	/* DSW 2 */
1078   //PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1079   //PORT_DIPSETTING(    0x00, DEF_STR( Off ) )		/* turning this on crashes puts the */
1080   //PORT_DIPSETTING(    0x01, DEF_STR( On ) )       /* emulated machine in an infinite loop once in a while */
1081 //	PORT_DIPNAME( 0xff, 0x00, DEF_STR( Unused ) )
1082 	PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
1083 INPUT_PORTS_END
1084 
1085 INPUT_PORTS_START( alibaba )
1086 	PORT_START	/* IN0 */
1087 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
1088 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
1089 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
1090 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
1091 	PORT_BITX(0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
1092 	PORT_DIPSETTING(0x10, DEF_STR( Off ) )
1093 	PORT_DIPSETTING(0x00, DEF_STR( On ) )
1094 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
1095 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
1096 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1097 
1098 	PORT_START	/* IN1 */
1099 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
1100 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
1101 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
1102 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
1103 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
1104 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
1105 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1106 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
1107 	PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
1108 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1109 
1110 	PORT_START	/* DSW 1 */
1111 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
1112 	PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
1113 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
1114 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
1115 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1116 	PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
1117 	PORT_DIPSETTING(    0x00, "1" )
1118 	PORT_DIPSETTING(    0x04, "2" )
1119 	PORT_DIPSETTING(    0x08, "3" )
1120 	PORT_DIPSETTING(    0x0c, "5" )
1121 	PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
1122 	PORT_DIPSETTING(    0x00, "10000" )
1123 	PORT_DIPSETTING(    0x10, "15000" )
1124 	PORT_DIPSETTING(    0x20, "20000" )
1125 	PORT_DIPSETTING(    0x30, "None" )
1126 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
1127 	PORT_DIPSETTING(    0x40, "Normal" )
1128 	PORT_DIPSETTING(    0x00, "Hard" )
1129 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1130 	PORT_DIPSETTING(    0x80, DEF_STR( Off) )
1131 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1132 INPUT_PORTS_END
1133 
1134 
1135 static struct GfxLayout tilelayout =
1136 {
1137 	8,8,	/* 8*8 characters */
1138     256,    /* 256 characters */
1139     2,  /* 2 bits per pixel */
1140     { 0, 4 },   /* the two bitplanes for 4 pixels are packed into one byte */
1141     { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, /* bits are packed in groups of four */
1142     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1143     16*8    /* every char takes 16 bytes */
1144 };
1145 
1146 
1147 static struct GfxLayout spritelayout =
1148 {
1149 	16,16,	/* 16*16 sprites */
1150 	64,	/* 64 sprites */
1151 	2,	/* 2 bits per pixel */
1152 	{ 0, 4 },	/* the two bitplanes for 4 pixels are packed into one byte */
1153 	{ 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
1154 			24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
1155 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1156 			32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
1157 	64*8	/* every sprite takes 64 bytes */
1158 };
1159 
1160 
1161 static struct GfxDecodeInfo gfxdecodeinfo[] =
1162 {
1163 	{ REGION_GFX1, 0, &tilelayout,   0, 32 },
1164 	{ REGION_GFX2, 0, &spritelayout, 0, 32 },
1165 	{ -1 } /* end of array */
1166 };
1167 
1168 
1169 static struct namco_interface namco_interface =
1170 {
1171 	3072000/32,	/* sample rate */
1172 	3,			/* number of voices */
1173 	100,		/* playback volume */
1174 	REGION_SOUND1	/* memory region */
1175 };
1176 
1177 static struct SN76496interface sn76496_interface =
1178 {
1179 	2,
1180 	{ 1789750, 1789750 },	/* 1.78975 Mhz ? */
1181 	{ 75, 75 }
1182 };
1183 
1184 static struct AY8910interface dremshpr_ay8910_interface =
1185 {
1186 	1,	/* 1 chip */
1187 	14318000/8,	/* 1.78975 MHz ??? */
1188 	{ 50 },
1189 	{ 0 },
1190 	{ 0 },
1191 	{ 0 },
1192 	{ 0 }
1193 };
1194 
1195 
1196 static struct MachineDriver machine_driver_pacman =
1197 {
1198 	/* basic machine hardware */
1199 	{
1200 		{
1201 			CPU_Z80,
1202 			18432000/6,	/* 3.072 Mhz */
1203 			readmem,writemem,0,writeport,
1204 			pacman_interrupt,1
1205 		}
1206 	},
1207 	60, 2500,	/* frames per second, vblank duration */
1208 	1,	/* single CPU, no need for interleaving */
1209 	pacman_init_machine,
1210 
1211 	/* video hardware */
1212 	36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
1213 	gfxdecodeinfo,
1214 	16, 4*32,
1215 	pacman_vh_convert_color_prom,
1216 
1217 	VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
1218 	0,
1219 	pacman_vh_start,
1220 	generic_vh_stop,
1221 	pengo_vh_screenrefresh,
1222 
1223 	/* sound hardware */
1224 	0,0,0,0,
1225 	{
1226 		{
1227 			SOUND_NAMCO,
1228 			&namco_interface
1229 		}
1230 	}
1231 };
1232 
1233 static struct MachineDriver machine_driver_theglob =
1234 {
1235 	/* basic machine hardware */
1236 	{
1237 		{
1238 			CPU_Z80,
1239 			18432000/6,	/* 3.072 Mhz */
1240 			theglob_readmem,writemem,theglob_readport,writeport,
1241 			pacman_interrupt,1
1242 		}
1243 	},
1244 	60, 2500,	/* frames per second, vblank duration */
1245 	1,	/* single CPU, no need for interleaving */
1246 	theglob_init_machine,
1247 
1248 	/* video hardware */
1249 	36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
1250 	gfxdecodeinfo,
1251 	16, 4*32,
1252 	pacman_vh_convert_color_prom,
1253 
1254 	VIDEO_TYPE_RASTER,
1255 	0,
1256 	pacman_vh_start,
1257 	generic_vh_stop,
1258 	pengo_vh_screenrefresh,
1259 
1260 	/* sound hardware */
1261 	0,0,0,0,
1262 	{
1263 		{
1264 			SOUND_NAMCO,
1265 			&namco_interface
1266 		}
1267 	}
1268 };
1269 
1270 static struct MachineDriver machine_driver_vanvan =
1271 {
1272 	/* basic machine hardware */
1273 	{
1274 		{
1275 			CPU_Z80,
1276 			18432000/6,	/* 3.072 Mhz */
1277 			readmem,writemem,0,vanvan_writeport,
1278 			nmi_interrupt,1
1279 		}
1280 	},
1281 	60, 2500,	/* frames per second, vblank duration */
1282 	1,	/* single CPU, no need for interleaving */
1283 	0,
1284 
1285 	/* video hardware */
1286 	36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
1287 	gfxdecodeinfo,
1288 	16, 4*32,
1289 	pacman_vh_convert_color_prom,
1290 
1291 	VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
1292 	0,
1293 	pacman_vh_start,
1294 	generic_vh_stop,
1295 	pengo_vh_screenrefresh,
1296 
1297 	/* sound hardware */
1298 	0,0,0,0,
1299 	{
1300 		{
1301 			SOUND_SN76496,
1302 			&sn76496_interface
1303 		}
1304 	}
1305 };
1306 
1307 static struct MachineDriver machine_driver_dremshpr =
1308 {
1309 	/* basic machine hardware */
1310 	{
1311 		{
1312 			CPU_Z80,
1313 			18432000/6,	/* 3.072 Mhz */
1314 			readmem,writemem,0,dremshpr_writeport,
1315 			nmi_interrupt,1
1316 		}
1317 	},
1318 	60, 2500,	/* frames per second, vblank duration */
1319 	1,	/* single CPU, no need for interleaving */
1320 	0,
1321 
1322 	/* video hardware */
1323 	36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
1324 	gfxdecodeinfo,
1325 	16, 4*32,
1326 	pacman_vh_convert_color_prom,
1327 
1328 	VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
1329 	0,
1330 	pacman_vh_start,
1331 	generic_vh_stop,
1332 	pengo_vh_screenrefresh,
1333 
1334 	/* sound hardware */
1335 	0,0,0,0,
1336 	{
1337 		{
1338 			SOUND_AY8910,
1339 			&dremshpr_ay8910_interface
1340 		}
1341 	}
1342 };
1343 
1344 static struct MachineDriver machine_driver_alibaba =
1345 {
1346 	/* basic machine hardware */
1347 	{
1348 		{
1349 			CPU_Z80,
1350 			18432000/6,	/* 3.072 Mhz */
1351 			alibaba_readmem,alibaba_writemem,0,0,
1352 			interrupt,1
1353 		}
1354 	},
1355 	60, 2500,	/* frames per second, vblank duration */
1356 	1,	/* single CPU, no need for interleaving */
1357 	0,
1358 
1359 	/* video hardware */
1360 	36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
1361 	gfxdecodeinfo,
1362 	16, 4*32,
1363 	pacman_vh_convert_color_prom,
1364 
1365 	VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
1366 	0,
1367 	pacman_vh_start,
1368 	generic_vh_stop,
1369 	pengo_vh_screenrefresh,
1370 
1371 	/* sound hardware */
1372 	0,0,0,0,
1373 	{
1374 		{
1375 			SOUND_NAMCO,
1376 			&namco_interface
1377 		}
1378 	}
1379 };
1380 
1381 /***************************************************************************
1382 
1383   Game driver(s)
1384 
1385 ***************************************************************************/
1386 
1387 ROM_START( pacman )
1388 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1389 	ROM_LOAD( "namcopac.6e",  0x0000, 0x1000, 0xfee263b3 )
1390 	ROM_LOAD( "namcopac.6f",  0x1000, 0x1000, 0x39d1fc83 )
1391 	ROM_LOAD( "namcopac.6h",  0x2000, 0x1000, 0x02083b03 )
1392 	ROM_LOAD( "namcopac.6j",  0x3000, 0x1000, 0x7a36fe55 )
1393 
1394 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1395 	ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
1396 
1397 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1398 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1399 
1400 	ROM_REGION( 0x0120, REGION_PROMS )
1401 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1402 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1403 
1404 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1405 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1406 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1407 ROM_END
1408 
ROM_START(npacmod)1409 ROM_START( npacmod )
1410 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1411 	ROM_LOAD( "namcopac.6e",  0x0000, 0x1000, 0xfee263b3 )
1412 	ROM_LOAD( "namcopac.6f",  0x1000, 0x1000, 0x39d1fc83 )
1413 	ROM_LOAD( "namcopac.6h",  0x2000, 0x1000, 0x02083b03 )
1414 	ROM_LOAD( "npacmod.6j",   0x3000, 0x1000, 0x7d98d5f5 )
1415 
1416 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1417 	ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
1418 
1419 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1420 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1421 
1422 	ROM_REGION( 0x0120, REGION_PROMS )
1423 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1424 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1425 
1426 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1427 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1428 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1429 ROM_END
1430 
1431 ROM_START( pacmanjp )
1432 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1433 	ROM_LOAD( "pacman.6e",    0x0000, 0x1000, 0xc1e6ab10 )
1434 	ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
1435 	ROM_LOAD( "pacman.6h",    0x2000, 0x1000, 0xbcdd1beb )
1436 	ROM_LOAD( "prg7",         0x3000, 0x0800, 0xb6289b26 )
1437 	ROM_LOAD( "prg8",         0x3800, 0x0800, 0x17a88c13 )
1438 
1439 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1440 	ROM_LOAD( "chg1",         0x0000, 0x0800, 0x2066a0b7 )
1441 	ROM_LOAD( "chg2",         0x0800, 0x0800, 0x3591b89d )
1442 
1443 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1444 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1445 
1446 	ROM_REGION( 0x0120, REGION_PROMS )
1447 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1448 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1449 
1450 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1451 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1452 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1453 ROM_END
1454 
1455 ROM_START( pacmanm )
1456 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1457 	ROM_LOAD( "pacman.6e",    0x0000, 0x1000, 0xc1e6ab10 )
1458 	ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
1459 	ROM_LOAD( "pacman.6h",    0x2000, 0x1000, 0xbcdd1beb )
1460 	ROM_LOAD( "pacman.6j",    0x3000, 0x1000, 0x817d94e3 )
1461 
1462 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1463 	ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
1464 
1465 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1466 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1467 
1468 	ROM_REGION( 0x0120, REGION_PROMS )
1469 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1470 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1471 
1472 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1473 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1474 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1475 ROM_END
1476 
1477 ROM_START( pacmod )
1478 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1479 	ROM_LOAD( "pacmanh.6e",   0x0000, 0x1000, 0x3b2ec270 )
1480 	ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
1481 	ROM_LOAD( "pacmanh.6h",   0x2000, 0x1000, 0x18811780 )
1482 	ROM_LOAD( "pacmanh.6j",   0x3000, 0x1000, 0x5c96a733 )
1483 
1484 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1485 	ROM_LOAD( "pacmanh.5e",   0x0000, 0x1000, 0x299fb17a )
1486 
1487 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1488 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1489 
1490 	ROM_REGION( 0x0120, REGION_PROMS )
1491 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1492 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1493 
1494 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1495 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1496 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1497 ROM_END
1498 
1499 ROM_START( hangly )
1500 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1501 	ROM_LOAD( "hangly.6e",    0x0000, 0x1000, 0x5fe8610a )
1502 	ROM_LOAD( "hangly.6f",    0x1000, 0x1000, 0x73726586 )
1503 	ROM_LOAD( "hangly.6h",    0x2000, 0x1000, 0x4e7ef99f )
1504 	ROM_LOAD( "hangly.6j",    0x3000, 0x1000, 0x7f4147e6 )
1505 
1506 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1507 	ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
1508 
1509 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1510 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1511 
1512 	ROM_REGION( 0x0120, REGION_PROMS )
1513 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1514 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1515 
1516 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1517 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1518 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1519 ROM_END
1520 
1521 ROM_START( hangly2 )
1522 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1523 	ROM_LOAD( "hangly.6e",    0x0000, 0x1000, 0x5fe8610a )
1524 	ROM_LOAD( "hangly2.6f",   0x1000, 0x0800, 0x5ba228bb )
1525 	ROM_LOAD( "hangly2.6m",   0x1800, 0x0800, 0xbaf5461e )
1526 	ROM_LOAD( "hangly.6h",    0x2000, 0x1000, 0x4e7ef99f )
1527 	ROM_LOAD( "hangly2.6j",   0x3000, 0x0800, 0x51305374 )
1528 	ROM_LOAD( "hangly2.6p",   0x3800, 0x0800, 0x427c9d4d )
1529 
1530 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1531 	ROM_LOAD( "pacmanh.5e",   0x0000, 0x1000, 0x299fb17a )
1532 
1533 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1534 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1535 
1536 	ROM_REGION( 0x0120, REGION_PROMS )
1537 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1538 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1539 
1540 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1541 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1542 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1543 ROM_END
1544 
1545 ROM_START( puckman )
1546 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1547 	ROM_LOAD( "puckman.6e",   0x0000, 0x1000, 0xa8ae23c5 )
1548 	ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
1549 	ROM_LOAD( "puckman.6h",   0x2000, 0x1000, 0x197443f8 )
1550 	ROM_LOAD( "puckman.6j",   0x3000, 0x1000, 0x2e64a3ba )
1551 
1552 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1553 	ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
1554 
1555 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1556 	ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
1557 
1558 	ROM_REGION( 0x0120, REGION_PROMS )
1559 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1560 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1561 
1562 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1563 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1564 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1565 ROM_END
1566 
1567 ROM_START( pacheart )
1568 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
1569 	ROM_LOAD( "pacheart.pg1", 0x0000, 0x0800, 0xd844b679 )
1570 	ROM_LOAD( "pacheart.pg2", 0x0800, 0x0800, 0xb9152a38 )
1571 	ROM_LOAD( "pacheart.pg3", 0x1000, 0x0800, 0x7d177853 )
1572 	ROM_LOAD( "pacheart.pg4", 0x1800, 0x0800, 0x842d6574 )
1573 	ROM_LOAD( "pacheart.pg5", 0x2000, 0x0800, 0x9045a44c )
1574 	ROM_LOAD( "pacheart.pg6", 0x2800, 0x0800, 0x888f3c3e )
1575 	ROM_LOAD( "pacheart.pg7", 0x3000, 0x0800, 0xf5265c10 )
1576 	ROM_LOAD( "pacheart.pg8", 0x3800, 0x0800, 0x1a21a381 )
1577 
1578 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1579 	ROM_LOAD( "pacheart.ch1", 0x0000, 0x0800, 0xc62bbabf )
1580 	ROM_LOAD( "chg2",         0x0800, 0x0800, 0x3591b89d )
1581 
1582 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1583 	ROM_LOAD( "pacheart.ch3", 0x0000, 0x0800, 0xca8c184c )
1584 	ROM_LOAD( "pacheart.ch4", 0x0800, 0x0800, 0x1b1d9096 )
1585 
1586 	ROM_REGION( 0x0120, REGION_PROMS )
1587 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1588 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1589 
1590 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1591 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1592 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )  /* timing - not used */
1593 ROM_END
1594 
1595 ROM_START( piranha )
1596 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1597 	ROM_LOAD( "pr1.cpu",      0x0000, 0x1000, 0xbc5ad024 )
1598 	ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
1599 	ROM_LOAD( "pr3.cpu",      0x2000, 0x1000, 0x473c379d )
1600 	ROM_LOAD( "pr4.cpu",      0x3000, 0x1000, 0x63fbf895 )
1601 
1602 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1603 	ROM_LOAD( "pr5.cpu",      0x0000, 0x0800, 0x3fc4030c )
1604 	ROM_LOAD( "pr7.cpu",      0x0800, 0x0800, 0x30b9a010 )
1605 
1606 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1607 	ROM_LOAD( "pr6.cpu",      0x0000, 0x0800, 0xf3e9c9d5 )
1608 	ROM_LOAD( "pr8.cpu",      0x0800, 0x0800, 0x133d720d )
1609 
1610 	ROM_REGION( 0x0120, REGION_PROMS )
1611 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1612 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1613 
1614 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1615 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1616 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1617 ROM_END
1618 
1619 ROM_START( pacplus )
1620 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1621 	ROM_LOAD( "pacplus.6e",   0x0000, 0x1000, 0xd611ef68 )
1622 	ROM_LOAD( "pacplus.6f",   0x1000, 0x1000, 0xc7207556 )
1623 	ROM_LOAD( "pacplus.6h",   0x2000, 0x1000, 0xae379430 )
1624 	ROM_LOAD( "pacplus.6j",   0x3000, 0x1000, 0x5a6dff7b )
1625 
1626 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1627 	ROM_LOAD( "pacplus.5e",   0x0000, 0x1000, 0x022c35da )
1628 
1629 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1630 	ROM_LOAD( "pacplus.5f",   0x0000, 0x1000, 0x4de65cdd )
1631 
1632 	ROM_REGION( 0x0120, REGION_PROMS )
1633 	ROM_LOAD( "pacplus.7f",   0x0000, 0x0020, 0x063dd53a )
1634 	ROM_LOAD( "pacplus.4a",   0x0020, 0x0100, 0xe271a166 )
1635 
1636 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1637 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1638 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1639 ROM_END
1640 
1641 ROM_START( mspacman )
1642 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1643 	ROM_LOAD( "boot1",        0x0000, 0x1000, 0xd16b31b7 )
1644 	ROM_LOAD( "boot2",        0x1000, 0x1000, 0x0d32de5e )
1645 	ROM_LOAD( "boot3",        0x2000, 0x1000, 0x1821ee0b )
1646 	ROM_LOAD( "boot4",        0x3000, 0x1000, 0x165a9dd8 )
1647 	ROM_LOAD( "boot5",        0x8000, 0x1000, 0x8c3e6de6 )
1648 	ROM_LOAD( "boot6",        0x9000, 0x1000, 0x368cb165 )
1649 
1650 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1651 	ROM_LOAD( "5e",           0x0000, 0x1000, 0x5c281d01 )
1652 
1653 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1654 	ROM_LOAD( "5f",           0x0000, 0x1000, 0x615af909 )
1655 
1656 	ROM_REGION( 0x0120, REGION_PROMS )
1657 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1658 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1659 
1660 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1661 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1662 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1663 ROM_END
1664 
1665 ROM_START( mspacatk )
1666 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1667 	ROM_LOAD( "boot1",        0x0000, 0x1000, 0xd16b31b7 )
1668 	ROM_LOAD( "mspacatk.2",   0x1000, 0x1000, 0x0af09d31 )
1669 	ROM_LOAD( "boot3",        0x2000, 0x1000, 0x1821ee0b )
1670 	ROM_LOAD( "boot4",        0x3000, 0x1000, 0x165a9dd8 )
1671 	ROM_LOAD( "mspacatk.5",   0x8000, 0x1000, 0xe6e06954 )
1672 	ROM_LOAD( "mspacatk.6",   0x9000, 0x1000, 0x3b5db308 )
1673 
1674 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1675 	ROM_LOAD( "5e",           0x0000, 0x1000, 0x5c281d01 )
1676 
1677 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1678 	ROM_LOAD( "5f",           0x0000, 0x1000, 0x615af909 )
1679 
1680 	ROM_REGION( 0x0120, REGION_PROMS )
1681 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1682 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1683 
1684 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1685 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1686 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1687 ROM_END
1688 
1689 ROM_START( pacgal )
1690 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1691 	ROM_LOAD( "boot1",        0x0000, 0x1000, 0xd16b31b7 )
1692 	ROM_LOAD( "boot2",        0x1000, 0x1000, 0x0d32de5e )
1693 	ROM_LOAD( "pacman.7fh",   0x2000, 0x1000, 0x513f4d5c )
1694 	ROM_LOAD( "pacman.7hj",   0x3000, 0x1000, 0x70694c8e )
1695 	ROM_LOAD( "boot5",        0x8000, 0x1000, 0x8c3e6de6 )
1696 	ROM_LOAD( "boot6",        0x9000, 0x1000, 0x368cb165 )
1697 
1698 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1699 	ROM_LOAD( "5e",           0x0000, 0x1000, 0x5c281d01 )
1700 
1701 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1702 	ROM_LOAD( "pacman.5ef",   0x0000, 0x0800, 0x65a3ee71 )
1703 	ROM_LOAD( "pacman.5hj",   0x0800, 0x0800, 0x50c7477d )
1704 
1705 	ROM_REGION( 0x0120, REGION_PROMS )
1706 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1707 	ROM_LOAD( "82s129.4a",    0x0020, 0x0100, 0x63efb927 )
1708 
1709 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1710 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1711 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1712 ROM_END
1713 
1714 ROM_START( crush )
1715 	ROM_REGION( 2*0x10000, REGION_CPU1 )	/* 64k for code + 64k for opcode copy to hack protection */
1716 	ROM_LOAD( "crushkrl.6e",  0x0000, 0x1000, 0xa8dd8f54 )
1717 	ROM_LOAD( "crushkrl.6f",  0x1000, 0x1000, 0x91387299 )
1718 	ROM_LOAD( "crushkrl.6h",  0x2000, 0x1000, 0xd4455f27 )
1719 	ROM_LOAD( "crushkrl.6j",  0x3000, 0x1000, 0xd59fc251 )
1720 
1721 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1722 	ROM_LOAD( "maketrax.5e",  0x0000, 0x1000, 0x91bad2da )
1723 
1724 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1725 	ROM_LOAD( "maketrax.5f",  0x0000, 0x1000, 0xaea79f55 )
1726 
1727 	ROM_REGION( 0x0120, REGION_PROMS )
1728 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1729 	ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
1730 
1731 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1732 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1733 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1734 ROM_END
1735 
1736 ROM_START( crush2 )
1737 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1738 	ROM_LOAD( "tp1",          0x0000, 0x0800, 0xf276592e )
1739 	ROM_LOAD( "tp5a",         0x0800, 0x0800, 0x3d302abe )
1740 	ROM_LOAD( "tp2",          0x1000, 0x0800, 0x25f42e70 )
1741 	ROM_LOAD( "tp6",          0x1800, 0x0800, 0x98279cbe )
1742 	ROM_LOAD( "tp3",          0x2000, 0x0800, 0x8377b4cb )
1743 	ROM_LOAD( "tp7",          0x2800, 0x0800, 0xd8e76c8c )
1744 	ROM_LOAD( "tp4",          0x3000, 0x0800, 0x90b28fa3 )
1745 	ROM_LOAD( "tp8",          0x3800, 0x0800, 0x10854e1b )
1746 
1747 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1748 	ROM_LOAD( "tpa",          0x0000, 0x0800, 0xc7617198 )
1749 	ROM_LOAD( "tpc",          0x0800, 0x0800, 0xe129d76a )
1750 
1751 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1752 	ROM_LOAD( "tpb",          0x0000, 0x0800, 0xd1899f05 )
1753 	ROM_LOAD( "tpd",          0x0800, 0x0800, 0xd35d1caf )
1754 
1755 	ROM_REGION( 0x0120, REGION_PROMS )
1756 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1757 	ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
1758 
1759 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1760 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1761 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1762 ROM_END
1763 
1764 ROM_START( crush3 )
1765 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1766 	ROM_LOAD( "unkmol.4e",    0x0000, 0x0800, 0x49150ddf )
1767 	ROM_LOAD( "unkmol.6e",    0x0800, 0x0800, 0x21f47e17 )
1768 	ROM_LOAD( "unkmol.4f",    0x1000, 0x0800, 0x9b6dd592 )
1769 	ROM_LOAD( "unkmol.6f",    0x1800, 0x0800, 0x755c1452 )
1770 	ROM_LOAD( "unkmol.4h",    0x2000, 0x0800, 0xed30a312 )
1771 	ROM_LOAD( "unkmol.6h",    0x2800, 0x0800, 0xfe4bb0eb )
1772 	ROM_LOAD( "unkmol.4j",    0x3000, 0x0800, 0x072b91c9 )
1773 	ROM_LOAD( "unkmol.6j",    0x3800, 0x0800, 0x66fba07d )
1774 
1775 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1776 	ROM_LOAD( "unkmol.5e",    0x0000, 0x0800, 0x338880a0 )
1777 	ROM_LOAD( "unkmol.5h",    0x0800, 0x0800, 0x4ce9c81f )
1778 
1779 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1780 	ROM_LOAD( "unkmol.5f",    0x0000, 0x0800, 0x752e3780 )
1781 	ROM_LOAD( "unkmol.5j",    0x0800, 0x0800, 0x6e00d2ac )
1782 
1783 	ROM_REGION( 0x0120, REGION_PROMS )
1784 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1785 	ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
1786 
1787 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1788 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1789 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1790 ROM_END
1791 
1792 ROM_START( maketrax )
1793 	ROM_REGION( 2*0x10000, REGION_CPU1 )	/* 64k for code + 64k for opcode copy to hack protection */
1794 	ROM_LOAD( "maketrax.6e",  0x0000, 0x1000, 0x0150fb4a )
1795 	ROM_LOAD( "maketrax.6f",  0x1000, 0x1000, 0x77531691 )
1796 	ROM_LOAD( "maketrax.6h",  0x2000, 0x1000, 0xa2cdc51e )
1797 	ROM_LOAD( "maketrax.6j",  0x3000, 0x1000, 0x0b4b5e0a )
1798 
1799 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1800 	ROM_LOAD( "maketrax.5e",  0x0000, 0x1000, 0x91bad2da )
1801 
1802 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1803 	ROM_LOAD( "maketrax.5f",  0x0000, 0x1000, 0xaea79f55 )
1804 
1805 	ROM_REGION( 0x0120, REGION_PROMS )
1806 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1807 	ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
1808 
1809 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1810 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1811 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1812 ROM_END
1813 
1814 ROM_START( mbrush )
1815 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1816 	ROM_LOAD( "mbrush.6e",    0x0000, 0x1000, 0x750fbff7 )
1817 	ROM_LOAD( "mbrush.6f",    0x1000, 0x1000, 0x27eb4299 )
1818 	ROM_LOAD( "mbrush.6h",    0x2000, 0x1000, 0xd297108e )
1819 	ROM_LOAD( "mbrush.6j",    0x3000, 0x1000, 0x6fd719d0 )
1820 
1821 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1822 	ROM_LOAD( "tpa",          0x0000, 0x0800, 0xc7617198 )
1823 	ROM_LOAD( "mbrush.5h",    0x0800, 0x0800, 0xc15b6967 )
1824 
1825 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1826 	ROM_LOAD( "mbrush.5f",    0x0000, 0x0800, 0xd5bc5cb8 )  /* copyright sign was removed */
1827 	ROM_LOAD( "tpd",          0x0800, 0x0800, 0xd35d1caf )
1828 
1829 	ROM_REGION( 0x0120, REGION_PROMS )
1830 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1831 	ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
1832 
1833 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1834 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1835 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1836 ROM_END
1837 
1838 ROM_START( paintrlr )
1839 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1840 	ROM_LOAD( "paintrlr.1",   0x0000, 0x0800, 0x556d20b5 )
1841 	ROM_LOAD( "paintrlr.5",   0x0800, 0x0800, 0x4598a965 )
1842 	ROM_LOAD( "paintrlr.2",   0x1000, 0x0800, 0x2da29c81 )
1843 	ROM_LOAD( "paintrlr.6",   0x1800, 0x0800, 0x1f561c54 )
1844 	ROM_LOAD( "paintrlr.3",   0x2000, 0x0800, 0xe695b785 )
1845 	ROM_LOAD( "paintrlr.7",   0x2800, 0x0800, 0x00e6eec0 )
1846 	ROM_LOAD( "paintrlr.4",   0x3000, 0x0800, 0x0fd5884b )
1847 	ROM_LOAD( "paintrlr.8",   0x3800, 0x0800, 0x4900114a )
1848 
1849 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1850 	ROM_LOAD( "tpa",          0x0000, 0x0800, 0xc7617198 )
1851 	ROM_LOAD( "mbrush.5h",    0x0800, 0x0800, 0xc15b6967 )
1852 
1853 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1854 	ROM_LOAD( "mbrush.5f",    0x0000, 0x0800, 0xd5bc5cb8 )  /* copyright sign was removed */
1855 	ROM_LOAD( "tpd",          0x0800, 0x0800, 0xd35d1caf )
1856 
1857 	ROM_REGION( 0x0120, REGION_PROMS )
1858 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1859 	ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
1860 
1861 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1862 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1863 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1864 ROM_END
1865 
1866 ROM_START( ponpoko )
1867 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1868 	ROM_LOAD( "ppokoj1.bin",  0x0000, 0x1000, 0xffa3c004 )
1869 	ROM_LOAD( "ppokoj2.bin",  0x1000, 0x1000, 0x4a496866 )
1870 	ROM_LOAD( "ppokoj3.bin",  0x2000, 0x1000, 0x17da6ca3 )
1871 	ROM_LOAD( "ppokoj4.bin",  0x3000, 0x1000, 0x9d39a565 )
1872 	ROM_LOAD( "ppoko5.bin",   0x8000, 0x1000, 0x54ca3d7d )
1873 	ROM_LOAD( "ppoko6.bin",   0x9000, 0x1000, 0x3055c7e0 )
1874 	ROM_LOAD( "ppoko7.bin",   0xa000, 0x1000, 0x3cbe47ca )
1875 	ROM_LOAD( "ppokoj8.bin",  0xb000, 0x1000, 0x04b63fc6 )
1876 
1877 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1878 	ROM_LOAD( "ppoko9.bin",   0x0000, 0x1000, 0xb73e1a06 )
1879 
1880 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1881 	ROM_LOAD( "ppoko10.bin",  0x0000, 0x1000, 0x62069b5d )
1882 
1883 	ROM_REGION( 0x0120, REGION_PROMS )
1884 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1885 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1886 
1887 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1888 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1889 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1890 ROM_END
1891 
1892 ROM_START( ponpokov )
1893 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1894 	ROM_LOAD( "ppoko1.bin",   0x0000, 0x1000, 0x49077667 )
1895 	ROM_LOAD( "ppoko2.bin",   0x1000, 0x1000, 0x5101781a )
1896 	ROM_LOAD( "ppoko3.bin",   0x2000, 0x1000, 0xd790ed22 )
1897 	ROM_LOAD( "ppoko4.bin",   0x3000, 0x1000, 0x4e449069 )
1898 	ROM_LOAD( "ppoko5.bin",   0x8000, 0x1000, 0x54ca3d7d )
1899 	ROM_LOAD( "ppoko6.bin",   0x9000, 0x1000, 0x3055c7e0 )
1900 	ROM_LOAD( "ppoko7.bin",   0xa000, 0x1000, 0x3cbe47ca )
1901 	ROM_LOAD( "ppoko8.bin",   0xb000, 0x1000, 0xb39be27d )
1902 
1903 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1904 	ROM_LOAD( "ppoko9.bin",   0x0000, 0x1000, 0xb73e1a06 )
1905 
1906 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1907 	ROM_LOAD( "ppoko10.bin",  0x0000, 0x1000, 0x62069b5d )
1908 
1909 	ROM_REGION( 0x0120, REGION_PROMS )
1910 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1911 	ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
1912 
1913 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1914 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1915 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1916 ROM_END
1917 
1918 ROM_START( eyes )
1919 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1920 	ROM_LOAD( "d7",           0x0000, 0x1000, 0x3b09ac89 )
1921 	ROM_LOAD( "e7",           0x1000, 0x1000, 0x97096855 )
1922 	ROM_LOAD( "f7",           0x2000, 0x1000, 0x731e294e )
1923 	ROM_LOAD( "h7",           0x3000, 0x1000, 0x22f7a719 )
1924 
1925 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1926 	ROM_LOAD( "d5",           0x0000, 0x1000, 0xd6af0030 )
1927 
1928 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1929 	ROM_LOAD( "e5",           0x0000, 0x1000, 0xa42b5201 )
1930 
1931 	ROM_REGION( 0x0120, REGION_PROMS )
1932 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1933 	ROM_LOAD( "82s129.4a",    0x0020, 0x0100, 0xd8d78829 )
1934 
1935 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1936 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1937 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1938 ROM_END
1939 
1940 ROM_START( eyes2 )
1941 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1942 	ROM_LOAD( "g38201.7d",    0x0000, 0x1000, 0x2cda7185 )
1943 	ROM_LOAD( "g38202.7e",    0x1000, 0x1000, 0xb9fe4f59 )
1944 	ROM_LOAD( "g38203.7f",    0x2000, 0x1000, 0xd618ba66 )
1945 	ROM_LOAD( "g38204.7h",    0x3000, 0x1000, 0xcf038276 )
1946 
1947 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1948 	ROM_LOAD( "g38205.5d",    0x0000, 0x1000, 0x03b1b4c7 )  /* this one has a (c) sign */
1949 
1950 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1951 	ROM_LOAD( "e5",           0x0000, 0x1000, 0xa42b5201 )
1952 
1953 	ROM_REGION( 0x0120, REGION_PROMS )
1954 	ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
1955 	ROM_LOAD( "82s129.4a",    0x0020, 0x0100, 0xd8d78829 )
1956 
1957 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1958 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1959 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1960 ROM_END
1961 
1962 ROM_START( mrtnt )
1963 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1964 	ROM_LOAD( "tnt.1",        0x0000, 0x1000, 0x0e836586 )
1965 	ROM_LOAD( "tnt.2",        0x1000, 0x1000, 0x779c4c5b )
1966 	ROM_LOAD( "tnt.3",        0x2000, 0x1000, 0xad6fc688 )
1967 	ROM_LOAD( "tnt.4",        0x3000, 0x1000, 0xd77557b3 )
1968 
1969 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1970 	ROM_LOAD( "tnt.5",        0x0000, 0x1000, 0x3038cc0e )
1971 
1972 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1973 	ROM_LOAD( "tnt.6",        0x0000, 0x1000, 0x97634d8b )
1974 
1975 	ROM_REGION( 0x0120, REGION_PROMS )
1976 	ROM_LOAD( "mrtnt08.bin",  0x0000, 0x0020, 0x00000000 )
1977 	ROM_LOAD( "mrtnt04.bin",  0x0020, 0x0100, 0x00000000 )
1978 
1979 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
1980 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
1981 	ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
1982 ROM_END
1983 
1984 ROM_START( lizwiz )
1985 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
1986 	ROM_LOAD( "6e.cpu",       0x0000, 0x1000, 0x32bc1990 )
1987 	ROM_LOAD( "6f.cpu",       0x1000, 0x1000, 0xef24b414 )
1988 	ROM_LOAD( "6h.cpu",       0x2000, 0x1000, 0x30bed83d )
1989 	ROM_LOAD( "6j.cpu",       0x3000, 0x1000, 0xdd09baeb )
1990 	ROM_LOAD( "wiza",         0x8000, 0x1000, 0xf6dea3a6 )
1991 	ROM_LOAD( "wizb",         0x9000, 0x1000, 0xf27fb5a8 )
1992 
1993 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1994 	ROM_LOAD( "5e.cpu",       0x0000, 0x1000, 0x45059e73 )
1995 
1996 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1997 	ROM_LOAD( "5f.cpu",       0x0000, 0x1000, 0xd2469717 )
1998 
1999 	ROM_REGION( 0x0120, REGION_PROMS )
2000 	ROM_LOAD( "7f.cpu",       0x0000, 0x0020, 0x7549a947 )
2001 	ROM_LOAD( "4a.cpu",       0x0020, 0x0100, 0x5fdca536 )
2002 
2003 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
2004 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
2005 	ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
2006 ROM_END
2007 
2008 ROM_START( theglob )
2009 	ROM_REGION( 0x20000, REGION_CPU1 )	/* 64k for code */
2010 	ROM_LOAD( "glob.u2",      0x0000, 0x2000, 0x829d0bea )
2011 	ROM_LOAD( "glob.u3",      0x2000, 0x2000, 0x31de6628 )
2012 
2013 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2014 	ROM_LOAD( "glob.5e",      0x0000, 0x1000, 0x53688260 )
2015 
2016 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2017 	ROM_LOAD( "glob.5f",      0x0000, 0x1000, 0x051f59c7 )
2018 
2019 	ROM_REGION( 0x0120, REGION_PROMS )
2020 	ROM_LOAD( "glob.7f",      0x0000, 0x0020, 0x1f617527 )
2021 	ROM_LOAD( "glob.4a",      0x0020, 0x0100, 0x28faa769 )
2022 
2023 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
2024 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
2025 	ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
2026 ROM_END
2027 
2028 ROM_START( beastf )
2029 	ROM_REGION( 0x20000, REGION_CPU1 )	/* 64k for code */
2030 	ROM_LOAD( "bf-u2.bin",    0x0000, 0x2000, 0x3afc517b )
2031 	ROM_LOAD( "bf-u3.bin",    0x2000, 0x2000, 0x8dbd76d0 )
2032 
2033 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2034 	ROM_LOAD( "beastf.5e",    0x0000, 0x1000, 0x5654dc34 )
2035 
2036 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2037 	ROM_LOAD( "beastf.5f",    0x0000, 0x1000, 0x1b30ca61 )
2038 
2039 	ROM_REGION( 0x0120, REGION_PROMS )
2040 	ROM_LOAD( "glob.7f",      0x0000, 0x0020, 0x1f617527 )
2041 	ROM_LOAD( "glob.4a",      0x0020, 0x0100, 0x28faa769 )
2042 
2043 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
2044 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
2045 	ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
2046 ROM_END
2047 
2048 ROM_START( jumpshot )
2049 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
2050 	ROM_LOAD( "6e",           0x0000, 0x1000, 0xf00def9a )
2051 	ROM_LOAD( "6f",           0x1000, 0x1000, 0xf70deae2 )
2052 	ROM_LOAD( "6h",           0x2000, 0x1000, 0x894d6f68 )
2053 	ROM_LOAD( "6j",           0x3000, 0x1000, 0xf15a108a )
2054 
2055 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2056 	ROM_LOAD( "5e",           0x0000, 0x1000, 0xd9fa90f5 )
2057 
2058 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2059 	ROM_LOAD( "5f",           0x0000, 0x1000, 0x2ec711c1 )
2060 
2061 	ROM_REGION( 0x0120, REGION_PROMS )
2062 	ROM_LOAD( "prom.7f",      0x0000, 0x0020, 0x872b42f3 )
2063 	ROM_LOAD( "prom.4a",      0x0020, 0x0100, 0x0399f39f )
2064 
2065 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
2066 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
2067 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
2068 ROM_END
2069 
2070 ROM_START( vanvan )
2071 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
2072 	ROM_LOAD( "van1.bin",	  0x0000, 0x1000, 0x00f48295 )
2073 	ROM_LOAD( "van-2.51",     0x1000, 0x1000, 0xdf58e1cb )
2074 	ROM_LOAD( "van-3.52",     0x2000, 0x1000, 0x15571e24 )
2075 	ROM_LOAD( "van4.bin",     0x3000, 0x1000, 0xf8b37ed5 )
2076 	ROM_LOAD( "van5.bin",     0x8000, 0x1000, 0xb8c1e089 )
2077 
2078 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2079 	ROM_LOAD( "van-20.18",    0x0000, 0x1000, 0x60efbe66 )
2080 
2081 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2082 	ROM_LOAD( "van-21.19",    0x0000, 0x1000, 0x5dd53723 )
2083 
2084 	ROM_REGION( 0x0120, REGION_PROMS )
2085 	ROM_LOAD( "6331-1.6",     0x0000, 0x0020, 0xce1d9503 )
2086 	ROM_LOAD( "6301-1.37",    0x0020, 0x0100, 0x4b803d9f )
2087 ROM_END
2088 
2089 ROM_START( vanvans )
2090 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
2091 	ROM_LOAD( "van-1.50",     0x0000, 0x1000, 0xcf1b2df0 )
2092 	ROM_LOAD( "van-2.51",     0x1000, 0x1000, 0xdf58e1cb )
2093 	ROM_LOAD( "van-3.52",     0x2000, 0x1000, 0x15571e24 )
2094 	ROM_LOAD( "van-4.53",     0x3000, 0x1000, 0xb724cbe0 )
2095 	ROM_LOAD( "van-5.39",     0x8000, 0x1000, 0xdb67414c )
2096 
2097 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2098 	ROM_LOAD( "van-20.18",    0x0000, 0x1000, 0x60efbe66 )
2099 
2100 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2101 	ROM_LOAD( "van-21.19",    0x0000, 0x1000, 0x5dd53723 )
2102 
2103 	ROM_REGION( 0x0120, REGION_PROMS )
2104 	ROM_LOAD( "6331-1.6",     0x0000, 0x0020, 0xce1d9503 )
2105 	ROM_LOAD( "6301-1.37",    0x0020, 0x0100, 0x4b803d9f )
2106 ROM_END
2107 
2108 ROM_START( dremshpr )
2109 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
2110 	ROM_LOAD( "red_1.50",	  0x0000, 0x1000, 0x830c6361 )
2111 	ROM_LOAD( "red_2.51",     0x1000, 0x1000, 0xd22551cc )
2112 	ROM_LOAD( "red_3.52",     0x2000, 0x1000, 0x0713a34a )
2113 	ROM_LOAD( "red_4.53",     0x3000, 0x1000, 0xf38bcaaa )
2114 	ROM_LOAD( "red_5.39",     0x8000, 0x1000, 0x6a382267 )
2115 	ROM_LOAD( "red_6.40",     0x9000, 0x1000, 0x4cf8b121 )
2116 	ROM_LOAD( "red_7.41",     0xa000, 0x1000, 0xbd4fc4ba )
2117 
2118 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2119 	ROM_LOAD( "red-20.18",    0x0000, 0x1000, 0x2d6698dc )
2120 
2121 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2122 	ROM_LOAD( "red-21.19",    0x0000, 0x1000, 0x38c9ce9b )
2123 
2124 	ROM_REGION( 0x0120, REGION_PROMS )
2125 	ROM_LOAD( "6331-1.6",     0x0000, 0x0020, 0xce1d9503 )
2126 	ROM_LOAD( "6301-1.37",    0x0020, 0x0100, 0x39d6fb5c )
2127 ROM_END
2128 
2129 ROM_START( alibaba )
2130 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
2131 	ROM_LOAD( "6e",           0x0000, 0x1000, 0x38d701aa )
2132 	ROM_LOAD( "6f",           0x1000, 0x1000, 0x3d0e35f3 )
2133 	ROM_LOAD( "6h",           0x2000, 0x1000, 0x823bee89 )
2134 	ROM_LOAD( "6k",           0x3000, 0x1000, 0x474d032f )
2135 	ROM_LOAD( "6l",           0x8000, 0x1000, 0x5ab315c1 )
2136 	ROM_LOAD( "6m",           0xa000, 0x0800, 0x438d0357 )
2137 
2138 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2139 	ROM_LOAD( "5e",           0x0000, 0x0800, 0x85bcb8f8 )
2140 	ROM_LOAD( "5h",           0x0800, 0x0800, 0x38e50862 )
2141 
2142 	ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2143 	ROM_LOAD( "5f",           0x0000, 0x0800, 0xb5715c86 )
2144 	ROM_LOAD( "5k",           0x0800, 0x0800, 0x713086b3 )
2145 
2146 	ROM_REGION( 0x0120, REGION_PROMS )
2147 	ROM_LOAD( "alibaba.7f",   0x0000, 0x0020, 0x00000000 )  /* missing */
2148 	ROM_LOAD( "alibaba.4a",   0x0020, 0x0100, 0x00000000 )
2149 
2150 	ROM_REGION( 0x0200, REGION_SOUND1 )	/* sound PROMs */
2151 	ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
2152 	ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )	/* timing - not used */
2153 ROM_END
2154 
2155 
2156 
2157 static READ_HANDLER( maketrax_special_port2_r )
2158 {
2159 	int pc,data;
2160 
2161 	pc = cpu_getpreviouspc();
2162 
2163 	data = input_port_2_r(offset);
2164 
2165 	if ((pc == 0x1973) || (pc == 0x2389)) return data | 0x40;
2166 
2167 	switch (offset)
2168 	{
2169 		case 0x01:
2170 		case 0x04:
2171 			data |= 0x40; break;
2172 		case 0x05:
2173 			data |= 0xc0; break;
2174 		default:
2175 			data &= 0x3f; break;
2176 	}
2177 
2178 	return data;
2179 }
2180 
READ_HANDLER(maketrax_special_port3_r)2181 static READ_HANDLER( maketrax_special_port3_r )
2182 {
2183 	int pc;
2184 
2185 	pc = cpu_getpreviouspc();
2186 
2187 	if ( pc == 0x040e) return 0x20;
2188 
2189 	if ((pc == 0x115e) || (pc == 0x3ae2)) return 0x00;
2190 
2191 	switch (offset)
2192 	{
2193 		case 0x00:
2194 			return 0x1f;
2195 		case 0x09:
2196 			return 0x30;
2197 		case 0x0c:
2198 			return 0x00;
2199 		default:
2200 			return 0x20;
2201 	}
2202 }
2203 
maketrax_rom_decode(void)2204 static void maketrax_rom_decode(void)
2205 {
2206 	unsigned char *rom = memory_region(REGION_CPU1);
2207 	int diff = memory_region_length(REGION_CPU1) / 2;
2208 
2209 
2210 	/* patch protection using a copy of the opcodes so ROM checksum */
2211 	/* tests will not fail */
2212 	memory_set_opcode_base(0,rom+diff);
2213 
2214 	memcpy(rom+diff,rom,diff);
2215 
2216 	rom[0x0415 + diff] = 0xc9;
2217 	rom[0x1978 + diff] = 0x18;
2218 	rom[0x238e + diff] = 0xc9;
2219 	rom[0x3ae5 + diff] = 0xe6;
2220 	rom[0x3ae7 + diff] = 0x00;
2221 	rom[0x3ae8 + diff] = 0xc9;
2222 	rom[0x3aed + diff] = 0x86;
2223 	rom[0x3aee + diff] = 0xc0;
2224 	rom[0x3aef + diff] = 0xb0;
2225 }
2226 
init_maketrax(void)2227 static void init_maketrax(void)
2228 {
2229 	/* set up protection handlers */
2230 	install_mem_read_handler(0, 0x5080, 0x50bf, maketrax_special_port2_r);
2231 	install_mem_read_handler(0, 0x50c0, 0x50ff, maketrax_special_port3_r);
2232 
2233 	maketrax_rom_decode();
2234 }
2235 
init_ponpoko(void)2236 static void init_ponpoko(void)
2237 {
2238 	int i, j;
2239 	unsigned char *RAM, temp;
2240 
2241 	/* The gfx data is swapped wrt the other Pac-Man hardware games. */
2242 	/* Here we revert it to the usual format. */
2243 
2244 	/* Characters */
2245 	RAM = memory_region(REGION_GFX1);
2246 	for (i = 0;i < memory_region_length(REGION_GFX1);i += 0x10)
2247 	{
2248 		for (j = 0; j < 8; j++)
2249 		{
2250 			temp          = RAM[i+j+0x08];
2251 			RAM[i+j+0x08] = RAM[i+j+0x00];
2252 			RAM[i+j+0x00] = temp;
2253 		}
2254 	}
2255 
2256 	/* Sprites */
2257 	RAM = memory_region(REGION_GFX2);
2258 	for (i = 0;i < memory_region_length(REGION_GFX2);i += 0x20)
2259 	{
2260 		for (j = 0; j < 8; j++)
2261 		{
2262 			temp          = RAM[i+j+0x18];
2263 			RAM[i+j+0x18] = RAM[i+j+0x10];
2264 			RAM[i+j+0x10] = RAM[i+j+0x08];
2265 			RAM[i+j+0x08] = RAM[i+j+0x00];
2266 			RAM[i+j+0x00] = temp;
2267 		}
2268 	}
2269 }
2270 
eyes_decode(unsigned char * data)2271 static void eyes_decode(unsigned char *data)
2272 {
2273 	int j;
2274 	unsigned char swapbuffer[8];
2275 
2276 	for (j = 0; j < 8; j++)
2277 	{
2278 		swapbuffer[j] = data[(j >> 2) + (j & 2) + ((j & 1) << 2)];
2279 	}
2280 
2281 	for (j = 0; j < 8; j++)
2282 	{
2283 		char ch = swapbuffer[j];
2284 
2285 		data[j] = (ch & 0x80) | ((ch & 0x10) << 2) |
2286 					 (ch & 0x20) | ((ch & 0x40) >> 2) | (ch & 0x0f);
2287 	}
2288 }
2289 
init_eyes(void)2290 static void init_eyes(void)
2291 {
2292 	int i;
2293 	unsigned char *RAM;
2294 
2295 	/* CPU ROMs */
2296 
2297 	/* Data lines D3 and D5 swapped */
2298 	RAM = memory_region(REGION_CPU1);
2299 	for (i = 0; i < 0x4000; i++)
2300 	{
2301 		RAM[i] =  (RAM[i] & 0xc0) | ((RAM[i] & 0x08) << 2) |
2302 				  (RAM[i] & 0x10) | ((RAM[i] & 0x20) >> 2) | (RAM[i] & 0x07);
2303 	}
2304 
2305 
2306 	/* Graphics ROMs */
2307 
2308 	/* Data lines D4 and D6 and address lines A0 and A2 are swapped */
2309 	RAM = memory_region(REGION_GFX1);
2310 	for (i = 0;i < memory_region_length(REGION_GFX1);i += 8)
2311 		eyes_decode(&RAM[i]);
2312 	RAM = memory_region(REGION_GFX2);
2313 	for (i = 0;i < memory_region_length(REGION_GFX2);i += 8)
2314 		eyes_decode(&RAM[i]);
2315 }
2316 
2317 
init_pacplus(void)2318 static void init_pacplus(void)
2319 {
2320 	pacplus_decode();
2321 }
2322 
2323 /*          rom       parent    machine   inp       init */
2324 GAME( 1980, pacman,   0,        pacman,   pacman,   0,        ROT90,  "Namco", "PuckMan (Japan set 1)" )
2325 GAME( 1980, pacmanjp, pacman,   pacman,   pacman,   0,        ROT90,  "Namco", "PuckMan (Japan set 2)" )
2326 GAME( 1980, pacmanm,  pacman,   pacman,   pacman,   0,        ROT90,  "[Namco] (Midway license)", "Pac-Man (Midway)" )
2327 GAME( 1981, npacmod,  pacman,   pacman,   pacman,   0,        ROT90,  "Namco", "PuckMan (harder?)" )
2328 GAME( 1981, pacmod,   pacman,   pacman,   pacman,   0,        ROT90,  "[Namco] (Midway license)", "Pac-Man (Midway, harder)" )
2329 GAME( 1981, hangly,   pacman,   pacman,   pacman,   0,        ROT90,  "hack", "Hangly-Man (set 1)" )
2330 GAME( 1981, hangly2,  pacman,   pacman,   pacman,   0,        ROT90,  "hack", "Hangly-Man (set 2)" )
2331 GAME( 1980, puckman,  pacman,   pacman,   pacman,   0,        ROT90,  "hack", "New Puck-X" )
2332 GAME( 1981, pacheart, pacman,   pacman,   pacman,   0,        ROT90,  "hack", "Pac-Man (Hearts)" )
2333 GAME( 1981, piranha,  pacman,   pacman,   mspacman, 0,        ROT90,  "hack", "Piranha" )
2334 GAME( 1982, pacplus,  0,        pacman,   pacman,   pacplus,  ROT90,  "[Namco] (Midway license)", "Pac-Man Plus" )
2335 GAME( 1981, mspacman, 0,        pacman,   mspacman, 0,        ROT90,  "bootleg", "Ms. Pac-Man" )
2336 GAME( 1981, mspacatk, mspacman, pacman,   mspacman, 0,        ROT90,  "hack", "Ms. Pac-Man Plus" )
2337 GAME( 1981, pacgal,   mspacman, pacman,   mspacman, 0,        ROT90,  "hack", "Pac-Gal" )
2338 GAME( 1981, crush,    0,        pacman,   maketrax, maketrax, ROT90,  "Kural Samno Electric", "Crush Roller (Kural Samno)" )
2339 GAME( 1981, crush2,   crush,    pacman,   maketrax, 0,        ROT90,  "Kural Esco Electric", "Crush Roller (Kural Esco - bootleg?)" )
2340 GAME( 1981, crush3,   crush,    pacman,   maketrax, eyes,     ROT90,  "Kural Electric", "Crush Roller (Kural - bootleg?)" )
2341 GAME( 1981, maketrax, crush,    pacman,   maketrax, maketrax, ROT270, "[Kural] (Williams license)", "Make Trax" )
2342 GAME( 1981, mbrush,   crush,    pacman,   mbrush,   0,        ROT90,  "bootleg", "Magic Brush" )
2343 GAME( 1981, paintrlr, crush,    pacman,   paintrlr, 0,        ROT90,  "bootleg", "Paint Roller" )
2344 GAME( 1982, ponpoko,  0,        pacman,   ponpoko,  ponpoko,  ROT0,   "Sigma Ent. Inc.", "Ponpoko" )
2345 GAME( 1982, ponpokov, ponpoko,  pacman,   ponpoko,  ponpoko,  ROT0,   "Sigma Ent. Inc. (Venture Line license)", "Ponpoko (Venture Line)" )
2346 GAME( 1982, eyes,     0,        pacman,   eyes,     eyes,     ROT90,  "Digitrex Techstar (Rock-ola license)", "Eyes (Digitrex Techstar)" )
2347 GAME( 1982, eyes2,    eyes,     pacman,   eyes,     eyes,     ROT90,  "Techstar Inc. (Rock-ola license)", "Eyes (Techstar Inc.)" )
2348 GAME( 1983, mrtnt,    0,        pacman,   mrtnt,    eyes,     ROT90,  "Telko", "Mr. TNT" )
2349 GAME( 1985, lizwiz,   0,        pacman,   lizwiz,   0,        ROT90,  "Techstar (Sunn license)", "Lizard Wizard" )
2350 GAME( 1983, theglob,  0,        theglob,  theglob,  0,        ROT90,  "Epos Corporation", "The Glob" )
2351 GAME( 1984, beastf,   theglob,  theglob,  theglob,  0,        ROT90,  "Epos Corporation", "Beastie Feastie" )
2352 GAMEX(????, jumpshot, 0,        pacman,   pacman,   0,        ROT90,  "<unknown>", "Jump Shot", GAME_NOT_WORKING )	/* not working, encrypted */
2353 GAME( 1982, dremshpr, 0,        dremshpr, dremshpr, 0,        ROT270, "Sanritsu", "Dream Shopper" )
2354 GAME( 1983, vanvan,   0,        vanvan,   vanvan,   0,        ROT270, "Karateco", "Van Van Car" )
2355 GAME( 1983, vanvans,  vanvan,   vanvan,   vanvans,  0,        ROT270, "Sanritsu", "Van Van Car (Sanritsu)" )
2356 GAME( 1982, alibaba,  0,        alibaba,  alibaba,  0,        ROT90,  "Sega", "Ali Baba and 40 Thieves" )
2357