JoystickState.Hats (DPad) Down & Left are wrong.

Hi, i noticed that on MG release, for my wired xbox 360 gamepad, and my Hori 360/PC arcadestick the JoystickState.Hats[0] down & left returned values are wrong, pressing Down return Left pressed, and pressing Left do nothing at all.

Joystick class only reads raw input so it’s actually just your joystick that actually has upside down keybindings. That is totally normal.

In every other program those 2 different devices return good directinput values (think emulators for exemple), plus they’re not just upside down, as when i press down it change left value = pressed, but when i press left no value changes. I should add that i didn’t got this problem with 3.5 + OpenTK + SlimDX.

Maybe i don’t get what you mean. sorry, could you elaborate please?

It’s just reading the raw data, it’s not trying to remap it in any way… take for example this, if you connected that same controller to the Linux it wouldn’t even detect hats but would instead have 2 extra axis.

I don’t really know how else to describe it… we are just reading whatever the hardware driver sends and presenting it to you without any modifications.

Oh i see. That’s pretty strange so. It’s not a concern anymore for me (as i use an hybrid detection from Gamepads & Joysticks), but i thought it was a bug and so i posted.

I suppose other programs use some sort of middleware or custom drivers to “get it right”. idk.

Thank you for clarifications.

Are you entirely sure there is no bug related to the joystick hats? I have tested 3 entirely different gamepads and the DPads on all of them exhibit the exact behavior described by the original poster.

There is a bug with the enum, I’ll see to fix it later today.

Thank you for your help.