• 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

XInput Controllers Not Working Correctly in RetroArch

Scheduled Pinned Locked Moved Help and Support
xinputlogitech f310xpadretroarch
10 Posts 3 Posters 7.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.
  • M
    MajorDangerNine
    last edited by MajorDangerNine 25 Jun 2018, 21:17

    Pi Model or other hardware: Raspberry Pi 3B
    Power Supply used: Official Raspberry Pi Universal Power Supply
    RetroPie Version Used: 4.4
    Built From: Pre-made SD Image on RetroPie website.
    USB Devices connected: Logitech F310 (In XInput Mode)
    Controller used: Logitech F310 (In XInput Mode)
    Log found in /dev/shm/runcommand.log: https://pastebin.com/ZrYtDL04
    Emulator: All RetroArch Libretro Emulators


    First of all, I believe the issue is related to my previous topic below since it was an Xpad issue.

    https://retropie.org.uk/forum/topic/18318/solved-error-updating-driver-package-xpad-xpad-patch-retropie-diff-failed-to-apply

    I apologize if creating this new topic wasn't the correct thing to do, but it just seemed like I should make a new topic since that was related to the Xpad driver having an error when attempting to update, which is no longer the case.


    Now then, after updating RetroPie successfully, I remapped my Logitech F310 (In XInput Mode) to fix controls completely in EmulationStation, however, when attempting to play any game on any system with any RetroArch Libretro emulator, controls do not work properly.

    At first, when a game is launched, no controls work whatsoever. If I press buttons numerous times on the Logitech F310 (In XInput Mode), the controls will eventually respond. If I go into the RGUI, then I can't navigate or exit from the RGUI.

    I could easily circumvent this issue by switching my Logitech F310 to DirectInput Mode (I've already configured it to properly exit the emulators), but that's just ignoring what I believe to be a serious RetroPie issue that I felt needed to be reported.

    Thank you for your time.

    SBCGaming | Unofficial RetroPie Discord

    1 Reply Last reply Reply Quote 0
    • M
      mitu Global Moderator
      last edited by mitu 26 Jun 2018, 03:17

      Well, the docs recommend using the XInput mode, but anyway - can you try switching the input_method in the controller .cfg file from udev to sdl2 and see if it makes a difference ? The file should be in /opt/retropie/configs/all/retroarch-joypads/ and named after your controller.

      M 1 Reply Last reply 26 Jun 2018, 05:51 Reply Quote 0
      • M
        MajorDangerNine @mitu
        last edited by 26 Jun 2018, 05:51

        @mitu Changing udev to sdl2 in /opt/retropie/configs/all/retroarch-joypads/ (True Path:/opt/retropie/configs/all/retroarch/autoconfig) changed nothing. Restarted the Raspberry Pi to make sure the change was completely recognized.

        Here is my Logitech Gamepad F310.cfg to make sure I edited the correct file.

        input_device = "Logitech Gamepad F310"
        input_driver = "sdl2"
        input_r_y_plus_axis = "+4"
        input_r_x_minus_axis = "-3"
        input_l_btn = "4"
        input_load_state_btn = "4"
        input_start_btn = "7"
        input_exit_emulator_btn = "7"
        input_r_y_minus_axis = "-4"
        input_down_btn = "h0down"
        input_l_x_plus_axis = "+0"
        input_r_btn = "5"
        input_save_state_btn = "5"
        input_right_btn = "h0right"
        input_state_slot_increase_btn = "h0right"
        input_select_btn = "6"
        input_left_btn = "h0left"
        input_state_slot_decrease_btn = "h0left"
        input_l2_axis = "-2"
        input_l3_btn = "9"
        input_l_y_minus_axis = "-1"
        input_up_btn = "h0up"
        input_a_btn = "1"
        input_b_btn = "0"
        input_reset_btn = "0"
        input_enable_hotkey_btn = "8"
        input_l_y_plus_axis = "+1"
        input_r2_axis = "-5"
        input_r3_btn = "10"
        input_x_btn = "3"
        input_menu_toggle_btn = "3"
        input_l_x_minus_axis = "-0"
        input_y_btn = "2"
        input_r_x_plus_axis = "+3"
        
        

        Also, here is the new log where I believe nothing has changed (RetroArch continues to use udev).

        Log found in /dev/shm/runcommand.log: https://pastebin.com/J4TUy2i4


        After doing as I was told, I also tried changing udev to sdl2 in retroarch.cfg, which changed the udev mentions in the runcommand.log to sdl2 and caused all controller input to no longer respond: I promptly undid the change.

        Current retroarch.cfg: https://pastebin.com/4GBfFzuz

        SBCGaming | Unofficial RetroPie Discord

        M 1 Reply Last reply 26 Jun 2018, 05:54 Reply Quote 0
        • M
          mitu Global Moderator @MajorDangerNine
          last edited by mitu 26 Jun 2018, 05:54

          @eckaji From the logfile it seems it's still using the udev driver to detect and configure the input

          [...]
          [INFO] [autoconf]: selected configuration: /home/pi/.config/retroarch/autoconfig/Logitech Gamepad F310.cfg
          [INFO] [Joypad]: Found joypad driver: "udev".
          [...]
          
          M 1 Reply Last reply 26 Jun 2018, 15:42 Reply Quote 0
          • M
            MajorDangerNine @mitu
            last edited by MajorDangerNine 26 Jun 2018, 15:42

            @mitu Yeah, I could only get that to change by altering the udev in retroarch.cfg to sdl2. Here is the runcommand.log after doing just that.

            Log found in /dev/shm/runcommand.log: https://pastebin.com/akyBxRKM

            Changing the Logitech Gamepad F310.cfg entry's udev to sdl2 still seems to have done nothing.

            SBCGaming | Unofficial RetroPie Discord

            M 1 Reply Last reply 26 Jun 2018, 16:16 Reply Quote 0
            • M
              mitu Global Moderator @MajorDangerNine
              last edited by 26 Jun 2018, 16:16

              @eckaji One thing I noticed in the new log file is that the device name is now reported as Logitech F310 Gamepad (XInput), while in previous logs was Logitech F310 Gamepad. In the new run, RA cannot find the .cfg file, while in the previous runs it could.
              Did you configure the gamepad in ES in XInput or DInput mode ?

              M 1 Reply Last reply 27 Jun 2018, 03:30 Reply Quote 0
              • S
                stoney66
                last edited by 26 Jun 2018, 17:41

                I have the same controller, I setup in ES when in Xinput mode and it will create a different .cfg file than when it's in Dinput mode.

                1 Reply Last reply Reply Quote 0
                • M
                  MajorDangerNine @mitu
                  last edited by 27 Jun 2018, 03:30

                  @mitu As @stoney66 said, if you switch the mode, the controller is setup as if it is an entirely different controller.

                  Logitech Gamepad F310.cfg is for the XInput Mode, while Logitech Logitech Dual Action is for DirectInput Mode.

                  Anyway, I found something out through some tinkering. If the retroarch.cfg in /opt/retropie/configs/all is deleted, the controls work perfectly fine in all RetroArch Libretro emulators. Of course, I'm sure having done that I've introduced all manners of problems (such as the RGUI being changed to the XMB RetroArch menu style), but I have a backup I can use to reverse all my tinkering.

                  So yeah, it would seem something in the retroarch.cfg in /opt/retropie/configs/all is causing issues.

                  /opt/retropie/configs/all/retroarch.cfg: https://pastebin.com/4GBfFzuz


                  Here is another runcommand.log, but the verbose part seems to be broken after my tinkering.

                  Parameters: 
                  Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg "/home/pi/RetroPie/roms/nes/Super Mario Bros. (World).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
                  [INFO] RetroArch 1.7.3 (Git b2ceb50)
                  [INFO] Redirecting save file to "/home/pi/RetroPie/roms/nes/Super Mario Bros. (World).srm".
                  [INFO] Redirecting savestate to "/home/pi/RetroPie/roms/nes/Super Mario Bros. (World).state".
                  [INFO] === Build =======================================
                  Capabilities: NEON VFPv3 VFPv4 
                  Built: May 14 2018
                  [INFO] Version: 1.7.3
                  [INFO] Git: b2ceb50
                  [INFO] =================================================
                  [INFO] Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so"
                  [INFO] [overrides] core-specific overrides found at /opt/retropie/configs/nes/FCEUmm/FCEUmm.cfg.
                  [INFO] [overrides] no game-specific overrides found at /opt/retropie/configs/nes/FCEUmm/Super Mario Bros. (World).cfg.
                  [INFO] Config: appending config "/opt/retropie/configs/nes/FCEUmm/FCEUmm.cfg"
                  

                  Also, here is what RetroArch did to my retroarch.cfg in /opt/retropie/configs/nes, which is currently working control-wise on my Logitech F310 (In XInput Mode).

                  /opt/retropie/configs/nes/retroarch.cfg: https://pastebin.com/F5eK4nfc

                  SBCGaming | Unofficial RetroPie Discord

                  M 1 Reply Last reply 27 Jun 2018, 03:42 Reply Quote 0
                  • M
                    mitu Global Moderator @MajorDangerNine
                    last edited by mitu 27 Jun 2018, 03:42

                    @eckaji I think the NES system behavior is the result of deleting the main RA file. There's a retroarch.cfg.rp-dist that is the default one shipped with the package which can replace the one you removed.
                    However, most of it is just comments and has only a few RetroPie additions - such as using RGUI as the menu driver and disabling the online update for cores.

                    The only setting which might be related to the joypad is input_joypad_driver, which is by default udev. You can try re-adding back the file, then changing this to sdl2 and see if this fixes the mapping.

                    M 1 Reply Last reply 27 Jun 2018, 07:07 Reply Quote 0
                    • M
                      MajorDangerNine @mitu
                      last edited by MajorDangerNine 27 Jun 2018, 07:07

                      @mitu

                      The only setting which might be related to the joypad is input_joypad_driver, which is by default udev. You can try re-adding back the file, then changing this to sdl2 and see if this fixes the mapping.

                      Yeah, I tried that. Didn't change anything.


                      I've decided to just restore my RetroPie install from a backup and avoid the Xpad driver update for the time being. I was able to update everything else individually without issue.

                      Thank you for your time and I apologize for not seeing this through to end.

                      SBCGaming | Unofficial RetroPie Discord

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