ppsspp
ppsspp copied to clipboard
Multiplayer for pc to android breaks shortly after getting in a game in NHL 07
Game or games this happens in
ULUS-10131 NHL 07
What area of the game / PPSSPP
Using Zerotier and adhoc, upon getting in a room with someone playing on PC, it loads in but doesn’t get past the initial puck drop and just resets. as shown here:
https://user-images.githubusercontent.com/56965132/227740340-090c0af9-98b4-48f8-bfd4-65bb0d30fff2.MOV
Testing with android to android works completely fine, so it’s a issue with android and pc. Upon going into the JIT Debug tools and disabling all VFPU settings, it manages to get past it, but shortly after resets again, as shown here:
https://cdn.discordapp.com/attachments/508350481437818880/1089275901541372017/Screen_Recording_20230325-145133_PPSSPP.mp4
What should happen
Should be able to work normally and play a game, similar to behavior of playing with android to android multiplayer.
Logs
No response
Platform
Android
Mobile phone model or graphics card
Samsung Galaxy S9+
PPSSPP version affected
v.1.14.4
Last working version
No response
Graphics backend (3D API)
Vulkan
Checklist
- [X] Test in the latest git build in case it's already fixed.
- [X] Search for other reports of the same issue.
- [ ] Try resetting settings or older versions and include if the issue is related.
- [ ] Try without any cheats and without loading any save states.
- [ ] Include logs or screenshots of issue.
If you disabled all JIT functionality, did it progressed even further? (in case there are more functionality that need to be disabled)
Also, have you tried switching sides who host and who joined? (in case one of the device struggling to get full speed while the other device can get a consistent 100% speed)
And one more thing to try, if you were using 64bit version of PPSSPP on Windows, try using the 32bit version. (in case there are struct that supposed to be packed but missed to be packed, assuming your PPSSPP on Android is 32bit while PPSSPP on Windows is 64bit)
Additionally, i want you to try using artifacts from this VFPU-related PR https://github.com/hrydgard/ppsspp/actions/runs/4404927676?pr=16984 too, but unfortunately we don't have Android artifact.
PS: i couldn't see the video with discordapp link, because apparently my ISP is getting more aggressive in blocking/throttling many sites (i only gets 4 KB/s when downloading that video)
We tried disabling all JIT functionality, completely breaks it. We tried switching sides with who hosts, and it doesn’t change anything. We also tried using 32 bit, it also doesn’t change anything. For the artifacts thing, not entirely sure how that works and what the set up is involved for that. What does the android user do and the pc user do with that exactly?
@ANR2ME ,I have uploaded @kinglalu 's video into youtube https://youtu.be/aR1uDkrawCA
@ANR2ME ,I have uploaded @kinglalu 's video into youtube https://youtu.be/aR1uDkrawCA
I think ANR2ME couldn’t see the discord link video, I wasn’t able to upload here since the files too big. Yours seems to be of the already embedded one in the issue.
I managed to download the video with discord link using VPN, but those resets doesn't looks like things commonly seen on network-related issue, usually either they disconnects or desynced (each players shows different things).
Btw, did all players gets the reset at the same time?
The game might be bumping into an invalid value and can't progressed with such value, thus decided to reset the state. And disabling VFPU functionality might helped avoid getting those invalid value, thus able to progressed further, but might still have some value missed (values near zero or infinite might be interpreted differently when the raw data sent to a different architecture)
I managed to download the video with discord link using VPN, but those resets doesn't looks like things commonly seen on network-related issue, usually either they disconnects or desynced (each players shows different things).
Btw, did all players gets the reset at the same time?
The game might be bumping into an invalid value and can't progressed with such value, thus decided to reset the state. And disabling VFPU functionality might helped avoid getting those invalid value, thus able to progressed further, but might still have some value missed (values near zero or infinite might be interpreted differently when the raw data sent to a different architecture)
Yes, the reset happens at the same time.
I'm still not sure what to do from here to try and resolve this issue, because this seems like something that's fixable but its possible it isn't.
As of now there isn't much that can be done to solve cross-architecture issue, since the game progress is affected by enabling/disabling VFPU it's going to be a pain to debug it while playing multiplayer (which will get disconnected when hitting a breakpoint). Even on single player, debugging JIT functionality issue is already painful enough :)
The same issue happens with a MacOS and a Linux computer. I can also test with two Linux computers, in case that is helpful?
Btw have you tried to enable "Force real clock sync" on System settings? i heard it can improves input response and also make multiplayer more stable on some games.
Thanks, tried enabling "Force real clock sync", but no difference: the game starts looping as depicted in the original reporter's video above.
The same issue happens with a MacOS and a Linux computer. I can also test with two Linux computers, in case that is helpful?
Btw are your Mac use the same architecture with your linux? (ie. both using x86-based CPU) or was it an ARM-based Mac, while your Linux use x86-based CPU?
Both had Intel architecture. BTW we tested on two Linux computers, and the looping was not there, and we could play through the whole game, but the game did "jump back" to a previous point in time 3–4 times during the game. ("Force real clock sync" was on.)