Emulator Issues #12297
closedFrequent WFC rollbacks in Inazuma Eleven GO Strikers 2013 when playing against Wii
0%
Description
Game Name?
Inazuma Eleven GO Strikers 2013
Game ID? (right click the game in the game list, Properties, Info tab)
S5SJHF
MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)
536a55a6703e4789e3652a180f8c91fa
What's the problem? Describe what went wrong.
It's a soccer game and it happens when one player using dolphin plays against another one using a regular Wii. Randoms loading happens, but that's not the main problem. The main one is that action seems to "rollback" very frequently, for example, when you tackle an opponent and take the ball, the game "rollbacks" and your opponent gets the ball back. When the ball is entering the goal, the game rollbacks, and the ball gets back in the goalkeeper's hand. Pretty random issues, but it makes playing between Wii and Dolphin borderline impossible :
The issue never happens with Dolphin-Dolphin and Wii-Wii
What steps will reproduce the problem?
Wiimmfi Patch the game, launch it on Wii and on Dolphin, go online and start a match between the two players, try to tackle, do special moves to score.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes 12716 is the one I tested it on
Is the issue present in the latest stable version?
Yes - 5.0
If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)
If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer
What are your PC specifications? (CPU, GPU, Operating System, more)
i3-6100, gtx 1050, 8GB Ram, Windows 10
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
Here's a video I recorded showcasing most of these bugs (I can send the full match too if you want):
https://youtu.be/16f8wxhWoqw
Or here's a video from another match, at the following timestamp you can see :
https://www.youtube.com/watch?v=dnACBjN_7l8
- 3:03 : tackle rollback (alongside players T-posing)
- 3:08 : shot cancelling itself
- 3:40 : same thing
- 4:20 : tackle
- 11:11 : goalkeeper getting the ball back
Files
Updated by JosJuice over 3 years ago
- Subject changed from Online desyncs in Inazuma Eleven GO Strikers 2013 to Frequent WFC rollbacks in Inazuma Eleven GO Strikers 2013 when playing against Wii
Updated by JMC4789 over 3 years ago
This sounds like CPU emulation inaccuracies. Something you could try to do is enabling the debug GUI in Dolphin in interface and try running the game, pausing, and disabling parts of the JIT to see if any of that affects it. I'd suggest using interpreter, but in a case like this I think it'd require you to be running full speed, so this is the best we can do.
Updated by JMC4789 over 3 years ago
Other things to try:
FPRF in the game properties page.
Changing the Emulated CPU clock up/down to see if maybe that affects it.
Having a recording of both sides of the same match would also be nice to see what goes wrong.
Updated by Obluda over 3 years ago
Alright, sorry for the late response.
Unfortunately, changing the Emulated CPU Clock did not fix the problem (and under 33%, the game's framerate decreases, which is normal).
I tried pausing and disabling part of the JIT with the debug GUI, but it caused a loss of connection everytime, so I couldn't do that.
The FPRF didn't affect the problem either.
Updated by JMC4789 over 3 years ago
What you're going to have to do is try disabling parts of the JIT in the debug before the game connects and see if maybe one of those fix it while maintaining full speed. If not, does the game support recording replays or something like that? If the physics are desyncing, it may manifest in replays.
Updated by Obluda over 3 years ago
Okay, i'm going to try that as soon as possible.
The game does not have a replay feature, unfortunately.
Updated by Obluda over 3 years ago
Disabling "JIT Floating Point" fixes the rollbacks, the only problem is that the game crashes during shoot special moves and goalkeeping special moves, but by enabling and disabling it at the right time, the game does not rollback, and the goal is scored.
Updated by JMC4789 over 3 years ago
That's interesting. We need to find out which floating point instruction is broken then. If you can compile Dolphin and check out the JIT tables, you can disable things on an instruction by instruction basis.
Updated by JMC4789 over 3 years ago
If there any differences in gameplay outside of online play where we could study this more closely? Even if it's subtle (like a shot not moving right, a player sliding wrong, etc.)
Updated by Obluda over 3 years ago
I actually never considered that, I'll try to test and compare side by side to see if there's this kind of difference.
Updated by Obluda over 3 years ago
- File vlcsnap-2020-10-28-21h36m56s652.png vlcsnap-2020-10-28-21h36m56s652.png added
- File vlcsnap-2020-10-28-21h37m00s818.png vlcsnap-2020-10-28-21h37m00s818.png added
I tried to record while enabling and disabling afterwards, by comparing side by side you can see that they're the same picture, I don't think there's a difference outside of online play.
And I don't know how to build Dolphin unfortunately, but I could try, from what I see I have to download Visual Studio.
Updated by Obluda over 3 years ago
Hi,
I'm extremely sorry for the late response, but I managed to compile Dolphin, but I don't really understand what I'm supposed to do, is it possible for anyone to guide me through the steps please ?
Updated by Obluda almost 3 years ago
It looks like it doesn't crash anymore (on the latest versions of Dolphin) with the option off (i just can't reach maximum framerate), it's just that I don't know what to do next.
Updated by Obluda almost 3 years ago
After some tests, the root of the problem comes from fmadd, there are some inaccuracies with it but I don't have a way to debug on the wii to get some specific results at the moment
Updated by Miksel12 almost 3 years ago
Did you test on a recent dev build? https://github.com/dolphin-emu/dolphin/pull/9748 emulates fmadd more accurately for jit64 and was merged 8 days ago.
Updated by JosJuice almost 3 years ago
That change does not affect the behavior unless you're using netplay/TAS or the interpreter.
Updated by JMC4789 almost 3 years ago
- Status changed from New to Accepted
Was this ever narrowed down further? We've confirmed it is an issue at this point.
Updated by JosJuice almost 3 years ago
It has been established that the issue can be avoided by doing FALLBACK_IF(inst.OPCD == 59) or FALLBACK_IF(inst.SUBOP5 == 30) in Jit64::fmaddXX. (This corresponds to fnmsubsx.)
Updated by JMC4789 over 2 years ago
Software FMA fixes the issue for some reason. Not sure why.
Updated by JMC4789 over 2 years ago
- Assignee set to JosJuice
Confirmed to happen on the AArch64 JIT too. This means I can do this.
Updated by JosJuice over 2 years ago
- Status changed from Accepted to Fix pending
https://github.com/dolphin-emu/dolphin/pull/9973
Thanks to booto for figuring out that there was some funky behavior with signed zeroes.
Updated by JosJuice over 2 years ago
- Status changed from Fix pending to Fixed
- Fixed in set to 5.0-14795