Project

General

Profile

Actions

Emulator Issues #12297

closed

Frequent WFC rollbacks in Inazuma Eleven GO Strikers 2013 when playing against Wii

Added by Obluda over 3 years ago. Updated over 2 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-14795

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

Actions #1

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
Actions #2

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.

Actions #3

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.

Actions #4

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.

Actions #5

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.

Actions #6

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.

Actions #7

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.

Actions #8

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.

Actions #9

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

Actions #10

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

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.

Actions #12

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 ?

Actions #13

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.

Actions #14

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

Actions #15

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.

Actions #16

Updated by JosJuice almost 3 years ago

That change does not affect the behavior unless you're using netplay/TAS or the interpreter.

Actions #17

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.

Actions #18

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

Actions #19

Updated by JMC4789 over 2 years ago

Software FMA fixes the issue for some reason. Not sure why.

Actions #20

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.

Actions #21

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.

Actions #22

Updated by JosJuice over 2 years ago

  • Status changed from Fix pending to Fixed
  • Fixed in set to 5.0-14795
Actions

Also available in: Atom PDF