My game works fine with XBOX One and 360 controllers, but this one doesn’t seem to be detected. However, windows detects it and registers button presses, and it work for other applications (tested with an emulator and some steam games).
What flavour of MonoGame are you using? DirectX or OpenGL? DirectX uses XInput, which should just work. I can’t recall what the OpenGL version did in the 3.5 release. I think it used OpenTK’s input which may need some mapping for the controller.
I’d recommend trying the latest development builds of MonoGame. They switched to SDL instead of OpenTK which solved the gamepad issues I was having (different issues than yours).
I have a couple USB SNES controllers myself and they work, although they are different than what you have and the mapping is a bit wacked out on them.
Yes that’s correct, but he doesn’t need to build from source if he doesn’t want to. The downloads page has links for the development build installers. http://www.monogame.net/downloads/
This is not relevant for a Windows DX project, that only changed for OpenGL projects. It’s XInput in the backend for Windows DX in 3.5 and develop. I don’t know how/if you can map keys if they’re not recognized by XInput though
I am now on 3.6 and still no luck. I also tried the GL version of MonoGame, and it also does not detect the gamepad.
When I run this SDL input sample app, it does detect my gamepad. Do you know where MonoGame stores its gamepad mapping database? (something like this: https://github.com/gabomdq/SDL_GameControllerDB)
You’re right, if it works in latest SDL and not in MG it’s because the mapping is not up to date. In develop the mapping is updated to a newer version that supports your controller. The mapping is embedded in the MG Frameworm .dll, so there’s no easy way to update it. We should probably change that