Viewing Issue Advanced Details
|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|07091||DIP/Input||Major||Always||Sep 4, 2018, 09:04||Sep 6, 2018, 13:56|
|Tester||MetalGod||View Status||Public||Platform||MAME (Official Binary)|
|Assigned To||AJR||Resolution||Fixed||OS||Windows Vista/7/8 (64-bit)|
|Version||0.201||Fixed in Version||0.202||Build||64-bit|
|Fixed in Git Commit||Github Pull Request #|
|Summary||07091: sgunner2, sgunner2j: Player 1 and Player 2 Coin buttons missing|
Coin buttons for player 1 and 2 don't work ingame.
They are both recognized inside the service menu but don't work ingame.
This incidence started in Mame 0.193 and it's still happening in Mame 0.201
It looks similar to ticket 05287
|Steps To Reproduce||Just try to insert a credit ingame (5 or 6 keys by default)|
|Affected Sets / Systems||sgunner2, sgunner2j|
|There are no relationship linked to this issue.|
Sep 6, 2018, 13:56
This was the result of a M740 bug introduced as a subtle and unnecessary change during the great disassembler refactoring. To make a long story short, variable shadowing made the SET and CLT instructions not actually affect execution, even though they could affect the disassembly.
If you want to see the exact point where sgunner2's coin inputs were getting lost, run the debugger, focus on the c68 MCU and then enter 'bpset 83b9, a & 3'. This breakpoint will trigger when a coin input is received. Examine the surrounding code, and you can tell that the coin inputs will be obliterated if LDT #$00 (the instruction at 83B9) is executed as LDA #$00 (which the instruction would be interpreted as without SET). Stepping over the instruction will confirm whether or not that happens.