Configuring a specific controller for a specific console?
-
I bought this Hori controller in the hopes of emulating the Sega Genesis controller with it:
(notice the 6 buttons configuration)I've been fiddling around in the RetroArch config and managed to find a patchy workaround. Luckily, I've already documented my method here under the "How do you configure the controller input only for a certain console?". It basically involves changing the retroarch controller for player 1 and loading this config when booting RetroPie.
My problem: with this method, I'm stuck using this controller for player one. If someone else plugs their controller on player 1 while in the Genesis emulator, the retroarch controller config does not match at all. Same goes with plugging my 6 button controller to player 2 for the Genesis, it keeps the default retroarch config. I'd like to find a way that checks the name of the controller and, when it finds my Hori FC4, slaps my custom retroarch controller config on it, whatever the player position is.
(sorry if this is convoluted) Do you know if there's a way to do this better than what I came up with?
P.S. for those who didn't know about this controller and are interested in it for the 6 face buttons, you can find it here. It's a good product.
-
@felleg the best and simplest method I know to configure custom mappings for a specific core is that one at wiki. Core Input Remapping. I'm sure you'll like to know it. :-)
https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration#core-input-remapping
-
@meleu I took the time to play around with it, and it semi-works for what I intended. Thanks!
What I did is a remap of the controls when my controller is P1, and another when it is P2. I have to manually load the correct remap through the retroarch menu every time I start a game (which is annoying), but aside from that it works perfectly. I like that it leaves the retroarch controller as default when it starts the game, to prevent any mistakes.
One concern I have: I saved the default retroarch controller remap in a file called default.rmp. When I look at the file, the buttons aren't hard coded (since they were not remapped, I presume). This means that if I load this config after loading hori_p1.rmp, for example, it won't bring back the default. The only way to do that would be to restart the game.
This means that loading hori_p2.rmp after loading hori_p1.rmp will give my custom remap to both P1 and P2, because hori_p2.rmp has the default remap for P1's controller (in spirit), but it is not hardcoded and therefore does not take effect.
Is this a bug or a feature?
-
@felleg I've just read your method to configure the controller for a specific console and I think it's not a good approach. Your
configs/megadrive/retroarch.cfg
is ignoring the globalconfigs/all/retroarch.cfg
.My suggestion is:
- recover the default
configs/megadrive/retroarch.cfg
(check if you have aretroarch.cfg.rp-dist
on the same directory, that's the default config). - configure your Hori controller in emulationstation like a SNES controller (square = Y; triangle = X, circle = A, etc.)
- You need to define if you want to use your Hori controller for player1 or 2, and make sure you'll always use it as that player (if you change, you need to remap). And then use the Core Input Remapping when running a megadrive game and use the following scheme:
MegaDrive = RetroPad B = A A = B C = R2 Y = X X = Y Z = R
- after remap, select Save Core Remap File.
- recover the default
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.