Manette non reconnue dans l'émulateur ? Réglez le problème en 5 minutes

Votre manette ne fonctionne pas dans votre émulateur de navigateur ? Ce guide vous accompagne pas à pas dans le débogage de la Gamepad API, la configuration des drapeaux du navigateur, les particularités des modes de commutation et les solutions de repli USB pour vous remettre à jouer rapidement.

Dernière révision par RGS Editorial le

Pourquoi votre manette cesse de fonctionner

Lorsqu'une manette ne fonctionne pas dans un émulateur s'exécutant dans votre navigateur, la cause n'est presque jamais l'émulateur lui-même — il s'agit généralement de l'une de ces trois choses : le système d'exploitation n'a pas terminé le jumelage de l'appareil, le navigateur n'a pas reçu d'appui sur un bouton pour activer la Gamepad API, ou la manette émet dans un mode que le navigateur ne reconnaît pas. Suivez les étapes ci-dessous dans l'ordre indiqué et la plupart des configurations sont corrigées en moins de cinq minutes.

La Gamepad API du navigateur (normalisée dans la spécification W3C Gamepad) exige un geste explicite de la part de l'utilisateur — en l'occurrence un appui sur un bouton de la manette elle-même — avant de signaler tout appareil à une page web. Cette seule exigence est à l'origine de plus de problèmes que n'importe quelle autre cause, c'est pourquoi le guide commence par là.

Étape 1 — vérifier que la manette est jumelée

Avant de toucher aux paramètres du navigateur, confirmez que la manette est reconnue au niveau du système d'exploitation. Ouvrez gamepadtester.net dans n'importe quel onglet de navigateur et appuyez sur un bouton de votre manette. Si une fiche de manette apparaît et que les axes ou les boutons répondent, le système d'exploitation a correctement jumelé l'appareil et vous pouvez passer à l'étape 2. Si rien n'apparaît, le problème n'est pas lié à la configuration de la manette dans l'émulateur de navigateur — il s'agit d'un problème de jumelage qui doit d'abord être résolu dans votre système d'exploitation.

Sous Windows 10 et 11, accédez à Paramètres → Bluetooth et appareils → Appareils et recherchez votre manette sous « Autres appareils ». Les manettes Bluetooth qui apparaissent dans cette liste mais affichent « Non connecté » ont perdu leur session de jumelage ; supprimez l'appareil et procédez à un nouveau jumelage. Sous macOS 13 et versions ultérieures, utilisez Réglages système → Bluetooth. Les utilisateurs de Linux peuvent exécuter la commande « bluetoothctl devices » dans un terminal pour lister le matériel jumelé.

Les manettes filaires USB devraient apparaître immédiatement dans gamepadtester.net sans aucune étape de jumelage. Si une manette filaire n'y apparaît pas, essayez un port USB différent (de préférence un port directement sur la carte mère plutôt que sur un concentrateur), puis vérifiez le Gestionnaire de périphériques sous Windows ou la commande « lsusb » sous Linux pour confirmer que l'appareil est bien énuméré. Une manette que le système d'exploitation ne peut pas énumérer ne pourra être transmise à aucun navigateur.

Étape 2 — le navigateur détecte-t-il la manette

En supposant que gamepadtester.net confirme le jumelage au niveau du système d'exploitation, la question suivante est de savoir si le navigateur expose la Gamepad API à la page de l'émulateur. Si la Gamepad API ne fonctionne pas sur un site spécifique alors que gamepadtester.net fonctionne, c'est un signe fort qu'un drapeau du navigateur est désactivé, ou que la page de l'émulateur est servie avec un en-tête Permission-Policy qui bloque la fonctionnalité « gamepad ».

Dans Chrome et les navigateurs basés sur Chromium (Edge, Brave, Opera), collez « chrome://flags/#enable-gamepad » dans la barre d'adresse. Si le drapeau existe dans votre version et est défini sur « Disabled », passez-le à « Enabled » et relancez le navigateur. Dans la version stable actuelle de Chrome (version 124 et ultérieures), ce drapeau est activé par défaut, son absence est donc normale — il ne s'agit pas d'un problème.

Firefox expose une préférence similaire : ouvrez « about:config », recherchez « dom.gamepad.enabled » et confirmez qu'elle est définie sur « true ». Firefox conditionne également l'accès à la manette à un contexte sécurisé (HTTPS), de sorte qu'une page d'émulateur servie en HTTP simple ne pourra jamais détecter les manettes dans Firefox, quelle que soit la valeur de cette préférence.

