[PRJ-ABOUTI] PSX Joystick --> Mégadrive.

Postez vos idées sur vos travaux personnels. Pour débattre de toutes les adaptations faites sur les machines.

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

[PRJ-ABOUTI] PSX Joystick --> Mégadrive.

Message par MG » 24 nov. 2006 10:45

Yop !

En ce jour d'avant we, je lance ou plutôt j'informe la communauté Silicienne de l'avancement de mon nouveau projet qui est l'adaptation d'un pad PSX sur mégadrive.
Au commencement ce sera l'adaptation d'un pad numérique classique, histoire de bien comprendre le protocole de communication entre l'host (la console) et le périphérique (pad).
Par la suite on s'attaquera au pad analogique pour finir par le maxi joystick analogique qui est l'idéal pour jouer à des jeux d'avions ou bien des shoots (jeux que j'affectionne particulièrement).

La documentation sur la mégadrive :
Schéma de principe de la GENESIS, docs etc etc... une mine d'infos :
http://cgfm2.emuviews.com/gen.php
Infos soft et hard une mine d'infos aussi :
http://www.classicgaming.com/epr/genesis
La doc "officielle ?" de la mégadrive :
http://www.classicgaming.com/epr/genesis/segadoc.zip
Infos sur le principe soft de lecture du pad (ou joystick) mégadrive :
http://www.classicgaming.com/epr/genesis/genpFAQ.txt

La documentation sur le pad PSX :
http://nkmm.org/yagura/lib/
Réalisation d'un système similaire au mien : Un 68HC11 pilote le pad pour sérialiser les données au PC.
http://sophiateam.undrgnd.free.fr/psx/index.html

Ma page qui comporte quelques photos du pad pour l'instant :
http://blatter.perso.cegetel.net/bidoui ... y_psx.html

Principe du système :
On garde l'ancien systeme qui permettait de piloter un volant et pédales PC sur mégadrive (le multiplexage etc etc).
On se limite à gérer le pad PSX (dans un premier temps) comme une "bête" manette mégadrive à 3 boutons.
Par la suite faut que je regarde comment est fichue une manette à 6 boutons sur MD.

Pad PSX/correspondance pad MD :
START --> START
RIGHT --> RIGHT
LEFT --> LEFT
UP --> UP
DOWN --> DOWN
CARRE --> A
CROIX --> B
ROND --> C

Ce que l'on sait :
Les niveaux actifs d'un pad MD sont au "0" logique.
Les niveaux actifs d'un pad PSX sont au "0" logique.

Je passe sur les détails du protocole, je m'attarde juste sur le buffer de données.
On sait aussi que la communication entre la console et le pad PSX s'effectue par un protocole série synchrone dont l'host (console) est le maître.
Les données sont sérialisées par le bit de poids faible en premier et sont composées de 8 bits.
Le buffer de données est composés de 7 octets oiu l'on trouve :
L'identificateur du pad (numérique/analogique/souris etc etc ...)
Un acquitement.
Les 5 derniers (suivant le cas) composent l'état des boutons ainsi que les positions analogiques en XX' et YY' des 2 curseurs analogiques.
(Des détails se trouvent dans les pages citées plus haut en liens web).


--------------------
Le but à atteindre étant de connecter ce type de joystick sur un standard JAMMA.
Ce qui sera plus qu'intéressant dans la mesure ou le moindre pad PSX est composé de : START/SELECT (Jamma COIN et Jamma START), UP/LEFT/RIGHT/DOWN (Jamma idem), ROND/CARRE/CROIX/TRIANGLE (Jamma Boutons 1/2/3/4) et L1/L2/R1/R2 (Jamma Boutons 5/6...)
Le pb étant juste de désosser une PSX HS (si possible) histoire d'avoir le connecteur pad PSX sur la carte d'adaptation.
La vidéo pour la carte Jamma étant déjà réalisée dans un autre projet que j'ai déjà fais, à base de LM1881, voir les pages de mon mini site si cela vous intéresse).

Ajout des infos au fur et à mesure de l'avancement du projet.
Actuellement le schéma et le soft st fait (tjrs du PIC16F876x à 20Mhz), et je n'attends plus que la carte pour tester ce we si j'ai du temps.

A+[/u]
Dernière édition par MG le 27 nov. 2006 11:17, édité 1 fois.
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

Avatar de l’utilisateur
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2041
Inscription : 03 juin 2002 22:07
Localisation : 77
Contact :

Re: [PRJ] PSX Joystick --> Mégadrive.

Message par yvesffr » 24 nov. 2006 11:48

MG a écrit : Le but à atteindre étant de connecter ce type de joystick sur un standard JAMMA.
Ce qui sera plus qu'intéressant dans la mesure ou le moindre pad PSX est composé de : START/SELECT (Jamma COIN et Jamma START), UP/LEFT/RIGHT/DOWN (Jamma idem), ROND/CARRE/CROIX/TRIANGLE (Jamma Boutons 1/2/3/4) et L1/L2/R1/R2 (Jamma Boutons 5/6...)
Le pb étant juste de désosser une PSX HS (si possible) histoire d'avoir le connecteur pad PSX sur la carte d'adaptation.
La vidéo pour la carte Jamma étant déjà réalisée dans un autre projet que j'ai déjà fais, à base de LM1881, voir les pages de mon mini site si cela vous intéresse).


[/u]
génial, c'est un truc qui était dans ma longue liste "A faire" ;) je suis impatient de voir le résultat ! D'ailleurs les manettes GC, DC fonctionnant sur le meme schema il aura
peut etre moyen de faire un adaptateur multiple :)

:)
Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium

Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

Message par MG » 25 nov. 2006 14:04

Yop !

Depuis hier soir, je fulmine :
Les signaux venant des entrées ACK/DATA venant du pad PSX sont affreux !
J'ai beau mettre des pull ups, des pull down... pfff rien n'y fais...

Bah, je farfouille sur le net pour être sûr à 100% de ma bidouille !
Comme la célèbre réplique le dit : "je l'aurai, je l'aurai un jour..."
Je n'en doute pas ;)
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

Message par MG » 25 nov. 2006 16:11

Re-Yop !

Ok, c'est bon ;)
Image ici :
http://www.blatter.perso.cegetel.net/bi ... pe_psx.jpg

C'est le prototype, câblé en parallèle sur une manette désossée, car je n'ai pas de PSX HS pour en récupérer le connecteur du port pad.

Image du système en fonctionnement sur la mégadrive :
http://www.blatter.perso.cegetel.net/bi ... to_psx.jpg

Ce qui m'a posé le plus de mal :
Jusqu'à présent je faisais une confiance aveugle à mon oscilloscope, ben faut pas...
Donc, les entrées in_data et in_acknoledge venant du pad PSX sont à connectées au +5V à une résistance de 10K (pull-up).
De plus de nombreuses docs sur le net sont plus ou moins correctes concernant le protocole de communication.
En fait le clock est bien de 250KHz, mais la validation des données en sortie (commande venant de la PSX - de mon système donc) et en entrée (in_data venant du pad) ne s'effectue que sur le front descendant du clock que la PSX (mon système) génère.

Ajouter à cela quelques bugs de ma part (pffffff, ça c'est lourd), et on arrive enfin à un système qui fonctionne correctement.

Liste à faire :
Tester un pad analogique (non fait pour l'instant).
Petite carte (ou PCB) avec un connecteur PSX pour joystick femelle.
Ensuite adapter ce système au format JAMMA, ben là, c'est du tout fait presque... vu que les sorties qui commandent le multiplexeur pour la mégadrive sont vraiment du bit à bit pour chaque boutons du PAD.

Brefle, on est content ;)

Mise à jour de ma petite page sur mon petit site perso lorsque j'aurais le temps, et je tenterai de bien détailler le protocole, mais bon les explications ne st pas trop mon fort.

A+
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

Avatar de l’utilisateur
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2041
Inscription : 03 juin 2002 22:07
Localisation : 77
Contact :

Message par yvesffr » 25 nov. 2006 16:39

8O impressionnant , en 2 fois rien de temps !

bravo


Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium

Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

Message par MG » 25 nov. 2006 17:44

lol, si l'on veut... de 18h à 23h hier soir et bien 2 bonnes heures cet am...
le hard était déjà fait avec le volant pc pour mégadrive.

Arf ;)

Sinon, yes, ça fonctionne bien, si j'étais pas si feignant je le câblerai en fils volants sur un pcb, mais là, j'ai vraiment la flemme.
Pe demain, mais je ne connais pas trop encore tous les boutons du format JAMMA...

6 Boutons ... arf, ça en fait un max tout de même.

Sinon, j'ai trouvé (enfin) des connecteurs JAMMA, 2 mecs sympa sur Bordaux m'en ont proposé (gratos qui plus est), j'en ai rencontré un qui m'en a filé un et j'ai trouvé une boîte qui en vend 4 pour 25 euros fdpin.
Sud Automatic je crois.
Donc je vais enfin pouvoir m'attaquer à ça.
La partie vidéo j'ai déjà, j'ai fais un adaptateur avec LM1881 vers péritel RVB pour brancher sur TV ou moniteur d'arcade, après faut juste câbler le pad.
Mon truc tel qu'il est là peut suffire pour un système COIN1/START/Bouton 1 et bouton 2. (avec up/down/right et left).

