Persistent, core-specific controller mappings?

I used to use one controller for all cores, and I was happy.

I recently got a USB adapter that supports dozens of original controllers, and now I’m going mad trying to figure things out.

How can I get persistent per-core controller mappings, particularly for cores that don’t have any core-specific settings, like Nestopia? I

I’m tired of remapping my controls every time I switch to a different system…

Thanks :wink:

You can use core overrides as described in this thread: http://blog.andressm.org/new-retroarch-features-2/

The best solution would be to make autoconf profiles, so when you plug your controller it configures automatically. What adapter did you get? the blissbox? Also, Nestopia supports input remapping so you could use that instead.

Yep I got the new Blissbox 4-Play

I have seen the core override function mentioned in that thread, but I can’t find it really documented anywhere, and I’m not clear how it relates to controller configurations. I have used --appendconfig to force specific filters when launching titles from my frontend, but I guess that’s something different?

I managed to remap bnes by creating a .rmp file but the button numbers don’t seem to correspond to the numbers Windows assigns to buttons, so it ended up being an exercise in trial-and-error.

I’ll try Nestopia and try its core-specific input mapping. But I still have several platforms to set up, so that might not always be a solution…

EDIT

I found this thread about autoconf http://libretro.com/forums/showthread.php?t=3550

How will this work with a device like the 4-Play? Will the input_id, vendor_id, and device values change depending on which controller I have plugged in?

Thanks!

Regarding overrides, the only documentation is the blog post above (I wrote the feature and the post). Overrides are EXACTLY THE SAME as appendconfig, just automated.

Regarding autoconf, it’s the best solution, but yes it would depend on either the name, or the PID/VID changing to work transparently. I wouldn’t know since I don’t have one of those.

What operating system are you on? I regrettably don’t have any experience with RetroArch on Linux yet (Hell, I barely have any experience but I’ve been working like a crazy person to understand and configure this on my PC), but I think I can you help you out if you’re on Windows. Or, should everything be uniform, I may be able to help you out regardless.

Assuming you already have specific configuration files for each core (by setting core_specific_config = “true” in RetroArch.cfg), load the configuration file of the core you’d like to change in your frontend (named core_libretro.dll.cfg for me). From there, configure the controller and save the configuration. That will go to the /config folder in the main retroarch folder. From here, all other settings should be equal to the core’s original configuration file, so just delete the original cfg file (but back it up first in the admittedly possible possibility that this messes your stuff up) and rename the one you just saved to match the name of the newly deleted config file.

Alternatively, you can mess with the internals of the original cfg file (namely copy and paste the newly saved file’s input_player1_ line block to the original config file [and the input_player1_joypad_index if different controllers register as different joypads with a different index, but I kinda doubt that would be the case in a USB adapter]), but that’s a bit more tedious and the aforementioned way worked perfectly fine for me.

I’m sure there are easier ways as I’ve yet to explore autoconf or core overrides, but again I’ve gotten acceptable results from this process. The only problem I encounter is that once you close content, you’ll have to continue using that controller (or risk weird controls on the new gamepad should they be under the same joypad index) until you load content from a different core (or reload retroarch’s config), where then that core’s configuration file will load and leave you with the desired gamepad newly configured to use.

Thanks felix, that makes sense (and I’m on Windows so it is definitely helpful). It seems there are several ways to accomplish the same thing. I just need to figure out which method works best for me since I always load games (and configs) through LaunchBox.