Skip to content

Commit 04d23bd

Browse files
authored
goldstar.cpp: Added nfb96 conditional DIP switches for payout rate / difficulty display (DSW1) (#14661)
Implemented conditional nfb96 DIP switches behavior for DSW1 based on DSW4:2. When "Show In Confirm Screen" (DSW4:2) is set to Percentage, DSW1 now displays payout rate values (55%–90%). When set to Level of Difficulty, DSW1 instead displays levels (1–8). Both sets of options use the same bitmask (0x07) and are filtered through PORT_CONDITION to match the hardware behavior.
1 parent 494579c commit 04d23bd

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

src/mame/igs/goldstar.cpp

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11302,15 +11302,25 @@ static INPUT_PORTS_START( nfb96 )
1130211302
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
1130311303

1130411304
PORT_START("DSW1")
11305-
PORT_DIPNAME( 0x07, 0x03, "Game Level (Difficulty)" ) PORT_DIPLOCATION("DSW1:!1,!2,!3") // OK
11306-
PORT_DIPSETTING( 0x07, "Level 1 (Easiest)" )
11307-
PORT_DIPSETTING( 0x06, "Level 2" )
11308-
PORT_DIPSETTING( 0x05, "Level 3" )
11309-
PORT_DIPSETTING( 0x04, "Level 4" )
11310-
PORT_DIPSETTING( 0x03, "Level 5" )
11311-
PORT_DIPSETTING( 0x02, "Level 6" )
11312-
PORT_DIPSETTING( 0x01, "Level 7" )
11313-
PORT_DIPSETTING( 0x00, "Level 8 (Hardest)" )
11305+
PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW1:!1,!2,!3") PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11306+
PORT_DIPSETTING( 0x00, "55%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11307+
PORT_DIPSETTING( 0x01, "60%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11308+
PORT_DIPSETTING( 0x02, "65%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11309+
PORT_DIPSETTING( 0x03, "70%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11310+
PORT_DIPSETTING( 0x04, "75%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11311+
PORT_DIPSETTING( 0x05, "80%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11312+
PORT_DIPSETTING( 0x06, "85%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11313+
PORT_DIPSETTING( 0x07, "90%" ) PORT_CONDITION("DSW4", 0x02, EQUALS, 0x02)
11314+
// --- Show Difficulty Levels (DSW4:2 = 0) ---
11315+
PORT_DIPNAME( 0x07, 0x03, "Game Level (Difficulty)" ) PORT_DIPLOCATION("DSW1:!1,!2,!3") PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11316+
PORT_DIPSETTING( 0x00, "Level 8" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11317+
PORT_DIPSETTING( 0x01, "Level 7" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11318+
PORT_DIPSETTING( 0x02, "Level 6" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11319+
PORT_DIPSETTING( 0x03, "Level 5" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11320+
PORT_DIPSETTING( 0x04, "Level 4" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11321+
PORT_DIPSETTING( 0x05, "Level 3" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11322+
PORT_DIPSETTING( 0x06, "Level 2" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
11323+
PORT_DIPSETTING( 0x07, "Level 1" ) PORT_CONDITION("DSW4", 0x02, NOTEQUALS, 0x02)
1131411324
PORT_DIPNAME( 0x38, 0x38, "Maximum Play" ) PORT_DIPLOCATION("DSW1:!4,!5,!6") // OK
1131511325
PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
1131611326
PORT_DIPSETTING( 0x08, "20" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)

0 commit comments

Comments
 (0)