Fabriquer un paddle pour SMS/MarkIII



Le projet

J'ai récemment acheté le jeu Galactic Protector pour ma SMS japonaise sans savoir qu'un Paddle était requis pour y jouer. Il s'agit du Paddle HPD-200 pour Sega Master Système qui n'a été vendu qu'au Japon à l'époque. Aujourd'hui il est vendu sur un site populaire d'enchères à un prix franchement trop élevé alors j'ai décidé de m'en construire un.

Le paddle HPD-200 de Sega

Le paddle HPD-200 de Sega

Le paddle raphnet.net!

Le paddle raphnet.net!



Caractéristiques:
[1] Certains jeux japonais supportant le Paddle, si utilisés sur un système SMS ou console Genesis/Megadive via un adaptateur (comme le mien), détectent qu'il s'agit d'une console non-japonaise et s'attendent alors à ce qu'un paddle international soit branché. Comme son fonctionnement est différent, le paddle japonais (HPD-200) ne fonctionne alors pas.

[2] Bien que le paddle international n'ait jamais été vendu par Sega, certains jeux comprennent pourtant du code pour le supporter. Comme ce n'était pas très difficile à faire, j'ai aussi implémenté un mode international.

goto top Retour en haut


Photos

J'aurais pu simplement percer deux trous dans une planche de bois et y installer le potentiomètre avec un bouton. Mais puisque j'ai une imprimante 3D, je me suis amusé à faire un boîtier un peu plus élaboré.

Résultat final:
Paddle raphnet.net

Paddle raphnet.net

Paddle raphnet.net

Paddle raphnet.net

Avec Galactic Protector

Avec Galactic Protector

Avec Outrun

Avec Outrun



L'assemblage:



Le concept:
Le concept

Le concept

Le concept

Le concept

Le concept

Le concept

Le bouton

Le bouton

Le bouton installé (coupe)

Le bouton installé (coupe)



Voici les fichiers .STL qui peuvent servir à fabriquer un adaptateur comme le mien:
sms_paddle2_body-main.STL (Pièce pricipale)
sms_paddle2_body-button.STL (Bouton poussoir)
sms_paddle2_body-knob.STL (Bouton rotatif)

Quelques notes concernant ces modèles 3D:

Schéma


Cliquer sur le schéma pour une version plus nette.


Mon circuit à usages multiples multiuse PCB2 se prête très bien à la réalisation de ce projet. Voici un diagramme en illustrant l'utilisation:



Ce circuit pré-programmé est disponible dans le magasin en ligne.

goto top Retour en haut


Logiciel

Le micro-contrôleur doit bien sûr être programmé pour que ce circuit fonctionne:
Fichier(s)DateDescription
sms_paddle-1.0.tar.gz (2.3 KB)
sms_paddle-1.0.hex (619 B)
21 Février 2015 (Samedi) Release initial.
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/sms_paddle

goto top Retour en haut


Fonctionnement du paddle

La position du bouton tournant du paddle est codée sous 8 bits et comporte donc 256 positions. La transmission de cette valeur vers la console est faite en deux blocs de 4 bits (nibbles). Ce sont les quatre fils servant normalement pour les quatre boutons directionnels qui sont utilisés (broches 1 à 4 du connecteur).

Paddle HPD-200

Le paddle HPD-200 de sega indique à la console quel jeu de 4 bits est présentement appliqué via la broche 9 du connecteur qui correspond normalement au bouton 2. Lorsque le signal est bas, ce sont les bits de poids faible (0 à 3) qui sont transmit et ce sont donc les bits de poids fort (4 à 7) qui sont transmit lorsque ce signal est haut. Pour chaque échantillon, le paddle semble transmettre les bits de poids faible avant les bits de poids fort. Le signal sortant sur la broche 9 a une fréquence de 8 kHz.

Paddle international

Pour le paddle international, c'est un peu différent. C'est la console qui sélectionne le jeu de bits spécifique via la broche 7 du connecteur. Le paddle réagit en mettant le jeu de bits demandé sur les broches 1 à 4 et en mettant la broche 9 au même état. Selon mes observations, le paddle doit rafraîchir la valeur à transmettre au front descendant de la borche 7. (Sinon lors de certains mouvements on observes des soubresauts)

(Note: Ce graphique est représentatif de ce que mon firmware fait, ce qui n'est pas nécessairement conforme au design prévu par Sega. Il n'existe pas à ma connaissance de périphérique sur lequel je puisse me baser.)
Voici quelques photos d'un paddle HPD-200 que j'ai temporairement eu chez moi il y a quelques années:


goto top Retour en haut


Jeux testés

Jeu Console Mode Résultat
Galactic protector (JP) SMS Japonaise HPD-200 Ok
Galactic protector (JP) Genesis nord-américainPaddle international Ok
Outrun (US) SMS Japonaise via adaptateur HPD-200 Ok
Megumi rescue Everdrive + SMS Australienne HPD-200! Ok
Super racing Everdrive + SMS Australienne N/A Ne fonctionne pas
Contactez-moi si vous testez d'autre jeux, et n'oubliez pas de spécifier la région du jeu, la région de la console utilisée et la nature de tout adaptateur ou modifications de console impliqués s'il y a lieu.

goto top Retour en haut


Photos proventant des utilisateurs

C'est un réel plaisir pour moi de voir comment les autres s'y prennent pour mettre en œuvre mes projets! Faites moi 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.
2016-06-06: Kyle, d'Australie, m'a envoyé cette photo d'un paddle qu'il a bâti en utilisant une rallonge DB9 et un boîtier de manette USB NES!


goto top Retour en haut


Références

#DescriptionAdresse
1 Cette discussion où le code de lecture du paddle HPD-200 vs. le paddle international est décortiqué m'a appris pratiquement tout ce qu'il me manquait pour pouvoir réaliser ce projet. http://www.smspower.org/forums/6783-OneMoreTimePaddleControlPlusPaddleDetectionRegionDetection
2 De l'information générale sur le Paddle ainsi qu'une liste de jeux s'en servant. http://segaretro.org/Paddle_Control
3 Relire le code de mon projet Genesis/Atari/SMS à USB qui supporte depuis longtemps le paddle HPD-200 m'a sauvé un certain temps. http://www.raphnet.net/electronique/atari_usb/index.php

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: 15 Octobre 2016 (Samedi)