(2015-03-17, 14:21)OmniBlade Wrote: I must confess, I prefer the RetroArch system of mapping one controller and then you get reasonable sane defaults for all emulators right off the bat and only need to tweak individuals ones that don't suit you. [emphasis added]
You're aware that RetroArch and RetroPlayer use the same cores, the same API? If I give up and do nothing, this strategy is already built into the libretro API.
...Almost.
Consider the first half:
mapping one controller and then you get reasonable sane defaults for all emulators right off the bat. This is built into the libretro API. The API contains the following controller abstraction:
The RetroPad is essentially a Super Nintendo controller, but with additional L2/R2/L3/R3 buttons, similar to a PS1 DualShock. But OFC, you can't map every controller to every console without some edge cases.
Hence the need to
tweak individuals ones that don't suit you. Problem solved. However, tweaking emu configs is NOT part of the libretro API. This is implemented in their frontend, RetroArch.
So you see, RetroArch's system bleeds between the API and the implementation.
I have managed to build an API that contains both the "reasonable sane defaults" AND the "tweaking" part.
(2015-03-17, 14:21)OmniBlade Wrote: I assume there will be a database that Kodi will query then for the controllers it has seen and how they map to the various emulated controllers based on the "approved" configuration?
Here's the power of my expanded API: the "tweaking" can now be used as feedback for the "reasonable sane defaults" part. In the interest of time, my April 1 test builds will copy your preferred system exactly. Eventually, though, collected data can be leveraged to evolve "reasonable and sane" into "optimal". Thus, over time, the
need to tweak individuals ones will converge to a minimum. IMO less configuration == improved UX.
Building this database you propose, where Kodi can query for controller configurations, is a large effort. My "feedback" idea is a tiny rain drop in this huge bucket. IMO, as long as we're putting effort into building this database, we might as well include this small optimization.