• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
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

xbox wireless controller - xbox button not working

Scheduled Pinned Locked Moved Help and Support
xpadneo
21 Posts 3 Posters 2.5k 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.
  • M
    mitu Global Moderator @fnpanic
    last edited by mitu 13 Nov 2023, 09:39

    @fnpanic said in xbox wireless controller - xbox button not working:

    Maybe /dev/input/event5 does not send the button press? Maybe a simple udev rule to use js0?

    To me it seems it's the same issue as in the topic you linked: the button is emitting a Keyboard key (F12) and not a button. From the xpadneo driver page:

    Xbox Series X|S Wireless Controller
    Full support for the Xbox Series X|S controller is present including the share button. This is currently statically mapped to keyboard event KEY_F12 to take screenshots with Steam. It will be configurable in the future. This controller uses emulated profile switching support (see below).

    Try adding this retroarch.cfg:

    input_enable_hotkey = "f12"
    input_osk_toggle = null
    

    and see if the Xbox button works in RetroArch as a hotkey. You should update the RetroPie-Setup and RetroArch (in this order) first.

    1 Reply Last reply Reply Quote 0
    • F
      fnpanic
      last edited by 13 Nov 2023, 10:29

      Thanks for the reply.

      I added

      input_enable_hotkey = "f12"
      input_osk_toggle = nul
      

      to the end /opt/retropie/emulators/retroarch/retroarch.cfg but it did not have any effect. I tested it with neo geo.

      Is this the right place?

      M 1 Reply Last reply 13 Nov 2023, 10:31 Reply Quote 0
      • M
        mitu Global Moderator @fnpanic
        last edited by 13 Nov 2023, 10:31

        @fnpanic said in xbox wireless controller - xbox button not working:

        to the end /opt/retropie/emulators/retroarch/retroarch.cfg but it did not have any effect. I tested it with neo geo.

        Yes, that's the right place. If you already have a hotkey_enable_btn in the .cfg file, remove it. If that doesn't work, then I don't have anymore ideas.

        1 Reply Last reply Reply Quote 0
        • F
          fnpanic
          last edited by fnpanic 13 Nov 2023, 11:21

          i removed the hotkey_enable_btn from /opt/retropie/configs/all/retroarch/autoconfig/Xbox Wireless Controller.cfg but it did not help.

          i also greped for hotkey_enable_btn in /opt/retropie/emulators/retroarch

          Maybe it is mapped somewhere else?

          Could i do a double mapping of maybe select with a long press or something?

          I saw this in the config

          # Adds a delay in frames before the assigned hotkey blocks input. Useful if the the
          # hotkey input is mapped to another action.
          # input_hotkey_block_delay = "5"

          Can i just map hotkey to select and press it longer?

          EDIT:

          When i do a grep -v "#" retroarch.cfg everything is default and the only two lines which are not commented out are the ones i added.

          I also upgraded the xbox controller to latest firmware.

          M 1 Reply Last reply 13 Nov 2023, 17:16 Reply Quote 0
          • M
            mitu Global Moderator @fnpanic
            last edited by 13 Nov 2023, 17:16

            @fnpanic said in xbox wireless controller - xbox button not working:

            Maybe it is mapped somewhere else?

            No, these are the places where - by default - it would be.

            Could i do a double mapping of maybe select with a long press or something?

            Yes, you already did this, with Select.

            I saw this in the config

            # Adds a delay in frames before the assigned hotkey blocks input. Useful if the the
            # hotkey input is mapped to another action.
            # input_hotkey_block_delay = "5"

            Can i just map hotkey to select and press it longer?

            Yes, in fact EmulationStation offers this option if you don't select any hotkey enable button. Lots of users without a dedicated button use it this way and it works fine.

            I'm confused as how ES detects the button, but the generated .cfg doesn't contain the proper hotkey_enable_btn. You're choosing the Xbox/Share button as 'Hokey Enable' in the mapping dialog and it's correctly read (i.e. Button 8) by EmulationStation ?

            1 Reply Last reply Reply Quote 0
            • F
              fnpanic
              last edited by fnpanic 13 Nov 2023, 20:44

              I think there is a misunderstanding from my side. The Xbox button is not the share button according to the docs.

              If you have the latest Xbox Wireless Controller, such as the one included with Xbox Series X|S, you’ll notice an additional button nested between the View button  and the Menu button . That’s the Share button .
              

              Source: https://support.xbox.com/en-US/help/hardware-network/accessories/controller-share-button#:~:text=If you have the latest,That's the Share button .

              Look at this picture:

              https://assets.mmsrg.com/isr/166325/c1/-/ASSET_MMS_77465278?x=480&y=334&format=jpg&quality=80&sp=yes&strip=yes&trim&ex=480&ey=334&align=center&resizesource&unsharp=1.5x1+0.7+0.02&cox=0&coy=0&cdx=480&cdy=334

              I mapped the Xbox button which is proper mapped by es to button 8 but does not work in retroarch for some reason. I did not test the share button set to f12. I will do this tomorrow.

              Mapping select to hotkey works so far pretty good.

              I will report back and if it works we should put this somewhere in the docs or make it default. I can submit a PR if needed.

              quick update:

              i tested with the share button but does not work. I now set the select button as hotkey and this works. For me the two buttons do not work in retroarch.

              M 1 Reply Last reply 14 Nov 2023, 08:26 Reply Quote 0
              • M
                mitu Global Moderator @fnpanic
                last edited by 14 Nov 2023, 08:26

                @fnpanic said in xbox wireless controller - xbox button not working:

                i tested with the share button but does not work. I now set the select button as hotkey and this works. For me the two buttons do not work in retroarch.

                Can you post the .cfg file produced by EmulationStation when you select the Xbox button ?

                1 Reply Last reply Reply Quote 0
                • F
                  fnpanic
                  last edited by 14 Nov 2023, 08:39

                  you mean this one?

                  /opt/retropie/configs/all/retroarch/autoconfig/Xbox\ Wireless\ Controller.cfg

                  M 1 Reply Last reply 14 Nov 2023, 08:39 Reply Quote 0
                  • M
                    mitu Global Moderator @fnpanic
                    last edited by mitu 14 Nov 2023, 08:39

                    @fnpanic Yes.
                    EDIT: in RetroArch's joypad config repository, the button (8) shows up, so I'm thinking it should be detected (see here). Is your controller a genuine MS XBox controller or a clone ?

                    1 Reply Last reply Reply Quote 0
                    • F
                      fnpanic
                      last edited by fnpanic 14 Nov 2023, 08:56

                      It is a genuine XBox wireless controller for xbox series X. I updated to the latest firmware.

                      Here is the config generated by es:

                      input_device = "Xbox Wireless Controller"
                      input_driver = "udev"
                      input_enable_hotkey_btn = "8"
                      input_r3_btn = "10"
                      input_r_y_minus_axis = "-4"
                      input_r_y_minus_axis_label = "Right Analog Y-"
                      input_l_btn = "4"
                      input_l_btn_label = "LB"
                      input_load_state_btn = "4"
                      input_r_y_plus_axis = "+4"
                      input_r_y_plus_axis_label = "Right Analog Y+"
                      input_up_btn = "h0up"
                      input_up_btn_label = "D-Pad Up"
                      input_left_btn = "h0left"
                      input_left_btn_label = "D-Pad Left"
                      input_state_slot_decrease_btn = "h0left"
                      input_select_btn = "7"
                      input_r2_axis = "+5"
                      input_r2_axis_label = "RT"
                      input_r_x_minus_axis = "-3"
                      input_r_x_minus_axis_label = "Right Analog X-"
                      input_l_y_plus_axis = "+1"
                      input_l_y_plus_axis_label = "Left Analog Y+"
                      input_l_x_plus_axis = "+0"
                      input_l_x_plus_axis_label = "Left Analog X+"
                      input_right_btn = "h0right"
                      input_right_btn_label = "D-Pad Right"
                      input_state_slot_increase_btn = "h0right"
                      input_l2_axis = "+2"
                      input_l2_axis_label = "LT"
                      input_l_x_minus_axis = "-0"
                      input_l_x_minus_axis_label = "Left Analog X-"
                      input_r_x_plus_axis = "+3"
                      input_r_x_plus_axis_label = "Right Analog X+"
                      input_l3_btn = "9"
                      input_r_btn = "5"
                      input_r_btn_label = "RB"
                      input_save_state_btn = "5"
                      input_l_y_minus_axis = "-1"
                      input_l_y_minus_axis_label = "Left Analog Y-"
                      input_y_btn = "2"
                      input_y_btn_label = "X"
                      input_x_btn = "3"
                      input_x_btn_label = "Y"
                      input_menu_toggle_btn = "3"
                      input_down_btn = "h0down"
                      input_down_btn_label = "D-Pad Down"
                      input_start_btn = "6"
                      input_exit_emulator_btn = "6"
                      input_b_btn = "0"
                      input_b_btn_label = "A"
                      input_reset_btn = "0"
                      input_a_btn = "1"
                      input_a_btn_label = "B"
                      
                      M 1 Reply Last reply 14 Nov 2023, 09:43 Reply Quote 0
                      • M
                        mitu Global Moderator @fnpanic
                        last edited by mitu 14 Nov 2023, 09:43

                        ..
                        input_enable_hotkey_btn = "8"
                        ..

                        OK, so the hotkey enable button is saved correctly, just like in the profile that RetroArch has online. I don't understand why it doesn't work in-game, it's correctly configured in the .cfg file.

                        1 Reply Last reply Reply Quote 0
                        • F
                          fnpanic
                          last edited by 14 Nov 2023, 10:00

                          Me too. Is there a debug mode to see what is loaded and what is pressed?

                          M 1 Reply Last reply 14 Nov 2023, 16:23 Reply Quote 0
                          • F
                            fnpanic
                            last edited by 14 Nov 2023, 11:53

                            I would guess that the vendor is and the product is do not match any udev rule so only the buttons which are common on all gamepads work.

                            1 Reply Last reply Reply Quote 0
                            • M
                              mitu Global Moderator @fnpanic
                              last edited by mitu 14 Nov 2023, 16:23

                              @fnpanic said in xbox wireless controller - xbox button not working:

                              Me too. Is there a debug mode to see what is loaded and what is pressed?

                              You can add libretro_log_level = 0 to retroarch.cfg and run with verbose logging, but I don't know if there's more debug info shown for the input system in RetroArch.

                              I would guess that the vendor is and the product is do not match any udev rule so only the buttons which are common on all gamepads work.

                              I don't think udev and Prod/Vendor ID have an influence here. RetroArch loads the .cfg profile based on device name and the Product/Vendor IDs are optional - though you're still running an older version of RetroPie because recent versions add the vend/prod IDs to the .cfg file.

                              1 Reply Last reply Reply Quote 0
                              • W
                                windg
                                last edited by 14 Nov 2023, 16:48

                                Are you sure you have a genuine Xbox controller ?

                                My English isn't at a good level.

                                1 Reply Last reply Reply Quote 0
                                • F
                                  fnpanic
                                  last edited by fnpanic 14 Nov 2023, 17:20

                                  100% sure. I bought it directly form Amazon (not marketplace) and the official firmware update tool worked also.

                                  The controller works perfectly with es and Linux. Only libretro seems to ignore the none standard button (xbox).

                                  1 Reply Last reply Reply Quote 0
                                  21 out of 21
                                  • First post
                                    21/21
                                    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.

                                    This community forum collects and processes your personal information.
                                    consent.not_received