1 /***************************************************************************
2
3 Gottlieb driver : dedicated to Warren Davis, Jeff Lee, Tim Skelly & David Thiel
4
5 driver by Fabrice Frances & Nicola Salmoria
6
7 Notes:
8 There was a bug in the hardware of the GG1 and GG2 boards, which is not
9 emulated. The bug seems to have disappeared with the later revision of the
10 board, e.g the board used by 3Stooges and Mach3 don't seem to have it).
11 The bug was affecting the first character column (on horizontal games):
12 screen memory could be used, but whatever was stored in this column, always
13 the same character was displayed.
14 This led to two consequences:
15 - the image on the monitor had to be stretched so that the column was not
16 visible
17 - game designers were not using the first column. In fact, when the first
18 column was ejected from the screen, the last one was usually out too,
19 so it wasn't used either...
20
21 ****************************************************************************
22
23 Reactor: earlier version of the board, with a different memory map
24
25 Main processor (8088 minimum mode)
26 0000-1fff RAM (NOT battery backed unlike all the others)
27 2000-2fff sprites
28 3000-37ff video ram
29 4000-4fff char generator ram
30 6000-67ff palette ram (palette of 16 colors)
31 7000-77ff i/o ports
32 8000-ffff ROM
33
34 memory mapped ports:
35
36 read:
37 7000 Dip switch
38 7001 Inputs 10-17
39 7002 trackball H
40 7003 trackball V
41 7004 Inputs 40-47
42
43 write:
44 7000 watchdog reset
45 7001 trackball clear
46 7002 Outputs 20-27
47 7003 Flipflop outputs:
48 b0: F/B priority
49 b1: horiz. flip
50 b2: vert. flip
51 b3: Output 33
52 b4: coin counter
53 b5: left lamp (1P/3Lives start)
54 b6: middle lamps (2P/3Lives start, 1P/7Lives start)
55 b7: right lamp (2P/7Lives start)
56 7004 Outputs 40-47
57
58 interrupts:
59 INTR not connected
60 NMI connected to vertical blank
61
62
63
64 Gottlieb games memory map
65
66 Main processor (8088 minimum mode)
67 0000-0fff RAM (battery backed)
68 1000-1fff RAM or ROM (selected with jumpers on the board)
69 2000-2fff RAM or ROM (selected with jumpers on the board)
70 3000-37ff sprites. The manual says there are 63 sprites (NOT 64),
71 but the Q*Bert object priority test leaves sprite #63 dangling, so
72 they are probably only 62.
73 3800-3fff video RAM
74 4000-4fff char generator RAM (can be replaced by a ROM twice as large,
75 selection made with jumpers on the board. If it's ROM, the CPU
76 cannot fully access it, I think it could read half the data if it
77 wanted to but none of the games do that)
78 5000-57ff palette ram (palette of 16 colors)
79 5800-5fff i/o ports
80 6000-ffff ROM (not necessarily fully populated)
81
82 memory mapped ports:
83
84 read:
85 5800 Dip switch
86 5801 Inputs 10-17
87 5802 trackball H (optional)
88 5803 trackball V (optional)
89 5804 Inputs 40-47
90
91 write:
92 5800 watchdog reset
93 5801 trackball clear (optional)
94 5802 Outputs 20-27
95 5803 Flipflop outputs:
96 b0: F/B priority
97 b1: horiz. flip (sprite bank in Us vs. Them)
98 b2: vert. flip (maybe genlock control in the laser disc games)
99 b3: Output 33
100 b4: coin counter (sprite bank in Q*Bert Qubes)
101 b5: Q*Bert: kicker; Q*Bert Qubes: coin counter
102 b5/b6: 3 Stooges: joystick input multiplexer
103 b7: ?
104 5804 Outputs 40-47
105
106 interrupts:
107 INTR not connected
108 NMI connected to vertical blank
109
110
111
112 Sound processor (6502) memory map (earlier revision, used by games up to Krull):
113 0000-0fff RIOT (6532)
114 1000-1fff amplitude DAC
115 2000-2fff SC01 voice chip
116 3000-3fff voice clock DAC
117 4000-4fff expansion socket
118 5000-5fff expansion socket
119 6000-6fff expansion socket or ROM (selected with jumpers on the board)
120 7000-7fff ROM
121 (repeated in 8000-ffff, A15 only used in expansion socket)
122
123 Use of I/Os on the RIOT:
124 both ports A and B are programmed as inputs, A is connected to the main
125 motherboard, and B has SW1 (test) connected on bit 6.
126
127 interrupts:
128 INTR is connected to the RIOT, so an INTR can be generated by a variety
129 of sources, e.g active edge detection on PA7, or timer countdown.
130 It seems that all gottlieb games program the interrupt conditions so that
131 a positive active edge on PA7 triggers an interrupt, so the
132 main board ensures a command is correctly received by sending nul (0)
133 commands between two commands. Also, the timer interrupt is enabled but
134 doesn't seem to serve any purpose...(?)
135
136
137 In the later revision of the sound board, used from M.A.C.H. 3 onwards, there
138 are two 6502, two 8910, a DAC and a GI SP-0250 speech chip.
139
140
141 Video timings:
142 XTAL = 20 MHz
143 Horizontal video frequency: HSYNC = XTAL/4/318 = 15.72327 kHz
144 Video frequency: VSYNC = HSYNC/256 = 61.41903 Hz
145 VBlank duration: 1/VSYNC * (16/256) = 1017.6 us
146
147 ***************************************************************************/
148
149 #include "driver.h"
150 #include "vidhrdw/generic.h"
151
152 extern UINT8 *gottlieb_charram;
153
154 extern WRITE_HANDLER( gottlieb_videoram_w );
155 extern WRITE_HANDLER( gottlieb_charram_w );
156 extern WRITE_HANDLER( gottlieb_video_outputs_w );
157 extern WRITE_HANDLER( usvsthem_video_outputs_w );
158 extern WRITE_HANDLER( gottlieb_paletteram_w );
159
160 extern VIDEO_START( gottlieb );
161 extern VIDEO_UPDATE( gottlieb );
162
163 extern WRITE_HANDLER( gottlieb_sh_w );
164
165 extern UINT8 *riot_ram;
166 extern READ_HANDLER( riot_ram_r );
167 extern READ_HANDLER( gottlieb_riot_r );
168 extern WRITE_HANDLER( riot_ram_w );
169 extern WRITE_HANDLER( gottlieb_riot_w );
170 extern WRITE_HANDLER( gottlieb_speech_w );
171 extern WRITE_HANDLER( gottlieb_speech_clock_DAC_w );
172 extern void gottlieb_sound_init(void);
173 extern READ_HANDLER( stooges_sound_input_r );
174 extern WRITE_HANDLER( stooges_8910_latch_w );
175 extern WRITE_HANDLER( stooges_sound_control_w );
176 extern WRITE_HANDLER( gottlieb_nmi_rate_w );
177 extern WRITE_HANDLER( gottlieb_cause_dac_nmi_w );
178
179
180 static UINT8 *audiobuffer_region;
181
MACHINE_INIT(gottlieb)182 MACHINE_INIT( gottlieb )
183 {
184 UINT8 *ram = memory_region(REGION_CPU1);
185 cpu_setbank(1, &ram[0x8000]);
186 cpu_setbank(2, &ram[0x0000]);
187 audiobuffer_region = memory_region(REGION_USER1);
188 }
189
190
191 static int track[2];
192
READ_HANDLER(gottlieb_track_0_r)193 READ_HANDLER( gottlieb_track_0_r )
194 {
195 return input_port_2_r(offset) - track[0];
196 }
197
READ_HANDLER(gottlieb_track_1_r)198 READ_HANDLER( gottlieb_track_1_r )
199 {
200 return input_port_3_r(offset) - track[1];
201 }
202
WRITE_HANDLER(gottlieb_track_reset_w)203 WRITE_HANDLER( gottlieb_track_reset_w )
204 {
205 /* reset the trackball counters */
206 track[0] = input_port_2_r(offset);
207 track[1] = input_port_3_r(offset);
208 }
209
210 static int joympx;
211
READ_HANDLER(stooges_IN4_r)212 READ_HANDLER( stooges_IN4_r )
213 {
214 int joy;
215
216 switch (joympx)
217 {
218 case 0:
219 default:
220 joy = ((readinputport(4) >> 0) & 0x0f); /* joystick 1 */
221 break;
222 case 1:
223 joy = ((readinputport(5) >> 0) & 0x0f); /* joystick 2 */
224 break;
225 case 2:
226 joy = ((readinputport(5) >> 4) & 0x0f); /* joystick 3 */
227 break;
228 }
229
230 return joy | (readinputport(4) & 0xf0);
231 }
232
WRITE_HANDLER(reactor_output_w)233 WRITE_HANDLER( reactor_output_w )
234 {
235 set_led_status(0,data & 0x20);
236 set_led_status(1,data & 0x40);
237 set_led_status(2,data & 0x80);
238 gottlieb_video_outputs_w(offset,data);
239 }
240
WRITE_HANDLER(stooges_output_w)241 WRITE_HANDLER( stooges_output_w )
242 {
243 joympx = (data >> 5) & 0x03;
244 gottlieb_video_outputs_w(offset,data);
245 }
246
247
248 static int current_frame = 1;
249 static int laserdisc_playing;
250 static int lasermpx;
251 static int audioptr;
252 static int audioready=1;
253 static int skipfirstbyte;
254 static int discready;
255 static int lastcmd;
256 static int odd_field;
257 static int access_time;
258
259
260 /* The only sure thing I know about the Philips 24-bit frame number code is that the
261 * 4 most significant bits are 1's and these four 1's are used to detect a valid frame
262 * number when shifting bits from right to left...
263 * From the audio code it seems it's a simple BCD numbering...
264 * (what happens when four consecutive 1's are inside the number, eg 00078 ?)
265 * Only 19 bits are returned to the game machine, this gives a max frame number of 79999.
266 * The size of the audio buffer is 1024 bytes. When it is full, the "audio buffer ready"
267 * flag is raised, and the frame decoder tries again to synchronize with a 0x67 pattern
268 * Each 1024-byte buffer contains target data for 53 frames;
269 * target data for each frame is 19-bytes long including one byte of checksum
270 * and the frame number code of the first of these 53 frames is stored at the beginning
271 * This gives a total of 1+3+3+19*53=1014 bytes, the 10 last bytes are ignored
272 */
273
READ_HANDLER(gottlieb_laserdisc_status_r)274 READ_HANDLER( gottlieb_laserdisc_status_r )
275 {
276 int tmp;
277 switch (offset)
278 {
279 case 0:
280 tmp = current_frame % 100;
281 logerror("LSB frame read: %d\n",tmp);
282 return ((tmp / 10) << 4) | (tmp % 10);
283 break;
284 case 1:
285 tmp = (current_frame / 100) % 100;
286 logerror("MSB frame read: %d\n",tmp);
287 return ((tmp / 10) << 4) | (tmp % 10);
288 break;
289 case 2:
290 if (lasermpx == 1) {
291 /* bits 0-2 frame number MSN */
292 /* bit 3 audio buffer ready */
293 /* bit 4 ready to send new laserdisc command? */
294 /* bit 5 disc ready */
295 /* bit 6 break in audio trasmission */
296 /* bit 7 missing audio clock */
297 return ((current_frame / 10000) & 0x7) | (audioready << 3) | 0x10 | (discready << 5);
298 } else { /* read audio buffer */
299 if (skipfirstbyte) audioptr++;
300 skipfirstbyte = 0;
301 if (audiobuffer_region) {
302 logerror("audio bufread: %02x\n",audiobuffer_region[audioptr]);
303 return audiobuffer_region[audioptr++];
304 } else {
305 logerror("audiobuffer is null !!");
306 return 0xFF; /* don't know what to do in this case ;-) */
307 }
308 }
309 break;
310 }
311
312 return 0;
313 }
314
WRITE_HANDLER(gottlieb_laserdisc_mpx_w)315 WRITE_HANDLER( gottlieb_laserdisc_mpx_w )
316 {
317 lasermpx = data & 1;
318 if (lasermpx==0) skipfirstbyte=1; /* first byte of the 1K buffer (0x67) is not returned... */
319 }
320
WRITE_HANDLER(gottlieb_laserdisc_command_w)321 WRITE_HANDLER( gottlieb_laserdisc_command_w )
322 {
323 static int loop;
324 int cmd;
325
326 /* commands are written in three steps, the first two the command is */
327 /* written (maybe one to load the latch, the other to start the send), */
328 /* the third 0 (maybe to clear the latch) */
329 if (data == 0) return;
330 if (loop++ & 1) return;
331
332 if ((data & 0xe0) != 0x20)
333 {
334 logerror("error: laserdisc command %02x\n",data);
335 return;
336 }
337
338 cmd = ((data & 0x10) >> 4) |
339 ((data & 0x08) >> 2) |
340 ((data & 0x04) >> 0) |
341 ((data & 0x02) << 2) |
342 ((data & 0x01) << 4);
343
344 logerror("laserdisc command %02x -> %02x\n",data,cmd);
345 if (lastcmd == 0x0b && (cmd & 0x10)) /* seek frame # */
346 {
347 current_frame = current_frame * 10 + (cmd & 0x0f);
348 while (current_frame >= 100000)
349 current_frame -= 100000;
350 audioptr = -1;
351 }
352 else
353 {
354 if (cmd == 0x04) /* step forward */
355 {
356 laserdisc_playing = 0;
357 current_frame++;
358 }
359 if (cmd == 0x05) /* play */
360 {
361 laserdisc_playing = 1;
362 discready = 1;
363 }
364 if (cmd == 0x0b) /* seek frame */
365 {
366 laserdisc_playing = 0;
367 discready = 0;
368 access_time = 60; /* 1s access time */
369 }
370 if (cmd == 0x0f) /* stop */
371 {
372 laserdisc_playing = 0;
373 discready = 0;
374 }
375 lastcmd = cmd;
376 }
377 }
378
INTERRUPT_GEN(gottlieb_interrupt)379 INTERRUPT_GEN( gottlieb_interrupt )
380 {
381 if (access_time > 0) {
382 access_time--;
383 if (access_time == 0)
384 discready = 1;
385 } else if (laserdisc_playing) {
386 odd_field ^= 1;
387 if (odd_field) /* the manual says the video frame number is only present in the odd field) */
388 {
389 current_frame++;
390 logerror("current frame : %d\n",current_frame);
391
392 if (current_frame%53==0)
393 {
394 int seq = current_frame / 53;
395 if (seq >= 44) { /* 44*53 frames without target data at the beginning of the disc */
396 audioptr = (seq - 44)*1024;
397 audioready = 1;
398 }
399 }
400 else audioready = 0;
401 }
402 }
403 cpu_set_irq_line(0, IRQ_LINE_NMI, PULSE_LINE);
404 }
405
406
MEMORY_READ_START(reactor_readmem)407 static MEMORY_READ_START( reactor_readmem )
408 { 0x00000, 0x01fff, MRA_RAM },
409 { 0x03000, 0x033ff, MRA_RAM },
410 { 0x04000, 0x04fff, MRA_RAM },
411 { 0x07000, 0x07000, input_port_0_r }, /* DSW */
412 { 0x07001, 0x07001, input_port_1_r }, /* buttons */
413 { 0x07002, 0x07002, gottlieb_track_0_r }, /* trackball H */
414 { 0x07003, 0x07003, gottlieb_track_1_r }, /* trackball V */
415 { 0x07004, 0x07004, input_port_4_r }, /* joystick */
416 { 0x08000, 0x0ffff, MRA_ROM },
417 /* map the ROM into Fxxxx so we can boot */
418 { 0xf8000, 0xfffff, MRA_BANK1 },
419 MEMORY_END
420
421 static MEMORY_WRITE_START( reactor_writemem )
422 { 0x00000, 0x01fff, MWA_RAM },
423 { 0x02000, 0x020ff, MWA_RAM, &spriteram, &spriteram_size },
424 { 0x03000, 0x033ff, gottlieb_videoram_w, &videoram },
425 { 0x03400, 0x037ff, gottlieb_videoram_w }, /* mirror address, some games write to it */
426 { 0x04000, 0x04fff, gottlieb_charram_w, &gottlieb_charram },
427 { 0x06000, 0x0601f, gottlieb_paletteram_w, &paletteram },
428 { 0x07000, 0x07000, watchdog_reset_w },
429 { 0x07001, 0x07001, gottlieb_track_reset_w },
430 { 0x07002, 0x07002, gottlieb_sh_w }, /* sound/speech command */
431 { 0x07003, 0x07003, reactor_output_w }, /* OUT1 */
432 { 0x08000, 0x0ffff, MWA_ROM },
433 MEMORY_END
434
435 static MEMORY_READ_START( gottlieb_readmem )
436 { 0x00000, 0x00fff, MRA_RAM },
437 { 0x01000, 0x01fff, MRA_RAM }, /* or ROM */
438 { 0x02000, 0x02fff, MRA_RAM }, /* or ROM */
439 { 0x03800, 0x03bff, MRA_RAM },
440 { 0x04000, 0x04fff, MRA_RAM },
441 { 0x05800, 0x05800, input_port_0_r }, /* DSW */
442 { 0x05801, 0x05801, input_port_1_r }, /* buttons */
443 { 0x05802, 0x05802, gottlieb_track_0_r }, /* trackball H */
444 { 0x05803, 0x05803, gottlieb_track_1_r }, /* trackball V */
445 { 0x05804, 0x05804, input_port_4_r }, /* joystick */
446 { 0x05805, 0x05807, gottlieb_laserdisc_status_r },
447 { 0x06000, 0x0ffff, MRA_ROM },
448 /* Us vs Them and Q*bert Qubes use the Exxxx address space */
449 { 0xe5800, 0xe5800, input_port_0_r }, /* DSW */
450 { 0xe5801, 0xe5801, input_port_1_r }, /* buttons */
451 { 0xe5802, 0xe5802, gottlieb_track_0_r }, /* trackball H */
452 { 0xe5803, 0xe5803, gottlieb_track_1_r }, /* trackball V */
453 { 0xe5804, 0xe5804, input_port_4_r }, /* joystick */
454 { 0xe5805, 0xe5807, gottlieb_laserdisc_status_r },
455 { 0xe0000, 0xeffff, MRA_BANK2 },
456 /* map the ROM into Fxxxx so we can boot */
457 { 0xf8000, 0xfffff, MRA_BANK1 },
458 MEMORY_END
459
460 static MEMORY_WRITE_START( gottlieb_writemem )
461 { 0x00000, 0x00fff, MWA_RAM, &generic_nvram, &generic_nvram_size },
462 { 0x01000, 0x01fff, MWA_RAM }, /* ROM in Krull */
463 { 0x02000, 0x02fff, MWA_RAM }, /* ROM in Krull and 3 Stooges */
464 { 0x03000, 0x030ff, MWA_RAM, &spriteram, &spriteram_size },
465 { 0x03800, 0x03bff, gottlieb_videoram_w, &videoram },
466 { 0x03c00, 0x03fff, gottlieb_videoram_w }, /* mirror address, some games write to it */
467 { 0x04000, 0x04fff, gottlieb_charram_w, &gottlieb_charram },
468 { 0x05000, 0x0501f, gottlieb_paletteram_w, &paletteram },
469 { 0x05800, 0x05800, watchdog_reset_w },
470 { 0x05801, 0x05801, gottlieb_track_reset_w },
471 { 0x05802, 0x05802, gottlieb_sh_w }, /* sound/speech command */
472 { 0x05803, 0x05803, gottlieb_video_outputs_w }, /* OUT1 */
473 { 0x06000, 0x0ffff, MWA_ROM },
474 /* Q*bert Qubes uses the Exxxx address space */
475 { 0xe0000, 0xe37ff, MWA_BANK2 },
476 { 0xe3800, 0xe3bff, gottlieb_videoram_w },
477 { 0xe3c00, 0xe3fff, gottlieb_videoram_w }, /* mirror address, some games write to it */
478 { 0xe4000, 0xe4fff, gottlieb_charram_w },
479 { 0xe5000, 0xe501f, gottlieb_paletteram_w },
480 { 0xe5800, 0xe5800, watchdog_reset_w },
481 { 0xe5801, 0xe5801, gottlieb_track_reset_w },
482 { 0xe5802, 0xe5802, gottlieb_sh_w }, /* sound/speech command */
483 { 0xe5803, 0xe5803, gottlieb_video_outputs_w }, /* OUT1 */
484 MEMORY_END
485
486
487 /* same as above, different video_outputs plus laser disc control outputs */
488 static MEMORY_WRITE_START( usvsthem_writemem )
489 { 0x00000, 0x00fff, MWA_RAM, &generic_nvram, &generic_nvram_size },
490 { 0x01000, 0x01fff, MWA_RAM }, /* ROM in Krull */
491 { 0x02000, 0x02fff, MWA_RAM }, /* ROM in Krull and 3 Stooges */
492 { 0x03000, 0x030ff, MWA_RAM, &spriteram, &spriteram_size },
493 { 0x03800, 0x03bff, gottlieb_videoram_w, &videoram },
494 { 0x03c00, 0x03fff, gottlieb_videoram_w }, /* mirror address, some games write to it */
495 { 0x04000, 0x04fff, gottlieb_charram_w, &gottlieb_charram },
496 { 0x05000, 0x0501f, gottlieb_paletteram_w, &paletteram },
497 { 0x05800, 0x05800, watchdog_reset_w },
498 { 0x05801, 0x05801, gottlieb_track_reset_w },
499 { 0x05802, 0x05802, gottlieb_sh_w }, /* sound/speech command */
500 { 0x05803, 0x05803, usvsthem_video_outputs_w }, /* OUT1 */
501 { 0x05805, 0x05805, gottlieb_laserdisc_command_w }, /* command for the player */
502 { 0x05806, 0x05806, gottlieb_laserdisc_mpx_w },
503 { 0x06000, 0x0ffff, MWA_ROM },
504 /* Us vs Them uses the Exxxx address space */
505 { 0xe0000, 0xe37ff, MWA_BANK2 },
506 { 0xe3800, 0xe3bff, gottlieb_videoram_w },
507 { 0xe3c00, 0xe3fff, gottlieb_videoram_w }, /* mirror address, some games write to it */
508 { 0xe4000, 0xe4fff, gottlieb_charram_w },
509 { 0xe5000, 0xe501f, gottlieb_paletteram_w },
510 { 0xe5800, 0xe5800, watchdog_reset_w },
511 { 0xe5801, 0xe5801, gottlieb_track_reset_w },
512 { 0xe5802, 0xe5802, gottlieb_sh_w }, /* sound/speech command */
513 { 0xe5803, 0xe5803, usvsthem_video_outputs_w }, /* OUT1 */
514 { 0xe5805, 0xe5805, gottlieb_laserdisc_command_w }, /* command for the player */
515 { 0xe5806, 0xe5806, gottlieb_laserdisc_mpx_w },
516 MEMORY_END
517
518 /* same as above, different IN4 */
519 static MEMORY_READ_START( stooges_readmem )
520 { 0x00000, 0x00fff, MRA_RAM },
521 { 0x01000, 0x01fff, MRA_RAM },
522 { 0x02000, 0x02fff, MRA_ROM },
523 { 0x03800, 0x03bff, MRA_RAM },
524 { 0x04000, 0x04fff, MRA_RAM },
525 { 0x05800, 0x05800, input_port_0_r }, /* DSW */
526 { 0x05801, 0x05801, input_port_1_r }, /* buttons */
527 { 0x05802, 0x05802, gottlieb_track_0_r }, /* trackball H */
528 { 0x05803, 0x05803, gottlieb_track_1_r }, /* trackball V */
529 { 0x05804, 0x05804, stooges_IN4_r }, /* joystick */
530 { 0x06000, 0x0ffff, MRA_ROM },
531 /* map the ROM into Fxxxx so we can boot */
532 { 0xf8000, 0xfffff, MRA_BANK1 },
533 MEMORY_END
534
535 /* same as above, different video_outputs */
536 static MEMORY_WRITE_START( stooges_writemem )
537 { 0x00000, 0x00fff, MWA_RAM, &generic_nvram, &generic_nvram_size },
538 { 0x01000, 0x01fff, MWA_RAM },
539 { 0x02000, 0x02fff, MWA_ROM },
540 { 0x03000, 0x030ff, MWA_RAM, &spriteram, &spriteram_size },
541 { 0x03800, 0x03bff, gottlieb_videoram_w, &videoram },
542 { 0x03c00, 0x03fff, gottlieb_videoram_w }, /* mirror address, some games write to it */
543 { 0x04000, 0x04fff, gottlieb_charram_w, &gottlieb_charram },
544 { 0x05000, 0x0501f, gottlieb_paletteram_w, &paletteram },
545 { 0x05800, 0x05800, watchdog_reset_w },
546 { 0x05801, 0x05801, gottlieb_track_reset_w },
547 { 0x05802, 0x05802, gottlieb_sh_w }, /* sound/speech command */
548 { 0x05803, 0x05803, stooges_output_w }, /* OUT1 */
549 { 0x06000, 0x0ffff, MWA_ROM },
550 MEMORY_END
551
552
553
554 MEMORY_READ_START( gottlieb_sound_readmem )
555 { 0x0000, 0x01ff, riot_ram_r },
556 { 0x0200, 0x03ff, gottlieb_riot_r },
557 { 0x6000, 0x7fff, MRA_ROM },
558 /* A15 not decoded except in expansion socket */
559 { 0x8000, 0x81ff, riot_ram_r },
560 { 0x8200, 0x83ff, gottlieb_riot_r },
561 { 0xe000, 0xffff, MRA_ROM },
562 MEMORY_END
563
564 MEMORY_WRITE_START( gottlieb_sound_writemem )
565 { 0x0000, 0x01ff, riot_ram_w, &riot_ram },
566 { 0x0200, 0x03ff, gottlieb_riot_w },
567 { 0x1000, 0x1000, DAC_0_data_w },
568 { 0x2000, 0x2000, gottlieb_speech_w },
569 { 0x3000, 0x3000, gottlieb_speech_clock_DAC_w },
570 { 0x6000, 0x7fff, MWA_ROM },
571 /* A15 not decoded except in expansion socket */
572 { 0x8000, 0x81ff, riot_ram_w },
573 { 0x8200, 0x83ff, gottlieb_riot_w },
574 { 0x9000, 0x9000, DAC_0_data_w },
575 { 0xa000, 0xa000, gottlieb_speech_w },
576 { 0xb000, 0xb000, gottlieb_speech_clock_DAC_w },
577 { 0xe000, 0xffff, MWA_ROM },
578 MEMORY_END
579
580
581 static MEMORY_READ_START( stooges_sound_readmem )
582 { 0x0000, 0x03ff, MRA_RAM },
583 { 0x8000, 0x8000, soundlatch_r },
584 { 0xe000, 0xffff, MRA_ROM },
585 MEMORY_END
586
587 MEMORY_WRITE_START( stooges_sound_writemem )
588 { 0x0000, 0x03ff, MWA_RAM },
589 { 0x4000, 0x4001, DAC_0_data_w },
590 { 0xe000, 0xffff, MWA_ROM },
591 MEMORY_END
592
593
594 static MEMORY_READ_START( stooges_sound2_readmem )
595 { 0x0000, 0x03ff, MRA_RAM },
596 { 0x6000, 0x6000, stooges_sound_input_r }, /* various signals */
597 { 0xa800, 0xa800, soundlatch_r },
598 { 0xc000, 0xffff, MRA_ROM },
599 MEMORY_END
600
601 MEMORY_WRITE_START( stooges_sound2_writemem )
602 { 0x0000, 0x03ff, MWA_RAM },
603 { 0x2000, 0x2000, MWA_NOP }, /* speech chip. The game sends strings */
604 /* of 15 bytes (clocked by 4000). The chip also */
605 /* checks a DATA REQUEST bit in 6000. */
606 { 0x4000, 0x4000, stooges_sound_control_w },
607 { 0x8000, 0x8000, stooges_8910_latch_w },
608 { 0xa000, 0xa000, gottlieb_nmi_rate_w }, /* the timer generates NMIs */
609 { 0xb000, 0xb000, gottlieb_cause_dac_nmi_w },
610 { 0xc000, 0xffff, MWA_ROM },
611 MEMORY_END
612
613
614
615 INPUT_PORTS_START( reactor )
616 PORT_START /* DSW */
617 PORT_DIPNAME( 0x01, 0x01, "Sound with Logos" )
618 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
619 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
620 PORT_DIPNAME( 0x02, 0x02, "Bounce Chambers Points" )
621 PORT_DIPSETTING( 0x00, "10" )
622 PORT_DIPSETTING( 0x02, "15" )
623 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) )
624 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
625 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
626 PORT_DIPNAME( 0x08, 0x08, "Sound with Instructions" )
627 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
628 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
629 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
630 PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
631 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
632 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Coinage ) )
633 PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
634 PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) )
635 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) )
636 PORT_DIPSETTING( 0x00, "10000" )
637 PORT_DIPSETTING( 0x40, "12000" )
638 PORT_DIPSETTING( 0xc0, "15000" )
639 PORT_DIPSETTING( 0x80, "20000" )
640
641 PORT_START /* IN1 */
642 PORT_BITX(0x01, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
643 PORT_SERVICE( 0x02, IP_ACTIVE_LOW )
644 PORT_BIT ( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
645
646 PORT_START /* trackball H */
647 PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_X, 15, 20, 0, 0 )
648
649 PORT_START /* trackball V */
650 PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_Y, 15, 20, 0, 0 )
651
652 PORT_START /* IN4 */
653 PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
654 PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
655 PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
656 PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
657 PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
658 PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
659 PORT_BIT ( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
660 INPUT_PORTS_END
661
662 INPUT_PORTS_START( mplanets )
663 PORT_START /* DSW */
664 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
665 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
666 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
667 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) )
668 PORT_DIPSETTING( 0x00, "10000" )
669 PORT_DIPSETTING( 0x02, "12000" )
670 PORT_DIPNAME( 0x08, 0x00, "Allow Round Select" )
671 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
672 PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
673 PORT_DIPNAME( 0x14, 0x00, DEF_STR( Coinage ) )
674 PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
675 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
676 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
677 PORT_DIPSETTING( 0x14, DEF_STR( Free_Play ) )
678 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Lives ) )
679 PORT_DIPSETTING( 0x00, "3" )
680 PORT_DIPSETTING( 0x20, "5" )
681 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) )
682 PORT_DIPSETTING( 0x40, "Easy" )
683 PORT_DIPSETTING( 0x00, "Medium" )
684 PORT_DIPSETTING( 0x80, "Hard" )
685 PORT_DIPSETTING( 0xc0, "Hardest" )
686
687 PORT_START /* IN1 */
688 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
689 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
690 PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
691 PORT_BITX(0x40, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
692 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
693
694 PORT_START /* trackball H not used */
695 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
696
697 PORT_START /* trackball V (dial) */
698 PORT_ANALOGX( 0xff, 0x00, IPT_DIAL, 5, 10, 0, 0, KEYCODE_Z, KEYCODE_X, IP_JOY_NONE, IP_JOY_NONE )
699
700 PORT_START /* IN3 */
701 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
702 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
703 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
704 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
705 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
706 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
707 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
708 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 )
709 INPUT_PORTS_END
710
711 INPUT_PORTS_START( qbert )
712 PORT_START /* DSW */
713 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
714 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
715 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
716 PORT_DIPNAME( 0x02, 0x02, "Kicker" )
717 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
718 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
719 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
720 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
721 PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
722 PORT_BITX( 0x08, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Auto Round Advance", IP_KEY_NONE, IP_JOY_NONE )
723 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
724 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
725 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Free_Play ) )
726 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
727 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
728 PORT_DIPNAME( 0x20, 0x00, "SW5" )
729 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
730 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
731 PORT_DIPNAME( 0x40, 0x00, "SW7" )
732 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
733 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
734 PORT_DIPNAME( 0x80, 0x00, "SW8" )
735 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
736 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
737 PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
738 /* 0x40 must be connected to the IP16 line */
739
740 PORT_START /* buttons */
741 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
742 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
743 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
744 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
745 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
746 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
747 PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
748 PORT_BITX(0x80, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
749
750 PORT_START /* trackball H not used */
751 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
752
753 PORT_START /* trackball V not used */
754 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
755
756 PORT_START /* joystick */
757 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY )
758 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_4WAY )
759 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_4WAY )
760 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_4WAY )
761 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
762 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
763 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
764 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
765 INPUT_PORTS_END
766
767 INPUT_PORTS_START( qbertqub )
768 PORT_START /* DSW */
769 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
770 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
771 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
772 PORT_DIPNAME( 0x35, 0x00, DEF_STR( Coinage ) )
773 PORT_DIPSETTING( 0x24, "A 2/1 B 2/1" )
774 PORT_DIPSETTING( 0x14, "A 1/1 B 4/1" )
775 PORT_DIPSETTING( 0x30, "A 1/1 B 3/1" )
776 PORT_DIPSETTING( 0x10, "A 1/1 B 2/1" )
777 PORT_DIPSETTING( 0x00, "A 1/1 B 1/1" )
778 PORT_DIPSETTING( 0x11, "A 2/3 B 2/1" )
779 PORT_DIPSETTING( 0x15, "A 1/2 B 3/1" )
780 PORT_DIPSETTING( 0x20, "A 1/2 B 2/1" )
781 PORT_DIPSETTING( 0x21, "A 1/2 B 1/1" )
782 PORT_DIPSETTING( 0x31, "A 1/2 B 1/5" )
783 PORT_DIPSETTING( 0x04, "A 1/3 B 2/1" )
784 PORT_DIPSETTING( 0x05, "A 1/3 B 1/1" )
785 PORT_DIPSETTING( 0x35, DEF_STR( Free_Play ) )
786 /* 0x25 DEF_STR( 2C_1C )
787 0x01 DEF_STR( 1C_1C )
788 0x34 DEF_STR( Free_Play ) */
789 PORT_DIPNAME( 0x02, 0x00, "1st Bonus Life" )
790 PORT_DIPSETTING( 0x00, "10000" )
791 PORT_DIPSETTING( 0x02, "15000" )
792 PORT_DIPNAME( 0x40, 0x00, "Additional Bonus Life" )
793 PORT_DIPSETTING( 0x00, "20000" )
794 PORT_DIPSETTING( 0x40, "25000" )
795 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Difficulty ) )
796 PORT_DIPSETTING( 0x00, "Normal" )
797 PORT_DIPSETTING( 0x80, "Hard" )
798
799 PORT_START /* buttons */
800 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
801 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
802 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
803 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
804 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
805 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
806 PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
807 PORT_BITX(0x80, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
808
809 PORT_START /* trackball H not used */
810 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
811
812 PORT_START /* trackball V not used */
813 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
814
815 PORT_START /* joystick */
816 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY )
817 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_4WAY )
818 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_4WAY )
819 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_4WAY )
820 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
821 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
822 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
823 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
824 INPUT_PORTS_END
825
826 INPUT_PORTS_START( krull )
827 PORT_START /* DSW0 */
828 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
829 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
830 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
831 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Difficulty ) )
832 PORT_DIPSETTING( 0x00, "Normal" )
833 PORT_DIPSETTING( 0x02, "Hard" )
834 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Lives ) )
835 PORT_DIPSETTING( 0x00, "3" )
836 PORT_DIPSETTING( 0x08, "5" )
837 PORT_DIPNAME( 0x14, 0x00, DEF_STR( Coinage ) )
838 PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
839 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
840 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
841 PORT_DIPSETTING( 0x14, DEF_STR( Free_Play ) )
842 PORT_DIPNAME( 0x20, 0x00, "Hexagon" )
843 PORT_DIPSETTING( 0x00, "Roving" )
844 PORT_DIPSETTING( 0x20, "Stationary" )
845 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Bonus_Life ) )
846 PORT_DIPSETTING( 0x40, "30000 30000" )
847 PORT_DIPSETTING( 0x00, "30000 50000" )
848 PORT_DIPSETTING( 0x80, "40000 50000" )
849 PORT_DIPSETTING( 0xc0, "50000 75000" )
850
851 PORT_START /* IN0 */
852 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
853 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
854 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
855 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
856 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
857 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
858 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
859 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
860
861 PORT_START /* trackball H not used */
862 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
863
864 PORT_START /* trackball V not used */
865 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
866
867 PORT_START /* IN3 */
868 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP | IPF_8WAY )
869 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT | IPF_8WAY )
870 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN | IPF_8WAY )
871 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT | IPF_8WAY )
872 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP | IPF_8WAY )
873 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT | IPF_8WAY )
874 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN | IPF_8WAY )
875 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT | IPF_8WAY )
876 INPUT_PORTS_END
877
878 INPUT_PORTS_START( mach3 )
879 PORT_START /* DSW0 */
880 /* TODO: values are different for 5 lives */
881 PORT_DIPNAME( 0x09, 0x08, DEF_STR( Coinage ) )
882 PORT_DIPSETTING( 0x09, DEF_STR( 4C_1C ) )
883 PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
884 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
885 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
886 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Difficulty ) )
887 PORT_DIPSETTING( 0x00, "Normal" )
888 PORT_DIPSETTING( 0x02, "Hard" )
889 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives ) )
890 PORT_DIPSETTING( 0x00, "3" )
891 PORT_DIPSETTING( 0x10, "5" )
892 PORT_DIPNAME( 0x24, 0x00, DEF_STR( Bonus_Life ) )
893 PORT_DIPSETTING( 0x00, "10000 10000" )
894 PORT_DIPSETTING( 0x04, "10000 20000" )
895 PORT_DIPSETTING( 0x20, "10000 40000" )
896 PORT_DIPSETTING( 0x24, "20000 60000" )
897 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
898 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
899 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
900 PORT_BITX( 0x80, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
901 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
902 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
903
904 PORT_START /* IN0 */
905 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
906 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
907 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
908 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
909 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
910 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT )
911 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
912 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
913
914 PORT_START /* trackball H not used */
915 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
916
917 PORT_START /* trackball V not used */
918 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
919
920 PORT_START /* IN3 */
921 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
922 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
923 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
924 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
925 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
926 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 )
927 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 )
928 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
929 INPUT_PORTS_END
930
931 INPUT_PORTS_START( usvsthem )
932 PORT_START /* DSW0 */
933 /* TODO: values are different for 5 lives */
934 PORT_DIPNAME( 0x09, 0x00, DEF_STR( Coinage ) )
935 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
936 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
937 PORT_DIPSETTING( 0x01, DEF_STR( Free_Play ) )
938 /* PORT_DIPSETTING( 0x09, DEF_STR( Free_Play ) ) */
939 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
940 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
941 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
942 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) )
943 PORT_DIPSETTING( 0x00, "Normal" )
944 PORT_DIPSETTING( 0x04, "Hard" )
945 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
946 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
947 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
948 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
949 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
950 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
951 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
952 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
953 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
954 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
955 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
956 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
957
958 PORT_START /* IN0 */
959 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
960 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
961 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
962 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
963 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
964 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT )
965 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
966 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
967
968 PORT_START /* trackball H not used */
969 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
970
971 PORT_START /* trackball V not used */
972 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
973
974 PORT_START /* IN3 */
975 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
976 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
977 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
978 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
979 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
980 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
981 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 )
982 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
983 INPUT_PORTS_END
984
985 INPUT_PORTS_START( 3stooges )
986 PORT_START /* DSW */
987 PORT_DIPNAME (0x01, 0x00, DEF_STR( Demo_Sounds ) )
988 PORT_DIPSETTING ( 0x01, DEF_STR( Off ) )
989 PORT_DIPSETTING ( 0x00, DEF_STR( On ) )
990 PORT_DIPNAME (0x02, 0x00, DEF_STR( Difficulty ) )
991 PORT_DIPSETTING ( 0x00, "Normal" )
992 PORT_DIPSETTING ( 0x02, "Hard" )
993 PORT_DIPNAME (0x08, 0x00, DEF_STR( Lives ) )
994 PORT_DIPSETTING ( 0x00, "3" )
995 PORT_DIPSETTING ( 0x08, "5" )
996 PORT_DIPNAME (0x14, 0x00, DEF_STR( Coinage ) )
997 PORT_DIPSETTING ( 0x04, DEF_STR( 2C_1C ) )
998 PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) )
999 PORT_DIPSETTING ( 0x10, DEF_STR( 1C_2C ) )
1000 PORT_DIPSETTING ( 0x14, DEF_STR( Free_Play ) )
1001 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
1002 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1003 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1004 PORT_DIPNAME (0x40, 0x00, "1st Bonus Life at" )
1005 PORT_DIPSETTING ( 0x40, "10000" )
1006 PORT_DIPSETTING ( 0x00, "20000" )
1007 PORT_DIPNAME (0x80, 0x00, "And Bonus Life Every" )
1008 PORT_DIPSETTING ( 0x80, "10000" )
1009 PORT_DIPSETTING ( 0x00, "20000" )
1010
1011 PORT_START /* IN1 */
1012 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
1013 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
1014 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
1015 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1016 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT )
1017 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1018 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1019 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1020
1021 PORT_START /* trackball H not used */
1022 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1023
1024 PORT_START /* trackball V not used */
1025 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1026
1027 PORT_START /* joystick 2 (Moe) */
1028 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_PLAYER2 | IPF_8WAY )
1029 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
1030 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_PLAYER2 | IPF_8WAY )
1031 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_PLAYER2 | IPF_8WAY )
1032 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
1033 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
1034 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER3 )
1035 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1036
1037 /* the bottom four bits of the previous port are multiplexed among */
1038 /* three joysticks - the following port contains settings for the other two */
1039 PORT_START
1040 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_PLAYER3 | IPF_8WAY )
1041 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER3 | IPF_8WAY )
1042 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_PLAYER3 | IPF_8WAY )
1043 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_PLAYER3 | IPF_8WAY )
1044 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_PLAYER1 | IPF_8WAY )
1045 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
1046 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_PLAYER1 | IPF_8WAY )
1047 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_PLAYER1 | IPF_8WAY )
1048 INPUT_PORTS_END
1049
1050 INPUT_PORTS_START( curvebal )
1051 PORT_START /* DSW0 */
1052 PORT_DIPNAME( 0x08, 0x00, "2 Players Game" )
1053 PORT_DIPSETTING( 0x08, "1 Credit" )
1054 PORT_DIPSETTING( 0x00, "2 Credits" )
1055 PORT_DIPNAME( 0x11, 0x00, DEF_STR( Difficulty ) )
1056 PORT_DIPSETTING( 0x00, "Easy" )
1057 PORT_DIPSETTING( 0x10, "Medium" )
1058 PORT_DIPSETTING( 0x01, "Hard" )
1059 PORT_DIPSETTING( 0x11, "Hardest" )
1060 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) )
1061 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1062 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
1063 PORT_DIPNAME( 0x20, 0x00, "Coins" )
1064 PORT_DIPSETTING( 0x00, "Normal" )
1065 PORT_DIPSETTING( 0x20, "French" )
1066 /* TODO: coinage is different when French is selected */
1067 /* PORT_DIPNAME( 0xc2, 0x00, "French Coinage" )
1068 PORT_DIPSETTING( 0x42, "A 3/1 B 1/2" )
1069 PORT_DIPSETTING( 0x82, "A 1/5 B 1/2" )
1070 PORT_DIPSETTING( 0x02, "A 2/1 B 2/3" )
1071 PORT_DIPSETTING( 0xc0, "A 2/1 B 2/1" )
1072 PORT_DIPSETTING( 0x80, "A 1/1 B 1/2" )
1073 PORT_DIPSETTING( 0x40, "A 1/1 B 1/3" )
1074 PORT_DIPSETTING( 0x00, "A 1/1 B 1/1" )
1075 PORT_DIPSETTING( 0xc2, DEF_STR( Free_Play ) ) */
1076 PORT_DIPNAME( 0xc2, 0x00, DEF_STR( Coinage ) )
1077 PORT_DIPSETTING( 0x42, "A 4/1 B 1/1" )
1078 PORT_DIPSETTING( 0x82, "A 3/1 B 1/1" )
1079 PORT_DIPSETTING( 0x02, "A 2/1 B 1/1" )
1080 PORT_DIPSETTING( 0xc0, "A 2/1 B 2/1" )
1081 PORT_DIPSETTING( 0x80, "A 2/1 B 1/2" )
1082 PORT_DIPSETTING( 0x40, "A 2/1 B 1/3" )
1083 PORT_DIPSETTING( 0x00, "A 1/1 B 1/1" )
1084 PORT_DIPSETTING( 0xc2, DEF_STR( Free_Play ) )
1085
1086 PORT_START /* IN0 */
1087 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
1088 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
1089 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
1090 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
1091 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1092 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1093 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1094 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1095
1096 PORT_START /* trackball H not used */
1097 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1098
1099 PORT_START /* trackball V not used */
1100 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1101
1102 PORT_START /* IN3 */
1103 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1104 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1, "Swing", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
1105 PORT_BITX(0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2, "Pitch Left", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
1106 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1107 PORT_BITX(0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2, "Pitch Right", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
1108 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1109 PORT_BITX(0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1, "Bunt", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
1110 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1111 INPUT_PORTS_END
1112
1113 INPUT_PORTS_START( screwloo )
1114 PORT_START /* DSW0 */
1115 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
1116 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1117 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1118 PORT_DIPNAME( 0x02, 0x00, "Demo mode" )
1119 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1120 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1121 PORT_DIPNAME( 0x04, 0x00, "1st Bonus Atom at" )
1122 PORT_DIPSETTING( 0x00, "5000" )
1123 PORT_DIPSETTING( 0x04, "20000" )
1124 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Free_Play ) )
1125 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1126 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1127 PORT_DIPNAME( 0x50, 0x40, DEF_STR( Coinage ) )
1128 PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
1129 PORT_DIPSETTING( 0x10, DEF_STR( 2C_2C ) )
1130 PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
1131 PORT_DIPSETTING( 0x50, DEF_STR( 1C_2C ) )
1132 PORT_DIPNAME( 0x20, 0x00, "1st Bonus Hand at" )
1133 PORT_DIPSETTING( 0x00, "25000" )
1134 PORT_DIPSETTING( 0x20, "50000" )
1135 PORT_DIPNAME( 0x80, 0x00, "Hands" )
1136 PORT_DIPSETTING( 0x00, "3" )
1137 PORT_DIPSETTING( 0x80, "5" )
1138
1139 PORT_START /* IN0 */
1140 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
1141 PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_SERVICE, "Select in Service Mode", KEYCODE_F1, IP_JOY_NONE )
1142 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
1143 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
1144 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT | IPF_8WAY )
1145 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT | IPF_8WAY )
1146 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN | IPF_8WAY )
1147 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP | IPF_8WAY )
1148
1149 PORT_START /* trackball H not used */
1150 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1151
1152 PORT_START /* trackball V not used */
1153 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1154
1155 PORT_START /* IN3 */
1156 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT | IPF_8WAY )
1157 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT | IPF_8WAY )
1158 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN | IPF_8WAY )
1159 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP | IPF_8WAY )
1160 PORT_BITX(0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1, "Start 2P", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
1161 PORT_BITX(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1, "Start 1P", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
1162 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1163 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1164 INPUT_PORTS_END
1165
1166 INPUT_PORTS_START( insector )
1167 PORT_START /* DSW0 */
1168 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Bonus_Life ) )
1169 PORT_DIPSETTING( 0x00, "25000" )
1170 PORT_DIPSETTING( 0x01, "30000" )
1171 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
1172 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1173 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1174 PORT_DIPNAME( 0x04, 0x00, "Demo mode" )
1175 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1176 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
1177 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
1178 PORT_DIPSETTING( 0x08, "3" )
1179 PORT_DIPSETTING( 0x00, "5" )
1180 PORT_DIPNAME( 0x50, 0x00, DEF_STR( Coinage ) )
1181 PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
1182 PORT_DIPSETTING( 0x50, DEF_STR( 2C_2C ) )
1183 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1184 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
1185 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Free_Play ) )
1186 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1187 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1188 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
1189 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
1190 PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
1191
1192 PORT_START /* IN0 */
1193 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
1194 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
1195 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
1196 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
1197 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
1198 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_COCKTAIL )
1199 PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
1200 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1201
1202 PORT_START /* trackball H not used */
1203 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1204
1205 PORT_START /* trackball V not used */
1206 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1207
1208 PORT_START /* IN3 */
1209 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
1210 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
1211 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
1212 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
1213 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
1214 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
1215 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
1216 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
1217 INPUT_PORTS_END
1218
1219
1220
1221 /* the games can store char gfx data in either a 4k RAM area (128 chars), or */
1222 /* a 8k ROM area (256 chars). */
1223 static struct GfxLayout charRAMlayout =
1224 {
1225 8,8, /* 8*8 characters */
1226 128, /* 128 characters */
1227 4, /* 4 bits per pixel */
1228 { 0, 1, 2, 3 },
1229 { 0, 4, 8, 12, 16, 20, 24, 28},
1230 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
1231 32*8 /* every char takes 32 consecutive bytes */
1232 };
1233
1234 static struct GfxLayout charROMlayout =
1235 {
1236 8,8, /* 8*8 characters */
1237 256, /* 256 characters */
1238 4, /* 4 bits per pixel */
1239 { 0, 1, 2, 3 },
1240 { 0, 4, 8, 12, 16, 20, 24, 28},
1241 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
1242 32*8 /* every char takes 32 consecutive bytes */
1243 };
1244
1245 static struct GfxLayout spritelayout =
1246 {
1247 16,16,
1248 RGN_FRAC(1,4),
1249 4, /* 4 bits per pixel */
1250 { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) },
1251 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
1252 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
1253 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
1254 32*8
1255 };
1256
1257 static struct GfxDecodeInfo charRAM_gfxdecodeinfo[] =
1258 {
1259 { 0, 0x4000, &charRAMlayout, 0, 1 }, /* the game dynamically modifies this */
1260 { REGION_GFX2, 0x0000, &spritelayout, 0, 1 },
1261 { -1 } /* end of array */
1262 };
1263
1264 static struct GfxDecodeInfo charROM_gfxdecodeinfo[] =
1265 {
1266 { REGION_GFX1, 0x0000, &charROMlayout, 0, 1 },
1267 { REGION_GFX2, 0x0000, &spritelayout, 0, 1 },
1268 { -1 } /* end of array */
1269 };
1270
1271
1272
1273 static struct DACinterface dac1_interface =
1274 {
1275 1,
1276 { 50 }
1277 };
1278
1279 static struct DACinterface dac2_interface =
1280 {
1281 2,
1282 { 25, 25 }
1283 };
1284
1285 static const char *reactor_sample_names[] =
1286 {
1287 "*reactor",
1288 "fx_53.wav", /* "8 left" */
1289 "fx_54.wav", /* "16 left" */
1290 "fx_55.wav", /* "24 left" */
1291 "fx_56.wav", /* "32 left" */
1292 "fx_57.wav", /* "40 left" */
1293 "fx_58.wav", /* "warning, core unstable" */
1294 "fx_59.wav", /* "bonus" */
1295 "fx_31.wav", /* "chamber activated" */
1296 "fx_39a.wav", /* "2000" */
1297 "fx_39b.wav", /* "5000" */
1298 "fx_39c.wav", /* "10000" */
1299 "fx_39d.wav", /* "15000" */
1300 "fx_39e.wav", /* "20000" */
1301 "fx_39f.wav", /* "25000" */
1302 "fx_39g.wav", /* "30000" */
1303 "fx_39h.wav", /* "35000" */
1304 "fx_39i.wav", /* "40000" */
1305 "fx_39j.wav", /* "45000" */
1306 "fx_39k.wav", /* "50000" */
1307 "fx_39l.wav", /* "55000" */
1308 0 /* end of array */
1309 };
1310
1311 static const char *qbert_sample_names[] =
1312 {
1313 "*qbert",
1314 "fx_17a.wav", /* random speech, voice clock 255 */
1315 "fx_17b.wav", /* random speech, voice clock 255 */
1316 "fx_17c.wav", /* random speech, voice clock 255 */
1317 "fx_17d.wav", /* random speech, voice clock 255 */
1318 "fx_17e.wav", /* random speech, voice clock 255 */
1319 "fx_17f.wav", /* random speech, voice clock 255 */
1320 "fx_17g.wav", /* random speech, voice clock 255 */
1321 "fx_17h.wav", /* random speech, voice clock 255 */
1322 "fx_18a.wav", /* random speech, voice clock 176 */
1323 "fx_18b.wav", /* random speech, voice clock 176 */
1324 "fx_18c.wav", /* random speech, voice clock 176 */
1325 "fx_18d.wav", /* random speech, voice clock 176 */
1326 "fx_18e.wav", /* random speech, voice clock 176 */
1327 "fx_18f.wav", /* random speech, voice clock 176 */
1328 "fx_18g.wav", /* random speech, voice clock 176 */
1329 "fx_18h.wav", /* random speech, voice clock 176 */
1330 "fx_19a.wav", /* random speech, voice clock 128 */
1331 "fx_19b.wav", /* random speech, voice clock 128 */
1332 "fx_19c.wav", /* random speech, voice clock 128 */
1333 "fx_19d.wav", /* random speech, voice clock 128 */
1334 "fx_19e.wav", /* random speech, voice clock 128 */
1335 "fx_19f.wav", /* random speech, voice clock 128 */
1336 "fx_19g.wav", /* random speech, voice clock 128 */
1337 "fx_19h.wav", /* random speech, voice clock 128 */
1338 "fx_20a.wav", /* random speech, voice clock 96 */
1339 "fx_20b.wav", /* random speech, voice clock 96 */
1340 "fx_20c.wav", /* random speech, voice clock 96 */
1341 "fx_20d.wav", /* random speech, voice clock 96 */
1342 "fx_20e.wav", /* random speech, voice clock 96 */
1343 "fx_20f.wav", /* random speech, voice clock 96 */
1344 "fx_20g.wav", /* random speech, voice clock 96 */
1345 "fx_20h.wav", /* random speech, voice clock 96 */
1346 "fx_21a.wav", /* random speech, voice clock 62 */
1347 "fx_21b.wav", /* random speech, voice clock 62 */
1348 "fx_21c.wav", /* random speech, voice clock 62 */
1349 "fx_21d.wav", /* random speech, voice clock 62 */
1350 "fx_21e.wav", /* random speech, voice clock 62 */
1351 "fx_21f.wav", /* random speech, voice clock 62 */
1352 "fx_21g.wav", /* random speech, voice clock 62 */
1353 "fx_21h.wav", /* random speech, voice clock 62 */
1354 "fx_22.wav", /* EH2 with decreasing voice clock */
1355 "fx_23.wav", /* O1 with varying voice clock */
1356 "fx_28.wav", /* "hello, I'm ready" */
1357 "fx_36.wav", /* "byebye" */
1358 "knocker.wav",
1359 0 /* end of array */
1360 };
1361
1362 static struct Samplesinterface qbert_samples_interface =
1363 {
1364 1, /* one channel */
1365 100, /* volume */
1366 qbert_sample_names
1367 };
1368
1369 static struct Samplesinterface reactor_samples_interface =
1370 {
1371 1, /* one channel */
1372 100, /* volume */
1373 reactor_sample_names
1374 };
1375
1376 #define gottlieb_samples_interface qbert_samples_interface /* not used */
1377 #define krull_samples_interface qbert_samples_interface /* not used */
1378
1379
1380 static struct AY8910interface ay8910_interface =
1381 {
1382 2, /* 2 chips */
1383 2000000, /* 2 MHz */
1384 { 25, 25 },
1385 { 0 },
1386 { 0 },
1387 { 0 },
1388 { 0 }
1389 };
1390
1391
1392
1393 /********************************************************************
1394 *
1395 * Machine Driver macro
1396 * ====================
1397 *
1398 * There are two versions of the machine driver,
1399 * one for revision 1 sound board (1x6502 + DAC + Votrax),
1400 * one for revision 2 (2x6502 + DAC + GI SP-0250 speech chip + 2x8910).
1401 * They are identical apart form the sound CPU subsections.
1402 *
1403 ********************************************************************/
1404
1405 /* games using the revision 1 sound board */
1406 static MACHINE_DRIVER_START( gottlieb )
1407
1408 /* basic machine hardware */
1409 MDRV_CPU_ADD_TAG("main", I86, 5000000) /* 5 MHz */
MDRV_CPU_MEMORY(gottlieb_readmem,gottlieb_writemem)1410 MDRV_CPU_MEMORY(gottlieb_readmem,gottlieb_writemem)
1411 MDRV_CPU_VBLANK_INT(gottlieb_interrupt,1)
1412
1413 MDRV_CPU_ADD_TAG("sound", M6502, 3579545/4) /* the board can be set to /2 as well */
1414 MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
1415 MDRV_CPU_MEMORY(gottlieb_sound_readmem,gottlieb_sound_writemem)
1416 /* NMIs are triggered by the Votrax SC-01 */
1417 MDRV_FRAMES_PER_SECOND(61)
1418 MDRV_VBLANK_DURATION(1018) /* frames per second, vblank duration */
1419
1420 MDRV_MACHINE_INIT(gottlieb)
1421 MDRV_NVRAM_HANDLER(generic_1fill)
1422
1423 /* video hardware */
1424 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1425 MDRV_SCREEN_SIZE(32*8, 32*8)
1426 MDRV_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
1427 MDRV_GFXDECODE(charROM_gfxdecodeinfo)
1428 MDRV_PALETTE_LENGTH(16)
1429
1430 MDRV_VIDEO_START(gottlieb)
1431 MDRV_VIDEO_UPDATE(gottlieb)
1432
1433 /* sound hardware */
1434 MDRV_SOUND_ADD(DAC, dac1_interface)
1435 MACHINE_DRIVER_END
1436
1437
1438 static MACHINE_DRIVER_START( reactor )
1439
1440 /* basic machine hardware */
1441 MDRV_IMPORT_FROM(gottlieb)
1442 MDRV_CPU_MODIFY("main")
1443 MDRV_CPU_MEMORY(reactor_readmem, reactor_writemem)
1444
1445 MDRV_NVRAM_HANDLER(NULL)
1446
1447 /* video hardware */
1448 MDRV_GFXDECODE(charRAM_gfxdecodeinfo)
1449 MDRV_SOUND_ADD(SAMPLES, reactor_samples_interface)
1450 MACHINE_DRIVER_END
1451
1452
1453 static MACHINE_DRIVER_START( qbert )
1454
1455 /* basic machine hardware */
1456 MDRV_IMPORT_FROM(gottlieb)
1457
1458 /* video hardware */
1459 MDRV_SOUND_ADD(SAMPLES, qbert_samples_interface)
1460 MACHINE_DRIVER_END
1461
1462
1463 static MACHINE_DRIVER_START( krull )
1464
1465 /* basic machine hardware */
1466 MDRV_IMPORT_FROM(gottlieb)
1467
1468 /* video hardware */
1469 MDRV_GFXDECODE(charRAM_gfxdecodeinfo)
1470 MACHINE_DRIVER_END
1471
1472
1473 /* games using the revision 2 sound board */
1474 static MACHINE_DRIVER_START( gottlieb2 )
1475
1476 /* basic machine hardware */
1477 MDRV_CPU_ADD_TAG("main", I86, 5000000) /* 5 MHz */
1478 MDRV_CPU_MEMORY(gottlieb_readmem,gottlieb_writemem)
1479 MDRV_CPU_VBLANK_INT(gottlieb_interrupt,1)
1480
1481 MDRV_CPU_ADD_TAG("sound", M6502, 1000000) /* 1 MHz */
1482 MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
1483 MDRV_CPU_MEMORY(stooges_sound_readmem,stooges_sound_writemem)
1484
1485 MDRV_CPU_ADD_TAG("sound2", M6502, 1000000) /* 1 MHz */
1486 MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
1487 MDRV_CPU_MEMORY(stooges_sound2_readmem,stooges_sound2_writemem)
1488 /* NMIs are triggered by the Votrax SC-01 */
1489 MDRV_FRAMES_PER_SECOND(61)
1490 MDRV_VBLANK_DURATION(1018) /* frames per second, vblank duration */
1491
1492 MDRV_MACHINE_INIT(gottlieb)
1493 MDRV_NVRAM_HANDLER(generic_1fill)
1494
1495 /* video hardware */
1496 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1497 MDRV_SCREEN_SIZE(32*8, 32*8)
1498 MDRV_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
1499 MDRV_GFXDECODE(charROM_gfxdecodeinfo)
1500 MDRV_PALETTE_LENGTH(16)
1501
1502 MDRV_VIDEO_START(gottlieb)
1503 MDRV_VIDEO_UPDATE(gottlieb)
1504
1505 /* sound hardware */
1506 MDRV_SOUND_ADD(DAC, dac2_interface)
1507 MDRV_SOUND_ADD(AY8910, ay8910_interface)
1508 MACHINE_DRIVER_END
1509
1510
1511 static MACHINE_DRIVER_START( mach3 )
1512
1513 /* basic machine hardware */
1514 MDRV_IMPORT_FROM(gottlieb2)
1515 MDRV_CPU_MODIFY("main")
1516 MDRV_CPU_MEMORY(gottlieb_readmem,usvsthem_writemem)
1517 MACHINE_DRIVER_END
1518
1519
1520 static MACHINE_DRIVER_START( usvsthem )
1521
1522 /* basic machine hardware */
1523 MDRV_IMPORT_FROM(mach3)
1524 MACHINE_DRIVER_END
1525
1526
1527 static MACHINE_DRIVER_START( stooges )
1528
1529 /* basic machine hardware */
1530 MDRV_IMPORT_FROM(gottlieb2)
1531 MDRV_CPU_MODIFY("main")
1532 MDRV_CPU_MEMORY(stooges_readmem,stooges_writemem)
1533
1534 /* video hardware */
1535 MDRV_GFXDECODE(charRAM_gfxdecodeinfo)
1536 MACHINE_DRIVER_END
1537
1538
1539 /***************************************************************************
1540
1541 Game driver(s)
1542
1543 ***************************************************************************/
1544
1545 ROM_START( reactor )
1546 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1547 ROM_LOAD( "rom7", 0x8000, 0x1000, CRC(a62d86fd) SHA1(9ffce668c6f0155568ccb62a6f12a9513f3c513f) )
1548 ROM_LOAD( "rom6", 0x9000, 0x1000, CRC(6ed841f3) SHA1(b94272457e6a2d0ec46b510d71d69b4ab92a44aa) )
1549 ROM_LOAD( "rom5", 0xa000, 0x1000, CRC(d90576a3) SHA1(52af7164dc59b9f7d8a1b3ef9d4c1fc81496899f) )
1550 ROM_LOAD( "rom4", 0xb000, 0x1000, CRC(0155daae) SHA1(3a94952c2830c7bea126cf39b84108936d96dc0e) )
1551 ROM_LOAD( "rom3", 0xc000, 0x1000, CRC(f8881385) SHA1(baa7ef7309aab9b382442b25ede5d7ecd6e2c370) )
1552 ROM_LOAD( "rom2", 0xd000, 0x1000, CRC(3caba35b) SHA1(4d3b894821a2cff0ef55cec2b1f62f2e33009b4d) )
1553 ROM_LOAD( "rom1", 0xe000, 0x1000, CRC(944e1ddf) SHA1(6b487f1cb405e2ba9345190e8ab6022c790882c1) )
1554 ROM_LOAD( "rom0", 0xf000, 0x1000, CRC(55930aed) SHA1(37ed60386935741e8cc0b8750bfcdf6f54c1bf9e) )
1555
1556 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1557 ROM_LOAD( "snd1", 0xf000, 0x800, CRC(d958a0fd) SHA1(3c383076c68a929f96d844e89b09f3075f331906) )
1558 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1559 ROM_LOAD( "snd2", 0xf800, 0x800, CRC(5dc86942) SHA1(a449fcfb25521a0e7523184518b5204dac56e5f8) )
1560 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1561
1562 /* no gfx1 (RAM is used) */
1563
1564 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1565 /* 0000-0fff empty */
1566 ROM_LOAD( "fg3", 0x1000, 0x1000, CRC(8416ad53) SHA1(f868259b97675e58b6a7f1dc3c2a4ecf6aa0570e) ) /* sprites */
1567 /* 2000-2fff empty */
1568 ROM_LOAD( "fg2", 0x3000, 0x1000, CRC(5489605a) SHA1(f4bbaaa8cd881dc164b118d1e516edeeea54c1d8) )
1569 /* 4000-4fff empty */
1570 ROM_LOAD( "fg1", 0x5000, 0x1000, CRC(18396c57) SHA1(39d90a842a03091414ed58d4128b524ecc20c9f1) )
1571 /* 6000-6fff empty */
1572 ROM_LOAD( "fg0", 0x7000, 0x1000, CRC(d1f20e15) SHA1(dba9aa0fec8b720a33d78b3dd1d7f74040048f7e) )
1573 ROM_END
1574
1575 ROM_START( mplanets )
1576 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1577 ROM_LOAD( "rom4", 0x6000, 0x2000, CRC(5402077f) SHA1(f4e8699ab3c6dfc0f86b6df86d2a5b35caf2ca73) )
1578 ROM_LOAD( "rom3", 0x8000, 0x2000, CRC(5d18d740) SHA1(30307d98704c49dec5aecd0a1ec2f06f1869a5d2) )
1579 ROM_LOAD( "rom2", 0xa000, 0x2000, CRC(960c3bb1) SHA1(305a7904fa8c0b9823ad186d1c5c7460c0900bad) )
1580 ROM_LOAD( "rom1", 0xc000, 0x2000, CRC(eb515f10) SHA1(31c3519328eba7adc4a3b0adcc0384f606d81a57) )
1581 ROM_LOAD( "rom0", 0xe000, 0x2000, CRC(74de78aa) SHA1(7ebd02e660c1413eff284a7ca77feeff41c1e2b7) )
1582
1583 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1584 ROM_LOAD( "snd1", 0xf000, 0x800, CRC(453193a1) SHA1(317ec81f71661eaa92624c0304a52b635dcd5613) )
1585 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1586 ROM_LOAD( "snd2", 0xf800, 0x800, CRC(f5ffc98f) SHA1(516e895df94942fc51f1b51eb9316d4296df82e7) )
1587 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1588
1589 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1590 ROM_LOAD( "bg0", 0x0000, 0x1000, CRC(709aa24c) SHA1(95be072bf63320f4b44feaf88003ba011754e20f) ) /* chars */
1591 ROM_LOAD( "bg1", 0x1000, 0x1000, CRC(4921e345) SHA1(7b6e03458222be501ed150ffbd489433027fc6cb) )
1592
1593 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1594 ROM_LOAD( "fg3", 0x0000, 0x2000, CRC(c990b39f) SHA1(d1b6060744b78df430e914504b20e8693829bbd5) ) /* sprites */
1595 ROM_LOAD( "fg2", 0x2000, 0x2000, CRC(735e2522) SHA1(9fac59e9b1d81695d3da32107d640726cf96e31a) )
1596 ROM_LOAD( "fg1", 0x4000, 0x2000, CRC(6456cc1c) SHA1(12c20f0ce49a7d3579049e8ba95e542c4aaee241) )
1597 ROM_LOAD( "fg0", 0x6000, 0x2000, CRC(a920e325) SHA1(60f15d5014a55d9c18b06c17c7587d45716619e4) )
1598 ROM_END
1599
1600 ROM_START( mplanuk )
1601 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1602 ROM_LOAD( "mpt_rom4.bin", 0x6000, 0x2000, CRC(cd88e23c) SHA1(03222e2600f7fb1c6844340d4a56eedfcdeaa3c8) )
1603 ROM_LOAD( "mpt_rom3.bin", 0x8000, 0x2000, CRC(dc355b2d) SHA1(ae3e376afc7a8cb049d0dd28bf3959cb76780999) )
1604 ROM_LOAD( "mpt_rom2.bin", 0xa000, 0x2000, CRC(846ddc23) SHA1(eed771d14b195e09f3aac713d19b3919c6c90ed6) )
1605 ROM_LOAD( "mpt_rom1.bin", 0xc000, 0x2000, CRC(94d67b87) SHA1(2cbf09f0ba3b6769de90d8f61913fec3010553e2) )
1606 ROM_LOAD( "mpt_rom0.bin", 0xe000, 0x2000, CRC(a9e30ad2) SHA1(39d830dda92ab5a6dbb44943be92bca0464e64e0) )
1607
1608 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1609 ROM_LOAD( "mpt_snd1.bin", 0xf000, 0x800, CRC(453193a1) SHA1(317ec81f71661eaa92624c0304a52b635dcd5613) )
1610 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1611 ROM_LOAD( "mpt_snd2.bin", 0xf800, 0x800, CRC(f5ffc98f) SHA1(516e895df94942fc51f1b51eb9316d4296df82e7) )
1612 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1613
1614 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1615 ROM_LOAD( "mpt_bg0.bin", 0x0000, 0x1000, CRC(709aa24c) SHA1(95be072bf63320f4b44feaf88003ba011754e20f) ) /* chars */
1616 ROM_LOAD( "mpt_bg1.bin", 0x1000, 0x1000, CRC(4921e345) SHA1(7b6e03458222be501ed150ffbd489433027fc6cb) )
1617
1618 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1619 ROM_LOAD( "mpt_fg3.bin", 0x0000, 0x2000, CRC(c990b39f) SHA1(d1b6060744b78df430e914504b20e8693829bbd5) ) /* sprites */
1620 ROM_LOAD( "mpt_fg2.bin", 0x2000, 0x2000, CRC(735e2522) SHA1(9fac59e9b1d81695d3da32107d640726cf96e31a) )
1621 ROM_LOAD( "mpt_fg1.bin", 0x4000, 0x2000, CRC(6456cc1c) SHA1(12c20f0ce49a7d3579049e8ba95e542c4aaee241) )
1622 ROM_LOAD( "mpt_fg0.bin", 0x6000, 0x2000, CRC(a920e325) SHA1(60f15d5014a55d9c18b06c17c7587d45716619e4) )
1623 ROM_END
1624
1625 ROM_START( qbert )
1626 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1627 ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
1628 ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
1629 ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) )
1630
1631 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1632 ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
1633 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1634 ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
1635 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1636
1637 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1638 ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
1639 ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
1640
1641 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1642 ROM_LOAD( "qb-fg3.bin", 0x0000, 0x2000, CRC(dd436d3a) SHA1(ae16087a6ceec84551b5d7aae4036e0ed432cbb7) ) /* sprites */
1643 ROM_LOAD( "qb-fg2.bin", 0x2000, 0x2000, CRC(f69b9483) SHA1(06894a1474c79c1274efbd32d7371179e7e0a661) )
1644 ROM_LOAD( "qb-fg1.bin", 0x4000, 0x2000, CRC(224e8356) SHA1(f7f26b879aa8b964ff6311136ed8157e44de736c) )
1645 ROM_LOAD( "qb-fg0.bin", 0x6000, 0x2000, CRC(2f695b85) SHA1(807d16459838f129e10b913890bbc95065d5dd40) )
1646 ROM_END
1647
1648 ROM_START( qbertjp )
1649 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1650 ROM_LOAD( "qbj-rom2.bin", 0xa000, 0x2000, CRC(67bb1cb2) SHA1(23a7f8c86d6db9220a98b3f630c5d000e80f2d53) )
1651 ROM_LOAD( "qbj-rom1.bin", 0xc000, 0x2000, CRC(c61216e7) SHA1(e727b85dddc2963e33af6c02b675243f6fbe2710) )
1652 ROM_LOAD( "qbj-rom0.bin", 0xe000, 0x2000, CRC(69679d5c) SHA1(996d45517d0c01a1952fead05dbe201dbb7dca35) )
1653
1654 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1655 ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
1656 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1657 ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
1658 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1659
1660 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1661 ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
1662 ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
1663
1664 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1665 ROM_LOAD( "qb-fg3.bin", 0x0000, 0x2000, CRC(dd436d3a) SHA1(ae16087a6ceec84551b5d7aae4036e0ed432cbb7) ) /* sprites */
1666 ROM_LOAD( "qb-fg2.bin", 0x2000, 0x2000, CRC(f69b9483) SHA1(06894a1474c79c1274efbd32d7371179e7e0a661) )
1667 ROM_LOAD( "qb-fg1.bin", 0x4000, 0x2000, CRC(224e8356) SHA1(f7f26b879aa8b964ff6311136ed8157e44de736c) )
1668 ROM_LOAD( "qb-fg0.bin", 0x6000, 0x2000, CRC(2f695b85) SHA1(807d16459838f129e10b913890bbc95065d5dd40) )
1669 ROM_END
1670
1671 ROM_START( myqbert )
1672 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1673 ROM_LOAD( "mqb-rom2.bin", 0xa000, 0x2000, CRC(6860f957) SHA1(ebd68aeb6d54868295bd20cf64ee0187a52df0e3) )
1674 ROM_LOAD( "mqb-rom1.bin", 0xc000, 0x2000, CRC(11f0a4e4) SHA1(a805e51c40042fae209ace277abd9b35a990905b) )
1675 ROM_LOAD( "mqb-rom0.bin", 0xe000, 0x2000, CRC(12a90cb2) SHA1(a33203aea79fe43d1233a16e3fdddaceac6e4a20) )
1676
1677 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1678 ROM_LOAD( "mqb-snd1.bin", 0xf000, 0x800, CRC(e704b450) SHA1(d509f54658e9f0264b9ab865a6f36e5423a28904) )
1679 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1680 ROM_LOAD( "mqb-snd2.bin", 0xf800, 0x800, CRC(c6a98bf8) SHA1(cc5b5bb5966f5d79226f1f665a3f9fc934f4ef7f) )
1681 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1682
1683 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1684 ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
1685 ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
1686
1687 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1688 ROM_LOAD( "mqb-fg3.bin", 0x0000, 0x2000, CRC(8b5d0852) SHA1(e2cf1679a7ec9e88b254b0a8d690a74d88db0cdc) ) /* sprites */
1689 ROM_LOAD( "mqb-fg2.bin", 0x2000, 0x2000, CRC(823f1e57) SHA1(a7305815d71d6e3b1c92c387a675e969edc77b7d) )
1690 ROM_LOAD( "mqb-fg1.bin", 0x4000, 0x2000, CRC(05343ae6) SHA1(6ae3e6949c9eb0df85216575ffd21adc939df0a2) )
1691 ROM_LOAD( "mqb-fg0.bin", 0x6000, 0x2000, CRC(abc71bdd) SHA1(b72c6867d8e342a6794a4bbab991761c01cfae44) )
1692 ROM_END
1693
1694 ROM_START( qberttst )
1695 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1696 ROM_LOAD( "qbtst2.bin", 0xa000, 0x2000, CRC(55307b02) SHA1(8a41820211093779d9010b4c9e7d667ad3a31f23) )
1697 ROM_LOAD( "qbtst1.bin", 0xc000, 0x2000, CRC(e97fdd78) SHA1(98dd07043a72273240c593650aa9947199347870) )
1698 ROM_LOAD( "qbtst0.bin", 0xe000, 0x2000, CRC(94c9f588) SHA1(f586bcd8e6762614bed634a007508abea071754c) )
1699
1700 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1701 ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
1702 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1703 ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
1704 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1705
1706 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1707 ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
1708 ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
1709
1710 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1711 ROM_LOAD( "qb-fg3.bin", 0x0000, 0x2000, CRC(dd436d3a) SHA1(ae16087a6ceec84551b5d7aae4036e0ed432cbb7) ) /* sprites */
1712 ROM_LOAD( "qb-fg2.bin", 0x2000, 0x2000, CRC(f69b9483) SHA1(06894a1474c79c1274efbd32d7371179e7e0a661) )
1713 ROM_LOAD( "qb-fg1.bin", 0x4000, 0x2000, CRC(224e8356) SHA1(f7f26b879aa8b964ff6311136ed8157e44de736c) )
1714 ROM_LOAD( "qb-fg0.bin", 0x6000, 0x2000, CRC(2f695b85) SHA1(807d16459838f129e10b913890bbc95065d5dd40) )
1715 ROM_END
1716
1717 ROM_START( insector )
1718 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1719 ROM_LOAD( "rom3", 0x8000, 0x2000, CRC(640881fd) SHA1(2832183e41ae7e631b61e4845fa68ce1c49edf29) )
1720 ROM_LOAD( "rom2", 0xa000, 0x2000, CRC(456bc3f4) SHA1(b61a56a65639f97399a8a3a4293ac2292edfd159) )
1721 ROM_LOAD( "rom1", 0xc000, 0x2000, CRC(706962af) SHA1(e40b567fdf6a3f7c6485808b4db45cea322c7724) )
1722 ROM_LOAD( "rom0", 0xe000, 0x2000, CRC(31cee24b) SHA1(3d21f5d530cc022f9633ad487e13a664848dd3e6) )
1723
1724 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1725 ROM_LOAD( "gv106s.bin", 0xf000, 0x1000, CRC(25bcc8bc) SHA1(adf401901f1479a5bffaed85135669b1133334b4) )
1726 ROM_RELOAD( 0x7000, 0x1000 ) /* A15 is not decoded */
1727
1728 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1729 ROM_LOAD( "bg0", 0x0000, 0x1000, CRC(0dc2037e) SHA1(aa3fdec7884aad782e430182326f5b113f59bf00) ) /* chars */
1730 ROM_LOAD( "bg1", 0x1000, 0x1000, CRC(3dd73b94) SHA1(98b6592a907d6cb6a692c576f757bb612f8d3b72) )
1731
1732 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1733 ROM_LOAD( "fg3", 0x0000, 0x2000, CRC(9bbf5b6b) SHA1(3866d4f5231140e0b7ffe5daa4752d09d3bd7241) ) /* sprites */
1734 ROM_LOAD( "fg2", 0x2000, 0x2000, CRC(5adf9986) SHA1(2ef0d002d7ab4c9199e40dfcb25747564ecc0495) )
1735 ROM_LOAD( "fg1", 0x4000, 0x2000, CRC(4bb16111) SHA1(88ac8c957c6968d355c494bf95ccf8a99152e5e9) )
1736 ROM_LOAD( "fg0", 0x6000, 0x2000, CRC(965f6b76) SHA1(faec9d43f39e730eefd08d4c3337ed4b230bf7e1) )
1737 ROM_END
1738
1739 ROM_START( screwloo )
1740 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1741 ROM_LOAD( "rom4", 0x6000, 0x2000, CRC(744a2513) SHA1(d6e8e016d9af984fae9b6667bedeea069637bd3a) )
1742 ROM_LOAD( "rom3", 0x8000, 0x2000, CRC(ffde5b5d) SHA1(50ac0e600935b8b1f8b68c40ad21a179b176e535) )
1743 ROM_LOAD( "rom2", 0xa000, 0x2000, CRC(97932b05) SHA1(6807c6e08edeb93aa7b4969eb78de3cf88a00b72) )
1744 ROM_LOAD( "rom1", 0xc000, 0x2000, CRC(571b65ca) SHA1(75077f4fab296b3802271fa77af588003570cde6) )
1745 ROM_LOAD( "rom0", 0xe000, 0x2000, CRC(6447fe54) SHA1(6391c841cafd35dd315d9fac99ed5d8304018747) )
1746
1747 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1748 ROM_LOAD( "drom1", 0xe000, 0x2000, CRC(ae965ade) SHA1(84a690cba8990fe6406b7cfbd6ea643a48446567) )
1749
1750 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for second sound cpu */
1751 ROM_LOAD( "yrom1", 0xe000, 0x2000, CRC(3719b0b5) SHA1(4f215ca2f15956374c4cd9484b6798f1c4d60fc7) )
1752
1753 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1754 ROM_LOAD( "bg0", 0x0000, 0x1000, CRC(1fd5b649) SHA1(4e2127a4458d54f094934c6f5f154a6db5d0c8b0) ) /* chars */
1755 ROM_LOAD( "bg1", 0x1000, 0x1000, CRC(c8ddb8ba) SHA1(58137a5043157d08af4d628cf5384d7f530393f7) )
1756
1757 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1758 ROM_LOAD( "fg3", 0x0000, 0x2000, CRC(97d4e63b) SHA1(e06ecb73148f16b33132767f8f0dffc37eeba5f1) ) /* sprites */
1759 ROM_LOAD( "fg2", 0x2000, 0x2000, CRC(f76e56ca) SHA1(32252d424f31aa899d6c614f1d1006c2ef49df84) )
1760 ROM_LOAD( "fg1", 0x4000, 0x2000, CRC(698c395f) SHA1(46c6700b2943c35c9ac45791652eafbb4a4e059a) )
1761 ROM_LOAD( "fg0", 0x6000, 0x2000, CRC(f23269fb) SHA1(9a418a372da18cf33bcfba07202cf2ac7a1dcd1d) )
1762 ROM_END
1763
1764 ROM_START( sqbert )
1765 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1766 ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(1e3d4038) SHA1(d4402c5d16c0aa55efbceb83f0b30082b8434df7) )
1767 ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(eaf3076c) SHA1(749a87b3c40ba0a2ecd2ca962786e066daf63e30) )
1768 ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(61260a7e) SHA1(e2028a453aa34aaffa2c465f64a963504315df3c) )
1769
1770 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1771 ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
1772 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1773 ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
1774 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1775
1776 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1777 ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(c3118eef) SHA1(2c320eb8aae8841046ac3fca3bdaeeba778360e4) ) /* chars */
1778 ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(4f6d8075) SHA1(dc1897f939c8d837627ff6e06609afe305566a3b) )
1779
1780 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1781 ROM_LOAD( "qb-fg3.bin", 0x0000, 0x2000, CRC(ee595eda) SHA1(11777d95ba79bd0ec7b964b76c1dc129db857816) ) /* sprites */
1782 ROM_LOAD( "qb-fg2.bin", 0x2000, 0x2000, CRC(59884c78) SHA1(5e77ef46ccd55f79a5fa90521baa7c22e3783fe5) )
1783 ROM_LOAD( "qb-fg1.bin", 0x4000, 0x2000, CRC(2a60e3ad) SHA1(9ed83017f6c8e44337ad76c68b095f2c3300aadb) )
1784 ROM_LOAD( "qb-fg0.bin", 0x6000, 0x2000, CRC(b11ad9d8) SHA1(5264598f33aa76455ae4107d0f265c2a372ed67a) )
1785 ROM_END
1786
1787 ROM_START( qbertqub )
1788 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1789 ROM_LOAD( "qq-rom3.bin", 0x8000, 0x2000, CRC(c4dbdcd7) SHA1(34aaa4762073680e2b4d024ce7106315ffc6bcf3) )
1790 ROM_LOAD( "qq-rom2.bin", 0xa000, 0x2000, CRC(21a6c6cc) SHA1(6d4d81d9ad85be3792584e39dbeaf0dfeeda1503) )
1791 ROM_LOAD( "qq-rom1.bin", 0xc000, 0x2000, CRC(63e6c43d) SHA1(9435eb06dc069e5bf1c439f0c772fef3183745b0) )
1792 ROM_LOAD( "qq-rom0.bin", 0xe000, 0x2000, CRC(8ddbe438) SHA1(31112d711af5d4039491e99a0be0c088b3272482) )
1793
1794 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1795 ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
1796 ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
1797 ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
1798 ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
1799
1800 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1801 ROM_LOAD( "qq-bg0.bin", 0x0000, 0x1000, CRC(050badde) SHA1(d049367e262cc6080e01d32227e86310166e00bb) ) /* chars */
1802 ROM_LOAD( "qq-bg1.bin", 0x1000, 0x1000, CRC(8875902f) SHA1(715e05b555d52c0445c4bec7fb6d1c02053505e6) )
1803
1804 ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE )
1805 ROM_LOAD( "qq-fg3.bin", 0x0000, 0x4000, CRC(91a949cc) SHA1(bd27a6bb744f73cb918318f1bc3aa5bde39417c2) ) /* sprites */
1806 ROM_LOAD( "qq-fg2.bin", 0x4000, 0x4000, CRC(782d9431) SHA1(04d46014e9a5b80b8215b5338fa9de27e530e4a9) )
1807 ROM_LOAD( "qq-fg1.bin", 0x8000, 0x4000, CRC(71c3ac4c) SHA1(ed3444b3c8bd332b83f2700f1d6ea6bc9e185d8c) )
1808 ROM_LOAD( "qq-fg0.bin", 0xc000, 0x4000, CRC(6192853f) SHA1(907e62a3835bacda4104dcc1d7e946e4e8e821ef) )
1809 ROM_END
1810
1811 ROM_START( krull )
1812 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1813 ROM_LOAD( "ram2.bin", 0x1000, 0x1000, CRC(302feadf) SHA1(9d70de35e4f0490dc4e601070993ad146f250dea) )
1814 ROM_LOAD( "ram4.bin", 0x2000, 0x1000, CRC(79355a60) SHA1(57ad5c904b9ac4bf7c7d828bf755bbcbba6a4fd7) )
1815 ROM_LOAD( "rom4.bin", 0x6000, 0x2000, CRC(2b696394) SHA1(b18270f4ad97743f6ff8c4cbc93e523c77a8e794) )
1816 ROM_LOAD( "rom3.bin", 0x8000, 0x2000, CRC(14b0ee42) SHA1(276c4008a013806b3989c529f41cbc358ec49fd6) )
1817 ROM_LOAD( "rom2.bin", 0xa000, 0x2000, CRC(b5fad94a) SHA1(1bae895fbdd658cfb56c53cc2139282cc1e778de) )
1818 ROM_LOAD( "rom1.bin", 0xc000, 0x2000, CRC(1ad956a3) SHA1(f5b74b196fe1bd9ab48336e0051cbf29c650cfc1) )
1819 ROM_LOAD( "rom0.bin", 0xe000, 0x2000, CRC(a466afae) SHA1(d691cbb46e8c3b71f9b1688d7fcef36df82aa854) )
1820
1821 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1822 ROM_LOAD( "snd1.bin", 0xe000, 0x1000, CRC(dd2b30b4) SHA1(f01cb64932493bf69d4fc75a7fa809ff6f6e4263) )
1823 ROM_RELOAD( 0x6000, 0x1000 ) /* A15 is not decoded */
1824 ROM_LOAD( "snd2.bin", 0xf000, 0x1000, CRC(8cab901b) SHA1(b886532828efc8cf442e2ee4ebbfe37acd489f62) )
1825 ROM_RELOAD( 0x7000, 0x1000 ) /* A15 is not decoded */
1826
1827 /* no gfx1 (RAM is used) */
1828
1829 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1830 ROM_LOAD( "fg3.bin", 0x0000, 0x2000, CRC(82d77a45) SHA1(753476609c4bf4f0f0cd28d61fd8aef6967bda57) ) /* sprites */
1831 ROM_LOAD( "fg2.bin", 0x2000, 0x2000, CRC(25a24317) SHA1(33d2c23a388b09c4a09b9893648c30fbd5482cc3) )
1832 ROM_LOAD( "fg1.bin", 0x4000, 0x2000, CRC(7e3ad7b0) SHA1(0de86e632e5a9e6c1ec82550b15dc25a17ab7066) )
1833 ROM_LOAD( "fg0.bin", 0x6000, 0x2000, CRC(7402dc19) SHA1(d6d1b8aca8e9ee3bdc57f4474d22b405963909ec) )
1834 ROM_END
1835
1836 ROM_START( mach3 )
1837 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1838 ROM_LOAD( "m3rom4.bin", 0x6000, 0x2000, CRC(8bfd5a44) SHA1(61f5c6c39047c1d0296e2cacce2be9525cb47176) )
1839 ROM_LOAD( "m3rom3.bin", 0x8000, 0x2000, CRC(b1b045af) SHA1(4e71ca4661bf5daaf9e2ffbb930ac3b13e2e57bd) )
1840 ROM_LOAD( "m3rom2.bin", 0xa000, 0x2000, CRC(fbdfb03d) SHA1(61d587558fc036fc3b55d3e36ebb6940e9eda258) )
1841 ROM_LOAD( "m3rom1.bin", 0xc000, 0x2000, CRC(3b0ba80b) SHA1(bc7e961311b40f05f2998f10f0a68f2e515c8e66) )
1842 ROM_LOAD( "m3rom0.bin", 0xe000, 0x2000, CRC(70c12bf4) SHA1(c26127b6e2a16791b3be8abac93be6af4f30fb3b) )
1843
1844 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1845 ROM_LOAD( "m3drom1.bin", 0xf000, 0x1000, CRC(a6e29212) SHA1(a73aafc2efa99e9ae0aecbb6075a10f7178ac938) )
1846
1847 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for second sound cpu */
1848 ROM_LOAD( "m3yrom1.bin", 0xf000, 0x1000, CRC(eddf8872) SHA1(29ed0d1828639849bab826b3e2ab4eefac45fd85) )
1849
1850 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1851 ROM_LOAD( "mach3bg0.bin", 0x0000, 0x1000, CRC(ea2f5257) SHA1(664502dd2b7ee4ce96820da532615f3902b45557) )
1852 ROM_LOAD( "mach3bg1.bin", 0x1000, 0x1000, CRC(f543e4ce) SHA1(2a1b7dbbcd9756f836ca2e42973043b98a303082) )
1853
1854 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1855 ROM_LOAD( "mach3fg3.bin", 0x0000, 0x2000, CRC(472128b4) SHA1(8c6f36cab5ec8abb6db2e6d52530560664b950fe) )
1856 ROM_LOAD( "mach3fg2.bin", 0x2000, 0x2000, CRC(2a59e99e) SHA1(5c1faa244fc0f53cc2a52c8d4d40fb178706c2ed) )
1857 ROM_LOAD( "mach3fg1.bin", 0x4000, 0x2000, CRC(9b88767b) SHA1(8071e11906b3f0026f9a210cc5a236d95ca1f659) )
1858 ROM_LOAD( "mach3fg0.bin", 0x6000, 0x2000, CRC(0bae12a5) SHA1(7bc0b82ccab0e4498a7a2a9dc85f03125f25826e) )
1859
1860 ROM_REGION( 1024*1024, REGION_USER1, 0) /* about 30 min of target data from laserdisc */
1861 ROM_LOAD( "m3target.bin", 0, 1024*1024, CRC(6e779a6f) SHA1(e556ad438e637a71f17ea04088de10b39b45f8df) )
1862 ROM_END
1863
1864 ROM_START( usvsthem )
1865 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1866 ROM_LOAD( "usvs.rm4", 0x6000, 0x2000, CRC(0d7a4072) SHA1(84a7eec31037243185ab40ab269be0f83946ebd5) )
1867 ROM_LOAD( "usvs.rm3", 0x8000, 0x2000, CRC(6f32a671) SHA1(d54c1e09988f78ea706b4b0da675b27d9d407696) )
1868 ROM_LOAD( "usvs.rm2", 0xa000, 0x2000, CRC(36770716) SHA1(797b48ef48f563ed21ea263297fe0ed61c69f41e) )
1869 ROM_LOAD( "usvs.rm1", 0xc000, 0x2000, CRC(697bc989) SHA1(ebfc0868f949e5aba1efb8fbce06f795888d8e00) )
1870 ROM_LOAD( "usvs.rm0", 0xe000, 0x2000, CRC(30cf6bd9) SHA1(527ad3b96ea4a77f6d6f8a89a9215da490292297) )
1871
1872 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1873 ROM_LOAD( "usvsdrom.1", 0xe000, 0x2000, CRC(c0b5cab0) SHA1(b18e8fd9837bb52d6b3d86f2b652f6573c7cd3b3) )
1874
1875 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for second sound cpu */
1876 ROM_LOAD( "usvsyrom.1", 0xe000, 0x2000, CRC(c3d245ca) SHA1(d281b139ae6c58e855b2914a24ca4bc5f8800681) )
1877
1878 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1879 ROM_LOAD( "usvs.bg0", 0x0000, 0x1000, CRC(8a0de09f) SHA1(6b56ffbe8569625ff307510645683b4e3f04e753) )
1880 ROM_LOAD( "usvs.bg1", 0x1000, 0x1000, CRC(6fb64d3c) SHA1(0cf0fd60995e56eddc56c7fac6280abe3b87dbc9) )
1881
1882 ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE )
1883 ROM_LOAD( "usvs.fg3", 0x0000, 0x4000, CRC(98703015) SHA1(120e87ef640db3f23c1d2c0abf4b6acff7714512) )
1884 ROM_LOAD( "usvs.fg2", 0x4000, 0x4000, CRC(d3990707) SHA1(81d58f6bc6ec04b95036f81c4cd3516d0adf348e) )
1885 ROM_LOAD( "usvs.fg1", 0x8000, 0x4000, CRC(a2057430) SHA1(e24aa35cb27fa41b75f5c01f4c083dc6eeb04c0d) )
1886 ROM_LOAD( "usvs.fg0", 0xc000, 0x4000, CRC(7734e53f) SHA1(c1307596ba098c98e741f3c00686b514587e1d0a) )
1887 ROM_END
1888
1889 ROM_START( 3stooges )
1890 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1891 ROM_LOAD( "gv113ram.4", 0x2000, 0x1000, CRC(533bff2a) SHA1(58d0be8add4b02dc3e27cf6b17a05baf4304f3ce) )
1892 ROM_LOAD( "gv113rom.4", 0x6000, 0x2000, CRC(8b6e52b8) SHA1(6e17e11afce92a7fa1735a724f0c0faf9375ac89) )
1893 ROM_LOAD( "gv113rom.3", 0x8000, 0x2000, CRC(b816d8c4) SHA1(86e16888492390034ac04e3f6a9f56422575c778) )
1894 ROM_LOAD( "gv113rom.2", 0xa000, 0x2000, CRC(b45b2a79) SHA1(7d0b19bec462ab67f518361afdf4b6982829ed07) )
1895 ROM_LOAD( "gv113rom.1", 0xc000, 0x2000, CRC(34ab051e) SHA1(df416aaf34d6bbbdd79ae633842355a292ed935d) )
1896 ROM_LOAD( "gv113rom.0", 0xe000, 0x2000, CRC(ab124329) SHA1(de1bc721eea74426035eec10a389f77b435aa9b9) )
1897
1898 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1899 ROM_LOAD( "drom1", 0xe000, 0x2000, CRC(87a9fa10) SHA1(9c07837dce1384d6b51b716aa8ceeb5bc247a911) )
1900
1901 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for second sound cpu */
1902 ROM_LOAD( "yrom2", 0xc000, 0x2000, CRC(90f9c940) SHA1(646dacc902cf235948ac9c064c92390e2764370b) )
1903 ROM_LOAD( "yrom1", 0xe000, 0x2000, CRC(55f8ab30) SHA1(a6b6318f12fd4a1fab61b82cde33759da615d5b2) )
1904
1905 /* no gfx1 (RAM is used) */
1906
1907 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1908 ROM_LOAD( "gv113fg3", 0x0000, 0x2000, CRC(28071212) SHA1(33ce5cfae3491658f8b4cb977dc2da0a75dffee4) ) /* sprites */
1909 ROM_LOAD( "gv113fg2", 0x2000, 0x2000, CRC(9fa3dfde) SHA1(693327c60691748bf16e486b2962ebe019009a69) )
1910 ROM_LOAD( "gv113fg1", 0x4000, 0x2000, CRC(fb223854) SHA1(b1eaad971edd2f3a2aed66c5f9d0f27d6ffd5466) )
1911 ROM_LOAD( "gv113fg0", 0x6000, 0x2000, CRC(95762c53) SHA1(e486a232e6b62ab21b9c3be521606dea2a451889) )
1912 ROM_END
1913
1914 ROM_START( curvebal )
1915 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
1916 ROM_LOAD( "cb-rom-3.chp", 0x8000, 0x2000, CRC(72ad4d45) SHA1(9537eb360ed1d33d399cc2d8761c36b7d25fdae0) )
1917 ROM_LOAD( "cb-rom-2.chp", 0xa000, 0x2000, CRC(d46c3db5) SHA1(d4f464a6ebc090d100e890303557f0d05214033b) )
1918 ROM_LOAD( "cb-rom-1.chp", 0xc000, 0x2000, CRC(eb1e08bd) SHA1(f558664df12e4e15ef2779a0bdf99538f8c43ca3) )
1919 ROM_LOAD( "cb-rom-0.chp", 0xe000, 0x2000, CRC(401fc7e3) SHA1(86ca53cb6f1d88d5a95baa9524c6b42a1f7fc9c2) )
1920
1921 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
1922 ROM_LOAD( "yrom.sbd", 0xe000, 0x1000, CRC(4c313d9b) SHA1(c61a8c827f4b199fdfb6ffc0bc6cca396c73625e) )
1923 ROM_LOAD( "drom.sbd", 0xf000, 0x1000, CRC(cecece88) SHA1(4c6639f6f89f80b04b6ffbb5004ea2121e71f504) )
1924
1925 ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
1926 ROM_LOAD( "cb-bg-0.chp", 0x0000, 0x1000, CRC(d666a179) SHA1(3b9aca5272ae3f3d99ba55f5dc2db4eac82896bc) )
1927 ROM_LOAD( "cb-bg-1.chp", 0x1000, 0x1000, CRC(5e34ff4e) SHA1(f88234c0f46533540815e05479938810ea4fb4f8) )
1928
1929 ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE )
1930 ROM_LOAD( "cb-fg-3.chp", 0x0000, 0x2000, CRC(9c9452fe) SHA1(4cf5ee2efa5734849781aa57c2b92ed542d5cb4e) )
1931 ROM_LOAD( "cb-fg-2.chp", 0x2000, 0x2000, CRC(065131af) SHA1(fe78ee907f1d0e9f6fc3c96e4fa4aff390115147) )
1932 ROM_LOAD( "cb-fg-1.chp", 0x4000, 0x2000, CRC(1b7b7f94) SHA1(ffb0f163531c2f9d184d8733466d23ab9d48ea2e) )
1933 ROM_LOAD( "cb-fg-0.chp", 0x6000, 0x2000, CRC(e3a8230e) SHA1(c256b5ca25dc15c11d574d0ad823b34093933802) )
1934 ROM_END
1935
1936
1937 static DRIVER_INIT( gottlieb )
1938 {
1939 gottlieb_sound_init();
1940 }
1941
1942
1943 GAME( 1982, reactor, 0, reactor, reactor, 0, ROT0, "Gottlieb", "Reactor" )
1944 GAME( 1982, qbert, 0, qbert, qbert, 0, ROT270, "Gottlieb", "Q*bert (US)" )
1945 GAME( 1982, qbertjp, qbert, qbert, qbert, 0, ROT270, "Gottlieb (Konami license)", "Q*bert (Japan)" )
1946 GAME( 1982, myqbert, qbert, qbert, qbert, 0, ROT270, "Gottlieb", "Mello Yello Q*bert" )
1947 GAME( 1982, qberttst, qbert, qbert, qbert, 0, ROT270, "Gottlieb", "Q*bert (early test version)" )
1948 GAME( 1982, insector, 0, gottlieb, insector, 0, ROT0, "Gottlieb", "Insector (prototype)" )
1949 GAME( 1983, mplanets, 0, gottlieb, mplanets, 0, ROT270, "Gottlieb", "Mad Planets" )
1950 GAME( 1983, mplanuk, mplanets, gottlieb, mplanets, 0, ROT270, "Gottlieb (Taitel license)", "Mad Planets (UK)" )
1951 GAME( 1983, krull, 0, krull, krull, 0, ROT270, "Gottlieb", "Krull" )
1952 GAME( 1983, sqbert, 0, qbert, qbert, 0, ROT270, "Mylstar", "Faster, Harder, More Challenging Q*bert (prototype)" )
1953 GAMEX(1983, mach3, 0, mach3, mach3, gottlieb, ROT0, "Mylstar", "M.A.C.H. 3", GAME_IMPERFECT_GRAPHICS )
1954 GAME( 1983, qbertqub, 0, qbert, qbertqub, 0, ROT270, "Mylstar", "Q*bert's Qubes" )
1955 GAME( 1983, screwloo, 0, gottlieb2,screwloo, gottlieb, ROT0, "Mylstar", "Screw Loose (prototype)" )
1956 GAME( 1984, curvebal, 0, gottlieb, curvebal, 0, ROT270, "Mylstar", "Curve Ball" )
1957 GAMEX(1984, usvsthem, 0, usvsthem, usvsthem, gottlieb, ROT0, "Mylstar", "Us vs. Them", GAME_IMPERFECT_GRAPHICS )
1958 GAMEX(1984, 3stooges, 0, stooges, 3stooges, gottlieb, ROT0, "Mylstar", "The Three Stooges In Brides Is Brides", GAME_IMPERFECT_SOUND )
1959