Switch Pro Controller
-
@Fran008 Mine seems to work fine after copying the above to Pro Controller.cfg not retroarch.cfg. What's the problem you are having?
-
@Fran008 Actually you have your buttons swapped. B was A, X was Y etc... It should be mapped like this:
input_device = "Pro Controller"
input_driver = "udev"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"
input_l3_btn = "10"
input_r_x_minus_axis = "-2"
input_r_x_plus_axis = "+2"
input_l_btn = "4"
input_load_state_btn = "4"
input_start_btn = "9"
input_exit_emulator_btn = "9"
input_up_btn = "h0up"
input_a_btn = "1"
input_b_btn = "0"
input_reset_btn = "0"
input_down_btn = "h0down"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_btn = "5"
input_save_state_btn = "5"
input_r2_btn = "7"
input_r3_btn = "11"
input_right_btn = "h0right"
input_state_slot_increase_btn = "h0right"
input_x_btn = "3"
input_menu_toggle_btn = "3"
input_select_btn = "8"
input_enable_hotkey_btn = "6"
input_l_x_minus_axis = "-0"
input_l_x_plus_axis = "+0"
input_y_btn = "2"
input_left_btn = "h0left"
input_state_slot_decrease_btn = "h0left"
input_l2_btn = "6" -
@Dominus The problem comes when you use the analogue stick with games such Mario 64. It responds to the direction, but not the way it should: instead of behaving like an analogue button running, Mario walks slowly.
-
@Fran008 Oh I see. I haven't tried any of the n64 games myself with it yet.
-
Thanks for the mapping and surely enough Mario 64 will not run forward but rather just walk slowly.
I'm going to follow this:
https://github.com/RetroPie/RetroPie-Setup/wiki/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv#2c-personalizing-your-controllers-id-nameIt looks like we may need to use the xboxdrv and modify it rather then simply using the pro controller cfg.
-
@li2099 Sorry for the bump but wanted to follow up and see if you got your Pro Controller working with xboxdrv? I am following mruwek's guide here but am running into issues so wanted to see what you did on your end. https://www.reddit.com/r/RetroPie/comments/67lhv3/nintendo_switch_pro_controller_is_fully_working/
-
Yeah me too.... damn this is harder than doing anything I did in Linux before!
-
@dausone said in Switch Pro Controller:
@li2099 Sorry for the bump but wanted to follow up and see if you got your Pro Controller working with xboxdrv? I am following mruwek's guide here but am running into issues so wanted to see what you did on your end. https://www.reddit.com/r/RetroPie/comments/67lhv3/nintendo_switch_pro_controller_is_fully_working/
what type of issues?
-
I know I'm bumping an old thread, but I want to contribute. I found nothing concrete about Retropie and the Switch Pro Controller. So, with some poking and prodding, I discovered that information myself. Since the Switch Pro Controller is awesome, I thought I would share my findings so future people who are Googling will have an easier time than I did.
This is for Retropie 4.4
Bluetooth sync is pretty straightforward. Start your Retropie searching then press the sync button on the controller (next to where the charging cable plugs in) for two seconds. You'll know it's on by what I call the "Knight Rider" effect on the green lights on the front of the controller (facing you). Press up or something on the controller, because the Retropie is in search mode for a while, and the controller side of things may time out before the Retropie completes its search.
Then, once it's connected via Bluetooth, use your existing controller in Emulation Station to press Start, then Configure Input. Then, press a button on your Switch Pro Controller (which will show up as just "Pro Controller"), then go through the motions. The analog sticks may or may not give you some trouble here. If they do, forget about it. Just long press each one until the "not configured" choice comes up then move on.
Once that's complete, on your computer go to \retropie\configs\all\retroarch-joypads\pro controller.cfg and replace whatever's in there with the following...
input_device = "Pro Controller"
input_driver = "udev"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"
input_l3_btn = "10"
input_r_x_minus_axis = "-2"
input_r_x_plus_axis = "+2"
input_l_btn = "4"
input_load_state_btn = "4"
input_start_btn = "9"
input_exit_emulator_btn = "9"
input_up_btn = "h0up"
input_a_btn = "1"
input_b_btn = "0"
input_reset_btn = "0"
input_down_btn = "h0down"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_btn = "5"
input_save_state_btn = "5"
input_r2_btn = "7"
input_r3_btn = "11"
input_right_btn = "h0right"
input_state_slot_increase_btn = "h0right"
input_x_btn = "3"
input_menu_toggle_btn = "3"
input_select_btn = "8"
input_enable_hotkey_btn = "13"
input_l_x_minus_axis = "-0"
input_l_x_plus_axis = "+0"
input_y_btn = "2"
input_left_btn = "h0left"
input_state_slot_decrease_btn = "h0left"
input_l2_btn = "6"FYI I have the "hot" button as button 13, which is the circle in the square button close to the D-pad. That's just my personal preference. The Home key is button 12, if you wanna know.
Shut down your Retropie at this point. Unplug your "old" controller. Boot your Retropie back up. Then, once booted, long-pressing a button on the Switch Pro Controller will get you to the Emulation Station menu, then have fun!
That's it. Don't do anything else! This configuration even passes the Super Mario 64 test mentioned above. Disregard (like I wish I did) any craziness about pastebins or Xbox drivers or anything else. This is really quite simple. I'm typing this out because no one else seemed to (that I could find, anyway). And, as I said, I want to save someone else all the headaches I went through.
-
Please help. Firstly, I want to say thanks all for your contributions, specially @Amishgamer config, which works fine for my Pro Controller clone compatible (e.g. brand JFune).
BUT, It only works when connected by wire, but not on bluetooth. The controller is registered, trusted, paired and connected with buetooth ( everything seems fine in bluetoothctl), but retropie wont respond to it . It even says gamepad detected on EmulationStation home page, but no matter which button I click or hold, it won't answer.
Thanks everybody for your great work and help.
So, to recap: Bluetooth connection seems fine, and key mapping when wired too, but it wont work wireless.
Thanks everybody for your great work and help.
S -
I have the JFune Pro Controller and I gave up about connecting to RetroPie via bluetooth. I think these cheap controllers don't have the same chip that comes with the expensive ones (i. e. official Nintendo Pro Controller).
I have purchased another cheap solution: JYS NS 130, plus Wii U QUMOX Controller
This pack works like a charm.
-
I have applied this solution with my Official Nintento Pro Controller and the issue with running Mario is solved! Now my analogue stick works fine in all directions:
-
I have been trying to setup my nintendo Pro Controller via the commands from Amishgamer and nothing seems to be working. Ive just installed RetroPoe 4.5.1 and I think the folder etc are all completely different as the only folder I can find on my device that is similar to the ones mentioned is RetroPie. I can find a retroarch.rp file though nothing I do opens even a .txt file.
If I type ./name.txt it'll simply say permission denied. If I write sudo ./name.txt ill just say 'command not found'
Does anyone know what I can do to properly setup the controllers? I am new to Lunix so maybe im missing something. Maybe I need to login first somehow to gain admin access? Though I am still having the problem of even finding the pro controller.cfg file. I have paired the controllers with the pi and the controllers seem to work fine except for the two joysticks? I am surprised RetroPie doesn't have preinstalled drivers for the Pro Controller as its been around for quite a while now.
Thanks in advance :)
-
@Steven2986 said in Switch Pro Controller:
If I type ./name.txt it'll simply say permission denied. If I write sudo ./name.txt ill just say 'command not found'
Why are you trying to run/execute a
.txt
file ? It's not a program to be executed.Does anyone know what I can do to properly setup the controllers? I am new to Lunix so maybe im missing something. Maybe I need to login first somehow to gain admin access? Though I am still having the problem of even finding the pro controller.cfg file.
It should be in
\\retropie\configs\all\retroarch-joypads
, if you're accessing your RetroPie via file shares from the network.I have paired the controllers with the pi and the controllers seem to work fine except for the two joysticks? I am surprised RetroPie doesn't have preinstalled drivers for the Pro Controller as its been around for quite a while now.
You say you managed to pair it and controllers work fine - did you configure the joysticks in EmulationStation ? There's no driver to install, it should come included with the Linux kernel and its modules. Besides, I don't think Nintendo has such driver for Linux ?
When opening a support topic, you should add the info about your system, as detailed in https://retropie.org.uk/forum/topic/3/read-this-first, it will make it easier to diagnose your problem.
-
I got the Switch Pro Controller working beautifully via the upcoming
hid-nintendo
driver. Unfortunately that's not in RetroPie now and won't be for some time, but it's pretty easy to get. I wrote it up on this thread -
@Amishgamer Apologies as I am new to RetroPie - a Pi 4 is en route to my house as I type this...
If you use Bluetooth with the Switch Pro as you describe, does this require any controller software beyond what is built into RetroArch and Emulation Station?
I purchased a cheap wired SNES-style controller from Retro Flag, but am still looking for a wireless option if possible. While 8bitDo is highly rated, firmware upgrades require you to run their utility, which isn't available in Homebrew Cask.
If I wanted to change to a different model at some point, this is a dealbreaker as uninstalls on macOS (outside of the App Store or Homebrew) are kind of a mess.
Any help is appreciated.
-
The Switch Pro controller should work without drivers on RetroPie, but it might need a bit of calibration. There is a dedicated Nintendo driver dkms-hid-nintendo that might solve the calibration issues and improve compatibility, but you'll have to install it manually. If it works, let us know.
I purchased a cheap wired SNES-style controller from Retro Flag, but am still looking for a wireless option if possible. While 8bitDo is highly rated, firmware upgrades require you to run their utility, which isn't available in Homebrew Cask.
You can apply firmware updates from your RetroPie (or any other Linux system) - using https://github.com/fwupd/8bitdo-firmware.
-
I just tried setting up the pro controllers on my pi. It connects fine via bluetooth, but it does not take any input, meaning that any button I press does nothing on the retropies interface. No navigation, no input configuration, nothing.
It is my first post, so I'll follow the rules:
- It is a fresh install of the latest version of retropie
- I updated all the packages, etc. via the emulation stations interface
- I strived through the forum and docs for answers and followed these steps:
- The installation went well. Connecting works fine, too. After connnecting, the retropie only accepts
ZR + ZL
on my pro controller (which is correct), although it should in theory be possible to connect it as joycon ( viar+zr
, right?) - I also have an official pi loading cable, so power supply ain't the issue either
- using the keyboard in the retropie menu works like a charm and out of the box
I also tried to find the configuration files for hte pro controller, but can't find them in the filetree when connected via ssh. Where can I find those files? maybe it will work when inputing the config by hand?
EDIT
I I found the configuration in
opt/retropie/configs/all/retroarch/autoconfig
and used the provided config - does still not work -
@domi I don't have a Switch Pro Controller to test, so I can't confirm if the triggers' combination have the desired effect before pairing. The driver referenced in the docs (from https://github.com/nicman23/dkms-hid-nintendo) is reported to work well, so I don't know why it's not working for you. Did you also install the joycon support (from https://github.com/DanielOgorchock/joycond.git) ?
I I found the configuration in
/opt/retropie/configs/all/retroarch/autoconfig
and used the provided config - does still not workWhat's in the configuration file that you found there ? Can you post the
.cfg
file's contents here, in the topic ? -
I have two Switch Pro Controllers paired with my 3B+ running version 4.7.1 and I did not have to install any drivers to get them to connect.
The only thing I did was pair them over bluetooth and use another controller to start the input configuration process. After that I held a button on the Pro Controller and mapped the buttons out. I've never had to hold combinations of the shoulder buttons to get them to work. I just press the "A" button a couple of times to "wake up" the controller and it connects to the Pi.
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.