(2016-02-02, 08:27)N3MIS15 Wrote: Am I wrongin thinking this should be the other way around? Shouldn't you swap the Xbox keymap around to keep compatable with retroarch?
No, retroarch compatibility is hidden behind as many layers of abstraction as I could throw at the problem. The goal is to do things right, like having per-platform configuration instead of hardcoding everything like retroarch does. Compatibility must be retained, but not at the expense of UX.
I decided to use the Xbox 360 layout for Kodi because that's what modern consoles seem to have converged on. Also, it has the most buttons. Do you see a Guide button in retroarch's layout? That's another one of their limitations I don't want in Kodi.
It makes sense for retroarch to use the SNES layout, given that "retro" is in their name. However, I think the 360 controller offers greater flexibility through more buttons and is the controller that typical users will be the most familiar with.
The important thing is that we're having this discussion. retroarch can't, because the SNES layout is hardcoded in their API, and thus in every single emulator they've ported. In our system, the choice is arbitrary. We could replace Kodi's joystick.xml keymap with one using SNES buttons and have that be the default, our system doesn't care.
(2016-02-02, 08:27)N3MIS15 Wrote: Also FWIW in Japan I believe circle is used as "select" button rather than cross keeping in sync with Nintendo's layout
Right, I think that we're looking at a dichotomy between the physical mapping and the logical mapping. I haven't analyzed much of the button map data yet, but I expect we'll see two clusters around these two doctrines.
If we are able to identify these clusters, we could add the advanced option:
- Prefer physical mapping over logical mapping for button defaults
and then serve the user the appropriate defaults.