Various mahjong input improvements:

* igs/igs011.cpp: Use common mahjong matrix definitions.
* igs/igs011.cpp Fixed DIP switches for lhb2, nkishusp and xymg.
* dynax/ddenlovr.cpp: Fixed DIP switches for mjmyornt based on manual.
* dynax/ddenlovr.cpp: Identified some DIP switches for mjmyster based on
  similarity to mjmyornt.
This commit is contained in:
Vas Crabb 2024-12-07 07:42:40 +11:00
parent 1bdb8c5b8e
commit 9b2582790c
8 changed files with 461 additions and 649 deletions

View File

@ -13,7 +13,7 @@
#define LOG_STATE (1U << 2) #define LOG_STATE (1U << 2)
#define LOG_LINESTATE (1U << 3) #define LOG_LINESTATE (1U << 3)
#define VERBOSE (0) #define VERBOSE (0)
#define LOG_OUTPUT_FUNC osd_printf_info //#define LOG_OUTPUT_FUNC osd_printf_info
#include "logmacro.h" #include "logmacro.h"

View File

@ -6277,7 +6277,7 @@ static INPUT_PORTS_START( mjreach1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -6432,7 +6432,7 @@ static INPUT_PORTS_START( jongtei )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -6643,7 +6643,7 @@ static INPUT_PORTS_START( mjchuuka )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -6798,7 +6798,7 @@ static INPUT_PORTS_START( mjschuka )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -7054,135 +7054,97 @@ static INPUT_PORTS_START( mjmyster )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) MAHJONG_PAYOUT_RATE(0, "SW 1:1,2,3,4")
PORT_DIPSETTING( 0x00, "50" ) PORT_DIPNAME( 0x30, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW 1:5,6")
PORT_DIPSETTING( 0x01, "53" )
PORT_DIPSETTING( 0x02, "56" )
PORT_DIPSETTING( 0x03, "59" )
PORT_DIPSETTING( 0x04, "62" )
PORT_DIPSETTING( 0x05, "65" )
PORT_DIPSETTING( 0x06, "68" )
PORT_DIPSETTING( 0x07, "71" )
PORT_DIPSETTING( 0x08, "75" )
PORT_DIPSETTING( 0x09, "78" )
PORT_DIPSETTING( 0x0a, "81" )
PORT_DIPSETTING( 0x0b, "84" )
PORT_DIPSETTING( 0x0c, "87" )
PORT_DIPSETTING( 0x0d, "90" )
PORT_DIPSETTING( 0x0e, "93" )
PORT_DIPSETTING( 0x0f, "96" )
PORT_DIPNAME( 0x30, 0x30, "Odds Rate" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" ) PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" ) PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" ) PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" ) PORT_DIPNAME( 0xc0, 0x40, "Maximum Bet" ) PORT_DIPLOCATION("SW 1:7,8")
PORT_DIPSETTING( 0xc0, "1" ) PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" ) PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" ) PORT_DIPSETTING( 0x40, "10" )
PORT_DIPSETTING( 0x00, "20" ) PORT_DIPSETTING( 0x00, "20" )
PORT_START("DSW2") PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) MAHJONG_COINAGE(0, "SW 2:1,2")
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_DIPNAME( 0x0c, 0x0c, "Minimum Bet" ) PORT_DIPLOCATION("SW 2:3,4")
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING( 0x0c, "1" ) PORT_DIPSETTING( 0x0c, "1" )
PORT_DIPSETTING( 0x08, "2" ) PORT_DIPSETTING( 0x08, "2" )
PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x04, "3" )
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" ) PORT_DIPNAME( 0x70, 0x40, "Bonus Chance Cycle" ) PORT_DIPLOCATION("SW 2:5,6,7")
PORT_DIPSETTING( 0x70, "Cut" ) PORT_DIPSETTING( 0x70, "None" )
PORT_DIPSETTING( 0x60, "1 T" ) PORT_DIPSETTING( 0x60, "First time only" )
PORT_DIPSETTING( 0x50, "300" ) PORT_DIPSETTING( 0x50, "Every 300 coins" )
PORT_DIPSETTING( 0x40, "500" ) PORT_DIPSETTING( 0x40, "Every 500 coins" )
PORT_DIPSETTING( 0x30, "700" ) PORT_DIPSETTING( 0x30, "Every 700 coins" )
PORT_DIPSETTING( 0x20, "1000" ) PORT_DIPSETTING( 0x20, "Every 1000 coins" )
PORT_DIPSETTING( 0x10, "1000?" ) //PORT_DIPSETTING( 0x10, "Every 1000 coins" )
PORT_DIPSETTING( 0x00, "1000?" ) //PORT_DIPSETTING( 0x00, "Every 1000 coins" )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x00, "Chances Per Cycle" ) PORT_DIPLOCATION("SW 2:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, "2" )
PORT_START("DSW3") PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Times" ) PORT_DIPNAME( 0x03, 0x03, "Game Mode" ) PORT_DIPLOCATION("SW 3:1,2")
// PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x03, "Key-out" )
PORT_DIPSETTING( 0x03, "1" ) PORT_DIPSETTING( 0x02, "Hopper payout" )
PORT_DIPSETTING( 0x02, "2" ) PORT_DIPSETTING( 0x01, "Points with credit timer" )
PORT_DIPSETTING( 0x01, "3?" ) PORT_DIPNAME( 0x04, 0x04, "Hopper Polarity" ) PORT_DIPLOCATION("SW 3:3")
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x04, DEF_STR(Normal) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, "Inverted" )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW 3:4" )
PORT_DIPNAME( 0x18, 0x18, "Payout" ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW 3:5" )
PORT_DIPSETTING( 0x18, "300" ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW 3:6" )
PORT_DIPSETTING( 0x10, "500" ) PORT_DIPNAME( 0x40, 0x00, "Double Bet" ) PORT_DIPLOCATION("SW 3:7")
PORT_DIPSETTING( 0x08, "700" ) PORT_DIPSETTING( 0x40, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, "1000" ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x00, "Last Chance" ) PORT_DIPLOCATION("SW 3:8")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW4") PORT_START("DSW4")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPNAME( 0x01, 0x00, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW 4:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x02, 0x00, "In Game Music" ) PORT_DIPNAME( 0x02, 0x00, "In-Game Music" ) PORT_DIPLOCATION("SW 4:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x04, 0x00, "Show Gals" ) PORT_DIPLOCATION("SW 4:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW 4:4" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW 4:5" )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW 4:6" )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x40, 0x40, DEF_STR( Controls ) ) PORT_DIPLOCATION("SW 4:7")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Controls ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Region ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR(Region) ) PORT_DIPLOCATION("SW 4:8")
PORT_DIPSETTING( 0x80, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x80, DEF_STR(Japan) )
PORT_DIPSETTING( 0x00, DEF_STR( Hong_Kong ) ) PORT_DIPSETTING( 0x00, DEF_STR(Hong_Kong) )
PORT_START("DSW5") PORT_START("DSW5")
PORT_DIPNAME( 0x03, 0x03, "Computer Strength?" ) PORT_DIPNAME( 0x03, 0x03, "Computer Strength?" ) PORT_DIPLOCATION("SW 4:9,10")
PORT_DIPSETTING( 0x03, "Weak" ) PORT_DIPSETTING( 0x03, "Weak" )
PORT_DIPSETTING( 0x02, DEF_STR( Normal )) PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x01, "Strong" ) PORT_DIPSETTING( 0x01, "Strong" )
PORT_DIPSETTING( 0x00, "Very Strong" ) PORT_DIPSETTING( 0x00, "Very Strong" )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x04, 0x00, "Auto Reach" ) PORT_DIPLOCATION("SW 3:9")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x08, 0x08, "DonDen Key" ) PORT_DIPNAME( 0x08, 0x00, "Don Den Button" ) PORT_DIPLOCATION("SW 3:10")
PORT_DIPSETTING( 0x08, "Start" ) PORT_DIPSETTING( 0x08, "Start" )
PORT_DIPSETTING( 0x00, "Flip Flop" ) PORT_DIPSETTING( 0x00, "Flip Flop" )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW 2:9" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW 2:10" )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) MAHJONG_NOTE_CREDITS(6, "SW 1:9", "DSW2", 0)
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x00, DEF_STR(Flip_Screen) ) PORT_DIPLOCATION("SW 1:10")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR(On) )
PORT_DIPNAME( 0x40, 0x40, "Credits Per Note" )
PORT_DIPSETTING( 0x40, "5" )
PORT_DIPSETTING( 0x00, "10" )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( hginga ) static INPUT_PORTS_START( hginga )
@ -7442,7 +7404,7 @@ static INPUT_PORTS_START( hgokou )
PORT_DIPSETTING( 0x40, "75%" ) PORT_DIPSETTING( 0x40, "75%" )
PORT_DIPSETTING( 0x20, "70%" ) PORT_DIPSETTING( 0x20, "70%" )
PORT_DIPSETTING( 0x00, "65%" ) // Hard PORT_DIPSETTING( 0x00, "65%" ) // Hard
PORT_DIPNAME( 0x80, 0x80, "Key-in Rate" ) PORT_DIPLOCATION("SW1:8") PORT_DIPNAME( 0x80, 0x80, "Key-In Rate" ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x00, "5" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x03) PORT_DIPSETTING( 0x00, "5" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x03)
PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x02) PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x02)
PORT_DIPSETTING( 0x00, "25" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x01) PORT_DIPSETTING( 0x00, "25" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x01)
@ -7548,6 +7510,13 @@ static INPUT_PORTS_START( hgokou )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( mjmyornt ) static INPUT_PORTS_START( mjmyornt )
// The manual provides three sets of standard settings:
// 標準設定 シングル向け 標準設定 メダル コーナー向け 標準設定 アミューズ コーナー向け
// SW 1 OFF OFF OFF ON ON ON OFF ON ON OFF OFF OFF OFF ON ON ON OFF ON ON OFF ON OFF OFF ON OFF OFF ON OFF ON OFF
// SW 2 OFF OFF OFF OFF ON ON OFF ON ON ON OFF OFF OFF OFF OFF OFF ON ON ON ON OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF
// SW 3 OFF OFF OFF ON ON ON ON ON ON ON OFF OFF OFF ON ON ON ON ON ON OFF OFF ON OFF ON ON ON ON ON ON OFF
// 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_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 ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 18B PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 18B
@ -7558,142 +7527,116 @@ static INPUT_PORTS_START( mjmyornt )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPLOCATION("SW1:1,2,3,4") MAHJONG_PAYOUT_RATE(0, "SW 1:1,2,3,4") // PAY-OUT 管理
PORT_DIPSETTING( 0x00, "50" ) PORT_DIPNAME( 0x30, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW 1:5,6") // ODDS 設定
PORT_DIPSETTING( 0x01, "53" )
PORT_DIPSETTING( 0x02, "56" )
PORT_DIPSETTING( 0x03, "59" )
PORT_DIPSETTING( 0x04, "62" )
PORT_DIPSETTING( 0x05, "65" )
PORT_DIPSETTING( 0x06, "68" )
PORT_DIPSETTING( 0x07, "71" )
PORT_DIPSETTING( 0x08, "75" )
PORT_DIPSETTING( 0x09, "78" )
PORT_DIPSETTING( 0x0a, "81" )
PORT_DIPSETTING( 0x0b, "84" )
PORT_DIPSETTING( 0x0c, "87" )
PORT_DIPSETTING( 0x0d, "90" )
PORT_DIPSETTING( 0x0e, "93" )
PORT_DIPSETTING( 0x0f, "96" )
PORT_DIPNAME( 0x30, 0x30, "Odds Rate" ) PORT_DIPLOCATION("SW1:5,6")
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" ) PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" ) PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" ) PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" ) PORT_DIPLOCATION("SW1:7,8") PORT_DIPNAME( 0xc0, 0x40, "Maximum Bet" ) PORT_DIPLOCATION("SW 1:7,8") //
PORT_DIPSETTING( 0xc0, "1" ) PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" ) PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" ) PORT_DIPSETTING( 0x40, "10" )
PORT_DIPSETTING( 0x00, "20" ) PORT_DIPSETTING( 0x00, "20" )
PORT_START("DSW2") PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPNAME( 0x03, 0x03, DEF_STR(Coinage) ) PORT_DIPLOCATION("SW 2:1,2") //  
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01) PORT_DIPSETTING( 0x03, DEF_STR(1C_1C) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x01) // 1コイン   1プレイ
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01) PORT_DIPSETTING( 0x02, DEF_STR(1C_2C) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x01) // 1コイン   2プレイ
PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01) PORT_DIPSETTING( 0x01, DEF_STR(1C_5C) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x01) // 1コイン   5プレイ
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01) PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x01) // 1コイン  10プレイ
PORT_DIPSETTING( 0x01, DEF_STR( 2C_2C ) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x00)
PORT_DIPSETTING( 0x01, DEF_STR( 2C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00) PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x00)
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x00)
PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00) PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW5", 0x01, EQUALS, 0x00)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00) PORT_DIPNAME( 0x0c, 0x0c, "Minimum Bet" ) PORT_DIPLOCATION("SW 2:3,4") // 最低 BET RATE
PORT_DIPSETTING( 0x0c, "1" ) // レート 1
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x08, "2" ) // レート 2
PORT_DIPSETTING( 0x0c, "1" ) PORT_DIPSETTING( 0x04, "3" ) // レート 3
PORT_DIPSETTING( 0x08, "2" ) PORT_DIPSETTING( 0x00, "5" ) // レート 5
PORT_DIPSETTING( 0x04, "3" ) PORT_DIPNAME( 0x70, 0x40, "Bonus Chance Cycle" ) PORT_DIPLOCATION("SW 2:5,6,7") // ボーナスチャンスの周期設定
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x70, "None" ) // 無し
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" ) PORT_DIPLOCATION("SW2:5,6,7") PORT_DIPSETTING( 0x60, "First time only" ) // 初回のみ
PORT_DIPSETTING( 0x70, "Cut" ) PORT_DIPSETTING( 0x50, "Every 300 coins" ) // 300コイン毎
PORT_DIPSETTING( 0x60, "1 T" ) PORT_DIPSETTING( 0x40, "Every 500 coins" ) // 500コイン毎
PORT_DIPSETTING( 0x50, "300" ) PORT_DIPSETTING( 0x30, "Every 700 coins" ) // 700コイン毎
PORT_DIPSETTING( 0x40, "500" ) PORT_DIPSETTING( 0x20, "Every 1000 coins" ) // 1000コイン毎
PORT_DIPSETTING( 0x30, "700" ) //PORT_DIPSETTING( 0x10, "Every 1000 coins" )
PORT_DIPSETTING( 0x20, "1000" ) //PORT_DIPSETTING( 0x00, "Every 1000 coins" )
PORT_DIPSETTING( 0x10, "1000?" ) PORT_DIPNAME( 0x80, 0x00, "Chances Per Cycle" ) PORT_DIPLOCATION("SW 2:8") // 周期設定時のチャンス回数
PORT_DIPSETTING( 0x00, "1000?" ) PORT_DIPSETTING( 0x00, "1" ) // 1回
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x80, "2" ) // 2回
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3") PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x03, "Bonus Game" ) PORT_DIPLOCATION("SW3:1,2") PORT_DIPNAME( 0x03, 0x03, "Game Mode" ) PORT_DIPLOCATION("SW 3:1,2")
PORT_DIPSETTING( 0x00, "Slot? (duplicate)" ) PORT_DIPSETTING( 0x03, "Key-out" ) // クレジット・タイプ
PORT_DIPSETTING( 0x03, "Slot?" ) PORT_DIPSETTING( 0x02, "Hopper payout" ) // ホッパー・タイプ
PORT_DIPSETTING( 0x02, "Slot + Girls?" ) PORT_DIPSETTING( 0x01, "Key-out with credit timer" ) // クレジットタイマー・タイプ
PORT_DIPSETTING( 0x01, "Girl Choice" ) // 4 choices in gal mode check (instead of 3) PORT_DIPNAME( 0x04, 0x04, "Hopper Polarity" ) PORT_DIPLOCATION("SW 3:3") // ホッパー・アクティブ
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:3") PORT_DIPSETTING( 0x04, DEF_STR(Normal) ) // 通常
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, "Inverted" ) // 反転
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x18, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SW 3:4,5") // クレジット・コイン リミット
PORT_DIPNAME( 0x18, 0x18, "Payout" ) PORT_DIPLOCATION("SW3:4,5")
PORT_DIPSETTING( 0x18, "300" ) PORT_DIPSETTING( 0x18, "300" )
PORT_DIPSETTING( 0x10, "500" ) PORT_DIPSETTING( 0x10, "500" )
PORT_DIPSETTING( 0x08, "700" ) PORT_DIPSETTING( 0x08, "700" )
PORT_DIPSETTING( 0x00, "1000" ) PORT_DIPSETTING( 0x00, "1000" )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:6") PORT_DIPNAME( 0x20, 0x00, "Computer Strength" ) PORT_DIPLOCATION("SW 3:6") // コンピューターの強さ
PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR(Normal) ) // 普通
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x20, "Strong" ) // 強
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:7") PORT_DIPNAME( 0x40, 0x00, "Double Bet" ) PORT_DIPLOCATION("SW 3:7") // W-BET機能 有無
PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:8") PORT_DIPNAME( 0x80, 0x00, "Last Chance" ) PORT_DIPLOCATION("SW 3:8") // ラスト・チャンス 有無
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_START("DSW4") PORT_START("DSW4")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW4:1") PORT_DIPNAME( 0x01, 0x00, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW 4:1") // デモ・サウンド 有無
PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x02, 0x00, "In Game Music" ) PORT_DIPLOCATION("SW4:2") PORT_DIPNAME( 0x02, 0x00, "In-Game Music" ) PORT_DIPLOCATION("SW 4:2") // ゲーム・サウンド 有無
PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:3") PORT_DIPNAME( 0x04, 0x00, "Show Gals" ) PORT_DIPLOCATION("SW 4:3") // ギャル表示 有無
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:4") PORT_DIPNAME( 0x08, 0x00, "Gal Select" ) PORT_DIPLOCATION("SW 4:4") // ギャル選択機能 有無
PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x08, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:5") PORT_DIPNAME( 0x10, 0x00, "Show Game Action" ) PORT_DIPLOCATION("SW 4:5") // ゲームアクション表示 有無
PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x10, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:6") PORT_DIPNAME( 0x20, 0x00, "In-Game Mat" ) PORT_DIPLOCATION("SW 4:6") // ゲーム中のマット変更
PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, "Plain" ) // 無地
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x20, "With Character" ) // キャラクター有
PORT_DIPNAME( 0x40, 0x40, "Set Clock" ) PORT_DIPLOCATION("SW4:7") PORT_DIPNAME( 0x40, 0x40, "Time Settings Mode" ) PORT_DIPLOCATION("SW 4:7") // 時間設定モード
PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR(Off) ) // 設定時
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 通常
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:8") PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW 4:8" ) // OFF固定
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW5") PORT_START("DSW5")
PORT_DIPNAME( 0x01, 0x01, "Alternate Coinage" ) PORT_DIPLOCATION("SW4:9") PORT_DIPNAME( 0x01, 0x01, "Alternate Coinage" ) PORT_DIPLOCATION("SW 4:9") // OFF固定
PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:10") PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW 4:10" ) // OFF固定
PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPNAME( 0x04, 0x00, "Auto Reach" ) PORT_DIPLOCATION("SW 3:9") // オート・リーチ機能の有無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x04, DEF_STR(Off) ) // 無
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:9") PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPNAME( 0x08, 0x00, "Don Den Button" ) PORT_DIPLOCATION("SW 3:10") // Don・Den 機能ボタン変更
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x08, "Start" ) // スタート・ボタ
PORT_DIPNAME( 0x08, 0x08, "DonDen Key" ) PORT_DIPLOCATION("SW3:10") PORT_DIPSETTING( 0x00, "Flip Flop" ) // F/F・ボタン
PORT_DIPSETTING( 0x08, "Start" ) PORT_DIPNAME( 0x30, 0x00, "Yakuman/Fever Chance Ratio" ) PORT_DIPLOCATION("SW 2:9,10") // ボーナスチャンス周期設定時の役満チャンス&フィバーチャンスの比率
PORT_DIPSETTING( 0x00, "Flip Flop" ) PORT_DIPSETTING( 0x30, "Yakuman Chance Only" ) // 役満チャンスのみ
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:9") PORT_DIPSETTING( 0x20, "Equal Yakuman/Fever Chance" ) // 役満チャンスとフィバーチャンスが同等
PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x10, "Frequent Fever Chance" ) // フィバーチャンスが多い
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, "Fever Chance Only" ) // フィバーチャンスのみ
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:10") MAHJONG_NOTE_CREDITS(6, "SW 1:9", "DSW2", 0) //   (TODO: this is affected by the alternate coinage setting)
PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW 1:10") // ー画面反転
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR(Off) ) // 通常
PORT_DIPNAME( 0x40, 0x40, "Credits Per Note" ) PORT_DIPLOCATION("SW1:9") PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 反転
PORT_DIPSETTING( 0x40, "5" )
PORT_DIPSETTING( 0x00, "10" )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:10")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( mjmyorn2 ) static INPUT_PORTS_START( mjmyorn2 )
@ -7801,7 +7744,7 @@ static INPUT_PORTS_START( mjflove )
PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(ddenlovr_state::mjflove_blitter_r)) // RTC (bit 5) & blitter irq flag (bit 6) PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(ddenlovr_state::mjflove_blitter_r)) // RTC (bit 5) & blitter irq flag (bit 6)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) // blitter busy flag PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) // blitter busy flag
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW2") // IN12 - DSW2 PORT_START("DSW2") // IN12 - DSW2
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
@ -8042,7 +7985,7 @@ static INPUT_PORTS_START( sryudens )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // note2 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // note2
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -8197,7 +8140,7 @@ static INPUT_PORTS_START( seljan2 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // note2 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // note2
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -8352,7 +8295,7 @@ static INPUT_PORTS_START( janshinp )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // service coin (test mode) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // service coin (test mode)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -8506,7 +8449,7 @@ static INPUT_PORTS_START( dtoyoken )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // service coin (test mode) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // service coin (test mode)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
@ -8660,7 +8603,7 @@ static INPUT_PORTS_START( daimyojn )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // note2 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) // note2
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" ) PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )

View File

@ -1577,25 +1577,6 @@ INPUT_PORTS_END
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) /* Coin */ \ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) /* Coin */ \
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* Service */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* Service */
#define MAHJONG_PAYOUT_RATE(shift, loc) \
PORT_DIPNAME( 0x0f << shift, 0x07 << shift, "Payout Rate" ) PORT_DIPLOCATION(loc) \
PORT_DIPSETTING( 0x00 << shift, "50%" ) \
PORT_DIPSETTING( 0x01 << shift, "53%" ) \
PORT_DIPSETTING( 0x02 << shift, "56%" ) \
PORT_DIPSETTING( 0x03 << shift, "59%" ) \
PORT_DIPSETTING( 0x04 << shift, "62%" ) \
PORT_DIPSETTING( 0x05 << shift, "65%" ) \
PORT_DIPSETTING( 0x06 << shift, "68%" ) \
PORT_DIPSETTING( 0x07 << shift, "71%" ) \
PORT_DIPSETTING( 0x08 << shift, "75%" ) \
PORT_DIPSETTING( 0x09 << shift, "78%" ) \
PORT_DIPSETTING( 0x0a << shift, "81%" ) \
PORT_DIPSETTING( 0x0b << shift, "84%" ) \
PORT_DIPSETTING( 0x0c << shift, "87%" ) \
PORT_DIPSETTING( 0x0d << shift, "90%" ) \
PORT_DIPSETTING( 0x0e << shift, "93%" ) \
PORT_DIPSETTING( 0x0f << shift, "96%" )
#define MAHJONG_ODDS_RATE(shift, loc) \ #define MAHJONG_ODDS_RATE(shift, loc) \
PORT_DIPNAME( 0x03 << shift, 0x00 << shift, "Odds Rate" ) PORT_DIPLOCATION(loc) \ PORT_DIPNAME( 0x03 << shift, 0x00 << shift, "Odds Rate" ) PORT_DIPLOCATION(loc) \
PORT_DIPSETTING( 0x03 << shift, "1 2 4 8 12 16 24 32" ) \ PORT_DIPSETTING( 0x03 << shift, "1 2 4 8 12 16 24 32" ) \
@ -1603,35 +1584,6 @@ INPUT_PORTS_END
PORT_DIPSETTING( 0x01 << shift, "1 2 3 5 10 25 50 100" ) \ PORT_DIPSETTING( 0x01 << shift, "1 2 3 5 10 25 50 100" ) \
PORT_DIPSETTING( 0x02 << shift, "1 2 3 5 10 50 100 200" ) PORT_DIPSETTING( 0x02 << shift, "1 2 3 5 10 50 100 200" )
#define MAHJONG_COINAGE(shift, loc) \
PORT_DIPNAME( 0x03 << shift, 0x03 << shift, DEF_STR(Coinage) ) PORT_DIPLOCATION(loc) /*   */ \
PORT_DIPSETTING( 0x03 << shift, DEF_STR(1C_1C) ) /* 1コイン  1プレイ */ \
PORT_DIPSETTING( 0x02 << shift, DEF_STR(1C_2C) ) /* 1コイン  2プレイ */ \
PORT_DIPSETTING( 0x01 << shift, DEF_STR(1C_5C) ) /* 1コイン  5プレイ */ \
PORT_DIPSETTING( 0x00 << shift, "1 Coin/10 Credits" ) /* 1コイン 10プレイ */
#define MAHJONG_NOTE_CREDITS(shift, loc, ct, cs) \
PORT_DIPNAME( 0x01 << shift, 0x00 << shift, "Credits Per Note" ) PORT_DIPLOCATION(loc) /*   */ \
PORT_DIPSETTING( 0x01 << shift, "5" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x03 << cs) /* × */ \
PORT_DIPSETTING( 0x01 << shift, "10" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x02 << cs) \
PORT_DIPSETTING( 0x01 << shift, "25" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x01 << cs) \
PORT_DIPSETTING( 0x01 << shift, "50" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x00 << cs) \
PORT_DIPSETTING( 0x00 << shift, "10" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x03 << cs) /* × */ \
PORT_DIPSETTING( 0x00 << shift, "20" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x02 << cs) \
PORT_DIPSETTING( 0x00 << shift, "50" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x01 << cs) \
PORT_DIPSETTING( 0x00 << shift, "100" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x00 << cs)
#define MAHJONG_YAKUMAN_BONUS(shift, loc) \
PORT_DIPNAME( 0x07 << shift, 0x04 << shift, "Yakuman Bonus Cycle" ) PORT_DIPLOCATION(loc) /* 役満ボーナスの設定周期 */ \
PORT_DIPSETTING( 0x07 << shift, "None" ) /* 無し */ \
PORT_DIPSETTING( 0x06 << shift, "First time only" ) /* 初回のみ */ \
PORT_DIPSETTING( 0x05 << shift, "Every 300 coins" ) /* 300コイン毎 */ \
PORT_DIPSETTING( 0x04 << shift, "Every 500 coins" ) /* 500コイン毎 */ \
PORT_DIPSETTING( 0x03 << shift, "Every 700 coins" ) /* 700コイン毎 */ \
PORT_DIPSETTING( 0x02 << shift, "Every 1000 coins" ) /* 1000コイン毎 */ \
/* PORT_DIPSETTING( 0x01 << shift, "Every 1000 coins" )*/ \
/* PORT_DIPSETTING( 0x00 << shift, "Every 1000 coins" )*/
static INPUT_PORTS_START( cdracula ) static INPUT_PORTS_START( cdracula )
PORT_START("P1") PORT_START("P1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
@ -3004,7 +2956,7 @@ static INPUT_PORTS_START( mjembase )
PORT_DIPNAME( 0x04, 0x00, "Auto Tsumo" ) PORT_DIPLOCATION("SW 4:3") PORT_DIPNAME( 0x04, 0x00, "Auto Tsumo" ) PORT_DIPLOCATION("SW 4:3")
PORT_DIPSETTING( 0x04, DEF_STR(Off) ) PORT_DIPSETTING( 0x04, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR(On) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x08, 0x00, "Double Up" ) PORT_DIPLOCATION("SW 4:4") PORT_DIPNAME( 0x08, 0x00, "Double Bet" ) PORT_DIPLOCATION("SW 4:4")
PORT_DIPSETTING( 0x08, DEF_STR(Off) ) PORT_DIPSETTING( 0x08, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR(On) ) // press Bet during game to double the bet PORT_DIPSETTING( 0x00, DEF_STR(On) ) // press Bet during game to double the bet
PORT_DIPNAME( 0x10, 0x00, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW 4:5") PORT_DIPNAME( 0x10, 0x00, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW 4:5")
@ -3027,7 +2979,7 @@ static INPUT_PORTS_START( mjembase )
MAHJONG_COIN_TEST("DSW1", 0x40) MAHJONG_COIN_TEST("DSW1", 0x40)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
INPUT_PORTS_END INPUT_PORTS_END
@ -3035,7 +2987,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( mjelct3 ) static INPUT_PORTS_START( mjelct3 )
MAHJONG_COIN_TEST("DSW1", 0x40) MAHJONG_COIN_TEST("DSW1", 0x40)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("SW1") // port 85 PORT_START("SW1") // port 85
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1")
@ -3134,7 +3086,7 @@ static INPUT_PORTS_START( mjelctrn )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) // Service PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) // Service
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("SW1") // port 85 PORT_START("SW1") // port 85
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1")
@ -3262,10 +3214,10 @@ static INPUT_PORTS_START( majxtal7 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) // Service PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) // Service
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
PORT_START("DSW0") /* select = 00 */ PORT_START("DSW0") /* select = 00 */
MAHJONG_ODDS_RATE(0, "DIP2:1,2") // sometimes offers double rate for 1, 2 or 3 han MAHJONG_ODDS_RATE(0, "DIP2:1,2")
MAHJONG_COINAGE(2, "DIP2:3,4") MAHJONG_COINAGE(2, "DIP2:3,4")
PORT_DIPNAME( 0x30, 0x30, "Minimum Bet" ) PORT_DIPLOCATION("DIP2:5,6") PORT_DIPNAME( 0x30, 0x30, "Minimum Bet" ) PORT_DIPLOCATION("DIP2:5,6")
PORT_DIPSETTING( 0x30, "1" ) PORT_DIPSETTING( 0x30, "1" )
@ -3472,7 +3424,7 @@ static INPUT_PORTS_START( tenkai )
PORT_DIPNAME( 0x04, 0x00, "Tenkaigen Day" ) PORT_DIPLOCATION("SW 3:3") // 天開眼の日 PORT_DIPNAME( 0x04, 0x00, "Tenkaigen Day" ) PORT_DIPLOCATION("SW 3:3") // 天開眼の日
PORT_DIPSETTING( 0x04, DEF_STR(Off) ) // 無 PORT_DIPSETTING( 0x04, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有 PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x08, 0x00, "Double Up" ) PORT_DIPLOCATION("SW 3:4") // PORT_DIPNAME( 0x08, 0x00, "Double Bet" ) PORT_DIPLOCATION("SW 3:4") //
PORT_DIPSETTING( 0x08, DEF_STR(Off) ) // 無 PORT_DIPSETTING( 0x08, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有 PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x10, 0x00, "Renchan Rate" ) PORT_DIPLOCATION("SW 3:5") // 連荘レート PORT_DIPNAME( 0x10, 0x00, "Renchan Rate" ) PORT_DIPLOCATION("SW 3:5") // 連荘レート
@ -3489,7 +3441,7 @@ static INPUT_PORTS_START( tenkai )
PORT_DIPSETTING( 0x00, "Flip Flop" ) // F/F・ボタン PORT_DIPSETTING( 0x00, "Flip Flop" ) // F/F・ボタン
PORT_START("DSW3") PORT_START("DSW3")
PORT_DIPNAME( 0x01, 0x00, DEF_STR(Demo_Sounds )) PORT_DIPLOCATION("SW 4:1") // デモ・サウンド PORT_DIPNAME( 0x01, 0x00, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW 4:1") // デモ・サウンド
PORT_DIPSETTING( 0x01, DEF_STR(Off) ) // 無 PORT_DIPSETTING( 0x01, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有 PORT_DIPSETTING( 0x00, DEF_STR(On) ) // 有
PORT_DIPNAME( 0x02, 0x00, "In-Game Music" ) PORT_DIPLOCATION("SW 4:2") // ゲーム・サウンド PORT_DIPNAME( 0x02, 0x00, "In-Game Music" ) PORT_DIPLOCATION("SW 4:2") // ゲーム・サウンド
@ -3543,7 +3495,7 @@ static INPUT_PORTS_START( tenkai )
MAHJONG_COIN_TEST("DSW2", 0x01) MAHJONG_COIN_TEST("DSW2", 0x01)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
INPUT_PORTS_END INPUT_PORTS_END
@ -3635,7 +3587,7 @@ static INPUT_PORTS_START( mjreach )
PORT_DIPNAME( 0x02, 0x02, "Hopper Polarity" ) PORT_DIPLOCATION("DIP3:2") PORT_DIPNAME( 0x02, 0x02, "Hopper Polarity" ) PORT_DIPLOCATION("DIP3:2")
PORT_DIPSETTING( 0x02, DEF_STR(Normal) ) PORT_DIPSETTING( 0x02, DEF_STR(Normal) )
PORT_DIPSETTING( 0x00, "Inverted" ) PORT_DIPSETTING( 0x00, "Inverted" )
PORT_DIPNAME( 0x04, 0x00, "Double Up" ) PORT_DIPLOCATION("DIP3:3") PORT_DIPNAME( 0x04, 0x00, "Double Bet" ) PORT_DIPLOCATION("DIP3:3")
PORT_DIPSETTING( 0x04, DEF_STR(Off) ) PORT_DIPSETTING( 0x04, DEF_STR(Off) )
PORT_DIPSETTING( 0x00, DEF_STR(On) ) PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR(Unknown) ) PORT_DIPLOCATION("DIP3:4") PORT_DIPNAME( 0x08, 0x08, DEF_STR(Unknown) ) PORT_DIPLOCATION("DIP3:4")
@ -3704,7 +3656,7 @@ static INPUT_PORTS_START( mjreach )
MAHJONG_COIN_TEST("DSW2", 0x01) MAHJONG_COIN_TEST("DSW2", 0x01)
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( gekisha ) static INPUT_PORTS_START( gekisha )
@ -3765,7 +3717,7 @@ static INPUT_PORTS_START( gekisha )
PORT_DIPNAME( 0x04, 0x04, "Auto Tsumo after Reach" ) PORT_DIPLOCATION( "SW4:3" ) // オート ツモ PORT_DIPNAME( 0x04, 0x04, "Auto Tsumo after Reach" ) PORT_DIPLOCATION( "SW4:3" ) // オート ツモ
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Double Up" ) PORT_DIPLOCATION( "SW4:4" ) // PORT_DIPNAME( 0x08, 0x08, "Double Bet" ) PORT_DIPLOCATION( "SW4:4" ) //
PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Girls (Demo)" ) PORT_DIPLOCATION( "SW4:5" ) // ギャル カット PORT_DIPNAME( 0x10, 0x10, "Girls (Demo)" ) PORT_DIPLOCATION( "SW4:5" ) // ギャル カット
@ -3796,7 +3748,7 @@ static INPUT_PORTS_START( gekisha )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // Coin
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_INCLUDE( mahjong_matrix_2p_bet ) PORT_INCLUDE( mahjong_matrix_2p_bet_wup )
INPUT_PORTS_END INPUT_PORTS_END

