4 manettes NES et/ou 4 SNES à USB

Résumé du projet

Utilisation de deux manettes NES et deux manettes SNES simultanément

Utilisation de deux manettes NES et deux manettes SNES simultanément

Suite à mon projet permettant de convertir une manette de NES ou SNES à USB, lequel est disponible à l'addresse http://www.raphnet.net/electronique/snes_nes_usb/index.php, je me suis fait demander s'il serait possible d'en faire une version supportant plusieurs manettes. J'ai finalement trouvé le temps de le faire et la page présente est pour expliquer comment y arriver. Étant donné que ceci n'est qu'une variation du projet initial, je ne donnerai pas trop de détails. Référez vous à la page du projet d'origine si nécéssaire.

La différence principale est le logiciel qu'il faut programmer dans l'Atmega8. Ce logiciel détecte le type de chaque manette raccordée et permet de combiner des manetes de NES et SNES jusqu'à un total de quatre.

Nouveau! Les boutons NES ont été changés dans la version 1.5, et l'ensemble fonctionne donc mieux avec RetroPie. (Voir boutons)




Photos

Exemple 1: AcrylicSNES:

Ayant mis la main sur des connecteurs SNES (disponibles dans mon magasin), j'ai créé un circuit imprimé pour les recevoir et tenté de réaliser un boîtier intéressant. J'ai baptisé le projet AcrylicSNES par référence au matériau dont la surface supérieure est faite.



Exemple 2: AnodeSNES:

Boîtier en aluminium machiné au fini anodizé noir pour un adaptateur 4x SNES à USB.
Pour plus d'information, voir la page du projet AnodeSNES.



Exemple 3: Adaptateur NES FourScore:



Exemple 4: Multitap SNES à USB:

Seulement testé avec le "Tribal Tap" de Naki tel qu'illustré. Fonctionne avec un maximum de 4 manettes. Le 5ième port, bien que présent, n'est pas réellement utilisable et semble en fait être une fraude!

Exemple 5: 2 Manettes NES et 2 manettes SNES:

Prises de manettes SNES provenant d'une console

Prises de manettes SNES provenant d'une console

Prises de manettes NES provenant d'une console

Prises de manettes NES provenant d'une console

Le boîtier est celui d'un vieux NetModem beaucoup trop lent pour m'intéresser...

Le boîtier est celui d'un vieux NetModem beaucoup trop lent pour m'intéresser...

Ça semble bien comme cela.

Ça semble bien comme cela.

Un coup les contours tracés...

Un coup les contours tracés...


...on se débrouille pour les découper.

...on se débrouille pour les découper.

Voila, c'est fait.

Voila, c'est fait.

Je m'arrange pour que tout reste en place.

Je m'arrange pour que tout reste en place.

Il me restait de l'adhésif de contruction suite à des rénovations... Pas de gaspillage!

Il me restait de l'adhésif de contruction suite à des rénovations... Pas de gaspillage!

Bon, attendons que ça sèche.

Bon, attendons que ça sèche.


Vue du câblage 1

Vue du câblage 1

Vue du câblage 2

Vue du câblage 2

Résultat final 1

Résultat final 1

Résultat final 2

Résultat final 2

Résultat final en action

Résultat final en action


Saisie d'écran winXP

Saisie d'écran winXP




Schéma

Voici le schéma et une référence de 'pinout' pour les connecteurs NES et SNES:
Schéma

Schéma

Connecteurs

Connecteurs


Notes et commentaires: Toutes les manettes partagent la même alimentation ainsi que les signaux Clock et Latch. Par contre, le signal Data provenant de chaque manette doit être relié à une entrée unique sur le microcontroleur. Il est possible d'utiliser un résonateur de céramique en remplacement du cristal et des deux condensateurs. Voir le shéma d'Andrew Biem dans la section photos provenant des utilisateurs.

Circuit imprimé:
Vous pouvez utiliser le circuit imprimé du projet initial: http://www.raphnet.net/electronique/snes_nes_usb/index.php#pcb
Voici un schéma de cablage pour le circuit imprimé version C:



Utilisation du PCB multiuse pcb2:
Le circuit multiuse PCB2 est également une excellente plateforme pour ce projet. Voici des schémas de câblage applicables à ce circuit:



Support du multitap pour SNES (4 joueurs)
À partir de la version 1.3 du logiciel, le multitap pour SNES est supporté. Ce périphérique permet la lecture de 4 manettes avec seulement 2 entrées grace à un multiplexeur contrôlé par le signal 'SELECT'. Après avoir capturé l'état des boutons sur les 4 manettes simultanément via le signal 'LATCH', une lecture des manettes 1 et 2 est effectuée, et répétée en changant 'SELECT' pour lire les manettes 3 et 4.

