diff options
-rw-r--r-- | docs/source/usingmame/defaultkeys.rst | 23 | ||||
-rw-r--r-- | src/emu/debug/debugvw.cpp | 6 | ||||
-rw-r--r-- | src/emu/inpttype.ipp | 10 | ||||
-rw-r--r-- | src/mame/dynax/ddenlovr.cpp | 50 | ||||
-rw-r--r-- | src/mame/dynax/dynax.cpp | 30 | ||||
-rw-r--r-- | src/mame/dynax/royalmah.cpp | 2 | ||||
-rw-r--r-- | src/mame/misc/gms.cpp | 100 | ||||
-rw-r--r-- | src/osd/modules/sound/pipewire_sound.cpp | 17 |
8 files changed, 119 insertions, 119 deletions
diff --git a/docs/source/usingmame/defaultkeys.rst b/docs/source/usingmame/defaultkeys.rst index 9892c86cb1f..947a4ce5d00 100644 --- a/docs/source/usingmame/defaultkeys.rst +++ b/docs/source/usingmame/defaultkeys.rst @@ -538,7 +538,7 @@ This list shows the standard keyboard configuration. Player 1 Hanafuda No **O** Player 1 Taiwanese Mahjong O -**Semicolon** +**P** Player 1 Taiwanese Mahjong P **Q** Player 1 Taiwanese Mahjong Q @@ -582,6 +582,7 @@ buttons. navigate the internal operator service menus) **0** *(not numeric keypad)* Service 2 + Book-Keeping (for machines that have this functionality) **-** *(not numeric keypad)* Service 3 @@ -595,25 +596,25 @@ buttons. Deal **L** Stand -**4** *(not numeric keypad)* - Take Score - - For games that allow gambling winnings in a double-or-nothing bonus game, - this takes the winnings from the main game. -**3** *(not numeric keypad)* +**D** Double Up For games that allow gambling winnings in a double-or-nothing bonus game, this gambles the winnings from the main game in the bonus game. -**D** +**F** Half Gamble Used by games that allow gambling half or all of the winnings from the main - game in the bonus game. + game in the bonus game, this stakes half the winnings from the main game. +**G** + Take Score + + For games that allow gambling winnings in a double-or-nothing bonus game, + this stakes the winnings from the main game. **A** - High + High/big **S** - Low + Low/small **O** Door diff --git a/src/emu/debug/debugvw.cpp b/src/emu/debug/debugvw.cpp index 2cae08f733d..fe997596137 100644 --- a/src/emu/debug/debugvw.cpp +++ b/src/emu/debug/debugvw.cpp @@ -509,7 +509,7 @@ bool debug_view_expression::recompute() { m_parsed.parse(m_string); } - catch (expression_error &) + catch (expression_error const &) { try { @@ -517,7 +517,7 @@ bool debug_view_expression::recompute() // then going back to the previous expression should work m_parsed.parse(oldstring); } - catch (expression_error &) + catch (expression_error const &) { // If that didn't work, perhaps the user switched sources // and the previous expression doesn't evaluate with the @@ -540,7 +540,7 @@ bool debug_view_expression::recompute() changed = true; } } - catch (expression_error &) + catch (expression_error const &) { } } diff --git a/src/emu/inpttype.ipp b/src/emu/inpttype.ipp index c51afa8ce31..dbf1250347f 100644 --- a/src/emu/inpttype.ipp +++ b/src/emu/inpttype.ipp @@ -105,13 +105,13 @@ namespace { INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_SERVICE, N_p("input-name", "Service"), input_seq(KEYCODE_9) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_BOOK, N_p("input-name", "Book-Keeping"), input_seq(KEYCODE_0) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_DOOR, N_p("input-name", "Door"), input_seq(KEYCODE_O) ) \ - INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_PAYOUT, N_p("input-name", "Payout"), input_seq(KEYCODE_I) ) \ + INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_PAYOUT, N_p("input-name", "Payout"), input_seq(KEYCODE_4) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_BET, N_p("input-name", "Bet"), input_seq(KEYCODE_M) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_DEAL, N_p("input-name", "Deal"), input_seq(KEYCODE_2) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_STAND, N_p("input-name", "Stand"), input_seq(KEYCODE_L) ) \ - INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_TAKE, N_p("input-name", "Take Score"), input_seq(KEYCODE_4) ) \ - INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_D_UP, N_p("input-name", "Double Up"), input_seq(KEYCODE_3) ) \ - INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_HALF, N_p("input-name", "Half Gamble"), input_seq(KEYCODE_D) ) \ + INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_TAKE, N_p("input-name", "Take Score"), input_seq(KEYCODE_G) ) \ + INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_D_UP, N_p("input-name", "Double Up"), input_seq(KEYCODE_D) ) \ + INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_HALF, N_p("input-name", "Half Gamble"), input_seq(KEYCODE_F) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_HIGH, N_p("input-name", "High"), input_seq(KEYCODE_A) ) \ INPUT_PORT_DIGITAL_TYPE( 1, PLAYER1, GAMBLE_LOW, N_p("input-name", "Low"), input_seq(KEYCODE_S) ) \ CORE_INPUT_TYPES_END() @@ -187,7 +187,7 @@ namespace { INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_M, N_p("input-name", "%p Mahjong M"), input_seq(KEYCODE_M_INDEXED(1)) ) \ INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_N, N_p("input-name", "%p Mahjong N"), input_seq(KEYCODE_N_INDEXED(1)) ) \ INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_O, N_p("input-name", "%p Mahjong O"), input_seq(KEYCODE_O_INDEXED(1)) ) \ - INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_P, N_p("input-name", "%p Mahjong P"), input_seq(KEYCODE_COLON_INDEXED(1)) ) \ + INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_P, N_p("input-name", "%p Mahjong P"), input_seq(KEYCODE_P_INDEXED(1)) ) \ INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_Q, N_p("input-name", "%p Mahjong Q"), input_seq(KEYCODE_Q_INDEXED(1)) ) \ INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_KAN, N_p("input-name", "%p Mahjong Kan"), input_seq(KEYCODE_LCONTROL_INDEXED(1)) ) \ INPUT_PORT_DIGITAL_TYPE( 2, PLAYER2, MAHJONG_PON, N_p("input-name", "%p Mahjong Pon"), input_seq(KEYCODE_LALT_INDEXED(1)) ) \ diff --git a/src/mame/dynax/ddenlovr.cpp b/src/mame/dynax/ddenlovr.cpp index bfa90f002c4..d2061d5a95b 100644 --- a/src/mame/dynax/ddenlovr.cpp +++ b/src/mame/dynax/ddenlovr.cpp @@ -5048,8 +5048,8 @@ static INPUT_PORTS_START( htengoku ) // SW 4 OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF PORT_START("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00) // pay - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) PORT_TOGGLE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -5644,7 +5644,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( hanakanz ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("BET",0x40,EQUALS,0x00) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("BET",0x40,EQUALS,0x00) // pay PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) // Test @@ -5815,9 +5815,9 @@ static INPUT_PORTS_START( hkagerou ) // SW 4 ON ON OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) // Test + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) // Test PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // data clear PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key-in @@ -6195,7 +6195,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( mjreach1 ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_SERVICE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -6350,7 +6350,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( jongtei ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_SERVICE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -6561,7 +6561,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( mjchuuka ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_SERVICE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -6716,7 +6716,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( mjschuka ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_SERVICE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -6979,9 +6979,9 @@ static INPUT_PORTS_START( mjmyster ) // SW 4 Off On On On On Off Off Off Off Off On On On On On Off Off Off Off Off On On On On On Off Off Off Off Off PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x02) // pay - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x03) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x02, EQUALS, 0x00) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x02) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x03) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x02, EQUALS, 0x00) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -7139,9 +7139,9 @@ static INPUT_PORTS_START( hginga ) // SW 4 ON OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x02) // pay - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x03) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x02, EQUALS, 0x00) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x02) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW3", 0x03, EQUALS, 0x03) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x02, EQUALS, 0x00) // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) // Test PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -7377,9 +7377,9 @@ INPUT_PORTS_END static INPUT_PORTS_START( hgokou ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // data clear PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) @@ -7526,9 +7526,9 @@ static INPUT_PORTS_START( mjmyornt ) // SW 4 OFF ON ON ON ON ON OFF OFF OFF OFF ON ON ON ON ON ON OFF OFF OFF OFF ON ON ON ON ON ON OFF OFF OFF OFF PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 18B - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_TOGGLE PORT_NAME(DEF_STR( Test )) // Test + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_TOGGLE PORT_NAME(DEF_STR(Test)) // Test PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // data clear PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BILL1 ) PORT_CODE(KEYCODE_6) // note @@ -8014,7 +8014,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( sryudens ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -8169,7 +8169,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( seljan2 ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -8324,7 +8324,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( janshinp ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -8478,7 +8478,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( dtoyoken ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -8641,7 +8641,7 @@ static INPUT_PORTS_START( daimyojn ) // SW 4 OFF ON ON ON ON OFF OFF OFF OFF OFF OFF ON ON ON ON OFF OFF OFF OFF OFF OFF OFF ON ON ON OFF OFF OFF ON OFF OFF OFF ON ON ON OFF OFF OFF ON OFF PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_TOGGLE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer @@ -8775,7 +8775,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( hnrose ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer diff --git a/src/mame/dynax/dynax.cpp b/src/mame/dynax/dynax.cpp index 86796b4a35c..056e4af83a5 100644 --- a/src/mame/dynax/dynax.cpp +++ b/src/mame/dynax/dynax.cpp @@ -1586,7 +1586,7 @@ INPUT_PORTS_END #define MAHJONG_COIN_TEST(ct, cm) \ PORT_START("COINS") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) PORT_CONDITION(ct, cm, EQUALS, 0) /* Pay */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION(ct, cm, EQUALS, 0) /* Pay */ \ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION(ct, cm, EQUALS, cm) \ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 18B */ \ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_TOGGLE /* Test */ \ @@ -1793,12 +1793,12 @@ static INPUT_PORTS_START( hnkochou ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // Pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW ) // Test (there isn't a dip switch) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Analyzer - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // Memory Reset - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) // Note + PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW ) // Test (there isn't a DIP switch) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Analyzer + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // Memory Reset + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) // Note PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2019,7 +2019,7 @@ static INPUT_PORTS_START( hjingi ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "DIPSW 4:8") // OFF固定 PORT_START("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // Pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE4 ) // 18B PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Analyzer @@ -3104,7 +3104,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( mjelctrn ) PORT_START("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // Pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 18B PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_TOGGLE // Test PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Analyzer @@ -3199,7 +3199,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( majxtal7 ) PORT_START("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) PORT_CONDITION("DSW0", 0x40, EQUALS, 0x00) // Pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW0", 0x40, EQUALS, 0x00) // Pay PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW0", 0x40, EQUALS, 0x40) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 18B PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) // Test @@ -3748,13 +3748,13 @@ static INPUT_PORTS_START( gekisha ) PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) PORT_START("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // Pay PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) // Test - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Analyzer - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // Memory Reset - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // Note - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) // Test + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Analyzer + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // Memory Reset + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // Note + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup ) diff --git a/src/mame/dynax/royalmah.cpp b/src/mame/dynax/royalmah.cpp index f377d4f3c85..e0013695d5e 100644 --- a/src/mame/dynax/royalmah.cpp +++ b/src/mame/dynax/royalmah.cpp @@ -1687,7 +1687,7 @@ static INPUT_PORTS_START( mjctrl2 ) PORT_INCLUDE( mjctrl1 ) PORT_MODIFY("KEY0") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END diff --git a/src/mame/misc/gms.cpp b/src/mame/misc/gms.cpp index 8d9e7b48137..50ad5cd4c23 100644 --- a/src/mame/misc/gms.cpp +++ b/src/mame/misc/gms.cpp @@ -64,22 +64,22 @@ Notes: B1/M1 - 26C1000 / 27C1001 (PRG/data for 89C51?) S1 - 27C2000 / 232000 mask ROM (OKI samples) -Hold test (F2) and reset (F3) to enter service mode. - -The default assignments for Mahjong I and Payout are identical. This can -cause the games to ignore Payout if they see Mahjong I first (in mahjong -keyboard mode). You can work around this by reassigning Payout. +Hold test (F2) and press reset (F3) to enter service mode. TODO: - work out how Flip Flop input is read in mahjong games in mahjong keyboard mode -- correct EEPROM hookup for all games (this would get rid of a lot of ROM patches) +- in baile, Payout key doesn't work in mahjong keyboard mode (input test + recognises it as both Payout and Flip Flop) +- correct EEPROM hookup for all games (this would get rid of a lot of ROM + patches) - hookup MCU and YM2151 / YM3812 sound for the mahjong games - hookup PIC16F84 for rbspm - emulate protection devices correctly instead of patching - hookup lamps and do layouts -- use real values for reel tilemaps offsets instead of hardcoded ones (would fix magslot) -- game logic seems broken in mahjong games (reach permitted when it shouldn't be, chi not - permitted when it should be, other issues) +- use real values for reel tilemaps offsets instead of hardcoded ones (would fix + magslot) +- game logic seems broken in mahjong games (Reach permitted when it shouldn't + be, Chi not permitted when it should be, other issues) - broken title GFX in yyhm (transparent pen problem?) - the newer games seem to use range 0x9e1000-0x9e1fff during gameplay @@ -198,7 +198,7 @@ private: void ssanguoj_mem(address_map &map) ATTR_COLD; uint16_t unk_r(); - uint16_t input_matrix_r(); + uint16_t dipsw_matrix_r(); void input_matrix_w(uint16_t data); void tilebank_w(uint16_t data); void reels_toggle_w(uint16_t data); @@ -260,16 +260,18 @@ uint16_t gms_2layers_state::unk_r() return machine().rand(); } -uint16_t gms_2layers_state::input_matrix_r() +uint16_t gms_2layers_state::dipsw_matrix_r() { - uint16_t res = 0xffff; + uint16_t result = 0xffff; - // TODO: & 0x00ff are the inputs for keyboard mode in rbmk - if (m_input_matrix & 0x1000) res &= m_dsw[0]->read(); - if (m_input_matrix & 0x2000) res &= m_dsw[1].read_safe(0xffff); - if (m_input_matrix & 0x4000) res &= m_dsw[2].read_safe(0xffff); + if (m_input_matrix & 0x1000) + result &= m_dsw[0]->read(); + if (m_input_matrix & 0x2000) + result &= m_dsw[1].read_safe(0xffff); + if (m_input_matrix & 0x4000) + result &= m_dsw[2].read_safe(0xffff); - return res; + return result; } void gms_2layers_state::tilebank_w(uint16_t data) @@ -352,7 +354,7 @@ void gms_2layers_state::rbmk_mem(address_map &map) map(0x980380, 0x9803ff).ram().share(m_scrolly[3]); map(0x9c0000, 0x9c0fff).ram().w(FUNC(gms_2layers_state::vram_w<0>)).share(m_vidram[0]); map(0xb00000, 0xb00001).w(FUNC(gms_2layers_state::eeprom_w)); - map(0xc00000, 0xc00001).rw(FUNC(gms_2layers_state::input_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); + map(0xc00000, 0xc00001).rw(FUNC(gms_2layers_state::dipsw_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); map(0xc08000, 0xc08001).portr("IN1").w(FUNC(gms_2layers_state::tilebank_w)); map(0xc10000, 0xc10001).portr("IN2"); map(0xc18080, 0xc18081).r(FUNC(gms_2layers_state::unk_r)); // TODO: from MCU? @@ -365,7 +367,7 @@ void gms_2layers_state::rbspm_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x200000, 0x200001).w(FUNC(gms_2layers_state::reels_toggle_w)); - map(0x300000, 0x300001).rw(FUNC(gms_2layers_state::input_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); + map(0x300000, 0x300001).rw(FUNC(gms_2layers_state::dipsw_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); map(0x308000, 0x308001).portr("IN1").w(FUNC(gms_2layers_state::tilebank_w)); // ok map(0x310000, 0x310001).portr("IN2"); map(0x318080, 0x318081).r(FUNC(gms_2layers_state::unk_r)); @@ -403,7 +405,7 @@ void gms_2layers_state::ssanguoj_mem(address_map &map) map(0x980300, 0x98037f).ram().share(m_scrolly[2]); map(0x980380, 0x9803ff).ram().share(m_scrolly[3]); map(0x9c0000, 0x9c0fff).ram().w(FUNC(gms_2layers_state::vram_w<0>)).share(m_vidram[0]); - map(0xa00000, 0xa00001).rw(FUNC(gms_2layers_state::input_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); + map(0xa00000, 0xa00001).rw(FUNC(gms_2layers_state::dipsw_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); map(0xa08000, 0xa08001).portr("IN1").w(FUNC(gms_2layers_state::tilebank_w)); map(0xa10000, 0xa10001).portr("IN2"); map(0xa18080, 0xa18081).r(FUNC(gms_2layers_state::unk_r)); // TODO: from MCU? @@ -418,7 +420,7 @@ void gms_2layers_state::super555_mem(address_map &map) map(0x000000, 0x07ffff).rom(); map(0x100000, 0x10ffff).ram(); map(0x300000, 0x300001).w(FUNC(gms_2layers_state::reels_toggle_w)); - map(0x600000, 0x600001).rw(FUNC(gms_2layers_state::input_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); + map(0x600000, 0x600001).rw(FUNC(gms_2layers_state::dipsw_matrix_r), FUNC(gms_2layers_state::input_matrix_w)); map(0x608000, 0x608001).portr("IN1").w(FUNC(gms_2layers_state::tilebank_w)); // ok map(0x610000, 0x610001).portr("IN2"); map(0x618080, 0x618081).nopr();//.lr16(NAME([this] () -> uint16_t { return m_prot_data; })); // reads something here from below, if these are hooked up booting stops with '0x09 U64 ERROR', like it's failing some checksum test @@ -1079,11 +1081,11 @@ static INPUT_PORTS_START( super555 ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE(0x02, IP_ACTIVE_LOW) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME( "Start / Take" ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME( "Hold 2 / Double Up" ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Paytable" ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME( "Hold 1 / Double Up / Big" ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME( "Hold 3 / Double Up / Small" ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Take Score") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME(u8"Hold 2 / Double Up × 1") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Show Odds") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME(u8"Hold 1 / Double Up × 2 / Big") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME(u8"Hold 3 / Double Up × ½ / Small") PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) @@ -1096,17 +1098,17 @@ static INPUT_PORTS_START( super555 ) PORT_START("IN2") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BILL1 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(hopper_device::line_r)) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1215,20 +1217,20 @@ static INPUT_PORTS_START( sscs ) GMS_MAHJONG_KEYBOARD("DSW2", 0x80, 0x80) PORT_MODIFY("IN1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Showdown / Take Score") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 開牌鍵 - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Raise × 5 / Double Up × 1") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // ×5 (up in bookkeeping, up in test mode) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // (down in test mode) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Raise × 1 / Double Up × 2 / Big") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // ×1 (down in bookkeeping) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Raise × 10 / Double Up × ½ / Small") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 加押 - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Call / Bet / Take Score") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 跟/押鍵 - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Fold") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 放棄 - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("View Hole Card") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 看牌 (select in test mode) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Showdown / Take Score") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 開牌鍵 + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME(u8"Raise × 5 / Double Up × 1") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // ×5 (up in bookkeeping, up in test mode) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // (down in test mode) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME(u8"Raise × 1 / Double Up × 2 / Big") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // ×1 (down in bookkeeping) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME(u8"Raise × 10 / Double Up × ½ / Small") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 加押 + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Call / Bet / Take Score") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 跟/押鍵 + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Fold") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 放棄 + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("View Hole Card") PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) // 看牌 (select in test mode) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW2", 0x80, NOTEQUALS, 0x80) PORT_MODIFY("IN2") PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1490,12 +1492,12 @@ static INPUT_PORTS_START( baile ) PORT_MODIFY("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Draw / Take Score") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet on Tie") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Bet on Tie") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet on Player / Big") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Bet on Banker / Small") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Bet Multiplier") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Peek at Card / Show Odds") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Bet on Player / Big") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Bet on Banker / Small") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet Multiplier") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Peek at Card / Show Odds") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Cancel Bets") PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x80, NOTEQUALS, 0x80) diff --git a/src/osd/modules/sound/pipewire_sound.cpp b/src/osd/modules/sound/pipewire_sound.cpp index 8bf5b8e0afa..c597a81fdb3 100644 --- a/src/osd/modules/sound/pipewire_sound.cpp +++ b/src/osd/modules/sound/pipewire_sound.cpp @@ -90,6 +90,7 @@ private: struct stream_info { sound_pipewire *m_wire; bool m_is_output; + bool m_wait_stream; uint32_t m_osdid; uint32_t m_node_id; node_info *m_node; @@ -98,7 +99,7 @@ private: std::vector<float> m_volumes; abuffer m_buffer; - stream_info(sound_pipewire *wire, bool is_output, uint32_t osdid, uint32_t channels) : m_wire(wire), m_is_output(is_output), m_osdid(osdid), m_channels(channels), m_stream(nullptr), m_buffer(channels) {} + stream_info(sound_pipewire *wire, bool is_output, uint32_t osdid, uint32_t channels) : m_wire(wire), m_is_output(is_output), m_wait_stream(true), m_osdid(osdid), m_channels(channels), m_stream(nullptr), m_buffer(channels) {} }; static const pw_core_events core_events; @@ -127,7 +128,7 @@ private: uint32_t m_node_current_id, m_stream_current_id; uint32_t m_generation; - bool m_wait_sync, m_wait_stream; + bool m_wait_sync; void sync(); @@ -483,7 +484,6 @@ int sound_pipewire::init(osd_interface &osd, osd_options const &options) m_generation = 1; m_wait_sync = false; - m_wait_stream = false; pw_init(nullptr, nullptr); m_loop = pw_thread_loop_new(nullptr, nullptr); @@ -630,15 +630,14 @@ void sound_pipewire::stream_event_param_changed(stream_info *stream, uint32_t id if(id == SPA_PARAM_Props) { const spa_pod_prop *vols = spa_pod_find_prop(param, nullptr, SPA_PROP_channelVolumes); if(vols) { - bool initial = stream->m_volumes.empty(); stream->m_volumes.clear(); float *entry; SPA_POD_ARRAY_FOREACH((spa_pod_array *)(&vols->value), entry) { stream->m_volumes.push_back(osd::linear_to_db(*entry)); } if(!stream->m_volumes.empty()) { - if(initial) { - m_wait_stream = false; + if(stream->m_wait_stream) { + stream->m_wait_stream = false; pw_thread_loop_signal(m_loop, false); } else m_generation++; @@ -697,8 +696,7 @@ uint32_t sound_pipewire::stream_sink_open(uint32_t node, std::string name, uint3 pw_stream_flags(PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_MAP_BUFFERS | PW_STREAM_FLAG_RT_PROCESS), ¶ms, 1); - m_wait_stream = true; - while(m_wait_stream) + while(stream.m_wait_stream) pw_thread_loop_wait(m_loop); stream.m_node_id = pw_stream_get_node_id(stream.m_stream); @@ -751,8 +749,7 @@ uint32_t sound_pipewire::stream_source_open(uint32_t node, std::string name, uin pw_stream_flags(PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_MAP_BUFFERS | PW_STREAM_FLAG_RT_PROCESS), ¶ms, 1); - m_wait_stream = true; - while(m_wait_stream) + while(stream.m_wait_stream) pw_thread_loop_wait(m_loop); stream.m_node_id = pw_stream_get_node_id(stream.m_stream); |