Configuring my custom joystick + arcade buttons per specific emulators
-
Hello!
Just for the start of this conversation I am using a Raspberry Pi 3 Model B, RetroPie V 4.1, using a premade SD Image from RetroPie website. I have used WiniPacV2 with my IPAC2 to configure my arcade setup! See picture of my rapid prototype(Using 2 classic ball zippy joysticks and 10 LED lit push buttons. More buttons to come eventually) 0_1487217083165_arcade top.PNG
So far, I have gotten both players to work when I follow this forum post https://retropie.org.uk/forum/topic/317/setting-up-a-ipac2/6 and use @caver01 configurations for /opt/retropie/configs/all/retroarch.cfg. I have used WiniPacV2 to map my buttons, and have configured the .cfg files accordingly.
I know that this /configs/all/retroarch.cfg is the global file which adheres to all emulators in RetroPie, but have been trying to avoid using the /configs/all/retroarch.cfg file for this reason...
I only want my joysticks + arcade button controller to be use for arcade games (mame4all) / SNES / NES / Neo Geo, and essentially emulators that work well with my joysticks + arcade buttons setup. (Not PS3, etc)So my question is... how can I avoid using /all/retroarch.cfg so all emulators aren't affected? I have tried to modify files like /opt/retropie/configs/snes/retroarch.cfg with the configuration setup as described by @caver01 so my controller just works when playing SNES games, but have not been able to get the controller to work unless altering the /all/retroarch.cfg file.
Any suggestions, advice, or help would be greatly appreciated.
Thank you RetroPie community for getting me this far!
-Spl1ff
-
@Spl1ff one thing to keep in mind is that the retroarch.cfg only affects libretro cores. In other words, you cannot use these configs to configure non-retroarch emulators. Take SNES for example. If you are using PiSNES to launch your games, the retroarch configs will have no effect at all. That one has its own configuration file to setup controls. The same is true for AdvanceMAME, or mame4all-pi. You don't mention which emulators are failing to respond to your configured controls. Any chance they are not retroarch emus?
You should be able to override controls for any emulator with lr- in the name by using their respective retroarch config files.
If you are following my example, I am trying to use as many lr- emulator cores as I can. The basic mapping in my
/opt/retropie/configs/all/retroarch.cfg
is designed to cover the consoles such that directional control, select, start, ABXYLR are effectively the same, and one configuration works across NES, SNES, Atari, and maybe a few others, so long as I am using lr- (libretro core) emulators. All bets are off if it is a stand-alone emulator. This global config is also where I setup stuff like the mapping I want for other retroarch functions like pause, exit, and where I disable hotkeys since I have dedicated buttons for admin functions (not to mention IPAC shift functionality)With that baseline established, I can run the console emus I have loaded and they share the same key mapping. Setting up arcade emulators is where most of the work is done. Since I standardize on lr-mame2003, I play test every game and make adjustments using the MAME GUI <TAB> as needed. The exception for my setup is vertical titles which I play sideways because I have a 4-player cocktail cabinet. The vertical classics can be played using controls on the sides. I can set up these titles using the GUI as well.
The exception is when I use FBA for certain titles. For NeoGeo, the ABCD don't match up the way I like for my button arrangement, and because FBA does not have an in-game GUI for mapping controls I do it with the config file (again, you have to use one of the lr- cores for this to work). I have an FBA config for NeoGeo and another for six-button fighters. I simply use per-ROM config files for these. They sit next to the ROMs with the same names (romname.zip.cfg), not inside a config folder. I am using the arcade folder, and you only get one shot at a
/opt/retropie/configs/arcade/retroarch.cfg
for that folder, so using per-ROM config files is the better option for me.A lot of this is restated from the thread you already followed. Hopefully it starts to make sense, but there is definitely a lot of remapping going on for my configuration, mostly because I am using an arcade panel.
-
@caver01 Thank you for the response!
The only files I have been modifying are retroarch emulators (ie. the emulators that are contained within opt/retropie/configs/(insert emulator here)/retroarch.cfg) The premade SD image from the RetroPie website came with these files. Aren't they all in the RetroArch.cfg file and can be modified? Or is that incorrect? I got Neo Geo, SNES, NES, and MAME games working from modifying the /all/retroarch.cfg file, but would like to customize some of the buttons per emulators (which I am still having problems with).
Do you think you could send me a pastebin file of your opt/retropie/configs/all/retroarch.cfg file, and perhaps one of your custom settings say in /opt/retropie/configs/neogeo/retroarch.cfg ?? I think visually seeing how you set up your entire files would be extremely beneficial for me getting this to work. It would also be awesome to see how you did your hotkeys too.
Did you just press <Tab> on a keyboard in game to enter the MAME GUI? Also, accessing the per-ROM config file is "next to the ROMs with the same names (romname.zip.cfg)" - could you explain how to access this?
Thank you @caver01 your information has been great! :)
-
@Spl1ff I am away from my Pi for a while but I will share some files soon.
-
@Spl1ff Ok, so here is my
opt/retropie/configs/all/retroarch.cfg
file:
http://pastebin.com/H9SRvhqBMy IPAC 4 is basically configured with default MAME mapping with a few additions for dedicated admin buttons like ESCAPE and PAUSE, but for the most part, this is the base config. Since I use the ARCADE folder, all of the other adjustments are done on a per-rom basis. SO, there is no changes to the configs in my other emulators folders. However, here is what the
sf2.zip.cfg
looks like sitting right next to my ROM file:video_shader = /opt/retropie/emulators/retroarch/shader/crt-pi.glslp video_shader_enable = true # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line input_remapping_directory = /opt/retropie/configs/fba/ input_player1_a = z input_player1_b = shift input_player1_y = ctrl input_player1_x = alt input_player1_l = space input_player2_a = i input_player2_b = w input_player2_y = a input_player2_x = s input_player2_l = q #include "/opt/retropie/configs/all/retroarch.cfg"
This is an example of how I override the mapping the six action buttons for running Street Fighter II using lr-fbalpha. Actually, one of the buttons is fine as-is, but all of the others need to be remapped so the line up correctly with the way my SW1-SW6 are setup in my control panel.
However, most of the arcade games run using lr-mame2003, and I can do any fine tuning inside the MAME GUI <tab>. And since FBA does not have such an interface, I make the adjustments for that emulator using per-rom .cfg files. Turns out the NeoGeo buttons line up OK, so I have nothing to configure.
Note that not all of the config folders correspond to retroarch. Some have retroarch.cfg files, while other emulators are stand-alone. For example, AdvanceMAME does not have anything to do with RetroArch, so you have to configure that version of MAME in the corresponding .rc file, although it happens to be easier to use the MAME GUI inside advancemame, as it will write to the .rc file on exit. I use AdvanceMAME for all vector arcade games and a few that don't run on lr-mame2003.
For arcade games, I have quite a few per-rom .cfg files, but most of them are not for controls but rather rotation and shader settings. Vertical games on my system can be played sideways, as I have a 4-player control panel with joysticks on three sides of the screen. The shader adjustments and rotation settings are done with .cfg files in the ROM folder, but the control mapping adjustments are handled using the MAME GUI menu.
-
Thank you so much for this valuable information. I am going to give your suggestions a try after work today and see what I can get running.
Looks like adding a few extra arcade buttons will also help me avoid using a hotkey button.
I checked out your "roadcase somewhat portable arcade" and am amazed by it!Once again, Thank you @caver01. Can't wait to get my setup finalized.
-
@Spl1ff Thanks for the kind words. Admin buttons are extremely handy. As you probably noticed, I have five, which is a lot I know. One is for EXIT, two is for PAUSE, three and four are for volume control, and five is power button around the back of the case. Not everyone agrees with this, but I would never build an arcade panel without some obvious way for users to exit at minimum. Pause is a bonus, as is volume.
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.