Si l'émulateur est hébergé sur un site que vous contrôlez ou pouvez inspecter, ouvrez les Outils de développement (F12) et vérifiez les en-têtes de réponse de la page principale. Un en-tête tel que « Permissions-Policy: gamepad=() » bloque explicitement tout accès aux manettes pour cette origine. Vous ne pouvez pas contourner un en-tête Permission-Policy envoyé par le serveur depuis le côté navigateur ; l'opérateur du site doit le supprimer ou l'assouplir. Pour les émulateurs auto-hébergés fonctionnant en local, cet en-tête n'est généralement pas présent.

L'exigence la plus souvent négligée de la Gamepad API est la règle de la première saisie. La spécification impose qu'une manette ne soit pas exposée à JavaScript tant que l'utilisateur n'a pas appuyé sur au moins un bouton pendant que la fenêtre du navigateur est active. Cliquez d'abord dans la zone de l'écran de l'émulateur avec votre souris, puis appuyez sur un bouton de la manette. Sans ce clic préalable, l'appui sur le bouton risque d'être totalement ignoré. Il ne s'agit pas d'un bogue — c'est une limite de sécurité intentionnelle destinée à empêcher l'énumération silencieuse des manettes par des scripts tiers.

Étape 3 — mode de la manette et xinput

De nombreuses manettes modernes se présentent différemment selon le bouton maintenu enfoncé au démarrage. La 8BitDo Pro 2 en est l'exemple le plus parlant : maintenir différents boutons lors de la mise sous tension la fait basculer en mode Switch, mode Android, mode XInput ou mode macOS. Chaque mode présente un descripteur d'appareil USB ou Bluetooth différent à l'hôte, et les navigateurs font correspondre ces descripteurs à différents profils de manette internes. Si la manette ne fonctionne pas dans l'émulateur mais apparaît bien dans gamepadtester.net, vérifiez dans quel mode elle se trouve — le nombre d'axes et de boutons diffère selon les modes.

Pour la 8BitDo Pro 2 en particulier, le mode XInput (maintenir « X » enfoncé lors de la mise sous tension avec un câble USB connecté) donne les résultats les plus cohérents dans les navigateurs basés sur Chromium sous Windows, car les appareils XInput sont pris en charge par une pile de pilotes bien établie. Le mode Android (maintenir « B » enfoncé au démarrage) est généralement le meilleur choix pour le Bluetooth sous Linux. Le mode Switch est conçu pour les consoles Nintendo Switch et peut perturber la correspondance des boutons dans le navigateur sur les systèmes d'exploitation de bureau, entraînant parfois l'interprétation d'axes là où des boutons sont attendus.

Parmi les autres manettes dotées de commutateurs de mode, on trouve la Sony DualSense et la DualShock 4, qui se présentent différemment selon qu'elles sont connectées en USB ou en Bluetooth, ainsi que la Xbox Core Controller, qui nécessite l'application Xbox Accessories sous Windows pour appliquer des mises à jour du micrologiciel affectant le comportement du descripteur USB. Si l'émulateur utilise une correspondance de boutons préconfigurée (courante dans les versions web basées sur RetroArch), un descripteur d'appareil inattendu peut entraîner un mauvais mappage de toutes les entrées, même lorsque la manette est techniquement détectée.

  • 8BitDo Pro 2 : maintenez 'X' enfoncé lors de la mise sous tension via USB pour activer le mode XInput sous Windows ; maintenez 'B' enfoncé lors de la mise sous tension via Bluetooth pour activer le mode Android sous Linux/macOS.
  • Sony DualSense : la connexion USB est plus fiable que le Bluetooth pour les émulateurs fonctionnant dans le navigateur ; DS4Windows n'est pas requis sous Windows 11 22H2 ou version ultérieure.
  • Xbox Core Controller : le mode Bluetooth nécessite que le firmware de la manette Xbox soit à jour ; vérifiez cela via l'application Xbox Accessories sous Windows.
  • Manettes génériques tierces : si la manette n'expose qu'une interface DirectInput (HID), Chromium peut la présenter avec une disposition de boutons non standard — comparez les indices de boutons relevés sur gamepadtester.net avec le mappage attendu par l'émulateur.
  • Nintendo Switch Pro Controller : fonctionne via USB sur tous les navigateurs courants ; la prise en charge Bluetooth sous Windows est aléatoire, car Windows ne gère pas nativement le protocole Switch HID sans pilotes tiers.

Corrections spécifiques au Bluetooth

