Bit of an introduction:
I'm the Google Summer of Code student that will be developing shader support for RetroPlayer this summer, along with garbear which will mostly be doing the GUI work for it.
Here's RetroPlayer's current state:
As you can see, there are several parts of it that are unneccesary and some are more prevalent than needed.
Also, a lot of the things we need in there aren't present in the OSD.
We need to have these options somewhere:
- Save State
- Load State
- Load Savegame
- Exit Game
- Change Shader
- Reset Game
- Enable/disable Cheats
- Netplay Settings
- Controller Assignment (?)
Our plan is make use of the libretro shader system, to make use of the vast number of shaders and shader presets already developed for it.
This system is largerly based on these shader presets, or .cgp files.
Each one of this files specifies a certain amount of passes, and scaling/filtering parameters for each pass.
For example, a shader preset for the Game Boy might have different passes for dot-matrix, color conversion and ghosting effects.
(more detailed info on the spec itself here)
RetroArch implements this spec and offers a UI for changing these parameters.
We will need to adapt this UI, to a 10-foot UI for Kodi.
We're currently trying to figure out how the Shaders OSD will work.
We were thinking about having two windows, a
- Shader Browser: Used for selecting a .cgp file and a
- Shader Editor: Used for adding/removing passes and maybe changing scaling/filtering parameters
About the shader OSD, we either need to hash this 2-window idea out, or maybe brainstorm other ways of handling shader presets.
Ideas about the RetroPlayer's overall UI also welcome.