View File

@ -462,4 +462,52 @@ private:
INPUT_PORTS_EXTERN(dynax_mahjong_keys); INPUT_PORTS_EXTERN(dynax_mahjong_keys);
INPUT_PORTS_EXTERN(dynax_hanafuda_keys_bet); INPUT_PORTS_EXTERN(dynax_hanafuda_keys_bet);
#define MAHJONG_PAYOUT_RATE(shift, loc) \
PORT_DIPNAME( 0x0f << shift, 0x07 << shift, "Payout Rate" ) PORT_DIPLOCATION(loc) \
PORT_DIPSETTING( 0x00 << shift, "50%" ) \
PORT_DIPSETTING( 0x01 << shift, "53%" ) \
PORT_DIPSETTING( 0x02 << shift, "56%" ) \
PORT_DIPSETTING( 0x03 << shift, "59%" ) \
PORT_DIPSETTING( 0x04 << shift, "62%" ) \
PORT_DIPSETTING( 0x05 << shift, "65%" ) \
PORT_DIPSETTING( 0x06 << shift, "68%" ) \
PORT_DIPSETTING( 0x07 << shift, "71%" ) \
PORT_DIPSETTING( 0x08 << shift, "75%" ) \
PORT_DIPSETTING( 0x09 << shift, "78%" ) \
PORT_DIPSETTING( 0x0a << shift, "81%" ) \
PORT_DIPSETTING( 0x0b << shift, "84%" ) \
PORT_DIPSETTING( 0x0c << shift, "87%" ) \
PORT_DIPSETTING( 0x0d << shift, "90%" ) \
PORT_DIPSETTING( 0x0e << shift, "93%" ) \
PORT_DIPSETTING( 0x0f << shift, "96%" )
#define MAHJONG_COINAGE(shift, loc) \
PORT_DIPNAME( 0x03 << shift, 0x03 << shift, DEF_STR(Coinage) ) PORT_DIPLOCATION(loc) /*   */ \
PORT_DIPSETTING( 0x03 << shift, DEF_STR(1C_1C) ) /* 1コイン  1プレイ */ \
PORT_DIPSETTING( 0x02 << shift, DEF_STR(1C_2C) ) /* 1コイン  2プレイ */ \
PORT_DIPSETTING( 0x01 << shift, DEF_STR(1C_5C) ) /* 1コイン  5プレイ */ \
PORT_DIPSETTING( 0x00 << shift, "1 Coin/10 Credits" ) /* 1コイン 10プレイ */
#define MAHJONG_NOTE_CREDITS(shift, loc, ct, cs) \
PORT_DIPNAME( 0x01 << shift, 0x00 << shift, "Credits Per Note" ) PORT_DIPLOCATION(loc) /*   */ \
PORT_DIPSETTING( 0x01 << shift, "5" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x03 << cs) /* × */ \
PORT_DIPSETTING( 0x01 << shift, "10" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x02 << cs) \
PORT_DIPSETTING( 0x01 << shift, "25" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x01 << cs) \
PORT_DIPSETTING( 0x01 << shift, "50" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x00 << cs) \
PORT_DIPSETTING( 0x00 << shift, "10" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x03 << cs) /* × */ \
PORT_DIPSETTING( 0x00 << shift, "20" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x02 << cs) \
PORT_DIPSETTING( 0x00 << shift, "50" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x01 << cs) \
PORT_DIPSETTING( 0x00 << shift, "100" ) PORT_CONDITION(ct, 0x03 << cs, EQUALS, 0x00 << cs)
#define MAHJONG_YAKUMAN_BONUS(shift, loc) \
PORT_DIPNAME( 0x07 << shift, 0x04 << shift, "Yakuman Bonus Cycle" ) PORT_DIPLOCATION(loc) /* 役満ボーナスの設定周期 */ \
PORT_DIPSETTING( 0x07 << shift, "None" ) /* 無し */ \
PORT_DIPSETTING( 0x06 << shift, "First time only" ) /* 初回のみ */ \
PORT_DIPSETTING( 0x05 << shift, "Every 300 coins" ) /* 300コイン毎 */ \
PORT_DIPSETTING( 0x04 << shift, "Every 500 coins" ) /* 500コイン毎 */ \
PORT_DIPSETTING( 0x03 << shift, "Every 700 coins" ) /* 700コイン毎 */ \
PORT_DIPSETTING( 0x02 << shift, "Every 1000 coins" ) /* 1000コイン毎 */ \
/* PORT_DIPSETTING( 0x01 << shift, "Every 1000 coins" )*/ \
/* PORT_DIPSETTING( 0x00 << shift, "Every 1000 coins" )*/
#endif // MAME_DYNAX_DYNAX_H #endif // MAME_DYNAX_DYNAX_H

