Sour wrote:That's odd - Mesen uses both XInput & DirectInput. It uses XInput for devices that support it (because it is easier to use and more reliable from a code perspective), and falls back to DirectInput when the device doesn't support XInput.
At the very least, it works for XBox 360/One (XInput) and PS4 controllers (DirectInput). But unfortunately that's all I have to test with, I'm pretty sure my old Gravis Gamepad has been thrown in the trash long long ago :)
Is there anything I can do to help? Some kind of debug build I can run that might display enumerated DirectInput devices (to verify Mesen is seeing it at all), or a lower-level DirectInput dump for device input? Or maybe buy you one of these PS/PS2-to-USB adapters (I could even include a PS2 joypad if you need one)?
Edit: I figured it out. Mesen makes the blind assumption that the system only has 1 single joypad/game input device. If you have more than one, and "the default" (or, more likely, whatever the first entry in enumeration returns) chosen is not what you actually have hooked up/are using, then yeah, no input is detected. Let me rephrase:
The
PS/PS2-to-USB adapter I use has 2 PS/PS2 joypad ports on it, i.e. it can be used for up to 2 players. So, in Windows, what shows up (in Device Manager) is 2 HID-compliant game controllers (one for each port). I had my PS2 joypad hooked up to the 2nd port ("2nd device"). Mesen only cared about the 1st device. This is why Nestopia (as a comparative example) under Options -> Input gives you a pulldown of joysticks/devices you can pick from (with the above adapter, you get 2 devices named "Twin USB Joystick" (one per port)). I simply moved the joypad to the other port and instantly Mesen was able to detect the input.
I've run into this problem in other games (commercial ones on Steam), many which don't give you the ability to pick which device/thing you want as your joypad. Some using SDL end up picking the 2nd device/port (?!?!?) by default, while other titles would pick the 1st. I think the enumeration order just happens to vary based on several factors, which is why being able to get a list of devices + select the one you want is important. Not picking on Mesen at all in the least, but it's almost like these programmers are blindly assuming you only have one joypad or HID-compliant device. Bad assumption!