Emulation on Desktops: Yuzu to get a Vulkan renderer (currently in development) for better performance in Switch games and a look at the RPCS3 December 2018 Progress Report with significant improvements in God of War 3/Gran Turismo
Until a short while ago, emulation news was pretty slow but now, it’s picked up its pace again with even more promising developments! In this article, we’ll be looking at recent work being done to implement Vulkan rendering support in Yuzu and the RPCS3 December 2018 progress report!
Yuzu Vulkan renderer currently being developed
Ever since its inception, Yuzu, a Nintendo Switch emulator, has been seeing a great deal of interest and development time being poured into it. This has led to some games like Super Mario Odyssey and Zelda:BotW becoming partially playable with some simpler titles like Puyo Puyo Tetris and Super Meat Boy running perfectly even though the console being emulated isn’t even 2 years old!
Now, yet another interesting development has occurred and that is the recent work hinted by GitHub commits being done in order to add a Vulkan renderer to the emulator. Vulkan is a 3D graphics API that aims to offer better performance over OpenGL and other rendering backends. In emulation, switching to a well-coded Vulkan backend can result in gains of 10-15 FPS compared to OpenGL/DirectX12 or even more as was the case with RPCS3 when it got its Vulkan renderer; a comparison video can be viewed here.
As of right now, the people behind Yuzu haven’t commented about the recent GitHub commits relating to the implementation of a Vulkan renderer but they’ll probably give some more information about it when it reaches later stages. It is possible that Vulkan support will first be included in Patreon builds as these builds get new features/improvements a short while before the Nightly/Canary builds so it may be wise to keep an eye on their Patreon (below) and Twitter page too if you’re excited about better performance in Switch emulation especially on AMD graphics cards.
A look at the RPCS3 December 2018 progress report
As usual, the RPCS3 team wrote a pretty beefed up post about their progress in the last month of the year which is a pretty lengthy read as there’s a lot to go over. However, not all people may have the time (or will) to read through their excellent progress report so here, the most important points will be listed and commented upon:
- Various rendering improvements by kd-11 which lead to more accurate emulation and less visual bugs.
Among these we find:
- A fix for when rendering was squeezed into a single corner
- Improvements to shader decompilation code namely having to do with double assignments, a re-implementation of conditional execution and the separation of depth/stencil data
- These fixes led to the correction of corrupted colours in some titles like God Of War III and the fixing of blocky (unreadable) fonts in the Gran Turismo series of games
- Nekotekina implemented “approximate xfloat” to the SPU LLVM recompiler which is much faster, and a bit less accurate, than “accurate xfloat” while not being too heavy on the CPU
- Some games, like WipeOut HD, require accurate handling of extended floating point values so they required accurate xfloat to be enabled. However, this type of emulation was so demanding that only the highest-end CPUs could use it while still retaining good framerates so this solution is a midway one to make many games playable
- Without correct handling of extended floating point values, games like God Of War III and Ninja Gaiden 2, have odd issues regarding physics handling, missing geometry and incorrect models which rendered them unplayable
- The texture cache predictor was written by ruipin. This greatly reduces the number of hard faults encountered during emulation thus improving performance
- In December, megamouse came along with more quality-of-life improvements and these include:
- Game controller assignments and backends (controller to keyboard) can now be changed/saved during emulation so you don’t have to restart the game every time you change something!
- Support for binding a mouse to the controller’s analogue stick has been improved as now, deadzone offsets are saved along with keyboard data and can be set through a GUI window
- Stick interpolation has been added for a better experience when using a keyboard to control games
- The DualShock 4 and XInput backends also saw some improvements
- Finally, the games that saw sizeable improvements are:
- God of War III (mentioned above)
- El Shaddai: Ascension of the Metatron
- Motorstorm 3D Rift
- ModNation Racers
- Many others
To read the whole progress report and a streamlined version of the commit history while seeing more screenshots/videos, you can read the whole progress report from here.
Without a doubt, it’s quite mindblowing how far developers have taken emulation technology especially that for more recent consoles. Obviously, working on emulators is a pretty difficult and time-consuming task so many emulators have their own Patreon to help with their financial needs (test hardware, high-end PC hardware for testing and potentially full-time developers). To support Yuzu and RPCS3, you can check out their Patreon page below and also get some cool rewards as thanks for your monetary contribution!
Builds to run on your PC can be obtained from the emulator’s websites linked above.
Yuzu’s Patreon Page: https://www.patreon.com/Nekotekina
RPCS3 Patreon Page: https://www.patreon.com/yuzuteam