The SDL forums have moved to discourse.libsdl.org.
This is just a read-only archive of the previous forums, to keep old links working.


SDL Forum Index
SDL
Simple Directmedia Layer Forums
SteelSeries Nimbus support on Mac and iOS
macsforme


Joined: 06 Nov 2010
Posts: 5
Location: Arizona, USA
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?
Re: SteelSeries Nimbus support on Mac and iOS
DLudwig


Joined: 09 Feb 2012
Posts: 179
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.
SteelSeries Nimbus support on Mac and iOS
Alex Szpakowski
Guest

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.
Quote:
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) 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 mailinghttp://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org