Emulation News: Yuzu (Switch) gains Vulkan support bringing greatly improved performance especially on AMD GPUs; Citra (3DS) gets proper V-Sync & disk cached shaders to eliminate tearing and stuttering!
For all those who love emulating Nintendo’s consoles, good news is on the menu as the major emulators for the 3DS and Switch received some pretty important features! In this article, we’ll be looking at the advent of Vulkan support in Yuzu alongside fixes for screen tearing and stuttering in Citra so that your emulated Mario and Pokémon experiences can be top notch.
Switch Emulation: Yuzu gains Vulkan rendering support in Early Access builds
With OpenGL being considered a legacy API by some, such as Apple, and the AMD drivers for it not being great, many emulators and commercial games for PCs are moving to Vulkan rendering and now, it’s Yuzu’s turn to get the Vulkan treatment.
Development on getting Vulkan rendering to work properly in Yuzu has been going since February with Rodrigo (ReinUsesLisp) being the one behind it and Blinkhawk giving a big hand when it comes to graphical shader representation.
Now, the research and development that’s been going on for months has finally paid off since Yuzu has just gained EXPERIMENTAL Vulkan support in its Early Access builds available to Patreon supporters. To announce this, Yuzu has written a pretty lengthy blog post on the subject and the main points of which include:
- Vulkan rendering greatly improves performance on AMD GPUs since the OpenGL drivers for these aren’t that great compared to Nvidia’s. As a result, more games, such as Super Mario Oddyssey, are now playable on these GPUs provided you have a computer that’s performant enough
- When it comes to Nvidia GPUs, the performance difference between the OpenGL and Vulkan backend is pretty similar with OpenGL usually having a small edge – this is because Nvidia’s OpenGL drivers are pretty well-coded
- When it comes to Intel’s iGPUs, the Vulkan renderer provides better performance but you probably won’t be getting a playable experience in most games
- Contrary to what some may think, Vulkan isn’t a miracle cure for performance issues and you still need a pretty performant PC to get a playable experience in most games
- Some OpenGL features that the Switch’s GPU can use aren’t supported by the Vulkan API for now so they will have to be emulated through a slower method or not at all.
- Most games use at least one of these features but workarounds do exist
- Vulkan support is still experimental and some titles like Luigi’s Mansion 3 and Crash Team Racing, which work on the OpenGL renderer, don’t work with it just yet!
- While it’s currently only available for Patreon supporters, Vulkan support will become available on Mainline (public branch) later this month
To obtain Early Access builds with Vulkan support, you need to pledge $5/month on Patreon or wait till Vuklan support ends up in the Mainline branch later this month. For more information and a pleasant read, check out Yuzu’s blog post on the matter.
3DS Emulation: Citra gains Proper VSync and disk cached shaders in Canary builds
Moving on to the 3DS, the best-working emulator currently on offer is Citra and while development on it has slowed down somewhat in favour of Yuzu (many Citra team members are now working there), some work is still going into it.
As a result of this work, it has now obtained support for proper Vertical Sync (V-Sync) and disk cached shaders which can fix many annoying issues previously encountered by some users.
Properly implemented Vertical Sync support is a feature that many PC games let you enable/disable and it’s used to sync the framerates of games with the framerate of your monitor in order to eliminate screen tearing. Thanks to this, you can get a locked framerate which your monitor can perfectly render although it’s important to state that some more processing power might be required to get good results with this feature enabled so if your PC can barely do playable framerates, you might have to live with V-Sync off. On the other hand, disk cached shaders are used to eliminate stuttering, especially when loading a new area, as shaders can be saved to disk after they’re generated and don’t need to be generated again on subsequent visits to the same area.
In other news, RetroArch will soon be getting hardware accelerated video decoding which will greatly improve its media playback capabilities on lower-end devices like the Raspberry Pi (yes, RetroArch has a video player which makes use of ffmpeg built-in on certain platforms like Windows/Linux). If you’re a Final Fight fan, you might be interested in Final Fight 30th Anniversary Edition which is a ROM hack of the original arcade game with numerous enhancements like 3 player support and unlocked character selection among other things!