Emulator Issues #7143
DualCore timing issues
This likely affects almost every game, but I'll list games that I've noticed problems on.
F-Zero GX - GFZE01
The Legend of Zelda: The Wind Waker - GZLE01
Tales of Symphonia - GQSEAF
Sonic Heroes - G9SE8P
Skies of Arcadia Legends - GEAE8P
New Play Control! Pikmin - R9IE01
Mario Party 5 - GP5E01
The Legend of Zelda: Twilight Princess - GZ2E01, RZDE01
Lego Star Wars: The Video Game - GL5E4F
What's the problem? Describe what went wrong in few words.
Within all games, maxing out your processor can result in a fps/vps desync that causes video/audio/CPU to not go at the same speed. This results in various behaviors that have been recorded by many forum users. These issues occur on both HLE and LLE audio even when dealing with audio issues.
These games all perform perfectly on my computer when I'm not doing something stupid. In this case, I'm rendering a video (which would take all 4 cores to 100% if I wasn't running dolphin) to cause stress that makes these games, and many others react strangely.
The Legend of Zelda: The Wind Waker can have music desync from cutscenes, various sound effects play strangely (and sometimes not at all) and various game freezes if this happens at a transition. Audio can also crash sporadically, usually when a lot of sounds play at the same time.
F-Zero GX suffers from two issues. GPU stalling caused by vsync will crash the game completely. This seems to be unrelated in my testing and I just wanted to note it. Blocking the CPU with tons of stress seems to make it reset a lot more than otherwise. It tends to reset even if you can run the game well above full speed anyway, but I just wanted to note that this game was affected by the CPU stress. The music will also go faster/slower than the gameplay, resulting in crackles or distortion.
The Legend of Zelda: Twilight Princess suffers from audio crashes which can cause the game to hang.
Tales of Symphonia can hang in dualcore.
Skies of Arcadia can hang in dualcore
Lego Star Wars can crash after the opening and during transitions.
Sonic Heroes music can sometimes loop improperly
Mario Party 5's music can hang. Will lead to a freeze on certain events.
Pikmin suffers from the same audio issues as Wind Waker. Having the timing issues during the changing of days can cause the game to hang entirely.
I could list most games, Super Mario Galaxy 1/2 and the rest of the Zelda HLE games seem very sensitive to this issue. It seems as though the CPU <-> DSP communication causes a lot more hangs/problems that do not happen in other games.
What steps will reproduce the problem?
[Don't assume we have ever played the game and know any level names. Be as
specific as possible.]
1. Either have a weak computer, or run some kind of CPU stress test while running dolphin. The stress test must attempt to use all cores of your CPU for this to work.
2. Run the games either with some kind of framelimiter. Vsync seems to work best as a way to draw out problems.
3. Play them! Keep a note at the fps/vps counter, as you'll notice a ton of desyncs between what they should be vs what they are. 60 fps, 234 vps in Wind Waker, for instance.
These problems seem to affect all builds of Dolphin, and there is not a solution at this time.
I must stress that every single one of these games runs absolutely perfect, even in dualcore, on my computer in normal circumstances. I was inspired to these tests based on the problems others were running into on the forums. Going single core prevents these problems from occurring wholely. Unfortunately, due to the fact that the only people that affected by these problems are those that can barely, if that, run these games at full speed, telling them to go single core won't exactly be a solution to them.
#4 Updated by hwuelpern almost 5 years ago
According to the forums the dc-netplay branch  should fix the desyncs in Skies of Arcadia Legends 2. Another way to provoke those desyncs is to use save states, both loading and saving has a high probability of desyncing.
Sadly this branch is relatively out of date. Also I can't view those commits on github.
#5 Updated by magumagu9 almost 5 years ago
You can view the commits at http://code.google.com/p/dolphin-emu/source/list?name=dc-netplay if you really want to.
#8 Updated by abalienostats almost 5 years ago
I'll my comment in the hope Delroth won't close this bug as he did with the other.
I got this even with Xenoblade, even if the outcome is shown a little differently. It still crashes/freezes too, and the netplay branch also causes it to run without freezing.
Same with the two Zeldas and Skies of Arcadia. These are those I sometime test to check if there was any progress.
#14 Updated by ixtsptf over 4 years ago
Just pasting and cleaning up what I originally wrote in issue 6458. The StarFox Adventures demo that's in the July 2002 Multigame Demo Disc (US) hangs and potentially crashes Dolphin after the Rareware logo fades and before the FMV plays with the dual core setting enabled (having it disabled runs the game normally throughout). This problem still occurs as of 4.0-2071 (15c1250d9d3f7aa7821a142582d63f38f782f15a). However, the latest build in the dc-netplay branch (4.0-652 - c5b1ec3329d47006bfddb381f730ad4310528b00) doesn't have this problem. Here's a quick summary from issue 6458 so that it can be merged:
G95E01 - Interactive Multi Game Demo Disc Jul. 2002
GSAJ0 - Star Fox Adventures Demo (08 2002.05.17 E3_2002_StarFox)
What went wrong?
If you try and run the Star Fox Adventures demo with dual core on (with JIT core), the following errors can occur when the title screen's opening video starts to play (after the rareware logo fades):
a.) It either crashes Dolphin out right b.) Game hangs with annoying sound, then proceeds to crash Dolphin
It's safe to say that the video that plays in the beginning is causing the issue.
The final retail release (GSAE01) works normally. Although I do remember this game having issues similar to this many years a go.
What steps will reproduce the problem?
This will depend either or not you bother running the game from within the demo disc or you ripped the demo tgc file from the demo disc and converted it to a GCM. But this will assume you did the latter.
(make sure to have dual core enabled and JIT core as well):
1.) Start the game
2.) After the Nintendo and Rare logo screens fade out, a 3D monitor will appear to start plaything the movie. At this point, Dolphin will present one of the 3 variations I mentioned before
#16 Updated by skidau over 4 years ago
The game might be desyncing because of the RTC. To test if this is the case, turn on Dolphin movie recording and check if that prevents the game from freezing:
From the Dolphin, start the game. Once the game has started, stop the game, and then from the Dolphin menu, select Emulation > Start Recording. Now start playing, and see if the game freezes.
Let us know if movie recording makes a difference to this issue.
#23 Updated by GoOneDen over 4 years ago
I have been playing Skies of Arcadia Legends and experienced this issue. I noticed that it would crash whenever I opened Google Chrome while playing. Dual core was enabled. I am playing on Windows 7 with a GTX 570. If there's more info. I can provide, please let me know.
#24 Updated by abalienostats over 4 years ago
From time to time I test the new version with Skies of Arcadia and I also report that nothing has changed.
The weird issue is that around August or September I tested a version of Dolphin that would SKYROCKET in speed, with the game. And this obviously also made the game crash less.
I think this was in the middle of the optimizations done by Fiora. It was great.
In the last month, though, everything reverted. For this game now performance is absolutely TERRIBLE, much, much worse than how it was before the optimization started. Where I was getting 40 fps, now I get 10.
So I don't know what to think. I had good hopes at some point, but now at least for this game things look bleak.
#25 Updated by abalienostats over 4 years ago
I don't delete the comment because it might be useful to someone:
the slowdown was not related to the latest versions. It seems about the EFB copies option. If I disable it entirely the game runs super fast (and seems to work).
Might be that I changed it to test Xenoblade.
For the record:
I tried adding:
to the "default" ini of the game (if I add it through the "edit config" it gets erased as soon I close it). I thought this might have an effect on the crashing, but nope, no difference.
I'm not even sure if it's properly loaded since I don't know if the way of adding it I used is the right one.
For some reason OpenGL sometimes drops to 11 fps or so, even if the emulation is at 100%. I thought it depended on the "skip EFB access" setting, but after more messing with the options it now does it regardless how I set that option. It's weird. Closing and restarting Dolphin doesn't fix it, and it doesn't seem related to any option specifically.
The limiter somehow gives lower performance. In the sense that if in a scene I get around 20 fps with the limiter on, if I run through the same scene with the limiter off I hover instead around 30 fps (the game should run at 25). So if it can do 30 I wonder why it falls to 20.
#27 Updated by abalienostats over 4 years ago
Not only that option fixed the crashes completely (previously I could make it crash within 10 seconds from booting), but it also has excellent performance.
It also seems to work equally well in Xenoblade, where also I was getting crashes from time to time.
It's basically magic.
#29 Updated by abalienostats over 4 years ago
Something weird to report:
I was trying to test performance impact, but it varies too wildly.
- Boot the game, load a quicksave: 58 fps fixed
- Close, reboot, reload: 39/40 fps
- Close, reboot, reload: 34 fps
- Close, reboot, reload: 51 fps
- Close, reboot, reload: 31 fps
- Close, reboot, reload: 52 fps
So I get everything from 30 to 59.
The weird thing is that it's not just momentary. If I get 59 fps after a reload, then I get consistently MUCH HIGHER fps. If it's low, it stays low.
#32 Updated by abalienostats over 4 years ago
No background programs running, not using quicksaves (just loading the game's save), same result.
I'm simply running Skies of Arcadia with limiter off, OpenGL. One time it's 59 fps, then 54, then 47, then it goes to 30. And so on. When it's high it usually stays consistently high even if I wait, if it's low instead it risks losing even more.
I don't even need to close Dolphin. Just close the game window and restart.
E8400 3Ghz CPU, Geforce 750Ti
I tried giving a fixed clock to the GPU but it makes no difference at all (the CPU is bottleneck since I'm even playing at 2x and not more).
It might be because the code reaches one of those typical desynch and so tries to keep the synch at a lower speed? I have no idea, but sometimes it's super fast, and sometimes it's half the speed it could have. Completely at random.
#33 Updated by abalienostats over 4 years ago
It's also weird that running uncapped 59 fps = 100% CPU utilization.
Capped at 25 fps, so a lot less than even half the speed = 80% CPU utilization.
As a test I tried running the game with framelimiter on, and then run it with framelimiter off, but with an external framelimiter on.
In the first case, the CPU usage stays very high, but it drops on both cores almost uniformly.
In the second case (external framelimiter) the first core drops a lot more, while the second core stays higher. Overall, CPU total usage is less than the first case (like 74% versus 80%), but less uniform.
#34 Updated by abalienostats about 4 years ago
After more testing and latest version, it's now a bit slower, but I still get degrading performance over time.
The same spot can go from 59 fps down to 30. And 30 is what I get when Dual Core is completely disabled.
So there something preventing hard crashes, but that also slows down performance
#36 Updated by abalienostats about 4 years ago
And now I can confirm that the performance variance still depends on desynchs.
I observed for example that booting the game I see 55 fps fixed. Then I go in the background, reload a page on Firefox to steal some cpu. After it's over the game fps stay at something like 37/40, even when the cpu returns completely free. It never catches up with the previous 55 fps.
When it does this also the CPU usage goes down instead of sitting at 100% like when the game runs as fast as possible.
So there is indeed some compensation method that tries slowing the game down when desynch occurs. It doesn't crash anymore, but it slows down a lot, and never goes back to high performance, just says as low as running the game without Dual Core.
#37 Updated by MofoMan2000 about 4 years ago
I believe I'm suffering a symptom of this issue, but I'm not sure, I considered opening a new issue but figured I'd look for one first.
Every time I boot a game (especially one that plays cinematics before getting to the game or frontend) I get no sound for a little while, and when the sound starts playing it's garbled to maybe 10x speed, until it catches up with the game and continues normally. However I can confirm this happens in both single and dual core modes. However after this, I get no further desyncs.
#90 Updated by kolano about 1 year ago
#93 Updated by kolano about 1 year ago
Where invalid read errors occur in Dual Core mode