Emulation/RetroArch: Solution needed for custom configuration
Intro
Lemme just start out by saying, I am a massive fan of ChimeraOS. I love the principles of ease of use and stability.
Also, I want to preemptively say that, this is a problem that, if someone else isn't already working on it, I would love to work on.
I am opening this issue to get some initial feedback on where the actual problem lies and if I have a good understanding of how it could be fixed. This is not just me yelling that I don't like something.
The Problem
Custom RetroArch configuration suck on Chimera OS.
Take gamepad input for example:
The user story for someone using an unsupported controller is one of three options:
- Use a different controller
- Make and then wait for a pull request to be merged that adds support for their controller
- Abandon the preconfigured Gamepad settings that ChimeraOS provides
If a user would like to change the inputs of a gamepad for whatever reason, the official response is more or less: Just Don't
As far as I can tell, this is the stance for most custom configuration to RetroArch.
Why This Problem Exists (I think)
There is currently no easy way to maintain centralized RetroArch configuration settings for all users without locking it down and preventing users from modifying it.
Honestly, if I was in y'all's position, I would have made the same choice: This allows Chimera to support the most people for the longest amount of time.
A potential solution: RetroArch support for "importing" arbitrary config files
I've looked through RetroArch's docs and as far as I can tell, they don't support this.
If they did, then Chimera's official config could be updated to something like:
... config goes here
autoconfig_include = /home/gamer/.config/retroarch/custom-config/controller/*.cfg
config_include = /home/gamer/.config/retroarch/custom-config/*.cfg
Or for a specific core:
... config
autoconfig_include = /home/gamer/.config/retroarch/custom-config/[core]/controller/*.cfg
config_include = /home/gamer/.config/retroarch/custom-config/[core]/*.cfg
If we were able to add this to the official configuration files for Chimera, then users would be able to add their own overrides without losing general support.
EDIT (clarity): This would require PR(s) to RetroArch and approval from that community to implement.
Downsides
New UI:
If this were to become fully supported, there may need to be a new UI created for helping users map new controllers or to change custom configuration. That is a lot of work.
Conflicting config:
Giving users the power to add their own config can open up more potential for issues/support questions.
Conclusion
Is the problem as stated seen as an issue that needs to be fixed? If it is, would the proposed solution be the correct way of fixing it? I would love feedback.