Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06615 Graphics Major Always Jun 11, 2017, 23:42 Dec 15, 2018, 18:00
Tester john_iv View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Open OS Windows 10 (64-bit)
Status [?] Confirmed Driver
Version 0.186 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 06615: scud: Scud Racer regression, now just a black screen on launch.
Description As before, I use the 'scud' set to benchmark. Phil fixed it a few revs. back when it was crashing. Now however it just displays a black screen when attempting to play (fwiw, the bench results are off too if run as 'mame64.exe scud -bench 90').

http://mametesters.org/view.php?id=6492
Steps To Reproduce 1. mame64 scud

Expected:
Launch scud and display demo.

Actual:
Black screen.
Additional Information
Github Commit
Flags
Regression Version 0.185
Affected Sets / Systems scud
Attached Files
 
Relationships
related to 06492ResolvedPhil Bennett  scud: Crash running scud with -bench 90, regression. 
related to 07174Resolved  bujutsu: the game doesn't get to the title screen anymore 
Notes
6
User avatar
No.13983
Phil Bennett
Developer
Jul 17, 2017, 00:50
PPC execution is stuck on this instruction:

FFF00174 mftb r5,tbl


This issue is a side-effect of this change:

"Convert Sega Model 1 Sound Board and Z80-based Digital Sound Board to use proper UART-based serial interfaces"
https://github.com/mamedev/mame/commit/8275551541111567becbee88ff485c1314c85916


The UART introduced a high-frequency clock (500KHz), which has caused the scheduling quanta to be greatly reduced. The mftb instruction requires 100 cycles to execute but due to the way it is handled in the PPC DRC, there are never enough cycles in a scheduling period for it to execute and thus advance to the next instruction.

Moving generate_update_cycles() to the end of the instruction sequence of mftb resolves the issue but I'm not familiar enough with PowerPC or MAME's DRC to be confident that this is the correct fix.
User avatar
No.13984
Phil Bennett
Developer
Jul 17, 2017, 01:12
Yeah, that's not correct.

Perhaps all that is required is to change the allow_exception parameter of the early call to generate_update_cycles() to false to allow the instruction to run regardless of the cycles remaining?
User avatar
No.14444
Osso
Moderator
Nov 19, 2017, 08:30
With today's updates it gets to car and course selection, but then it hangs when it should go to the start line.
User avatar
No.14939
Robbbert
Senior Tester
Apr 10, 2018, 07:07
Currently it shows the settings, then the message "CANCELLED NETWORK BOARD NOT PRESENT", then it goes back to the settings screen in a loop.
User avatar
No.15274
Hydreigon
Tester
Jul 14, 2018, 18:05
Go into test and change the link ID to single. Preliminary comm board emulation has been done so there is no "Cancelled" message and instead goes into the usual network check. Other than that, the regression is still the same.
User avatar
No.15914
Hydreigon
Tester
Dec 15, 2018, 18:00
edited on: Dec 15, 2018, 18:01
An commit to attempt to fix this bug, https://git.redump.net/mame/commit/src/devices/cpu/powerpc/ppcdrc.cpp?id=0f1d2011fe284045627647fdb201107dd5d6bce0 , broke another PPC related game, Fighting Bujutsu. See here: https://mametesters.org/view.php?id=7174

Currently, Scud Race runs somewhat fine in its attract mode but hangs right before going ingame (black screen or lock at the "Rolling Start" sequence).