mupen64plus / mupen64plus-user-issues

Issue reports from users go here
http://www.mupen64plus.org/
17 stars 3 forks source link

360 controller Xinput not working #688

Open SpongeeJumper opened 7 years ago

SpongeeJumper commented 7 years ago

I'm running mupen64plus-bundle-win32-2.5 on Windows 10 with a Microsoft brand wired 360 controller on stock Microsoft drivers, and I can't figure out how to get it to recognize the controller as an XInput device instead of DirectInput. I want to be able to use both triggers at the same time, which is a long standing bug/design-flaw in the direct-input drivers for the 360 controller, but isn't an issue with XInput. I've confirmed the controller works fine in a native pc game that I know uses XInput.

The cmd output says: Input: 1 SDL joysticks were found. Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('Controller (XBOX 360 For Windows)') Input: 1 controller(s) found, 1 plugged in and usable in the emulator Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.

If i set it to manual and try to create the mapping i want in the cfg, the button and axis numbers correspond to the DirectInput mapping which means the left trigger is axis(2+) and the right trigger is axis(2-), which cancel each other out if you depress both at the same time. XInput would use axis(4+) and axis(5+), along with different numbers for most of the buttons too.

I tried deleting the whole [Win32: Controller (XBOX 360 For Windows)] section from InputAutoCfg.ini to see if it would recognize the [XInput: Controller (XBOX 360 For Windows)] section instead, but it just gave me this: Input: 1 SDL joysticks were found. Input Error: No auto-config found for joystick named 'Controller (XBOX 360 For Windows)' in InputAutoConfig.ini Input: N64 Controller #1: Forcing default keyboard configuration Input: 1 controller(s) found, 1 plugged in and usable in the emulator Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.

(on a side note the [Win32: Controller (XBOX 360 For Windows)] section lists R Trig = button(5) axis(5+) but only the button actually works because the DirectInput driver doesn't actually have an axis(5))