Can I force Retroarch to ignore the existence of an input device?

Hokay, so, here’s the deal… I was originally going to just post this in my previous thread regarding combining multiple input devices into one, but circumstances have forced me to change the approach for my inputs to such an extent that I think this necessitates it’s own topic.

So here’s the rundown. I am now using an Ultimarc Mini-PAC encoder for my controls, but due to my control panel size, desire for an analog flightstick, and having friends who are for the most part not terribly concerned about having clicky joysticks when they play, I have an Ultrastik 360FS for my 2P joystick, which has it’s own USB connection.

Now, I initially put the WinIPAC utility that programs the buttons to Xinput mode, and used X360CE to map the 2P controls to include the Ultrastik. This caused me a problem with Steam games because the emulated controller comes up at the THIRD Xinput device, and many Steam games tend to ignore the #3 input in favor for the #2 device for 2P with no way short of hacking the game to fix it. And I am in no way knowledgeable enough to do that level of work.

SO! With all that covered so you know why I’m not doing X, Y, or Z, here’s my current setup: WinIPAC has set the encoder to Dinput, and X360CE is emulating BOTH controllers into Xinput devices. This works VERY WELL - aside from a minor button mapping issue(which I have several options on how to deal with and just need to decide which to roll with, hence why I’m not asking about that here), Retroarch handles it just fine, no discernible lag, etc.

The problem I have now is that Retroarch sees both the emulated Xinput devices, AND the Minipac Dinput arrangement separately. And, completely randomly, will sometimes decide to switch Inputs 1 and 2 to the Minipacs. Now, this isn’t a major deal for Port 1, because that side has everything programmed via WinIPAC to a single input, but when it does it to Port 2, well… Remember how the joystick is it’s own USB connection?

Yeah, it’s easy enough to fix when it happens, but it kinda spoils the fun a bit to have to go change the inputs after you start a game and realize your second player has no movement controls.

So I’d like to know if there’s any way to make Retroarch completely ignore the fact that the Mini-PAC Dinput devices exist at all. This way it should stick to keeping the emulated Xinputs where I want them(it has never shifted Xinput 2 to port 1 or vice versa - it always goes to MiniPAC 1 for Port 1 and Minipac 2 for Port 2)

An idea that crossed my mind is to set WinIPAC to keyboard input, which can then be mapped via X360CE for the same effect, but not knowing how Retroarch handles setting keyboard devices in this regard I felt I should inquire about this first - its kind of a pain to set button mappings in WinIPAC so I want to avoid doing that AGAIN if I can.

Sorry for the extended explanation, but I really wanted to avoid the question of “Why not set it up this way” for anything I’ve already tried. I thank you all in advance for any help you can provide.

First off, there’s no way in RetroArch to consistently ignore a device, other than to delete the autconfig profiles for it, though it may still use a fallback, so you might end up with a whack-a-mole situation.

Keyboards are always available underneath/alongside gamepads. If you set a device to be a keyboard and map P1 and P2 keys to it, those will not affect or interfere with devices that have P1, P2 … etc. buttons assigned to them. If you look in the retroarch.cfg, you’ll see every action has a btn, key and axis assignment available, and those can all coexist peacefully.

I generally recommend with IPACs that people treat them as keyboards and assign their panels that way and then they can connect any pads they want as needed.

So basically do what had already crossed my mind. Guess I’ll give it a go once I’ve finished sorting my games.

1 Like