SNES Controller Issues (Switch Version)
-
Hi,
Online I had read that the official SNES bluetooth controllers offered by Nintendo (for use with the Switch) work on Retropie, so I ordered one. I'm now having some issues. (This controller: https://www.nintendo.com/en-ca/store/products/super-nintendo-entertainment-system-controller/)
- I'm able to pair the controller with the Retropie successfully, but the controller is not detected when I want to configure its inputs in EmulationStation. When I go to "Configure Input", it only sees my other controller that I have plugged in and does not detect the paired SNES controller. The device shows up properly in the "Show Paired & Connected Bluetooth Devices" list though.
- When I plug this controller into the Retropie directly (via USB), it immediately crashes me to the console command line, and I see the error message: "... emulationstation: InputManager.cpp: 91: void InputManager::addJoystickByDeviceIndex(int): Assertion `joy' failed."
Any idea how I can get this controller to work via Bluetooth? And any idea if I'd be able to plug this controller into the device itself to charge, and not end up having an assertion error occur?
Thanks!
Pi Model or other hardware: Raspberry Pi 4 (4gb)
RetroPie Version Used: 4.7.1
Built From: Pre made SD Image on RetroPie website
Devices connected: Switch SNES Controller -
Try installing the hid-nx driver, which offers support for the 'Switch' controllers (SNES/NES/Sega/N64).
-
@mitu Thanks for the push in the right direction!
I think I might need a bit more guidance for this though, I'm only ok with Linux.
- What directory should I be in when installing this stuff? My guess was /lib/modules
- What did I do wrong here? Following the instructions, I got to this point then got this error, show in the attached image:
-
The
install
command seems wrong, should besudo dkms install hid-nx-dkms -v v1.13
However, I now realise it requires at least kernel 5.16, which is not included in RetroPie (or RaspiOS latest version, for that matter), so building the driver will fail.
EDIT: maybe try installing just the hid-nintendo would provide some basic support for the gamepad ? Try pairing it again via Bluetooth and see if it works better.
-
@mitu According to the documentation, it says to do the build command before the install command:
dkms add . dkms build hid-nx -v 1.13 dkms install hid-nx -v 1.13
I seemed to have been failing on the build command, which it says to do before the install command. The normal hid-nintendo driver has the same commands (build, then install).
Was I in the right directory to do all this? (/lib/modules)
-
@Grumbles said in SNES Controller Issues (Switch Version):
Was I in the right directory to do all this? (/lib/modules)
dkms
takes care of the location where to symlink/copy the modules, so there's no problem here. The issue was the name of the folder (declared indkms.conf
) which is not the same as in the build command. Regardless, the build would fail because of the kernel version. -
- When I went to install the hid-nintendo module, it looks like it was already installed by default ("Module nintendo/3.2 already installed on kernel 5.10.103-v71+/armv71"). So I don't think that driver helps, as it was already installed when I tried out the controller.
- Looking at the documentation of hid-nx, it says "It may work on earlier versions, but they are not supported." It might be worth trying it still, right? If so, how do I fix the issue with the dkms.conf file conflicting with the build command?
- If it's not worth still trying hid-nx, am I out of luck with this controller? I'm confused as to why I saw other people online on Reddit and such say that it worked with Retropie
-
When I went to install the hid-nintendo module, it looks like it was already installed by default ("Module nintendo/3.2 already installed on kernel 5.10.103-v71+/armv71"). So I don't think that driver helps, as it was already installed when I tried out the controller.
Hm, that's weird since there's no OOB kernel module
hid-nintendo
on a RetroPie installation. Did you install it yourself ?Looking at the documentation of hid-nx, it says "It may work on earlier versions, but they are not supported." It might be worth trying it still, right? If so, how do I fix the issue with the dkms.conf file conflicting with the build command?
It's not going to work. If you still wish to try - and see the errors - you're free to use the correct build command I posted earlier.
If it's not worth still trying hid-nx, am I out of luck with this controller? I'm confused as to why I saw other people online on Reddit and such say that it worked with Retropie
Don't have one so I cannot advise here. Maybe try removing
hid-nintendo
and see if it works on an OOB RetroPie install ? -
@mitu Looking at this, it seems the author did some work so it could be installed on older kernels? The other person in the conversation got the module to install on RPi4, but they only tested it with a Pro controller.
https://github.com/emilyst/hid-nx-dkms/issues/1
I tried the installation, using your fixed install command, and it appeared to install correctly - no error messages.
However, the controller is still just "paired", but I can't get it to "connect". I feel like we might be close... or maybe it's just not going to work =(
-
Update for anyone who is curious, I ended up buying an "8BitDo Adapter 2". After updating the adapter's firmware using 8BitDo's firmware updater, the adapter makes it pretty easy to connect a Nintendo Switch SNES controller to a Retropie.
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.