Nintendo Switch NES controller dpad not working

I have built a basic 2D platformer and I want to be able to play it on my windows computer using the Nintendo Switch NES controller.
I have gotten it partially working but not fully.
The A and B buttons on the controller both work but for some reason I cannot get the DPad to work at all.
I have tried using the DPad property on GamePadState and the IsButtonDown method and neither are working.
Does anyone have any insight to what could be going wrong?

If your project is a WindowsDX build, then it is probable that your controller does not support x-input. If it is a DesktopGL build, then SDL’s controller DB (used by MG) is probably missing an entry for that controller.

Assuming your controller is meant to be used with Windows, it almost certainly supports x-input. Given that, if you only need to support Windows (and not Mac or Linux), I would recommend switching your project to WindowsDX. That is, assuming you’re currently using DesktopGL MonoGame.

1 Like