-
-
Notifications
You must be signed in to change notification settings - Fork 92
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
Gamepadcontrollers with less than 16 buttons do not get all button functions mapped #1493
Comments
Pasting this here from the closed PR, for continuation: This seems a bit weird to me then, and especially the proposed changes don't look right.
Meanwhile, I did a quick test to recreate this here, with your posted retroarch config. I have a PS4 controller here, which I tested first without any retroarch config enabled, and AmigaTestKit. Then I enabled the retroarch config, and removed the mapping for most buttons, leaving only the left analog for direction, and button A. The tests in AmigaTestKit show that it still works as expected, having all the available buttons from retroarch working. Directional with the Left stick and a single button only. The view in Custom Controls was not correctly showing this, having most dropdowns disabled. That's why I was asking, is this a GUI issue in the end, in Custom Controls? |
I tested also on my side with an XBox 360 Controller.
|
The GUI behavior is expected - it doesn't check the retroarch config for the built-in navigation, it uses a standard internal/default mapping for all joysticks for that. So, even if you had removed some of the lines from your retroarch config file, the GUI would still open the controller with a default mapping and use directional navigation and 2 buttons (for OK/Cancel). |
@Gemba |
Leave it open, please. I guess I can provide more clues. When there is a SDL compliant controller attached which reports less than 15 buttons, this loop does not get the 14th and 15th mapping from the previously done RA controller mapping in A more elaborated fix would be to check which buttons are reported from SDL here and compare them with the ones from the retroarch button names. Edit: |
Describe the bug
Gamepadcontrollers which are identified in the gamecontrollerdb.txt but have physically than 16 buttons and do have a RetroPie Gamecontroller *.cfg file do not get all buttons mapped into Amiberry controller.
For example: A gamepad with 13 physical buttons has UP/DOWN mapped but LEFT/RIGHT (the 14th and 15th in the list,
retroarch.cpp::retroarch_button_list[]
) is "cut off"/ not mapped. If a gamepad has 12 physical buttons reported then also DOWN is "cut off" from the mapping.To Reproduce
Steps to reproduce the behavior:
Expected behavior
All buttons (up to 15) defined in Controller.cfg file are mapped into Amiberry
Desktop
Workaround
Remove the RetroPie Gamecontoller.cfg file, then all buttons are mapped as expected.
Additional context
retroarch.cfg
is not geared/utilized to player input mapping. But if it is, the effect is most likely the same.did->buttons
/did->buttons_real
contain the pyhsical buttons, assetup_mapping
is using the full 15 buttons. But for some reason the buttons reported frommap_from_retroarch()
don't end up in the final result.The text was updated successfully, but these errors were encountered: