Une des innovations de la Wii U, la console de Nintendo qui a succédé à la Wii, était sa manette : le GamePad s'inspirait des smartphones et des consoles portables et intégrait un écran tactile de 6,2 pouces, des contrôles, un gyroscope ou une caméra. Mais avec le temps, le GamePad peut avoir été cassé, peut être tombé en panne, etc. Comme Nintendo n'a jamais proposé cet accessoire seul à la vente en dehors du Japon, un développeur (MattKC) a décidé de proposer une implémentation open source, capable de fonctionner sur du matériel plus courant… et même bientôt sur un iPhone.

Le projet Vanilla est encore considéré comme une version alpha, mais il fonctionne directement sur le Steam Deck de Valve, sur les appareils qui fonctionnent sous GNU/Linux en général, sur une Nintendo Switch modifiée ou sur un Raspberry Pi. La page du projet indique que les smartphones Android et les appareils sous Windows sont aussi pris en charge, mais avec quelques limites. Enfin, ce qui pourrait en intéresser certains ici, iOS est noté « Coming soon », ce qui implique qu'une version pour transformer un iPhone ou un iPad en GamePad est bien prévue.
Le GamePad de Nintendo a un comportement un peu particulier : il n'exécute pas directement les applications. C'est une sorte de télécommande qui reçoit de la vidéo encodée par la Wii U elle-même, avec un concept proche d'AirPlay. L'ensemble peut donc être émulé assez facilement sur un appareil qui a idéalement un écran tactile et des contrôles (le Steam Deck est évidemment parfait pour cet usage) et est capable de décoder de la vidéo en H.264.

Selon le développeur de Vanilla, le principal problème vient de la liaison entre la console et le GamePad : Nintendo emploie une version légèrement modifiée du Wi-Fi 802.11n (Wi-Fi 4) dans la bande des 5 GHz. Ce choix particulier limite donc la compatibilité : il faut que le récepteur choisi dispose d'une puce de type SoftMAC, c'est-à-dire une puce qui implémente le Wi-Fi en partie logiciellement à travers le pilote. Les puces dites FullMAC (qui prennent en charge le protocole totalement matériellement) ne sont pas compatibles. Il y a une liste de compatibilité sur la page du projet, et c'est ce qui explique que les versions Windows et Android sont limitées : les deux systèmes d'exploitation ne permettent pas un accès bas niveau, nécessaire pour prendre en charge les modifications effectuées par Nintendo. Dans ce cas de figure, un autre appareil sous GNU/Linux (par exemple, un Raspberry Pi) peut s'occuper de la connexion elle-même, avec une carte compatible.
Source :