From 7e02382d0ad83c7351bfb68644419ec029668e93 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Wed, 11 Mar 2015 04:07:26 +1100 Subject: Fix chry10/chrygld regression Check DIP switches for chrygld/chry10/ncb3/cb3a and make corrections Factor out even more common DIPs --- src/mame/drivers/goldstar.c | 742 +++++++++++++------------------------------ src/mame/includes/goldstar.h | 21 +- 2 files changed, 223 insertions(+), 540 deletions(-) diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c index bad1ec20763..bd1918f8eca 100644 --- a/src/mame/drivers/goldstar.c +++ b/src/mame/drivers/goldstar.c @@ -1134,6 +1134,33 @@ static INPUT_PORTS_START( cmv4_service ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") INPUT_PORTS_END +static INPUT_PORTS_START( cmv4_dsw2 ) + PORT_START("DSW2") + PORT_DIPNAME( 0x07, 0x07, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") + PORT_DIPSETTING( 0x07, "1 (Lowest)" ) + PORT_DIPSETTING( 0x06, "2" ) + PORT_DIPSETTING( 0x05, "3" ) + PORT_DIPSETTING( 0x04, "4" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Highest)" ) + PORT_DIPNAME( 0x18, 0x18, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") + PORT_DIPSETTING( 0x18, "300" ) + PORT_DIPSETTING( 0x10, "500" ) + PORT_DIPSETTING( 0x08, "1000" ) + PORT_DIPSETTING( 0x00, "Unlimited" ) + PORT_DIPNAME( 0x20, 0x02, "100+ Odds Sound" ) PORT_DIPLOCATION("DSW2:6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, "Key In Type" ) PORT_DIPLOCATION("DSW2:7") + PORT_DIPSETTING( 0x40, "A-Type" ) + PORT_DIPSETTING( 0x00, "B-Type" ) + PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") + PORT_DIPSETTING( 0x80, "Unlimited" ) + PORT_DIPSETTING( 0x00, "Limited" ) +INPUT_PORTS_END + static INPUT_PORTS_START( cmv4_dsw3 ) PORT_START("DSW3") PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") @@ -1168,7 +1195,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( cmv4_dsw4 ) PORT_START("DSW4") - PORT_DIPNAME( 0x07, 0x06, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") + PORT_DIPNAME( 0x07, 0x07, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") PORT_DIPSETTING( 0x07, "5,000" ) PORT_DIPSETTING( 0x06, "10,000" ) PORT_DIPSETTING( 0x05, "20,000" ) @@ -1184,8 +1211,8 @@ static INPUT_PORTS_START( cmv4_dsw4 ) PORT_DIPSETTING( 0x10, "C-Type" ) PORT_DIPSETTING( 0x00, "D-Type" ) PORT_DIPNAME( 0x20, 0x20, "Min. Bet For Bonus Play" ) PORT_DIPLOCATION("DSW4:6") - PORT_DIPSETTING( 0x20, "16 Bet" ) PORT_DIPSETTING( 0x00, "8 Bet" ) + PORT_DIPSETTING( 0x20, "16 Bet" ) PORT_DIPNAME( 0x40, 0x40, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) PORT_DIPSETTING( 0x00, DEF_STR( High ) ) @@ -1196,7 +1223,7 @@ INPUT_PORTS_END INPUT_PORTS_START( cmv4_dsw5 ) PORT_START("DSW5") - PORT_DIPNAME( 0x01, 0x00, "Display Of Doll On Demo" ) PORT_DIPLOCATION("DSW5:1") + PORT_DIPNAME( 0x01, 0x01, "Display Of Doll On Demo" ) PORT_DIPLOCATION("DSW5:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") @@ -1209,7 +1236,7 @@ INPUT_PORTS_START( cmv4_dsw5 ) PORT_DIPSETTING( 0x10, "9-5-1" ) PORT_DIPSETTING( 0x08, "6-3-1" ) PORT_DIPSETTING( 0x00, "3-2-1" ) - PORT_DIPNAME( 0x20, 0x00, "Display Of Doll At All Fr. Bonus" ) PORT_DIPLOCATION("DSW5:6") + PORT_DIPNAME( 0x20, 0x20, "Display Of Doll At All Fr. Bonus" ) PORT_DIPLOCATION("DSW5:6") PORT_DIPSETTING( 0x20, DEF_STR( Low ) ) PORT_DIPSETTING( 0x00, DEF_STR( High ) ) PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:7") @@ -1221,6 +1248,66 @@ INPUT_PORTS_START( cmv4_dsw5 ) INPUT_PORTS_END +static INPUT_PORTS_START( cb3_dsw3 ) + PORT_INCLUDE( cmv4_dsw3 ) + PORT_MODIFY("DSW3") + PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") + PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) /* A-Type */ + PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) + PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) + PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) + PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) /* B-Type */ + PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) + PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) + PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) + PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") + PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) /* C-Type */ + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x00, "1 Ticket/5 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) /* D-Type */ + PORT_DIPSETTING( 0x10, "1 Ticket/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPSETTING( 0x20, "1 Ticket/25 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPSETTING( 0x30, "1 Ticket/50 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) +INPUT_PORTS_END + +static INPUT_PORTS_START( cb3_dsw4 ) + PORT_INCLUDE( cmv4_dsw4 ) + PORT_MODIFY("DSW4") + PORT_DIPNAME( 0x10, 0x10, "Coin D Type" ) PORT_DIPLOCATION("DSW4:5") + PORT_DIPSETTING( 0x10, "C-Type (Tokens)" ) + PORT_DIPSETTING( 0x00, "D-Type (Tickets)" ) + PORT_DIPNAME( 0x80, 0x80, "Coin A Mode" ) PORT_DIPLOCATION("DSW4:8") + PORT_DIPSETTING( 0x80, "Unexchange" ) + PORT_DIPSETTING( 0x00, "Exchange" ) +INPUT_PORTS_END + +static INPUT_PORTS_START( cb3_dsw5 ) + PORT_START("DSW5") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") /* not checked */ + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x06, 0x06, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") /* not working */ + PORT_DIPSETTING( 0x06, "1,000" ) + PORT_DIPSETTING( 0x04, "5,000" ) + PORT_DIPSETTING( 0x02, "10,000" ) + PORT_DIPSETTING( 0x00, "20,000" ) + PORT_DIPNAME( 0x18, 0x10, "Coin Out Rate" ) PORT_DIPLOCATION("DSW5:4,5") /* not checked */ + PORT_DIPSETTING( 0x00, "100 Credits / 1 Pulse" ) + PORT_DIPSETTING( 0x08, "100 Credits / 5 Pulses" ) + PORT_DIPSETTING( 0x10, "100 Credits / 10 Pulses" ) + PORT_DIPSETTING( 0x18, "100 Credits / 100 Pulses" ) + PORT_DIPNAME( 0x20, 0x20, "W-Up Girl" ) PORT_DIPLOCATION("DSW5:6") /* not working */ + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0xc0, 0xc0, "Coin In Rate" ) PORT_DIPLOCATION("DSW5:7,8") /* not checked */ + PORT_DIPSETTING( 0xc0, "100 Credits / 1 Pulse" ) + PORT_DIPSETTING( 0x40, "100 Credits / 5 Pulses" ) + PORT_DIPSETTING( 0x80, "100 Credits / 10 Pulses" ) + PORT_DIPSETTING( 0x00, "100 Credits / 100 Pulses" ) +INPUT_PORTS_END + + static INPUT_PORTS_START( cmv801 ) PORT_INCLUDE( cmv4_player ) @@ -1253,7 +1340,8 @@ static INPUT_PORTS_START( cmv801 ) PORT_DIPSETTING( 0x80, "64" ) PORT_DIPSETTING( 0xc0, "96" ) - PORT_START("DSW2") + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x07, "35%" ) PORT_DIPSETTING( 0x06, "40%" ) @@ -1263,20 +1351,10 @@ static INPUT_PORTS_START( cmv801 ) PORT_DIPSETTING( 0x02, "60%" ) PORT_DIPSETTING( 0x01, "65%" ) PORT_DIPSETTING( 0x00, "70%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */ - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "A-Type" ) - PORT_DIPSETTING( 0x00, "B-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit OK */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */ @@ -1323,8 +1401,9 @@ static INPUT_PORTS_START( cmv4 ) PORT_DIPSETTING( 0x80, "32" ) PORT_DIPSETTING( 0xc0, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x07, "30%" ) PORT_DIPSETTING( 0x06, "38%" ) PORT_DIPSETTING( 0x05, "46%" ) @@ -1333,20 +1412,10 @@ static INPUT_PORTS_START( cmv4 ) PORT_DIPSETTING( 0x02, "70%" ) PORT_DIPSETTING( 0x01, "78%" ) PORT_DIPSETTING( 0x00, "86%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */ - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "A-Type" ) - PORT_DIPSETTING( 0x00, "B-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit OK */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */ @@ -1401,8 +1470,9 @@ static INPUT_PORTS_START( cmaster ) PORT_DIPSETTING( 0x80, "32" ) PORT_DIPSETTING( 0xc0, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x07, "45%" ) PORT_DIPSETTING( 0x06, "50%" ) PORT_DIPSETTING( 0x05, "55%" ) @@ -1411,20 +1481,10 @@ static INPUT_PORTS_START( cmaster ) PORT_DIPSETTING( 0x02, "70%" ) PORT_DIPSETTING( 0x01, "75%" ) PORT_DIPSETTING( 0x00, "80%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */ - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "A-Type" ) - PORT_DIPSETTING( 0x00, "B-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit OK */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */ @@ -1479,8 +1539,9 @@ static INPUT_PORTS_START( cmasterb ) PORT_DIPSETTING( 0x80, "32" ) PORT_DIPSETTING( 0xc0, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x07, "55%" ) PORT_DIPSETTING( 0x06, "60%" ) PORT_DIPSETTING( 0x05, "65%" ) @@ -1489,20 +1550,10 @@ static INPUT_PORTS_START( cmasterb ) PORT_DIPSETTING( 0x02, "80%" ) PORT_DIPSETTING( 0x01, "85%" ) PORT_DIPSETTING( 0x00, "90%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */ - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "A-Type" ) - PORT_DIPSETTING( 0x00, "B-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit OK */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */ @@ -1557,8 +1608,9 @@ static INPUT_PORTS_START( cmasterc ) PORT_DIPSETTING( 0x80, "32" ) PORT_DIPSETTING( 0xc0, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x07, "55%" ) PORT_DIPSETTING( 0x06, "60%" ) PORT_DIPSETTING( 0x05, "65%" ) @@ -1567,20 +1619,10 @@ static INPUT_PORTS_START( cmasterc ) PORT_DIPSETTING( 0x02, "80%" ) PORT_DIPSETTING( 0x01, "85%" ) PORT_DIPSETTING( 0x00, "90%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */ - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "A-Type" ) - PORT_DIPSETTING( 0x00, "B-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit OK */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */ @@ -1635,8 +1677,9 @@ static INPUT_PORTS_START( cmast91 ) PORT_DIPSETTING( 0x80, "32" ) PORT_DIPSETTING( 0xc0, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x07, "45%" ) PORT_DIPSETTING( 0x06, "50%" ) PORT_DIPSETTING( 0x05, "55%" ) @@ -1645,20 +1688,10 @@ static INPUT_PORTS_START( cmast91 ) PORT_DIPSETTING( 0x02, "70%" ) PORT_DIPSETTING( 0x01, "75%" ) PORT_DIPSETTING( 0x00, "80%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */ - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "A-Type" ) - PORT_DIPSETTING( 0x00, "B-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit OK */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */ @@ -1858,8 +1891,9 @@ static INPUT_PORTS_START( chrygld ) PORT_DIPSETTING( 0x40, "32" ) PORT_DIPSETTING( 0x00, "50" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x00, "55%" ) PORT_DIPSETTING( 0x01, "60%" ) PORT_DIPSETTING( 0x02, "65%" ) @@ -1868,100 +1902,41 @@ static INPUT_PORTS_START( chrygld ) PORT_DIPSETTING( 0x05, "80%" ) PORT_DIPSETTING( 0x06, "85%" ) PORT_DIPSETTING( 0x07, "90%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") - PORT_DIPSETTING( 0x40, "B-Type" ) - PORT_DIPSETTING( 0x00, "A-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper limit not checked */ + /* 100+ Odds Sound not checked */ + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7") /* normally Key In Type but doesn't affect rate for this game */ + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ - PORT_START("DSW3") /* some of these could be wrong */ - PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") - PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) // A-Type - PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) // B-Type - PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPNAME( 0x0c, 0x0c, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:3,4") + PORT_START("DSW3") + PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) + PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) + PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) + PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) + PORT_DIPNAME( 0x0c, 0x0c, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:3,4") /* OK - unused value also produces 1C/10C */ + PORT_DIPSETTING( 0x0c, "1 Coin/10 Credits" ) PORT_DIPSETTING( 0x04, "1 Coin/20 Credits" ) PORT_DIPSETTING( 0x08, "1 Coin/50 Credits" ) - PORT_DIPSETTING( 0x0c, "1 Coin/10 Credits" ) - PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) // C-Type - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x30, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) // D-Type - PORT_DIPSETTING( 0x20, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x10, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x00, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPNAME( 0xc0, 0xc0, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:7,8") + PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") /* OK */ + PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) /* C-Type */ + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x00, "1 Ticket/5 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) /* D-Type */ + PORT_DIPSETTING( 0x10, "1 Ticket/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPSETTING( 0x20, "1 Ticket/20 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPSETTING( 0x30, "1 Ticket/50 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPNAME( 0xc0, 0xc0, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:7,8") /* OK */ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0xc0, "1 Coin/10 Credits" ) - PORT_START("DSW4") - PORT_DIPNAME( 0x07, 0x06, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") - PORT_DIPSETTING( 0x07, "5,000" ) - PORT_DIPSETTING( 0x06, "10,000" ) - PORT_DIPSETTING( 0x05, "20,000" ) - PORT_DIPSETTING( 0x04, "30,000" ) - PORT_DIPSETTING( 0x03, "40,000" ) - PORT_DIPSETTING( 0x02, "50,000" ) - PORT_DIPSETTING( 0x01, "100,000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x08, 0x00, "Display Of Credit Limit" ) PORT_DIPLOCATION("DSW4:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Type Of Coin D" ) PORT_DIPLOCATION("DSW4:5") - PORT_DIPSETTING( 0x10, "D-Type (Tokens)" ) - PORT_DIPSETTING( 0x00, "C-Type (Ticket)" ) - PORT_DIPNAME( 0x20, 0x00, "Bonus Play Min.Bet" ) PORT_DIPLOCATION("DSW4:6") - PORT_DIPSETTING( 0x20, "16 Bet" ) - PORT_DIPSETTING( 0x00, "8 Bet" ) - PORT_DIPNAME( 0x40, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin A Mode" ) PORT_DIPLOCATION("DSW4:8") - PORT_DIPSETTING( 0x80, "Unexchange" ) - PORT_DIPSETTING( 0x00, "Exchange" ) + PORT_INCLUDE( cb3_dsw4 ) /* all OK */ - /* DSW5 is not connected yet. Where the hell is connected? */ - PORT_START("DSW5") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x00, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") - PORT_DIPSETTING( 0x06, "1000" ) - PORT_DIPSETTING( 0x04, "5000" ) - PORT_DIPSETTING( 0x02, "10000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPNAME( 0x18, 0x10, "Coin Out Rate" ) PORT_DIPLOCATION("DSW5:4,5") - PORT_DIPSETTING( 0x00, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x08, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x10, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x18, "100 Credits / 100 Pulses" ) - PORT_DIPNAME( 0x20, 0x00, "W-UP Girl" ) PORT_DIPLOCATION("DSW5:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x40, "Coin In Rate" ) PORT_DIPLOCATION("DSW5:7,8") - PORT_DIPSETTING( 0xc0, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x40, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x80, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x00, "100 Credits / 100 Pulses" ) + PORT_INCLUDE( cb3_dsw5 ) /* DSW5 is not connected yet. Where the hell is connected? */ INPUT_PORTS_END // dip switches from manual, values & inputs are a guess from cmasterb @@ -2524,8 +2499,9 @@ static INPUT_PORTS_START( chry10 ) PORT_DIPSETTING( 0x40, "32" ) PORT_DIPSETTING( 0x00, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x04, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x00, "40%" ) PORT_DIPSETTING( 0x01, "45%" ) PORT_DIPSETTING( 0x02, "50%" ) @@ -2534,99 +2510,49 @@ static INPUT_PORTS_START( chry10 ) PORT_DIPSETTING( 0x05, "65%" ) PORT_DIPSETTING( 0x06, "70%" ) PORT_DIPSETTING( 0x07, "80%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */ - PORT_DIPSETTING( 0x40, "B-Type" ) - PORT_DIPSETTING( 0x00, "A-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit not checked */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK - note that definition of A-Type and B-Type are reversed compared to cmv4 */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ - PORT_START("DSW3") /* seems ok */ + PORT_START("DSW3") PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */ - PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) // A-Type - PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) // B-Type + PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) /* A-Type */ PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) + PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) /* B-Type */ + PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) + PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) + PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) PORT_DIPNAME( 0x0c, 0x0c, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:3,4") /* OK */ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_DIPSETTING( 0x04, "1 Coin/20 Credits" ) PORT_DIPSETTING( 0x08, "1 Coin/50 Credits" ) PORT_DIPSETTING( 0x0c, "1 Coin/100 Credits" ) PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") /* OK */ - PORT_DIPSETTING( 0x30, "5 Coin/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) // C-Type - PORT_DIPSETTING( 0x20, "2 Coin/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x10, "1 Coin/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x00, "1 Coin/20 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x00, "1 Ticket/Coin / 50 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x10, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x20, "1 Ticket/Coin / 200 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x30, "1 Ticket/Coin / 500 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) // D-Type + PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) /* C-Type */ + PORT_DIPSETTING( 0x20, "2 Coins/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x10, "1 Coin/10 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x00, "1 Coin/20 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) + PORT_DIPSETTING( 0x00, "1 Ticket/50 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) /* D-Type */ + PORT_DIPSETTING( 0x10, "1 Ticket/100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPSETTING( 0x20, "1 Ticket/200 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) + PORT_DIPSETTING( 0x30, "1 Ticket/500 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) PORT_DIPNAME( 0xc0, 0xc0, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:7,8") /* OK */ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_DIPSETTING( 0x40, "1 Coin/20 Credits" ) PORT_DIPSETTING( 0x80, "1 Coin/50 Credits" ) PORT_DIPSETTING( 0xc0, "1 Coin/100 Credits" ) - PORT_START("DSW4") - PORT_DIPNAME( 0x07, 0x06, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") /* OK */ - PORT_DIPSETTING( 0x07, "5,000" ) - PORT_DIPSETTING( 0x06, "10,000" ) - PORT_DIPSETTING( 0x05, "20,000" ) - PORT_DIPSETTING( 0x04, "30,000" ) - PORT_DIPSETTING( 0x03, "40,000" ) - PORT_DIPSETTING( 0x02, "50,000" ) - PORT_DIPSETTING( 0x01, "100,000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x08, 0x00, "Display Of Credit Limit" ) PORT_DIPLOCATION("DSW4:4") /* OK */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Type Of Coin D" ) PORT_DIPLOCATION("DSW4:5") /* OK */ - PORT_DIPSETTING( 0x10, "D-Type (Tokens)" ) - PORT_DIPSETTING( 0x00, "C-Type (Ticket)" ) - PORT_DIPNAME( 0x20, 0x00, "Bonus Play Min.Bet" ) PORT_DIPLOCATION("DSW4:6") /* OK */ - PORT_DIPSETTING( 0x20, "16 Bet" ) - PORT_DIPSETTING( 0x00, "8 Bet" ) - PORT_DIPNAME( 0x40, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") /* OK */ - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin A Mode" ) PORT_DIPLOCATION("DSW4:8") /* OK */ - PORT_DIPSETTING( 0x80, "Unexchange" ) - PORT_DIPSETTING( 0x00, "Exchange" ) + PORT_INCLUDE( cb3_dsw4 ) /* all OK */ - PORT_START("DSW5") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x00, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") - PORT_DIPSETTING( 0x06, "1000" ) - PORT_DIPSETTING( 0x04, "5000" ) - PORT_DIPSETTING( 0x02, "10000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPNAME( 0x18, 0x10, "Coin Out Rate" ) PORT_DIPLOCATION("DSW5:4,5") - PORT_DIPSETTING( 0x00, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x08, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x10, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x18, "100 Credits / 100 Pulses" ) - PORT_DIPNAME( 0x20, 0x00, "W-UP Girl" ) PORT_DIPLOCATION("DSW5:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x40, "Coin In Rate" ) PORT_DIPLOCATION("DSW5:7,8") - PORT_DIPSETTING( 0xc0, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x40, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x80, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x00, "100 Credits / 100 Pulses" ) + PORT_INCLUDE( cb3_dsw5 ) + /* DSW5-1 not checked */ + /* Coin In Limit not working */ + /* Coin Out Rate not checked */ + /* W-Up Girl not working */ + /* Coin In Rate not checked */ INPUT_PORTS_END static INPUT_PORTS_START( ncb3 ) @@ -2680,8 +2606,9 @@ static INPUT_PORTS_START( ncb3 ) PORT_DIPSETTING( 0x40, "32" ) PORT_DIPSETTING( 0x00, "64" ) - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") + PORT_INCLUDE( cmv4_dsw2 ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */ PORT_DIPSETTING( 0x00, "55%" ) PORT_DIPSETTING( 0x01, "60%" ) PORT_DIPSETTING( 0x02, "65%" ) @@ -2690,255 +2617,30 @@ static INPUT_PORTS_START( ncb3 ) PORT_DIPSETTING( 0x05, "80%" ) PORT_DIPSETTING( 0x06, "85%" ) PORT_DIPSETTING( 0x07, "90%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") - PORT_DIPSETTING( 0x40, "B-Type" ) - PORT_DIPSETTING( 0x00, "A-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) + /* Hopper Limit not checked */ + /* 100+ Odds Sound not checked */ + /* Key In Type OK - note that definition of A-Type and B-Type are reversed compared to cmv4 */ + /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) */ - PORT_START("DSW3") /* some of these are wrong */ - PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") - PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) // A-Type - PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) // B-Type - PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPNAME( 0x0c, 0x0c, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0c, "1 Coin/10 Credits" ) - PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) // C-Type - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x30, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) // D-Type - PORT_DIPSETTING( 0x20, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x10, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x00, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPNAME( 0xc0, 0xc0, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:7,8") - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xc0, "1 Coin/10 Credits" ) + PORT_INCLUDE( cb3_dsw3 ) /* all OK */ - PORT_START("DSW4") - PORT_DIPNAME( 0x07, 0x06, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") - PORT_DIPSETTING( 0x07, "5,000" ) - PORT_DIPSETTING( 0x06, "10,000" ) - PORT_DIPSETTING( 0x05, "20,000" ) - PORT_DIPSETTING( 0x04, "30,000" ) - PORT_DIPSETTING( 0x03, "40,000" ) - PORT_DIPSETTING( 0x02, "50,000" ) - PORT_DIPSETTING( 0x01, "100,000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x08, 0x00, "Display Of Credit Limit" ) PORT_DIPLOCATION("DSW4:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Type Of Coin D" ) PORT_DIPLOCATION("DSW4:5") - PORT_DIPSETTING( 0x10, "D-Type (Tokens)" ) - PORT_DIPSETTING( 0x00, "C-Type (Ticket)" ) - PORT_DIPNAME( 0x20, 0x00, "Bonus Play Min.Bet" ) PORT_DIPLOCATION("DSW4:6") - PORT_DIPSETTING( 0x20, "16 Bet" ) - PORT_DIPSETTING( 0x00, "8 Bet" ) - PORT_DIPNAME( 0x40, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin A Mode" ) PORT_DIPLOCATION("DSW4:8") - PORT_DIPSETTING( 0x80, "Unexchange" ) - PORT_DIPSETTING( 0x00, "Exchange" ) + PORT_INCLUDE( cb3_dsw4 ) /* all OK */ - PORT_START("DSW5") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x00, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") - PORT_DIPSETTING( 0x06, "1000" ) - PORT_DIPSETTING( 0x04, "5000" ) - PORT_DIPSETTING( 0x02, "10000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPNAME( 0x18, 0x10, "Coin Out Rate" ) PORT_DIPLOCATION("DSW5:4,5") - PORT_DIPSETTING( 0x00, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x08, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x10, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x18, "100 Credits / 100 Pulses" ) - PORT_DIPNAME( 0x20, 0x00, "W-UP Girl" ) PORT_DIPLOCATION("DSW5:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x40, "Coin In Rate" ) PORT_DIPLOCATION("DSW5:7,8") - PORT_DIPSETTING( 0xc0, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x40, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x80, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x00, "100 Credits / 100 Pulses" ) + PORT_INCLUDE( cb3_dsw5 ) + /* DSW5-1 not checked */ + /* Coin In Limit not working */ + /* Coin Out Rate not checked */ + /* W-Up Girl not working */ + /* Coin In Rate not checked */ INPUT_PORTS_END static INPUT_PORTS_START( cb3a ) - PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_X) PORT_NAME("P1 - Stop 2 / Big / Bonus Game / Switch Controls") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_B) PORT_NAME("P1 - Blue Bet / D-UP / Card 3") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_Z) PORT_NAME("P1 - Stop 1 / Take") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CODE(KEYCODE_V) PORT_NAME("P1 - Red Bet / Card 2") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_C) PORT_NAME("P1 - Stop 3 / Small / Info / Card 1") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_CODE(KEYCODE_N) PORT_NAME("P1 - Start / Stop All / Card 4") - - PORT_INCLUDE( cmv4_coins ) - - PORT_INCLUDE( cmv4_service ) - - PORT_START("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_CODE(KEYCODE_S) PORT_NAME("P2 - Stop 2 / Big / Bonus Game / Switch Controls") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_CODE(KEYCODE_G) PORT_NAME("P2 - Blue Bet / D-UP / Card 3") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_CODE(KEYCODE_A) PORT_NAME("P2 - Stop 1 / Take") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_CODE(KEYCODE_F) PORT_NAME("P2 - Red Bet / Card 2") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_CODE(KEYCODE_D) PORT_NAME("P2 - Stop 3 / Small / Info / Card 1") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON12 ) PORT_CODE(KEYCODE_H) PORT_NAME("P2 - Start / Stop All / Card 4") + PORT_INCLUDE( ncb3 ) - /* to check DIP switches... */ - PORT_START("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Game Style" ) PORT_DIPLOCATION("DSW1:1") - PORT_DIPSETTING( 0x01, "Tokens" ) - PORT_DIPSETTING( 0x00, "Ticket" ) - PORT_DIPNAME( 0x02, 0x02, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2") - PORT_DIPSETTING( 0x02, "Active Low" ) - PORT_DIPSETTING( 0x00, "Active High" ) - PORT_DIPNAME( 0x04, 0x04, "Payout Mode" ) PORT_DIPLOCATION("DSW1:3") - PORT_DIPSETTING( 0x04, "Payout Switch" ) - PORT_DIPSETTING( 0x00, "Automatic" ) - PORT_DIPNAME( 0x08, 0x00, "W-UP '7'" ) PORT_DIPLOCATION("DSW1:4") - PORT_DIPSETTING( 0x08, "Loss" ) - PORT_DIPSETTING( 0x00, "Even" ) - PORT_DIPNAME( 0x10, 0x10, "W-UP Pay Rate" ) PORT_DIPLOCATION("DSW1:5") + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x10, 0x10, "W-Up Pay Rate" ) PORT_DIPLOCATION("DSW1:5") /* OK */ PORT_DIPSETTING( 0x00, "50%" ) PORT_DIPSETTING( 0x10, "80%" ) - PORT_DIPNAME( 0x20, 0x20, "W-UP Game" ) PORT_DIPLOCATION("DSW1:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x00, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8") - PORT_DIPSETTING( 0xc0, "8" ) - PORT_DIPSETTING( 0x80, "16" ) - PORT_DIPSETTING( 0x40, "32" ) - PORT_DIPSETTING( 0x00, "64" ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x07, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") - PORT_DIPSETTING( 0x00, "55%" ) - PORT_DIPSETTING( 0x01, "60%" ) - PORT_DIPSETTING( 0x02, "65%" ) - PORT_DIPSETTING( 0x03, "70%" ) - PORT_DIPSETTING( 0x04, "75%" ) - PORT_DIPSETTING( 0x05, "80%" ) - PORT_DIPSETTING( 0x06, "85%" ) - PORT_DIPSETTING( 0x07, "90%" ) - PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") - PORT_DIPSETTING( 0x18, "300" ) - PORT_DIPSETTING( 0x10, "500" ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") - PORT_DIPSETTING( 0x40, "B-Type" ) - PORT_DIPSETTING( 0x00, "A-Type" ) - PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */ - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "Limited" ) - - PORT_START("DSW3") /* some of these are wrong */ - PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") - PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) // A-Type - PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) // B-Type - PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPNAME( 0x0c, 0x0c, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0c, "1 Coin/10 Credits" ) - PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) // C-Type - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW4",0x10,EQUALS,0x10) - PORT_DIPSETTING( 0x30, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) // D-Type - PORT_DIPSETTING( 0x20, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x10, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPSETTING( 0x00, "1 Ticket/Coin / 100 Credits" ) PORT_CONDITION("DSW4",0x10,EQUALS,0x00) - PORT_DIPNAME( 0xc0, 0xc0, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:7,8") - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xc0, "1 Coin/10 Credits" ) - - PORT_START("DSW4") - PORT_DIPNAME( 0x07, 0x06, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") - PORT_DIPSETTING( 0x07, "5,000" ) - PORT_DIPSETTING( 0x06, "10,000" ) - PORT_DIPSETTING( 0x05, "20,000" ) - PORT_DIPSETTING( 0x04, "30,000" ) - PORT_DIPSETTING( 0x03, "40,000" ) - PORT_DIPSETTING( 0x02, "50,000" ) - PORT_DIPSETTING( 0x01, "100,000" ) - PORT_DIPSETTING( 0x00, "Unlimited" ) - PORT_DIPNAME( 0x08, 0x00, "Display Of Credit Limit" ) PORT_DIPLOCATION("DSW4:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Type Of Coin D" ) PORT_DIPLOCATION("DSW4:5") - PORT_DIPSETTING( 0x10, "D-Type (Tokens)" ) - PORT_DIPSETTING( 0x00, "C-Type (Ticket)" ) - PORT_DIPNAME( 0x20, 0x00, "Bonus Play Min.Bet" ) PORT_DIPLOCATION("DSW4:6") - PORT_DIPSETTING( 0x20, "16 Bet" ) - PORT_DIPSETTING( 0x00, "8 Bet" ) - PORT_DIPNAME( 0x40, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin A Mode" ) PORT_DIPLOCATION("DSW4:8") - PORT_DIPSETTING( 0x80, "Unexchange" ) - PORT_DIPSETTING( 0x00, "Exchange" ) - - PORT_START("DSW5") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x00, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") - PORT_DIPSETTING( 0x06, "1000" ) - PORT_DIPSETTING( 0x04, "5000" ) - PORT_DIPSETTING( 0x02, "10000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPNAME( 0x18, 0x10, "Coin Out Rate" ) PORT_DIPLOCATION("DSW5:4,5") - PORT_DIPSETTING( 0x00, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x08, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x10, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x18, "100 Credits / 100 Pulses" ) - PORT_DIPNAME( 0x20, 0x00, "W-UP Girl" ) PORT_DIPLOCATION("DSW5:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x40, "Coin In Rate" ) PORT_DIPLOCATION("DSW5:7,8") - PORT_DIPSETTING( 0xc0, "100 Credits / 1 Pulse" ) - PORT_DIPSETTING( 0x40, "100 Credits / 5 Pulses" ) - PORT_DIPSETTING( 0x80, "100 Credits / 10 Pulses" ) - PORT_DIPSETTING( 0x00, "100 Credits / 100 Pulses" ) INPUT_PORTS_END static INPUT_PORTS_START( lucky8 ) @@ -6482,19 +6184,13 @@ static INPUT_PORTS_START( cmtetris ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Hidden switch for Tetris") PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) PORT_NAME("Coin B") /* Coin Service (tied to PPI u34 PB3 to also coin Tetris game) */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) PORT_NAME("Coin D") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) PORT_NAME("Coin B") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) PORT_NAME("Coin C") PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) PORT_NAME("Coin A") - PORT_START("IN2") + PORT_INCLUDE( cmv4_service ) + PORT_MODIFY("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Tied to GND and to the hidden switch that change games. (PC0+GND) -+-> (PB0|PB1) */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:!1") /* OK */ @@ -7377,7 +7073,7 @@ PALETTE_INIT_MEMBER(goldstar_state, lucky8) } -static MACHINE_CONFIG_START( chrygld, goldstar_state ) +static MACHINE_CONFIG_START( chrygld, cb3_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -12764,7 +12460,7 @@ DRIVER_INIT_MEMBER(goldstar_state,goldstar) // this block swapping is the same for chry10, chrygld and cb3 // the underlying bitswaps / xors are different however -void goldstar_state::do_blockswaps(UINT8* ROM) +void cb3_state::do_blockswaps(UINT8* ROM) { int A; @@ -12792,7 +12488,7 @@ void goldstar_state::do_blockswaps(UINT8* ROM) } } -void goldstar_state::dump_to_file( UINT8* ROM) +void cb3_state::dump_to_file( UINT8* ROM) { #if 0 { @@ -12809,7 +12505,7 @@ void goldstar_state::dump_to_file( UINT8* ROM) #endif } -UINT8 cb3_state::decrypt(UINT8 cipherText, UINT16 address) +UINT8 cb3_state::cb3_decrypt(UINT8 cipherText, UINT16 address) { int idx; UINT8 output; @@ -12826,12 +12522,12 @@ UINT8 cb3_state::decrypt(UINT8 cipherText, UINT16 address) return output ^ sbox[idx]; } -UINT8 chrygld_state::chry10_decrypt(UINT8 cipherText) +UINT8 cb3_state::chry10_decrypt(UINT8 cipherText) { return cipherText ^ (BIT(cipherText, 4) << 3) ^ (BIT(cipherText, 1) << 5) ^ (BIT(cipherText, 6) << 7); } -DRIVER_INIT_MEMBER(chrygld_state, chry10) +DRIVER_INIT_MEMBER(cb3_state, chry10) { UINT8 *ROM = memregion("maincpu")->base(); int size = memregion("maincpu")->bytes(); @@ -12865,7 +12561,7 @@ DRIVER_INIT_MEMBER(cb3_state, cb3) for (i = start; i < size; i++) { - ROM[i] = decrypt(ROM[i], i); + ROM[i] = cb3_decrypt(ROM[i], i); } do_blockswaps(ROM); @@ -12873,7 +12569,7 @@ DRIVER_INIT_MEMBER(cb3_state, cb3) } -DRIVER_INIT_MEMBER(chrygld_state, chrygld) +DRIVER_INIT_MEMBER(cb3_state, chrygld) { int A; UINT8 *ROM = memregion("maincpu")->base(); @@ -13371,8 +13067,8 @@ DRIVER_INIT_MEMBER(goldstar_state, wcherry) GAMEL( 199?, goldstar, 0, goldstar, goldstar, goldstar_state, goldstar, ROT0, "IGS", "Golden Star", 0, layout_goldstar ) GAMEL( 199?, goldstbl, goldstar, goldstbl, goldstar, driver_device, 0, ROT0, "IGS", "Golden Star (Blue version)", 0, layout_goldstar ) GAME( 199?, moonlght, goldstar, moonlght, goldstar, driver_device, 0, ROT0, "bootleg", "Moon Light (bootleg of Golden Star)", 0 ) -GAME( 199?, chrygld, 0, chrygld, chrygld, chrygld_state, chrygld, ROT0, "bootleg", "Cherry Gold I", 0 ) -GAME( 199?, chry10, 0, chrygld, chry10, chrygld_state, chry10, ROT0, "bootleg", "Cherry 10 (bootleg with PIC16F84)", 0 ) +GAME( 199?, chrygld, 0, chrygld, chrygld, cb3_state, chrygld, ROT0, "bootleg", "Cherry Gold I", 0 ) +GAME( 199?, chry10, 0, chrygld, chry10, cb3_state, chry10, ROT0, "bootleg", "Cherry 10 (bootleg with PIC16F84)", 0 ) GAME( 199?, goldfrui, goldstar, goldfrui, goldstar, driver_device, 0, ROT0, "bootleg", "Gold Fruit", 0 ) // maybe fullname should be 'Gold Fruit (main 40%)' GAME( 2001, super9, goldstar, super9, goldstar, goldstar_state, super9, ROT0, "Playmark", "Super Nove (Playmark)", GAME_NOT_WORKING ) // need to decode gfx and see the program loops/reset... GAME( 2001, wcherry, 0, wcherry, chrygld, goldstar_state, wcherry, ROT0, "bootleg", "Win Cherry (ver 0.16 - 19990219)", GAME_NOT_WORKING ) diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h index edf1381d850..a7b8221b651 100644 --- a/src/mame/includes/goldstar.h +++ b/src/mame/includes/goldstar.h @@ -54,9 +54,6 @@ protected: TILE_GET_INFO_MEMBER(get_goldstar_reel2_tile_info); TILE_GET_INFO_MEMBER(get_goldstar_reel3_tile_info); - void do_blockswaps(UINT8* ROM); - void dump_to_file(UINT8* ROM); - int m_dataoffset; required_shared_ptr m_fg_vidram; @@ -195,24 +192,14 @@ public: DECLARE_DRIVER_INIT(cb3); DECLARE_DRIVER_INIT(cb3e); DECLARE_DRIVER_INIT(cherrys); - -protected: - UINT8 decrypt(UINT8 cipherText, UINT16 address); -}; - - -class chrygld_state : public goldstar_state -{ -public: - chrygld_state(const machine_config &mconfig, device_type type, const char *tag) : - goldstar_state(mconfig, type, tag) - { - } - DECLARE_DRIVER_INIT(chrygld); DECLARE_DRIVER_INIT(chry10); protected: + void do_blockswaps(UINT8* ROM); + void dump_to_file(UINT8* ROM); + + UINT8 cb3_decrypt(UINT8 cipherText, UINT16 address); UINT8 chry10_decrypt(UINT8 cipherText); }; -- cgit v1.2.3