Game Controller (Bluetooth Device Developer) Important!!!

Is it mandatory to use classic Bluetooth (Bluetooth Classic) to connect game controllers that support Apple’s MFi games and Arcade games, or can game controllers be developed using only Bluetooth Low Energy (BLE) for such accessories?

Answered by DTS Engineer in 821651022

Our controllers were designed as part of our "Zapbox" iPhone-powered VR / MR product. They come as a left/right pair and have the same inputs as Meta Quest ones, so a bit non-standard and not a perfect match to the Extended Gamepad profile, but could get close as a pair (a bit like the iOS Joy-Con support).

Cool! That looks like an interesting product!

Given the low volume and non-standard setup I won't waste your time with a request to add it specifically.

Please reconsider that choice, file the bug, then post the number back here. One of the important things to understand about filing bugs is that it isn't simply about telling us about issues so we'll fix them. The larger role (and sometimes more significant) is to provide input about what you actually need or want, particularly when it comes to making decisions about where we put our development errors. Critically, the single most important question about any API change or addition is "Will someone actually use this?". Developer bugs are what change that conversation from a theoretical "Well, I think so..." to a practical "Yes, and here are the stack of bugs that prove it...".

It doesn't cost anything to ask and even if we don't add support to directly, it might lead to other changes that do provide value in the future.

On a separate note, now iOS does support Joy-Cons we're also considering supporting those as controllers with our apps. Unfortunately motion data isn't reported from Joy-Cons with the GameController API even when only one is connected. When two are connected iOS combines them into a single GameController so it would need new API to expose two different sets of motion data in that case too. I will file a bug on that.

Thank you, and please post the bug number back here as well.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Is it mandatory to use classic Bluetooth (Bluetooth Classic) to connect game controllers that support Apple’s MFi games and Arcade games, or can game controllers be developed using only Bluetooth Low Energy (BLE) for such accessories?

This is tricky to answer because we've provided very little public documentation about exactly how game controller support works. Here is what I can say:

  1. MFI licensed controllers use Bluetooth Classic. For more information on that, you'd need to join the MFI program.

  2. The GameController framework also supports a broader range of controllers, however, we've said very little about exactly what that support entails. All we've really said is that it supports the major PlayStation and Xbox controllers, as well as "other Bluetooth game controller".

However, our Xbox support is enough to answer this question:

can game controllers be developed using only Bluetooth Low Energy (BLE)

Several Xbox controllers (depending on model version) and the "Xbox Elite Wireless Controller Series 2" in particular are specifically BLE devices, so this is technically possible.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

I'm also trying to figure out if the Game Controller iOS support extends to generic HID BLE gamepad peripherals and the limited documentation of what is supported is proving challenging. I don't know if Game Controller always filters to known controllers only or if generic ones are supported but I just haven't found the right setup yet.

I've tried various HID report descriptors from basic 2-axis, 2-button ones to ones copied from supported controllers. They successfully pair but never show up in the Game Controller framework as controllers in either macOS or iOS. They do work in Windows, Android, and Chrome on macOS through the gamepad API (presumably using some other HID device implementation rather than Game Controller framework)

These controllers already exist and are BLE only, so I'm hoping a firmware update will enable them to work with the Game Controller framework on iOS / macOS too. I'll stop trying if it's just not something that's possible without some sort of hardware license from Apple.

I don't know if Game Controller always filters to known controllers only

Currently, that's what it's currently doing. I don't have a list of officially supported controllers, but it includes the major console vendor controllers and a number of other popular controllers. If you have a controller in production that you believe we should consider supporting, then the next step would be to file a bug asking for us to add support for it. As part of that bug, make sure you include marketing links to the product itself as well as the hardware level details we can use to identify it.

If you've already filed a bug on this, then you can also post the bug here and I'll make sure the right team has the opportunity to review it.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Thanks Kevin, great to have the confirmation, that saves me a lot of time of trial and error.

Our controllers were designed as part of our "Zapbox" iPhone-powered VR / MR product. They come as a left/right pair and have the same inputs as Meta Quest ones, so a bit non-standard and not a perfect match to the Extended Gamepad profile, but could get close as a pair (a bit like the iOS Joy-Con support).

Given the low volume and non-standard setup I won't waste your time with a request to add it specifically.

On a separate note, now iOS does support Joy-Cons we're also considering supporting those as controllers with our apps. Unfortunately motion data isn't reported from Joy-Cons with the GameController API even when only one is connected. When two are connected iOS combines them into a single GameController so it would need new API to expose two different sets of motion data in that case too. I will file a bug on that.

Accepted Answer

Our controllers were designed as part of our "Zapbox" iPhone-powered VR / MR product. They come as a left/right pair and have the same inputs as Meta Quest ones, so a bit non-standard and not a perfect match to the Extended Gamepad profile, but could get close as a pair (a bit like the iOS Joy-Con support).

Cool! That looks like an interesting product!

Given the low volume and non-standard setup I won't waste your time with a request to add it specifically.

Please reconsider that choice, file the bug, then post the number back here. One of the important things to understand about filing bugs is that it isn't simply about telling us about issues so we'll fix them. The larger role (and sometimes more significant) is to provide input about what you actually need or want, particularly when it comes to making decisions about where we put our development errors. Critically, the single most important question about any API change or addition is "Will someone actually use this?". Developer bugs are what change that conversation from a theoretical "Well, I think so..." to a practical "Yes, and here are the stack of bugs that prove it...".

It doesn't cost anything to ask and even if we don't add support to directly, it might lead to other changes that do provide value in the future.

On a separate note, now iOS does support Joy-Cons we're also considering supporting those as controllers with our apps. Unfortunately motion data isn't reported from Joy-Cons with the GameController API even when only one is connected. When two are connected iOS combines them into a single GameController so it would need new API to expose two different sets of motion data in that case too. I will file a bug on that.

Thank you, and please post the bug number back here as well.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Game Controller (Bluetooth Device Developer) Important!!!
 
 
Q