Les manettes Bluetooth introduisent une couche de complexité radio et logicielle que les connexions filaires évitent entièrement. Les trois modes de défaillance propres au Bluetooth les plus fréquemment rencontrés dans les scénarios d'émulation dans le navigateur sont les suivants : la manette entre en mode veille en cours de session et le navigateur ne la détecte pas à nouveau au réveil ; des interférences provenant d'autres appareils utilisant la bande 2,4 GHz (Wi-Fi sur la même bande, périphériques USB 3.0 rayonnant du bruit à proximité du récepteur) ; et des anomalies dans la pile Bluetooth du système d'exploitation qui déconnectent silencieusement le profil HID.

Si la manette se déconnecte en cours de session, le Gamepad API déclenche un événement 'gamepaddisconnected'. Certains émulateurs fonctionnant dans le navigateur écoutent cet événement et mettent la session en pause ; d'autres non. Dans tous les cas, appuyer sur n'importe quel bouton de la manette après reconnexion devrait déclencher à nouveau l'événement 'gamepadconnected' et relancer la détection — mais vous devez d'abord cliquer à l'intérieur de la fenêtre de l'émulateur pour rétablir le focus du navigateur, pour la même raison de première saisie décrite à l'étape 2.

Les adaptateurs Bluetooth USB utilisant le Bluetooth 4.0 ou une version antérieure rencontrent parfois des difficultés avec des manettes qui annoncent des fonctionnalités Bluetooth 5.0. Si votre ordinateur dispose d'un adaptateur Bluetooth 5.0 intégré mais que vous utilisez également un dongle USB, Windows peut diriger la manette vers le dongle plutôt que vers l'adaptateur intégré. Désactivez le dongle dans le Gestionnaire de périphériques et reconnectez la manette à l'adaptateur intégré pour effectuer un test.

Sous macOS, l'autorisation d'accès au Bluetooth doit être accordée au navigateur depuis macOS 10.15 (Catalina). Rendez-vous dans Réglages Système → Confidentialité et sécurité → Bluetooth et vérifiez que votre navigateur (Chrome, Firefox, Safari) figure dans la liste et est bien activé. Sans cette autorisation, le navigateur ne peut pas lire les données HID d'une manette Bluetooth, même si le système d'exploitation l'affiche comme connectée.

  • Maintenez la manette à moins de 3 mètres du récepteur Bluetooth afin de réduire la latence de retransmission.
  • Dans la mesure du possible, associez les manettes Bluetooth à un dongle Bluetooth USB placé à l'avant de l'ordinateur plutôt qu'à un adaptateur intégré soumis à un environnement RF interne encombré.
  • Désactivez la gestion de l'alimentation Bluetooth sous Windows : Gestionnaire de périphériques → Adaptateur Bluetooth → Propriétés → Gestion de l'alimentation → décochez « Autoriser l'ordinateur à éteindre ce périphérique pour économiser de l'énergie ».
  • Sous Linux avec BlueZ, vérifiez que la manette est marquée comme approuvée ('trust <MAC>' dans bluetoothctl) afin qu'elle se reconnecte automatiquement sans qu'une invite de confirmation ne vienne bloquer l'établissement de la liaison HID.

En dernier recours, passez à l'USB

Si aucune des solutions décrites ci-dessus ne résout le problème de manette non détectée dans le navigateur, une connexion USB filaire constitue le recours le plus fiable disponible. Les manettes USB HID s'énumèrent de façon synchrone, ne souffrent pas d'interférences radio, ne passent pas en veille et ne nécessitent aucun jumelage préalable. Tout navigateur implémentant le Gamepad API prend en charge les manettes USB HID sans configuration supplémentaire.

L'inconvénient d'une connexion USB filaire est d'ordre physique : vous êtes relié à la machine, la longueur du câble est limitée (les câbles USB standard supportent jusqu'à 5 mètres avant que le signal ne se dégrade, bien que des câbles d'extension actifs puissent prolonger cette distance), et les connexions et déconnexions répétées du connecteur USB entraînent une usure mécanique progressive, tant sur la prise micro-USB ou USB-C du câble que sur le port de la manette.

Si votre manette favorite ne dispose pas d'une option de connexion par câble USB — certaines manettes uniquement Bluetooth n'en sont pas équipées — une alternative filaire couvrant les consoles de l'ère NES à PS2 est la gamme d'adaptateurs USB Raphnet, qui transmettent les signaux des manettes d'origine vers USB HID sans introduire de latence supplémentaire liée à l'interrogation par microcontrôleur. Ces adaptateurs se présentent comme des joysticks HID standard et sont détectés par toutes les implémentations du Gamepad API dans les navigateurs, sans installation de pilote sous Windows, macOS ou Linux.

