feat: add shader sets and quick switch shortcut - #796
Conversation
|
Thanks, just saw your post on reddit! |
|
I forgot to explain the base idea for the shaders sets: it allows you to set base shaders at the root for the set, then override it if needed for a machine, switching between sets or regular settings at any time. This PR provides sharp and retro sets, meaning on any emulator you can toggle for exemple the "retro" set, then all machine you play will use this set. If you toggle "sharp", all emulators with use the sharp config. And if set is disabled, the regular config comes back. It allows to quickly change at once the look for all emulators. And if you have a set enabled, saving the settings for the current console will create a new cfg override with the front-end and shaders settings for the set and that machine only. Hope it's more clear, I should have made a demo video 😆 |
|
Sounds interesting, although it kinda breaks the convention of settings in minarch being either in game or core scope. Ill have to set some time aside to actually Look at your code, but it definitely looks promising visually. |
|
Yes, that's why a set works as an override of the game or core settings (just like regular shaders configs BTW), but I wanted to provide a way to create a set override on device directly. If you prefer I can revert the saving part and keep the sets as pure overrides, that way it doesn't break the game/core saving and keep it simpler. |
|
Hi @sinedied I looked at the code and here is my feedback: First off this is a feature I had been wanting for a while. Knulli and Rocknix have it. But I need more info and have a suggestion at the end.
I would really like to try your optimised shaders first. For me that is a bigger highlight than native shader set support inside NextUI. Also @frysee since this modifies minarch it may be worthwhile to decide how to proceed with the threaded-video branch. Review/test it or drop it entirely? |
|
Thanks a lot for taking the time to actually read the code @pvaibhav! Let me try to unpack it and help a bit with the review, I should have done in the first place. What's in the PRCode-wise the modification are these areas: 1) Shader pack — 2) 3) Nothing else in the resolution order changed. The rest of that diff is the write path (
Now for the minarch touch:Creating a pak-only PR was my first idea if you look at the first commits, but after testing and fixing some of the shader issue discovered I think adding the menu entry directly in the shader config menu was way better than a separate pak with a single item. And it also was needed to add the shortcut :) 1) 2) 3) Why
|


Adds global shader sets while preserving NextUI’s simplicity and existing behavior, allowing quick toggle between presets of shaders.
Includes Retro and Sharp presets that work out of the box, can be adjusted directly on-device, and can be quickly cycled or disabled through a configurable shortcut.
The included shaders were built and tuned specifically for NextUI, then thoroughly tested across many resolutions, aspect ratios, and integer-scaling scenarios. I also created RetroShader Lab to preview and test every shader and set in one place.
I took extra care was taken to maintain compatibility and avoid changing existing configuration behavior 🙂 Of course I tested this on hardware extensively (Trimui Brick).
Screenshots
See here: https://github.com/sinedied/perfect-retroshaders#screenshots, or open the lab directly to test and tweak the shaders and see the presets: https://sinedied.github.io/retroshader-lab/