3

I haven't seen much of a variation in the Windows joystick/gamepad properties window. Here is what it looks like with my PowerA controller plugged in:

enter image description here

Despite having two independent analog thumb sticks, there is only a single crosshair display. The other two "axes" are instead displayed as the "Z Axis" and "Z Rotation". The D-pad maps to the PoV hat.

I think that instead of additional crosshair displays, it just adds more little gradient bars. But what if there are multiple hats? Do they get mapped as buttons?

3 Answers 3

1

TL;DR

This would depend on the controller, but most likely your additional D-Pads will show as additional buttons.


There are currently 2 major APIs (Application Programming Interface) in use for controllers in Windows: DirectInput, and the newer XInput.

XInput was designed specifically for the Xbox 360 (and later adapted for the Xbox One), and therefore only supports:

  • 4 axes
    • X Axis & Y Axis (left stick)
    • X Rotation & Y Rotation (right stick)
  • 2 triggers (both mapped to Z Axis)
  • 10 buttons (ABXY, LB/RT, Back/Start, LS/RS)
  • 8-directional POV

In other words, there is no way to add a second D-Pad without removing at least 4 existing buttons (or one analog stick) on an XInput game controller.

DirectInput meanwhile, was designed much earlier, and was part of DirectX since version 1 in 1995. It is far more flexible than its successor (XInput), and the DS4 (PS4 controller) and Nintendo Switch controllers (both JoyCon and Pro Controller) use it. DirectInput supports:

  • 8 axes
  • 128 buttons
  • Full-range POV

Therefore, an additional D-Pad would have to be implemented as 2 additional axes (unlikely), or 4-8 additional buttons.

As implemented by the DS4:

  • 6 axes
    • X Axis & Y Axis: left stick
    • Z Axis & Z Rotation: right stick
    • X Rotation & Y Rotation: L2 & R2 (triggers)
  • 14 buttons: square/cross/circle/triangle, L1/R1, L2/R2 (again), Share/Option, L3/R3, PS button, Touchpad
  • 8-directional POV

As implemented by the Nintendo Switch Pro Controller:

  • 4 axes
    • X Axis & Y Axis: left stick
    • X Rotation & Y Rotation: right stick
  • 16 buttons: BAYX, L/R, ZL/ZR, -/+, LS/RS, Home/Share, and 2 unknown buttons
  • 8-directional POV
1
  • Excellent. So what I'm seeing is how it would be laid out by DirectInput. This makes a lot of sense. Thank you.
    – Zhro
    Commented Oct 12, 2019 at 3:58
4

Windows supports multiple POV hat switches under the old Direct Input API, (the one before the advent of the Xbox 360 contoller, which is X-Input). So I'm talking about any respectable force feedback steering wheel, or older gamepads like the Saitek P2600 Rumble Pads, or the Logitech F710 pads in DI mode.

The Windows Joystick Manager (joy.cpl) in any modern version of Windows will support and show up to four independent POV switches.

The actual graphical interface however will only ever show one "Point of View Interface" image, but it will respond to four different HAT switches at once. Note that a HAT switch is different from traditional buttons, so as far as I know this can be used to circumvent absolute joystick button limitations in certain older games.

It does however depend on your joystick hardware & drivers being truthful and actually reporting its multiple POVs as independent HATs and not just a collection of traditional buttons under nice physical mini-joysticks on your pad or stick (or as we call them in sim racing; funky switches).

See the picture below:

enter image description here

Note the Point of View interface and the four colours representing four independent (4/8 way) HAT switches.

POV0 input is represented by Red, POV1 by Blue, POV2 by Black and POV3 input is represented by Yellow (or is that Green??) and they can all be activated independently.

Personally, I only became interested in this myself due to being a sim racer and mainlying playing an old sim game from 2006 called GTR 2 Racing (in more modern form of course, complete with VR and a DD drive wheel base). GTR 2 supports a maximum of 3 joysticks, each with a maximum of 21 regular buttons, far less than my high-end racing wheel button plate has, however it does support multiple POVs and thus by remapping all the buttons over 21 as a further three 4 way HATs (12 additional buttons), I was able to get multiple controllers working under a single "virtual controller", (hence the "vJoy device" as the name of the joystick).

Amazing how far software has come these days.

1
  • Thank you for the update. I'm writing my own DirectInput interface and have a duplicate implementation of the game controller test UI to validate all of my functions. I didn't have support for multiple hats, so I'll have to get some kind of controller to be able to test this.
    – Zhro
    Commented Oct 11, 2023 at 22:03
2

Can the Windows controller properties dialogue display multiple hats?

It can certainly display multiple crosshairs.


As a specific example of the principles explained in Nolonar's answer

I have a Speedlink Strike NX which has a mode button that can be used to switch between DirectInput and XInput.

nx controller

This is how it appears in the properties/calibration dialogue:

First in it's normal DirectInput mode:
NX DirectInput Properties
(crosshairs for both analog thumb-sticks. Pov is the D-Pad, everything else is buttons)

Secondly in it's alternate XInput mode:
NX XInput properties
(Right thumbstick is X,Y-rotation bars. L2 & R2 analogue triggers are Z-axis 0-50% and 50-100%)

So yes, The properties dialogue in Windows 10 can display two crosshairs displays. Whether it does depends in part on which input modes the controller supports.

According to Wikipedia

XInput supports maximum of 4 axes, 10 buttons, 2 triggers and 8-direction digital pad per controller, compared to DirectInput's support for 8 axes, 128 buttons, and full-range POV.

I've not seen a properties dialogue with more than one Pov Hat element.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.