Ability to tell gamepad type? (Xbone, Ps4 ect)

Hi, I was looking through the documentation and haven’t found anything allowing me to do this. I’m simply looking to be able to discern the gamepad type, be it Xbox or PlayStation.

I am aware that I could do this using target platform identifiers, but I would like in-game GUI prompts to fit the controller in use on PC, is there any way of doing this?


Ive looked into every variable in the GamePad class, there don’t seem to be any way to know the controller type.

I tried haxxing the problem by using SharpDX to read all the controller names. But the index order is not always the same on the built in GamePad and the SharpDX result.

A haxx that could work is to wait for a press START input, and then see if any of the SharpDX controllers get the same input, at the same frame.

This could be something worth suggesting as an update.

You can use Gamepad.GetCapabilities().DisplayName or Gamepad.GetCapabilities().Identifier to figure out the gamepad type.

No I can’t. In Monogame v 3.6 there is neither DisplayName or Identifier, when using GamePad.GetCapabilities(index).

What version are you running?

You need the development version, forgot that they are still not in stable.