From 27a895638418d11ec7374aed0a0d916ba27689ef Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Tue, 22 Oct 2024 01:57:59 +1100 Subject: misc/mjsenpu.cpp: Fixed I/O and DIP switch settings. This makes it possible to complete a game with either mahjong keyboard or joystick controls. --- src/mame/misc/mjsenpu.cpp | 239 +++++++++++++++++++++++----------------------- 1 file changed, 118 insertions(+), 121 deletions(-) diff --git a/src/mame/misc/mjsenpu.cpp b/src/mame/misc/mjsenpu.cpp index 799045eec23..abfd791b42b 100644 --- a/src/mame/misc/mjsenpu.cpp +++ b/src/mame/misc/mjsenpu.cpp @@ -9,8 +9,6 @@ SPR800F1 0011E - inputs need finishing off - -- Test Mode Note -- The test mode for this game is very buggy, this is not a MAME bug @@ -85,7 +83,7 @@ private: required_device m_maincpu; required_device m_oki; required_device m_palette; - required_device m_hopper; + required_device m_hopper; required_shared_ptr m_mainram; // required_shared_ptr m_vram; @@ -140,13 +138,9 @@ void mjsenpu_state::control_w(uint8_t data) // bit 0x10 is the M6295 bank, samples <26 are the same in both banks and so bank switch isn't written for them, not even in sound test. m_oki->set_rom_bank(BIT(data, 4)); - // bits 0x08 is used in the alt payout / hopper mode (see dipswitches) - - // 0x04 seem to be hopper/ticket related? different ones get used depending on the DIP switches - m_hopper->motor_w(BIT(~data, 2)); - - // bit 0x02 could be coin counter? - machine().bookkeeping().coin_counter_w(0, BIT(data, 1)); + machine().bookkeeping().coin_counter_w(1, BIT(data, 3)); // credits out + m_hopper->motor_w(BIT(data, 2)); + machine().bookkeeping().coin_counter_w(0, BIT(data, 1)); // coin or key-in // bit 0x01 alternates frequently, using as video buffer, but that's a complete guess m_control = data; @@ -213,144 +207,147 @@ void mjsenpu_state::main_portmap(address_map &map) static INPUT_PORTS_START( mjsenpu ) PORT_START("KEY0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 槓 + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 開始 + PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("KEY1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 聽 + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 押 + PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) + PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("KEY2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 吃 + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 胡 + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) + PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("KEY3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("KEY4") // in joystick mode? - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CONDITION("DSW3",0x08,EQUALS,0x00) - PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3",0x08,EQUALS,0x08) - PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 碰 + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) + PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("KEY4") + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 海底 + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 得分 + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 比倍 + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_MAHJONG_BIG) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 大 + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) // 小 + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 開始 + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 上 + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 下 + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 左 + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 右 + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 摸捨 + PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN1") - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r)) // might be coin out - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) - PORT_SERVICE_NO_TOGGLE( 0x00000010, IP_ACTIVE_LOW ) - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // clears stats in bookkeeping - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_CONDITION("DSW3", 0x08,EQUALS,0x00) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) - PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) ) // unused?? - PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CONDITION("DSW3", 0x02, EQUALS, 0x02) // 投幣 + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW3", 0x02, EQUALS, 0x00) // 投幣 + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW3", 0x04, EQUALS, 0x04) // 退幣 + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW3", 0x04, EQUALS, 0x00) // 退幣 + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(hopper_device::line_r)) // 哈巴 + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // 査悵 + PORT_SERVICE_NO_TOGGLE( 0x00000010, IP_ACTIVE_LOW ) // 測試 + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // clears stats in bookkeeping + PORT_BIT( 0x000000c0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x08) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 押注 + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CONDITION("DSW3", 0x08, EQUALS, 0x00) // 功能 PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW1") - PORT_DIPNAME( 0x00000003, 0x00000003, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00000003, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00000002, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00000001, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0000000c, 0x0000000c, "Note Value" ) // used if DSW3 bit 0x02 is changed - PORT_DIPSETTING( 0x00000000, "100" ) - PORT_DIPSETTING( 0x00000004, "50" ) - PORT_DIPSETTING( 0x00000008, "10" ) + PORT_DIPNAME( 0x00000003, 0x00000003, DEF_STR(Coinage) ) PORT_DIPLOCATION("SW1:1,2") + PORT_DIPSETTING( 0x00000000, DEF_STR(2C_1C) ) // 2:1 + PORT_DIPSETTING( 0x00000003, DEF_STR(1C_1C) ) // 1:1 + PORT_DIPSETTING( 0x00000002, DEF_STR(1C_2C) ) // 1:2 + PORT_DIPSETTING( 0x00000001, DEF_STR(1C_3C) ) // 1:3 + PORT_DIPNAME( 0x0000000c, 0x0000000c, "Key-In Rate" ) PORT_DIPLOCATION("SW1:3,4") // 開分比率 PORT_DIPSETTING( 0x0000000c, "5" ) - PORT_DIPNAME( 0x00000030, 0x00000030, "Ratio 2" ) - PORT_DIPSETTING( 0x00000000, "1:10" ) - PORT_DIPSETTING( 0x00000010, "1:5" ) - PORT_DIPSETTING( 0x00000020, "1:2" ) - PORT_DIPSETTING( 0x00000030, "1:1" ) - PORT_DIPNAME( 0x000000c0, 0x000000c0, "Percentage 1" ) - PORT_DIPSETTING( 0x00000000, "96" ) - PORT_DIPSETTING( 0x00000040, "92" ) - PORT_DIPSETTING( 0x00000080, "88" ) - PORT_DIPSETTING( 0x000000c0, "84" ) + PORT_DIPSETTING( 0x00000008, "10" ) + PORT_DIPSETTING( 0x00000004, "50" ) + PORT_DIPSETTING( 0x00000000, "100" ) + PORT_DIPNAME( 0x00000030, 0x00000030, "Coin Out Rate" ) PORT_DIPLOCATION("SW1:5,6") // 退幣比率 + PORT_DIPSETTING( 0x00000030, DEF_STR(1C_1C) ) // 1:1 + PORT_DIPSETTING( 0x00000020, DEF_STR(2C_1C) ) // 1:2 + PORT_DIPSETTING( 0x00000010, DEF_STR(5C_1C) ) // 1:5 + PORT_DIPSETTING( 0x00000000, "10 Coins/1 Credit" ) // 1:10 + PORT_DIPNAME( 0x000000c0, 0x000000c0, "Jackpot Odds" ) PORT_DIPLOCATION("SW1:7,8") // 大滿貫機率 + PORT_DIPSETTING( 0x000000c0, "84%" ) + PORT_DIPSETTING( 0x00000080, "88%" ) + PORT_DIPSETTING( 0x00000040, "92%" ) + PORT_DIPSETTING( 0x00000000, "96%" ) PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW2") - PORT_DIPNAME( 0x00000003, 0x00000003, "Value 2" ) - PORT_DIPSETTING( 0x00000000, "5" ) - PORT_DIPSETTING( 0x00000001, "3" ) - PORT_DIPSETTING( 0x00000002, "2" ) + PORT_DIPNAME( 0x00000003, 0x00000003, "Minimum Bet" ) PORT_DIPLOCATION("SW2:1,2") // 最小押注 PORT_DIPSETTING( 0x00000003, "1" ) - PORT_DIPNAME( 0x00000004, 0x00000004, "Value 3" ) + PORT_DIPSETTING( 0x00000002, "2" ) + PORT_DIPSETTING( 0x00000001, "3" ) + PORT_DIPSETTING( 0x00000000, "5" ) + PORT_DIPNAME( 0x00000004, 0x00000004, "Maximum Bet" ) PORT_DIPLOCATION("SW2:3") // 最大押注 PORT_DIPSETTING( 0x00000004, "10" ) PORT_DIPSETTING( 0x00000000, "20" ) - PORT_DIPNAME( 0x00000008, 0x00000000, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME( 0x00000008, 0x00000000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:4") // 示範音樂 PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:5") // 倒轉画面 PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x000000e0, 0x000000e0, "Percentage 2" ) - PORT_DIPSETTING( 0x00000000, "60" ) - PORT_DIPSETTING( 0x00000020, "65" ) - PORT_DIPSETTING( 0x00000040, "70" ) - PORT_DIPSETTING( 0x00000060, "75" ) - PORT_DIPSETTING( 0x00000080, "80" ) - PORT_DIPSETTING( 0x000000a0, "85" ) - PORT_DIPSETTING( 0x000000c0, "90" ) - PORT_DIPSETTING( 0x000000e0, "95" ) + PORT_DIPNAME( 0x000000e0, 0x000000e0, "Game Odds" ) PORT_DIPLOCATION("SW2:6,7,8") // 遊戲機率 + PORT_DIPSETTING( 0x00000000, "60%" ) + PORT_DIPSETTING( 0x00000020, "65%" ) + PORT_DIPSETTING( 0x00000040, "70%" ) + PORT_DIPSETTING( 0x00000060, "75%" ) + PORT_DIPSETTING( 0x00000080, "80%" ) + PORT_DIPSETTING( 0x000000a0, "85%" ) + PORT_DIPSETTING( 0x000000c0, "90%" ) + PORT_DIPSETTING( 0x000000e0, "95%" ) PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW3") - PORT_DIPNAME( 0x00000001, 0x00000001, "Credit Limit" ) + PORT_DIPNAME( 0x00000001, 0x00000001, "Credit Limit" ) PORT_DIPLOCATION("SW3:1") // 进分上限 PORT_DIPSETTING( 0x00000001, "100" ) PORT_DIPSETTING( 0x00000000, "500" ) - PORT_DIPNAME( 0x00000002, 0x00000002, "Coin Type?" ) // uses different coinage - PORT_DIPSETTING( 0x00000002, "Coins?" ) - PORT_DIPSETTING( 0x00000000, "Notes?" ) - PORT_DIPNAME( 0x00000004, 0x00000004, "Hopper Type?" ) - PORT_DIPSETTING( 0x00000004, "Normal?" ) // pressing Pay Out button activates hopper on bit 0x04 and pays out - PORT_DIPSETTING( 0x00000000, "Other?" ) // pressing Pay Out activates something on bit 0x08, prints KEY OUT and quickly resets the game - PORT_DIPNAME( 0x00000008, 0x00000008, "Control Type" ) - PORT_DIPSETTING( 0x00000008, "Mahjong Panel" ) - PORT_DIPSETTING( 0x00000000, "Joystick" ) - PORT_DIPNAME( 0x00000010, 0x00000010, "Symbol 5" ) - PORT_DIPSETTING( 0x00000010, "0" ) - PORT_DIPSETTING( 0x00000000, "1" ) - PORT_DIPNAME( 0x00000060, 0x00000060, "Percentage 3" ) - PORT_DIPSETTING( 0x00000000, "92" ) - PORT_DIPSETTING( 0x00000020, "88" ) - PORT_DIPSETTING( 0x00000040, "84" ) - PORT_DIPSETTING( 0x00000060, "80" ) - PORT_DIPNAME( 0x00000080, 0x00000080, "Symbol 6" ) - PORT_DIPSETTING( 0x00000080, "0" ) - PORT_DIPSETTING( 0x00000000, "1" ) + PORT_DIPNAME( 0x00000002, 0x00000002, "Credit Mode" ) PORT_DIPLOCATION("SW3:2") // 進分方式 + PORT_DIPSETTING( 0x00000002, "Coin Acceptor" ) // 投幣 + PORT_DIPSETTING( 0x00000000, "Key-In" ) // 開分 + PORT_DIPNAME( 0x00000004, 0x00000004, "Payout Mode" ) PORT_DIPLOCATION("SW3:3") // 退分方式 + PORT_DIPSETTING( 0x00000004, "Return Coins" ) // 退幣 + PORT_DIPSETTING( 0x00000000, "Key-Out" ) // 洗分 + PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR(Controls) ) PORT_DIPLOCATION("SW3:4") // 操作方法 + PORT_DIPSETTING( 0x00000008, "Mahjong" ) // 按鍵 + PORT_DIPSETTING( 0x00000000, DEF_STR(Joystick) ) // 搖桿 + PORT_DIPNAME( 0x00000010, 0x00000010, "Double Up Game" ) PORT_DIPLOCATION("SW3:5") // 續玩遊戲 + PORT_DIPSETTING( 0x00000010, DEF_STR(Off) ) // 無 + PORT_DIPSETTING( 0x00000000, DEF_STR(On) ) // 有 + PORT_DIPNAME( 0x00000060, 0x00000060, "Double Up Odds" ) PORT_DIPLOCATION("SW3:6,7") // 續玩機率 + PORT_DIPSETTING( 0x00000060, "80%" ) + PORT_DIPSETTING( 0x00000040, "84%" ) + PORT_DIPSETTING( 0x00000020, "88%" ) + PORT_DIPSETTING( 0x00000000, "92%" ) + PORT_DIPNAME( 0x00000080, 0x00000080, "Jackpot Win" ) PORT_DIPLOCATION("SW3:8") // 大滿貫中奨 + PORT_DIPSETTING( 0x00000080, DEF_STR(Off) ) // 無 + PORT_DIPSETTING( 0x00000000, DEF_STR(On) ) // 有 PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -420,7 +417,7 @@ void mjsenpu_state::mjsenpu(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); // more likely coins out? - TICKET_DISPENSER(config, m_hopper, attotime::from_msec(50)); + HOPPER(config, m_hopper, attotime::from_msec(50)); // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); -- cgit v1.2.3