Page MenuHomeFeedback Tracker

macOS 14.0 ARM64 Native Runtime USB HID Joystick not detected (game can see the BT HID PS5 controller).
New, NormalPublic

Description

Hello world :-)

I was trying the Native MacOS ARM64 build and it works very nice. But USB HID Joystick (Thrustmaster FlightStickX) is not detected by the game. Game can see the Bluetooth HID connected Playsation 5 controller.

That USB HID joystick works fine on Windows runtime.

Details

Severity
None
Resolution
Open
Reproducibility
N/A
Operating System
MacOS
Operating System Version
macOS 14.0 M2Max CPU (ARM64)
Category
Controls
Steps To Reproduce
  1. Connect USB HID Joystick to Mac Silicon (ARM64) workstation.
  2. Run ARM native runtime Arma3 on macOS 14.0.
  3. See that joystick is not detected.

Event Timeline

cederom created this task.Oct 17 2023, 3:11 PM
dedmen added a subscriber: dedmen.Oct 19 2023, 3:53 PM

On Windows, there are two major joystick/gamepad APIs - the old one, DirectInput, which allowed much configuration, and the relatively new and simpler one, XInput, which simulates every gamepad as an XBox one.
On Mac, there is Gamepad API, which corresponds to the XInput one. Essentially, macOS talks with the gamepad or joystick, and it presents it to us as a kind of a gamepad, similar to XBox one, PS one, etc.
In theory, on Mac there is also an older HID API, which is supposed to support more exotic gamepads, more in depth. The problem is, hardly any company submits drivers to Apple to support it properly, so HID doesn’t detect most joysticks.
In fact, using it, we were less successful in getting even the standard gamepads to work as well as Apple’s Gamepad API does.
We just can’t do it all in-house, the best solution we came up with was per-gamepad-model configuration files, similar to what Steam and SDL do, and then, in most cases, the gamer can’t be relied upon to put in the work to figure out the proper configuration file. So it was a dead-end way of trying to support everything possible.
With the newest Arma 3 port we stuck with the Gaamepad API, since that’s what Apple recommends, and that’s the only way we could be sure the popular joysticks and gamepads are supported well. So we are restricted to what Apple’s Gamepad API detects. When it works, it works out of the box. It work with many more gamepad and joystick models than we could buy and test in-house.
But if it doesn’t detect Thrustmaster FlightStickX, the game won’t either.

So.. Mac Issue?

I thought so too at first.. but it does not seem to mac issue.. there is a Joystick Monitor application that can detect this joy on connect and correctly reads all values.. screenshots attached :-)

This comment was removed by BIS_fnc_KK.