Controller Mapping per Controller ID?
RetroNerdman last edited by
I think this have been asked before a couple of years ago, but I didn't find any answer for that, so apologies if it has been solved by now and I haven't seen it.
Well, here's my scenario:
- Retropie updated last month running on a RaspberryPi 3
- Multiple controllers, such as a DualShock 4, 8bitdo M30 (MegaDrive style), 8bitdo SN30 (SNES style)
What I want to achieve:
- to have my DualShock 4 controller to have a different input mapping to the input mapping for the M30 for the same game, let's say Street Fighter Zero (because it's a 6-button game running in FBNeo, which also runs games with 2, 3 or 4 buttons).
Wireless controllers are awesome, but I don't have a cable long enough to play while charging and whenever I change controllers, the mapping gets all mixed up because the button layout is completely different.
I tried modifying the game's remap by adding "input_device =" but it made no difference.
I've also created two *.cfg, one for each controller, in a way that the layout would be correct for SFZ, but I couldn't figure out the correct way to specify the path \opt\retropie\configs\all\retroarch-joypads-for-street-fighter-zero from the game remap file.
How can I use "input_remapping_directory =" in the *.rmp file to load a info from a *.cfg file?
Or the only way is to create a new "system" folder like "opt\retropie\configs\capcom-6-button" and then having a retroarch.cfg file getting the info I need from" \opt\retropie\configs\all\retroarch-joypads-for-street-fighter-zero"?
Or, even better, is there an easier way to achieve what I want? I mean, Retropie sees it's a different controller, why can't Retroarch understand it's a different controller? Is it due to how Retropad pools the controller data?
RetroNerdman last edited by
Okay, so I couldn't figure out how to do it, so I ended up with 3 different entries in the EmulationStation.
I'm leaving instructions and the *.svg files I made just in case anyone wants to recreate my scenario.
3 Entries on EmulationStation:
- FBA Capcom Fighting Games, mapped for SNES-style controllers (4 face buttons + 2 shoulder buttons; 8bitdo SNES sn30, 8bitdo NES n30)
- FBA Capcom Fighting Games, mapped for Saturn-style controllers (6 face buttons + 2 shoulder buttons; RetroBit Saturn Pad, RetroBit Genesis Arcade Pad, 8bitdo Mega Drive m30, Sega Saturn USB Pad, Retroflag Classic Controller)
- FBA Capcom Fighting Games, mapped for PlayStation-style controllers (4 face buttons + 4 shoulder buttons; DualShock, DualShock 2, DualShock 3, DualShock 4, Xbox 360 controller, Xbox One controller, Hori Fighting Commander, Hori Real Arcade Pro, Brook Universal Stick or pretty much any arcade stick that follows the standard layout)
That way you can use whatever controller you have available and the button layout will always be correct for those fighting games.
1st Step - Add the Systems on es_systems.cfg
<system> <name>capcomf4</name> <fullname>Final Burn Alpha</fullname> <path>/home/pi/RetroPie/roms/capcom-fighting</path> <extension>.7z .cue .fba .iso .zip .7Z .CUE .FBA .ISO .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ capcomf4 %ROM%</command> <platform>arcade</platform> <theme>capcomf4</theme> </system> <system> <name>capcomf6</name> <fullname>Final Burn Alpha</fullname> <path>/home/pi/RetroPie/roms/capcom-fighting</path> <extension>.7z .cue .fba .iso .zip .7Z .CUE .FBA .ISO .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ capcomf6 %ROM%</command> <platform>arcade</platform> <theme>capcomf6</theme> </system> <system> <name>capcomfpsx</name> <fullname>Final Burn Alpha</fullname> <path>/home/pi/RetroPie/roms/capcom-fighting</path> <extension>.7z .cue .fba .iso .zip .7Z .CUE .FBA .ISO .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ capcomfpsx %ROM%</command> <platform>arcade</platform> <theme>capcomfpsx</theme> </system>
2nd Step - Add the Themes Files
Just copy to the folder /etc/emulationstation/themes/carbon
3rd Step - Add the Emulation Settings
Just copy to the folder /opt/retropie/configs
The remap info are in those files. Just a reminder, your controllers have to set according to the wiki https://github.com/RetroPie/RetroPie-Setup/wiki, for instance, the Left Shoulder is mapped to the first button to the left on the top row of your controller.
4th Step - Create Folder and Copy ROMs
You'll need a folder called capcom-fighting and drop your ROMs there.
If you're using Arcade Manager, here's the *.cvs file of the non-merged ROMs I used:
name; dstlku; hsf2; hsf2j; jojo; jojoba; jojobane; jojoj; mbomberj; mbombrdj; megaman; megaman2; mshj; mshu; mshvsfj; mshvsfu; mvscjsing; mvscu; nwarru; redearth; rockman2j; rockmanj; sf; sf2cejc; sf2ceuc; sf2hf; sf2hfj; sf2jl; sf2uk; sfa2u; sfa3u; sfau; sfiii2; sfiii2j; sfiii3n; sfiii3u; sfiiij; sfiiiu; sfj; sfz2alj; sfz2j; sfz3j; sfzj; smbomb; ssf2t; ssf2tb; ssf2tbj; ssf2xj; vampj; vhunt2; vhuntj; vsav2; vsavj; vsavu; warzard; xmcotaj; xmcotau; xmvsfj; xmvsfu;
Also, EmulationStation doesn't seem to respect any order other than alphabetically, so I numbered the games in my gamelist.xml
Well, that should be it. Unfortunatelly it won't let me play fighting games against someone who owns a different controller than the one I decide to use, but at the very least I have everything mapped and ready for use.
Also I am aware that Street Fighter The Movie runs well and uses a 6-button layout but... I guess I rather not remember that exists.