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

goto top Retour en haut


« Mappings » de boutons

GenesisSNES 1SNES 2SNES 3SNES 4SNES 5
Start Start Start Start Start Start
Mode Select Select Select Select Select
A A B Y X A
B B A B Y B
C X Y A B X
X Y X L A Y
Y L L X R L
Z R R R L R
D-Up D-Up D-Up D-Up D-Up D-Down
D-down D-down D-down D-down D-down D-up
D-left D-left D-left D-left D-left D-right
D-right D-right D-right D-right D-right D-left
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 4Maintenir L

goto top Retour en haut


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


goto top Retour en haut


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.
Fichier(s)DateDescription
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)
22 Octobre 2016 (Samedi)
  • Support du MCU Atmega168
snes2md-1.4.tar.gz (20.6 KB)
snes2md-1.4.hex (5.8 KB)
26 Juillet 2014 (Samedi)
  • L'adaptateur est maintenant compatible avec les jeux SMS tournant sur Megadrive/Genesis
snes2md-1.3.tar.gz (20.5 KB)
snes2md-1.3.hex (5.4 KB)
23 Juin 2014 (Lundi)
  • Ajout d'un mode 3 boutons. Maintenir SELECT à la mise sous tension pour l'activer.
snes2md-1.2.tar.gz (19.8 KB)
snes2md-1.2.hex (5.3 KB)
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.
snes2md-1.1.1.tar.gz (18.7 KB)
snes2md-1.1.1.hex (3.4 KB)
20 Octobre 2013 (Dimanche) Mise à jour des équivalences de bouton Atari.
snes2md-1.1.tar.gz (18.6 KB)
snes2md-1.1.hex (3.4 KB)
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.
snes2md-1.0.tar.gz (18.1 KB)
snes2md-1.0.hex (2.8 KB)
14 Septembre 2013 (Samedi) Première publication:
  • Émulation de manette Genesis/Megadrive à 6 boutons
  • Choix de 3 différents « mappings » au démarrage
Ce projet est aussi disponible sur GitHub!
Pour suggérer de nouvelles fonctionalités, rapporter 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:
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.

goto top Retour en haut


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.


goto top Retour en haut


Références

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

goto top Retour en haut


Avertissement

Je ne saurais être tenu responsable pour les dommages que 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. Notez toutefois que les procédures ci-haut ont fonctionné sans aucun problème pour moi.

goto top Retour en haut


Les marques de commerce utilisées dans ce site appartiennent à leurs propriétaires respectifs.
Copyright © 2002-2017, Raphaël Assénat
Site codé avecSite codé avec vimDernière mise à jour: 22 Octobre 2016 (Samedi)