Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Quick Controller Mapping #291

Closed
fabricioanciaes opened this issue Nov 22, 2019 · 5 comments
Closed

Feature Request: Quick Controller Mapping #291

fabricioanciaes opened this issue Nov 22, 2019 · 5 comments
Labels
enhancement New feature or request

Comments

@fabricioanciaes
Copy link

A quick way to map the inputs of a controller per core in a quick manner (and maybe also inferring its "retropad" mapping)

This is a good example of a quick controller configuration: https://i.imgur.com/cwbij8M.mp4

By pressing a hotkey, it brings a fullscreen overlay of controller mapping, and you have the possibility of choosing which port that should be assigned as well as a quick way to map.

This is extremely useful in a setting where people bring their own controllers, like fighting game tournaments or general offline gatherings. This has been a problem with many emulators (either due to the lack of hotplugging or poor controller mapping UI).

@kivutar
Copy link
Member

kivutar commented Nov 23, 2019

As @natinusala was asking on discord about the same proposal for RetroArch, how do you navigate this quick configuration panel if there is not already a joypad with an auto config in place?

In the case of Ludo, my plan is to keep things minimal, so we support autoconfig for the most known joypads: https://github.com/libretro/ludo/wiki#supported-joypads

And I think it is amply sufficient for 80% of the users, maybe even in the case of tournaments.

@johnnyq
Copy link

johnnyq commented Nov 23, 2019

@kivutar I agree. Although more auto mappings of more controllers would be awesome. Libretro already has many of the controllers auto mapped. Is it possible just to port over libretro auto mappings to ludo and call it a day or is it a little more in depth than that, or maybe come up with a piece of code that bridges libretro automapping with ludo.

@kivutar
Copy link
Member

kivutar commented Nov 24, 2019

There are two ways of doing this:

  1. Making Ludo compatible with RetroArch mappings
  2. Using the builtin feature of GLFW that uses the SDL joypad database

Solution 1 is difficult because our input it provided by GLFW, and it may not be compatible without a double mapping.

Solution 2 is doable now that we have GLFW 3.3. However there are some mappings like the DualShock 4 that change depending on the Linux Kernel version. Their database is not smart enough to support these edge cases.

Ludo doesn't try to be smarter than GLFW or SDL here, we all decided that it was better to support only 1 kernel version. However, our reference kernel version may and will differ at some point. LudOS being a shallow fork of LibreELEC, our kernel version is imposed by LibreELEC. If for some reasons the SDL database prefers binding that work for another kernel, we're basically screwed.

So any of these two solutions would involve manually testing all the joypad each time we:

  • Upgrade LibreELEC base
  • Upgrade GLFW
  • Upgrade RetroArch bindings

Which is not sustainable with the current size of the dev team (1 person basically).

So I'm OK to add more bindings in Ludo, but only the very popular widespread pads, to not slow me down.

@fabricioanciaes
Copy link
Author

fabricioanciaes commented Dec 2, 2019

As @natinusala was asking on discord about the same proposal for RetroArch, how do you navigate this quick configuration panel if there is not already a joypad with an auto config in place?

Maybe ask for a button press for the controller you want to config and config one at a time? Sort of what tekken 7 does. Can you listen to button presses even though the controller is not mapped?

@kivutar kivutar added the enhancement New feature or request label Jun 12, 2021
@kivutar
Copy link
Member

kivutar commented Jul 18, 2021

Closed in favor of #452

@kivutar kivutar closed this as completed Jul 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants