Upcoming Changes: OSK, Overlays & Shader Decompiler Rewrite (Patreon)
Content
Hey Patrons, we are back with a short update on how some upcoming features are developing!
While March may have seemed like a quiet time on the yuzu development front, this is merely the calm before the storm. In this post, we will talk about two upcoming feature releases. Overlay and on-screen keyboard (OSK) support, and the in-development rewrite of our shader decompiler.
The first thing we want to tease is our soon to be released support for error overlays and the OSK. This feature adds gamepad controlled error messages, popups and an on-screen keyboard, allowing you to input text in many of your favorite games with your gamepad. Of course, keyboard, mouse and touch input are also supported. Our on screen keyboard and error messages have been designed to be pixel perfect representations of the versions seen on the Nintendo Switch.
Check out some images of how they look below.
This implementation also adds full support for what is known as the inline or asynchronous software keyboard. This keyboard type is required for text input in several titles, a few examples are Monster Hunter Generations Ultimate, Daemon X Machina and Dark Souls Remastered. These games now work on yuzu thanks to this update.
The final part of this project involves another implementation a lot of people have asked for in the past, the addition of borderless fullscreen mode. During the creation of the OSK and Error Overlays, we encountered issues with presentation of the keyboard and errors while in fullscreen mode. To work around this problem, support for borderless fullscreen mode was added. This display mode brings with it several improvements such as smoother gameplay, lower latency, and a significant reduction in screen tearing.
While this feature is aimed at our couch gaming users, I think we can all agree it is going to make using our emulator a much more enjoyable experience!
Check out this short GIF of our brand new OSK in action in Pokémon Sword:
The second thing we are going to talk about is progress with our new shader decompiler, or as you may know it from our Discord server, Project Hades. This forms the third part of our GPU emulation rewrite, which started a few months ago with our texture cache rewrite, followed by our buffer cache rewrite. Similar to those, this rewriting of our decompiler aims to dramatically improve game compatibility.
We are achieving this through auditing our shader code, rewriting it from scratch with unit testing in mind (unit tests help to prove everything works as expected even when games are do unexpected things). One such example of improvement can be seen below in Kirby Star Allies.
With Current Early Access:
With the New Shader Decompiler:
As the new shader decompiler is still in very active development, it is not yet complete enough for broad testing – but we do expect to find many more examples of graphical fixes in games as development and testing continues.
Another advancement that Project Hades brings with it is something many of our users have requested in past months: The addition of a disk pipeline cache for our Vulkan API. Similar to our existing OpenGL disk shader cache, this allows you to cache and save game shaders to a disk, for smoother and stutter free gameplay on subsequent play sessions.
While we do not have an exact ETA for when the shader decompiler rewrite will be released, we can say that we hope to release it at some point in the month of April. Development is still ongoing, and many titles are now starting to boot/go in-game, here is a small preview of some of them.
Before we finish, we once again want to thank you from the bottom of our hearts for your continued support. Without it none of this would be possible. As always, when we have more news to share, we will do so as soon as possible!
- The yuzu development team