Pour les utilisateurs sur Chromebook ou ChromeOS, notez que le Gamepad API est disponible, mais que l'accès aux périphériques USB est soumis au système d'autorisations de ChromeOS. Branchez la manette USB, puis rendez-vous dans Paramètres → Appareils et vérifiez que la manette apparaît bien dans la liste. Si vous utilisez un conteneur Linux (Crostini) pour l'émulation plutôt qu'un émulateur en ligne, le transfert USB vers le conteneur doit être activé explicitement dans Paramètres ChromeOS → Linux → Périphériques USB.

Foire aux questions

Pourquoi ma manette fonctionne-t-elle sur gamepadtester.net mais pas dans l'émulateur ?
La page de l'émulateur bloque peut-être l'accès à l'API Gamepad via un en-tête HTTP Permissions-Policy, ou elle peut exiger que vous cliquiez à l'intérieur du canevas de jeu avant d'appuyer sur un bouton de la manette. Essayez de cliquer sur l'écran de l'émulateur avec votre souris, puis appuyez sur un bouton de la manette. Si l'émulateur continue d'ignorer les entrées, inspectez les en-têtes de réponse de la page dans les outils de développement afin de repérer une entrée « Permissions-Policy: gamepad=() ».
Que signifie concrètement « appuyez sur n'importe quel bouton pour activer la manette » ?
La spécification W3C de l'API Gamepad exige qu'un bouton physique de la manette soit pressé après que la fenêtre du navigateur a reçu le focus, avant que les données du boîtier de jeu ne soient exposées au JavaScript de la page. Cette mesure empêche les sites de collecter discrètement des empreintes numériques des visiteurs à travers le matériel connecté. Cliquez d'abord à l'intérieur de l'onglet du navigateur ou du canevas de l'émulateur, puis appuyez sur un bouton de façade de la manette — cette séquence satisfait à l'exigence.
Ma manette 8BitDo est détectée, mais tous les boutons sont mal assignés — comment résoudre ce problème ?
La 8BitDo Pro 2 présente des dispositions de boutons différentes selon son mode de démarrage. Le mode Switch est conçu pour le matériel Nintendo Switch et associe les boutons différemment de ce qu'attendent la plupart des émulateurs dans le navigateur. Éteignez la manette, maintenez « X » enfoncé tout en la connectant via USB pour accéder au mode XInput sous Windows, ou maintenez « B » lors de la mise sous tension via Bluetooth pour le mode Android sous Linux et macOS. Vérifiez à nouveau gamepadtester.net après avoir changé de mode afin de confirmer les nouveaux indices de boutons.
La correction de la manette dans l'émulateur de navigateur fonctionne-t-elle différemment sur Firefox et sur Chrome ?
Oui, il existe deux différences notables. Firefox exige que la page de l'émulateur soit servie en HTTPS ; une manette ne sera pas détectée sur une page HTTP, quels que soient les autres paramètres. Firefox utilise également « about:config » plutôt que « chrome://flags » pour activer ou inspecter la prise en charge des manettes — la préférence concernée est « dom.gamepad.enabled ». L'implémentation de l'API Gamepad dans Chrome est par ailleurs globalement compatible avec celle de Firefox, mais Chrome a historiquement mis à jour sa base de données de correspondances de manettes plus fréquemment.
Puis-je utiliser une manette PS4 ou PS5 dans un émulateur de navigateur sans logiciel supplémentaire ?
Via USB, la DualShock 4 et la DualSense sont toutes deux détectées comme des manettes HID standard par Chromium et Firefox, sans aucun logiciel supplémentaire sous Windows 10 et 11, macOS 12 et versions ultérieures, ainsi que sur la plupart des distributions Linux. Via Bluetooth, les résultats sont plus variables — Chrome bénéficie d'une prise en charge native de la DualShock 4 grâce à sa correspondance interne de descripteurs HID, mais certaines pages d'émulateurs peuvent encore mal associer le clic du pavé tactile ou les axes L3/R3. DS4Windows est un outil tiers exclusif à Windows qui représente la manette en tant que périphérique XInput, ce qui peut résoudre les problèmes de correspondance au prix de l'ajout d'un processus en arrière-plan.
Existe-t-il un moyen de tester la prise en charge de l'API Gamepad sans visiter un site externe ?
Oui. Ouvrez la console de développement du navigateur (F12 → onglet Console) et saisissez « navigator.getGamepads() ». Appuyez d'abord sur un bouton de votre manette, puis exécutez à nouveau la commande. Si l'API Gamepad fonctionne correctement, vous verrez un tableau contenant un objet Gamepad avec des valeurs non nulles ; si le tableau ne contient que des valeurs nulles ou est vide après une pression sur un bouton, le navigateur n'expose pas le périphérique au contexte de la page. Ce test fonctionne sur toute page servie en HTTPS.