Previous 199869 Revisions Next

r33877 Sunday 14th December, 2014 at 19:38:27 UTC by Angelo Salese
SMPC: added crude repeat key support in keyboard handling, makes typing more comfortable [Angelo Salese]
[src/emu/cpu/sh2]sh2comn.c
[src/emu/machine]smpc.c
[src/mame/drivers]igs009.c
[src/mame/includes]stv.h
[src/mess/drivers]pc6001.c pc9801.c
[src/mess/machine]victor9kb.c

trunk/src/emu/cpu/sh2/sh2comn.c
r242388r242389
699699   case 0x00:
700700      break;
701701   case 0x01:
702      return m_m[1] | 0; // bit31 is TDRE: Trasmit Data Register Empty. Forcing it to be '1' breaks Saturn.
702      return m_m[1] | 0; // bit31 is TDRE: Trasmit Data Register Empty. Forcing it to be '1' breaks Saturn ...
703//      return m_m[1] | (0x84 << 24); // ... but this is actually needed to make EGWord on SS to boot?
703704
704705   case 0x04: // TIER, FTCSR, FRC
705706      if ( mem_mask == 0x00ff0000 )
trunk/src/emu/machine/smpc.c
r242388r242389
171171      if (m_cart_reg[gameno] && m_cart_reg[gameno]->base())
172172         memcpy(memregion("abus")->base(), m_cart_reg[gameno]->base(), 0x3000000);
173173      else
174         memset(memregion("abus")->base(), 0x00, 0x3000000);
174         memset(memregion("abus")->base(), 0x00, 0x3000000); // TODO: 1-filled?
175175
176176      m_prev_bankswitch = gameno;
177177   }
r242388r242389
393393void saturn_state::smpc_keyboard(UINT8 pad_num, UINT8 offset)
394394{
395395   UINT16 game_key;
396
396   
397397   game_key = 0xffff;
398398
399399   game_key ^= ((ioport("KEYS_1")->read() & 0x80) << 8); // right
r242388r242389
415415   m_smpc.OREG[2+pad_num*offset] = game_key>>8; // game buttons, TODO
416416   m_smpc.OREG[3+pad_num*offset] = game_key & 0xff;
417417   /*
418      Keyboard Status hook-up
419      TODO: how shift key actually works? EGWord uses it in order to switch between hiragana and katakana modes.
418420       x--- ---- 0
419421       -x-- ---- caps lock
420422       --x- ---- num lock
r242388r242389
425427       ---- ---x Break key
426428   */
427429   m_smpc.OREG[4+pad_num*offset] = m_keyb.status | 6;
428   m_smpc.OREG[5+pad_num*offset] = m_keyb.data;
430   if(m_keyb.prev_data != m_keyb.data)
431   {
432      m_smpc.OREG[5+pad_num*offset] = m_keyb.data;
433      m_keyb.repeat_count = 0;
434      m_keyb.prev_data = m_keyb.data;
435   }
436   else
437   {
438      /* Very crude repeat support */
439      m_keyb.repeat_count ++;
440      m_keyb.repeat_count = m_keyb.repeat_count > 32 ? 32 : m_keyb.repeat_count;
441      m_smpc.OREG[5+pad_num*offset] = (m_keyb.repeat_count == 32) ? m_keyb.data : 0;
442   }
429443}
430444
431445void saturn_state::smpc_mouse(UINT8 pad_num, UINT8 offset, UINT8 id)
trunk/src/mame/drivers/igs009.c
r242388r242389
510510
511511static INPUT_PORTS_START( jingbell )
512512   PORT_START("DSW1")
513   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("DSW1:1")
513   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
514514   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
515515   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
516   PORT_DIPNAME( 0x02, 0x00, "W-Up Bonus" )      PORT_DIPLOCATION("DSW1:2")
516   PORT_DIPNAME( 0x02, 0x00, "W-Up Bonus" )
517517   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
518   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
519   PORT_DIPNAME( 0x04, 0x04, "Min Bet" )         PORT_DIPLOCATION("DSW1:3")
518   PORT_DIPSETTING(    0x00, DEF_STR( On ) )   // it's shown in attract mode
519   PORT_DIPNAME( 0x04, 0x04, "Min Bet" )
520520   PORT_DIPSETTING(    0x04, "1" )
521521   PORT_DIPSETTING(    0x00, "8" )
522   PORT_DIPNAME( 0x08, 0x08, "Spin Speed" )      PORT_DIPLOCATION("DSW1:4")
522   PORT_DIPNAME( 0x08, 0x08, "Spin Speed" )
523523   PORT_DIPSETTING(    0x08, "Slow" )
524524   PORT_DIPSETTING(    0x00, "Quick" )
525   PORT_DIPNAME( 0x10, 0x00, "Strip Girl" )      PORT_DIPLOCATION("DSW1:5")
525   PORT_DIPNAME( 0x10, 0x00, "Strip Girl" )
526526   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
527527   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
528   PORT_DIPNAME( 0x20, 0x20, "Payout Mode" )      PORT_DIPLOCATION("DSW1:6")
528   PORT_DIPNAME( 0x20, 0x20, "Payout Mode" )
529529   PORT_DIPSETTING(    0x20, DEF_STR( Normal ) )
530530   PORT_DIPSETTING(    0x00, "Auto" )
531   PORT_DIPNAME( 0xc0, 0xc0, "Player's Panel" )   PORT_DIPLOCATION("DSW1:7,8")
531   PORT_DIPNAME( 0xc0, 0xc0, "Player's Panel" )
532532   PORT_DIPSETTING(    0x00, "Type A" )
533533   PORT_DIPSETTING(    0xc0, "Type A" )
534534   PORT_DIPSETTING(    0x80, "Type B" )
535535   PORT_DIPSETTING(    0x40, "Type C" )
536536
537537   PORT_START("DSW2")
538   PORT_DIPNAME( 0x07, 0x07, "Main Game Rate (%)" )   PORT_DIPLOCATION("DSW2:1,2,3")
539   PORT_DIPSETTING(    0x07, "55" )
540   PORT_DIPSETTING(    0x06, "60" )
541   PORT_DIPSETTING(    0x05, "65" )
542   PORT_DIPSETTING(    0x04, "70" )
543   PORT_DIPSETTING(    0x03, "75" )
544   PORT_DIPSETTING(    0x02, "80" )
545   PORT_DIPSETTING(    0x01, "85" )
546   PORT_DIPSETTING(    0x00, "90" )
547   PORT_DIPNAME( 0x38, 0x38, "W-Up Chance (%)" )   PORT_DIPLOCATION("DSW2:4,5,6")
538   PORT_DIPNAME( 0x07, 0x07, "Main Game Rate (%)" )
539   PORT_DIPSETTING(    0x07, "89" )
540   PORT_DIPSETTING(    0x06, "90" )
541   PORT_DIPSETTING(    0x05, "91" )
542   PORT_DIPSETTING(    0x04, "92" )
543   PORT_DIPSETTING(    0x03, "93" )
544   PORT_DIPSETTING(    0x02, "94" )
545   PORT_DIPSETTING(    0x01, "95" )
546   PORT_DIPSETTING(    0x00, "96" )
547   PORT_DIPNAME( 0x38, 0x38, "W-Up Chance (%)" )
548548   PORT_DIPSETTING(    0x38, "93" )
549549   PORT_DIPSETTING(    0x30, "94" )
550550   PORT_DIPSETTING(    0x28, "95" )
r242388r242389
553553   PORT_DIPSETTING(    0x10, "98" )
554554   PORT_DIPSETTING(    0x08, "99" )
555555   PORT_DIPSETTING(    0x00, "100" )
556   PORT_DIPNAME( 0xc0, 0xc0, "Key In Limit" )      PORT_DIPLOCATION("DSW2:7,8")
556   PORT_DIPNAME( 0xc0, 0xc0, "Key In Limit" )
557557   PORT_DIPSETTING(    0xc0, "1k" )
558558   PORT_DIPSETTING(    0x80, "3k" )
559559   PORT_DIPSETTING(    0x40, "5k" )
560560   PORT_DIPSETTING(    0x00, "10k" )
561561
562562   PORT_START("DSW3")
563   PORT_DIPNAME( 0x07, 0x07, "Key In Rate" )      PORT_DIPLOCATION("DSW3:1,2,3")
563   PORT_DIPNAME( 0x07, 0x07, "Key In Rate" )
564564   PORT_DIPSETTING(    0x07, "1" )
565565   PORT_DIPSETTING(    0x06, "5" )
566566   PORT_DIPSETTING(    0x05, "10" )
r242388r242389
569569   PORT_DIPSETTING(    0x02, "100" )
570570   PORT_DIPSETTING(    0x01, "200" )
571571   PORT_DIPSETTING(    0x00, "500" )
572   PORT_DIPNAME( 0x38, 0x38, "Coin 1 Rate" )      PORT_DIPLOCATION("DSW3:4,5,6")
572   PORT_DIPNAME( 0x38, 0x38, "Coin 1 Rate" )
573573   PORT_DIPSETTING(    0x38, "1" )
574574   PORT_DIPSETTING(    0x30, "2" )
575575   PORT_DIPSETTING(    0x28, "5" )
r242388r242389
578578   PORT_DIPSETTING(    0x10, "25" )
579579   PORT_DIPSETTING(    0x08, "50" )
580580   PORT_DIPSETTING(    0x00, "100" )
581   PORT_DIPNAME( 0xc0, 0xc0, "System Limit" )      PORT_DIPLOCATION("DSW3:7,8")
581   PORT_DIPNAME( 0xc0, 0xc0, "System Limit" )
582582   PORT_DIPSETTING(    0xc0, "5k" )
583583   PORT_DIPSETTING(    0x80, "10k" )
584584   PORT_DIPSETTING(    0x40, "30k" )
585   PORT_DIPSETTING(    0x00, "Unlimited" )
585   PORT_DIPSETTING(    0x00, "50k" )
586586
587587   PORT_START("DSW4")
588   PORT_DIPNAME( 0x01, 0x01, "Min Play For Fever" )   PORT_DIPLOCATION("DSW4:1")
588   PORT_DIPNAME( 0x01, 0x01, "Min Play For Fever" )
589589   PORT_DIPSETTING(    0x01, "8" )
590590   PORT_DIPSETTING(    0x00, "16" )
591   PORT_DIPNAME( 0x02, 0x02, "Max Bet" )         PORT_DIPLOCATION("DSW4:2")
591   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
592592   PORT_DIPSETTING(    0x02, "16" )
593593   PORT_DIPSETTING(    0x00, "32" )
594   PORT_DIPNAME( 0x1c, 0x1c, "Coin 2 Rate" )      PORT_DIPLOCATION("DSW4:3,4,5")
594   PORT_DIPNAME( 0x1c, 0x1c, "Coin 2 Rate" )
595595   PORT_DIPSETTING(    0x1c, "1" )
596596   PORT_DIPSETTING(    0x18, "2" )
597597   PORT_DIPSETTING(    0x14, "5" )
r242388r242389
600600   PORT_DIPSETTING(    0x08, "40" )
601601   PORT_DIPSETTING(    0x04, "50" )
602602   PORT_DIPSETTING(    0x00, "100" )
603   PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" )      PORT_DIPLOCATION("DSW4:6,7")
603   PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" )
604604   PORT_DIPSETTING(    0x60, "1" )
605605   PORT_DIPSETTING(    0x40, "10" )
606606   PORT_DIPSETTING(    0x20, "50" )
607607   PORT_DIPSETTING(    0x00, "100" )
608   PORT_DIPNAME( 0x80, 0x80, "Play Line" )         PORT_DIPLOCATION("DSW4:8")
608   PORT_DIPNAME( 0x80, 0x80, "Play Line" )
609609   PORT_DIPSETTING(    0x80, "8" )
610610   PORT_DIPSETTING(    0x00, "16" )
611611
612// These are from the manual for v201us - DSW1-DSW4 match but DSW5 doesn't seem to match or actuallly do anything
613612   PORT_START("DSW5")
614   PORT_DIPNAME( 0x03, 0x00, "Maximum Play" )      PORT_DIPLOCATION("DSW5:1,2")
615   PORT_DIPSETTING(    0x00, "64" )
616   PORT_DIPSETTING(    0x01, "32" )
617   PORT_DIPSETTING(    0x02, "16" )
618   PORT_DIPSETTING(    0x03, "8" )
619   PORT_DIPNAME( 0x04, 0x04, "Skill Stop" )      PORT_DIPLOCATION("DSW5:3")
620   PORT_DIPSETTING(    0x04, "On" )
621   PORT_DIPSETTING(    0x00, "Off" )
622   PORT_DIPNAME( 0x08, 0x00, "Hands Count" )      PORT_DIPLOCATION("DSW5:4")
623   PORT_DIPSETTING(    0x08, "No" )
624   PORT_DIPSETTING(    0x00, "Yes" )
625   PORT_DIPNAME( 0x30, 0x00, "Hands Coin Rate" )   PORT_DIPLOCATION("DSW5:5,6")
626   PORT_DIPSETTING(    0x00, "25" )
627   PORT_DIPSETTING(    0x20, "10" )
628   PORT_DIPSETTING(    0x10, "5" )
629   PORT_DIPSETTING(    0x30, "1" )
630   PORT_DIPNAME( 0x40, 0x40, "Hands Coin Value" )   PORT_DIPLOCATION("DSW5:7")
631   PORT_DIPSETTING(    0x00, "40" )
632   PORT_DIPSETTING(    0x40, "20" )
633   PORT_DIPNAME( 0x80, 0x80, "Unused" )         PORT_DIPLOCATION("DSW5:8")
634   PORT_DIPSETTING(    0x00, "On" )
635   PORT_DIPSETTING(    0x80, "Off" )
613   PORT_DIPUNKNOWN( 0x01, 0x01 )
614   PORT_DIPUNKNOWN( 0x02, 0x02 )
615   PORT_DIPUNKNOWN( 0x04, 0x04 )
616   PORT_DIPUNKNOWN( 0x08, 0x08 )
617   PORT_DIPUNKNOWN( 0x10, 0x10 )
618   PORT_DIPUNKNOWN( 0x20, 0x20 )
619   PORT_DIPUNKNOWN( 0x40, 0x40 )
620   PORT_DIPUNKNOWN( 0x80, 0x80 )
636621
637622   PORT_START("SERVICE")
638623   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
r242388r242389
649634   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN       )
650635   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2         )
651636   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN  )
652   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down")
637   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down")    // pays out
653638   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
654639   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
655640   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
r242388r242389
665650   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
666651
667652   PORT_START("BUTTONS2")
668   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1      ) PORT_NAME("Start / Half D-Up Bet")
653   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1      ) PORT_NAME("Start / H_Dup")
669654   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_LOW  ) PORT_NAME("Small")
670   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1     ) PORT_NAME("Left Bet / 2X D-Up Bet")
655   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1     ) PORT_NAME("Left Bet / D_Dup")
671656   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )
672   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2     ) PORT_NAME("Right Bet / D-Up Bet")
657   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2     ) PORT_NAME("Right Bet / Dup")
673658   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big")
674659   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
675660   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
trunk/src/mame/includes/stv.h
r242388r242389
142142   struct {
143143      UINT8 status;
144144      UINT8 data;
145      UINT8 prev_data;
146      UINT16 repeat_count;
145147   }m_keyb;
146148
147149   /* Saturn specific*/
trunk/src/mess/drivers/pc6001.c
r242388r242389
1313      do some tight synch between the master CPU and a code simulation,but I think
1414      it's not worth the effort...
1515    - Identify and hook-up the FDC device, apparently PC-6001 and PC-6601 doesn't even use the same thing;
16    - PC-6601: mon r-0 type games doesn't seem to work at all on this version?
16    - PC-6601: mon r-0 type games doesn't seem to work at all on this system?
1717    - PC-6001SR: get it to boot, also implement MK-2 compatibility mode (it changes the memory map to behave like the older versions)
1818    - Currently rewriting the video part without the MC6847 for two reasons:
1919        A) the later models have a custom video chip in the place of the MC6847,
r242388r242389
2929                            nothing is shown on screen, other emus behaves the same, bad dump?
3030    - Dawn Patrol (cart): presumably too slow;
3131    (Mk2 mode 5 games)
32    - 3D Golf Simulation Super Version: gameplay / inputs looks broken
32    - 3D Golf Simulation Super Version: gameplay / inputs seems broken
3333    - American Truck: Screen is offset at the loading screen, loading bug?
3434    - Castle Excellent: copyright text drawing is quite bogus, scans text in vertical instead of horizontal?
3535    - Dezeni Land (ALL versions) / Hurry Fox 1/2: asks you to "load something", can't do it with current cassette kludge, also, for Dezeni Land(s) keyboard irqs
trunk/src/mess/drivers/pc9801.c
r242388r242389
14321432   {
14331433      dst_off &= 7;
14341434      if(m_egc.first)
1435         m_egc.count -= dir ? 8 - dst_off : (dst_off + 1);
1435         m_egc.count -= dir ? 7 - dst_off : dst_off;
14361436      else
14371437         m_egc.count -= 8;
14381438   }
14391439   else
14401440   {
14411441      if(m_egc.first)
1442         m_egc.count -= dir ? 16 - dst_off : (dst_off + 1);
1442         m_egc.count -= dir ? 15 - dst_off : dst_off;
14431443      else
14441444         m_egc.count -= 16;
14451445   }
r242388r242389
14551455
14561456UINT16 pc9801_state::egc_blit_r(UINT32 offset, UINT16 mem_mask)
14571457{
1458   UINT32 plane_off = offset & 0x13fff;
1458   UINT16 plane_off = offset & 0x13fff;
14591459   if((m_egc.regs[2] & 0x300) == 0x100)
14601460   {
14611461      m_egc.pat[0] = m_video_ram_2[plane_off + 0x4000];
trunk/src/mess/machine/victor9kb.c
r242388r242389
418418INPUT_PORTS_START( victor9k_keyboard )
419419   PORT_START("Y0")
420420   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CLR/HOME") PORT_CODE(KEYCODE_HOME) // S12
421   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_PLUSMINUS" "UTF8_DEGREES" "UTF8_SMALL_PI) PORT_CODE(KEYCODE_TILDE) // +-, degree, pi // S13
421   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xc2\xb1/\xc2\xb0/"UTF8_SMALL_PI) PORT_CODE(KEYCODE_TILDE) // +-, degree, pi // S13
422422   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP" SCRL "UTF8_DOWN) PORT_CODE(KEYCODE_SCRLOCK) // unicode arrows // S33
423423   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("TAB/BACK") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) // S34
424424   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RVS On-Off/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) // S54
r242388r242389
510510
511511   PORT_START("Y9")
512512   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad %") // find a good key for this // S30
513   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad "UTF8_DIVIDE) PORT_CODE(KEYCODE_SLASH_PAD) // unicode division sign U+00F7 // S31
513   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad \xc3\xb7") PORT_CODE(KEYCODE_SLASH_PAD) // unicode division sign U+00F7 // S31
514514   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) // S51
515515   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) // S52
516516   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) // S72
r242388r242389
519519   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad Enter") PORT_CODE(KEYCODE_ENTER_PAD) // S94
520520
521521   PORT_START("YA")
522   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad "UTF8_MULTIPLY) PORT_CODE(KEYCODE_ASTERISK) // unicode multiply sign U+00D7 // S32
522   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad \xc3\x97") PORT_CODE(KEYCODE_ASTERISK) // unicode multiply sign U+00D7 // S32
523523   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F10 [10]") PORT_CODE(KEYCODE_F10) // S11
524524   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD) // S53
525525   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F9 [9]") PORT_CODE(KEYCODE_F9) // S10


Previous 199869 Revisions Next


© 1997-2024 The MAME Team