On the one year anniversary of the Dolphin Progress Report, we have a fairly slow month in terms of emulation development. While there are certainly some big things on the horizon, unfortunately development managed to hit one of the gaps where there were mostly some fix-ups and optimizations this month with only a few changes that users will notice.
With that, let's take a look at this month's notable changes.
While this was merged on the last day of March, it wasn't in the March Progress Report because... we missed it. This commit is a maintenance change mostly designed to help users figure out what build their savestates were created in. When upgrading builds, one of the frustrating things is that most of the time, old savestates won't work, so users will have to go back and do a normal game save in order to continue their progress in a new build. This is problematic when users don't know which old version the savestate was made in.
In order to get this information before, one would have to go into the savestate itself and try to find the savestate revision and when it was last updated. With this, the on-screen display message will tell the user exactly what build they need to use in order to load the savestate.
NOTE: This will only work on savestates from 3.5-1311 and newer.
The biggest change of the month is one that, when working properly, won't really be noticed by users. Block GPU Thread removes a spinlock in the GPU thread that caused the second core in dualcore mode to always be maxed out. On desktops this doesn't really matter as Dolphin is essentially burning unused CPU resources; if it needs those resources it can still use them, so there is no performance impact. But on mobile devices and dualcore laptops, the constant strain on the CPU could often trigger throttling to maintain thermal limits. Users on those devices should see a nice speed up, and it has the side effect of making Dolphin less stressful and more energy efficient for everyone. Since this is difficult to measure precisely, instead of a bar graph, here's how it appears in Windows.
There are some side-effects to this.
- Games that don't rely on the GPU may run slightly faster.
- Games that rely on the GPU may run slightly slower.
- GPU Usage may be increased on some computers.
- Some race conditions in Dolphin may be exposed.
The reason for these side effects is why spinlock was used in the first place: spinlock allows for very low latency to minimize problems with dual core mode. Because of the fix of the hack there is a slightly longer cpu-gpu round trip, and some previously hidden defects in dual core mode may be revealed. One such issue has already been discovered: this commit breaks the targeting computer in Star Wars Rogue Squadron II: Rogue Leader in dual core mode. It still works properly in single core, but it's really unfortunate that the targeting computer only worked by luck previously. However, there are no plans to revert this commit though; degasus will be focusing his effort on figuring out what is actually going wrong in Dolphin's dual core code to hopefully fix this, and many other issues. Good luck, degasus!
Is it believable that two years ago, someone actually requested a feature for low battery on emulated Wiimotes? Is it even less believable that someone implemented it, and then someone else actually merged it? Crazy!
Yes, now those of you using emulated Wiimotes can live out your dream of setting the battery to any value that the Wiimote can send to the console. From full (255) to empty (0) and the game will react accordingly. Like those low battery warnings popping up on save screens? Or how about fullscreen messages telling you your Wiimote batteries are low? Now you can have them whenever you want!
RachelBryk's love of Tool Assisted Speedrunning was well known among the developers. Much of her time was spent working on and maintaining Dolphin's TAS support while other developers would haphazardly break it with other changes.
TAS Input for Classic Controller allows TASers to perfectly control games compatible with the controller. This will hopefully lead to new superplays that show off games and just how far they can be pushed.
4.0-6080, 4.0-6100, 4.0-6131, and 4.0-6135 - Update the About Dolphin Dialog by RisingFog, endrift, lioncash, and illuminatedgeek¶
One of the things that mostly went untouched during last year's graphical user interface updates was Dolphin's about screen. The update was desperately needed, even if it took a few tries to get it right.
Users Continue to Improve Games¶
A couple months ago, users on our forums posted a few 60 FPS hacks for several popular games, including Super Mario Sunshine and Pikmin 2. Unfortunately, these 60 FPS hacks required some pretty nasty modifications to how Dolphin handled emulation, more or less breaking it for other titles.
While that's unfortunate; more advanced codes have been worked on since then, some that would work on console, if console were powerful enough. This particular code featured today for Sonic Colors works in master Dolphin without modification; just add the Gecko Code and increase the Emulated CPU Clock Override to somewhere between 135% and 235% depending on level. If you liked the 60 FPS preview of Sonic Colors within the Sonic Generations level on PC, now you can play through the whole game at a fluid 60 FPS!
NOTE: Youtube handles 60 FPS Sonic almost as badly as F-Zero GX