trunk/src/mame/drivers/witch.c
| r19109 | r19110 | |
| 2 | 2 | |
| 3 | 3 | Witch / Pinball Champ '95 |
| 4 | 4 | |
| 5 | | |
| 6 | | Currently not dumped, the original(?) version that is (c) Excellent System 1992 |
| 7 | | |
| 8 | | |
| 9 | 5 | witch : Witch |
| 10 | 6 | press F1 to initialize NVRAM |
| 11 | 7 | |
| r19109 | r19110 | |
| 16 | 12 | -Auto-initialization on NVRAM error(?) |
| 17 | 13 | -Stars keep falling at the title screen |
| 18 | 14 | |
| 19 | | Hardware based on auction picture: |
| 20 | 15 | |
| 21 | 16 | ES-9104 PCB: |
| 17 | +-------------------------------------+ |
| 18 | | 12.00MHz 5.1A | |
| 19 | | | |
| 20 | | 6116 6116 | |
| 21 | | 6116 6116 | |
| 22 | | 24S10N | |
| 23 | | | |
| 24 | | SW2 Z80A 6116 | |
| 25 | |SW1 8255 SW5 Z80A | |
| 26 | | | |
| 27 | | SW3 6116 | |
| 28 | | SW4 YM2203 | |
| 29 | | YM2203 U_5B.5U 3.3U | |
| 30 | |X2 M5202 1.10V HM6264 | |
| 31 | | VR1 ES8712 BAT1 | |
| 32 | +-------------------------------------+ |
| 33 | |
| 22 | 34 | Z80A: Two Z80A CPUs frequency unknown (3MHz? 12MHz/4) (CPU2 used mainly for sound effects) |
| 23 | | YM2203: frequency unknown (music + sound effects + video scrolling access) |
| 24 | | ES8712: frequency unknown (samples) |
| 35 | YM2203: Two Yamaha YM2203+YM3014B sound chip combos. Frequency unknown (music + sound effects + video scrolling access) |
| 36 | M5202: OKI M5202 ADPCM Speech Synthesis IC |
| 37 | ES8712: Excellent System ES-8712 Streaming single channel ADPCM, frequency unknown (samples) |
| 38 | 8255: M5M82C255ASP Programmable Peripheral Interface |
| 25 | 39 | OSC: 12.000MHz |
| 26 | | other: 8-position dipswitch x 4, 3.6v battery + reset push button |
| 27 | | Standard 8-liner harness connectors. |
| 40 | X2: Unknown rated OSC or Resonator to drive M5202 (and ES8712?) |
| 41 | VR1: Volume pot |
| 42 | SW1: Service push button |
| 43 | other: 8-position dipswitch x 4 (labeled SW2 through SW5) |
| 44 | Standard 8-liner harness connectors (36x2 edge connector + 10x2 edge connector). |
| 28 | 45 | |
| 29 | 46 | |
| 30 | 47 | This is so far what could be reverse-engineered from the code. |
| r19109 | r19110 | |
| 197 | 214 | |
| 198 | 215 | TODO : |
| 199 | 216 | - Figure out the ports for the "PayOut" stuff (a006/a00c?) |
| 217 | - Hook up the OKI M5202 |
| 200 | 218 | */ |
| 201 | 219 | |
| 202 | 220 | #include "emu.h" |
| r19109 | r19110 | |
| 550 | 568 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 551 | 569 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 552 | 570 | |
| 553 | | PORT_START("UNK") /* DSW ?*/ |
| 571 | PORT_START("UNK") /* Not a DSW */ |
| 554 | 572 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) |
| 555 | 573 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 556 | 574 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r19109 | r19110 | |
| 592 | 610 | bb = MAX BET | 20 ; 30 ; 40 ; 60 |
| 593 | 611 | kkk = KEY IN | 1-10 ; 1-20 ; 1-40 ; 1-50 ; 1-100 ; 1-200 ; 1-250 ; 1-500 |
| 594 | 612 | */ |
| 595 | | PORT_START("A005") /* DSW */ |
| 596 | | PORT_DIPNAME( 0x07, 0x07, "PAY OUT" ) |
| 613 | PORT_START("A005") /* DSW "SW2" */ |
| 614 | PORT_DIPNAME( 0x07, 0x07, "PAY OUT" ) PORT_DIPLOCATION("SW2:1,2,3") |
| 597 | 615 | PORT_DIPSETTING( 0x07, "60" ) |
| 598 | 616 | PORT_DIPSETTING( 0x06, "65" ) |
| 599 | 617 | PORT_DIPSETTING( 0x05, "70" ) |
| r19109 | r19110 | |
| 602 | 620 | PORT_DIPSETTING( 0x02, "85" ) |
| 603 | 621 | PORT_DIPSETTING( 0x01, "90" ) |
| 604 | 622 | PORT_DIPSETTING( 0x00, "95" ) |
| 605 | | PORT_DIPNAME( 0x18, 0x00, "MAX BET" ) |
| 623 | PORT_DIPNAME( 0x18, 0x00, "MAX BET" ) PORT_DIPLOCATION("SW2:4,5") |
| 606 | 624 | PORT_DIPSETTING( 0x18, "20" ) |
| 607 | 625 | PORT_DIPSETTING( 0x10, "30" ) |
| 608 | 626 | PORT_DIPSETTING( 0x08, "40" ) |
| 609 | 627 | PORT_DIPSETTING( 0x00, "60" ) |
| 610 | | PORT_DIPNAME( 0xe0, 0xe0, "KEY IN" ) |
| 628 | PORT_DIPNAME( 0xe0, 0xe0, "KEY IN" ) PORT_DIPLOCATION("SW2:6,7,8") |
| 611 | 629 | PORT_DIPSETTING( 0xE0, "1-10" ) |
| 612 | 630 | PORT_DIPSETTING( 0xC0, "1-20" ) |
| 613 | 631 | PORT_DIPSETTING( 0xA0, "1-40" ) |
| r19109 | r19110 | |
| 621 | 639 | d = DOUBLE UP | ON ; OFF |
| 622 | 640 | cccc = COIN IN1 | 1-1 ; 1-2 ; 1-3 ; 1-4 ; 1-5 ; 1-6 ; 1-7 ; 1-8 ; 1-9 ; 1-10 ; 1-15 ; 1-20 ; 1-25 ; 1-30 ; 1-40 ; 1-50 |
| 623 | 641 | */ |
| 624 | | PORT_START("A004") /* DSW */ |
| 625 | | PORT_DIPNAME( 0x01, 0x00, "DOUBLE UP" ) |
| 642 | PORT_START("A004") /* DSW "SW3" Switches 2-4 not defined in manual */ |
| 643 | PORT_DIPNAME( 0x01, 0x00, "DOUBLE UP" ) PORT_DIPLOCATION("SW3:1") |
| 626 | 644 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 627 | 645 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 628 | | PORT_DIPNAME( 0xf0, 0xf0, "COIN IN1" ) |
| 646 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW3:2" ) |
| 647 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW3:3" ) |
| 648 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW3:4" ) |
| 649 | PORT_DIPNAME( 0xf0, 0xf0, "COIN IN1" ) PORT_DIPLOCATION("SW3:5,6,7,8") |
| 629 | 650 | PORT_DIPSETTING( 0xf0, "1-1" ) |
| 630 | 651 | PORT_DIPSETTING( 0xe0, "1-2" ) |
| 631 | 652 | PORT_DIPSETTING( 0xd0, "1-3" ) |
| r19109 | r19110 | |
| 650 | 671 | tt = TIME | 40 ; 45 ; 50 ; 55 |
| 651 | 672 | s = DEMO SOUND | ON ; OFF |
| 652 | 673 | */ |
| 653 | | PORT_START("YM_PortA") /* DSW */ |
| 654 | | PORT_DIPNAME( 0x0f, 0x0f, "COIN IN2" ) |
| 674 | PORT_START("YM_PortA") /* DSW "SW4" */ |
| 675 | PORT_DIPNAME( 0x0f, 0x0f, "COIN IN2" ) PORT_DIPLOCATION("SW4:1,2,3,4") |
| 655 | 676 | PORT_DIPSETTING( 0x0f, "1-1" ) |
| 656 | 677 | PORT_DIPSETTING( 0x0e, "1-2" ) |
| 657 | 678 | PORT_DIPSETTING( 0x0d, "1-3" ) |
| r19109 | r19110 | |
| 668 | 689 | PORT_DIPSETTING( 0x02, "5-1" ) |
| 669 | 690 | PORT_DIPSETTING( 0x01, "6-1" ) |
| 670 | 691 | PORT_DIPSETTING( 0x00, "10-1" ) |
| 671 | | PORT_DIPNAME( 0x10, 0x00, "PAYOUT SWITCH" ) |
| 692 | PORT_DIPNAME( 0x10, 0x00, "PAYOUT SWITCH" ) PORT_DIPLOCATION("SW4:5") |
| 672 | 693 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 673 | 694 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 674 | | PORT_DIPNAME( 0x60, 0x00, "TIME" ) |
| 695 | PORT_DIPNAME( 0x60, 0x00, "TIME" ) PORT_DIPLOCATION("SW4:6,7") |
| 675 | 696 | PORT_DIPSETTING( 0x60, "40" ) |
| 676 | 697 | PORT_DIPSETTING( 0x40, "45" ) |
| 677 | 698 | PORT_DIPSETTING( 0x20, "50" ) |
| 678 | 699 | PORT_DIPSETTING( 0x00, "55" ) |
| 679 | | PORT_DIPNAME( 0x80, 0x00, "DEMO SOUND" ) |
| 700 | PORT_DIPNAME( 0x80, 0x00, "DEMO SOUND" ) PORT_DIPLOCATION("SW4:8") |
| 680 | 701 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 681 | 702 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 682 | 703 | |
| r19109 | r19110 | |
| 686 | 707 | ll = GAME LIMIT | 500 ; 1000 ; 5000 ; 990000 |
| 687 | 708 | h = HOPPER ACTIVE | LOW ; HIGH |
| 688 | 709 | */ |
| 689 | | PORT_START("YM_PortB") /* DSW */ |
| 690 | | PORT_DIPNAME( 0x01, 0x01, "AUTO BET" ) |
| 710 | PORT_START("YM_PortB") /* DSW "SW5" Switches 5, 6 & 8 undefined in manual */ |
| 711 | PORT_DIPNAME( 0x01, 0x01, "AUTO BET" ) PORT_DIPLOCATION("SW5:1") |
| 691 | 712 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 692 | 713 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 693 | | PORT_DIPNAME( 0x06, 0x06, "GAME LIMIT" ) |
| 714 | PORT_DIPNAME( 0x06, 0x06, "GAME LIMIT" ) PORT_DIPLOCATION("SW5:2,3") |
| 694 | 715 | PORT_DIPSETTING( 0x06, "500" ) |
| 695 | 716 | PORT_DIPSETTING( 0x04, "1000" ) |
| 696 | 717 | PORT_DIPSETTING( 0x02, "5000" ) |
| 697 | | PORT_DIPSETTING( 0x00, "990000" ) |
| 698 | | PORT_DIPNAME( 0x08, 0x08, "HOPPER" ) |
| 718 | PORT_DIPSETTING( 0x00, "990000" ) /* 10000 as defined in the Excellent System version manual */ |
| 719 | PORT_DIPNAME( 0x08, 0x08, "HOPPER" ) PORT_DIPLOCATION("SW5:4") |
| 699 | 720 | PORT_DIPSETTING( 0x08, DEF_STR(Low) ) |
| 700 | 721 | PORT_DIPSETTING( 0x00, DEF_STR(High) ) |
| 722 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW5:5" ) |
| 723 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW5:6" ) |
| 724 | PORT_DIPNAME( 0x40, 0x40, "Unknown Use" ) PORT_DIPLOCATION("SW5:7") /* As defined in the Excellent System version manual */ |
| 725 | PORT_DIPSETTING( 0x40, "Matrix" ) |
| 726 | PORT_DIPSETTING( 0x00, "Straight (Normal)" ) |
| 727 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW5:8" ) |
| 701 | 728 | INPUT_PORTS_END |
| 702 | 729 | |
| 703 | 730 | static const gfx_layout tiles8x8_layout = |
| r19109 | r19110 | |
| 842 | 869 | |
| 843 | 870 | MACHINE_CONFIG_END |
| 844 | 871 | |
| 845 | | /* this set has (c)1992 Sega / Vic Tokai in the roms? */ |
| 846 | 872 | ROM_START( witch ) |
| 847 | 873 | ROM_REGION( 0x30000, "maincpu", 0 ) |
| 848 | | ROM_LOAD( "rom.u5", 0x10000, 0x20000, CRC(348fccb8) SHA1(947defd86c4a597fbfb9327eec4903aa779b3788) ) |
| 874 | ROM_LOAD( "u_5b.u5", 0x10000, 0x20000, CRC(5c9f685a) SHA1(b75950048009ffb8c3b356592b1c69f905a1a2bd) ) |
| 849 | 875 | ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) |
| 850 | 876 | |
| 851 | 877 | ROM_REGION( 0x10000, "sub", 0 ) |
| 852 | | ROM_LOAD( "rom.s6", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) |
| 878 | ROM_LOAD( "6.s6", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) |
| 853 | 879 | |
| 854 | 880 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 855 | | ROM_LOAD( "rom.u3", 0x00000, 0x20000, CRC(7007ced4) SHA1(6a0aac3ff9a4d5360c8ba1142f010add1b430ada) ) |
| 881 | ROM_LOAD( "3.u3", 0x00000, 0x20000, CRC(7007ced4) SHA1(6a0aac3ff9a4d5360c8ba1142f010add1b430ada) ) |
| 856 | 882 | |
| 857 | 883 | ROM_REGION( 0x40000, "gfx2", 0 ) |
| 858 | | ROM_LOAD( "rom.a1", 0x00000, 0x40000, CRC(512300a5) SHA1(1e9ba58d1ddbfb8276c68f6d5c3591e6b77abf21) ) |
| 884 | ROM_LOAD( "5.a1", 0x00000, 0x40000, CRC(fc37a9c2) SHA1(940d8c53d47eaa93a85a91e4ecb92fc4912d331d) ) |
| 859 | 885 | |
| 860 | 886 | ROM_REGION( 0x40000, "essnd", 0 ) |
| 861 | | ROM_LOAD( "rom.v10", 0x00000, 0x40000, CRC(62e42371) SHA1(5042abc2176d0c35fd6b698eca4145f93b0a3944) ) |
| 887 | ROM_LOAD( "1.v10", 0x00000, 0x40000, CRC(62e42371) SHA1(5042abc2176d0c35fd6b698eca4145f93b0a3944) ) |
| 888 | |
| 889 | ROM_REGION( 0x100, "prom", 0 ) |
| 890 | ROM_LOAD( "tbp24s10n.10k", 0x000, 0x100, CRC(ee7b9d8f) SHA1(3a7b75befab83bc37e4e403ad3632841c2d37707) ) /* Currently unused, unknown use */ |
| 862 | 891 | ROM_END |
| 863 | 892 | |
| 864 | 893 | |
| 894 | ROM_START( witchs ) /* this set has (c)1992 Sega / Vic Tokai in the roms */ |
| 895 | ROM_REGION( 0x30000, "maincpu", 0 ) |
| 896 | ROM_LOAD( "rom.u5", 0x10000, 0x20000, CRC(348fccb8) SHA1(947defd86c4a597fbfb9327eec4903aa779b3788) ) |
| 897 | ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) |
| 898 | |
| 899 | ROM_REGION( 0x10000, "sub", 0 ) |
| 900 | ROM_LOAD( "6.s6", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) /* Same data as the Witch set */ |
| 901 | |
| 902 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 903 | ROM_LOAD( "3.u3", 0x00000, 0x20000, CRC(7007ced4) SHA1(6a0aac3ff9a4d5360c8ba1142f010add1b430ada) ) /* Same data as the Witch set */ |
| 904 | |
| 905 | ROM_REGION( 0x40000, "gfx2", 0 ) |
| 906 | ROM_LOAD( "rom.a1", 0x00000, 0x40000, CRC(512300a5) SHA1(1e9ba58d1ddbfb8276c68f6d5c3591e6b77abf21) ) |
| 907 | |
| 908 | ROM_REGION( 0x40000, "essnd", 0 ) |
| 909 | ROM_LOAD( "1.v10", 0x00000, 0x40000, CRC(62e42371) SHA1(5042abc2176d0c35fd6b698eca4145f93b0a3944) ) /* Same data as the Witch set */ |
| 910 | |
| 911 | ROM_REGION( 0x100, "prom", 0 ) |
| 912 | ROM_LOAD( "tbp24s10n.10k", 0x000, 0x100, CRC(ee7b9d8f) SHA1(3a7b75befab83bc37e4e403ad3632841c2d37707) ) /* Currently unused, unknown use */ |
| 913 | ROM_END |
| 914 | |
| 915 | |
| 865 | 916 | ROM_START( pbchmp95 ) /* Licensed for Germany? */ |
| 866 | 917 | ROM_REGION( 0x30000, "maincpu", 0 ) |
| 867 | | ROM_LOAD( "3.bin", 0x10000, 0x20000, CRC(e881aa05) SHA1(10d259396cac4b9a1b72c262c11ffa5efbdac433) ) |
| 918 | ROM_LOAD( "3.bin", 0x10000, 0x20000, CRC(e881aa05) SHA1(10d259396cac4b9a1b72c262c11ffa5efbdac433) ) |
| 868 | 919 | ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) |
| 869 | 920 | |
| 870 | 921 | ROM_REGION( 0x10000, "sub", 0 ) |
| 871 | | ROM_LOAD( "4.bin", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) |
| 922 | ROM_LOAD( "4.bin", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) /* Same data as the Witch set */ |
| 872 | 923 | |
| 873 | 924 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 874 | | ROM_LOAD( "2.bin", 0x00000, 0x20000, CRC(7007ced4) SHA1(6a0aac3ff9a4d5360c8ba1142f010add1b430ada) ) |
| 925 | ROM_LOAD( "2.bin", 0x00000, 0x20000, CRC(7007ced4) SHA1(6a0aac3ff9a4d5360c8ba1142f010add1b430ada) ) /* Same data as the Witch set */ |
| 875 | 926 | |
| 876 | 927 | ROM_REGION( 0x40000, "gfx2", 0 ) |
| 877 | | ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(f6cf7ed6) SHA1(327580a17eb2740fad974a01d97dad0a4bef9881) ) |
| 928 | ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(f6cf7ed6) SHA1(327580a17eb2740fad974a01d97dad0a4bef9881) ) |
| 878 | 929 | |
| 879 | 930 | ROM_REGION( 0x40000, "essnd", 0 ) |
| 880 | | ROM_LOAD( "5.bin", 0x00000, 0x40000, CRC(62e42371) SHA1(5042abc2176d0c35fd6b698eca4145f93b0a3944) ) |
| 931 | ROM_LOAD( "5.bin", 0x00000, 0x40000, CRC(62e42371) SHA1(5042abc2176d0c35fd6b698eca4145f93b0a3944) ) /* Same data as the Witch set */ |
| 932 | |
| 933 | ROM_REGION( 0x100, "prom", 0 ) |
| 934 | ROM_LOAD( "tbp24s10n.10k", 0x000, 0x100, CRC(ee7b9d8f) SHA1(3a7b75befab83bc37e4e403ad3632841c2d37707) ) /* Currently unused, unknown use */ |
| 881 | 935 | ROM_END |
| 882 | 936 | |
| 883 | 937 | DRIVER_INIT_MEMBER(witch_state,witch) |
| r19109 | r19110 | |
| 889 | 943 | m_bank = -1; |
| 890 | 944 | } |
| 891 | 945 | |
| 892 | | GAME( 1992, witch, 0, witch, witch, witch_state, witch, ROT0, "Sega / Vic Tokai", "Witch", 0 ) |
| 946 | GAME( 1992, witch, 0, witch, witch, witch_state, witch, ROT0, "Excellent System", "Witch", 0 ) |
| 947 | GAME( 1992, witchs, witch, witch, witch, witch_state, witch, ROT0, "Sega / Vic Tokai", "Witch (Sega License)", 0 ) |
| 893 | 948 | GAME( 1995, pbchmp95, witch, witch, witch, witch_state, witch, ROT0, "Veltmeijer Automaten", "Pinball Champ '95", 0 ) |