GamePadState Not Reading D-Pad


Just testing an Xbox 360 controller with my game. It seems to be working OK but I can’t get any input for the D-Pad.

GamePad.GetState().IsButtonDown(Buttons.DPadRight) etc always seems to be returning false.

I’m using the GL MonoGame running Windows 8.1.

Also the up/down of the thumbsticks seems to be inverted!

Are these known issues and is there anything i can try to solve this? Bit of a Windows noob.


Just testing my game and have exactly the same issue as BitBull, DPad isButtonDown not responding to input.

Windows Universal App. Windows 10.

I believe it’s a known bug that Up and Down aren’t inverted but simply return the same value, I personally fixed it like this:
if ( GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.Y > 0)
if ( GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.Y < 0)
Along with the rest of the code

I’m also having the issue with IsButtonDown for Dpad buttons. There’s an easy workaround. Just check like this:

GamePad.GetState(PlayerIndex.One).DPad.Right == ButtonState.Pressed

Still it would be nice if the IsButtonDown function would work. IsButtonUp has the same problem.

FYI. A fix for this was implemented in the develop branch just a few days ago:

It will be part of the 3.5 release which is coming in the next few weeks.