Using different controllers for arcade games
-
New here and new to Retropie (although a Linux admin so I’m not completely lost =*) )
Here is the scenario.... Retropie 4 running on a Pi4 using the Mame2003 emu for Arcade. (Mame2003 seems to work best for my roms and Xarcade stick, spinner and mouse). I also have a Logitech flight joystick.
What I am trying to accomplish is that the arcade games use the Xarcade sticks and buttons as player 1 and player 2 (as supported by games) and for select games the flight stick is player 1. Games like 1942 and Tron.
I figured out that I could do this for the spinner and trackball by dropping a config file in the config Dir named for the rom that changes the mouse index for that game on launch so I thought I would attempt the same thing with the stick.
So the problem:
Everything works great until I plug in the Logitech stick. Upon adding the Logitech stick the Xarcade stick 1 gets moved to port #3, the Xarcade stick 2 gets moved to port #2 and the Logitech stick is at port #1. I attempt to reorder them in Retroarch by changing them in the settings/input and allowing this to save. When launching a game they still come up as Logitech #1, XC2, #2, XC1, #3. This doesn’t work out as the Logitech at this point is not configured but is seen as player 1 so no hot key or config etc. XC 1 that should be seen as a second person position does not work either. To unwind the mess, remove the Logitech.... change retroarch, save and unplug the Xarcade stick and plug back in. All is now right with the config and XC1 is #1, XC2 is #2 and everything works again.
So I should ask a question of you fine retro gamers shouldn’t I. =*)
Question 1... Upon connecting the Logitech stick how do I go about configuring it? I’ve read the docs about going into setup and choosing emulationstation to configure but there is only clear config, auto Conf enabled. I don’t see how to config a new controller. I did try restarting emu station to see if it would do it them but no prompt came up (was hoping for the first time I connected the Xarcade and it took me through all the keys)
Question 2: Is there anything I am missing regarding the ports. Seems like a trivial setting but as soon as the stick is added retroarch seems to get sort of mad and reorders stuff and I can’t get it back to the right order.
Edit: Currently the controllers are plugged in as follows: port 0 = Keyboard, port 1 = Xarcade, port 2 = spinner, port 4 = Usb splitter with three ports with trackball mouse. Adding the Logitech to the splitter.
Thanks in advance!
-
@churchill7 said in Using different controllers for arcade games:
I attempt to reorder them in Retroarch by changing them in the settings/input and allowing this to save. When launching a game they still come up as Logitech #1, XC2, #2, XC1, #3.
Some light reading:
https://retropie.org.uk/docs/RetroArch-Configuration/The key point (if you didn't already try this) is when you use RetroArch to change the controller order in
Main Menu -> Settings -> Input
, you need to save an override. It can be a core override or a game override. When launching a rom, the game override will take priority if it exists, and the core override will kick in for any rom using the same emulator that doesn't have a specific game override.I will admit I haven't experienced this so I'm going from what seems to work in general. I think the input override should be based on the controller name so it should stick regardless of which port # it gets assigned. So in your case I think you would want a core override that uses the Xarcade stick as the P1 and P2 controls. Then you can save a game override to use the flight joystick only for the games that use it. Assuming there are fewer of them this way.
Question 1... Upon connecting the Logitech stick how do I go about configuring it? ... I did try restarting emu station to see if it would do it them but no prompt came up
This is normal. When EmulationStation doesn't have any controllers configured, it will prompt you. Once you configure one, you have to manually invoke the configuration screen for additional controllers. At the ES screen, press
Start
on your working controller and there should be aconfigure input
option in the menu. Then you can get back to the screen where it asks you to hold a button on the controller to configure.I don't have an answer for your second question so hopefully someone else who does can jump in and address that one.
-
@yfzdude Ok a few steps closer..... I missed that the config input was in the Emu Station menu and not under setup.
Ok, so the controller is configured now which makes it easier to plow forward. If the Xarcade is not selected I can still navigate.
So weird thing I am hoping you might have the answer to.... I go into the RetroPie / RetroArch ... then set the binds and they show correctly. I then set the save config for globla core and to yes for saving. Then quit. Go into a game and the logitech is still the player one. I hit <hot key> + X and go into RetroArch there and do the exact same set and save and now everything is the way I want it. XC 1, XC 2 an LT Stick 3.
So any idea why to save a global setting I had to do it by starting RetroArch from a game rather than the main menu?
My next step is to set the stick for the games I want to use it on and I should be good. That, however, I seems pretty straight forward as you pointed out.
Oh and thanks for the insight. It really helped
-
@churchill7 said in Using different controllers for arcade games:
I then set the save config for globla core and to yes for saving.
If you mean that you tell RetroArch to save config on exit, I don't think it is recommended to do that. RetroPie as a package uses certain configs by default and changing it so RetroArch saves on exit can mess up some things.
What you want to do is look for
Override
and save one of those. I think it is in theQuick Menu -> Save Core Overrides
page of the RetroArch menu. This site might help make more sense of it.
https://docs.libretro.com/guides/overrides/#override-configsSo any idea why to save a global setting I had to do it by starting RetroArch from a game rather than the main menu?
I think you are referring to how you can launch the RetroArch GUI menu from within EmulationStation without having loaded a ROM first. I think this is only for setting global items that would apply to all emulators/roms/etc. Since what you mentioned was specific to Arcade games and/or specific games, the best way to make changes of the nature you listed is after you launch some Arcade game so that you are able to save the
overrides
that are specific to either the "core" (Arcade emulator in this case) or specific to the rom itself (For the flight stick config).EDIT: I've not used the global menu for RetroArch to save anything so I can't tell you much about why it shows up in EmulationStation as something to configure or why it seemed like it ignored the settings you did change. I just know that whatever config changes I needed to make I have always done it after launching an emulator/game through the 'Hotkey + X' menu.
-
@yfzdude Thanks for the info. That makes sense to not have it save on exit. It was a little weird having to exit to save then go back in and remove that for safety reasons.
Well, everything is working as I’d hoped aside from the fact that I’m not as good at Tron as I remember =*)
Thanks for the assist!
-
@churchill7 So, you got this to work, and I'm trying to do the same basic thing for a similar reason. In my case, the X-Arcade takes Ports 1 and 2, and my Nintendo Switch Pro Controller always ends-up as Port 3. I'm wanting to use the Pro Controller for its analog joystick in Atari Food Fight. It appears that that means it needs to be bound to be the first controller, not the third. So far, I think that's similar to what you needed, and I know where to do the rebinding.
But the thing is, I understand the game override concept, but I'm not seeing where you actually save the result as a Game (ROM) Override... I see where the resulting override files get put from reading the docs, but nothing is saying how they get there, and if RGUI is saving them there directly, or there's manual intervention.
Can you shed any light on that detail by chance? I must be missing something obvious.
-
@westopher said in Using different controllers for arcade games:
But the thing is, I understand the game override concept, but I'm not seeing where you actually save the result as a Game (ROM) Override... I see where the resulting override files get put from reading the docs,
but nothing is saying how they get there, and if RGUI is saving them there directly, or there's manual intervention.
When you go to the
Quick Menu
Screen, it should be at the bottom where it lists theOverride
choices. When you select one and press the "A" (confirm) button, this is when RetroArch saves the config file. If I recall correctly, I think it even flashes a little message on the screen saying it saved an override file. Then the next time you launch the game it should pop up a message saying it loaded an override. -
@yfzdude Thanks. I'll go look tonight. What I recalled from the Quick Menu is that those were REMAP saves, not configuration OVERRIDE saves. I'm probably not looking at the right thing, in the right place.
-
@westopher
Yeah definitely double check me on that. I'm going by what is on the libretro docs page linked above. They have at least 4 different choices listed.Quick Menu -> Save Core Override
Quick Menu -> Save Game Override
vs.
Quick Menu -> Controls -> Save Core Remap
Quick Menu -> Controls -> Save Game Remap
-
@yfzdude I finally did find it; at least in my RetroPie, it's actually:
Quick Menu -> Overrides -> Save Core Override
Quick Menu -> Overrides -> Save Game Override
Writing this primarily for the benefit of future readers.
Thanks for the help on this. I don't know how I missed it; I would have expected save options on the Main Menu, but I'm sure there's a method to the madness.
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.