Voici le 'pinout' du multitap et des indications pour le branchement à ce circuit (le nom des broches d'ES du Atmega8 y figurent)




Logiciel

Version v1.5
5 juin 2016 (Dimanche)
  • Les boutons NES correspondent dorénavant aux mêmes boutons USB qu'une manette SNES (eg: NES A = SNES A).
  • Changement du nom du produit (ajoute la version)
Fichier(s):
4nes4snes-1.5.tar.gz (84.8 KB)
4nes4snes-m168-1.5.hex (10.6 KB)
4nes4snes-m8-1.5.hex (10.3 KB)
Afficher les versions précédentes
Version v1.4.3
23 août 2014 (Samedi)
  • Correctifs pour la compilation avec une version moderne de GCC.
Fichier(s):
4nes4snes-1.4.3.tar.gz (84.8 KB)
4nes4snes-m168-1.4.3.hex (10.3 KB)
4nes4snes-m8-1.4.3.hex (10 KB)
Version v1.4.2
14 juillet 2013 (Dimanche)
    Changement mineur:
  • Correction du numéro de vendeur USB.
Fichier(s):
4nes4snes-1.4.2.tar.gz (84.7 KB)
4nes4snes-m168-1.4.2.hex (10.7 KB)
4nes4snes-m8-1.4.2.hex (10.4 KB)
Version v1.4.1
26 avril 2013 (Vendredi)
  • La consommation déclarée a été réduite de 120mA à 100mA. Cela permet d'utiliser l'adaptateur sur le port de mon clavier USB tout en demeurant un estimé conservateur de la pire combinaison d'hypothétiques manettes non-standard qui seraient très energivores.
Fichier(s):
4nes4snes-1.4.1.tar.gz (84.7 KB)
4nes4snes-m168-1.4.1.hex (10.7 KB)
4nes4snes-m8-1.4.1.hex (10.4 KB)
Version v1.4
24 avril 2013 (Mercredi)
  • Support du Atmega168 (et compatibles). Utilisez Makefile.atmega168
  • Simplification de la boucle principale par le retrait du support des requêtes setIdle/getIdle, optionnelles selon la norme USB HID, section G.
Fichier(s):
4nes4snes-1.4.tar.gz (84.5 KB)
4nes4snes-m168-1.4.hex (10.8 KB)
4nes4snes-m8-1.4.hex (10.5 KB)
Version v1.3
14 avril 2012 (Samedi)
Adaptateur multijoueurs pour SNES maintenant supporté (mode 4 joueurs). Uniquement testé avec le Tribal Tap de Naki
Fichier(s):
4nes4snes-1.3.tar.gz (83.8 KB)
4nes4snes-1.3.hex (11 KB)
Version v1.2
2 mai 2009 (Samedi)
  • Le type de manette (NES ou SNES) est maintenant auto-détecté en temps réel. Il n'est donc plus nécessaire de rebrancher le câble USB lorsqu'on change de manette.
  • Le NES FourScore est maintenant supporté. Il est détecté au démarrage seulement et doit être branché au ports 1 et 2.
  • Code source maintenant sous License GPL 2
Fichier(s):
4nes4snes-1.2.tar.gz (92.5 KB)
4nes4snes-1.2.hex (10.1 KB)
Version v1.1
18 avril 2007 (Mercredi)
Première version publique. Utilisait la license Objective Developement (GPL modifiée). Voir License.txt pour plus de détails.
Fichier(s):
4nes4snes-1.1.tar.gz (70.2 KB)
4nes4snes-1.1.hex (8.7 KB)
Ce projet est aussi disponible sur GitHub!
Pour suggérer de nouvelles fonctionnalités, signaler un problème ou contribuer au projet, vous pouvez m'écrire ou utiliser le dépôt GitHub:
https://github.com/raphnet/4nes4snes
Utilisation des fichiers .hex
  • Atmega8: Les fichiers *-m8-*.hex ou les .hex avant la version 1.4 sont pour programmer un Atmega8. Les "fuses bytes" pour l'atmega8 sont: high_byte=0xc9 low_byte=0x9f.
  • Atemga168: Les fichiers *-m168-*.hex sont pour programmer un Atmega168. Les "fuses bytes" pour l'atemga168 sont: high=0xd5, low=0xdf, extended=0x01

Pour de l'information sur la programmation d'un AVR, visitez ma page sur la programmation d'AVR

Code source (fichiers .tar.gz):
À moins d'indications contraires, le code source est rendu publique sous la license GPL v2. Consulter License.txt pour plus d'informations. Le projet se compile avec avr-gcc.



Boutons

Depuis la version 1.5, les boutons NES ont été modifiés afin qu'ils corresponent aux boutons du même nom sur la manette SNES. Ainsi, il est possible de changer de type de manette sans avoir à reconfigurer. Excellent pour RetroPie...

USBBouton SNESBouton NES
(avant v1.5)
Bouton NES
(depuis v1.5)
0 B B
1 Y
2 SELECT SELECT
3 START START
4 A START A
5 X SELECT
6 L A
7 R B

Note: Les boutons USB sont comptés à partir de zéro. Si vous êtes sous windows, vous devrez additionner 1 aux numéros du tableau ci-dessus.


Photos provenant des utilisateurs

J'aime bien voir comment les autres s'y prennent pour assembler mes projets. Vous pouvez me faire parvenir des photos de vos montages et je les afficherai ici.

26 août 2017 (Samedi)
Robson Couto a contruit cet adaptateur pour deux manettes SNES. Il présente aussi sur son blog une version modifiée de mon projet afin de tourner sur une carte USBASP (normalement un programmeur d'AVR).



10 juillet 2016 (Dimanche)
Sebastian a installé un Raspberry Pi dans un boîtier de NES et s'est servi du circuit 4nes4snes pour les manettes.



26 décembre 2014 (Vendredi)
Michael Bazzinotti (Bazz) a fabriqué un boîtier en acrylique pour aller avec mon circuit imprimé et couvercle. Plus d'information sur le projet et sur la conception du boîtier sont disponibles sur sa page web.



14 novembre 2014 (Vendredi)
Eduard a fabriqué un adaptateur pour deux manettes NES en utilisant les connecteurs d'une console:



29 janvier 2014 (Mercredi)
Josafá Siqueira du Brésil m'a envoyé ces photos d'un adaptateurs 3 joueurs qu'il a fabriqué



25 janvier 2014 (Samedi)
Ákos m'envoi cette photo d'un multitap Hudson soft qu'il a converti à USB en utilisant ce circuit. Aucune modifications au multitap n'a été nécessaire. Il a simplement suffit de débrancher le câble d'origine par un autre se rendant au circuit. Cela confirme que le support pour multitap présent depuis la version 1.3 du logiciel fonctionne avec d'autre chose que le multitap Naki Tribal Tap.



7 janvier 2014 (Mardi)
Daniel Baer m'envoie les photos suivantes d'un adaptateur qu'il a construit pour mettre dans un des espaces à périphérique 5 1/4" de son PC. Le câble USB se raccorde directement à l'une des barettes USB mâle de sa carte mère ASUS. Sa femme et lui s'amusent maintenant avec Dr. Mario sous Arch Linux avec l'émulateur Higan.



3 mai 2013 (Vendredi)
Pascal et Nicolas Roux m'envoient ces photos d'une réalisation ingénieuse des connecteurs inspirée de celle de Declan Williams (plus haut) et expliquent:
« On a pris deux plaques de plastique, que l'on a collées temporairement (avec du scotch double face) pour les percer. On les a ensuite séparées pour insérer les connecteurs (déjà soudés à un fil, car si l'on soude une fois en place, cela fait fondre le plastique). Pour finir, on a préparé et fixé les protections autour des connecteurs (cf. tête de vis) puis soudé les fils au circuit avant de le protéger dans une coque en bois. »



9 janvier 2013 (Mercredi)
Alex (voir son blog) a créé une version "through-hole" du circuit imprimé et a partagé les fichiers sources du schéma et circuit en format Eagle:


Eagle schematic: V-USB_4SNES_Mame_Panel_Atmega8.sch
Eagle pcb: V-USB_4SNES_Mame_Panel_Atmega8.brd

14 août 2011 (Dimanche)
Thomas Lapauw a contruit un adaptateur pour deux manettes SNES. Notez qu'il a aussi ajouté un LED indiquant que l'adaptateur est sous tension.



25 juin 2009 (Jeudi)
Jeff Erbrecht a installé le circuit à l'intérieur d'un Multitap pour SNES. Il a dû retirer des pièces du circuit d'origine car elles causaient un conflit:



17 juin 2008 (Mardi)
Tim Wylie a fabriqué cet adaptateur pour 4 manettes (2 Snes et 2 NES) en utilisant le circuit pré-assemblé:



4 octobre 2008 (Samedi)
Craig O'Connor m'a fait parvenir les photos suivantes:



31 mai 2008 (Samedi)
Lucas Romero, d'Allemagne, a construit ce projet qu'il a baptisé « RetroBox ». En plus du circuit pour quatre manettes présenté sur cette page, il a ajouté un concentrateur USB interne avec une clef USB de 2GB contenant ses roms SNES et MAME préférés, ce qui lui permet de toujours les avoir avec lui:



Gunther Baumgartner, d'Allemagne, a installé le circuit à l'intérieur d'un NES Four Score



Andrew Biem, de Whidbey Island, situé dans l'état de Washington aux États-unis m'a transmis les photos suivantes. Remarquez qu'il utilise un résonateur de céramique plutôt qu'un cristal et deux condensateurs séparés. Il m'a aussi donné un plan mis à jour pour le résonateur ci-bas.



Declan Williams, d'Australie, 16 ans, m'a fait parvenir ces photos. Notez l'ingénieuse manière dont il s'y prend pour fabriquer ses propres prises SNES:



Steve et Andi, d'Autriche, m'ont fait parvenir ces photos:






Références

Cette page contiens de la documentation sur le 'protocole' des manettes Snes:
Sci.Electronics FAQ: Super Nintendo Entertainment System: pinouts & protocol

J'utilise le driver USB d'Objective Development. Pour plus d'informations, visitez leur site:
http://www.obdev.at/products/avrusb/index.html

Ceci m'a aidé à comprendre comment Windows interprète le 'report descriptor' et pourquoi certains axes n'étaient pas fonctionnels sous Windows 98:
http://www.microsoft.com/whdc/device/input/hidgame.mspx


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.