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

    Despair over controller ports constantly swapping

    Scheduled Pinned Locked Moved Help and Support
    controls remappcontrol setupretropieretroarch
    16 Posts 2 Posters 2.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.
    • S
      skykid
      last edited by

      Using: RPI 3B+
      Latest Raspian / All updated

      I've cloned my old Retropie setup for use on a different machine. I've connected an arcade panel using a Xinmotek PCB board, installed via command line, and it runs perfectly on both controllers independently... on SNES.

      And only on SNES.

      When I start any other emulator, NES, MD etc, the controller ports seem to switch and only player 2 will function. This leaves player 1 inoperable and therefore it's impossible to pull up the Retroarch GUI to attempt to make changes.

      I've attempted everything I can think of:

      Been into the configuration menu 100 times, made sure only Xinmotek controllers are set for 1 & 2, including default libretro config and per system. No change. I've made sure players 3 & 4 are unset. Does nothing.

      When a NES game boots it actually shows that only Xinmotek controllers 1 & 2 are active, but the problem persists.

      Something of note: This RPI image was previously configured with 2 Retroflag 6 button pads. If I plug in one of those pads into port 2 and have the Xinmotek in port 1, everything functions normally! But if it's unplugged when the NES emulator boots, it's impossible to get into the RGUI.

      With the Retroflag plugged in I pulled up the RGUI and checked everything under inputs and made sure only the Xinmotek 1 & 2 controls were in the right place. Saved all configurations. Exited. Unplug the retroflag controller and go back in: reverted back to the issue.

      I have no idea what to do to resolve this. Is there any way to go into some .cfg file to see what's going on? To delete the Retroflag pads manually? To make the Xinmotek the default 1 & 2 ports for NES etc?

      I really appreciate any help you might have, thank you!

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

        Are you sure you don't have any extra configuration/input remapping ?
        Please add the rest of the info asked in https://retropie.org.uk/forum/topic/3/read-this-first.

        S 1 Reply Last reply Reply Quote 0
        • S
          skykid @mitu
          last edited by skykid

          @mitu

          Pi Model or other hardware: B+
          Power Supply used: RPI PSU steady 5V 2A
          RetroPie Version Used: 4.5.19 / Raspbian 9.13 Stretch
          Built From: Pre made SD Image on RetroPie website, since fully set up with roms/emus and cloned from a previous machine
          USB Devices connected: Xinmotek arcade PCB
          Controller used: Xinmotek arcade PCB
          Error messages received: None
          Verbose log (if relevant):
          File with issue: None in particular
          Emulator: Retroarch - Every emulator EXCEPT SNES has the same issue
          Attachment of config files: I've uploaded my full NES and SNES config folders to We Transfer. Please grab them here: https://we.tl/t-MFawmENX6b

          As it's the same problem on all emus except SNES. If I can figure out NES it's likely I can solve all. So SNES is operating correctly, NES is not. Hopefully the config files can shed some light on it, but I can't figure it out.

          How to replicate the problem: Enter NES with Xinmotek controller plugged in to port 1. Port 1 becomes inactive and only Port 2 works, leaving no access to RGUI through hotkeys. Plug in a Retroflag 6 button pad into USB port 2 and everything functions normally and the Xinmotek works correctly across P1 and 2, but even after saving controllers correctly in RGUI using this method (and making sure device indexes are correctly set to Xinmotek #1 and #2) the issue instantly returns once the Retroflag controller is unplugged from Player 2 port.

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

            @skykid said in Despair over controller ports constantly swapping:

            RetroPie Version Used: 4.5.19 / Raspbian 9.13 Stretch

            That's no longer a supported OS, you should use a newer image and upgrade your system.

            As for your issue, looks like you've switched the device index or the P1 index around:
            SNES has:

            input_device_p1 = "0"
            input_libretro_device_p1 = "0"
            

            while NES has:

            input_device_p1 = "0"
            input_libretro_device_p1 = "1"
            

            I'd recommend to replace the retroarch.cfg with the stock RetroPie configs, which can be found in the same folder, and don't use 'Save Config on Exit' in RetroArch's menu.

            S 1 Reply Last reply Reply Quote 0
            • S
              skykid @mitu
              last edited by skykid

              @mitu

              Hello and thank you for your response! I'll try adjusting that config file asap.

              I never use Save config on Exit, I know that causes issues.

              I considered replacing the retroarch.cfg to stock, but won't that wipe my existing default settings?

              and regarding updating the OS, you mean RetroPie rather than Raspbian? If it can be safely updated from the configuration menu without breaking my current build I'm willing to give it a try. But I've built this current image up a lot and I'm worried about an update conflict.

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

                @skykid said in Despair over controller ports constantly swapping:

                I considered replacing the retroarch.cfg to stock, but won't that wipe my existing default settings?

                If there are your settings, then they're not default anymore. Replacing the file will apply the default RetroPie settings. If you know which specific configurations are not present in the default, you can re-add them afterwards (perhaps using the Configuration Editor).
                If in doubt, just rename the settings' file so you don't loose it.

                and regarding updating the OS, you mean RetroPie rather than Raspbian? If it can be safely updated from the configuration menu without breaking my current build I'm willing to give it a try. But I've built this current image up a lot and I'm worried about an update conflict.

                No, I mean Raspbian (which now is called Raspberry Pi OS). Updating the OS is not recommended - even by the Raspbian authors - so it's not something that can be done from the RetroPie menu.

                But I've built this current image up a lot and I'm worried about an update conflict.

                Your image is based on an unsupported OS. As the RetroPie update mentioned, it is not supported anymore, and while the RetroPie script doesn't purposely 'break' when using an old OS, no testing is performed on them so updating is something that might not work (now or in the future). Also, some packages/emulator which need newer dependencies and a recent OS might not install at all.

                If you wish to migrate to an newer version, you can backup your ROMs/BIOS/configs and restore them to a new installation (see backup & restore option 2).

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

                  @mitu

                  @mitu said in Despair over controller ports constantly swapping:

                  If you wish to migrate to an newer version, you can backup your ROMs/BIOS/configs and restore them to a new installation (see backup & restore option 2).

                  This seems like the safest option. I'd rather use a spare card and attempt it this way than do anything with the current build.

                  Weird thing is, I updated Raspbian via the command line just the other day and it said it was all up to date. I'm guessing that means it's as up-to-date as it can be for the current Retropie image.

                  ...I also had no idea I had missed so many updates!

                  For now, I'll focus on fixing this controller config mess and if that works I'll consider overhauling and transferring to a new image later. Will let you know the results.

                  mituM 1 Reply Last reply Reply Quote 0
                  • S
                    skykid @mitu
                    last edited by

                    @mitu

                    Well I tried to replicate the SNES cfg in the NES and it's made no difference. I tried the same thing with multiple emus and there's no change. As soon as I enter any emu except SNES it blocks the player 1 side if there's no Retroflag pad in port 2.

                    In the end I resorted to replacing the entire nes retroarch.cfg with the SNES one (making sure to change the path to "nes" in the first line) and that also did nothing.

                    My path to the configs is: /opt/retropie/configs/nes

                    Is this correct?

                    I'm really tearing my hair out over this. Appreciate your help!

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

                      @skykid said in Despair over controller ports constantly swapping:

                      Weird thing is, I updated Raspbian via the command line just the other day and it said it was all up to date. I'm guessing that means it's as up-to-date as it can be for the current Retropie image.

                      Updating will not upgrade to a newer OS. apt will not upgrade you automatically to a new OS release unless instructed to, it will get any updates are available for the current OS release.

                      In the end I resorted to replacing the entire nes retroarch.cfg with the SNES one (making sure to change the path to "nes" in the first line) and that also did nothing.

                      My path to the configs is: /opt/retropie/configs/nes

                      For nes, yes. Are you sure you don't have any other input remapping scripts ? Can you provide a verbose log from running the faulty system ?

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        skykid @mitu
                        last edited by

                        @mitu

                        Verbose log SNES:

                        Parameters: 
                        Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-snes9x2005/snes9x2005_libretro.so --config /opt/retropie/configs/snes/retroarch.cfg "/home/pi/RetroPie/roms/snes/3 Ninjas Kick Back (USA).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
                        [INFO] RetroArch 1.7.3 (Git b2ceb50)
                        [INFO] Redirecting save file to "/home/pi/RetroPie/roms/snes/3 Ninjas Kick Back (USA).srm".
                        [INFO] Redirecting savestate to "/home/pi/RetroPie/roms/snes/3 Ninjas Kick Back (USA).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-snes9x2005/snes9x2005_libretro.so"
                        [INFO] [overrides] core-specific overrides found at /home/pi/.config/retroarch/config/Snes9x 2005/Snes9x 2005.cfg.
                        [INFO] [overrides] no game-specific overrides found at /home/pi/.config/retroarch/config/Snes9x 2005/3 Ninjas Kick Back (USA).cfg.
                        [INFO] Config: appending config "/home/pi/.config/retroarch/config/Snes9x 2005/Snes9x 2005.cfg"
                        "3 NINJAS KICK BACK" [checksum ok] LoROM, 16Mbits, Type: ROM only, Mode: 20, TV: NTSC, S-RAM: 0KB, ROMId: A3NE Company: BD
                        

                        Verbose log NES:

                        Parameters: 
                        Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-nestopia/nestopia_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg "/home/pi/RetroPie/roms/nes/1942 (Japan, USA).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
                        [INFO] RetroArch 1.7.3 (Git b2ceb50)
                        [INFO] Redirecting save file to "/home/pi/RetroPie/roms/nes/1942 (Japan, USA).srm".
                        [INFO] Redirecting savestate to "/home/pi/RetroPie/roms/nes/1942 (Japan, USA).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-nestopia/nestopia_libretro.so"
                        [INFO] [overrides] core-specific overrides found at /home/pi/.config/retroarch/config/Nestopia/Nestopia.cfg.
                        [INFO] [overrides] no game-specific overrides found at /home/pi/.config/retroarch/config/Nestopia/1942 (Japan, USA).cfg.
                        [INFO] Config: appending config "/home/pi/.config/retroarch/config/Nestopia/Nestopia.cfg"
                        
                        

                        After inspecting these logs I went to the directory: core-specific overrides found at /home/pi/.config/retroarch/config/Nestopia/Nestopia.cfg.

                        And made sure the SNES and NES are the same.

                        I've gone back into global Retroarch GUI and remapped the buttons for P1 and P2 just to make sure they're correctly applied to the right controller index. I even tried swapping P1 and P2 here just to see if it was the SNES that was somehow reversed and the other consoles were fine.

                        I've tried changing the NES default emulator from the launch options.

                        Nothing has any effect, as soon as a game starts only the P2 controls work with no hotkey access. I need to reboot.

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

                          @skykid said in Despair over controller ports constantly swapping:

                          I've gone back into global Retroarch GUI and remapped the buttons for P1 and P2 just to make sure they're correctly applied to the right controller index. I even tried swapping P1 and P2 here just to see if it was the SNES that was somehow reversed and the other consoles were fine.

                          Don't do that, it's not necessary and could cause problems in other systems.

                          Nothing has any effect, as soon as a game starts only the P2 controls work with no hotkey access. I need to reboot.

                          Start with a clean image and see if you encounter the same issue. Just configure your controllers in EmulationStation (no other core/game overrides/reconfigurations) and then start a game.

                          S 2 Replies Last reply Reply Quote 0
                          • S
                            skykid @mitu
                            last edited by

                            @mitu said in Despair over controller ports constantly swapping:

                            Start with a clean image and see if you encounter the same issue. Just configure your controllers in EmulationStation (no other core/game overrides/reconfigurations) and then start a game.

                            I'm beginning to think this is the only way to proceed. I haven't updated the image in longer than I realised. So going through the process you mentioned before (copying over ROMs/BIOS etc) seems the best shot. I won't copy the configs though until I have fresh ones backed up, I think that might be what's buggering it all up.

                            1 Reply Last reply Reply Quote 0
                            • S
                              skykid @mitu
                              last edited by

                              @mitu

                              Very sorry to bother you sir. Just wanted to ask:

                              I've got a fresh card and flashed the latest Retropie from the site, it's done its first run and it's all set up.

                              I want to start the process of transferring only relevant content over, but I'm not sure how to proceed (I've only cloned cards before, I've never attempted to transfer selected content).

                              Can this be done with both SD cards inserted into the PC in a drag and drop fashion? Or does it need to be done via FTPing between cards?

                              And as an aside, the one thing I'm trying to avoid is the complication that started this thread (with the P1 side inoperable when the second controller port is empty), but I have a ton of bespoke things I set up that I want to retain, like custom theming and certain configurations. Can you give me an idea of what I want to move/overwrite and leave entirely untouched to avoid repeating the issue I had originally?

                              Thank you so much!

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

                                Can this be done with both SD cards inserted into the PC in a drag and drop fashion? Or does it need to be done via FTPing between cards?

                                Only if your PC is running Linux, since the main partition (a.k.a the root partition or /) is Linux and Windows does not read it natively. You can backup files from the existing card and then restore them on the new card using file shares - this means the RetroPie system should be running.

                                So, the easiest way is to:

                                1. Put the old sdcard into the Pi, boot it and then access your existing files over file shares so you can back them up on your PC. Get the files from the roms folder (where the games reside), the ones from the bios folder and the config/all/emulationstation folder. You could back-up the entire config folder just in case, but not all files from there should be restored.
                                2. Put the new card (with the fresh RetroPie system) into your Pi, then access the same shares from your PC. Copy back the roms and bios folders as is.
                                  Copy back only the config/all/emulationstation folder (into the same location on the Pie \\retropie\configs\all\emulationstation). This should cover your existing gamelists, artwork scraped, ES configurations.
                                  If you have custom themes, you'll have to find where they are. ES can read the themes from /etc/emulationstation/themes or from the configs/all/emulationstation/themes folder. If it's the latter, then the previous step (copying the config/all/emulationstation folder) should transfer them up. If your custom theme is in /etc/emulationstation/themes, then, before starting the copying in step 1, just copy the theme folder to /opt/retropie/configs/all/emulationstation/themes and then they'll be backed-up and transferred.
                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  skykid @mitu
                                  last edited by

                                  @mitu

                                  First of all a big thank you for all of your indispensible help on this forum and for going to the trouble to detail all of that for me.

                                  I have no Linux, and only OSX predominantly (Windows access is possible but trickier). I hear setting up Samba on OSX is a ballache, which is why I was looking for an easier option.

                                  I actually have multiple Pis though, so technically I can fire them both up at the same time and follow your copying procedure from the existing Pi setup to the new image.

                                  I don't think it should be too difficult to get them both online via FTP and move the selected folders over using Filezilla. Does this sound viable to you?

                                  Thanks again!

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

                                    @skykid said in Despair over controller ports constantly swapping:

                                    I hear setting up Samba on OSX is a ballache, which is why I was looking for an easier option.

                                    It's not, you can access the RetroPie shares from macOS without any issues:

                                    open Finder, select "Go" menu and "Connect to Server". Type smb://retropie and hit "Connect".

                                    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.