-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
[Regression] Mercury Meltdown - black screen #15068
Comments
Not working since v1.9.4 according to reports |
I'm the one who confirmed it working on Linux. I do self-build both standalone and libretro, but it's working fine on both for me, both US and EU. EDIT: Okay, bit of testing done. I checked the prebuilt core, still works fine. I moved that exact same core over to the steam version of RetroArch, which uses the soldier runtime and fixed library versions, and |
I was the one who happened upon this issue in the first place and asked for help on the RetroAchievements Discord, which Sanaki was very kind to provide (hi!). I'm on Windows 10 using the European version of Mercury Meltdown that I ripped myself (MD5: 7da9fb71400dd907dbc83aaf3cedf8ff), and have experienced this issue both in the latest standalone and the latest retroarch core. The game ran perfectly fine in an older build of PPSSPP standalone before I updated to the latest version, though unfortunately I have no record of which older version that was. |
Maybe it's affected by some setting, like I/O timing mode, or similar... |
I cannot reproduce this issue in my phone redmi note 9. Screenrecorder-2021-10-30-05-57-11-719.mp4 |
We tested identical settings via the libretro core. Standalone wasn't tested in the same fashion, but aligned with the core's behavior in every case. |
That's an android phone right? Since android is a modified version of linux, i'm not surprised that it works on there. It seems to be specifically a problem with Windows. |
Android is a very different platform. The relation to linux is flimsy at best. Still good to know that it's unaffected though. Looks like I see this log line only when it fails: |
Quick update... seems in the quick setup of the steam version I failed to set up my save location (thus the PSP directory) correctly. It works fine for me via steam as well. That said, the same is not true of the Windows version, where it fails. Apologies for the confusion that may have caused. The line listed above -does- show on the Windows version, but does not appear when the game successfully boots. |
Funny, for me the problem exists in the Android version as well.
20211030_002133.mp4
20211030_002300.mp4My phone is pretty old tho (Samsung Galaxy A5 2016) and still runs under Android 7. |
@Gamemulatorer how this game is working in latest build? I can reproduce this issue for me. |
It's weird my ancient phone android 5 with mali-450 gpu can reproduce this. video.recording.online-video-cutter.com.mp4 |
I don't know why it's working properly this game in my Redmi Note 9 😂 |
I can confirm the game works fine on my Razer Phone 2 running Android 9 on PPSSPP v1.12.3-102-ga9d7948f7 (a9d7948), grabbed from the orphis buildbot. Tested via vulkan. That said, I just went back and linked my Linux PSP directory into my Windows libretro save directory and the game now launches. This seems to be caused by something missing from the PSP directory, though I'm not yet sure what. I'll try to narrow it down. EDIT: The game boots when |
@Sanaki where the |
Yes the game boots if I use save data in my ancient phone. This is just like #14757 |
Not entirely sure. Someone claimed starting up Wipeout Pure may generate the data in question, but I'm uncertain if that occurs when emulated, or only on real hardware. Given that I'm uncertain what all is contained in that file at the moment, I'm wary of sharing my own publicly. I found some limited info on it here: If contributors need access to that file to attempt to develop a fix, please contact me privately. My keybase with contact info is linked in my github profile. I assume some of you will have it already though, if it's generated on real hardware. @Gamemulatorer It doesn't seem at all similar to the issue you linked. The saves you linked also don't include the data I mentioned. |
I think PPCD00001DLS001 is related to online/netplay and should be generated by savedata APIs. It's possible this issue only happens when that savedata doesn't yet exist, and happens when creating that savedata. Does this only happen when netplay / wifi switch options are enabled? -[Unknown] |
Just verified reaching the data load screen on Wipeout Pure will generate the necessary data. The wifi setting does not affect the issue in this game. |
According to this old post https://forums.ps2dev.org/viewtopic.php?p=13291&sid=aef41c9a5ada05adce01b7b4ee322a5a#p13291 |
Can confirm, after booting Wipeout Pure at least once, the game now boots properly. Which is super weird because while I was bisecting the issue, I never had that "PPCD00001DLS001" folder. |
Huh! Now that is quite surprising. Even more so that 52c5f4b would affect how the game reacts to the presence or not of that file. Can we "manually" create a file like that which the game will accept? What are the contents? |
Although that might not be the right question to ask, since the game obviously works on real hardware... Why isn't it creating the file itself, or why does it suddenly need it? Quite odd. |
I tried d066b39 again out of curiosity (last working commit), it looks like even when it was working without the "PPCD00001DLS001" folder it was still checking for that "DATA2.BIN" file:
but it didn't prevent the game from booting. There's also that line mentioned in previous replies, again only appearing when the "PPCD00001DLS001" folder is missing:
not sure what that means but ingame save works perfectly fine, and again it doesn't prevent the game from booting with that commit. |
I tested this game (EUR version) on JPCSP and it also shows black screen the first time i boot this game (the log shows an infinite of repeated Update: when i tested with JPCSP LLE(prx files) the game was able to creates the "PPCD00001DLS001" folder and boot without getting infinite black screen (i only see one |
That's always welcome, but this issue isn't about that. You can check on Discord here https://discord.gg/5NJB6dD, or read the instructions here: https://github.com/hrydgard/ppsspp/tree/master/assets/lang#readme -[Unknown] |
Links were provided. Please use them. Conversation on this topic does not belong in this issue. |
Removing this error ppsspp/Core/Dialog/SavedataParam.cpp Lines 407 to 408 in a9d7948
However, the next time the game booted it won't get stuck in black screen anymore, and DATA2.BIN will have some data in it (276 bytes), which is similar behavior to JPCSP HLE |
@unknownbrackets |
ppsspp v1.13.1-583-g1653dcdc1 bad log |
@sum2012 Could you test on real PSP to find out whether the
|
@anr2me PPCD00001DLS001 supposed to be created at boot time |
This is the content of the PPCD00001DLS001 created by PPSSPP for the first time/first boot and stuck with black screen, the DATA2.BIN size is 0 bytes, on the 2nd boot the file will be overwritten with the correct size/data and no longer stuck |
There are 2 problem: |
This is probably just timing issue, after commit 52c5f4b got merged the shutdown timing might slightly changed and the game didn't get the chance to get status = 4 anymore (like the last working version have), and goes directly to 0 after shutdown, thus showing a different behavior. In order for the game to be able to create DATA2.BIN with the correct size and no longer stuck on the first boot, there are 2 ways:
The logs will be like this (similar to the last working version), where the highlighted line makes a difference to the game behavior |
I have reported to jpcsp. @hrydgard @unknownbrackets Can we change to jpcsp 's timing ? |
Part of timing change |
I'm gonna wait with doing that change until after 1.14 is released (due to fear of other regressions), so tagging for 1.15. |
I don't think that change makes sense to be clear, I haven't really messed with this but the finish shutdown should only be called after the delay (after it was already 4.) That happens in the MIPS code generated by Pretty sure this matches PSP behavior. But maybe there's something more subtle about the specific thread priority of the thread checking the status vs the accessThread priority it defined. We should already be using 2000us on errors, I think. -[Unknown] |
It makes a different if this games relies on the status value before it can go to the correct route, although most games doesn't care about it. Before PR 52c5f4b the logs are similar to the JPCSPTrace on PSP https://gist.github.com/sum2012/abb4390ffe6e95f45d3deeb7e3032962 where the game is able to retrieve status = 4, while after that PR the game's thread didn't had the chance to retrieve status = 4 because Adding 13 usec delay was enough to give the game's thread a chance to retrieve status = 4, most-likely giving a chance for the thread to switch before the status changed to 0 PS: as i remembered the 4 status can gets overridden immediately with 0 by the fadeout code without giving the game a chance to retrieves the value first, so adding as small as 13 usec delay to |
@anr2me Simulate UMD delays work !!! |
You mean the one with slow reading, right? because the old Simulate UMD delays doesn't fix this issue as i remembered |
@anr2me sorry, I cannot solve again after re-test |
From full debug log from status 3 ,I cannot see it read any file. 49:18:747 sceeDLSThrea D[SCEUTIL]: HLE\sceUtility.cpp:461 3=sceUtilitySavedataGetStatus() |
Game or games this happens in
Mercury Meltdown (USA) (En,Fr,Es) (v1.01) / ULUS10133 (said to be happening in the EU version ULES00466 as well, but I haven't tried)
What area of the game / PPSSPP
Currently it only shows a black screen when starting the game, no sound either. Tried GL/Vulkan/D3D11, no change. Happening on my Linux Mint VM as well, although a Linux user told me it was loading fine for him 🤔
What should happen
Game should start.
Logs
ppsspplog.zip
Platform
Windows 10 / Linux Mint
Mobile phone model or graphics card
GTX 970
PPSSPP version affected
Already bisected, started with 52c5f4b and still happening in current commit (63966cb).
Last working version
d066b39 (commit just before the one mentioned above).
Graphics backend (3D API)
Direct3D 11 / Vulkan / OpenGL
Checklist
The text was updated successfully, but these errors were encountered: