J'ai réalisé un RetroSpy pour Nintendo 64 !

arduino 18 déc. 2019

J’ai toujours été intrigué sur comment les speedrunners arrivaient à afficher les inputs de leur manette sur leurs streams. Au début, je pensais qu’ils utilisaient un émulateur (ce qui craint pour des RTA), alors qu’en réalité… Pas du tout, et ils le font d’une manière totalement légitime. Comment font-ils cette magie noire alors ?!

La réponse est simple : RetroSpy (précédemment NintendoSpy). Un petit appareil intermédiaire entre votre manette et votre console, qui, une fois connecté au PC, permet de récupérer les inputs de votre manette, tout en les envoyant normalement à la console.

C’est compliqué à faire, selon vous ? Vous avez tort, ca ne l’est pas du tout ! Tout ce qu’il faut pour mener à bien cette mission, c’est d’avoir juste un Arduino Nano, un câble d’extension de votre console, un fer à souder (et quelques connaissances en soudure). Par contre, il faudra refaire l’opération en fonction de votre console… C’est juste long, notamment si vous faites beaucoup de speedruns sur plusieurs plateformes. Mais ça en vaut la chandelle.

J’ai ainsi essayé de tenter l’expérience en faisant mon propre RetroSpy pour ma Nintendo 64. Quelle chance ! C’est une console assez facile pour ce genre d’opérations. En effet, la manette n’a que 3 fils: Un pour le 3.3V, un commun, et un pour les données envoyées à la console. Facile, non ? ♥

Let’s a go !

Donc c’est parti. Première chose à faire, couper votre câble d’extension de la manette. Je mets environ 20cm côté femelle, mais vous pouvez couper en plein milieu si vous préférez. Retirez la gaine sur 4/5cm de chaque côté, vous devrez ainsi voir 3 fils. De mon côté, ils sont rouge (VCC), noir (GND), et blanc (Data) bien que j’ai pu l’avoir aussi en vert.

Je m’étais fait un diagramme en le faisant sur une N64 entièrement morte, mais vérifiez avec un multimètre quand même…

Donc une fois fait, j’ai ressoudé le VCC avec l’autre partie du câble d’extension, car ce câble ne nous intéresse pas du tout. Il nous reste qu’à nous occuper des 2 autres fils. Soudez 2 câbles pour chaque fil : un va aller sur l’Arduino tandis que l’autre sera soudé à la console.

Pour le Commun (GND), soudez ce câble sur GND. Pour le Data, soudez sur D2. Et c’est tout !

ASSUREZ-VOUS QUE VOS CÂBLES N’EN TOUCHENT AUCUN AUTRE : sinon, votre console risque d’avoir d’éventuels dommages. Si possible, protégez les avec soit une gaine thermorétractable, ou un chatterton.

A la fin, vous devriez avoir un résultat comme ça (bon, j’ai triché, j’avais une boite pour mettre tout ça, histoire que ça soit joli, toussa toussa).

Programmation de l’Arduino

Bref, la partie la plus dure est faite. Maintenant, passons à la partie la plus simple : la programmation de notre futur RetroSpy !

Téléchargez les éléments suivants :

Une fois tout cela installé, connectez votre Arduino à l’ordinateur, puis lancez l’éditeur Arduino. Ouvrez le fichier « firmware.ino » qui se trouve dans le dossier « firmware » (ça ne s’invente pas) du RetroSpy.

Dé-commentez la ligne « #define MODE_N64« , et cliquez sur « Croquis -> Vérifier/Compiler » afin de vérifier qu’il n’y ait pas d’erreur.


Maintenant, cliquez sur « Outils », sélectionnez « Arduino Nano » dans le type de carte, vérifiez que le processeur s’agit d’un « ATmega328p« , vérifiez qu’il y a un port de choisi (ici, il n’était pas détecté)… Ça devrait être quelque chose comme COM1 ou un autre chiffre à la fin…

Tout est OK ? Cliquez sur « Croquis -> Téléverser » , et c’est parti ! Si il y a un message d’erreur (affiché en orange), vérifiez que les infos données dans le programme. Sinon, tout est parfait !

Un test ! Un test !

Tout étant terminé correctement, débranchez et rebranchez votre Arduino à l’ordinateur. Lancez RetroSpy.exe , sélectionnez votre console, le skin désiré, cliquez sur « Go! » et roulez jeunesse !

Si les boutons ne marchent pas en temps réel, vérifiez les soudures, qu’il n’y ait pas de faux contacts ou autres.

Voici un test de l’appareil via FZero-X.

Mots clés

Ch0wW

🌍 Entrez dans mon monde! Je poste du contenu en rapport avec les jeux retro, l'informatique, le modding et la réparation d'appareils... N'hésitez pas à me contacter pour toute question ou demande!