Skip to content
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

Dragon Ball Tenkaichi Tag Team Survival Mode Adhoc freeze #15483

Open
4 tasks done
PAUV0S opened this issue Apr 16, 2022 · 6 comments
Open
4 tasks done

Dragon Ball Tenkaichi Tag Team Survival Mode Adhoc freeze #15483

PAUV0S opened this issue Apr 16, 2022 · 6 comments

Comments

@PAUV0S
Copy link

PAUV0S commented Apr 16, 2022

What happens?

While playing multiplayer in the survival mode when 2 new opponents are about the appear in the screen the game stops for a second to load the character models if one of the players lose a packet during that time the game will lock-up and stay there until the connection times out
ULUS10537_00010
this is usually the last frame both players see once it happens.

What should happen?

Maybe recover from it and send the information like normal, i'm not too sure what actually happens on real psp hardware so it would be useful if someone could try it out maybe trigger a packet loss at that moment and see if the behavior matches of the emulation.

What are you using?

What hardware / device and operating system?

Windows 8.1

What PPSSPP version (standalone/official), and did it work before?

tried it with 1.11.3,1.12.3 and 1.12.3-1039 all showing the same results.

Which game?

Dragon Ball Tenkaichi Tag team - ULUS10537
Dragon Ball Tenkaichi Tag VS - UJLS00311
Mostly likely happens on EU release too

Checklist

  • Test in the latest git build in case it's already fixed.
  • Search for other reports of the same issue.
  • Try resetting settings or older versions and include if the issue is related.
  • Include logs or screenshots of issue.
@ghost
Copy link

ghost commented Apr 16, 2022

Related or duplicate #14361

@anr2me
Copy link
Collaborator

anr2me commented Apr 16, 2022

Lost packets are handled by the game's netcode, we can't do anything to improve it since we (as an emulator we send game packets as is to maintain compatibility with real PSP) can't detects if a DATAGRAM packet were lost or not, only the game itself can find out whether it was lost or not (depends on how the netcode were designed), and should handle them properly.

Unfortunately, not all game developers handle DATAGRAM packets properly, probably because they only tested their games on LAN/AdHoc environment.

Some games will wait for a reply for a short moment and if they didn't get a reply (considered it as lost) they will resend again, while other games simply assuming a DATAGRAM will arrived safely (which is wrong! because UDP is not guaranteed to be delivered) and end up showing connection error message (since they didn't have the netcode to do a retry), probably because on a LAN (AdHoc is a LAN) environment the chance for a packet to be lost were very small, but when going through the internet the chance will get higher.
Another game that i know didn't do a retry is LEGO Indiana Jones 2, when the game started it will send 1 byte of DATAGRAM and wait for short time for a reply, and if it didn't get the reply it will show connection error instead of retrying to send again (which is a bad netcode to assume a DATAGRAM packet to be delivered successfully)
I've also seen these freeze on DBZ SB2 during the intro when entering the map when playing on LAN (Android vs PC), since my wireless LAN connection have unstable ping and occasionally lost packet.

A workaround for lost packet issue is by using a reliable tunneling/VPN software, they might be able to handle lost packets better, because all packets going through the VPN/Tunneling will be wrapped with a more reliable protocol (in exchange for speed), but there is still a chance for packet to be lost even on VPN (depends on how the VPN handle lost packets, ie. only retry for a few times)

@anr2me
Copy link
Collaborator

anr2me commented Apr 16, 2022

Related or duplicate #14361

That issue seems to be related to collision detection (ie. Math) issue instead of lost packet, because the disconnection only occurred when receiving an attack, similar to the issue on Gundam Next Plus and Dissidia 012.

@PAUV0S
Copy link
Author

PAUV0S commented Apr 16, 2022

A workaround for lost packet issue is by using a reliable tunneling/VPN software, they might be able to handle lost packets better, because all packets going through the VPN/Tunneling will be wrapped with a more reliable protocol (in exchange for speed), but there is still a chance for packet to be lost even on VPN (depends on how the VPN handle lost packets, ie. only retry for a few times)

that's unfortunate because one of the reasons why i reported this issue was because it kept happening even when using VPN software.

@anr2me
Copy link
Collaborator

anr2me commented Apr 16, 2022

Different VPN software handle lost packets differently, they could do a retry once or twice or more (in favor of reliability), or not even retrying (in favor of speed), so in the case you're original/direct connection supposed to get 3 packets lost consecutively and the VPN only do 2 attempts of retry, the 3rd attempt must not be lost otherwise the VPN will no longer retrying and considered it as lost too.

So if you're only getting 1 lost packet once a while, the VPN might be able to handle that, but if you're getting more than 1 lost packets in a row, the VPN might not be able to handle that (depends on the VPN tho)

May be try a different VPN software.

Anyway, lost packets are something that should be handled by the game's netcode in order to get the best multiplayer experience.

@ghost
Copy link

ghost commented Apr 16, 2022

@hrydgard hrydgard pinned this issue Jan 29, 2025
@LunaMoo LunaMoo unpinned this issue Feb 9, 2025
@LunaMoo LunaMoo pinned this issue Feb 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants