Adaptateur manette Dreamcast à USB

Introduction

On me l'a demandé plusieurs fois et bien que j'avais hâte de m'y mettre en raison du défi, il m'a fallu du temps pour commencer car j'avais plusieurs autres projets, tous aussi intéressants. Mais c'est à présent chose faite. L'adaptateur fonctionne. Je vous invite à lire le journal du projet si les détails techniques du chemin pour arriver au résultat final vous intéressent.

Caractéristiques:
  • Support des manettes Dreamcast standard. (Testé avec HKT-7700 et Performance P-20-007)
  • Support des claviers pour Dreamcast. (Testé avec les modèles HKT-4000, HKT-7600 et HKT-7631)
  • Interface USB HID standard. (Testé sous Linux et Win7)
  • Fonctionne bien avec l'émulateur nulldc.
  • Les manettes des style arcade devraient aussi fonctionner. (Pas testé)
  • Support incomplet (roulette non fonctionelle) de la souris. (Testé avec HKT-4200)
Un jour, j'ajouterai peut-être le support pour le kit de vibration. Les cartes mémoires ne seront jamais supportés par ce design.


Quelques articles basés sur ce projet sont disponibles dans mon magasin:





Photos

Mon montage pour le développement

Mon montage pour le développement

Adaptateur fini

Adaptateur fini

Manette testée: HKT-7700

Manette testée: HKT-7700

Souris testée <sup>[1]</sup> : HKT-4200

Souris testée [1] : HKT-4200


Manette sous win7

Manette sous win7

Manette sous win7

Manette sous win7

Souris sous win7

Souris sous win7

Manette Performance P-20-007

Manette Performance P-20-007

Clavier testé: HKT-4000

Clavier testé: HKT-4000

Clavier testé: HKT-7600

Clavier testé: HKT-7600

Clavier sous Win7

Clavier sous Win7

Clavier sous Win7

Clavier sous Win7



[1]: Le support de la souris est partiel (la roulette ne fonctionne pas).



Schéma

La manette Dremcast est alimentée directement par le 5 volt provenant d'USB. Il y faut un régulateur de 3.3v pour alimenter le micro-contrôleur car celui-ci communique avec la manette et la communication est faite sous 3.3v. Ce montage simple utilise un Atmega168 cadencé à 16MHz, ce qui dépasse un peu la limite à cette tension (environ 13MHz) mais ne semble pas causer de problèmes. Je ferai peut-être un jour une version plus compliquée avec des convertisseurs de niveaux logiques qui permettront d'éviter cette pratique.

Voici une vue des deux types de connecteurs (côté console et côté périphérique) avec les numéros de broche indiqués.



Aussi, puisque mon circuit multiuse PCB2 se prête bien à ce projet, voici un diagramme de câblage l'utilisant.


Notez que le circuit doit être assemblé avec un régulateur de 3.3v. Des résistances (ou ponts de soudure) doivent être installées de sorte que le micro-contrôleur soit alimenté à 3.3v.



Logiciel

Version v1.2
23 novembre 2013 (Samedi)
Nouvelles fonctionnalités:
  • Support du clavier (Testé: HKT-7600 et HKT-4000)
  • Fréquence d'interrogation augmentée pour un meilleur temps de réponse
  • Affichage d'une image sur le LCD du VMU. Note: L'image est «hardcodée». L'écran n'est pas utilisable via USB)
Fichier(s):
dreamcast_usb-1.2.tar.gz (111.1 KB)
dc_usb-1.2.hex (22.7 KB)
Afficher les versions précédentes
Version v1.1.1
2 novembre 2013 (Samedi)
Augmentation du délai d'attente de réponse. Permet à la manette Performance P-20-007 de fonctionner.
Fichier(s):
dreamcast_usb-1.1.1.tar.gz (106.3 KB)
dc_usb-1.1.1.hex (18.1 KB)
Version v1.1
27 octobre 2013 (Dimanche)
Première publication:
  • Support des manettes standard.
  • Support de la souris incomplet (roulette non fonctionelle).
Fichier(s):
dreamcast_usb-1.1.tar.gz (106.2 KB)
dc_usb-1.1.hex (18.1 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/dreamcast_usb
Utilisation des fichiers .hex
Les fichiers .hex sont pour programmer l'Atmega168a. Les "fuses bytes" pour ce projet sont: extended_fuse=0x01, high_fuse=0xd5, low_fuse=0xd7.

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.




Utilisation

J'ai pensé que l'adaptatateur serait probablement beaucoup utilisé avec l'émulateur de Dreamcast nulldc. Je me suis donc assuré que tout fonctionnerait bien. Voici un exemple de configuration:


Démarrez nulldc et allez dans Options-> Maple->Port A. Attachez ensuite le plugin «PuruPuru Dreamcast Controller» au port en question.
Options-> Maple->Port A-> Attach...

Options-> Maple->Port A-> Attach...



Ensuite, naviguez à nouveau au même endroit et exécutez la configuration avec «Config keys for Player 1».
Options-> Maple->Port A-> Config...

Options-> Maple->Port A-> Config...



Enfin, dans la fenêtre de configuration qui se sera alors ouverte, configurez les axes et les boutons. Notez que j'ai configuré l'option «deadzone» au minimum (1%) car c'est ainsi que le jeu m'a semblé répondre comme sur une vraie console.
Plugin configuration

Plugin configuration






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.

1 février 2014 (Samedi)
Phil a réalisé cette conversion de manette à USB vraiment très proprement. Il écrit: « Je n'ai pas construit d'adaptateur, mais j'ai modifié une manette Dreamcast en utilisant TOUTES les pièces de la manette, incluant le câble mais modifié pour USB. Cela fonctionne bien! ». Il ajoute: « J'ai dû rallonger les fils, couper du plastique avec une lame de razoir afin de faire de l'espace pour le connecteur USB et j'ai fabriqué un petit couvercle noir pour la prise à partir d'un boîtier de DVD qui ne servait pas ».



7 janvier 2020 (Mardi)
Quelqu'un en chine a utilisé un circuit atmega168 mini avec succès pour fabriquer un adaptateur.






Références

Les documents suivants ont été d'une grande utilité 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.