[DCMOTO] second bouton de manette
Modérateurs : Papy.G, fneck, Carl
[DCMOTO] second bouton de manette
Daniel,
J'ai découvert récemment (mieux vaut tard que jamais ...) qu'il existait des manettes Thomson (MJ90-020) avec deux boutons.
fxrobin a fait un petit programme pour montrer le fonctionnement sur un TO8 : Ainsi qu'une vidéo de démo du résultat :
La lecture du registre permet bien de capter les deux boutons.
Serait-il possible de faire évoluer DCMOTO pour prendre en compte ce second bouton ?
J'ai découvert récemment (mieux vaut tard que jamais ...) qu'il existait des manettes Thomson (MJ90-020) avec deux boutons.
fxrobin a fait un petit programme pour montrer le fonctionnement sur un TO8 : Ainsi qu'une vidéo de démo du résultat :
La lecture du registre permet bien de capter les deux boutons.
Serait-il possible de faire évoluer DCMOTO pour prendre en compte ce second bouton ?
-
- Messages : 7981
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [DCMOTO] second bouton de manette
C'est pas standard comme manette (les miennes n'en ont qu'un) et ce bouton n'est pas pris en compte dans l'API en rom pour les joysticks. Est-ce que ca ne serait pas plutôt lié au 2e bouton d'une souris plutôt ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [DCMOTO] second bouton de manette
Bah il y a quand même marqué Thomson sur la manette
Du coup même si la ROM n'a pas de routine pour y accéder, ça fonctionne bien en lisant E7CD.
Donc si je ne me trompes pas ça donne ça :
Du coup même si la ROM n'a pas de routine pour y accéder, ça fonctionne bien en lisant E7CD.
Donc si je ne me trompes pas ça donne ça :
Code : Tout sélectionner
[------] 6 bits convertisseur numerique-analogique
11 001100 (0: appuye | 1: relache)
|| ||
|| ||_Fire B Joypad1
|| |__Fire B Joypad2
||
||_Fire A Joypad1
|__Fire A Joypad2
Re: [DCMOTO] second bouton de manette
Il faut savoir que la différence entre les manettes NR. MJ90-020 à deux boutons et à un seul bouton est très subtile. L'aspect extérieur est parfaitement identique. La différence est visible uniquement à l'extrémité du connecteur.
A gauche une manette avec un seul bouton connecté (celui du socle). Il y a trois trous sans connexion.
A droite une manette avec les deux boutons connectés. Il y a deux trous sans connexion.
Mais ce n'est pas la seule différence. Dans le deuxième modèle, le "commun manette" est relié au "commun manette" de l'ordinateur. Dans le premier modèle le "commun manette" est relié à la masse de l'ordinateur. Je ne connais pas la raison de cette différence, une enquête serait nécessaire pour trouver l'explication. Il y a peut-être des différences de câblage dans les ordinateurs entre la première et la dernière génération.
[Edit] Autre différence : dans le premier modèle le premier (et seul) bouton est celui du socle (celui du manche est inactif). Dans le deuxième modèle le premier bouton est celui du manche, le deuxième est celui du socle.
[Edit2] Autres différences : sur une face du connecteur, près de la sortie du câble, l'inscription TAIWAN est du grand côté (5 broches) de la prise DB9 pour le premier modèle. Elle est du petit côté (4 broches) pour le deuxième modèle. A l'extrémité du connecteur les angles sont plus arrondis dans le premier modèle.
L'émulateur dcmoto gère le deuxième bouton des manettes depuis octobre 2011 :
Par contre, dans l'émulation des manettes du PC par le clavier, il n'est pas prévu de touche pour simuler le deuxième bouton. Je vais l'ajouter dans la prochaine version.
A gauche une manette avec un seul bouton connecté (celui du socle). Il y a trois trous sans connexion.
A droite une manette avec les deux boutons connectés. Il y a deux trous sans connexion.
Mais ce n'est pas la seule différence. Dans le deuxième modèle, le "commun manette" est relié au "commun manette" de l'ordinateur. Dans le premier modèle le "commun manette" est relié à la masse de l'ordinateur. Je ne connais pas la raison de cette différence, une enquête serait nécessaire pour trouver l'explication. Il y a peut-être des différences de câblage dans les ordinateurs entre la première et la dernière génération.
[Edit] Autre différence : dans le premier modèle le premier (et seul) bouton est celui du socle (celui du manche est inactif). Dans le deuxième modèle le premier bouton est celui du manche, le deuxième est celui du socle.
[Edit2] Autres différences : sur une face du connecteur, près de la sortie du câble, l'inscription TAIWAN est du grand côté (5 broches) de la prise DB9 pour le premier modèle. Elle est du petit côté (4 broches) pour le deuxième modèle. A l'extrémité du connecteur les angles sont plus arrondis dans le premier modèle.
L'émulateur dcmoto gère le deuxième bouton des manettes depuis octobre 2011 :
Code : Tout sélectionner
// Joystick emulation ////////////////////////////////////////////////////////
void Joysemul(int i, int state)
{
//PA0=0 nord PA1=0 sud PA2=0 ouest PA3=0 est PB6=0 actionA PB2=0 actionB
//PA4=1 nord PA5=1 sud PA6=1 ouest PA7=1 est PB7=1 actionA PB3=1 actionB
int n;
if(joysticks == 0) return;
n = 0;
switch(i)
{
case 0: if(joysposition & 0x02) n = 0x01; break; //manette 0 nord
case 1: if(joysposition & 0x01) n = 0x02; break; //manette 0 sud
case 2: if(joysposition & 0x08) n = 0x04; break; //manette 0 ouest
case 3: if(joysposition & 0x04) n = 0x08; break; //manette 0 est
case 4: if(joysposition & 0x20) n = 0x10; break; //manette 1 nord
case 5: if(joysposition & 0x10) n = 0x20; break; //manette 1 sud
case 6: if(joysposition & 0x80) n = 0x40; break; //manette 1 ouest
case 7: if(joysposition & 0x40) n = 0x80; break; //manette 1 est
case 8: if(state) joysaction |= 0x40; else joysaction &= 0xbf; break; //manette 0 bouton A
case 9: if(state) joysaction |= 0x80; else joysaction &= 0x7f; break; //manette 1 bouton A
case 10: if(state) joysaction |= 0x04; else joysaction &= 0xfb; break; //manette 0 bouton B
case 11: if(state) joysaction |= 0x08; else joysaction &= 0xf7; break; //manette 1 bouton B
}
if(n > 0) {if(state) joysposition |= n; else joysposition &= (~n);}
}
Dernière modification par Daniel le 22 avr. 2022 21:11, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7981
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [DCMOTO] second bouton de manette
Y a t'il des jeux ou des programmes d'époque qui utilisent le bouton du manche ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [DCMOTO] second bouton de manette
Aucun programme à ma connaissance. Et en plus il est impossible de tester le deuxième bouton avec le BASIC, ni même avec les routines du moniteur.
Les deux premiers modèles de manettes n'avaient qu'un seul bouton, la moitié des derniers modèles n'en avaient aussi qu'un seul.
Les éditeurs auraient eu des réclamations s'ils avaient utilisé les deux boutons, presque personne n'avait le bon modèle.
Les deux premiers modèles de manettes n'avaient qu'un seul bouton, la moitié des derniers modèles n'en avaient aussi qu'un seul.
Les éditeurs auraient eu des réclamations s'ils avaient utilisé les deux boutons, presque personne n'avait le bon modèle.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [DCMOTO] second bouton de manette
Désolé Daniel,
Effectivement je me suis basé sur le menu de l'émulation manette par le clavier (ce qui m'a laissé pensé que ce n'était pas géré) et je n'ai pas testé.
Le second bouton fonctionne bien dans DCMOTO avec ma manette 8bitDo M30 en Bluetooth ... mea culpa
En basic on peut lire la valeur du second bouton, le programme est dans mon premier post.
Effectivement je me suis basé sur le menu de l'émulation manette par le clavier (ce qui m'a laissé pensé que ce n'était pas géré) et je n'ai pas testé.
Le second bouton fonctionne bien dans DCMOTO avec ma manette 8bitDo M30 en Bluetooth ... mea culpa
En basic on peut lire la valeur du second bouton, le programme est dans mon premier post.
Re: [DCMOTO] second bouton de manette
Dans le message précédent, je voulais dire qu'il n'y a pas d'instruction BASIC pour tester le second bouton. Avec des PEEK et des POKE, bien évidemment, on peut tout faire en BASIC, par exemple tester les ports des PIA ou charger du langage machine en RAM et l'exécuter.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [DCMOTO] second bouton de manette
Ajout dans dcmoto de l'émulation du deuxième bouton des manettes par le pavé numérique (touche 0 pour la manette 0, touche 4 pour la manette 1).
Nouvelle version à http://dcmoto.free.fr/emulateur/ (chargez la version de développement 2022.04.23 ou plus récente).
Rappel :
Le deuxième bouton était déjà émulé par la touche ENTREE du clavier avec l'option CTRL-gauche (manette 0) et CTRL-droit (manette 1).
Il était aussi émulé par les joysticks du PC.
Nouvelle version à http://dcmoto.free.fr/emulateur/ (chargez la version de développement 2022.04.23 ou plus récente).
Rappel :
Le deuxième bouton était déjà émulé par la touche ENTREE du clavier avec l'option CTRL-gauche (manette 0) et CTRL-droit (manette 1).
Il était aussi émulé par les joysticks du PC.
Dernière modification par Daniel le 24 avr. 2022 09:07, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [DCMOTO] second bouton de manette
La manette Thomson de la vidéo semble n'être qu'un QuickShot I de Spectravideo ripoliné (un tour de Garcimore ? Chacun ses références ...). Je possédais un tel QuickShot I et il me semble bien que les deux boutons avaient le même effet dans les jeux ou dans le basic (sur TO8). J'ignorais en tout cas qu'on pouvait les différencier.
Asic512
Re: [DCMOTO] second bouton de manette
Super, merci Daniel.
Comme Bentoc, n'ayant pas vu d'option pour l'association avec le clavier, je pensais que ce n'était pas supporté.
Le joystick blanc, c'est celui que j'ai eu en 1988 avec mon TO8. A l'époque je n'avais pas compris pourquoi mon second bouton ne faisait rien alors qu'un copain, sur son TO9, avait le même et les deux activaient le "premier bouton".
Mystère résolu, il n'y a plus qu'à faire un truc qui en profite ou alors hacker un jeu existant pour lui rajouter un usage (Slapfight, Turbo Cup, ...)
Comme Bentoc, n'ayant pas vu d'option pour l'association avec le clavier, je pensais que ce n'était pas supporté.
Le joystick blanc, c'est celui que j'ai eu en 1988 avec mon TO8. A l'époque je n'avais pas compris pourquoi mon second bouton ne faisait rien alors qu'un copain, sur son TO9, avait le même et les deux activaient le "premier bouton".
Mystère résolu, il n'y a plus qu'à faire un truc qui en profite ou alors hacker un jeu existant pour lui rajouter un usage (Slapfight, Turbo Cup, ...)
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Re: [DCMOTO] second bouton de manette
Il y a un petit inconvénient à l'utilisation des deuxièmes boutons : Sur le port B du 6821, ils partagent deux bits avec le CNA.
Si on configure le 6821 pour la sortie son 6 bits les deuxièmes boutons ne fonctionnent plus, et réciproquement.
Si on configure le 6821 pour la sortie son 6 bits les deuxièmes boutons ne fonctionnent plus, et réciproquement.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [DCMOTO] second bouton de manette
C'est amusant cette histoire du deuxième bouton, câblé dans certains modèles et pas câblé dans d'autres.
Il y a une annonce récente d'ebay disant ceci :
Il y a une annonce récente d'ebay disant ceci :
L'acheteur risque de s'épuiser à le nettoyer, car comme il n'est pas câblé il ne fonctionnera jamaisUn joystick officiel en boite ( le bouton sur le stick ne fonctionne pas , à nettoyer)
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.