summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2025-09-23 01:08:03 +1000
committer Vas Crabb <vas@vastheman.com>2025-09-23 01:08:03 +1000
commit357d4c71a3ab2a9c4e9769c73c36a427f9f8d7ec (patch)
treea06c8c4f3f437fc3d660b5cc9b8bcbaa9370beb3
parentc5101527a07c7da3e271e14a5997e0959d968152 (diff)
dynax/ddenlovr.cpp, dynax/hanafuda.cpp: Improved inputs:
* ddenlovr.cpp: Corrected half the DIP switches for Jongou based on an auction photo of the manual. * ddenlovr.cpp: Added preliminary hanaroku panel support to Hanafuda Hana Ginga. * dynax/hanafuda.cpp: Better representation of the buttons that are actually present.
-rw-r--r--src/mame/dynax/ddenlovr.cpp259
-rw-r--r--src/mame/dynax/hanafuda.cpp85
2 files changed, 233 insertions, 111 deletions
diff --git a/src/mame/dynax/ddenlovr.cpp b/src/mame/dynax/ddenlovr.cpp
index 09fa5939bdd..8db24a36531 100644
--- a/src/mame/dynax/ddenlovr.cpp
+++ b/src/mame/dynax/ddenlovr.cpp
@@ -3508,7 +3508,7 @@ uint8_t ddenlovr_state::hginga_input_r()
case 0xa2: // player 2
if (m_keyb < 5)
{
- result = m_io_key[BIT(m_input_sel, 1)][m_keyb]->read();
+ result = m_io_key[BIT(~m_input_sel, 1)][m_keyb]->read();
if (!machine().side_effects_disabled())
++m_keyb;
}
@@ -7340,6 +7340,8 @@ static INPUT_PORTS_START( hginga )
// SW 3 OFF OFF OFF OFF ON OFF OFF OFF OFF OFF OFF OFF OFF OFF ON OFF OFF OFF OFF OFF OFF ON OFF OFF ON OFF OFF OFF OFF OFF
// 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
+ // TODO: are separate 2P Start and Bet buttons supported with a hanaroku panel?
+
PORT_START("SYSTEM")
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)
@@ -7353,84 +7355,142 @@ static INPUT_PORTS_START( hginga )
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2) // A
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2) // E
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2) // M
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Kan
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00) // only a single Flip Flop, corresponding 2P input
PORT_START("KEY1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2) // B
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2) // F
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // J
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2) // N
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Reach
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2) // BET
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2) // C
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // G
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // K
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Chi
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Ron
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2) // D
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // H
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PON
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2) // "t"
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2) // "w"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2) // Flip Flop
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2) // "b"
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2) // "s"
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(1) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) // A
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) // E
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) // M
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Kan
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY6")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) // B
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) // F
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // J
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) // N
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Reach
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) // BET
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) // C
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // G
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // K
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Chi
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Ron
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY8")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) // D
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // H
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PON
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("KEY9")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) // "t"
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) // "w"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) // Flip Flop
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) // "b"
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) // "s"
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x03)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x03, EQUALS, 0x02)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x02)
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("FAKE", 0x02, EQUALS, 0x00)
PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x04, "Hanafuda Game Payout Rate" ) PORT_DIPLOCATION("SW1:1,2,3") // 花札 ゲーム 配当率
@@ -8465,7 +8525,7 @@ static INPUT_PORTS_START( seljan2 )
PORT_DIPNAME( 0x04, 0x00, "Show Renchan Gal" ) PORT_DIPLOCATION("DIP-SW4:3") // 連荘ギャル表示
PORT_DIPSETTING( 0x04, DEF_STR(No) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR(Yes) ) // 有
- PORT_DIPNAME( 0x08, 0x00, "Renchan Gal Display") PORT_DIPLOCATION("DIP-SW4:4") // 連荘ギャル表示方法
+ PORT_DIPNAME( 0x08, 0x00, "Renchan Gal Display") PORT_DIPLOCATION("DIP-SW4:4") // 連荘ギャルの表示方法
PORT_DIPSETTING( 0x08, "After every win" ) // 勝つ毎
PORT_DIPSETTING( 0x00, "After 3 consecutive wins" ) // 3連荘後
PORT_DIPNAME( 0x10, 0x00, "Game Screen Gal Action" ) PORT_DIPLOCATION("DIP-SW4:5") // ゲーム画面のギャルアクションの有無
@@ -8510,6 +8570,79 @@ static INPUT_PORTS_START( seljan2 )
INPUT_PORTS_END
+INPUT_PORTS_START( jongoh )
+ // Only the page showing SW3 and SW4 has been seen
+ // The manual provides four sets of standard settings:
+ // 標準設定 コインプールタイプ A 標準設定 コインプールタイプ B 標準設定 メダルコーナータイプ 標準設定 アミューズコーナータイプ
+ // SW 3 ON ON OFF ON ON ON ON OFF OFF OFF ON ON OFF ON ON ON ON OFF OFF OFF OFF OFF ON ON OFF ON ON OFF OFF OFF ON OFF ON ON OFF ON ON OFF ON OFF
+ // SW 4 OFF ON ON ON ON ON ON ON OFF OFF OFF ON ON ON ON OFF ON ON OFF OFF ON ON ON ON ON OFF ON ON OFF OFF ON ON ON ON ON OFF ON ON OFF OFF
+
+ PORT_INCLUDE(seljan2)
+
+ PORT_MODIFY("DSW3")
+ PORT_DIPNAME( 0x07, 0x04, "Bonus Point Cycle" ) PORT_DIPLOCATION("DIP-SW3:1,2,3") // ボーナスポイントの周期設定
+ PORT_DIPSETTING( 0x07, "None" ) // 無
+ PORT_DIPSETTING( 0x06, "First time only" ) // 初回のみ
+ PORT_DIPSETTING( 0x05, "Every 300 coins" ) // 300コイン毎
+ PORT_DIPSETTING( 0x04, "Every 500 coins" ) // 500コイン毎
+ PORT_DIPSETTING( 0x03, "Every 700 coins" ) // 700コイン毎
+ PORT_DIPSETTING( 0x02, "Every 1000 coins" ) // 1000コイン毎
+// PORT_DIPSETTING( 0x01, "Every 1000 coins" )
+// PORT_DIPSETTING( 0x00, "Every 1000 coins" )
+ PORT_DIPNAME( 0x08, 0x00, "Yakuman Chances Per Cycle" ) PORT_DIPLOCATION("DIP-SW3:4") // 役満チャンスの周期設定周期毎に
+ PORT_DIPSETTING( 0x00, "1" ) // 1回
+ PORT_DIPSETTING( 0x08, "2" ) // 2回
+ PORT_DIPNAME( 0x10, 0x00, "Flip Flop Button" ) PORT_DIPLOCATION("DIP-SW3:5") // F.FLOP機能ボタン変更
+ PORT_DIPSETTING( 0x10, "Start" ) // スタート
+ PORT_DIPSETTING( 0x00, "Flip Flop" ) // F/F
+ PORT_DIPNAME( 0x20, 0x00, "Last Chance" ) PORT_DIPLOCATION("DIP-SW3:6") // ラストチャンスの有無
+ PORT_DIPSETTING( 0x20, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x40, 0x00, "Double Bet" ) PORT_DIPLOCATION("DIP-SW3:7") // W-BET機能
+ PORT_DIPSETTING( 0x40, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x80, 0x80, "Medal Timer" ) PORT_DIPLOCATION("DIP-SW3:8") // メダルタイマーの設定
+ PORT_DIPSETTING( 0x80, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+
+ PORT_MODIFY("DSW4")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("DIP-SW4:1") // デモサウンドの有無
+ PORT_DIPSETTING( 0x01, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x02, 0x00, "In-Game Music" ) PORT_DIPLOCATION("DIP-SW4:2") // ゲームサウンドの有無
+ PORT_DIPSETTING( 0x02, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x04, 0x00, "In-Game Voice" ) PORT_DIPLOCATION("DIP-SW4:3") // ゲーム中のボイス有無
+ PORT_DIPSETTING( 0x04, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x08, 0x00, "Winning Yakuman Display Voice" ) PORT_DIPLOCATION("DIP-SW4:4") // 上がり役満表示のボイス有無
+ PORT_DIPSETTING( 0x08, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x10, 0x00, "Show Renchan Gal" ) PORT_DIPLOCATION("DIP-SW4:5") // 連荘ギャル表示
+ PORT_DIPSETTING( 0x10, DEF_STR(No) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(Yes) ) // 有
+ PORT_DIPNAME( 0x20, 0x00, "Renchan Gal Display") PORT_DIPLOCATION("DIP-SW4:6") // 連荘ギャル表示方法
+ PORT_DIPSETTING( 0x20, "After every win" ) // 勝つ毎
+ PORT_DIPSETTING( 0x00, "After 3 consecutive wins" ) // 三連荘後
+ PORT_DIPNAME( 0x40, 0x00, "Game Screen Gal Action" ) PORT_DIPLOCATION("DIP-SW4:7") // ゲーム画面のギャルアクションの有無
+ PORT_DIPSETTING( 0x40, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+ PORT_DIPNAME( 0x80, 0x00, "Auto Reach" ) PORT_DIPLOCATION("DIP-SW4:8") // オートリーチの有無
+ PORT_DIPSETTING( 0x80, DEF_STR(Off) ) // 無
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
+
+ PORT_MODIFY("DSWTOP")
+ PORT_DIPNAME( 0x10, 0x10, "Game Style" ) PORT_DIPLOCATION("DIP-SW3:9") // ゲームスタイル
+ PORT_DIPSETTING( 0x10, "Credit" ) // クレジットタイプ
+ PORT_DIPSETTING( 0x00, "Credit timer" ) // クレジットタイマータイプ
+ PORT_DIPNAME( 0x20, 0x20, "Start Method With Credit Timer" ) PORT_DIPLOCATION("DIP-SW3:10") // クレジットタイマー時のスタート方式
+ PORT_DIPSETTING( 0x20, DEF_STR(Normal) ) // 通常
+ PORT_DIPSETTING( 0x00, "Always minimum bet" ) // 最低レート固定
+ PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP-SW4:9" ) // OFF固定
+ PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DIP-SW4:10" ) // OFF固定
+
+INPUT_PORTS_END
+
static INPUT_PORTS_START( janshinp )
PORT_START("SYSTEM")
@@ -13048,7 +13181,7 @@ GAME( 2000, hnrose, 0, hnrose, hnrose, hanakanz_state, empty_
GAME( 2000, mjswacad, 0, mjgnight, mjgnight, hanakanz_state, empty_init, ROT0, "Techno-Top", "Mahjong Sweet Academy (Japan, TSM010-002)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL ) // needs verifying of inputs, outputs (DIP sheet available)
-GAME( 2000, jongoh, 0, jongoh, seljan2, ddenlovr_state, empty_init, ROT0, "Techno-Top", "Mahjong Jongoh (Japan, TTL800-03-04)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL ) // needs verifying of inputs, outputs
+GAME( 2000, jongoh, 0, jongoh, jongoh, ddenlovr_state, empty_init, ROT0, "Techno-Top", "Mahjong Jongoh (Japan, TTL800-03-04)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL ) // needs verifying of inputs, outputs
GAME( 2001, daireach, 0, daireach, seljan2, hanakanz_state, empty_init, ROT0, "Techno-Top", "Mahjong Dai-Reach (Japan, TSM012-C01)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL )
diff --git a/src/mame/dynax/hanafuda.cpp b/src/mame/dynax/hanafuda.cpp
index c65c47af32e..223e04c5be1 100644
--- a/src/mame/dynax/hanafuda.cpp
+++ b/src/mame/dynax/hanafuda.cpp
@@ -9,121 +9,110 @@
#include "emu.h"
#include "hanafuda.h"
+
INPUT_PORTS_START( dynax_hanafuda_keys )
PORT_START("KEY0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(1)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(1)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(1)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) // "s"
PORT_START("KEY1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(1)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(1)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(1)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(1)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(1)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(1)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_PLAYER(1)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(1) // "l"
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(1) // "f"
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(1) // "f"
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2) // "y"
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
PORT_START("KEY6")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(2)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY8")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_PLAYER(2)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY9")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2) // "l"
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2) // "f"
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2) // "f"
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
-// Medal hanafuda games use 6 card hands
+
INPUT_PORTS_START( dynax_hanafuda_keys_bet )
PORT_INCLUDE( dynax_hanafuda_keys )
PORT_MODIFY("KEY1")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(1)
-
- PORT_MODIFY("KEY2")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("KEY3")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(1) // "b"
PORT_MODIFY("KEY4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) // "t"
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) // "w"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) // "b"
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) // "s"
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(1) // "t"
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(1) // "w"
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(1) // "b"
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(1) // "s"
PORT_MODIFY("KEY6")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2)
-
- PORT_MODIFY("KEY7")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("KEY8")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2) // "b"
PORT_MODIFY("KEY9")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2) // "t"
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2) // "w"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2) // "b"
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2) // "s"
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2) // "t"
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2) // "w"
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2) // "b"
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2) // "s"
INPUT_PORTS_END