Pour le meilleur contrôle possible du jeu, le délais de transit («latency») qu'introduit l'adaptateur doit être le plus petit possible. Voyons
pourquoi les adaptateurs introduisent du latency, et examinons comment il est possible de s'en sortir.
En quelques mots, un adaptateur fonctionne ainsi:
- À intervalles fixes, l'adaptateur interroge la manette pour détecter les changements (boutons, axes, etc)
- Lorsqu'il y a un changement, un événement est envoyé au PC pour l'en aviser.
- Mais comme les périphériques USB sont interrogés par le PC à intervalle fixe, l'événement doit attendre le prochain poll USB pour sortir.
Les deux principales causes de latency sont donc les suivantes:
- L'intervalle d'interrogation de la manette: Fréquemment cela se fait aux 16ms. Cela corresponds à la réalité des jeux
sur console qui lisent souvent l'état de la manette une fois par trame vidéo. Mais dans le contexte de l'adaptateur, cela veut dire
que si nous appuyons sur un bouton juste un peu trop tard (ex: 1ms après le poll), l'adaptateur ne s'en rendra compte qu'au prochain cycle,
15 ms plus tard.
- L'intervalle de poll USB: Dans le cas d'un périphérique USB low speed, l'intervalle minimum est 10ms. Selon le timing, si
l'adaptateur découvre le changement d'état alors que le poll USB vient juste d'avoir lieu, la transmission de l'événement doit
attendre le prochain poll.
Voici une représentation visuelle de tout cela:
Le diagramme ci-dessus montre clairement:
- Première cause de délais: Lorsqu'on enfonce un bouton, l'adaptateur ne s'en rends compte que plus tard lorsqu'il interroge la manette.
- Deuxième casue de délais: Une fois que l'adaptateur a détecté le changement d'état du bouton, ce n'est qu'au prochain poll USB que le PC peut l'apprendre.
Réduire le latency
Les explications donnés ci-dessus suggèrent très naturellement la solution suivante: Les polls de la manette et d'USB doivent avoir lieu le plus souvent
possible. Voyons pour chacun:
- Polls USB: Il suffit simplement d'assigner une valeur basse au champs bInterval du descripteur d'endpoint USB. Pour les périphériques
Low speed, ce sera un minimum de 10ms. Pour les périphériques Full speed, 1ms. Cet adaptateur étant USB Full speed, une valeur de 1ms est donc utilisée.
- Polls de la manette: Par défaut, cet adaptateur interroge la manette aux 5ms. Mais une valeur plus petit peut être configurée via
l'outil de gestion. L'utilisation d'une valeur très basse ne cause pas de difficultés avec les manettes standard, mais on peut penser qu'il
puisse y avoir des complications avec certaines manettes ou adaptateurs fabriqués par des tiers.
Il faut noter qu'une autre approche pour diminuer le latency causé par les polls USB consiste à synchroniser l'interogation de la manette de sorte que la lecture
se termine toujours immédiatement avant le prochain poll USB.
Adaptateur | Vitesse USB | Intervalle manette | USB poll | Latency max. | Commentaires |
raphnet gcn64usb v3 (L'adaptateur de cette page) | Full speed | 5ms (par défaut) | 1ms | 6ms | Si l'adaptateur est configuré pour interroger la manettes aux 2ms (minimum), le latency maximal ne sera que de 3ms. |
raphnet gc/n64 usb v2 (prédécesseur) | Low speed | 4ms | 5ms[1] | 14ms | En raison de la taille des donnés transmises, deux polls USB sont requis, ce qui explique le 14ms ici plutot que 9ms |
Adaptateurs non-raphnet (pour comparer) |
Mayflash dual N64 to USB | Low speed | 16ms | 8ms | 24ms[2] | bInterval = 8ms, intervalle d'interrogation manette vérifié avec un oscilloscope. |
Mayflash GC (4x) to USB (en mode PC) | Full sped | 8ms | 1ms | 9ms[2] | bInterval = 1ms, intervalle d'interrogation manette vérifié avec un oscilloscope. |
[1] Bien que l'intervalle minimum officiel pour l'interrogation USB des périphériques dits « Low speed » soit de 10ms, il est possible de tricher et d'utiliser une valeur plus petite. Cela fonctionne.
[2] Le Latency max. affiché pour les adaptateurs non-raphnet prennent pour acquis qu'aucune stratégie de synchronisation des polls de manettes n'est en place. Si c'était le cas,
il faudrait soustraire l'intervalle de poll USB (ou une fraction, selon les marges du design) du latency maximal.
Depuis le firmware version 3.2.1, il existe plusieurs modes (ou personalités) qui permettent
à un adaptateur de s'identifier plus précisément (par exemple, si vous n'avez qu'une manette N64, l'adaptateur
portera le nom "N64 to USB", plutôt que "GC/N64 to USB").
Depuis le firmware version 3.3.1, il existe également des modes à deux joueurs.
La configuration de la personalité et/ou du mode deux joueurs doit être faite avec l'outil en ligne de
commande gcn64ctl.
Instructions:
- Installer au préalable l'outil de gestion d'adaptateur. Il s'agit d'une interface graphique, mais
des outils en ligne de commande seront également installés. Il y aura un raccourci dans le menu
démarrer (ou l'équivalent) permettant d'ouvrir un terminal dans le répertoire des outils.
- Brancher l'adaptateur à configurer. Un seul adaptateur doit être présent lors de cette opération.
- Exécuter la commande correspondant au mode souhaité.
# Syntaxe pour la configuration d'un adaptateur
gcn64ctl -f --set_mode xx
(où xx sera remplacé par le code numérique approprié)
Code | Nom | Nombre de joueurs |
0 | GC/N64 to USB v?? | 1 |
1 | N64 to USB v?? | 1 |
2 | Gamecube to USB v?? | 1 |
16 | Dual GC/N64 to USB v?? | 2 |
17 | Dual N64 to USB v?? | 2 |
18 | Dual Gamecube to USB v?? | 2 |
Depuis le firmware version 3.6.0, l'adaptateur supporte également le clavier pour Gamecube.
Configuration
Afin que le clavier soit reconnu et que l'adaptateur apparaisse comme un clavier USB côté PC, il faut d'abord activer
le mode clavier à l'aide du gestionnaire d'adaptateur.

Le mode en cours est enregistré dans l'adapatateur et activé automatiquement lors de la mise sous tension.
Adaptateur mono-joueur
Puisqu'il ne comporte qu'un seul port, les adaptateurs mono-joueur ne supportent que la partie clavier, ou que
la partie joystick, mais pas les deux en même temps, à moins d'utiliser deux adaptateurs.
Lorsque l'adaptateur est en mode clavier, il faut l'y brancher le câble clavier (blanc). Brancher le câble joystick (mauve)
ou une manette Gamecube ne fonctionnera pas lorsque l'adaptateur est en mode clavier.
Adaptateur pour deux joueurs
Raccordez le câble joystick (mauve) au port 1 et le câble clavier (blanc) au port 2. L'adaptateur se présentera
tel un Clavier et un Joystick côté PC.
Sous Windows 10, un adaptateur deux-joueurs en mode clavier apparaitrera en tant que
composite device dans
Devices and Printers.
Le menu contextuel (accessible par un clic du bouton droit) affiche des options pour clavier et pour contrôleur de jeu:
Je ne saurais être tenu responsable pour les dommages
que l'utilisation des informations ou la mise en œuvre des instructions présentées
sur cette page pourrait causer à votre équipement,
à vous-même ou à autrui. Aussi, je ne donne aucune garantie quant
à l'exactitude des informations et à leur fonctionnement.