View File

@ -67,12 +67,18 @@ Notes:
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"
#include "igsmahjong.h"
#include "mahjong.h"
#include "cpu/m68000/m68000.h" #include "cpu/m68000/m68000.h"
#include "machine/nvram.h"
#include "machine/timer.h"
#include "sound/ics2115.h" #include "sound/ics2115.h"
#include "sound/okim6295.h" #include "sound/okim6295.h"
#include "sound/ymopl.h" #include "sound/ymopl.h"
#include "machine/nvram.h"
#include "machine/timer.h"
#include "emupal.h" #include "emupal.h"
#include "screen.h" #include "screen.h"
#include "speaker.h" #include "speaker.h"
@ -108,37 +114,42 @@ public:
int igs_hopper_r(); int igs_hopper_r();
void init_lhbv33c(); void init_lhbv33c() ATTR_COLD;
void init_drgnwrldv21j(); void init_drgnwrldv21j() ATTR_COLD;
void init_wlcc(); void init_wlcc() ATTR_COLD;
void init_nkishusp(); void init_nkishusp() ATTR_COLD;
void init_drgnwrldv21(); void init_drgnwrldv21() ATTR_COLD;
void init_dbc(); void init_dbc() ATTR_COLD;
void init_lhb(); void init_lhb() ATTR_COLD;
void init_drgnwrld(); void init_drgnwrld() ATTR_COLD;
void init_drgnwrldv30(); void init_drgnwrldv30() ATTR_COLD;
void init_drgnwrldv11h(); void init_drgnwrldv11h() ATTR_COLD;
void init_lhb2(); void init_lhb2() ATTR_COLD;
void init_xymg(); void init_xymg() ATTR_COLD;
void init_drgnwrldv10c(); void init_drgnwrldv10c() ATTR_COLD;
void init_drgnwrldv20j(); void init_drgnwrldv20j() ATTR_COLD;
void init_drgnwrldv40k(); void init_drgnwrldv40k() ATTR_COLD;
void init_ryukobou(); void init_ryukobou() ATTR_COLD;
void init_tygn(); void init_tygn() ATTR_COLD;
void igs011_base(machine_config &config); void drgnwrld(machine_config &config) ATTR_COLD;
void drgnwrld(machine_config &config); void nkishusp(machine_config &config) ATTR_COLD;
void nkishusp(machine_config &config); void tygn(machine_config &config) ATTR_COLD;
void tygn(machine_config &config); void wlcc(machine_config &config) ATTR_COLD;
void wlcc(machine_config &config); void xymg(machine_config &config) ATTR_COLD;
void xymg(machine_config &config); void lhb2(machine_config &config) ATTR_COLD;
void lhb2(machine_config &config); void lhb(machine_config &config) ATTR_COLD;
void lhb(machine_config &config); void drgnwrld_igs012(machine_config &config) ATTR_COLD;
void drgnwrld_igs012(machine_config &config);
protected: protected:
virtual void machine_start() override ATTR_COLD; struct blitter_t
virtual void video_start() override ATTR_COLD; {
u16 x, y, w, h,
gfx_lo, gfx_hi,
depth,
pen,
flags;
};
/* devices */ /* devices */
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
@ -176,15 +187,6 @@ protected:
u16 m_igs003_reg; u16 m_igs003_reg;
u16 m_lhb_irq_enable; u16 m_lhb_irq_enable;
struct blitter_t
{
u16 x, y, w, h,
gfx_lo, gfx_hi,
depth,
pen,
flags;
};
blitter_t m_blitter; blitter_t m_blitter;
u16 m_igs003_prot_hold; u16 m_igs003_prot_hold;
@ -194,6 +196,11 @@ protected:
u8 m_igs003_prot_h1; u8 m_igs003_prot_h1;
u8 m_igs003_prot_h2; u8 m_igs003_prot_h2;
virtual void machine_start() override ATTR_COLD;
virtual void video_start() override ATTR_COLD;
void igs011_base(machine_config &config) ATTR_COLD;
void igs011_priority_w(offs_t offset, u16 data, u16 mem_mask = ~0); void igs011_priority_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u16 igs011_layers_r(offs_t offset); u16 igs011_layers_r(offs_t offset);
void igs011_layers_w(offs_t offset, u16 data, u16 mem_mask = ~0); void igs011_layers_w(offs_t offset, u16 data, u16 mem_mask = ~0);
@ -291,12 +298,12 @@ public:
{ {
} }
void init_vbowl(); void init_vbowl() ATTR_COLD;
void init_vbowlj(); void init_vbowlj() ATTR_COLD;
void init_vbowlhk(); void init_vbowlhk() ATTR_COLD;
void vbowl(machine_config &config); void vbowl(machine_config &config) ATTR_COLD;
void vbowlhk(machine_config &config); void vbowlhk(machine_config &config) ATTR_COLD;
private: private:
/* devices */ /* devices */
@ -3290,262 +3297,194 @@ INPUT_PORTS_END
static INPUT_PORTS_START( lhb2 ) static INPUT_PORTS_START( lhb2 )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x02, "Pay Out (%)" ) PORT_DIPNAME( 0x07, 0x02, "Payout Rate" ) PORT_DIPLOCATION("SW1:1,2,3") // 機率調整
PORT_DIPSETTING( 0x07, "50" ) PORT_DIPSETTING( 0x07, "50%" )
PORT_DIPSETTING( 0x06, "54" ) PORT_DIPSETTING( 0x06, "54%" )
PORT_DIPSETTING( 0x05, "58" ) PORT_DIPSETTING( 0x05, "58%" )
PORT_DIPSETTING( 0x04, "62" ) PORT_DIPSETTING( 0x04, "62%" )
PORT_DIPSETTING( 0x03, "66" ) PORT_DIPSETTING( 0x03, "66%" )
PORT_DIPSETTING( 0x02, "70" ) PORT_DIPSETTING( 0x02, "70%" )
PORT_DIPSETTING( 0x01, "74" ) PORT_DIPSETTING( 0x01, "74%" )
PORT_DIPSETTING( 0x00, "78" ) PORT_DIPSETTING( 0x00, "78%" )
PORT_DIPNAME( 0x08, 0x00, "Odds Rate" ) PORT_DIPNAME( 0x08, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW1:4") // 倍數?
PORT_DIPSETTING( 0x00, "1,2,3,4,5,6,7,8" ) PORT_DIPSETTING( 0x00, "1,2,3,4,5,6,7,8" )
PORT_DIPSETTING( 0x08, "1,2,3,5,8,15,30,50" ) PORT_DIPSETTING( 0x08, "1,2,3,5,8,15,30,50" )
PORT_DIPNAME( 0x10, 0x00, "Max Bet" ) PORT_DIPNAME( 0x10, 0x00, "Maximum Bet" ) PORT_DIPLOCATION("SW1:5") // 最大押注
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x00, "5" )
PORT_DIPSETTING( 0x10, "10" ) PORT_DIPSETTING( 0x10, "10" )
PORT_DIPNAME( 0x60, 0x60, "Min Bet" ) PORT_DIPNAME( 0x60, 0x60, "Minimum Bet" ) PORT_DIPLOCATION("SW1:6,7") // 最小押注
PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x60, "1" )
PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0x40, "2" )
PORT_DIPSETTING( 0x20, "3" ) PORT_DIPSETTING( 0x20, "3" )
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x00, "5" )
PORT_DIPUNKNOWN( 0x80, 0x80 ) PORT_DIPNAME( 0x80, 0x80, "Credit Timer" ) PORT_DIPLOCATION("SW1:8") // ??清除 (clears credits after timeout if you don't start a game)
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // ?
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // ?
PORT_START("DSW2") PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) // Only when bit 4 = 1 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:1,2") // 投幣比率
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
PORT_DIPNAME( 0x04, 0x04, "Credits Per Note" ) // Only when bit 4 = 0 PORT_DIPNAME( 0x04, 0x04, "Key-in Rate" ) PORT_DIPLOCATION("SW2:3") // 開分比率
PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x04, "10" )
PORT_DIPSETTING( 0x00, "100" ) PORT_DIPSETTING( 0x00, "100" )
PORT_DIPNAME( 0x08, 0x08, "Max Note Credits" ) PORT_DIPNAME( 0x08, 0x08, "Credit Limit" ) PORT_DIPLOCATION("SW2:4") // 進分上限
PORT_DIPSETTING( 0x08, "100" ) PORT_DIPSETTING( 0x08, "100" )
PORT_DIPSETTING( 0x00, "500" ) PORT_DIPSETTING( 0x00, "500" )
PORT_DIPNAME( 0x10, 0x10, "Money Type" ) // Decides whether to use bits 0&1 or bit 2 PORT_DIPNAME( 0x10, 0x10, "Credit Mode" ) PORT_DIPLOCATION("SW2:5") // 進分方式
PORT_DIPSETTING( 0x10, "Coins" ) PORT_DIPSETTING( 0x10, "Coin Acceptor" ) // 投幣
PORT_DIPSETTING( 0x00, "Notes" ) PORT_DIPSETTING( 0x00, "Key-In" ) // 開分
PORT_DIPNAME( 0x20, 0x20, "Pay Out Type" ) PORT_DIPNAME( 0x20, 0x20, "Payout Mode" ) PORT_DIPLOCATION("SW2:6") // 退分方式
PORT_DIPSETTING( 0x20, "Coins" ) PORT_DIPSETTING( 0x20, "Key-Out" ) // 洗分
PORT_DIPSETTING( 0x00, "Notes" ) PORT_DIPSETTING( 0x00, "Return Coins" ) // 退幣 (doesn't seem to work properly)
PORT_DIPUNKNOWN( 0x40, 0x40 ) PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" ) // ????
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") // ??音?
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // ?
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) // ?
PORT_START("DSW3") PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x03, 0x03, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1,2") // ??限?
PORT_DIPSETTING( 0x03, "500" ) PORT_DIPSETTING( 0x03, "500" )
PORT_DIPSETTING( 0x02, "1000" ) PORT_DIPSETTING( 0x02, "1000" )
PORT_DIPSETTING( 0x01, "2000" ) PORT_DIPSETTING( 0x01, "2000" )
PORT_DIPSETTING( 0x00, "30000" ) PORT_DIPSETTING( 0x00, "?" ) // ?限?
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x0c, 0x0c, "Gals" ) PORT_DIPLOCATION("SW3:3,4") // 美女
PORT_DIPSETTING( 0x0c, "0" ) PORT_DIPSETTING( 0x0c, "0?" ) // ?美女
PORT_DIPSETTING( 0x08, "1" ) PORT_DIPSETTING( 0x08, "1?" ) // ?美女
PORT_DIPSETTING( 0x04, "2" ) PORT_DIPSETTING( 0x04, "2?" ) // ?開女
// PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x00, "3?" ) // ?開女
PORT_DIPNAME( 0x70, 0x70, DEF_STR( Unknown ) ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:5" ) // (not shown in settings display)
PORT_DIPSETTING( 0x70, "1 : 1" ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:6" ) // (not shown in settings display)
PORT_DIPSETTING( 0x60, "1 : 2" ) PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW3:7" ) // (not shown in settings display)
PORT_DIPSETTING( 0x50, "1 : 5" ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW3:8" ) // (not shown in settings display)
PORT_DIPSETTING( 0x40, "1 : 6" )
PORT_DIPSETTING( 0x30, "1 : 7" )
PORT_DIPSETTING( 0x20, "1 : 8" )
PORT_DIPSETTING( 0x10, "1 : 9" )
PORT_DIPSETTING( 0x00, "1 : 10" )
PORT_DIPUNKNOWN( 0x80, 0x80 )
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CONDITION("DSW2", 0x10, EQUALS, 0x10) // 投幣
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // data clear PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW2", 0x10, EQUALS, 0x00) // 投幣
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // keep pressed while booting PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // 清除
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // hopper switch PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // 測試 (hold on start for input test)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) // stats PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // 哈巴
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) // clear coin PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // 查帳
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW2", 0x20, EQUALS, 0x20) // 洗分
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW2", 0x20, EQUALS, 0x00) // 洗分
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY0") PORT_INCLUDE(mahjong_matrix_1p)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_MODIFY("KEY0")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? set to 0 both PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? set to 0 both
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? and you can't start a game PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? and you can't start a game
PORT_START("KEY1") PORT_MODIFY("KEY1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) // doesn't use any other gambling keys
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY2") PORT_MODIFY("KEY2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY3") PORT_MODIFY("KEY3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY4") PORT_MODIFY("KEY4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xc0, 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_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( nkishusp ) static INPUT_PORTS_START( nkishusp )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x02, "Pay Out (%)" ) PORT_DIPNAME( 0x07, 0x02, "Payout Rate" ) PORT_DIPLOCATION("SW1:1,2,3")
PORT_DIPSETTING( 0x07, "74" ) PORT_DIPSETTING( 0x07, "74%" )
PORT_DIPSETTING( 0x06, "77" ) PORT_DIPSETTING( 0x06, "77%" )
PORT_DIPSETTING( 0x05, "80" ) PORT_DIPSETTING( 0x05, "80%" )
PORT_DIPSETTING( 0x04, "83" ) PORT_DIPSETTING( 0x04, "83%" )
PORT_DIPSETTING( 0x03, "86" ) PORT_DIPSETTING( 0x03, "86%" )
PORT_DIPSETTING( 0x02, "89" ) PORT_DIPSETTING( 0x02, "89%" )
PORT_DIPSETTING( 0x01, "92" ) PORT_DIPSETTING( 0x01, "92%" )
PORT_DIPSETTING( 0x00, "95" ) PORT_DIPSETTING( 0x00, "95%" )
PORT_DIPNAME( 0x08, 0x00, "Odds Rate" ) PORT_DIPNAME( 0x08, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x00, "1,2,3,4,5,6,7,8" ) PORT_DIPSETTING( 0x00, "1,2,3,4,5,6,7,8" )
PORT_DIPSETTING( 0x08, "1,2,3,5,8,15,30,50" ) PORT_DIPSETTING( 0x08, "1,2,3,5,8,15,30,50" )
PORT_DIPNAME( 0x10, 0x00, "Max Bet" ) PORT_DIPNAME( 0x10, 0x00, "Maximum Bet" ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x00, "5" )
PORT_DIPSETTING( 0x10, "10" ) PORT_DIPSETTING( 0x10, "10" )
PORT_DIPNAME( 0x60, 0x60, "Min Bet" ) PORT_DIPNAME( 0x60, 0x60, "Minimum Bet" ) PORT_DIPLOCATION("SW1:6,7")
PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x60, "1" )
PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0x40, "2" )
PORT_DIPSETTING( 0x20, "3" ) PORT_DIPSETTING( 0x20, "3" )
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x80, 0x00, "Credit Timer" ) PORT_DIPNAME( 0x80, 0x80, "Credit Timer" ) PORT_DIPLOCATION("SW1:8") // (clears credits after timeout if you don't start a game)
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW2") PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) // Only when bit 3 = 1 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:1,2")
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
PORT_DIPNAME( 0x04, 0x04, "Credits Per Note" ) // Only when bit 3 = 0 PORT_DIPNAME( 0x04, 0x04, "Key-in Rate" ) PORT_DIPLOCATION("SW2:3")
PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x04, "10" )
PORT_DIPSETTING( 0x00, "100" ) PORT_DIPSETTING( 0x00, "100" )
PORT_DIPNAME( 0x08, 0x08, "Money Type" ) // Decides whether to use bits 0&1 or bit 2 PORT_DIPNAME( 0x08, 0x08, "Credit Mode" ) PORT_DIPLOCATION("SW2:4")
PORT_DIPSETTING( 0x08, "Coins" ) PORT_DIPSETTING( 0x08, "Coin Acceptor" )
PORT_DIPSETTING( 0x00, "Notes" ) PORT_DIPSETTING( 0x00, "Key-In" )
PORT_DIPNAME( 0x10, 0x10, "Auto Play" ) PORT_DIPNAME( 0x10, 0x10, "Auto Play" ) PORT_DIPLOCATION("SW2:5") // (automatically draws and discards tiles after reach)
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) ) PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Undress Girl" ) PORT_DIPNAME( 0x40, 0x40, "Nudity" ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPUNKNOWN( 0x80, 0x80 ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW2:8" ) // (not shown in settings display)
PORT_START("DSW3") PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x03, "Credit Limit" ) PORT_DIPNAME( 0x03, 0x03, "Credit Limit" ) PORT_DIPLOCATION("SW3:1,2")
PORT_DIPSETTING( 0x03, "500" ) PORT_DIPSETTING( 0x03, "500" )
PORT_DIPSETTING( 0x02, "1000" ) PORT_DIPSETTING( 0x02, "1000" )
PORT_DIPSETTING( 0x01, "2000" ) PORT_DIPSETTING( 0x01, "2000" )
PORT_DIPSETTING( 0x00, "30000" ) PORT_DIPSETTING( 0x00, "Unlimited" ) // (seems to be limited to 9,999 trying to exceed this gives "RECORD ERROR 10")
PORT_DIPUNKNOWN( 0x04, 0x04 ) PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:3" ) // (not shown in settings display)
PORT_DIPUNKNOWN( 0x08, 0x08 ) PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" ) // (not shown in settings display)
PORT_DIPNAME( 0x70, 0x70, DEF_STR( Unknown ) ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:5" ) // (not shown in settings display)
PORT_DIPSETTING( 0x70, "1 : 1" ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:6" ) // (not shown in settings display)
PORT_DIPSETTING( 0x60, "1 : 2" ) PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW3:7" ) // (not shown in settings display)
PORT_DIPSETTING( 0x50, "1 : 5" ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW3:8" ) // (not shown in settings display)
PORT_DIPSETTING( 0x40, "1 : 6" )
PORT_DIPSETTING( 0x30, "1 : 7" )
PORT_DIPSETTING( 0x20, "1 : 8" )
PORT_DIPSETTING( 0x10, "1 : 9" )
PORT_DIPSETTING( 0x00, "1 : 10" )
PORT_DIPUNKNOWN( 0x80, 0x80 )
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CONDITION("DSW2", 0x08, EQUALS, 0x08) // 投幣
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // data clear PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW2", 0x08, EQUALS, 0x00) // 投幣
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // keep pressed while booting PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // 清除
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // hopper switch PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // 測試 (hold on start for input test)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) // stats PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // 哈巴
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) // clear coin PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // 查帳
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // 洗分
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY0") PORT_INCLUDE(mahjong_matrix_1p)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_MODIFY("KEY0")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? set to 0 both PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? set to 0 both
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? and you can't start a game PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? and you can't start a game
PORT_START("KEY1") PORT_MODIFY("KEY1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) // doesn't use any other gambling keys
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY2") PORT_MODIFY("KEY2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY3") PORT_MODIFY("KEY3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY4") PORT_MODIFY("KEY4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xc0, 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_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END INPUT_PORTS_END
@ -3830,63 +3769,18 @@ static INPUT_PORTS_START( lhb )
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // hopper switch PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // hopper switch
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) // system reset PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // system reset
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // keep pressed while booting PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // keep pressed while booting
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // stats PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // stats
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) // clear coins PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) // clear coins
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD) // shown in test mode PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD) // shown in test mode
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY0") PORT_INCLUDE(igs_mahjong_matrix)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY1") PORT_MODIFY("KEY4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2) // shown in test mode
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2) // shown in test mode
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END INPUT_PORTS_END
@ -4035,45 +3929,48 @@ INPUT_PORTS_END
static INPUT_PORTS_START( xymg ) static INPUT_PORTS_START( xymg )
PORT_START("DSW1") PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2") // 投幣比率
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
PORT_DIPNAME( 0x0c, 0x0c, "Credits Per Note" ) PORT_DIPNAME( 0x0c, 0x0c, "Key-in Rate" ) PORT_DIPLOCATION("SW1:3,4") // 開分比率
PORT_DIPSETTING( 0x0c, "10" ) PORT_DIPSETTING( 0x0c, "10" )
PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x08, "20" )
PORT_DIPSETTING( 0x04, "50" ) PORT_DIPSETTING( 0x04, "50" )
PORT_DIPSETTING( 0x00, "100" ) PORT_DIPSETTING( 0x00, "100" )
PORT_DIPNAME( 0x10, 0x10, "Max Note Credits" ) PORT_DIPNAME( 0x10, 0x10, "Credit Limit" ) PORT_DIPLOCATION("SW1:5") // 進分上限
PORT_DIPSETTING( 0x10, "500" ) PORT_DIPSETTING( 0x10, "500" )
PORT_DIPSETTING( 0x00, "9999" ) PORT_DIPSETTING( 0x00, "Unlimited" ) // 無限制 (if you have 10,000 or more credits, further credits will be rejected)
PORT_DIPNAME( 0x20, 0x20, "Money Type" ) PORT_DIPNAME( 0x20, 0x20, "Credit Mode" ) PORT_DIPLOCATION("SW1:6") // 進分方式
PORT_DIPSETTING( 0x20, "Coins" ) // use bits 0-1 PORT_DIPSETTING( 0x20, "Coin Acceptor" ) // 投幣
PORT_DIPSETTING( 0x00, "Notes" ) // use bits 2-3 PORT_DIPSETTING( 0x00, "Key-In" ) // 開分
PORT_DIPUNKNOWN( 0x40, 0x40 ) PORT_DIPNAME( 0x40, 0x40, "Payout Mode" ) PORT_DIPLOCATION("SW1:7") // 退分方式
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x40, "Return Coins" ) // 退幣
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, "Key-Out" ) // 洗分
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8") // 示範音樂
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // 無
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) // 有
PORT_START("DSW2") PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x03, 0x03, "Double Up Jackpot" ) PORT_DIPLOCATION("SW2:1,2") // 比倍爆機
PORT_DIPSETTING( 0x03, "1000" ) PORT_DIPSETTING( 0x03, "1000" )
PORT_DIPSETTING( 0x02, "1500" ) PORT_DIPSETTING( 0x02, "1500" )
PORT_DIPSETTING( 0x01, "2000" ) PORT_DIPSETTING( 0x01, "2000" )
PORT_DIPSETTING( 0x00, "3000" ) PORT_DIPSETTING( 0x00, "3000" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Bet" ) PORT_DIPNAME( 0x0c, 0x0c, "Minimum Bet" ) PORT_DIPLOCATION("SW2:3,4") // 最小押注
PORT_DIPSETTING( 0x0c, "1" ) PORT_DIPSETTING( 0x0c, "1" )
PORT_DIPSETTING( 0x08, "2" ) PORT_DIPSETTING( 0x08, "2" )
PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x04, "3" )
PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) // shown in test mode PORT_DIPNAME( 0x10, 0x10, "Double Up Game" ) PORT_DIPLOCATION("SW2:5") // 比倍遊戲
PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // 無
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) // 有
PORT_DIPUNKNOWN( 0x20, 0x20 ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" ) // (not shown in settings display)
PORT_DIPUNKNOWN( 0x40, 0x40 ) PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" ) // (not shown in settings display)
PORT_DIPUNKNOWN( 0x80, 0x80 ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW2:8" ) // (not shown in settings display)
// FIXME: SW3 doesn't respond in input test - are these hooked up correctly?
PORT_START("DSW3") PORT_START("DSW3")
PORT_DIPUNKNOWN( 0x01, 0x01 ) PORT_DIPUNKNOWN( 0x01, 0x01 )
PORT_DIPUNKNOWN( 0x02, 0x02 ) PORT_DIPUNKNOWN( 0x02, 0x02 )
@ -4088,61 +3985,15 @@ static INPUT_PORTS_START( xymg )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // hopper switch PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(igs011_state::igs_hopper_r)) // hopper switch
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // keep pressed while booting PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) // keep pressed while booting
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // stats PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // stats
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) // clear coin PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x00)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY0") PORT_INCLUDE(igs_mahjong_matrix)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END INPUT_PORTS_END

View File

@ -7,7 +7,7 @@
INPUT_PORTS_START( igs_mahjong_matrix ) INPUT_PORTS_START( igs_mahjong_matrix )
PORT_INCLUDE(mahjong_matrix_1p_bet) PORT_INCLUDE(mahjong_matrix_1p_bet_wup)
PORT_MODIFY("KEY0") PORT_MODIFY("KEY0")
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN)

View File

@ -95,6 +95,13 @@ INPUT_PORTS_START(mahjong_matrix_1p_bet)
PORT_MODIFY("KEY4") PORT_MODIFY("KEY4")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE) PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE)
INPUT_PORTS_END
INPUT_PORTS_START(mahjong_matrix_1p_bet_wup)
PORT_INCLUDE(mahjong_matrix_1p_bet)
PORT_MODIFY("KEY4")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE) PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP) PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG)
@ -160,16 +167,25 @@ INPUT_PORTS_START(mahjong_matrix_2p_bet)
PORT_MODIFY("KEY4") PORT_MODIFY("KEY4")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE) PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL)
PORT_MODIFY("KEY6") PORT_MODIFY("KEY6")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET) PORT_PLAYER(2) PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET) PORT_PLAYER(2)
PORT_MODIFY("KEY9") PORT_MODIFY("KEY9")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE) PORT_PLAYER(2) PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE) PORT_PLAYER(2)
INPUT_PORTS_END
INPUT_PORTS_START(mahjong_matrix_2p_bet_wup)
PORT_INCLUDE(mahjong_matrix_2p_bet)
PORT_MODIFY("KEY4")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL)
PORT_MODIFY("KEY9")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE) PORT_PLAYER(2) PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE) PORT_PLAYER(2)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP) PORT_PLAYER(2) PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP) PORT_PLAYER(2)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG) PORT_PLAYER(2) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG) PORT_PLAYER(2)

