Forced to re-map EmulationStation controls every time on boot
-
*Pi Model or other hardware: 3B+
*RetroPie Version Used: 4.5.1
*Built From: manual install (link) on Retropie: https://retropie.org.uk/download/
*USB Devices connected: 2 Microntek arcade sticks with encoders, generic USB keyobard and Dragonfire Playstation 1 USB controller
*Error messages received: none
*Emulator: issue seems to just be in the Retropie Gui
*How to replicate the problem: See belowThe issue I'm having happens with a fresh Retropie install or on any downloaded burned image. I have a Pi 3 B+ with v4.5.1 installed and all core, main, optional and some experimental packages updated. EmulationStation v.2.8.4RP.
I have an Arcade1Up modified cabinet that uses Microntek sticks for players 1 and 2. This is plugged into 0 and 1 on the Pi. Then I have a USB powered Hub on 3 with a passport hard drive, generic keyboard and a USB extender that is connected to a PSX controller (Dragonrise Generic US controller). I have also tried a fresh install with everything running from just the SD car with no external drive,
My buttons are 6 button layouts for players 1 and 2. I want to have it set as Y,X,LS for the first row and then B,A,RS for the second row. The PSX controller would map like a SNES controller.
By default the player 1 and 2 sticks are either inverted or only let you scroll in one direction. There are no separate micro switch connections on the controller board. It's one connection per stick and they are plugged into the correct places on the encoder boards.. Likewise, the buttons are not how I want them to be mapped.
When I go through the EmulationStation, remapping everything gets worse until I clear all EmulationStation settings using the utility. Now every time I boot into EmulationStation it asks me to remap every control. This issue seems to only be happening in the RGUI. Settings in my emulators seem to be okay. But when I play any game and then exit back to the RGUI all of my controls are wiped. No inputs work and I have to reboot the machine.
I even tried setting Retroarch to Save on Exit. I also have the RGUI setting to save all metadata on exit but not sure if this impacts controls anyway.
I noticed if I map all controls on boot and then do a shut down hoping they will save or go to a Retroarch or Retropie utility I quickly see a screen that says the same thing on 4 rows presumably for players 1-4. It shows "Input Config Finish Command:"
I went into the Retroarch configuration editor and looked at es_input.cfg because I thought that might be where it stores the RGUI control settings but I don't see any line of code that shows controller mappings.
Please help. I have spent days on this and can't get it to work.
-
You're confusing
RGUI
(a RetroArch menu driver) with Emulationstation.
You seem to have a few problems, one of them is that your configuration doesn't seem to be saved (maybe ?) or you're configuring the panel controllers (p1 and p2) separately ?
Note that if the P1 and P2 controls (Microntek) are identical - model wise - you only need to configure one of them and the other one will be automatically configured in the same manner. If you want to configure P1 and P2 differently, then it's not possible in Emulationstation (or RetroArch) since they are seen as the same model/type of controller.I noticed if I map all controls on boot and then do a shut down hoping they will save or go to a Retroarch or Retropie utility I quickly see a screen that says the same thing on 4 rows presumably for players 1-4. It shows "Input Config Finish Command:"
That's not what it does. When you configure a gamepad in Emulationstation, it will run a few scripts in the background, that 'propagate' that configuration created to several emulators - RetroArch, Mupen64plus, Reicast - so you don't have to re-configure them again.
I went into the Retroarch configuration editor and looked at es_input.cfg because I thought that might be where it stores the RGUI control settings but I don't see any line of code that shows controller mappings.
The
es_input.cfg
file is where Emulationstation stores the gamepad configuration and it's not managed or read by RetroArch.Make sure the
es_input.cfg
file is writable by thepi
user, so the gamepad configuration can be saved by Emulationstation and also configure just one Microntek joystick.
A full sd-card/disc can also be a reason why a file cannot be written by Emulationstation, so check the available disc space on your system. -
@mitu Thank you. Yes, I was referring to EmulationStation's menus. I was trying to map both p1 and p2 which are the same control type. I mapped them identically because I thought I had to. Good to know. So I only need to map p1 and that will clone to p2, correct? And if I map the psx controller I saw that it was p3. In the Retroarch configuration I changed it to p1 just for the PSX console.
So the issue is still with the EmulationStation mappings not saving. How can I tell if es_input.cfg is writable? If it isn't how do I fix that using putty or WinSCP? I'm still new to this.
I assumed that was the config file. When I looked at it there was no code for controller inputs so I'm assuming it's not being updated and that's why it's prompting me to remap every time I boot and losing mappings when I exit from a retroarch emulator game. Does that sound correct?
If I have another working image could I just SSH in and copy es_input.cfg to my PC, edit it with notepad++ and then swap SD cards and then drop the good config file back in?
And what is the path to get to the config file? I stumble on it by accident and don't recall where I saw it.
Thanks so much. You have no idea how many hours I have been troubleshooting this. It's happening on a fresh install and a downloaded image so if it's a write permissions issue it just seems odd to have it happen with 2 different images.
-
@lghtanddrk said in Forced to re-map EmulationStation controls every time on boot:
And what is the path to get to the config file? I stumble on it by accident and don't recall where I saw it.
The file is in
/home/pi/.emulationstation
(if you're using WinSCP) or\\retropie\configs\all\emulationstation
(if you're using file shares). You can check the permissions on the file via WinSCP - see https://www1.udel.edu/it/help/connecting-ud/filetransferWinSCP.html#permissions.What does the file contains right now ? Post the contents in the forum, using
```
before and after to format the output. Like this``` config file contents. ```
-
@mitu I will try it as soon as I get home and report back. Really hope this is the answer. Thank you for your quick reply!
-
I finally got it working. The sticks are showing up as the same GUID as the PSX controller so as soon as I mapped one it overwrote the other. I have itworking now so the sticks map correctly and work in ES. The PSX is incorrect but works fine in the PSX emulator so I can live with it. 2 questions though. In the Retroach XMB I disabled bezels and it permanently saved when I saved the overrideit but if I enable the analog stick it doesn't save even though I am saving an override. Any idea why? And, the second question, is there a way to assign different GUIDs to devices so my sticks and the PSX controller are not on the same GUID?
-
@lghtanddrk said in Forced to re-map EmulationStation controls every time on boot:
And, the second question, is there a way to assign different GUIDs to devices so my sticks and the PSX controller are not on the same GUID?
I don't know how XMB works, but if you want to globally configure RetroArch, you should make all the configuration after starting RetroArch from the RetroPie menu, as opposed to starting it from a random game/rom.
For the GUIDs conflict, one solution would be to hide/mask the original controller using
xboxdrv
- https://retropie.org.uk/docs/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv/.
Since your PS3 controller will always be P3, use it to mask the/dev/input/js2
input device. You'll have to re-configure it again in ES/RA, since it will appear as a different device. -
I'll take a look at the RetroArch tool. Thanks. I read the instructions for masking the ID. Looks pretty complicated. Is there an easier method? Is it common that a completely different controller would share the same GUID? Is there another brand Playstation controller or similar controller that you can recommend that would just work automatically on a different ID? Would a PS4 controller plugged in via USB need a driver and would that operate off of a different ID?
-
@lghtanddrk said in Forced to re-map EmulationStation controls every time on boot:
Is it common that a completely different controller would share the same GUID?
It's not common - just lazy vendors that stuff the same controller chip in their controllers without bothering to add a separate name or VID/PID.
Is there another brand Playstation controller or similar controller that you can recommend that would just work automatically on a different ID? Would a PS4 controller plugged in via USB need a driver and would that operate off of a different ID?
The Sony PS3/PS4 controllers have their own driver and are well supported, if you have the option to use them - then do so.
-
So I wouldn't need to install any drivers for a PS3 controller? I can use a wireless one with a USB charging cable and just plug it in? Or do I need to find a wired PS3 controller? Should it be a Sony factory original in order to ensure the ID and driver works?
-
@lghtanddrk For the PS3, they can connect via Bluetooth, for which you need the
sixaxis
or theps3controller
driver - see https://retropie.org.uk/docs/PS3-Controller/.
It doesn't have to be a genuine PS3 controller, a lot of the clones work with the drivers. -
@mitu If I just plug in PS3 or PS4 controller with a USB cable is it just plug and play? Or do I still need a driver?
-
I think I installed both drivers in case I ever wanted to use them. I am not going to use it wireless so should I uninstall both drivers? If I did ever want to use wireless which driver is better? These are also for PS3. What about PS4?
-
@lghtanddrk PS4 doesn't need any drivers - wireless or not. If you intend to use the PS3 style controllers wired only, I don't think you'll need any driver, so my advice would be to uninstall them.
-
Thanks
-
Hi, I am running into new issues now. I uninstalled the sixaxis and PS3 drivers and plugged a Ps4 controller in with a USB cable. It worked in EmulationStation but had no luck at all with the Retroarch GUI or in any emulators. So I decided to just keep using my PS1 wire controller. BUT, now after spending hours on this I can only get it working in the Retroarch menus and not in any games. I am only using it with PCSX and PCSX Rearmed. I deleted all the CFG files and made sure that the controller order for those emulators had the controller assigned to P1. Any ideas on how to get my Retroarch back in shape? I really don't want to wipe everything out on the SD card and start over. Thanks.
-
@lghtanddrk said in Forced to re-map EmulationStation controls every time on boot:
It worked in EmulationStation but had no luck at all with the Retroarch GUI or in any emulators.
Maybe because it's the 3rd controller and it's assigned to P3. Make sure you configure the controller in Emulationstation, then use the configuration editor and re-order the gamepads so that gamepad no. 3 is set as P1.
-
@meleu's joystick-selection tool is another easy way to re-order the controllers.
-
I did use the joystick selection tool. When I am in the RGUI for the emulator it shows input for P1 as the correct controller. I even mapped all the controls. Like I said, the PSX controller will work in the RGUI after doing that but I just can't get it to work as P1 for either of the PSX emulators. I had it working briefly including the left analog stick working. Something got messed up when I tried to add the PS4 controller. I even went as far as deleting all the retroarch configs and the PSX emulator configs and then copying the files back from a different image where the controls are working. But that didn't work either.
-
@lghtanddrk Post a log file (
/dev/shm/runcommand.log
), taken after running the game. Make sure you enable verbose/debug logging with the Runcommand launch menu, then run the game, exit, take the log file and post it on pastebin.com.
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.