libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.15k stars 1.82k forks source link

Retroarch 1.16.0.3 - Fedora Linux 37 - 8BitDO Pro 2 detected but not working #15881

Open mvrk69 opened 11 months ago

mvrk69 commented 11 months ago

Hi,

I'm running Retroarch 1.16.0.3 on Fedora 37 (x86_64), my 8BitDO Pro 2 is connected to the usb port and when i start retroarch it detects it but none of the buttons work.

OS: Fedora 37 Kernel: 6.5.9-100.fc37.x86_64 Retroarch: 1.16.0.3 Retroarch - input_joypad_driver: udev (though i tried also with sdl2 and still didn't work) 8BitDO Pro 2 Mode Selector: D-INPUT (though i tried also with X-INPUT and still didn't work)

I tried also via Bluetooth instead of USB cable and still doesn't work.

I also have an 8BitDo SN30 Pro+ which also doesn't work either in USB or Bluetooth.

Curious thing, they both work perfectly on Raspberry Pi 4 (Batocera and Lakka) via Bluetooth.

Any idea what might be wrong?

mvrk69 commented 11 months ago

Found the problem, for some reason i had on my config the all_users_control_menu = "false" so only the keyboard was allowed to control it.

Though only works with changing the Mode Selector on the controller to X-Input, D-Input doesn't work.

Is it normal that D-Input doesn't work? On the PI4 with Batocera i have both controller on D-Input mode and works fine.

viachaslavic commented 10 months ago

Do you have autoconfig files included? Check the contents of the joypad_autoconfig_dir folder.

mvrk69 commented 10 months ago

On my autoconfig folder i have the profiles downloaded from retroarch Online Updater:

ls autoconfig/ android
dinput
hid
linuxraw
mfi
parport
qnx
sdl2
udev
x
xinput

ls autoconfig/udev/Pro2 autoconfig/udev/8BitDo_Pro2_BT_X.cfg autoconfig/udev/8BitDo_Pro2_N30_BT.cfg
autoconfig/udev/8BitDo_Pro2_N30_USB.cfg

I see for udev there is a profile for the Pro 2 Bluetooth X-Input (8BitDo_Pro2_BT_X.cfg). but not for D-Input.

I don't have any folder called joypad_autoconfig_dir.

viachaslavic commented 10 months ago

Sorry, I meant the directory specified by the joypad_autoconfig_dir parameter in retroarch.cfg file a.k.a. Settings→Directory→Controller Profiles .

I see for udev there is a profile for the Pro 2 Bluetooth X-Input (8BitDo_Pro2_BT_X.cfg). but not for D-Input.

I see that there is a D-Input profile similar to your device in repository.. Can You try to update autoconfig via Online Updater or manually?

mvrk69 commented 10 months ago

I updated it, still no go.

[root@fedora ~]# cat /data/Games/retroarch/retroarch.cfg | grep joypad_autoconfig_dir joypad_autoconfig_dir = "/data/Games/retroarch/autoconfig"

I see now on the docs (https://docs.libretro.com/guides/input-controller-drivers) that the dinput retroarch driver is not for linux but for windows.

Though i still don't understand how my controllers work in dinput mode in rpi4 (batocera and lakka) its still linux (and its configured to use udev driver just like i have on my Fedora Linux PC)

[root@rpi4 /userdata/system]# cat /userdata/system/configs/retroarch/retroarchcustom.cfg | grep driver | grep input input_joypad_driver = udev input_driver = udev

[root@fedora ~]# cat /data/Games/retroarch/retroarch.cfg | grep driver | grep input input_driver = "udev" input_joypad_driver = "udev"

Anyway, not a bit problem, i just need to remember when i want to play on the PC i need to change the controller to x-input and when i want to play on the rpi4 i change it back to d-input (or i will try to reconfigure it as x-input on the rpi4 as well)