View File

@ -8,10 +8,12 @@
INPUT_PORTS_EXTERN(mahjong_matrix_1p); // letters, start, kan/pon/chi/reach/ron INPUT_PORTS_EXTERN(mahjong_matrix_1p); // letters, start, kan/pon/chi/reach/ron
INPUT_PORTS_EXTERN(mahjong_matrix_1p_ff); // adds flip flop INPUT_PORTS_EXTERN(mahjong_matrix_1p_ff); // adds flip flop
INPUT_PORTS_EXTERN(mahjong_matrix_1p_bet); // adds bet/take/double/big/small/last chance INPUT_PORTS_EXTERN(mahjong_matrix_1p_bet); // adds bet/last chance
INPUT_PORTS_EXTERN(mahjong_matrix_1p_bet_wup); // adds take score/double up/big/small
INPUT_PORTS_EXTERN(mahjong_matrix_2p); // letters, start, kan/pon/chi/reach/ron INPUT_PORTS_EXTERN(mahjong_matrix_2p); // letters, start, kan/pon/chi/reach/ron
INPUT_PORTS_EXTERN(mahjong_matrix_2p_ff); // adds flip flop INPUT_PORTS_EXTERN(mahjong_matrix_2p_ff); // adds flip flop
INPUT_PORTS_EXTERN(mahjong_matrix_2p_bet); // adds bet/take/double/big/small/last chance INPUT_PORTS_EXTERN(mahjong_matrix_2p_bet); // adds bet/last chance
INPUT_PORTS_EXTERN(mahjong_matrix_2p_bet_wup); // adds take score/double up/big/small
#endif // MAME_SHARED_MAHJONG_H #endif // MAME_SHARED_MAHJONG_H