Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08160 DIP/Input Trivial N/A 26 days ago 15 days ago
Tester GoldS_TCRF View Status Public Platform MAME (Official Binary)
Assigned To Steve Coomber Resolution Fixed OS Windows 10/11 (64-bit)
Status [?] Resolved Driver taito_b.cpp
Version 0.238 Fixed in Version 0.240GIT Build 64-bit
Fixed in Git Commit 4d89e7c Github Pull Request # #9040
Summary 08160: sbm, sbmj: Dip switch information for both the US and JP sets.
Description The following text details dip switch information for both the US and JP sets.

(Both sets)
Dip Switches 2-3 + 2-4
Modifies the power of the player's punch by a set amount. Table is at 0x0A614:
DIP 00: 0000 ;+00
DIP 01: FFFB ;-05
DIP 10: 0005 :+05
DIP 11: 000A :+10
For example, if the player had an initial power of 200t and Dip Switches 2-3 and 2-4 were both set, the power would be increased to 210t.

This bonus (or penalty) is applied before the game floors the punch power at 1t and before it caps the punch power at 300t. So, if in MAME, you hold Pad Photosensors 1 and 2 and then immediately hit Pad Photosensor 3, you'll still get a punch power of 300t even if Dip Switch 2-3 was set and Dip Switch 2-4 wasn't.

Just for reference, the initial power of the player's punch is calculated by taking 24000 and dividing it by the timer at 105048 in RAM. This is performed in the subroutine at 0x0A5B0 in the main CPU.

(JP set only)
Dip Switches 1-3 + 1-4
This is labelled as "Coinage", but this is actually Coin A in the JP set. Because both the US and JP sets are using the same input data, the values are also incorrect. The correct coinage for the JP set is as follows:
00: 1 Coin/ 1 Credit
01: 1 Coin/ 2 Credits
10: 2 Coins/1 Credit
11: 3 Coins/1 Credit

Dip Switches 1-5 + 1-6
This is the coinage for Coin B. Exact same settings as Coin A.

(US set only - These are all related to how the game awards tickets)
Dip Switch 1-1
When flipped, disables the ticket feature altogether.

Dip Switch 1-2
When flipped, disables the round completion ticket bonus.

Dip Switches 2-5 + 2-6
Controls the power divider. The game calculates the base ticket total by taking the total power of the player's three punches and then dividing it by one of four values in the table at 0x7FFC0:
DIP 00: 50
DIP 01: 40
DIP 10: 80
DIP 11: 120
For example, if the player got a combined total of 640t power and dip switch 2-6 was set but 2-5 was not, they'll have a base of 8 tickets.

Dip Switches 2-7 + 2-8
Controls the value of the round completion ticket bonus. Each round has its own ticket table: The first value is for 00, the second is for 01, third for 10, fourth for 11:
7FFC8: 0001 0002 0003 0002 #ROUND 1 BONUS TABLE - 01 / 02 / 03 / 02
7FFD0: 0002 0004 0004 0004 #ROUND 2 BONUS TABLE - 02 / 04 / 04 / 04
7FFD8: 0003 0006 0005 0008 #ROUND 3 BONUS TABLE - 03 / 06 / 05 / 08
7FFE0: 0004 0008 0006 0010 #ROUND 4 BONUS TABLE - 04 / 08 / 06 / 16
7FFE8: 0005 000A 0007 0020 #ROUND 5 BONUS TABLE - 05 / 10 / 07 / 32
For example, if the player beat round 4 and dip switch 2-7 was set but 2-8 was not, they'd have a bonus of 8 tickets.
Steps To Reproduce
Additional Information
Github Commit
Regression Version
Affected Sets / Systems sbm, sbmj
Attached Files
There are no relationship linked to this issue.
User avatar
Steve Coomber
25 days ago
Thanks for the detailed log. The coinage on the US set is actually on DIP switches 1-5 + 1-6. So for the JP set, did you mean Coin A is using 1-5 + 1-6 and Coin B is using 1-7 + 1-8 ?
User avatar
25 days ago
edited on: 25 days ago
Yes, the US set uses 1-5 + 1-6 for both Coin A and Coin B, while the JP set uses 1-5 + 1-6 for Coin A and 1-7 + 1-8 for Coin B.

There's code at 0x083D6 that sets RAM address 104F30 to the combined value of 1-7 and 1-8 if the value of the dip switches was non-zero and was less than current Coinage (e.g. The game was set to 3 coins / 1 credit and, Dip Switch 1-8 was was set, 104F30 will be set to 2) and the game's region flag at 0x7FFFE was set to US (0x0002). The only subroutines that read RAM address 104F30 are at 0x08318 and 0x08338, but neither of them are called during the game. So dip switches 1-7 and 1-8 end up doing nothing in the US set.
User avatar
Steve Coomber
24 days ago
Thanks GoldS_TCRF. I can confirm that the DIP switches behave as you have advised and I have put in a pull request to resolve this.
User avatar
22 days ago
The change made six DIP switches disappear for sbmj and needed to be reverted.
User avatar
Steve Coomber
22 days ago
Submitted another PR that makes the six unknown DIP switches visible