Emulator Presets (Modern/Retro/Custom)
Emulator presets
The preset is a function that can apply a predefined set of settings for all the supported emulators. The default presets can be:
- Retro
- Modern
- Custom
Retro
This will be setting the emulators to be in high fidelity:
- original aspect ratio (aka no widescreen if not native)
- no upscaling
- shader to resemble the original screen
- borders ON
- custom textures off
Modern
This will set the emulators to have the best possible graphics:
- widescreen )where supported)
- maximum FPS friendly upscaling
- no shader (unless they help in improving the graphics)
- borders OFF for the widescreened systems
- custom textures ON
Custom
Custom presets are saved by the user.
How the presets will be managed?
There will be a presets folder in retrodeck/presets that will contain all the preset files:
Modern.rdpreset
Retro.rdpreset
My First Preset.rdpreset
In this case Modern and Retro are RetroDECK provided default presets, My First Preset instead is a user defined preset.
Notes
- Users can share their presets
- The name of the file will even be the name of the preset, or we can decide to include a line in the preset file with the preset name
- When saving the preset, if no name is given it will be generated a name like
Custom Preset (date).rdpreset. - This can be an evolution of the already in place system: https://github.com/XargonWan/RetroDECK/tree/main/emu-configs/defaults/retrodeck/presets
They should be per device
Where most of it is the same a Linux Desktop PC can handle more the handheld devices. So
Steam Deck: Retro Modern Custom
Linux PC:
Retro Modern Custom OMEGA
Not sure if this is already planned, but it would be great if there would also be a Hybrid (semi-custom) preset:
The user chooses e.g. Modern as the "upstream" preset and every configuration they change is saved in a patch file. A Hybrid preset gets generated that is based on Modern but with the custom changes.
Now when RetroDECK changes the Modern preset, the user's Hybrid preset is generated again so the user receives the Modern update but with the custom values still intact
We kinda try to do that already and we do have the architecture for it.
The goal have always been to preserve user data