Adaptateur manette SNES à Genesis/Megadrive

Introduction

Si vous avez l'intention de jouer avec une console Genesis/Megadrive mais préférez fortement les manettes SNES, ou encore si vous possédez plusieurs manettes de style arcade complètement géniales mais pour SNES, un adaptateur permettant d'utiliser des manettes SNES sur une console Genesis/Megadrive est exactement ce qu'il vous faut.

J'ai utilisé un Atmega8 pour fabriquer le projet d'adaptateur présenté sur cette page. L'optimisation du code pour que le temps de réponse aux requêtes provenant de la console a été un réel plaisir et défi que j'ai pris le temps de documenter.

Des adaptateurs déjà construits sont disponibles dans mon magasin:

Voir aussi: Adaptateur manette SNES à Atari/Commodore




« Mappings » de boutons

GenesisSNES 1SNES 2SNES 3SNES 4SNES 5SNES 6
Start Start Start Start Start Start Start
Mode Select Select Select Select Select Select
A A B Y X A B
B B A B Y B A
C X Y A B X R
X Y X L A Y Y
Y L L X R L X
Z R R R L R L
D-Up D-Up D-Up D-Up D-Up D-Down D-Up
D-down D-down D-down D-down D-down D-up D-down
D-left D-left D-left D-left D-left D-right D-left
D-right D-right D-right D-right D-right D-left D-right
Activation d'un « mapping »:
Les équivalences de boutons sont choisies en gardant appuyé certains boutons de la manette SNES lors du branchement de l'adaptateur ou de la mise sous tension de la console.

«Mapping»Activation
SNES 1Default
SNES 2Maintenir B
SNES 3Maintenir Y
SNES 4Maintenir X
SNES 5Maintenir L
SNES 6Maintenir R

Note: Le « mapping » SNES 6 n'est pas encore disponible.




Câblage

Pour ce projet, je me suis servi d'une version simplifiée de mon circuit multiuse pcb2. Les seules composantes présentent sont le micro-contrôleur, les condensateurs et un cristal de 16 MHz.

Voici le schéma:



Câblage:

Voici maintenant des tableaux pour le câblage du connecteur pour la console Genesis/Megadrive (DB9-F) et pour la manette SNES:
Broche DB9Nom du signalNom de broche AVR
1UP/UP/Z PC5
2DN/DN/Y PC4
30/LF/X PC3
40/RT/ PC2
5VCC VCC
6A/B PC1
7SELECT PD2 (INT0)
8GND GND
9START/C PC0
Signal SNESNom de broche AVR
VCCVCC
GNDGND
CLOCKPB5
DATAPB4
LATCHPB3


Voici quelques photos de mon montage pour le développement, câblé d'après le schéma et la tableaux ci-dessus. Notez comment le connecteur DB9-F ne s'installe pas parfaitement. Idéalement, il faudrait se servir d'un câble récupéré sur une manette ou encore d'une extension.
Connecteur DB9-F

Connecteur DB9-F

Multiuse PCB2

Multiuse PCB2

Un test avec Comix Zone

Un test avec Comix Zone





Logiciel

Attention: Les adaptateurs SNES à Megadrive/Genesis et SNES à Atari/Commodore partagent le code ci-dessous mais exigent un câblage différent. Ne jamais utiliser un adaptateur contruit pour Genesis/Megadrive sur un système Commodore ou Atari.
Version v1.6
26 octobre 2019 (Samedi)
  • Nouveau mapping (SNES 6 - Enfoncez R)
Fichier(s):
snes2md-1.6.tar.gz (21.4 KB)
snes2md.m168.1.6.hex (6.2 KB)
snes2md.m8.1.6.hex (6 KB)
Afficher les versions précédentes
Version v1.5.1
22 octobre 2016 (Samedi)
  • Support du MCU Atmega168
Fichier(s):
snes2md-1.5.1.tar.gz (21.3 KB)
snes2md.m168.1.5.1.hex (6 KB)
snes2md.m8.1.5.1.hex (5.8 KB)
Version v1.4
26 juillet 2014 (Samedi)
  • L'adaptateur est maintenant compatible avec les jeux SMS tournant sur Megadrive/Genesis
Fichier(s):
snes2md-1.4.tar.gz (20.6 KB)
snes2md-1.4.hex (5.8 KB)
Version v1.3
23 juin 2014 (Lundi)
  • Ajout d'un mode 3 boutons. Maintenir SELECT à la mise sous tension pour l'activer.
Fichier(s):
snes2md-1.3.tar.gz (20.5 KB)
snes2md-1.3.hex (5.4 KB)
Version v1.2
29 octobre 2013 (Mardi)
Nouvelles fonctionnalités:
  • Deux nouveaux « mappings » pour Genesis
  • Un nouveau « mapping » pour Atari/Commodore
  • Support d'un deuxième bouton (Amiga)
  • Mode de tir rapide pour la version Atari/commodore (Bouton 1/Feu)
  • Vitesses de tir: 30Hz, 25Hz, 20Hz, 16.667Hz, 15Hz and 12.5Hz
  • Tir rapide en continu activé/déactivé par le bouton START.
Fichier(s):
snes2md-1.2.tar.gz (19.8 KB)
snes2md-1.2.hex (5.3 KB)
Version v1.1.1
20 octobre 2013 (Dimanche)
Mise à jour des équivalences de bouton Atari.
Fichier(s):
snes2md-1.1.1.tar.gz (18.7 KB)
snes2md-1.1.1.hex (3.4 KB)
Version v1.1
8 octobre 2013 (Mardi)
Implémentation du support Atari/Commodore:
  • Deux «mappings» de boutons
  • Mode Atari activé en reliant PB1 à GND. Note: Le câblage du DB9 diffère légèrement.
Fichier(s):
snes2md-1.1.tar.gz (18.6 KB)
snes2md-1.1.hex (3.4 KB)
Version v1.0
14 septembre 2013 (Samedi)
Première publication:
  • Émulation de manette Genesis/Megadrive à 6 boutons
  • Choix de 3 différents « mappings » au démarrage
Fichier(s):
snes2md-1.0.tar.gz (18.1 KB)
snes2md-1.0.hex (2.8 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/snes2md
Utilisation des fichiers .hex
Les fichiers .hex sont pour programmer l'AVR. Les "fuses bytes" pour ce projet sont:
  • Atmega8: high_byte=0xc9, low_byte=0x9f.
  • Atmega168: high_byte=0xdc, low_byte=0xd7, extended_byte=0x01

Code source (fichiers .tar.gz):
À moins d'indications contraires, le code source est rendu publique sous la licence GPL. Consulter le fichier LICENSE inclus dans le .tar.gz pour plus d'informations. Le projet se compile avec avr-gcc sous Linux.




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. Veuillez également m'indiquer si vous souhaitez que j'affiche votre nom/alias et pays. Par défaut je ne mentionnerai que votre prénom.

6 janvier 2015 (Mardi)
Roman Sysoev de Russie m'a envoyé ces quelques photos du prototype et de la version finale sur PCB (boîtier toujours manquant) de l'adaptateur SNES à Genesis/Megadrive qu'il s'est construit.





Références

Le document suivant a été utile pour la réalisation de ce projet:


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.