diff options
| author | 2025-09-23 01:08:03 +1000 | |
|---|---|---|
| committer | 2025-09-23 01:08:03 +1000 | |
| commit | 357d4c71a3ab2a9c4e9769c73c36a427f9f8d7ec (patch) | |
| tree | a06c8c4f3f437fc3d660b5cc9b8bcbaa9370beb3 | |
| parent | c5101527a07c7da3e271e14a5997e0959d968152 (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.cpp | 259 | ||||
| -rw-r--r-- | src/mame/dynax/hanafuda.cpp | 85 |
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 |
