Despair over controller ports constantly swapping
-
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-MFawmENX6bAs 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.
-
@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. -
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.
-
@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).
-
@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.
-
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!
-
@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 ? -
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.
-
@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.
-
@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.
-
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!
-
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:
- 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 thebios
folder and theconfig/all/emulationstation
folder. You could back-up the entireconfig
folder just in case, but not all files from there should be restored. - Put the new card (with the fresh RetroPie system) into your Pi, then access the same shares from your PC. Copy back the
roms
andbios
folders as is.
Copy back only theconfig/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 theconfigs/all/emulationstation/themes
folder. If it's the latter, then the previous step (copying theconfig/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.
- 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
-
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!
-
@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".
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.