La sensation qu'on a lorsqu'on utilise une manette style arcade pour jouer
a un jeu est très différente que lorsqu'on joue avec une manette
ordinaire ou un clavier.
Après avoir rencontré quelqu'un qui
achète des vieille arcades pour les remettre à neuf et les upgrader
en installant un PC avec Mame à l'intérieur, j'ai eu l'idée
de construire un manette pour Snes/Nes et PC du genre manette d'arcade.
Schéma
Une manette de Snes n'est en fait qu'un 'shift register' de 16 bits. J'ai donc
conçu mon circuit avec 2 circuits intégrés 74ls165. Il a
fallu un inverseur pour changer la polarité du 'latch' (replacable par un
transistor et 2 resistances).
Il est important d'utiliser des 74ls165. Les 74hc165 ne fonctionnent pas car
ils n'aiment pas que le clock soit haut en meme temps que le latch est bas.
Le 'shift in' (ser) du 2ieme 'shift register' est a 0 volts car il influencera l'etat final
de QH (data) apreè les 16 coups d'horloge. Il doit rester bas, sinon certains jeux
(notamment ceux fait par Nintendo ex: Donkey Kong) ne détecteront pas la manette.
J'ai nommé les 4 derniers bits E1 a E4. Ils ne sont pas associés a des boutons
par les manette
construites par Nintendo. Je crois qu'il servent à identifier le type d'équipement
branché à un port. Dans le cas d'une sourie, E4 est a 0 plutot qu'a 1. Direct Pad Pro,
Zsnes et Linux génèrent seulement 12 coups d'horloge, donc ils ignorent ces bits. Mais
un vrai Snes génère bien 16 coups, et plusieurs jeux ne détectent pas de manette
lorsque ces 4 bits d'extra ne sont pas à un niveau logique élevé.
Les résistances pull-up des boutons n'ont pas de valeur d'indiquées dans le schéma. N'importe
quoi entre 1k et 22k est raisonnable et devrai fonctionner.
Petite note à propos des consoles PAL: Un utilisateur explique qu'il a fallu qu'il installe
une pull-up de 1.2kohm sur le signal clock provenant de la console. (3kohm ne fonctionnait
pas). Dans l'incarnation finale de son projet, il a descendu la valeur de cette résistance à 467ohm. Pour
l'instant, j'ignore pourquoi ce fut nécessaire et donc pourquoi ça fonctionne...
Pour une meilleure visualisation, voici la version pdf de ce schéma.
Voici comment se construire un inverseur avec un transitor. Utile si vous n'avez plus
de 7404, que vous trouvez qu'utiliser 1 inverseur sur 6 est ridicule ou peut-etre pour
sauver de l'argent.
Pour une meilleure visualisation, voici la version pdf de ce schéma.
Pour alimenter le circuit à partir d'un port parallèle, il est possible d'utiliser
5 diodes pour récupérer un peu de courant. Il peut y avoir des problèmes avec
certains ports parallèles. Les 74ls165 ont besoin de 5 volts pour fonctionner, alors les
ports parallèles qui donnent du 3.3 ou 3.5 volts ne fonctionneront pas. De plus, les diodes
causent une baisse du voltage. Si cela se produit, vous devrez récupérer du 5 volt
ailleur. Par exemple, à partir du port de jeu (DB15F, en utilisant les broches 1 et 4
(+5Volts et GND respectivements)(Attention, il commence à y avoir des ports de jeu a 3.3 volts...)
Ou encore, à partir du port de clavier ou sourie PS/2.
Pour une meilleure visualisation, voici la version pdf de ce schéma.
Pour pouvoir utiliser ce circuit avec un SNES ou NES, j'ai construit un cable. Je me suis
servi des cables de manettes de NES et SNES. Vous pouvez construire seulement une des
deux parties du schéma si vous voulez:
Photos
Tout d'abord, j'ai testé que le circuit était bel et bien fonctionnel.
Voici a quoi ressemble les signaux qui arrivent aux 74ls165 dans le circuit. L'horloge
est en haut de l'écran, et le latch en bas de lécran.
Voici a quoi ressemble d'autres signaux qui arrivent et qui partent des 74ls165. L'horloge est
en haut de l'écran, et le data est en base. Dans cet exemple, le bouton 'Start' est enfoncée.
Le circuit final. Les resistances utilisées à chaque bouton sont des résistances
'surface mount' et elles sont soudées en dessous.
Pour déterminer la position optimale des boutons pour ma main, j'ai fait des
essais dans du carton. Un coup satisfait, j'ai percé les trous dans la planche
finale.
Le cablage des boutons et du Joystick. Très simple. Un fil commun qui va au GND, un fil allant
de chaque bouton au bornier du circuit.
Une vue d'ensemble de tout les composants. (Paneau de bouton + joystick, circuit, cables). Il reste
a faire une base convenable. Il manque 2 boutons (L et R) pour avoir l'équivalent d'une
manette snes. Je pense les installer de chaque coté de la boite finale (bon pour pinball) et
aussi de les assigner a 2 pédales (bon pour Mario Kart).
Les boutons et le joystick peuvent être commandés de Wico.
Pour bien comprendre les 'shift registers' et apprendre comment les utiliser intelligemment: (en anglais) shift.txt
Logiciel
Pour l'utiliser sur un Snes, il va de soit que le seul logiciel requis est le jeu. Pour l'utiliser sur
un PC, il suffit d'utiliser les mêmes logiciels que pour les manettes de Snes. Direct Pad pro,
PsxPad, Zsnes Dos, Linux...
Veuillez consulter la section configuration logicielle de ma page
Manette de Snes sur un PC
pour plus de détails et les addresses pour télécharger les logiciels.
Avertissement
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.