GUI Upgrade - Layout Updates & simplified Overlay
Pre-releaseSince we are at a somewhat stable framerate and almost every game works at full speed in native resolution (at least the ones I've tested), I wanted to focus more on the Quality of Life stuff. The biggest issue I had code-wise was with how the ingame overlay was being used architecturally. It did not make sense that we had to maintain two separate entities just to manage the same options? I make games for a living - even crap ones - and even I did not understand this concept. Anyways, so I did what I usually do when I work on someone else's project project - I tried simplifying the project. The ingame overlay has been removed in favor of a much more refined and flavorful ingame settings panel. This contains almost every option you can find in Settings - with a few ones like JIT and the new experimental Async GPU (thanks to a pull from Dekopon) since these both require a restart. These settings still retain the same per-game functionality but will save me a great deal of headache maintaining two separate views. It was a substantial and huge rewrite, requiring me moving away from the vulkan-overlay quick menu (that was drawn with vertex quads) to a full-ahh nwindow handoff - similar to what we have in the UI right now. Thank you for existing and making my life easier, libnx.
Secondly, a lot of people kept asking me about certain types of custom layouts, being able to hide certain screens or have them on top of each other. I originally intended for this release to only contain this, but the settings overhaul had to make a part as well. You can modify your custom layout with either touch (fully supported) or using controllers - since a lot of y'all use your Switch in Docked mode. its not perfect - it still needs a lot of QoL changes, but its functional enough. You can save it as a "Custom" layout too, so you can switch between your custom layout and normal ones using the same R3 (or whatever you've set it to) key.
Thirdly, I really shouldn't have done this last minute - I took a pull from Dekopon because I was interested in the new and shiny "Split GPU and CPU threads" feature. I haven't personally seen any performance boost, but it might be a great base for huge optimizations. The reason I regret doing it is because it caused a lot of merge conflicts with regards to how we are doing work right now. Had to spend a good couple of hours decoupling and fixing issues.
Therefore, from now - instead of taking a direct pull from Dekopon, I'll cherry pick changes that I see are important for Raikopon.
Changelog:
- An option to modify, update and make your own layout. Your saved layout is available in the same area where you can find other layouts.
- Ingame overlay has been replaced by the same Settings UI used in main menu/library menu.
- Added option to Reset to Default or Reset to Library.
- Considerable amount of QoL changes to make the emulator's UI feel more refined using controller.
- The CPU Clock now changes by 1% instead of 25% (requested by Joko).
- Added a bunch of features from Dekopon (most of them are untested, but should work since we're the same tree?):
-- Added Split GPU and CPU threads.
-- Added lightning LUT wrap fix.
-- Added Nintendo Labo 3D support.
-- Added cartridge insertion support.
-- Added arctic base/setup tool support.
Please let me know if anything breaks, I plan on adding an auto-updater in the next update so y'all don't have to go on GitHub to download new updates.
Have a lovely day. Cheers!