The last two months have been a bit on the slow side for some of the emulators being used on the Steam Deck, but it hasn't been quiet! Some massive improvements have come from Yuzu with Project Y.F.C. massively increasing performance all around! It is pretty insane to see, so let's dive right in!
Don't have any emulators but curious on how to get them? Check out our EmuDeck Guide where we go over the best way to install and auto-configure all of these emulators and more.
The biggest improvement and update of all the emulators by FAR is easily Project Y.F.C. By rewriting the buffer cache again, taking into account demands that newer games have, there has been an average of 50% performance gains across the board, sometimes even boosting performance 87%. It even has some effects to fix incorrectly rendered games and some other minor issues.
For example, Breath of the Wild, Kirby and the Forgotten Land, and Pokemon Sword and Shield have improved performance by around 40%, Luigi's Mansion 3 lighting and shadows have been fixed, Persona 5 Royal's vertex explosions have been fixed and performance has increased by 30%, Monster Hunter Rise has seen a 50% performance increase (though updates after 3.0.0 still have issues), and so much more. And the best part, no option needs to be switched for this to be enabled!
The blue bar (Mainline 1407) represents the framerate before while the orange bar (Mainline 1421) represents the framerate after the rewrite.
Some improvements in CPU accuracy were also implemented. By utilizing new functions from the Windows 10 SDK, the team was able to reduce the time the CPU spends in a spinlock which reduces CPU usage for timing-heavy games like Super Smash Bros Ultimate and Kirby and the Forgotten Land. This also means better performance for quad core CPUs and other low core counts. This can result in a 24% reduction of use or power consumption. There are also reports that it helps get rid of audio stuttering too.
This is all extremely exciting, but it doesn't end there! There were a slew of other graphical changes like moving swapchain operations to a separate thread, which will improve performance of demanding titles and performance on low-end hardware. This is disabled by default since it can make frametimes less consistent.
Linux got some love too. The initialization of the Vulkan swapchain on Wayland was fixed and a fix for Bayonetta 3 being played using the Yuzu Flatpak. Breath of the Wild has had some personal updates to for accurate rendering on non-NVIDIA hardware like making the textureGather use floating-point and adding a tiny subpixel offset to fudge rounding.
Some settings were also moved and disabled as some would accidentally enable them without knowing what they do, which would hurt performance. The NFC service that Switch does internally has its remaining missing interfaces implemented and a bug that affected motion emulation was caught and fixed.
Some changes to Vulkan have helped performance significantly for some games. First, index inline buffer updates that were performed one at a time were inefficient, so changing the upload mechanism for batched uploads completely fixed the issue. There were also issues with the way Ryujinx handles GPU buffer data, so a set of rules were established to migrate buffers between different memory types, which should improve GPU performance.
A fix for some flickering for specific games that were rendered beyond native resolution was fixed, as well as figuring out the issue with Sonic Frontier's long loading by adding a "fast path" for adding a single texture view to the group. There was also a solution for Metroid Prime Remastered's stuttery doors, which is to update the current texture rather than recreate it.
Some work was started to offer optimizations to 512-bit instruction sets, program memory allocations were reduced (minor performance improvements), and syscall capabilities have been updated to include those added in Switch firmware 15.0.0, There was little news on the shift to Avalonia for the frontend, but this will be required for the FlatHub version of Ryujinx for Linux and Steam Deck users, so they are taking their time.
Dolphin (GC, Wii)
This one is less of an update and more of an announcement, but Dolphin is coming to Steam! Regardless of whether you will use it through Steam or EmuDeck or an individual download, this is still pretty damn cool to see.
PPSSPP had its 1.15 update recently and this one helps significantly in a couple of areas. First, the team reduced shader compilation stutter by making two changes. These changes include shader compilations being controlled by uniform values instead and making Vulkan's shader compilation run on multiple threads, which sees some massive improvements overall.
Texture replacement got a rework to reduce stutters when loading new replacement textures by a bit and integer scaling can now be enabled. This will allow the PSP framebuffer to be scaled to an even multiple of the rendering resolution. There have also been some bugs and fixes for individual games like Naruto Ultimate Ninja Heroes 3, Dante's Inferno, and the SOCOM games. There was a bit more, but the rest is on the minor side.
mGBA (GB, GBA)
Fans of the GBA games rejoice! A new update for mGBA was released last month that brings in quite some nice fixes. Nothing too major, but the fixes range from clearing GB audio state when disabled, to forcing lower sample rates for codecs that don't support higher ones, to fixing interpolation issues with the OpenGL renderer.
A new update for Vita3K was pushed out, bringing the version to 0.1.8. Unfortunately, I couldn't find a changelog that detailed what was improved, but there was an update for the emulator.