A+
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

Avatar de l’utilisateur
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2041
Inscription : 03 juin 2002 22:07
Localisation : 77
Contact :

Message par yvesffr » 25 nov. 2006 18:07

Ici pour 25Euros tu peux en avoir plus (frais de port compris) et des tops en plus...

http://www.jammaboards.com/store/jamma- ... od_47.html

J'ai deja commandé chez eux ils sont sérieux.


Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium

Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

Message par MG » 25 nov. 2006 19:02

Oui, en effet, du coup je me suis inscrits.

Mais je bloque un peu sur les frais de port...
Je prends lettre par avion, le moins cher ?
C'est où cette boîte aux US ?
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

Avatar de l’utilisateur
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2041
Inscription : 03 juin 2002 22:07
Localisation : 77
Contact :

Message par yvesffr » 25 nov. 2006 19:17

Lettre par avion oui ca doit etre le moins cher.

Si t'en a besoin d'un je peux t'en filer un, il doit m'en rester (version JB1).

Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium

Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

Message par MG » 25 nov. 2006 19:47

C'est gentil, mais non, un gars m'en a filé un et j'en prend 4 pour être sûr d'en avoir assez pour les 60 ans à venir...

Merci pour les infos, je passe commande demain ;)


Edit :
J'ai mis des infos et le schéma + le source en download sur ma petite page associée à ce projet (manque pas mal de trucs, mais bon).
http://blatter.perso.cegetel.net/bidoui ... y_psx.html

A+
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

winandy

besoin d aide ...

Message par winandy » 20 déc. 2006 16:08

slt

voila je viens de realise un emulateur de pad psx2 ..

j ai sans dificulté trouvé le protocole de communication

http://www.classicgaming.com/epr/playstat/Pad&Mem.txt
de plus j ai analysé le protocole avec un osci. brache sur un pad et correspond bien a celui des notes.

Alors j ai utilisé un pic 16f87j10 de microchip et aussi avec un chipcon cc1010 .... pour emuler le pad ..
apres teste, il ne passe pas, ai regarde avec l osci me semble bien avoir le meme protocole.....
Ici je dois obligatoirement brancher en amont un pad psx2 pour que cela fnct et la je ne joue que sur les 2 derniers bytes des boutons et laisse les trois premier bytes en directe entre la ps2 et le pad ....

voila qqun a une pt idee , manqerait il qqchose ds les note du protocole. une sorte initialisation de manette .......

merci a vous

winandy :wink:

Avatar de l’utilisateur
MG
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 353
Inscription : 13 janv. 2005 13:45
Contact :

Message par MG » 21 déc. 2006 10:31

Yop !

Alors ce dont je suis sûr c'est que :
1/ les pads PSX et PS2 fonctionnent de la même façon.
2/ sur certains (Fox2Pro par exemple), il faut impérativement une attente entre chaque lecture du pad de ... 20 ms (éh éh, 50Hz inside).
3/ Il n'y a pas d'init du pad (Pas de commandes spécifiques pour l'initialisation venant de la PSX pour le pad).
L'init du pad s'effectue à la mise sous tension, et c'est terminé.

Ensuite pour les signaux, si on respecte les différentes conditions du protocole, ça fonctionne correctement (Il y a pas mal de soft qui circulent sur le net qui fonctionnent même sans trop respecter les conditions de l'acknoledge, et qui (à mon avis) se plantent sur le fonctionnement du clock, mais ça doit fonctionner tt de même grâce aux vitesses de communication des différents pads).

Pour moi (bah, je peux me planter, hein !) c'est dérivé de l'I2C.

Donc la lecture du bit data est effectuée après le front descendant et le bit de commande est validé avant le front descendant du clock.

Maintenant pour simuler un pad PSX (intéressant comme idée d'ailleurs), il faut que le pad boost plus que l'host et qu'il soit (évidemment) en attente car il en est l'esclave (vi, logique ;) )

Les chronogrammes suivants correspondent à mes propres déductions.

Image

Je pense que si tu respectes cela, et si tu choisis le mode de pad numérique (pour commencer, puis le mode analogique red par la suite, etc etc), il n'y a pas de raisons que cela ne fonctionne pas.

Bonne continuation, A+
Mon pseudo est directement lié aux prénoms de mes enfants : Nadine, Christine et Nicolas.

Avatar de l’utilisateur
Arthur
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1374
Inscription : 20 juin 2002 21:36
Localisation : France 95

Message par Arthur » 28 janv. 2007 14:25

il y a moyen de miniaturiser le truc :wink:

Image

Répondre

Revenir vers « Idées »