Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynax 's Mahjong Game TenKaiGen dip SW setting #12846

Open
little0000bag opened this issue Oct 3, 2024 · 0 comments
Open

Dynax 's Mahjong Game TenKaiGen dip SW setting #12846

little0000bag opened this issue Oct 3, 2024 · 0 comments

Comments

@little0000bag
Copy link

MAME version

0.270

System information

Windows 11, 64 -bit, version 21H2, Chinese, Chinese
X86-64, 24GB System Ram

INI configuration details

No response

Emulated system/software

No response

Incorrect behaviour

When play this Dynax's TenKaiGen mahjong game, I found some dip SW is not correct.
I searched the manual for this game , and revise the dip setting as below code.
But I am not sure if it is the correct code for the simulation

Current Code for dip SW setting in mame 0.270 as below:

static INPUT_PORTS_START( tenkai )
PORT_START("DSW0")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" )
PORT_DIPSETTING( 0x00, "50" )
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, 0x10, "Odds Rate" )
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
PORT_DIPSETTING( 0x20, "1 2 3 5 10 50 100 200" )
PORT_DIPNAME( 0xc0, 0x40, "Max Bet" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
PORT_DIPSETTING( 0x00, "20" )

PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, "Unknown 1-0&1" )
PORT_DIPSETTING(    0x03, "1:1" )
PORT_DIPSETTING(    0x02, "1:2" )
PORT_DIPSETTING(    0x01, "1:5" )
PORT_DIPSETTING(    0x00, "1:10" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING(    0x0c, "1" )
PORT_DIPSETTING(    0x08, "2" )
PORT_DIPSETTING(    0x04, "3" )
PORT_DIPSETTING(    0x00, "5" )
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
PORT_DIPSETTING(    0x70, "Cut" )
PORT_DIPSETTING(    0x60, "1 T" )
PORT_DIPSETTING(    0x50, "300" )
PORT_DIPSETTING(    0x40, "500" )
PORT_DIPSETTING(    0x30, "700" )
PORT_DIPSETTING(    0x20, "1000" )

// PORT_DIPSETTING( 0x10, "1000" )
// PORT_DIPSETTING( 0x00, "1000" )
PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x80, "2" )

PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0" )
PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1" )
PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Girls (Demo)" )
PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
PORT_DIPSETTING(    0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "In-Game Bet?" )
PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Unknown 2-4" )
PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "Auto Tsumo after Reach" )
PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Last Chance" )
PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "DonDen Key" )
PORT_DIPSETTING(    0x80, "Start" )
PORT_DIPSETTING(    0x00, "Flip Flop" )

PORT_START("DSW3")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "In-Game Music" )
PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Select Girl" )
PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "Moles On Gal's Face" )
PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
PORT_DIPSETTING(    0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Unknown 3-4" )
PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "Unknown 3-5" )
PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Unknown 3-6" )
PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "Set Date" )
PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )

PORT_START("DSW4")  /* (top) */
PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" )
PORT_DIPSETTING(    0x01, "5" )
PORT_DIPSETTING(    0x00, "10" )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Unknown top-2" )
PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Unknown top-3" )
PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Unknown top-4" )
PORT_DIPSETTING(    0x10, "8" )
PORT_DIPSETTING(    0x00, "5" )
PORT_DIPNAME( 0x20, 0x20, "Unknown top-5" )
PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Subtitle" )
PORT_DIPSETTING(    0x40, DEF_STR( None ) )
PORT_DIPSETTING(    0x00, "Part 2" )
PORT_DIPNAME( 0x80, 0x80, "Unknown top-7" )
PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )

PORT_START("COINS")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN  )   // 18B
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE  )   // Test
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )   // Analyzer
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // Memory Reset
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2    )   // Note
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1    )   // Coin
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )   // Service

PORT_INCLUDE( MAHJONG_KEYS_BET )

INPUT_PORTS_END

Expected behaviour

Correct the dip setting refer below code and picture as TenKaiGen dip setting.png (it shows the dip setting in mame(0.270) and the it should be for actual). And I posted the TenKaiGen's manual as attached pictures for your referance.

The dip SW setting code I wrote as below:

static INPUT_PORTS_START( tenkai )
PORT_START("DSW0")
PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" ) //出分比例
PORT_DIPSETTING( 0x00, "50" )
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, 0x10, "Odds Rate" ) //役满得分
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
PORT_DIPSETTING( 0x20, "1 2 3 5 10 50 100 200" )
PORT_DIPNAME( 0xc0, 0x40, "Max Bet" ) //最大押注
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
PORT_DIPSETTING( 0x00, "20" )

PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, "Coin Rate" )                         //投币比例
PORT_DIPSETTING(    0x03, "1:1" )
PORT_DIPSETTING(    0x02, "1:2" )
PORT_DIPSETTING(    0x01, "1:5" )
PORT_DIPSETTING(    0x00, "1:10" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Bet" )                           //最小押注 
PORT_DIPSETTING(    0x0c, "1" )
PORT_DIPSETTING(    0x08, "2" )
PORT_DIPSETTING(    0x04, "3" )
PORT_DIPSETTING(    0x00, "5" )
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )          //役满周期
PORT_DIPSETTING(    0x70, "Cut" )
PORT_DIPSETTING(    0x60, "1 T" )
PORT_DIPSETTING(    0x50, "300" )
PORT_DIPSETTING(    0x40, "500" )
PORT_DIPSETTING(    0x30, "700" )
PORT_DIPSETTING(    0x20, "1000" )

// PORT_DIPSETTING( 0x10, "1000" )
// PORT_DIPSETTING( 0x00, "1000" )
PORT_DIPNAME( 0x80, 0x80, "YAKU TIMES" ) //每次役满次数
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x80, "2" )

PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, "Perfect Starting Hand" )           //配牌出血    
PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "Three Times Chances Changing Tiles" )    //特急便三元换牌
PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "TenKaiGen" )                                   //  天开眼有无                     
PORT_DIPSETTING(    0x00, DEF_STR( TenKaiGen ) )
PORT_DIPSETTING(    0x04, DEF_STR( No TenKaiGen ) )
PORT_DIPNAME( 0x08, 0x08, "In-Game Bet(Continue?)" )           //游戏结束后押分续玩
PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Remaining The Dealer Bonus" )      //连庄赠与
PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "Auto Tsumo after Reach" )             //听牌自动摸打
PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Last Chance" )                                 //海底捞
PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "DonDen Key" )                               // 换牌按键
PORT_DIPSETTING(    0x80, "Start" )
PORT_DIPSETTING(    0x00, "Flip Flop" )

PORT_START("DSW3")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )              //演示声音
PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "In-Game Music" )                              //游戏声音
PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Select Girl" )                                     //对战角色选择
PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "Moles On Gal's Face" )                    //是否有痣
PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
PORT_DIPSETTING(    0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Language" )                                      //  语言 
PORT_DIPSETTING(    0x10, DEF_STR( Chinese ) )
PORT_DIPSETTING(    0x00, DEF_STR( Japanese ) )
PORT_DIPNAME( 0x20, 0x20, "Three Times Chances Changing Tiles Rate" )       //出现三元换牌的频率                      
PORT_DIPSETTING(    0x20, DEF_STR( Normal ) )
PORT_DIPSETTING(    0x00, DEF_STR( Little ) )
PORT_DIPNAME( 0x40, 0x40, "TenKaiGen Rate" )                         // 出现天开眼的频率                    
PORT_DIPSETTING(    0x40, DEF_STR( Normal  ) )
PORT_DIPSETTING(    0x00, DEF_STR( Little ) )
PORT_DIPNAME( 0x80, 0x80, "Set Date" )                                       //日期设定
PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )

PORT_START("DSW4")  /* (top) */
PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" )                      //上分比例
PORT_DIPSETTING(    0x01, "5" )
PORT_DIPSETTING(    0x00, "10" )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )              //画面反转
PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "CPU Strong Or Normal" )          //电脑强弱
PORT_DIPSETTING(    0x04, DEF_STR( Normal ) )
PORT_DIPSETTING(    0x00, DEF_STR( Strong ) )
PORT_DIPNAME( 0x08, 0x08, "Service Count" )                           //服务记数
PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Don Den Times" )                         //换牌次数
PORT_DIPSETTING(    0x10, "8" )
PORT_DIPSETTING(    0x00, "5" )
PORT_DIPNAME( 0x20, 0x20, "Show Clock" )                             //显示时间         
PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Subtitle" )                                   //标题显示Part 2
PORT_DIPSETTING(    0x40, DEF_STR( None ) )
PORT_DIPSETTING(    0x00, "Part 2" )
PORT_DIPNAME( 0x80, 0x80, "YAKUMAN TABLE (Part2 Only)" )                 //已胡役满清单显示Part 2 Only
PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )

PORT_START("COINS")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // Pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN  )   // 18B
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE  )   // Test
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )   // Analyzer
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // Memory Reset
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2    )   // Note
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1    )   // Coin
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )   // Service

PORT_INCLUDE( MAHJONG_KEYS_BET )

INPUT_PORTS_END

TenKaiGen dip setting
TenKaiGen Manual1
TenKaiGen Manual2
TenKaiGen Manual3

Steps to reproduce

No response

Additional details

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant