MFi Controllers on OSX

There is specific documentation stating that MFi controllers should work on OSX here. However, my controller is not being recognized as the documentation suggests it should. I have a MadCatz CTRLi, if that makes a difference. Additionally, I have connected it to my Apple TV and iPhone flawlessly, exactly as the documentation describes, which suggests to me that OSX is lacking something in the support department. I even tried the class method


  [GCController startWirelessControllerDiscoveryWithCompletionHandler:^{
  }];

to see if it OSX just requires you to explicitly connect once the app is launched, but the array remains empty when I call

[GCController controllers];


Does OSX even have support for MFi controllers, or did it get shoved aside at some point before it was finished?

Accepted Reply

According Mad Catz (as stated in your link), the controller isn't licensed to support Mac OS X. The Steelseries Stratus XL is specifically marketed as having Mac OS X support, so I assume they have both an OS X and an iOS license for that controller.


The Stratus XL is usable through the GameController framework in OS X (I can easily test by compiling and running Apple's DemoBots sample code). It's also usable through Apple's low level IOKit HID APIs. Most games in OS X only try to use gamepads through the IOKit APIs – for example the popular SDL library doesn't support GameController.framework in OS X at the moment, but it does use IOKit HID APIs for joystick input, and Steam's Big Picture mode uses SDL – so my Stratus XL works in Steam's Big Picture mode.

Replies

Are you asking as a user, or as a dev with a provisioned chip?

I don't know about the Mad Catz CTRLi, but my SteelSeries Stratus XL works fine in OS X. Perhaps Mad Catz didn't implement OS X support for their controller.

According to MadCatz documentation (edit: same thing, no download), they are waiting on Apple to implement MFi on OSX and that's where my confusion comes in as OSX dev documentation mentions support for MFi controllers.


As for your controller, are you saying you develop with it and it works, or that it works with games you play? And if games, what would some of those be that I might be able to try with my controller?

According Mad Catz (as stated in your link), the controller isn't licensed to support Mac OS X. The Steelseries Stratus XL is specifically marketed as having Mac OS X support, so I assume they have both an OS X and an iOS license for that controller.


The Stratus XL is usable through the GameController framework in OS X (I can easily test by compiling and running Apple's DemoBots sample code). It's also usable through Apple's low level IOKit HID APIs. Most games in OS X only try to use gamepads through the IOKit APIs – for example the popular SDL library doesn't support GameController.framework in OS X at the moment, but it does use IOKit HID APIs for joystick input, and Steam's Big Picture mode uses SDL – so my Stratus XL works in Steam's Big Picture mode.

I guess that could be it, but they also state that they are waiting on Apple to implement the API.

Then there you go...you have your answer.