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