-
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
Dragon Ball Z Tenkaichi Tag Team disconnects during wireless battle #14361
Comments
The game is like that its really sensitive to the distance and connection. I wonder how they messed this game up because compared to Shin Budokai 2 that game got like a god hood netcode lol for a fighting game on PSP. |
I was talking about local multiplayer tho. Don't know why it’s an issue in local multiplayer. Any solution? (Yes, for local multiplayer. I am not crazy enough to try it online lol) |
What version those guys were using? It was clearly ok back then |
Are you playing this between PC vs Android? Other than that, another possibility is that the game might be measuring their own timing to checked for timeouts and bumped into a weird timeout comparison (ie. a negative signed value being treated as unsigned) which could happened when the time goes backward for some unknown reason. |
Right now yes, I am testing with PC vs Android bcz I only have one mobile. But in android vs android situation it also happens. I think disconnect happens less often in android vs android. |
So umm... no solution, eh? |
Maybe try to disable the JIT or the VFPU option in the JIT. |
Unlike crashes that can be easily caught where the issue was using debugger (as long they can be reproduced), disconnection in the middle of gameplay is hard to detects, since we don't have any clue which commit affecting it, and debugging on Android is a pain since the logcat often goes EOL and stopped printing anything. So it will probably takes a long time until we can findout what exactly happened. Most games only do regular Send/Recv during gameplay, and calculate timeout using I can try adding notification message on screen when detecting time that goes backward, so that we can at least findout if the disconnection occurred right after this notification or not. |
I remember that the game disconnected before and you somehow fixed it on some commit but I dont remember which. |
OK I did not understand for the most parts but it was helpful. And that adding notification message thing might be a beginning step to fix this? |
Too lazy to try this right now but I will test it later :) |
I think that disabling the VFPU or JIT helped me with getting Dissidia 012 to not disconnect... |
I wondered if the android build was compiled with precise precision like we had on Visual Studio ( |
OK can you tell me which option are you talking about specifically? There is JIT Debug tools in Should I change CPU Core? It's set to Dynarec (JIT) |
Hm. Is it relying on both sides calculating floats to exactly the same bits? -[Unknown] |
Not sure, but there is a possibility for the game to treat specific floating point value as a different value (ie. rounding/normalizing denormalized numbers) due to some issue, which might happen if the game was ported from a different platform. |
Btw, we're using |
We might also be doing fused calculations in some places, among other things. We are not bit exact to PSP results in multiple ways, and platforms are not always identical to each other either. I guess this may be a problem for networking... Between PSP and PPSSPP though, you just have to look at i.e. #2990 to see differences in opinions on floating point calculation. Much of the PSP VFPU was not IEEE754 compliant either. -[Unknown] |
NEON on ArmV7 is indeed not IEEE754 compliant, fortunately ARM64's NEON "ASIMD" is compliant. As Unknown says, there can still be minor differences, the spec doesn't do a good job of defining signs of NaNs and stuff like that. It's a very difficult problem to solve. |
Hey guys, I have a info to share with you. Using IR Interpreter the game had a stable connection. Meaning disconnection happened rarely. But the con here is the game becomes super laggy with IR Interpreter. Dynarec JIT gives better speed but in multiplayer it gets disconnected almost immediately. So my stupid theory is that The laggier the game gets the more stable the connection becomes. Although that's not a solution since laggy gameplay is the worst gameplay |
Does it disconnects when both of you not doing anything (ie. not fighting)? because most of the issue i suspects to be related to VFPU were happened when someone get hit with a certain attack, if that attack missed it won't cause disconnection. If it disconnects by just idling, both device (PC and Android) might not be running at the same pace, causing the slower one to be flooded by packets from the faster one, thus the receive buffer gets full and new packets gets dropped since the slower one can't process the data fast enough, and because of this dropped packets it will eventually desync. PS: And i don't think frame skipping will be helpful in this case, but switching who host and who join might help. |
OK I haven’t tested with idling but surely will. The thing is both device runs at virtually same speed. But I guess not running at same speed technically |
On the video I shared before you could see the players overclock the emulated CPU to high levels before they play it. |
Update: Doing nothing in the match or simply idling doesn’t make the game disconnect. I did nothing for like 500 seconds and the game was fine. Then decided to fight a little and it got disconnected after minute. |
Thanks for the head up Mojo. I will check that out again |
So I tried with emulated clock speed to 1000 MHz and I think it helped to prevent us from getting disconnected big time. Needs more testing by other people on other devices. Also I changed the I/O timing method to "Fast" from "Host". Only time it disconnected when something weird happened right before connection lost. My player Vegeta was charging up away from enemy Goku in my screen but on the other screen Vegeta was standing right in front of Goku. I hit one attack button and " Connection lost" massage showed up. What happened was Goku knocked me away and I tried to rush to him immediately pressing Up+O. I missed the timing on my android device but for some reason I was succesfully rush charged into Goku on PC. Anyway I hope this info will be useful. But I still believe making the emulated CPU clock speed to 1000 MHz and I/O timing method to "Fast" actually helped a lot. But as I mentioned before this theory needs more testing by other people. Also wish there was some way to increase clock speed over 1000 MHz as 1000 is the max range. |
I think it's normal to get weird behavior when forcing the CPU to a certain clock, it could also causing the FPS to dropped on some games due to the extra burden from overclocking. Did you overclock both side? have you tried overclocking only one side? Btw, if both side showing different things on the screen and followed by disconnection, the game might be desynced, it may happen when packets being dropped/lost too many times. |
Overclocked both sides. Maybe I will try overclocking one side only. Also how do you think it would affect the connection if we could increase the CPU clock speed over 1000 MHz (2000 MHz for example)?? Is it possible that the "Connection lost" error message will become an extremely rare occurrence if not gone forever by doing so? |
Are you using "Force real clock sync" (I'd recommend having it on for networking)? I would recommend "Host" io timing as well for network play, and try to avoid frameskip if possible. The force 60 FPS setting might be good too. -[Unknown] |
There is that PR here that chagnes stuff related to VFPU : |
It's merged. Does this mean if it’s related to VFPU and I use latest versions the problem might be fixed? |
@anr2me Hey man, I got a tips to reproduce that connection lost thing. It's not in 1v1 tho. And requires a CPU But might help. Here's what you have to do.
This has 100% success rate of disconnecting. Good luck. |
Have you tried with the latest version to see whether that PR fixed this issue? Btw, i'm not familiar with DBZ games, other than regular attack (close combat and ki) i don't know any other moves LOL |
Oops. Ok I didn’t test it on the latest build. To answer your 2nd question disconnection can occur in step 5 or step 6. Step 6 is divided into two parts but it might happen simply with ki attacks. So I hope kamehameha or gallick gun is not needed. |
@anr2me Yoooo, you gotta check this out! The latest build made this game unstable in multiplayer. Everything is sooo fast and acting weird all of a sudden. |
Is it fine in v1.11.2-550-gdbe665880 and bad in v1.11.2-558-g0ccc63b43? That does look potentially like some kind of not good sin/cos problem... -[Unknown] |
I think I had v1.11.2-543 before and it was good. Not sure about 550 |
Well, I'm surprised we didn't have a vrot test for -[Unknown] |
GG |
So did the latest version right now fixed this disconnection issue? |
OK only tested 2 match. 1st match was the cleanest match we had in a long time. Everything went perfectly. Also we tried to do many things to force disconnection but it was all good. After the 1st match we pressed rematch. In the 2nd match again that disconnection occurred. Needs more testing but rn Imma sleep. I have this weird feeling that the connection might've actually improved. But that's too early to say bcz only played 2 match. But damn! That 1st match was magical! |
May be the game uses more VFPU other than VROT and VCOS/VSIN (i'm not sure what kind of calculation usually used to checks for collision, but usually the colliders are in simple shape like box, sphere, and capsule). |
Tried to find out what happens with Android to PC on Dissidia 012... |
Found out that using IR Interpreter only on the PC side seem to solve this issue for now and only for GvG. |
Does using IR interpreter on both Android and PC also worked better? |
Most Android devices are too slow for using the IR interpreter but I guess it will also work well (also disabling the VFPU stuff in JIT works too). |
Also it seems like desyncs could happen on real hardware that use just ad-hoc. I have a theory that because they ported the game from DS they didnt account for CPU changes between ARM and MIPS but who knows. |
Lately this issue happens even on PC with localhost lol. |
Sir pls I wanted to speak with you about something can we chat in private @ |
Yeah I'm talking about @anr2me |
i've stopped caring about this game either :) adhoc stuff in general actually |
oh come on! you can't say that! But I would like to take this moment to personally thank you for fixing 99% PSP games' ad-hoc multiplayer. |
I wasn't going to ask about ad-hoc |
Sir please do you know anything about dbz ttt character roster menu modification |
This thing right here. It’s been around here since dawn of civilization.
I think anybody who tried to do multiplayer in DBZ TTT knows about this problem. During ad-hoc battles the game will display "Connection Lost" message and it will disconnect you from the match. It happens all the time. Can't even play this game peacefully with my friends.
The whole match is supposed to be played without any interruptions but this happens.
Doesn’t matter which device or hardware I use this is guranteed to happen. I twicked all the settings but it just won’t go away! Fast memory enabled or disabled it will happen.
Please fix this!
The text was updated successfully, but these errors were encountered: