SteelSeries Nimbus support on Mac and iOS

I recently purchased a SteelSeries Nimbus controller for Mac OS X and iOS. It seems to generally work well in SDL applications, but there are some shortcomings. On Mac OS X, the Y-axis of the two thumbsticks are inverted, but everything else seems to function. On iOS, it identifies the controller as a “Generic Controller,” it sees the D-pad buttons as hats (instead of buttons 9-12 on Mac OS X), and buttons 7 and 8 (labeled L2 and R2 on the controller itself, the lower trigger buttons) do not work at all.

I found another topic (https://forums.libsdl.org/viewtopic.php?p=49147#49147) where it looks like some changes were made to the iOS joystick code to invert the Y-axis. Perhaps that explains why the thumbstick orientation is different between Mac OS X and iOS. I couldn’t find much else on the subject, though.

Any ideas on what it would take to have full support for this controller on Mac OS X and iOS?

macsforme wrote:

Any ideas on what it would take to have full support for this controller on Mac OS X and iOS?

Possibly adding support to the Game Controller DB, and/or calling SDL_GameControllerAddMapping()? I’m not sure about that, though, especially with regards to flipping an axis. (I have little experience working with SDL’s game controller APIs).

– David L.

The controller reports its own thumbstick y-axes as inverted compared to other gamepads (when querying its inputs via the HID APIs), unfortunately. That?s up to the gamepad itself.

SDL on iOS uses Apple?s GameController framework to handle gamepads. I?ve made the SDL_Joystick inputs for that backend match SDL?s XInput backend as closely as possible, since those two backends accomplish effectively the same thing (platform-specific gamepad APIs used for SDL’s Joystick APIs, rather than generic platform joystick APIs used for SDL?s joystick APIs).

The triggers are exposed as axes rather than buttons.

On both iOS and Mac OS X you can use the SDL_GameController API to get consistent inputs (so e.g. the triggers of a gamepad generate the same GameController event on all platforms), and I highly recommend you do so. Unfortunately it still doesn?t have the ability to invert joystick axes, so in OS X the nimbus? thumbsticks still have their y axes in the opposite direction that you?d expect.> On May 27, 2016, at 6:37 PM, macsforme wrote:

I recently purchased a SteelSeries Nimbus controller for Mac OS X and iOS. It seems to generally work well in SDL applications, but there are some shortcomings. On Mac OS X, the Y-axis of the two thumbsticks are inverted, but everything else seems to function. On iOS, it identifies the controller as a “Generic Controller,” it sees the D-pad buttons as hats (instead of buttons 9-12 on Mac OS X), and buttons 7 and 8 (labeled L2 and R2 on the controller itself, the lower trigger buttons) do not work at all.

I found another topic (https://forums.libsdl.org/viewtopic.php?p=49147#49147 https://forums.libsdl.org/viewtopic.php?p=49147#49147) where it looks like some changes were made to the iOS joystick code to invert the Y-axis. Perhaps that explains why the thumbstick orientation is different between Mac OS X and iOS. I couldn’t find much else on the subject, though.

Any ideas on what it would take to have full support for this controller on Mac OS X and iOS?


SDL mailing list
SDL at lists.libsdl.org <mailto:SDL at lists.libsdl.org>
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org