Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09418 Misc. Minor Always 15 days ago 1 hour ago
Tester jman View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows (x64)
Status [?] Confirmed Driver
Version 0.286 Fixed in Version Build x64
Fixed in Git Commit Github Pull Request #
Summary 09418: bodyslam, quartet, quarteta, and quartet2.: soft reset causes the game freeze
Description Since 0.215, soft reset causes the game freeze. No problem for quartet2a.
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version 0.215
Affected Sets / Systems bodyslam, quartet, quarteta, and quartet2.
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
2
User avatar
No.24310
Robbbert
Moderator
1 hour ago
edited on: 1 hour ago
There's a driver note about this, although they don't exactly specify which games.

"Known bugs: some games are stuck after reset when i8751 is present".

Actually, seems to be those using the system16_i8751 config and also using init_generic. This means that the only other i8751 game, dumpmtmt, is working.

The i8751 (mcu) fills the error log with [:mcu] read of un-hooked port 3 (PC=2B3).
User avatar
No.24311
Robbbert
Moderator
1 hour ago
Found the unlikely reason for the hang, at least for "quartet". The mcu contains code to detect a warm reset and to get stuck in a loop if so.

The bytes at 7E and 7F of the idata memory space start out as 00 as expected, but soon get set to 4B and 54. The mcu startup sequence checks if these values are already there, and if so, jumps to 0453, where it gets stuck.

0453:mov p1,#BF
0456:mov p1,#EF
0459:sjmp $0453
045B:ret

I'm not familiar with 8751 code, but I think it's getting stuck there on purpose. If you go back to the testing at around 0147 to 0153, and remove or skip the part where it jumps to 0453, then pressing F3 seems to work fine.