ppsspp icon indicating copy to clipboard operation
ppsspp copied to clipboard

Multiplayer for pc to android breaks shortly after getting in a game in NHL 07

Open kinglalu opened this issue 1 year ago • 13 comments

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.

kinglalu avatar Mar 25 '23 20:03 kinglalu

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)

anr2me avatar Mar 26 '23 07:03 anr2me

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?

kinglalu avatar Mar 26 '23 22:03 kinglalu

@ANR2ME ,I have uploaded @kinglalu 's video into youtube https://youtu.be/aR1uDkrawCA

sum2012 avatar Mar 27 '23 12:03 sum2012

@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.

kinglalu avatar Mar 27 '23 18:03 kinglalu

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)

anr2me avatar Mar 27 '23 20:03 anr2me

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.

kinglalu avatar Mar 28 '23 00:03 kinglalu

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.

kinglalu avatar Apr 02 '23 08:04 kinglalu

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 :)

anr2me avatar Apr 02 '23 17:04 anr2me

The same issue happens with a MacOS and a Linux computer. I can also test with two Linux computers, in case that is helpful?

vehka avatar Feb 04 '24 13:02 vehka

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.

anr2me avatar Feb 04 '24 17:02 anr2me

Thanks, tried enabling "Force real clock sync", but no difference: the game starts looping as depicted in the original reporter's video above.

vehka avatar Feb 07 '24 15:02 vehka

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?

anr2me avatar Feb 07 '24 19:02 anr2me

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.)

wilenius avatar Feb 08 '24 11:02 wilenius