Emulationstaton not detecting hot pluged switch pro controller
-
Hey! I have a strange problem that I'm not sure how to go about fixing.
I bought a clone switch pro controller to use with retropie.. I installed the drivers as indicated at https://retropie.org.uk/docs/Nintendo-Switch-Controllers/
The controller connects fine and works well with 1 exception.. If I connect the controller (bluetooth) after emulationstation has loaded, or if the controller shuts off from being idle and I turn it back on and connect it, ES will not register any input from the controller.
Configure input will show that the extra controller is added, but no button press will do anything.
If I just restart emulationstation then the controller will work fine..
If I run evtest from the command will see the button presses fine while ES does not.Same problem with retroarch.. if the I turn on the controller after it's loaded a core, the controller is not detected..
From what I gather I assume this is an issue with joycond <-> ES&Retroarch.. is there something that can be done to resolve this?
-
Please add more info about your setup - as detailed in https://retropie.org.uk/forum/topic/3/read-this-first.
Can you run EmulationStation from the console with the
--debug
parameter and then post the log file ($HOME/.emulationstation/es_log.txt
) ? Exit EmulationStation (quit) and then run (from the terminal):emulationstation --debug
-
I parsed out the warnings from the themes..
Just as reference these are what the controller adds when activated..
/dev/input/event5: Nintendo Switch Pro Controller
/dev/input/event6: Nintendo Switch Pro Controller IMUThis one is where I start up ES with the controller already powered up and it works fine..
May 17 12:46:15 lvl2: EmulationStation - v2.9.6rp, built Nov 4 2020 - 15:12:32 May 17 12:46:15 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamenames.xml"... May 17 12:46:15 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamebioses.xml"... May 17 12:46:15 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamedevices.xml"... May 17 12:46:15 lvl2: Creating window... May 17 12:46:16 lvl2: Created window successfully. May 17 12:46:16 lvl2: GL vendor: Broadcom May 17 12:46:16 lvl2: GL renderer: V3D 4.2 May 17 12:46:16 lvl2: GL version: 2.1 Mesa 19.3.2 May 17 12:46:16 lvl2: Checking available OpenGL extensions... May 17 12:46:16 lvl2: ARB_texture_non_power_of_two: ok May 17 12:46:16 lvl2: Added known joystick Logitech Logitech RumblePad 2 USB (instance ID: 0, device index: 0) May 17 12:46:16 lvl2: Added known joystick Nintendo Switch Pro Controller (instance ID: 1, device index: 1) May 17 12:46:16 lvl2: Added known joystick Nintendo Switch Pro Controller IMU (instance ID: 2, device index: 2) May 17 12:46:16 lvl2: Loading system config file /etc/emulationstation/es_systems.cfg... ...... May 17 12:46:16 lvl2: Parsing XML file "/home/pi/.emulationstation/gamelists/amiga/gamelist.xml"... May 17 12:46:16 lvl1: Warning from theme "/etc/emulationstation/themes/carbon/amiga/theme.xml" (from included file "/etc/emulationstation/themes/carbon/amiga/../carbon.xml") ...... May 17 12:46:19 lvl3: SystemView::getViewElements() May 17 12:46:21 lvl3: UIModeController::logInput( Nintendo Switch Pro Controller ):Hat 0 right, isMappedTo= right, , value=2 May 17 12:46:21 lvl3: UIModeController::logInput( Nintendo Switch Pro Controller ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 May 17 12:46:22 lvl3: UIModeController::logInput( Nintendo Switch Pro Controller ):Hat 0 left, isMappedTo= left, , value=8 May 17 12:46:22 lvl3: UIModeController::logInput( Nintendo Switch Pro Controller ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 May 17 12:46:31 lvl3: fireEvent: quit May 17 12:46:32 lvl2: EmulationStation cleanly shutting down.
This one is where I turn on the controller after ES loads and it doesn't work.
(seems to be a difference in how it's detecting the controller)May 17 12:50:09 lvl2: EmulationStation - v2.9.6rp, built Nov 4 2020 - 15:12:32 May 17 12:50:09 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamenames.xml"... May 17 12:50:09 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamebioses.xml"... May 17 12:50:09 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamedevices.xml"... May 17 12:50:09 lvl2: Creating window... May 17 12:50:09 lvl2: Created window successfully. May 17 12:50:09 lvl2: GL vendor: Broadcom May 17 12:50:09 lvl2: GL renderer: V3D 4.2 May 17 12:50:09 lvl2: GL version: 2.1 Mesa 19.3.2 May 17 12:50:09 lvl2: Checking available OpenGL extensions... May 17 12:50:09 lvl2: ARB_texture_non_power_of_two: ok May 17 12:50:09 lvl2: Added known joystick Logitech Logitech RumblePad 2 USB (instance ID: 0, device index: 0) May 17 12:50:10 lvl2: Loading system config file /etc/emulationstation/es_systems.cfg... ...... May 17 12:50:10 lvl2: Parsing XML file "/home/pi/.emulationstation/gamelists/amiga/gamelist.xml"... May 17 12:50:10 lvl1: Warning from theme "/etc/emulationstation/themes/carbon/amiga/theme.xml" (from included file "/etc/emulationstation/themes/carbon/amiga/../carbon.xml") ...... May 17 12:50:12 lvl3: SystemView::getViewElements() May 17 12:50:23 lvl2: Added known joystick Nintendo Switch Pro Controller IMU (instance ID: 1, device index: 1) May 17 12:50:45 lvl3: fireEvent: quit May 17 12:50:46 lvl2: EmulationStation cleanly shutting down.
-
Looks like the controller is not detected, only the accelometer/gyroscope is detected, but this shouldn't be recognized as a gamepad
May 17 12:50:23 lvl2: Added known joystick Nintendo Switch Pro Controller IMU (instance ID: 1, device index: 1)
I suggest you remove the driver and try to pair the controller normally, list any other Bluetooth controller. Then re-configure it in EmulationStation and see if you get the same problem.
-
That's what I did when I first got the controller. I would choose it with the Bluetooth tools "pro controller" and when I'd go to configure input in ES, it would show the added controller, but no button input would be detected from it.. also evtest didn't react to any button presses..
that led me to this https://retropie.org.uk/docs/Nintendo-Switch-Controllers/
and I installed the HID-Nintedo & Joycpmd.. after that I did the bluetooth config added it and it worked, but I ran into the problems I described..Is it possible to add some sort of rule to force the detection of the controller instead of the gyro?
-
@kamjin said in Emulationstaton not detecting hot pluged switch pro controller:
Is it possible to add some sort of rule to force the detection of the controller instead of the gyro?
They should both be detected, but the gyro should not be labeled as 'joystick'. A
udev
rule to set `ENV{ID_INPUT_JOYSTICK}="" (similar to these) for the gyroscope device might accomplish that. -
@mitu said in Emulationstaton not detecting hot pluged switch pro controller:
@kamjin said in Emulationstaton not detecting hot pluged switch pro controller:
Is it possible to add some sort of rule to force the detection of the controller instead of the gyro?
They should both be detected, but the gyro should not be labeled as 'joystick'. A
udev
rule to set `ENV{ID_INPUT_JOYSTICK}="" (similar to these) for the gyroscope device might accomplish that.Hello.
I'm having the same issue, after reconnecting a Pro controller it seems it's connecting everything (controller + IMU) but IMU is being connected on top of the controller:
Aug 10 09:34:24 lvl2: Added known joystick Nintendo Switch Pro Controller (instance ID: 0, device index: 0)
Aug 10 09:34:24 lvl2: Added known joystick Nintendo Switch Pro Controller IMU (instance ID: 1, device index: 1)
... (events detecting buttons and stuff)
Aug 10 09:35:40 lvl2: Added known joystick Nintendo Switch Pro Controller IMU (instance ID: 2, device index: 0)See how the IMU is being added at index 0 after the controller was detected? what's funny is that if I shake the controller, it works by switching between consoles in emulationstation's main menu.
Regarding the udev rules, how can I set them up to blacklist IMU being detected as a Joystick? (or at least to send it to index 2?) I saw the link you posted but couldn't understand it
Thanks!
EDIT: Just to add, if I had the Pro controller paired before opening Emulationstation, it just registers the first two entries: controller and the IMU of index 1, it doesn't re-register it on index 0 later
-
@zantetusken10 I think the problem is joycond. I uninstalled it (manually deleting the files it installed + disabling the service) and now it works. The only quirk are the leds of the controller. For example, if I connect it with bluetooth the first time the first light will be on, if I disconnect and reconnect via bluetooth, the first + second light will be on like if it were player 2, but the controller will work fine nonetheless.
Now, to get it to pair properly with Steamlink :D
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.