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

    RetroArch isn't mapping the GamePad buttons correctly - RetroPie 4.4

    Scheduled Pinned Locked Moved Help and Support
    retroarchgamepadretropie 4.4
    29 Posts 3 Posters 3.0k 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.
    • mituM
      mitu Global Moderator
      last edited by mitu

      Based on the evtest output, it looks like the device is registering a keyboard, mouse and joystick inputs. Looks like an Android gamepad.
      Since the auto-configuration doesn't work, I'd take the manual configuration route and create the mappings manually in the .cfg file (see https://retropie.org.uk/docs/RetroArch-Configuration/#autoconfigurations). Your configuration file is in /home/pi/.config/retroarch/autoconfig/Gamepad.cfg - you should add there the keycodes as reported by jstest when testing your controller.

      EDIT: or maybe the gamepad has a 'mode' switch that turns on a PC compatible connection mode - you could try to use that.

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

        I'll give that a try but I'd prefer to disable it on the system itself.

        Fortunately I have a backup image of my last working version of RetroPie (3.8 I believe) and since I rarely logged into it interactively I have a fairly small bash history to look through. It seems I changed the driver for this device in the past to sd12. That doesn't seem to do anything now though.

        Can you tell me if that's still a valid driver for devices? Maybe there's another package I can try to install.

        Also I found this post (second answer) which describes a solution that involves modifying X11 configs: https://askubuntu.com/questions/632026/how-can-i-stop-my-controller-from-moving-my-mouse

        Does the X11 that's shipped with Debian (rasberian) Stretch still use these config files?

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

          @ANamelessDrake said in RetroArch isn't mapping the GamePad buttons correctly - RetroPie 4.4:

          Does the X11 that's shipped with Debian (rasberian) Stretch still use these config files?

          RetroPie doesn't use Raspbian, so that solution doesn't apply. Other input drivers available are hid and sdl2 ( I think default is udev, which is what you're using right now).

          1 Reply Last reply Reply Quote 0
          • A
            ANamelessDrake @mitu
            last edited by

            @mitu I just tried to manually configure the inputs (/home/pi/.config/retroarch/autoconfig/Gamepad.cfg) but they seem to be correct.

            Any other ideas?

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

              @ANamelessDrake One last idea - use Xboxdrv to simulate an Xbox compatible driver and 'hide' the original device.

              A 1 Reply Last reply Reply Quote 0
              • A
                ANamelessDrake @mitu
                last edited by

                @mitu said in RetroArch isn't mapping the GamePad buttons correctly - RetroPie 4.4:

                @ANamelessDrake One last idea - use Xboxdrv to simulate an Xbox compatible driver and 'hide' the original device.

                Okay I'll give that a shot and report back if that did the trick or not. One quick note is the documentation seems to be a bit dated. Installing the driver via the EmulationStation GUI wasn't possiable (at least it wasn't in the menu option location documented) so I ended up installing it via the command line.

                sudo apt-get install xboxdrv

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

                  @ANamelessDrake The xboxdrv driver can be installed from the RetroPie setup packages - it's in the drivers section.

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

                    I'm very sad to report, after trying tons of different things, I simply could not get this controller to work in RetroPi 4.4.

                    Unless anyone has any other ideas I'm going to restore my 3.8 image. :-(

                    Either way I do appreciate all the help!

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

                      I'm curious how does this work on the 3.8 image - what's the input_driver used in RetroArch and if there are any other configurations you applied to make the controller work.

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

                        Currently the driver used in RetroArch is set to udev. Changing the driver doesn't seem to change the behaviour of the controller.

                        Previously it was set to sdl2 which seemed to do the trick.

                        I built the previous version quite some time ago so sadly I don't remember everything I did but like I said previously the bash history on the box was fairly small. It seems like all I had to do to get it work was create a udev rule (which I had to do again here in 4.4) and change the driver over to sdl2.

                        Since 3.8, it seems a major OS update was required. I suspect that Debian 9.8 (the current version of Debian) has made changes in how it handles hardware via udev since Debian 8.0 (the previous version used) .

                        I'm an automation specialist with limited experience writing hardware drivers so unfortunately I'm kinda at a loss as to where to go from here.

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

                          I just checked my other fourm posts I made here and it seems like I had this same issue previously but changing the driver did the trick.

                          See the original post about this topic I made back in 2016: https://retropie.org.uk/forum/topic/2097/controller-does-not-work-in-games/7

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

                            @ANamelessDrake thanks for coming back to this. I don't think that the udev or OS changes are all that important, but I think the SDL library (and the sdl2 input driver as a consequence) has suffered some changes.
                            Your gamepad is an IPEGA-9028, right ?

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

                              I'm not 100% sure what the model is and udevadm doesn't report a model . It's some no-name gamepad I bought ages ago. It was cheap and has worked great up until this attempted upgrade.

                              Here is the Amazon link that I found searching through my old orders:
                              https://www.amazon.com/gp/product/B0104BDNW6/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

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

                                OK, just one last check - you modified both the retroarch.cfg in /opt/retropie/configs/all/retroarch.cfg and the gamepad.cfg file in /opt/retropie/configs/all/retroarch-joypads and put input_driver=sdl2 ?

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  ANamelessDrake @mitu
                                  last edited by

                                  @mitu said in RetroArch isn't mapping the GamePad buttons correctly - RetroPie 4.4:

                                  OK, just one last check - you modified both the retroarch.cfg in /opt/retropie/configs/all/retroarch.cfg and the gamepad.cfg file in /opt/retropie/configs/all/retroarch-joypads and put input_driver=sdl2 ?

                                  Awesome that seemed to fix the problem!!! :-)

                                  It seems that I missed input_driver in retroarch.cfg. Previously I only changed input_joypad_driver

                                  So for others who might be having the same problem.

                                  Make the following changes:
                                  /opt/retropie/configs/all/retroarch.cfg

                                  input_driver="sdl2"
                                  input_joypad_driver = "sdl2"
                                  

                                  /opt/retropie/configs/all/retroarch-joypads/Gamepad.cfg

                                  input_driver = "sdl2"
                                  

                                  Thanks again for all the help!

                                  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.