Controller setup/layout

Hi everyone

I am using Retroarch 1.3.6 with Emulationstation on my Windows 7 PC. I have a hard time to setup my controllers. I read through a couple of threads that I found using google. Besides that most of them are talking about Retropie, none of them worked for me thus far.

I have 2 SNES USB controllers and 1 USB arcade stick. I need to be able to remap the buttons for the arcade stick per game, square layout (street fighter) vs inline layout (NeoGeo games). Once I setup the “User 1 Input Binds” the arcade stick has the correct layout for street fighter games. I then tried to use %BASENAME% and --appendconfig inside the ES config file to load a new config file that I created through Retroarch by clicking on “save new config”. This unfortunately doesn’t work for unknown reasons. When the NeoGeo game starts it tells me it failed to save the config file and it rearranges my buttons on the arcade stick automatically to some really weird setup. That not only changes the SNES controller setup too but also messes up my Hotkey setup.

Is there anyone out there that can explain to me the whole config file thing. There are autoconfig files and then there are controller specific config files and then there are the custom config files that include date and time in the name once saved. And why does Retroarch automatically remaps my arcade stick even though all auto config features are set to “OFF” in Retroarch.

Thanks

Rather than trying to change configs constantly, you can use per-game input remapping (IIRC, this existed in 1.3.6 but is improved somewhat in the nightly builds). This allows you to map your pads/stick once to the retropad abstraction and then move the core’s inputs around on the retropad and save those remaps on a per-core and/or per-game basis.

Load up the core and some content, go back into the quick menu and look for ‘Controls.’ In there, you’ll see the core’s inputs listed and their default retropad mapping off to the right. You can use the left/right directions to cycle through available retropad buttons until you get something you like. Go back into the game to test it out and, if it does what you want, go back into the Controls menu and scroll down to the entry to save the core or game remap.

Hi hunterk

Thanks for your reply.

Now I finally understood how this whole config stuff works. I got finally everything setup now.

My second issue was the swapping of controllers. Once I unplug my arcade stick and connect the SNES controller the button layout and hotkeys are still set for the arcade stick so I followed the override instructions provided here by wyzrd

https://libretro.com/forums/showthread.php?t=6548&p=44238&viewfull=1#post44238

Now I can swap controllers and the layout loads automatically. So once I finished playing Arcade (FB Alpha) stuff I swap the controllers and load a NES or SNES game and all works as it should.

Thanks again for the quick help.

Hi hunterk

Thanks for your reply.

Now I understood how the whole config stuff works. I finally could setup everything as I need it.

Thanks again for your quick help.

I am trying to do the same thing, but must be missing something. I am using 1.3.6 on Windows, and am using the xmb menu driver. After loading a core (MAME 2014), and then content, I go to the quick menu, but I don’t see a ‘Controls’ option there. I see resume, restart, close… but no Controls. What am I missing?

I’m not sure if MAME has the ‘controls’ menu, as it’s something that has to be added on a core-by-core basis. You may need to use the MAME OSD’s input mapping function, which brings its own complications insofar as you need to create the directory structure in your ‘save’ directory to hold them. I know FBA has the input remapping enabled, so I would recommend using it instead when possible.

Also, I think the name changed at some point. I believe it used to be called input remapping or something similarly opaque. If you update to the latest nightlies or just wait for the next stable release, which should be coming soon, it should have the new name.

Thanks for the response hunterk. I did try a different emulator (nestopia) and do see the controls option in the quick menu. Even though the controls menu isn’t supported in MAME, does retroarch support per-game remapping for MAME?

So I am trying to play smashtv, but the fire buttons are reversed.

I tried to remap the inputs by first generating a rmp file for nestopia, and then copying the rmp file to config/remaps/mame2014_libretro/smashtv.rmp, but this didn’t work. Using the log file command you have I was able to see that RA was expecting the file to be in config/remaps/MAME 2014/smashtv.rmp.

After renaming the file, I can see that RA finds the file, but now none of the fire buttons are working. Is there a sample of what the remapping file should look like? Basically, I need to swap the Y and A, and swap the X and B retropad buttons.

The contents of my rmp file was this: input_player1_x_btn = “1” input_player1_b_btn = “3” input_player1_y_btn = “2” input_player1_a_btn = “0”

Since it didn’t work as a remap file, I renamed it to config/MAME 2014/smashtv.cfg to try it as an override file. This successfully reversed my buttons and I am shooting in the right direction. The only (minor) issue is that when I leave the game, the buttons remain reversed for the RA menus.

I tried adding: config_save_on_exit = “false”

but that didn’t change anything. Is there a way to prevent per-game overrides from affecting the button mapping in RA, or can someone tell me if the format of my rmp file was incorrect, and that is why it didn’t work. An explanation of the differences between override files and remap files and the pros/cons of one vs the other would also be helpful.

Thanks for the help. Getting very close!

Just did a quick search and found some comments like these.

I’ve heard there’s a bug in some builds of the core that make it so it can’t create those folders itself. So you might be able to fix your problem with newer builds by creating a MAME folder in your RetroArch save folder and cfg and nvram folders inside that.

Thanks a lot.

Designating a folder for Content, Savefile, and Savestate, which are blank, [content folder], [content folder] and then placing a ‘mame’ folder inside of that designated folder with the cfg/nvram/etc folders inside of it solved the issue.

Hopefully this will help those who are having similar issues, or this will be handled transparently/automatically before 1.0.0.3 becomes public.

on the nightlies I shipped a default config that does the trick. Also, all the folders are created automatically if the folder has a trailing slash (or the other way around… I forget)

So you are saying the folder should have a trailing slash, should I open up my mame Retroarch cfg file with notepad and change my savestate path directory from “save” to “save/” or to “mame/save/” ? Right now my mame cfg save path is set to “save” and it reads the folders in mame /save but I would really like it if created the folders automatically.

Here link to thread.

https://libretro.com/forums/showthread.php?t=1758

From what I understand is that Mame doesn’t have that “Controls” feature in the quick menu and it looks like it fails to create the needed folder or folder structure.

In the latest builds of RA, the menu and game mappings are separate, so you should be good there, I think.

Hmm, they still seem to affect the menu buttons. Since I swap X/B and Y/A in smashtv, the menu OK seems to now be A instead of Y, and cancel is X instead of B. I am not using the latest nightly though, I am on 1.3.6. Is this a very recent change?

Yes, very recent. A couple of weeks.