1 // license:BSD-3-Clause
2 // copyright-holders:Philip Bennett
3 /***************************************************************************
4
5 MAYGAY MV1 hardware
6
7 preliminary driver by Phil Bennett
8
9 Games supported:
10 * Screen Play
11
12 Other games on this hardware (incomplete dumps)
13 * Believe it or not?
14 * Caesar's Palace (reel to video)
15 * Crossword Quiz
16 * Give us a Clue
17 * Special Effects (reel to video)
18 * World Cup (reel to video)
19
20
21 Main MV1 board:
22
23 U1 ST 8901 TS68000CP12
24 U2 ST M74HC04B1 99135R
25 U3 ST 16S25HB1 9235 (think this is the gal chip)
26 U4 ST M74HC138B1 99131R
27 U5 P8948G MM74HC05N
28 U6 ST M74HC74B1 99144R
29 U7 ST M74HC08B1 99135R
30 U8 ST NE556N 99135
31 U9 ST M74HC259B1 99148R
32 U10 ST M74HC237B1 99148R
33 U11 ULN2803A 9135
34 U12 ST M74HC74B1 99144R
35 U13 ST M74HC32B1 99041R
36 U14 ST M74HCO4B1 99135R
37 U15 27C010 (Game Rom)
38 U16 27C010 (Game Rom)
39 U17 27C010 (Game Rom)
40 U18 27C010 (Game Rom)
41 U19 HYUNDAI HY6264ALP- 10 9147T
42 U20 HYUNDAI HY6264ALP- 10 9147T
43 U21 NEC IRELAND D8279C- 2 9135X8006]
44 U22 ULN2803A 9135
45 U23 ULN2803A 9135
46 U24 TEXAS INSTRUMENT F 9140 AN SN74HC148N
47 U25 ST 2 9148 EF68B21P
48 U26 Can't see one on the board!
49 U27 MOTOROLA MC68681P 14PT18715
50 U28 ST MC1488P 99136
51 U29 ST MC1489AP 99148
52 U30 ST HCF 4514 BE 2 9049
53 U31 MOTOROLA MC74F139N XXAA9145
54 U32 TEXAS INSTRUMENT TMS4464- 12NL IHE 9145
55 U33 TEXAS INSTRUMENT TMS4464- 12NL IHE 9114
56 U34 TEXAS INSTRUMENT TMS4464- 12NL IHE 9145
57 U35 TEXAS INSTRUMENT TMS4464- 12NL IHE 9114
58 U36 MHS S-82716-4 9210
59 U37 TEXAS INSTRUMENT TMS4464- 12NL IHE 9114
60 U38 TEXAS INSTRUMENT TMS4464- 12NL IHE 9145
61 U39 TEXAS INSTRUMENT TMS4464- 12NL IHE 9145
62 U40 TEXAS INSTRUMENT TMS4464- 12NL IHE 9114
63 U41 ST M74HC244B1 99131R
64 U42 ST M74HC244B1 99131R
65 U43 ST M74HC245B1 99136R
66 U44 ST M74HC245B1 99136R
67 U45 ST M74HC00B1 99135R
68 U46 ULN2803A 9135
69 U47 ULN2803A 9135
70 U48 YM2413 9127 HADG
71 U49 78L05 .194
72
73 The memory card that plugs in has 4 M27C010 game roms on.
74
75 The extra digital and reel board has the following:
76
77 U1 GS G06 KOREA GD74HC245
78 U2 SIEMENS SAB 8032B-P SINGAPORE BB INTEL 80 9148
79 U3 M27C512 (reels rom)
80 U4 ST M74HC373B1 99205R
81 U5 TEXAS INSTRUMENT 14530QT SN75155P
82 U6 ULN 2803A 9203
83 U7 ST M74HC374B1 99205R
84 U8 ST M74HC374B1 99205R
85 U9 ULN 2803A 9203
86 U10 ULN 2803A 9203
87 U11 ULN 2803A 9203
88 U12 M27C010 (Sound Rom)
89 U13 NEC JAPAN D7759C 9015KP009
90 U14 ST M74HC373B1 99205R
91 U15 Can't see one on the board!
92 U16 MOTOROLA MC74HC04AN FFA09202
93
94
95
96
97 upd7759 change:
98
99 * Only accept FIFO bytes when the chip is playing!!!
100
101 Port 1 is connected directly to the upd bus.
102 upd /CE is grounded
103 /WR bit is
104
105 Toggle reset pin
106 Write data on port 1
107 Toggle WR bit...
108
109 Then, it goes off to write.
110
111 INT1 Power failure?
112 INT2 -
113 INT3 V Sync
114 INT4 -
115 INT5 68681 DUART
116 INT6 -
117 INT7 -
118
119
120 DUART: 0 = Power failure
121
122 M68681 Output port drives slides
123
124 Todo:
125
126 Find lamps/reels after UPD changes.
127 ***************************************************************************/
128
129 #include "emu.h"
130 #include "video/awpvid.h"
131
132 #include "cpu/m68000/m68000.h"
133 #include "cpu/mcs51/mcs51.h"
134 #include "machine/6821pia.h"
135 #include "machine/i8279.h"
136 #include "machine/mc68681.h"
137 #include "machine/nvram.h"
138 #include "sound/upd7759.h"
139 #include "sound/ym2413.h"
140
141 #include "emupal.h"
142 #include "screen.h"
143 #include "speaker.h"
144
145
146 /*************************************
147 *
148 * Defines
149 *
150 *************************************/
151
152 #define DUART_CLOCK XTAL(3'686'400)
153 #define PIXEL_CLOCK 0
154 #define MASTER_CLOCK XTAL(16'000'000)
155 #define SOUND_CLOCK XTAL(11'059'200)
156
157 /*************************************
158 *
159 * Video hardware
160 *
161 *************************************/
162
163
164 #define VREG(a) i82716.r[a]
165
166 enum
167 {
168 VCR0 = 0,
169 VCR1,
170 RWBA,
171 DWBA,
172 DWSLM,
173 DSBA,
174 PAQ,
175 ODTBA,
176 ATBA,
177 CTBA,
178 CBASE,
179 ATBAC,
180 HVCONST0,
181 HVCONST1,
182 HVCONST2,
183 HVCONST3
184 };
185
186 #define VCR0_UCF 0x0001
187 #define VCR0_DEI 0x0002
188 #define VCR0_SAB 0x0004
189 #define VCR0_DEN 0x0008
190 #define VCR0_HRS 0x0010
191 #define VCR0_DOF 0x0020
192
193 #define VCR0_DS_MASK 0x00c0
194 #define VCR0_DS_SHIFT 6
195 #define VCR0_BLINK_MASK 0x1f00
196 #define VCR0_BLINK_SHIFT 8
197 #define VCR0_DUTY_MASK 0xe000
198 #define VCR0_DUTY_SHIFT 13
199
200 static const uint32_t banks[4] = { 0, 0x40000/2, 0x20000/2, 0x60000/2 };
201
202 #define DRAM_BANK_SEL (banks[(VREG(DSBA) >> 7) & 3])
203
204 struct i82716_t
205 {
206 uint16_t r[16];
207 std::unique_ptr<uint16_t[]> dram;
208
209 std::unique_ptr<uint8_t[]> line_buf; // there's actually two
210 };
211
212
213 class maygayv1_state : public driver_device
214 {
215 public:
maygayv1_state(const machine_config & mconfig,device_type type,const char * tag)216 maygayv1_state(const machine_config &mconfig, device_type type, const char *tag) :
217 driver_device(mconfig, type, tag),
218 m_maincpu(*this, "maincpu"),
219 m_soundcpu(*this, "soundcpu"),
220 m_upd7759(*this, "upd"),
221 m_duart68681(*this, "duart68681"),
222 m_palette(*this, "palette"),
223 m_kbd_ports(*this, "STROBE%u", 1U),
224 m_lamp(*this, "lamp%u", 0U)
225 { }
226
227 void maygayv1(machine_config &config);
228
229 void init_screenpl();
230
231 private:
232 void i82716_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
233 uint16_t i82716_r(offs_t offset);
234 void write_odd(uint16_t data);
235 uint16_t read_odd();
236 void vsync_int_ctrl(uint16_t data);
237 uint8_t mcu_r(offs_t offset);
238 void mcu_w(offs_t offset, uint8_t data);
239 uint8_t b_read();
240 void b_writ(uint8_t data);
241 void strobe_w(uint8_t data);
242 void lamp_data_w(uint8_t data);
243 uint8_t kbd_r();
244 uint32_t screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
245 DECLARE_WRITE_LINE_MEMBER(screen_vblank_maygayv1);
246 void data_from_i8031(uint8_t data);
247 uint8_t data_to_i8031();
248 DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
249 DECLARE_WRITE_LINE_MEMBER(duart_txa);
250 void main_map(address_map &map);
251 void sound_data(address_map &map);
252 void sound_io(address_map &map);
253 void sound_prg(address_map &map);
254 void cpu_space_map(address_map &map);
255
256 virtual void machine_start() override;
257 virtual void machine_reset() override;
258 virtual void video_start() override;
259
260 required_device<cpu_device> m_maincpu;
261 required_device<i8052_device> m_soundcpu;
262 required_device<upd7759_device> m_upd7759;
263 required_device<mc68681_device> m_duart68681;
264 required_device<palette_device> m_palette;
265 required_ioport_array<8> m_kbd_ports;
266
267 int m_lamp_strobe;
268 int m_old_lamp_strobe;
269 int m_vsync_latch_preset;
270 uint8_t m_p1;
271 uint8_t m_p3;
272 int m_d68681_val;
273 i82716_t m_i82716;
274 output_finder<8 * 256> m_lamp;
275 };
276
277
278
279
i82716_w(offs_t offset,uint16_t data,uint16_t mem_mask)280 void maygayv1_state::i82716_w(offs_t offset, uint16_t data, uint16_t mem_mask)
281 {
282 i82716_t &i82716 = m_i82716;
283 // Accessing register window?
284 if ((VREG(RWBA) & 0xfff0) == (offset & 0xfff0))
285 {
286 // Register segment is fixed at start of DRAM
287 COMBINE_DATA(&i82716.dram[offset & 0xf]);
288 }
289
290 // Accessing data window?
291 // TODO: mask
292 if (offset >= (VREG(DWBA) & 0xf800))
293 {
294 offset -= (VREG(DWBA) & 0xf800);
295 COMBINE_DATA(&i82716.dram[DRAM_BANK_SEL + (VREG(DSBA) & 0xf800) + offset]);
296 }
297 }
298
i82716_r(offs_t offset)299 uint16_t maygayv1_state::i82716_r(offs_t offset)
300 {
301 i82716_t &i82716 = m_i82716;
302 // Accessing register window?
303 if ((VREG(RWBA) & ~0xf) == (offset & ~0xf))
304 {
305 return(i82716.r[offset & 0xf]);
306 }
307
308 // Accessing data window? TODO: mask?
309 if (VREG(VCR1) & 4)
310 {
311 if (offset >= (VREG(DWBA) & 0xf800))
312 {
313 offset -= (VREG(DWBA) & 0xf800);
314 return i82716.dram[DRAM_BANK_SEL +(VREG(DSBA) & 0xf800) + (offset)];
315 }
316 }
317
318 return 0;
319 }
320
video_start()321 void maygayv1_state::video_start()
322 {
323 }
324
325
screen_update_maygayv1(screen_device & screen,bitmap_ind16 & bitmap,const rectangle & cliprect)326 uint32_t maygayv1_state::screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
327 {
328 i82716_t &i82716 = m_i82716;
329 uint16_t *atable = &i82716.dram[VREG(ATBA)];
330 uint16_t *otable = &i82716.dram[VREG(ODTBA) & 0xfc00]; // both must be bank 0
331
332 int slmask = 0xffff; // TODO: Save if using scanline callbacks
333 int xbound = (VREG(DWBA) & 0x3f8) | 7;
334
335 /* Sign extend to 10 bits */
336 xbound = (xbound & 0x3ff) - (xbound & 0x400);
337
338 /* If screen output is disabled, fill with black */
339 if (!(VREG(VCR0) & VCR0_DEN))
340 {
341 bitmap.fill(m_palette->black_pen(), cliprect);
342 return 0;
343 }
344
345 /* For every scanline... */
346 for (int sl = cliprect.min_x; sl <= cliprect.max_y; ++sl)
347 {
348 uint16_t aflags = atable[sl];
349 uint16_t slmask_old = slmask;
350
351 uint16_t *bmp_ptr = &bitmap.pix(sl);
352
353 slmask = 0xffff ^ (slmask ^ aflags);
354
355 /* Clear the frame buffer on each line to BG colour (palette entry 2) */
356 /* 4bpp only ! */
357 memset(i82716.line_buf.get(), 0x22, 512);
358
359 /* Parse the list of 16 objects */
360 for (int obj = 0; obj < 16; ++obj)
361 {
362 int offs = obj * 4;
363
364 // Draw on this line?
365 if ( !BIT(slmask, obj) )
366 {
367 uint32_t objbase, trans, width;
368 int32_t xpos;
369 uint16_t w0, w1, w2;
370 uint16_t *objptr;
371 uint8_t *bmpptr; // ?
372
373 /* Get object table entry words */
374 w0 = otable[offs];
375 w1 = otable[offs + 1];
376 w2 = otable[offs + 2];
377
378 /* Blanked */
379 if ( BIT(w0, 4) )
380 break;
381
382 // if ( BIT(w0, 5) )
383 // printf("Blinking\n");
384
385 /* Resolution: either 4bpp or 2bpp */
386 // res = (w0 >> 9) & 3;
387
388
389 /* Expand 2bpp to 3bpp */
390 //cspec = (w0 & 3) << 2;
391
392 if ( BIT(w0, 11) )
393 {
394 logerror("i82716: Characters not supported\n");
395 break;
396 }
397
398 /* 10-bit signed - in terms of bytes */
399 xpos = (w1 & 0x3ff);
400 xpos = (xpos & 0x3ff) - (xpos & 0x400);
401
402 /* Transparency detect enable */
403 trans = BIT(w0, 2);
404
405 /* Width is expressed in units of 64-bit words */
406 width = (w1 >> 10) & 0x3f;
407
408 /* First scanline? Clear current object entry address */
409 if ( BIT(slmask_old, obj) )
410 otable[offs + 3] = 0;
411
412 /* Bitmap data pointer */
413 objbase = ((w0 & 0x00c0) << 10) | w2;
414 objptr = &i82716.dram[objbase + ((4 * width) * otable[offs + 3])];
415
416 // endian alert
417 bmpptr = (uint8_t*)objptr;
418
419 // 4bpp
420 for (int x = xpos; x < std::min(xbound, int(xpos + width * 8)); ++x)
421 {
422 if (x >= 0)
423 {
424 uint8_t p1 = *bmpptr & 0xf;
425 uint8_t p2 = *bmpptr >> 4;
426
427 if (!trans || p1)
428 i82716.line_buf[x] = p1;
429
430 if (!trans || p2)
431 i82716.line_buf[x] |= p2 << 4;
432 }
433 bmpptr++;
434 }
435
436 /* Update scanline pointer - WRONG */
437 otable[offs + 3]++;
438 }
439 }
440
441 // Write it out
442 for (int sx = cliprect.min_x; sx < cliprect.max_x; sx += 2)
443 {
444 uint8_t pix = i82716.line_buf[sx / 2];
445
446 bmp_ptr[sx + 0] = pix & 0xf;
447 bmp_ptr[sx + 1] = pix >> 4;
448 }
449 }
450
451 return 0;
452 }
453
WRITE_LINE_MEMBER(maygayv1_state::screen_vblank_maygayv1)454 WRITE_LINE_MEMBER(maygayv1_state::screen_vblank_maygayv1)
455 {
456 // rising edge
457 if (state)
458 {
459 i82716_t &i82716 = m_i82716;
460 // UCF
461 if (VREG(VCR0) & VCR0_UCF)
462 {
463 int i;
464
465 for (i = 0; i < 16; ++i)
466 VREG(i) = i82716.dram[i];
467 }
468 else
469 {
470 VREG(VCR0) = i82716.dram[VCR0];
471 VREG(ATBA) = i82716.dram[ATBA];
472 }
473
474 if (!(VREG(VCR0) & VCR0_DEI))
475 {
476 int i;
477 uint16_t *palbase = &i82716.dram[VREG(CTBA)];
478
479 for (i = 0; i < 16; ++i)
480 {
481 uint16_t entry = *palbase++;
482 m_palette->set_pen_color(entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4));
483 }
484 }
485
486 if (m_vsync_latch_preset)
487 m_maincpu->set_input_line(3, ASSERT_LINE);
488 }
489 }
490
491
492
493 /*************************************
494 *
495 * 68000 CPU memory handlers
496 *
497 *************************************/
498
499 /*
500 68681
501 YM2413
502 68B21
503 8279C
504
505 8a0008 0xe0
506 8a000c 0x7
507 8a000e 0x33
508 8a000a 0x8
509 8a001c 0xff R/W
510 */
511
512
513
write_odd(uint16_t data)514 void maygayv1_state::write_odd(uint16_t data)
515 {
516 }
517
518 //;860008 is a latch of some sort
read_odd()519 uint16_t maygayv1_state::read_odd()
520 {
521 return 0;
522 }
523
524 /*************************************
525 *
526 * 8279 display/keyboard driver
527 *
528 *************************************/
529
strobe_w(uint8_t data)530 void maygayv1_state::strobe_w(uint8_t data)
531 {
532 m_lamp_strobe = data;
533 }
534
lamp_data_w(uint8_t data)535 void maygayv1_state::lamp_data_w(uint8_t data)
536 {
537 //The two A/B ports are merged back into one, to make one row of 8 lamps.
538
539 if (m_old_lamp_strobe != m_lamp_strobe)
540 {
541 // Because of the nature of the lamping circuit, there is an element of persistance
542 // As a consequence, the lamp column data can change before the input strobe without
543 // causing the relevant lamps to black out.
544
545 for (int i = 0; i < 8; i++)
546 {
547 m_lamp[(8*m_lamp_strobe)+i] = BIT(data, i);
548 }
549 m_old_lamp_strobe = m_lamp_strobe;
550 }
551
552 }
553
kbd_r()554 uint8_t maygayv1_state::kbd_r()
555 {
556 return m_kbd_ports[m_lamp_strobe & 0x07]->read();
557 }
558
vsync_int_ctrl(uint16_t data)559 void maygayv1_state::vsync_int_ctrl(uint16_t data)
560 {
561 m_vsync_latch_preset = data & 0x0100;
562
563 // Active low
564 if (!(m_vsync_latch_preset))
565 m_maincpu->set_input_line(3, CLEAR_LINE);
566 }
567
main_map(address_map & map)568 void maygayv1_state::main_map(address_map &map)
569 {
570 map(0x000000, 0x07ffff).rom();
571 map(0x080000, 0x083fff).ram().share("nvram");
572 map(0x100000, 0x17ffff).rom().region("maincpu", 0x80000);
573 map(0x800000, 0x800003).w("ymsnd", FUNC(ym2413_device::write)).umask16(0xff00);
574 map(0x820000, 0x820003).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write)).umask16(0x00ff);
575 map(0x860000, 0x86000d).rw(FUNC(maygayv1_state::read_odd), FUNC(maygayv1_state::write_odd));
576 map(0x86000e, 0x86000f).w(FUNC(maygayv1_state::vsync_int_ctrl));
577 map(0x880000, 0x89ffff).rw(FUNC(maygayv1_state::i82716_r), FUNC(maygayv1_state::i82716_w));
578 map(0x8a0000, 0x8a001f).rw(m_duart68681, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff);
579 map(0x8c0000, 0x8c000f).r("pia", FUNC(pia6821_device::read)).umask16(0x00ff);
580 map(0x8c0000, 0x8c000f).w("pia", FUNC(pia6821_device::write)).umask16(0xff00);
581 }
582
583
584 /*************************************
585 *
586 * 8032 CPU memory handlers
587 *
588 *************************************/
589
590 /*
591 74HC245 @ U1 read port
592 (P3.4 = /ENABLE)
593 P1.0 = Reel 1 optic (I)
594 P1.1 = Reel 2 optic (I)
595 P1.2 = Reel 3 optic (I)
596 P1.3
597 P1.4 = DIPSWITCH (GND/ON by default)
598 P1.5 = DIPSWITCH (GND/ON by default)
599 P1.6 = DIPSWITCH (GND/ON by default)
600 P1.7 = DIPSWITCH (GND/ON by default)
601
602 WRITE
603 P1.0 - 7 => D7759C
604 => 74HC374 @ U8 write port (CLK = 3.7)
605
606 P3.0 = RXD
607 P3.1 = TXD
608 P3.2 = /UPD_RESET
609 P3.3 = !(/UPD_BUSY)
610 P3.4 = U1 /ENABLE
611 P3.5 = Status LED (inverted twice)
612 P3.6 = (WR) /UPD_START
613 P3.7 = (RD) U8 CLK - for writing! P1
614
615
616
617 */
618
mcu_r(offs_t offset)619 uint8_t maygayv1_state::mcu_r(offs_t offset)
620 {
621 switch (offset)
622 {
623 case 1:
624 {
625 if ( !BIT(m_p3, 4) )
626 return (ioport("REEL")->read()); // Reels???
627 else
628 return 0;
629 }
630
631 case 3: return m_upd7759->busy_r() ? 0 : 0x08;
632 }
633 return 0;
634 }
635
mcu_w(offs_t offset,uint8_t data)636 void maygayv1_state::mcu_w(offs_t offset, uint8_t data)
637 {
638 logerror("O %x D %x",offset,data);
639
640 switch (offset)
641 {
642 // Bottom nibble = UPD
643 case 1:
644 m_p1 = data;
645 // m_upd7759->msg_w(data);//?
646 break;
647 case 3:
648 m_upd7759->reset_w (BIT(data, 2));
649 m_upd7759->start_w(BIT(data, 6));
650
651 // if ( !BIT(m_p3, 7) && BIT(data, 7) )
652 // P1 propagates to outputs
653
654 m_p3 = data;
655 break;
656 }
657 }
658
659
sound_prg(address_map & map)660 void maygayv1_state::sound_prg(address_map &map)
661 {
662 map(0x0000, 0xffff).rom();
663 }
664
sound_data(address_map & map)665 void maygayv1_state::sound_data(address_map &map)
666 {
667 }
668
sound_io(address_map & map)669 void maygayv1_state::sound_io(address_map &map)
670 {
671 map(0x00, 0xff).rw(FUNC(maygayv1_state::mcu_r), FUNC(maygayv1_state::mcu_w));
672 }
673
674
675 /*************************************
676 *
677 * Port definitions
678 *
679 *************************************/
680
681 static INPUT_PORTS_START( screenpl )
682 PORT_START("STROBE1")
683 PORT_DIPNAME( 0x01, 0x01, "DSW01")
DEF_STR(Off)684 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
685 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
686 PORT_DIPNAME( 0x02, 0x02, "DSW02")
687 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
688 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
689 PORT_DIPNAME( 0x04, 0x04, "DSW03")
690 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
691 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
692 PORT_DIPNAME( 0x08, 0x08, "DSW04")
693 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
694 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
695 PORT_DIPNAME( 0x10, 0x10, "Stake selection?")
696 PORT_DIPSETTING( 0x10, "5p" )
697 PORT_DIPSETTING( 0x00, "10p" )
698 PORT_DIPNAME( 0x20, 0x20, "DSW06")
699 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
700 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
701 PORT_DIPNAME( 0x40, 0x40, "DSW07")
702 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
703 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
704 PORT_DIPNAME( 0x80, 0x80, "DSW08")
705 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
706 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
707
708 PORT_START("STROBE2")
709 PORT_DIPNAME( 0x01, 0x01, "Test")
710 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
711 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
712 PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
713
714 PORT_START("STROBE3")
715 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Unknown 1")
716 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Nudge 1")
717 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Nudge 2")
718 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Nudge 3")
719 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Unknown 2")
720 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Collect")
721 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Unknown 3")
722 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_NAME("Spin")
723
724 PORT_START("STROBE4")
725 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Red")
726 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Yellow")
727 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Green")
728 PORT_DIPNAME( 0x08, 0x08, "DSW34")
729 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
730 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
731 PORT_DIPNAME( 0x10, 0x10, "DSW35")
732 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
733 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
734 PORT_DIPNAME( 0x20, 0x20, "Jackpot Selection")
735 PORT_DIPSETTING( 0x20, "600p" )
736 PORT_DIPSETTING( 0x00, "300p" )
737 PORT_DIPNAME( 0x40, 0x40, "Reset?")
738 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
739 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
740 PORT_DIPNAME( 0x80, 0x00, "Cash door")
741 PORT_DIPSETTING( 0x80, "Open" )
742 PORT_DIPSETTING( 0x00, "Closed" )
743
744 PORT_START("STROBE5")
745 PORT_DIPNAME( 0x01, 0x01, "DSW41")
746 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
747 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
748 PORT_DIPNAME( 0x02, 0x02, "Re-fill key")
749 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
750 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
751 PORT_DIPNAME( 0x04, 0x04, "DSW43")
752 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
753 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
754 PORT_DIPNAME( 0x08, 0x08, "DSW44")
755 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
756 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
757 PORT_DIPNAME( 0x10, 0x10, "DSW45")
758 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
759 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
760 PORT_DIPNAME( 0x20, 0x20, "DSW46")
761 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
762 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
763 PORT_DIPNAME( 0x40, 0x40, "DSW47")
764 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
765 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
766 PORT_DIPNAME( 0x80, 0x80, "DSW48")
767 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
768 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
769
770 PORT_START("STROBE6")
771 PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
772
773 PORT_START("STROBE7")
774 PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
775
776 PORT_START("STROBE8")
777 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN5 ) PORT_NAME("Token")
778 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100p")
779 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50p")
780 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("20p")
781 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("10p")
782 PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
783
784 PORT_START("REEL")
785 PORT_DIPNAME( 0x01, 0x00, "REEL 1")
786 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
787 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
788 PORT_DIPNAME( 0x02, 0x00, "REEL 2")
789 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
790 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
791 PORT_DIPNAME( 0x04, 0x00, "REEL 3")
792 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
793 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
794 PORT_DIPNAME( 0x08, 0x00, "REEL 4")
795 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
796 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
797 PORT_DIPNAME( 0x10, 0x00, "MCU DIP1")
798 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
799 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
800 PORT_DIPNAME( 0x20, 0x00, "MCU DIP2")
801 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
802 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
803 PORT_DIPNAME( 0x40, 0x00, "MCU DIP3")
804 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
805 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
806 PORT_DIPNAME( 0x80, 0x00, "MCU DIP4")
807 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
808 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
809 INPUT_PORTS_END
810
811
812 /*************************************
813 *
814 * Machine driver
815 *
816 *************************************/
817
818 /***************************************************************************
819
820 68681 DUART
821
822 ***************************************************************************/
823
824 void maygayv1_state::cpu_space_map(address_map &map)
825 {
826 map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
827 map(0xfffffa, 0xfffffb).lr16(NAME([this] () -> u16 { return m_duart68681->get_irq_vector(); }));
828 }
829
WRITE_LINE_MEMBER(maygayv1_state::duart_irq_handler)830 WRITE_LINE_MEMBER(maygayv1_state::duart_irq_handler)
831 {
832 m_maincpu->set_input_line(5, state);
833 }
834
835
WRITE_LINE_MEMBER(maygayv1_state::duart_txa)836 WRITE_LINE_MEMBER(maygayv1_state::duart_txa)
837 {
838 m_d68681_val = state;
839 m_soundcpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE); // ?
840 }
841
data_to_i8031()842 uint8_t maygayv1_state::data_to_i8031()
843 {
844 return m_d68681_val;
845 }
846
data_from_i8031(uint8_t data)847 void maygayv1_state::data_from_i8031(uint8_t data)
848 {
849 m_duart68681->rx_a_w(data);
850 }
851
b_read()852 uint8_t maygayv1_state::b_read()
853 {
854 // Meters - upper nibble?
855 return 0xff;
856 }
857
b_writ(uint8_t data)858 void maygayv1_state::b_writ(uint8_t data)
859 {
860 logerror("B WRITE %x\n",data);
861 }
862
863
machine_start()864 void maygayv1_state::machine_start()
865 {
866 m_lamp.resolve();
867 i82716_t &i82716 = m_i82716;
868 i82716.dram = std::make_unique<uint16_t[]>(0x80000/2); // ???
869 i82716.line_buf = std::make_unique<uint8_t[]>(512);
870
871 save_pointer(NAME(i82716.dram), 0x40000);
872 }
873
machine_reset()874 void maygayv1_state::machine_reset()
875 {
876 i82716_t &i82716 = m_i82716;
877 // ?
878 memset(i82716.dram.get(), 0, 0x40000);
879 i82716.r[RWBA] = 0x0200;
880 }
881
882
maygayv1(machine_config & config)883 void maygayv1_state::maygayv1(machine_config &config)
884 {
885 M68000(config, m_maincpu, MASTER_CLOCK / 2);
886 m_maincpu->set_addrmap(AS_PROGRAM, &maygayv1_state::main_map);
887 m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &maygayv1_state::cpu_space_map);
888
889 I8052(config, m_soundcpu, SOUND_CLOCK);
890 m_soundcpu->set_addrmap(AS_PROGRAM, &maygayv1_state::sound_prg);
891 m_soundcpu->set_addrmap(AS_DATA, &maygayv1_state::sound_data);
892 m_soundcpu->set_addrmap(AS_IO, &maygayv1_state::sound_io);
893 m_soundcpu->serial_tx_cb().set(FUNC(maygayv1_state::data_from_i8031));
894 m_soundcpu->serial_rx_cb().set(FUNC(maygayv1_state::data_to_i8031));
895
896 /* U25 ST 2 9148 EF68B21P */
897 pia6821_device &pia(PIA6821(config, "pia", 0));
898 pia.readpa_handler().set(FUNC(maygayv1_state::b_read));
899 pia.readpb_handler().set(FUNC(maygayv1_state::b_read));
900 pia.writepa_handler().set(FUNC(maygayv1_state::b_writ));
901 pia.writepb_handler().set(FUNC(maygayv1_state::b_writ));
902
903 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
904
905 /* TODO: Use real video timings */
906 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
907 screen.set_refresh_hz(60);
908 screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
909 screen.set_size(640, 300);
910 screen.set_visarea(0, 640 - 1, 0, 300 - 1);
911 screen.set_screen_update(FUNC(maygayv1_state::screen_update_maygayv1));
912 screen.screen_vblank().set(FUNC(maygayv1_state::screen_vblank_maygayv1));
913 screen.set_palette("palette");
914
915 PALETTE(config, "palette").set_entries(16);
916
917 MC68681(config, m_duart68681, DUART_CLOCK);
918 m_duart68681->irq_cb().set(FUNC(maygayv1_state::duart_irq_handler));
919 m_duart68681->a_tx_cb().set(FUNC(maygayv1_state::duart_txa));
920
921 i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock
922 kbdc.out_sl_callback().set(FUNC(maygayv1_state::strobe_w)); // scan SL lines
923 kbdc.out_disp_callback().set(FUNC(maygayv1_state::lamp_data_w)); // display A&B
924 kbdc.in_rl_callback().set(FUNC(maygayv1_state::kbd_r)); // kbd RL lines
925
926 SPEAKER(config, "mono").front_center();
927
928 YM2413(config, "ymsnd", MASTER_CLOCK / 4).add_route(ALL_OUTPUTS, "mono", 0.8);
929
930 UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
931 }
932
933
934 /*************************************
935 *
936 * ROM definitions
937 *
938 *************************************/
939
940 ROM_START( screenpl )
941 ROM_REGION( 0x100000, "maincpu", 0 )
942 ROM_LOAD16_BYTE( "20p6pnd_u15.bin", 0x00000, 0x20000, CRC(4334453c) SHA1(5c18acf29c7b3f44589b92d74b79ac66730db810) )
943 ROM_LOAD16_BYTE( "20p6pnd_u16.bin", 0x00001, 0x20000, CRC(90b3f67c) SHA1(a58a0bc4ccccf083fe3222f02eb06ee5fa6f386a) )
CRC(ba576b11)944 ROM_LOAD16_BYTE( "20p6pnd_u17.bin", 0x40000, 0x20000, CRC(ba576b11) SHA1(3ba7bcaf4e3cc4eaeeece6e3f4957c3a8dfd5752) )
945 ROM_LOAD16_BYTE( "20p6pnd_u18.bin", 0x40001, 0x20000, CRC(24dd1aff) SHA1(833c59e5b75130a8dc3a63027e09c0f5c7ed17f5) )
946
947 ROM_LOAD16_BYTE( "20p6pnd_u2.bin", 0x80000, 0x20000, CRC(ee51ed98) SHA1(262e773cdb1465983a8f931698bc73de7c324088) )
948 ROM_LOAD16_BYTE( "20p6pnd_u1.bin", 0x80001, 0x20000, CRC(d57bbe69) SHA1(b7cd93cef4828418328ca4ff16c496da7b2065e2) )
949 ROM_LOAD16_BYTE( "20p6pnd_u4.bin", 0xc0000, 0x20000, CRC(01aafd7e) SHA1(d2161066655218468da8eae8aa9da8a80c07c489) )
950 ROM_LOAD16_BYTE( "20p6pnd_u3.bin", 0xc0001, 0x20000, CRC(aa02dc54) SHA1(a05c8c26480f3bae671428380c7684b9c29b5a53) )
951
952 ROM_REGION( 0x10000, "soundcpu", 0 )
953 ROM_LOAD( "reels.bin", 0x0000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
954
955 ROM_REGION( 0x20000, "upd", 0 )
956 ROM_LOAD( "sound.bin", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
957 ROM_END
958
959 ROM_START( screenp1 )
960 ROM_REGION( 0x100000, "maincpu", 0 )
961 ROM_LOAD16_BYTE( "sa4-379.u15", 0x00000, 0x20000, CRC(e21b120d) SHA1(bcdebf797381b0c585dbd3511b5e984f22de2206) )
962 ROM_LOAD16_BYTE( "sa4-379.u16", 0x00001, 0x20000, CRC(b04588b7) SHA1(1f9b933e441969c95bbbabbfbe44349bd945c326) )
963 ROM_LOAD16_BYTE( "sa4-379.u17", 0x40000, 0x20000, CRC(4b6cdc43) SHA1(1d6a4796ce67d0d00fe74a6bafd8b731450cdaab) )
964 ROM_LOAD16_BYTE( "sa4-379.u18", 0x40001, 0x20000, CRC(d986355f) SHA1(86d3f1712cd1bcc90a54945a2baccae2596de691) )
965
966 ROM_LOAD16_BYTE( "sq3-458.u2", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
967 ROM_LOAD16_BYTE( "sq3-458.u1", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
968 ROM_LOAD16_BYTE( "sq3-458.u4", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
969 ROM_LOAD16_BYTE( "sq3-458.u3", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
970
971 ROM_REGION( 0x10000, "soundcpu", 0 )
972 ROM_LOAD( "sr2-002", 0x0000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
973
974 ROM_REGION( 0x20000, "upd", 0 )
975 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
976 ROM_END
977
978 ROM_START( screenp1a ) // the same as screenp1 apart from the rom at u15
979 ROM_REGION( 0x100000, "maincpu", 0 )
980 ROM_LOAD16_BYTE( "sa4-378.u15", 0x00000, 0x20000, CRC(a5c0e623) SHA1(cd3215db924bbee80f5b3fbbd391c7246ad88c69) )
981 ROM_LOAD16_BYTE( "sa4-378.u16", 0x00001, 0x20000, CRC(b04588b7) SHA1(1f9b933e441969c95bbbabbfbe44349bd945c326) )
982 ROM_LOAD16_BYTE( "sa4-378.u17", 0x40000, 0x20000, CRC(4b6cdc43) SHA1(1d6a4796ce67d0d00fe74a6bafd8b731450cdaab) )
983 ROM_LOAD16_BYTE( "sa4-378.u18", 0x40001, 0x20000, CRC(d986355f) SHA1(86d3f1712cd1bcc90a54945a2baccae2596de691) )
984
985 ROM_LOAD16_BYTE( "sq3-458.u2", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
986 ROM_LOAD16_BYTE( "sq3-458.u1", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
987 ROM_LOAD16_BYTE( "sq3-458.u4", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
988 ROM_LOAD16_BYTE( "sq3-458.u3", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
989
990 ROM_REGION( 0x10000, "soundcpu", 0 )
991 ROM_LOAD( "sr2-002", 0x0000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
992
993 ROM_REGION( 0x20000, "upd", 0 )
994 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
995 ROM_END
996
997 ROM_START( screenp2 ) // exactly the same set has been seen with code sa5-196
998 ROM_REGION( 0x100000, "maincpu", 0 )
999 ROM_LOAD16_BYTE( "sa4-280.u15", 0x00000, 0x20000, CRC(d7206438) SHA1(70e7dc7d58bfa7dfe00250ab46fa71e951dbf901) )
1000 ROM_LOAD16_BYTE( "sa4-280.u16", 0x00001, 0x20000, CRC(f99e972f) SHA1(b01c8796967ff7f27269b31ef983b5fb26b03aab) )
1001 ROM_LOAD16_BYTE( "sa4-280.u17", 0x40000, 0x20000, CRC(cbde5343) SHA1(e341d642d8537bc221b3ca9803c221dc0cdf86c3) )
1002 ROM_LOAD16_BYTE( "sa4-280.u18", 0x40001, 0x20000, CRC(885b887b) SHA1(9cfb145c8cca49450fabbf4efab9c70f98ecd2af) )
1003
1004 ROM_LOAD16_BYTE( "u2.bin", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
1005 ROM_LOAD16_BYTE( "u1.bin", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
1006 ROM_LOAD16_BYTE( "u4.bin", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
1007 ROM_LOAD16_BYTE( "u3.bin", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
1008
1009 ROM_REGION( 0x10000, "soundcpu", 0 )
1010 ROM_LOAD( "reels.bin", 0x00000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
1011
1012 ROM_REGION( 0x20000, "upd", 0 )
1013 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
1014 ROM_END
1015
1016 ROM_START( screenp2a ) // the same as screenp2 apart from the rom at u15
1017 ROM_REGION( 0x100000, "maincpu", 0 )
1018 ROM_LOAD16_BYTE( "sa5-197.u15", 0x00000, 0x20000, CRC(4c067b11) SHA1(2364421b2f92669c3c164a170017bdf255134004) )
1019 ROM_LOAD16_BYTE( "sa5-197.u16", 0x00001, 0x20000, CRC(f99e972f) SHA1(b01c8796967ff7f27269b31ef983b5fb26b03aab) )
1020 ROM_LOAD16_BYTE( "sa5-197.u17", 0x40000, 0x20000, CRC(cbde5343) SHA1(e341d642d8537bc221b3ca9803c221dc0cdf86c3) )
1021 ROM_LOAD16_BYTE( "sa5-197.u18", 0x40001, 0x20000, CRC(885b887b) SHA1(9cfb145c8cca49450fabbf4efab9c70f98ecd2af) )
1022
1023 ROM_LOAD16_BYTE( "u2.bin", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
1024 ROM_LOAD16_BYTE( "u1.bin", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
1025 ROM_LOAD16_BYTE( "u4.bin", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
1026 ROM_LOAD16_BYTE( "u3.bin", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
1027
1028 ROM_REGION( 0x10000, "soundcpu", 0 )
1029 ROM_LOAD( "reels.bin", 0x00000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
1030
1031 ROM_REGION( 0x20000, "upd", 0 )
1032 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
1033 ROM_END
1034
1035 ROM_START( screenp3 )
1036 ROM_REGION( 0x100000, "maincpu", 0 )
1037 ROM_LOAD16_BYTE( "sa5-082.u15", 0x00000, 0x20000, CRC(ef98977d) SHA1(1cbbd4024b2076adc672b2a53fc8696615ce6eac) )
1038 ROM_LOAD16_BYTE( "sa5-082.u16", 0x00001, 0x20000, CRC(214823be) SHA1(db98ff915f1956e275425b48c4d829c407c81ed6) )
1039 ROM_LOAD16_BYTE( "sa5-082.u17", 0x40000, 0x20000, CRC(6e3b5259) SHA1(fb0e42a995768dfc08549a75021306978740ff85) )
1040 ROM_LOAD16_BYTE( "sa5-082.u18", 0x40001, 0x20000, CRC(fb1af777) SHA1(afc4123bc61900d41bd321aa7eb7fb0f982a9501) )
1041
1042 ROM_LOAD16_BYTE( "u2.bin", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
1043 ROM_LOAD16_BYTE( "u1.bin", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
1044 ROM_LOAD16_BYTE( "u4.bin", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
1045 ROM_LOAD16_BYTE( "u3.bin", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
1046
1047 ROM_REGION( 0x10000, "soundcpu", 0 )
1048 ROM_LOAD( "reels.bin", 0x00000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
1049
1050 ROM_REGION( 0x20000, "upd", 0 )
1051 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
1052 ROM_END
1053
1054 ROM_START( screenp3a )
1055 ROM_REGION( 0x100000, "maincpu", 0 ) // only u16 differs from above set
1056 ROM_LOAD16_BYTE( "sa5-083.u15", 0x00000, 0x20000, CRC(ef98977d) SHA1(1cbbd4024b2076adc672b2a53fc8696615ce6eac) )
1057 ROM_LOAD16_BYTE( "sa5-083.u16", 0x00001, 0x20000, CRC(84e17aa1) SHA1(cbc77315cb311a217d2b9092ffb3e3aee07a9633) )
1058 ROM_LOAD16_BYTE( "sa5-083.u17", 0x40000, 0x20000, CRC(6e3b5259) SHA1(fb0e42a995768dfc08549a75021306978740ff85) )
1059 ROM_LOAD16_BYTE( "sa5-083.u18", 0x40001, 0x20000, CRC(fb1af777) SHA1(afc4123bc61900d41bd321aa7eb7fb0f982a9501) )
1060
1061 ROM_LOAD16_BYTE( "u2.bin", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
1062 ROM_LOAD16_BYTE( "u1.bin", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
1063 ROM_LOAD16_BYTE( "u4.bin", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
1064 ROM_LOAD16_BYTE( "u3.bin", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
1065
1066 ROM_REGION( 0x10000, "soundcpu", 0 )
1067 ROM_LOAD( "reels.bin", 0x00000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
1068
1069 ROM_REGION( 0x20000, "upd", 0 )
1070 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
1071 ROM_END
1072
1073 ROM_START( screenp4 )
1074 ROM_REGION( 0x100000, "maincpu", 0 )
1075 ROM_LOAD16_BYTE( "sply5p15", 0x00000, 0x20000, CRC(c1e956d8) SHA1(364bfa7d3d90bcbb50720e02b3330503002e6fe3) )
1076 ROM_LOAD16_BYTE( "sply5p16", 0x00001, 0x20000, CRC(e23e7e33) SHA1(0c73a5da1e52ae74427222acdbe81c16f0ba334c) )
1077 // not sure which other roms these pair with.. but the ones below work
1078 ROM_LOAD16_BYTE( "sa4-280.u17", 0x40000, 0x20000, CRC(cbde5343) SHA1(e341d642d8537bc221b3ca9803c221dc0cdf86c3) )
1079 ROM_LOAD16_BYTE( "sa4-280.u18", 0x40001, 0x20000, CRC(885b887b) SHA1(9cfb145c8cca49450fabbf4efab9c70f98ecd2af) )
1080
1081 ROM_LOAD16_BYTE( "u2.bin", 0x80000, 0x20000, CRC(7091dfcd) SHA1(d28abd70db5c49baa93f0488e443f29c27a7a559) )
1082 ROM_LOAD16_BYTE( "u1.bin", 0x80001, 0x20000, CRC(1bb0efbf) SHA1(59d7e2e51928df149764502bc4bd5736463f40d7) )
1083 ROM_LOAD16_BYTE( "u4.bin", 0xc0000, 0x20000, CRC(0fb0fc84) SHA1(e7ef68130f9627a842849f41f67accf8593a0819) )
1084 ROM_LOAD16_BYTE( "u3.bin", 0xc0001, 0x20000, CRC(ef4617d8) SHA1(48231405a775585451bf970db5bb57ec2f238250) )
1085
1086 ROM_REGION( 0x10000, "soundcpu", 0 )
1087 ROM_LOAD( "reels.bin", 0x00000, 0x10000, CRC(1319cf82) SHA1(7a233072890361bcf384de4f90170c2ca713b1de) )
1088
1089 ROM_REGION( 0x20000, "upd", 0 )
1090 ROM_LOAD( "dig2-001.u12", 0x00000, 0x20000, CRC(498dd74f) SHA1(80bb204b3e9cadcecbfa75c78c52fb9908566c5e) )
1091 ROM_END
1092
1093 // are these actually missing from all the other sets, or not used by those games?
1094 #define MV1_MISSING_ROMS \
1095 ROM_REGION( 0x10000, "soundcpu", 0 ) \
1096 ROM_LOAD( "reels.bin", 0x00000, 0x10000, NO_DUMP ) \
1097 ROM_REGION( 0x20000, "upd", 0 ) \
1098 ROM_LOAD( "upd.bin", 0x00000, 0x20000, NO_DUMP )
1099 #define MV1_MISSING_ROMSU1U4 \
1100 ROM_LOAD16_BYTE( "u2.bin", 0x80000, 0x20000, NO_DUMP ) \
1101 ROM_LOAD16_BYTE( "u1.bin", 0x80001, 0x20000, NO_DUMP ) \
1102 ROM_LOAD16_BYTE( "u4.bin", 0xc0000, 0x20000, NO_DUMP ) \
1103 ROM_LOAD16_BYTE( "u3.bin", 0xc0001, 0x20000, NO_DUMP )
1104
1105 ROM_START( mv1bon )
1106 ROM_REGION( 0x100000, "maincpu", 0 )
1107 ROM_LOAD16_BYTE( "sw3-418.u15", 0x00000, 0x020000, CRC(0716a47b) SHA1(acbe903c270d2bb20c408d378007136803f96805) )
1108 ROM_LOAD16_BYTE( "sw3-418.u16", 0x00001, 0x020000, CRC(0d02369b) SHA1(4acbffb31bf6e98156e0b581e4e81459b33a845e) )
1109 ROM_LOAD16_BYTE( "sw3-418.u17", 0x40000, 0x020000, CRC(f1ddf287) SHA1(c1f7e92188995e9dbf47d50947bb7941b523b916) )
1110 ROM_LOAD16_BYTE( "sw3-418.u18", 0x40001, 0x020000, CRC(b81dbac9) SHA1(9549596169cff9b2bbbe12db551122e4d874b274) )
1111 MV1_MISSING_ROMSU1U4 // complains U1 is bad, so missing.
1112
1113 MV1_MISSING_ROMS
1114 ROM_END
1115
1116
1117 ROM_START( mv1cpc )
1118 ROM_REGION( 0x100000, "maincpu", 0 )
1119 ROM_LOAD16_BYTE( "sc4-066.u15", 0x00000, 0x020000, CRC(05599f6c) SHA1(3e2d5bc12c61b23ffbce40fcb1612611241f6db3) )
1120 ROM_LOAD16_BYTE( "sc4-066.u16", 0x00001, 0x020000, CRC(6e485115) SHA1(1288b83df9cbf8813ff07f53dcf03d3637d42f0e) )
1121 ROM_LOAD16_BYTE( "sc4-066.u17", 0x40000, 0x020000, CRC(ee7894e6) SHA1(070e1fed8b1b0f2876dbb5ef70b439baf9bbd2d7) )
1122 ROM_LOAD16_BYTE( "sc4-066.u18", 0x40001, 0x020000, CRC(a2320921) SHA1(424d26368b9452af9aa1760a98474c5b45edf6dd) )
1123 ROM_LOAD16_BYTE( "sq3-432.u2", 0x80000, 0x020000, CRC(4918a9e1) SHA1(6599c5f0b2ce5dc78758917195c04ae4bb078e94) )
1124 ROM_LOAD16_BYTE( "sq3-432.u1", 0x80001, 0x020000, CRC(2ee77952) SHA1(8f17d28220a25ad232aab029166a7535d5b5618b) )
1125 ROM_LOAD16_BYTE( "sq3-432.u4", 0xc0000, 0x020000, CRC(abd2df4d) SHA1(16b3df060094bef0ac41cb3cc71e910323d687f2) )
1126 ROM_LOAD16_BYTE( "sq3-432.u3", 0xc0001, 0x020000, CRC(7eb80747) SHA1(23158c400497f01ac7eddecf259ed988b6683eb9) )
1127
1128 MV1_MISSING_ROMS
1129 ROM_END
1130
1131
1132
1133 ROM_START( mv1cpca )
1134 ROM_REGION( 0x100000, "maincpu", 0 )
1135 ROM_LOAD16_BYTE( "sc4-067.u15", 0x00000, 0x020000, CRC(05599f6c) SHA1(3e2d5bc12c61b23ffbce40fcb1612611241f6db3) )
1136 ROM_LOAD16_BYTE( "sc4-067.u16", 0x00001, 0x020000, CRC(4068eac8) SHA1(8c9a762c827118b96ec6d257ab828436224a2123) )
1137 ROM_LOAD16_BYTE( "sc4-067.u17", 0x40000, 0x020000, CRC(ee7894e6) SHA1(070e1fed8b1b0f2876dbb5ef70b439baf9bbd2d7) )
1138 ROM_LOAD16_BYTE( "sc4-067.u18", 0x40001, 0x020000, CRC(a2320921) SHA1(424d26368b9452af9aa1760a98474c5b45edf6dd) )
1139 ROM_LOAD16_BYTE( "sq3-432.u2", 0x80000, 0x020000, CRC(4918a9e1) SHA1(6599c5f0b2ce5dc78758917195c04ae4bb078e94) )
1140 ROM_LOAD16_BYTE( "sq3-432.u1", 0x80001, 0x020000, CRC(2ee77952) SHA1(8f17d28220a25ad232aab029166a7535d5b5618b) )
1141 ROM_LOAD16_BYTE( "sq3-432.u4", 0xc0000, 0x020000, CRC(abd2df4d) SHA1(16b3df060094bef0ac41cb3cc71e910323d687f2) )
1142 ROM_LOAD16_BYTE( "sq3-432.u3", 0xc0001, 0x020000, CRC(7eb80747) SHA1(23158c400497f01ac7eddecf259ed988b6683eb9) )
1143
1144 MV1_MISSING_ROMS
1145 ROM_END
1146
1147
1148
1149 ROM_START( mv1cpcb )
1150 ROM_REGION( 0x100000, "maincpu", 0 )
1151 ROM_LOAD16_BYTE( "sc5-007.u15", 0x00000, 0x020000, CRC(d7e969ff) SHA1(2cf7bd0b7ae55f5570b699ff1a3a325658409c5c) )
1152 ROM_LOAD16_BYTE( "sc5-007.u16", 0x00001, 0x020000, CRC(bbc579c7) SHA1(ef1edd28f7015819f470cdf6736377268eee617c) )
1153 ROM_LOAD16_BYTE( "sc5-007.u17", 0x40000, 0x020000, CRC(f69bbac9) SHA1(27c6d06673a349bd2d0cd44692e0a0482b37c29f) )
1154 ROM_LOAD16_BYTE( "sc5-007.u18", 0x40001, 0x020000, CRC(6f3979b2) SHA1(09e74d05fb564293e0314e5dcdfb8edde4f1f9ec) )
1155 ROM_LOAD16_BYTE( "sq3-432.u2", 0x80000, 0x020000, CRC(4918a9e1) SHA1(6599c5f0b2ce5dc78758917195c04ae4bb078e94) )
1156 ROM_LOAD16_BYTE( "sq3-432.u1", 0x80001, 0x020000, CRC(2ee77952) SHA1(8f17d28220a25ad232aab029166a7535d5b5618b) )
1157 ROM_LOAD16_BYTE( "sq3-432.u4", 0xc0000, 0x020000, CRC(abd2df4d) SHA1(16b3df060094bef0ac41cb3cc71e910323d687f2) )
1158 ROM_LOAD16_BYTE( "sq3-432.u3", 0xc0001, 0x020000, CRC(7eb80747) SHA1(23158c400497f01ac7eddecf259ed988b6683eb9) )
1159
1160 MV1_MISSING_ROMS
1161 ROM_END
1162
1163
1164
1165 ROM_START( mv1cwq )
1166 ROM_REGION( 0x100000, "maincpu", 0 )
1167 ROM_LOAD16_BYTE( "sw2-319.u15", 0x00000, 0x020000, CRC(0a591eb7) SHA1(dad833711a5779300757e3e0fbe8f55073470724) )
1168 ROM_LOAD16_BYTE( "sw2-319.u16", 0x00001, 0x020000, CRC(8460cb55) SHA1(793c7e31619e5a30ad8bf851253c8cfcbddefbd7) )
1169 ROM_LOAD16_BYTE( "sw2-319.u17", 0x40000, 0x020000, CRC(f065c219) SHA1(b83a835a107740e2e846d31b4988237f1e60db78) )
1170 ROM_LOAD16_BYTE( "sw2-319.u18", 0x40001, 0x020000, CRC(0c291cb3) SHA1(aa7740a7a34e653e9b39a0ce64b344ace9d74e19) )
1171 MV1_MISSING_ROMSU1U4 // complains U1 is bad, so missing.
1172
1173 MV1_MISSING_ROMS
1174 ROM_END
1175
1176
1177 ROM_START( mv1cwqa )
1178 ROM_REGION( 0x100000, "maincpu", 0 )
1179 ROM_LOAD16_BYTE( "sw2-320.u15", 0x00000, 0x020000, CRC(02679239) SHA1(9c3f2ca7048a6ef716dbdd20f9a921e1d505638f) )
1180 ROM_LOAD16_BYTE( "sw2-320.u16", 0x00001, 0x020000, CRC(8460cb55) SHA1(793c7e31619e5a30ad8bf851253c8cfcbddefbd7) )
1181 ROM_LOAD16_BYTE( "sw2-320.u17", 0x40000, 0x020000, CRC(f065c219) SHA1(b83a835a107740e2e846d31b4988237f1e60db78) )
1182 ROM_LOAD16_BYTE( "sw2-320.u18", 0x40001, 0x020000, CRC(0c291cb3) SHA1(aa7740a7a34e653e9b39a0ce64b344ace9d74e19) )
1183 MV1_MISSING_ROMSU1U4 // complains U1 is bad, so missing.
1184
1185 MV1_MISSING_ROMS
1186 ROM_END
1187
1188
1189 ROM_START( mv1guac )
1190 ROM_REGION( 0x100000, "maincpu", 0 )
1191 ROM_LOAD16_BYTE( "sw3-146.u15", 0x00000, 0x020000, CRC(faa7ffa9) SHA1(db7e555727d126c266b6e973b61d1df205256c38) )
1192 ROM_LOAD16_BYTE( "sw3-146.u16", 0x00001, 0x020000, CRC(1f7209d9) SHA1(b512e28cef973c9b6e0a8b630500a5de08206f32) )
1193 ROM_LOAD16_BYTE( "sw3-146.u17", 0x40000, 0x020000, CRC(0ecdd43b) SHA1(f666281d4c2a67675d75fc07f7dfd6b53558468a) )
1194 ROM_LOAD16_BYTE( "sw3-146.u18", 0x40001, 0x020000, CRC(a107f3a9) SHA1(35de6636f2ca07e5db0fc7527b6d94940242e2a3) )
1195 MV1_MISSING_ROMSU1U4 // complains U1 is bad, so missing.
1196
1197 MV1_MISSING_ROMS
1198
1199 ROM_END
1200
1201
1202 ROM_START( mv1guaca )
1203 ROM_REGION( 0x100000, "maincpu", 0 )
1204 ROM_LOAD16_BYTE( "sw3-147.u15", 0x00000, 0x020000, CRC(c2d420ad) SHA1(3fe046fbb5eb51e85926707662e6009732f2d588) )
1205 ROM_LOAD16_BYTE( "sw3-147.u16", 0x00001, 0x020000, CRC(1f7209d9) SHA1(b512e28cef973c9b6e0a8b630500a5de08206f32) )
1206 ROM_LOAD16_BYTE( "sw3-147.u17", 0x40000, 0x020000, CRC(0ecdd43b) SHA1(f666281d4c2a67675d75fc07f7dfd6b53558468a) )
1207 ROM_LOAD16_BYTE( "sw3-147.u18", 0x40001, 0x020000, CRC(a107f3a9) SHA1(35de6636f2ca07e5db0fc7527b6d94940242e2a3) )
1208 MV1_MISSING_ROMSU1U4 // complains U1 is bad, so missing.
1209
1210 MV1_MISSING_ROMS
1211 ROM_END
1212
1213 ROM_START( mv1sfx )
1214 ROM_REGION( 0x100000, "maincpu", 0 )
1215 ROM_LOAD16_BYTE( "sa4-005.u15", 0x00000, 0x020000, CRC(07d2cd6a) SHA1(97bf2384241cbd0df4a3a0878c6022bee392611b) )
1216 ROM_LOAD16_BYTE( "sa4-005.u16", 0x00001, 0x020000, CRC(11c8f456) SHA1(81c6aa0b60c256236416a65c1199afa30b05ff1b) )
1217 ROM_LOAD16_BYTE( "sa4-005.u17", 0x40000, 0x020000, CRC(f34a0d24) SHA1(377c067068f7a6a73d3c5c6cdb62409116246e71) )
1218 ROM_LOAD16_BYTE( "sa4-005.u18", 0x40001, 0x020000, CRC(e13c544a) SHA1(206151ad83af5cf939f917bcec6600ca6ffb4544) )
1219
1220 MV1_MISSING_ROMS
1221 ROM_END
1222
1223
1224 ROM_START( mv1sfxa )
1225 ROM_REGION( 0x100000, "maincpu", 0 )
1226 ROM_LOAD16_BYTE( "sa4-006.u15", 0x00000, 0x020000, CRC(3fa1126e) SHA1(1f94aa796b065f4b63aac31df5f8368623a587ef) )
1227 ROM_LOAD16_BYTE( "sa4-006.u16", 0x00001, 0x020000, CRC(11c8f456) SHA1(81c6aa0b60c256236416a65c1199afa30b05ff1b) )
1228 ROM_LOAD16_BYTE( "sa4-006.u17", 0x40000, 0x020000, CRC(f34a0d24) SHA1(377c067068f7a6a73d3c5c6cdb62409116246e71) )
1229 ROM_LOAD16_BYTE( "sa4-006.u18", 0x40001, 0x020000, CRC(e13c544a) SHA1(206151ad83af5cf939f917bcec6600ca6ffb4544) )
1230
1231 MV1_MISSING_ROMS
1232 ROM_END
1233
1234 ROM_START( mv1sfx2 )
1235 ROM_REGION( 0x100000, "maincpu", 0 )
1236 ROM_LOAD16_BYTE( "fx28.u15", 0x00000, 0x020000, CRC(70e52fa5) SHA1(353bcc610c73ca3d4c14bd9802cf1f394ed702a8) )
1237 ROM_LOAD16_BYTE( "fx28.u16", 0x00001, 0x020000, CRC(9095fdce) SHA1(2c9db9cc613c6660dad5054f2bef04fec8d6bb17) )
1238 ROM_LOAD16_BYTE( "fx28.u17", 0x40000, 0x020000, CRC(0015cd0a) SHA1(788dbdbda8e28427f994527a2564ee2fffa38533) )
1239 ROM_LOAD16_BYTE( "fx28.u18", 0x40001, 0x020000, CRC(d9234071) SHA1(af45a2acc3d10df46a4e096777813fc70a099aee) )
1240 ROM_LOAD16_BYTE( "sq2-407.u2", 0x80000, 0x020000, CRC(d9f072e0) SHA1(175bee58255dc4b0f840d1bf0a246539fe8f9ba0) )
1241 ROM_LOAD16_BYTE( "sq2-407.u1", 0x80001, 0x020000, CRC(6a96a535) SHA1(fb1e7986f078f52a1db2707b150727a21c7877fc) )
1242 ROM_LOAD16_BYTE( "sq2-407.u4", 0xc0000, 0x020000, CRC(4670e71b) SHA1(742d0f0881e0b2e0e66c454c7a2c31da9f65cf08) )
1243 ROM_LOAD16_BYTE( "sq2-407.u3", 0xc0001, 0x020000, CRC(3e719d35) SHA1(4b6fe1e6a037102588162923fce87e0a67e5a109) )
1244
1245 MV1_MISSING_ROMS //Looks like dump was complete otherwise
1246 ROM_END
1247
1248 ROM_START( mv1wc )
1249 ROM_REGION( 0x100000, "maincpu", 0 )
1250 ROM_LOAD16_BYTE( "sa3-196.u15", 0x00000, 0x020000, CRC(ee78e8e6) SHA1(16cb3fb0ff23f054644d706583036dae44dac792) )
1251 ROM_LOAD16_BYTE( "sa3-196.u16", 0x00001, 0x020000, CRC(96beaa01) SHA1(b61487fbe470c776076cbdf7cd68063b56fde81d) )
1252 ROM_LOAD16_BYTE( "sa3-196.u17", 0x40000, 0x020000, CRC(d583ad06) SHA1(94d86d5481367624576bf489cd5347f1b4979646) )
1253 ROM_LOAD16_BYTE( "sa3-196.u18", 0x40001, 0x020000, CRC(84739f41) SHA1(a26d4df72fe723fceaf8471cdf89e4bd77585f0f) )
1254 MV1_MISSING_ROMSU1U4 // probably missing (no error, but hangs)
1255
1256 MV1_MISSING_ROMS
1257 ROM_END
1258
1259
1260 /*************************************
1261 *
1262 * Game driver(s)
1263 *
1264 *************************************/
1265
1266 void maygayv1_state::init_screenpl()
1267 {
1268 m_p1 = m_p3 = 0xff;
1269 }
1270
1271 #define GAME_FLAGS MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK
1272
1273 GAME( 1991, screenpl, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 4.0)", GAME_FLAGS )
1274 GAME( 1991, screenp1, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 1.9, set 1)", GAME_FLAGS )
1275 GAME( 1991, screenp1a, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 1.9, set 2)", GAME_FLAGS )
1276 GAME( 1991, screenp2, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 1.9, Isle of Man, set 1)", GAME_FLAGS )
1277 GAME( 1991, screenp2a, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 1.9, Isle of Man, set 2)", GAME_FLAGS )
1278 GAME( 1991, screenp3, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, SA5-082)", GAME_FLAGS )
1279 GAME( 1991, screenp3a, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, SA5-083)", GAME_FLAGS )
1280 GAME( 1991, screenp4, screenpl, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. ?.?)", GAME_FLAGS )
1281
1282 // incomplete sets
1283 GAME( 199?, mv1bon, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Believe It Or Not (Maygay, MV1 Video)", GAME_FLAGS )
1284 GAME( 199?, mv1cpc, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Caesar's Palace Club (Maygay, MV1 Video, set 1)", GAME_FLAGS )
1285 GAME( 199?, mv1cpca, mv1cpc, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Caesar's Palace Club (Maygay, MV1 Video, set 2)", GAME_FLAGS )
1286 GAME( 199?, mv1cpcb, mv1cpc, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Caesar's Palace Club (Maygay, MV1 Video, set 3)", GAME_FLAGS )
1287 GAME( 199?, mv1cwq, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Crossword Quiz (Maygay, MV1 Video, set 1)", GAME_FLAGS )
1288 GAME( 199?, mv1cwqa, mv1cwq, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Crossword Quiz (Maygay, MV1 Video, set 2)", GAME_FLAGS )
1289 GAME( 199?, mv1guac, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Give Us A Clue (Maygay, MV1 Video, set 1)", GAME_FLAGS )
1290 GAME( 199?, mv1guaca, mv1guac, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "Give Us A Clue (Maygay, MV1 Video, set 2)", GAME_FLAGS )
1291 GAME( 199?, mv1sfx, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT90, "Maygay", "Special Effects (Maygay, MV1 Video, set 1)", GAME_FLAGS )
1292 GAME( 199?, mv1sfxa, mv1sfx, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT90, "Maygay", "Special Effects (Maygay, MV1 Video, set 2)", GAME_FLAGS )
1293 GAME( 199?, mv1sfx2, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT90, "Maygay", "Special Effects V2 (Maygay, MV1 Video)", GAME_FLAGS )
1294 GAME( 199?, mv1wc, 0, maygayv1, screenpl, maygayv1_state, init_screenpl, ROT0, "Maygay", "World Cup (Maygay, MV1 Video)", GAME_FLAGS )
1295