Auto assign correct Device Type for MD 3 & 6 button autoconfigs

Hello, and thank you ahead of time for any ideas you might have.

TLDR: Is there a way to specify Device Type in a controller’s autoconfig?

My setup: I have both an MD 3 button and MD 6 button controller using unique (VID & PID) usb adapters. Retroarch properly recognizes and loads the autoconfig profiles I created for these.

Problem: Retroarch improperly assigns “Device Type” each time a respective controller’s autoconfig loads (It selects Joypad Auto). This means games such as Street Fighter II won’t be playable on the 3 button unless I manually go in and switch Device Type back to “MD Joypad 3 Button” in the menu. When I do, all is good- but I want to avoid this step.

Remaps: By saving a core or directory remap with either of the following lines, everything works properly for only one of the specific device types: input_libretro_device_p1 = “513” (MD Joypad 6 button behaves properly) input_libretro_device_p1 = “257” (MD Joypad 3 Button behaves properly) This only allows for one or the other though, as I don’t know how to force the correct one in relation to the specific autoconfig.

Background: For those wondering why I’m trying to get both working seamlessly- I have a nerdy cabinet with controllers for about 10 different systems, and I’d like for anyone to be able to just pick up a 3 or 6 button controller and play. At this point, everything works flawlessly (even N64!) except the MD/Genesis controllers.

Your time and ideas here are really appreciated. Thanks!

Have you tried adding input_device = “whatever” to the autoconfig profile(s)?

There’s no way to do this through the menus because the device type is core-specific, and you wouldn’t want it to force some random device type in other cores (e.g. it may think it’s a SuperScope or whatever on SNES cores, dunno), but you may be able to force it like that as long as you know what you’re getting into with it.

Thanks for your response hunterk!

I have tried just about every combination of input_device / input_device_type / etc. I can think of, and haven’t found anything that works. Once I change the input_device = “x” line it will actually jump to an autoconfig file that doesn’t even match the VID/PID of my current device.

There’s got to be a way to get plug-and-play 3 and 6 button MD controllers to work properly in the same environment. Maybe instead of finding a way to auto load/remember the Device Type, there’s a way to just get the “joypad auto” to function independently for both 3 and 6 button setups? I haven’t had any luck.

Again, thanks for the ideas.

I suppose putting that whole line into the remap as-is doesn’t cut it, either?

That line in the remap file works, but it will force Device Type for any p1 controller/config in use to be an “MD Joypad 6 Button”. It will even do that to my SNES controller/config if I use it with that remap core/directory. Using the “257” code will force the 3 button Device Type, but then the 6 button won’t work as it should. If I knew how to attach that setting to the controller autoconfig this wouldn’t be a problem.

Basically, when the device type is set to either 3 or 6 button, it changes the whole controller functionality. For 3 button, pause will toggle the three buttons (eg. from punch to kick in SF2ce). For 6 button the pause will function normally and pause the game, but those top three buttons will actually function. I’ve tried forcing either of the device types above at a time, and making adjustments to the alternate config, but there’s no getting around the actual button functionality change that happens with Device Type change (at least I haven’t discovered a way).

Hmm, I just noticed that in SF2ce the remap actually changes the in-game input options available. I had 3 button device type forced for p1 in the remap, and p2 was just default. The screenshot shows p1 only has three buttons to map, while p2 has 6.

Here’s a screenshot of that:

Unfortunately, if 3 button isn’t forced in device type, the input toggle (start button) just functions as a pause button and the controller will not be properly functional.

Any thoughts?