The Proposal: Much like the “Save Core Overrides” function, “Save Controller Overrides” and “Save Controller Core Overrides” would be very helpful. Allowing controller autoconfigs to store general settings as retroarch.cfg overrides would be the most straightforward way of doing it.
The Reasoning: Let’s say you own two controllers: an xbox 360 controller and an N64 controller clone.
Say you set up an N64 controller as expected with retroarch. The C buttons are set to the right axis and the Z button is set to L2. There are no X, Y, or R2 buttons. It works perfectly in N64 cores.
Now you want to use it on an SNES core. You don’t have an X or Y button set. Easy, right? Core remap to set the A, B, X, and Y buttons to the right axis. Done. Except now your xbox 360 controller has to use the right joystick instead of the A, B, X, and Y buttons. And the menu controls are messed up on both controllers. If you could set a Controller Core Override, You could only affect the N64 clone and force the menu controls to still use the A and B buttons.
Now let’s say you’re used to using the xbox 360’s scheme on hitting “okay” and “cancel” in menus. Right now, you’d have to invert these two settings in your retroarch config. But this would also invert the buttons for your N64 clone. A Controller Override could make this change controller specific.
Finally, let’s say you’re playing an NES core with your xbox 360 controller. You notice that the L and R buttons are unused. You decide to set them to rewind and fast forward as a core override. But you had to save it as buttons “4” and “5”. Buttons “4” and “5” on your N64 clone are A and B. Now when you try to press A or B while using your N64 controller, you fast forward or rewind instead of actually pressing A or B. Once again, a Controller Core Override could help.
The Conclusion:
The input system is perfectly adaptable to any single controller/core configuration you could imagine. However, when you start to play with two different controllers, shortcomings become apparent. These changes could really help with these shortcomings. I hope you’ll take them into consideration.