RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Switch Pro Controller

    Scheduled Pinned Locked Moved Help and Support
    switchpro controller
    31 Posts 18 Posters 62.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Fran008 @Fran008
      last edited by Fran008

      Here is the mapping for the Pro Controller in retroarch.cfg:

      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 = "0"
      input_b_btn = "1"
      input_reset_btn = "1"
      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 = "2"
      input_menu_toggle_btn = "2"
      input_select_btn = "8"
      input_enable_hotkey_btn = "8"
      input_l_x_minus_axis = "-0"
      input_l_x_plus_axis = "+0"
      input_y_btn = "3"
      input_left_btn = "h0left"
      input_state_slot_decrease_btn = "h0left"
      input_l2_btn = "6"

      1 Reply Last reply Reply Quote 2
      • F
        Fran008
        last edited by Fran008

        Damn! After some more testing, there are two directions on the analogue sticks that behave like digital. These are the ones that the autoconfiguration in emulationstation didn't detect. Maybe Nintendo designed the Pro Controller with this restriction in mind. Or maybe we'll have to wait and install the latest Bluetooth and controller drivers...

        DominusD 2 Replies Last reply Reply Quote 0
        • DominusD
          Dominus @Fran008
          last edited by

          @Fran008 Mine seems to work fine after copying the above to Pro Controller.cfg not retroarch.cfg. What's the problem you are having?

          F 1 Reply Last reply Reply Quote 0
          • DominusD
            Dominus @Fran008
            last edited by

            @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"

            1 Reply Last reply Reply Quote 0
            • F
              Fran008 @Dominus
              last edited by

              @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.

              DominusD 1 Reply Last reply Reply Quote 0
              • DominusD
                Dominus @Fran008
                last edited by

                @Fran008 Oh I see. I haven't tried any of the n64 games myself with it yet.

                1 Reply Last reply Reply Quote 0
                • L
                  Li2099
                  last edited by

                  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-name

                  It looks like we may need to use the xboxdrv and modify it rather then simply using the pro controller cfg.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    dausone @Li2099
                    last edited by

                    @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/

                    fnkngrvF 1 Reply Last reply Reply Quote 1
                    • S
                      Solaris
                      last edited by

                      Yeah me too.... damn this is harder than doing anything I did in Linux before!

                      1 Reply Last reply Reply Quote 0
                      • fnkngrvF
                        fnkngrv @dausone
                        last edited by

                        @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?

                        1 Reply Last reply Reply Quote 0
                        • A
                          Amishgamer
                          last edited by Amishgamer

                          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.

                          C 1 Reply Last reply Reply Quote 1
                          • R
                            rey-moskito
                            last edited by rey-moskito

                            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

                            F 1 Reply Last reply Reply Quote 0
                            • F
                              Fran008 @rey-moskito
                              last edited by Fran008

                              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

                              https://tinyurl.com/y3mqzxgk

                              https://tinyurl.com/y4znj8na

                              This pack works like a charm.

                              1 Reply Last reply Reply Quote 0
                              • F
                                Fran008
                                last edited by

                                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:

                                https://retropie.org.uk/forum/topic/16503/how-to-connect-a-switch-pro-controller-with-analog-stick-without-xboxdrv

                                1 Reply Last reply Reply Quote 0
                                • S
                                  Steven2986
                                  last edited by

                                  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 :)

                                  mituM 1 Reply Last reply Reply Quote 0
                                  • mituM
                                    mitu Global Moderator @Steven2986
                                    last edited by mitu

                                    @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.

                                    1 Reply Last reply Reply Quote 0
                                    • W
                                      wmarler
                                      last edited by wmarler

                                      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

                                      1 Reply Last reply Reply Quote 1
                                      • C
                                        chris.finazzo @Amishgamer
                                        last edited by

                                        @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.

                                        mituM 1 Reply Last reply Reply Quote 0
                                        • mituM
                                          mitu Global Moderator @chris.finazzo
                                          last edited by

                                          @chris-finazzo

                                          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.

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            Domi @mitu
                                            last edited by Domi

                                            @mitu

                                            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:

                                            https://retropie.org.uk/forum/topic/3/read-this-first

                                            • 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:

                                            https://retropie.org.uk/docs/Nintendo-Switch-Controllers/

                                            • 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 ( via r+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

                                            mituM 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.