Si vous lisez MacGeneration, vous l’avez vu : macOS Ventura et iOS 16 supportent la manette Stadia. Mais ce n’est pas la seule des manettes, il y a aussi les manettes de la PlayStation 3… et probablement quelques autres.
Je résume un peu, mais en gros Apple dispose d’une API maison (on l’appeler MFi) pour gérer les manettes et beaucoup de jeux issus de l’App Store (par exemple les titres Apple Arcade) n’utilisent que cet API. Le problème principal, c’est que la majorité des manettes, à l’origine, ne prend en charge que le standard USB HID (identique en Bluetooth) ou – pour les manettes Microsoft – le XInput (propriétaire lui aussi). Pendant un temps, Apple a imposé une compatibilité directe pour les manettes : les fabricants devaient valider les manettes, avec en plus (éventuellement) une prise en charge du HID. C’est le cas de la Nimbus, par exemple, ou plus récemment de la Backbone One.
Mais à un moment, cette stratégie n’a plus fonctionné et Apple a décidé de prendre en charge les manettes des autres fabricants, mais avec une liste blanche. Les OS d’Apple supportent donc officiellement les manettes Nintendo (depuis peu), Microsoft et Sony. La compatibilité est limitée (en gros, il faut une manette officielle) et la sortie d’une manette spécifique pose parfois des soucis (il a fallu attendre pour la manette Elite 2 chez Microsoft) mais ça passe. Mais avec macOS Ventura et iOS 16 (au sens large), Apple ouvre un peu les vannes.
En fait, il y a un fichier nommé GenericGamepadHIDServicePlugin.plugin
qui, comme son nom ne l’indique pas réellement, prend en charge plus de manettes… mais pas toutes (c’est loin d’être générique). C’est probablement grâce à lui que les manettes Nintendo Switch Online passent presque.
Du coup, j’ai testé quelques manettes qui traînaient chez moi. Ma manette de Freebox… ne fonctionnent pas. Elle n’est même pas reconnue en USB, mais il faut bien dire que c’était un produit foireux. En vrac, ça ne fonctionne pas avec une vieille manette Orange, une manette « Pippin » en USB ou une manette Logitech qui vibre. Mais il y a quand même quelques cas ou ça passe.
Le premier n’est pas génial, c’est ma manette de Saturn (officielle) en USB : seule le bouton Start est reconnu (j’avais eu le problème avec certaines manettes Switch).
La manette Stadia
Le second, c’est donc la manette Google Stadia. J’en avais parlé, cette manette est particulière : elle n’est pas Bluetooth, mais Wi-Fi. Mais elle fonctionne en USB-C. Elle fonctionne directement sur un Mac et est donc reconnue comme une manette MFi, et ça marche aussi sur un iPad en USB-C (selon des lecteurs de iGen).
Et sur un iPhone ? Et bien, ça fonctionne aussi, mais pas facilement. Il faut en effet un adaptateur Lightning vers USB dans sa seconde variante (celle avec une prise Lightning femelle) suivi d’un USB-A vers USB-C. Dans ce cas de figure (et avec l’iPhone alimenté), ça marche. Avec l’adaptateur de première génération (sans prise d’alimentation), ça ne marche pas. Que ce soit sur Mac ou sur iPhone, tous les boutons fonctionnent mais pas les vibrations.
Les manettes de PlayStation 3
Le cas des manettes de PlayStation 3 est plus intéressant. En effet, Apple a développé son API avec les manettes en question (il faut remonter à iOS 7 et Mac OS X Mavericks) mais n’a jamais ajouté le support. C’était possible en jailbreak… mais c’est tout. Et avec macOS Ventura, ça fonctionne, mais uniquement en filaire et avec une petite manipulation. En fait, les deux manettes de PlayStation 3 (la Sixaxis originale et la DualShock 3) ne fonctionnent pas directement en filaire (en Mini USB) et nécessitent un petit logiciel qui va activer le mode HID (et, sous macOS Ventura, la compatibilité HID). Le programme sixaxis-usb que j’avais compilé pour les Mac « modernes » il y a quelques années fonctionnent parfaitement pour ça. Il faut donc brancher la manette et simplement lancer le programme pour forcer le mode filaire et ça marche (là aussi sans vibrations).
Une fois que c’est fait, la manette marche avec les jeux Apple Arcade comme n’importe quelle manette MFi. Ce n’est évidemment pas le plus pratique, ce qui explique le second post du jour, avec une petite demande. Au passage, j’ai testé avec une Sixaxis et une DualShock 3, les deux sont fonctionnelles.
Je rappelle quand même que le choix le plus pratique et moderne consiste à attendre une promotion sur la manette des Xbox Series. Elle vaut 60 € officiellement mais se trouve régulièrement sous les 50 €, avec une finition excellente.
Mais … pourquoi autant de protocoles différents?
C’est vraiment un truc qui me dépasse … Quel intérêt sur un simple périphérique d’entrée???
Deux raisons principales.
• Chez Apple, c’était clairement dans un but commercial, pour vendre des manettes avec une licence.
• Chez Microsoft, à l’époque, c’est en partie parce que le standard USB était pas aussi complet, en partie parce que même chose, ça permet de gérer des licences.
Les autres utilisent le standard HID, mais parfois avec des modifs idiotes (Nintendo avec la Wii était pas mal)