trunk/src/mame/drivers/mcr.c
| r17812 | r17813 | |
| 19 | 19 | * Discs of Tron (Squawk n' Talk) |
| 20 | 20 | * NFL Football (Squawk n' Talk + laserdisk) |
| 21 | 21 | * Demolition Derby (Turbo Chip Squeak) |
| 22 | * Draw Poker |
| 22 | 23 | |
| 23 | 24 | Known bugs: |
| 24 | | * none at this time |
| 25 | * dpoker needs coincounters and hopper |
| 25 | 26 | |
| 26 | 27 | **************************************************************************** |
| 27 | 28 | |
| r17812 | r17813 | |
| 59 | 60 | ----- ----- ----- ------------ |
| 60 | 61 | Kick 90009 91399 90908 |
| 61 | 62 | Solar Fox 90009 91399 90908 |
| 63 | Draw Poker 90009 91399 90908 ? |
| 62 | 64 | |
| 63 | 65 | Satan's Hollow 90010 91399 90913 |
| 64 | 66 | Tron 90010 91399 90913 91418 |
| r17812 | r17813 | |
| 81 | 83 | **************************************************************************** |
| 82 | 84 | |
| 83 | 85 | Detailed CPU board descriptions: |
| 84 | | 90009 (Kick, Solar Fox) |
| 86 | 90009 (Kick, Solar Fox, Draw Poker) |
| 85 | 87 | * 2.5MHz Z80 |
| 86 | 88 | * up to 7x2k program EPROMs |
| 87 | 89 | * 2x4k background EPROMs |
| r17812 | r17813 | |
| 130 | 132 | **************************************************************************** |
| 131 | 133 | |
| 132 | 134 | Detailed Video board descriptions: |
| 133 | | 91399 (Kick, Solar Fox, Satan's Hollow, Tron, Kozmik Krooz'r, Domino Man, Wacko) |
| 135 | 91399 (Kick, Solar Fox, Draw Poker, Satan's Hollow, Tron, Kozmik Krooz'r, Domino Man, Wacko) |
| 134 | 136 | * 4x8k sprite EPROMs |
| 135 | 137 | * data is ORed into linebuffers |
| 136 | 138 | * support for hflip, vflip (code bits 6,7) |
| r17812 | r17813 | |
| 152 | 154 | **************************************************************************** |
| 153 | 155 | |
| 154 | 156 | Detailed Sound Board descriptions: |
| 155 | | 90908 (Kick, Solar Fox) |
| 157 | 90908 (Kick, Solar Fox, Draw Poker) |
| 156 | 158 | * 2MHz Z80 |
| 157 | 159 | * 2x2MHz AY8910 |
| 158 | 160 | * each AY8910 channel has a duty cycle controlled @ 50kHz by a down counter |
| r17812 | r17813 | |
| 187 | 189 | |
| 188 | 190 | **************************************************************************** |
| 189 | 191 | |
| 190 | | 90009 = CPU Board (Kick, SolarFox) |
| 192 | 90009 = CPU Board (Kick, SolarFox, DPoker) |
| 191 | 193 | 90010 = Super CPU (Kroozr, Tron, SHollow) |
| 192 | | 90908 = Sound I/O (Kick, SolarFox) |
| 194 | 90908 = Sound I/O (Kick, SolarFox, DPoker) |
| 193 | 195 | 90913 = Super Sound I/O (SHollow, Tron) |
| 194 | | 91399 = Video Gen (Kick, SolarFox, SHollow, Tron, Kroozr) |
| 196 | 91399 = Video Gen (Kick, SolarFox, DPoker, SHollow, Tron, Kroozr) |
| 195 | 197 | 91418 = Optical Encoder (Tron) |
| 196 | 198 | 91433 = Video Gen III (SpyHunt) |
| 197 | 199 | 91434 = Optical Sensor PC (Kroozr) |
| r17812 | r17813 | |
| 893 | 895 | INPUT_PORTS_END |
| 894 | 896 | |
| 895 | 897 | |
| 898 | static INPUT_PORTS_START( dpoker ) |
| 899 | PORT_START("ssio:IP0") |
| 900 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin-in Hit - cursor down in testmode |
| 901 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // Coin-in Release (to register a coin for now, press 5 and 6 is succession) |
| 902 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) // Coin-out Up |
| 903 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) // Coin-out Down |
| 904 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) |
| 905 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) |
| 906 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // Coin-drop Hit - select item in testmode |
| 907 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) // Coin-drop Release |
| 908 | |
| 909 | PORT_START("ssio:IP1") |
| 910 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) |
| 911 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) |
| 912 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) |
| 913 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) |
| 914 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) |
| 915 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) |
| 916 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) |
| 917 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) |
| 918 | |
| 919 | PORT_START("ssio:IP2") |
| 920 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 921 | |
| 922 | // 10-position DIP switch on the sound pcb |
| 923 | // settings and defaults are from a sticker inside the cabinet, I don't know where 9 or 10 are connected |
| 924 | PORT_START("ssio:IP3") |
| 925 | PORT_DIPNAME( 0x01, 0x01, "Hopper" ) PORT_DIPLOCATION("B3:1") |
| 926 | PORT_DIPSETTING( 0x01, "Relay Pulse" ) |
| 927 | PORT_DIPSETTING( 0x00, "Miser On" ) |
| 928 | PORT_DIPNAME( 0x02, 0x02, "Music" ) PORT_DIPLOCATION("B3:2") |
| 929 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 930 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 931 | PORT_DIPNAME( 0x04, 0x04, "Novelty" ) PORT_DIPLOCATION("B3:3") |
| 932 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 933 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 934 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("B3:4") |
| 935 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 936 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 937 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("B3:5") |
| 938 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 939 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 940 | PORT_DIPNAME( 0x20, 0x20, "After 5th Coin" ) PORT_DIPLOCATION("B3:6") |
| 941 | PORT_DIPSETTING( 0x20, "Face Up" ) |
| 942 | PORT_DIPSETTING( 0x00, "Logo Up" ) |
| 943 | PORT_DIPNAME( 0x40, 0x40, "Currency" ) PORT_DIPLOCATION("B3:7") |
| 944 | PORT_DIPSETTING( 0x40, "Ike Dollars" ) |
| 945 | PORT_DIPSETTING( 0x00, "Other Coins" ) |
| 946 | PORT_DIPNAME( 0x80, 0x00, "Background Color" ) PORT_DIPLOCATION("B3:8") |
| 947 | PORT_DIPSETTING( 0x80, "Green" ) |
| 948 | PORT_DIPSETTING( 0x00, "Blue" ) |
| 949 | // PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("B3:9") |
| 950 | // PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 951 | // PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 952 | // PORT_DIPNAME( 0x01, 0x00, "Freeze" ) PORT_DIPLOCATION("B3:10") |
| 953 | // PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 954 | // PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 955 | |
| 956 | PORT_START("ssio:IP4") |
| 957 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 958 | |
| 959 | PORT_START("ssio:DIP") |
| 960 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 961 | |
| 962 | PORT_START("P24") |
| 963 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) // Hopper Full |
| 964 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 965 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) // Coin Return |
| 966 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 967 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 1 Open") PORT_CODE(KEYCODE_A) // CAM OPEN |
| 968 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 1 Lock") PORT_CODE(KEYCODE_S) // CAM LOCK |
| 969 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 2 Open") PORT_CODE(KEYCODE_D) // HNG OPEN |
| 970 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 2 Lock") PORT_CODE(KEYCODE_F) // HNG LOCK |
| 971 | |
| 972 | PORT_START("P28") |
| 973 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 974 | |
| 975 | PORT_START("P2C") |
| 976 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? ARM HIT |
| 977 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 978 | PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // will only work after opening a door |
| 979 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) |
| 980 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? XTMSG (ON/OFF) |
| 981 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 982 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? EXTLKT (ON/OFF) |
| 983 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 984 | INPUT_PORTS_END |
| 985 | |
| 986 | |
| 896 | 987 | /* verified from wiring diagram, plus DIP switches from manual */ |
| 897 | 988 | static INPUT_PORTS_START( shollow ) |
| 898 | 989 | PORT_START("ssio:IP0") /* J4 1-8 */ |
| r17812 | r17813 | |
| 1866 | 1957 | ROM_END |
| 1867 | 1958 | |
| 1868 | 1959 | |
| 1960 | ROM_START( dpoker ) |
| 1961 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1962 | ROM_LOAD( "vppp.b3", 0x0000, 0x1000, CRC(2a76ded2) SHA1(3bb5467f0cbca07e72f6d61deb2687b7c1c839c8) ) |
| 1963 | ROM_LOAD( "vppp.b4", 0x1000, 0x1000, CRC(d6948faa) SHA1(4b9c3df45b1333c4e5595b790b439c104ab89eda) ) |
| 1964 | ROM_LOAD( "vppp.b5", 0x2000, 0x1000, CRC(a49916e5) SHA1(b21268c87bc5c3ea6e072846c5b97a7ae1e3995e) ) |
| 1965 | ROM_LOAD( "vppp.d4", 0x3000, 0x1000, CRC(c496934f) SHA1(cf27b6fb764fbf7ed4c5e1030c43498f0ac60c1c) ) |
| 1966 | ROM_LOAD( "vppp.d5", 0x4000, 0x1000, CRC(84f4bd38) SHA1(d1c53d8c6ba10d3bc343fe120eecbca70d48b759) ) |
| 1967 | ROM_LOAD( "vppp.d6", 0x5000, 0x1000, CRC(b0023bf1) SHA1(77a57a42dd403ef56f334ca295b5b43e94b99598) ) |
| 1968 | ROM_LOAD( "vppp.d7", 0x6000, 0x1000, CRC(a4012f5a) SHA1(011e77a6634fbb02a6ae99fe6685c92f2fad3fee) ) |
| 1969 | |
| 1970 | // The sound board was missing in this pcb set, we'll use the roms from Kick as placeholder. |
| 1971 | // Funnily enough, according to a cabinet recording, the sound is actually very similar to Kickman. |
| 1972 | ROM_REGION( 0x10000, "ssio:cpu", 0 ) |
| 1973 | ROM_LOAD( "4200-a.a7", 0x0000, 0x1000, BAD_DUMP CRC(9e35c02e) SHA1(92afd0126dcfb2d4401927b2cf261090e186b6fa) ) |
| 1974 | ROM_LOAD( "4300-b.a8", 0x1000, 0x1000, BAD_DUMP CRC(ca2b7c28) SHA1(fdcca3b755822c045c3c321cccc3f58112e2ad11) ) |
| 1975 | ROM_LOAD( "4400-c.a9", 0x2000, 0x1000, BAD_DUMP CRC(d1901551) SHA1(fd7d6059f8ac59f95ae6f8ef12fbfce7ed16ec12) ) |
| 1976 | ROM_LOAD( "4500-d.a10", 0x3000, 0x1000, BAD_DUMP CRC(d36ddcdc) SHA1(2d3ec83b9fa5a9d309c393a0c3ee45f0ba8192c9) ) |
| 1977 | |
| 1978 | ROM_REGION( 0x02000, "gfx1", 0 ) |
| 1979 | ROM_LOAD( "vpbg.g4", 0x0000, 0x1000, CRC(9fe9aad8) SHA1(f9174bcce3886548b8c18c5a06995d5c69ce5486) ) |
| 1980 | ROM_LOAD( "vpbg.g5", 0x1000, 0x1000, CRC(d43aeaae) SHA1(7bbabf9641c73154a769aa9bfc56ab0bc050e964) ) |
| 1981 | |
| 1982 | ROM_REGION( 0x08000, "gfx2", 0 ) |
| 1983 | ROM_LOAD( "vpfg.a1", 0x6000, 0x2000, CRC(d76ec7dd) SHA1(a7be6f05a988c59c7f83c640dd0ef824ea4ce839) ) |
| 1984 | ROM_LOAD( "vpfg.b1", 0x4000, 0x2000, CRC(cdba9a7d) SHA1(9076b52363cd84ae6e01ac46b369d7719536fac0) ) |
| 1985 | ROM_LOAD( "vpfg.d1", 0x2000, 0x2000, CRC(c661cace) SHA1(d5755f0c32a7d9ba283822daaf37ccbd2f6667de) ) |
| 1986 | ROM_LOAD( "vpfg.e1", 0x0000, 0x2000, CRC(acb3b469) SHA1(9769d6cfd49cba48264034fb5aed1d1b84ebba4c) ) |
| 1987 | ROM_END |
| 1988 | |
| 1989 | |
| 1869 | 1990 | ROM_START( shollow ) |
| 1870 | 1991 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1871 | 1992 | ROM_LOAD( "sh-pro.00", 0x0000, 0x2000, CRC(95e2b800) SHA1(8781295e21e5202288293fb9eb558cb1835b11ea) ) |
| r17812 | r17813 | |
| 2559 | 2680 | } |
| 2560 | 2681 | |
| 2561 | 2682 | |
| 2683 | DRIVER_INIT_MEMBER(mcr_state,dpoker) |
| 2684 | { |
| 2685 | mcr_init(machine(), 90009, 91399, 90908); |
| 2686 | |
| 2687 | machine().device("maincpu")->memory().space(AS_IO)->install_read_port(0x24, 0x24, "P24"); |
| 2688 | machine().device("maincpu")->memory().space(AS_IO)->install_read_port(0x28, 0x28, "P28"); |
| 2689 | machine().device("maincpu")->memory().space(AS_IO)->install_read_port(0x2c, 0x2c, "P2C"); |
| 2690 | |
| 2691 | mcr12_sprite_xoffs_flip = 16; |
| 2692 | } |
| 2693 | |
| 2694 | |
| 2562 | 2695 | DRIVER_INIT_MEMBER(mcr_state,mcr_90010) |
| 2563 | 2696 | { |
| 2564 | 2697 | mcr_init(machine(), 90010, 91399, 90913); |
| r17812 | r17813 | |
| 2659 | 2792 | GAME( 1981, kick, 0, mcr_90009, kick, mcr_state, kick, ORIENTATION_SWAP_XY, "Midway", "Kick (upright)", GAME_SUPPORTS_SAVE ) |
| 2660 | 2793 | GAME( 1981, kickman, kick, mcr_90009, kick, mcr_state, kick, ORIENTATION_SWAP_XY, "Midway", "Kickman (upright)", GAME_SUPPORTS_SAVE ) |
| 2661 | 2794 | GAME( 1981, kickc, kick, mcr_90009, kickc, mcr_state, kick, ROT90, "Midway", "Kick (cocktail)", GAME_SUPPORTS_SAVE ) |
| 2795 | GAME( 1985, dpoker, 0, mcr_90009, dpoker, mcr_state, dpoker, 0, "Bally", "Draw Poker (Bally, 03-20)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 2662 | 2796 | |
| 2663 | 2797 | /* 90010 CPU board + 91399 video gen + 90913 sound I/O */ |
| 2664 | 2798 | GAME( 1981, shollow, 0, mcr_90010, shollow, mcr_state, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 1)", GAME_SUPPORTS_SAVE ) |