Routine de lecture du pad analogique

Le coin des demomakers et des programmeurs en herbe.

Modérateurs : SirG, Redfield1, shubibiman, Laucops

Répondre
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Routine de lecture du pad analogique

Message par MooZ »

Image

J'avais dit que le pachinko controller serait le prochain hard sur lequel je me pencherai. Mais cet après-midi, en glandant devant la TV, j'ai réussi à extraire la routine de lecture du pad analogique d'Operation Wolf et After Burner II. En forçant les valeurs du pad dans mednafen je suis arrivé à ça:
Image

Pour rappel, et si je ne raconte pas trop de conneries, 2 pad analogiques peuvent être utilisés sur PC Engine, le MicomSoft XE-1AP et le monstrueux Cyber-Stick. Seuls 4 jeux (tous de NEC Avenue) supportent ces pads:
  • Afterburner II
  • Forgotten Worlds
  • Operation Wolf
  • Outrun
Les fichiers de config pour Etripator pour Afterburner II et Operation Wolf sont disponibles ici.
Le pseudo code de la routine de détection/lecture du pad analogique est:

Code : Tout sélectionner

byte tab[] = {
    0x00, 0x01, 0x08, 0x09, 0x02, 0x03, 0x0a, 0x0b,
    0x04, 0x05, 0x0c, 0x0d, 0x06, 0x07, 0x0e, 0x0f
}

X = 0

joyport = 0
delay

for (count=0; count<5; count++)
{   joyport = 2
    delay
    for(Y=0; Y<256; Y++)
    {   A = joyport
        if( (A & 3) == 0 )
            break;
    }
    if( Y == 256 )
        NOT FOUND

    joyport = 3
    delay
    A = joyport
    Y = A & 0x0F
    out[X++] = tab[Y]

    joyport = 2
    delay

    for(Y=0; Y<256; Y++)
    {   A = joyport
        if( (A & 3) == 1)
            break;
    }
    if( Y == 256)
        NOT FOUND

    joyport = 3
    delay
    A = joyport
    Y = A & 0x0F
    out[X++] = tab[Y]
}
Je ne sais pas encore trop comment les données lues sont utilisées. Par exemple, où sont stockés les valeurs des boutons I,II,SEL,RUN ? Quelles valeurs correspondent aux axes X/Y ? etc...
Dans tous les cas, on a dans Operation Wolf:

Code : Tout sélectionner

v30 = (out[0] << 4) | out[1]
Y = (out[2] << 4) | out[6]
v31 = unknown_array[Y]
Y = (out[3] << 4) | out[7]
v32 = another_unknown_array[Y]
v33 = (out[4] << 4) | out[8]
v34 = (out[5] << 4) | out[9]
Avatar de l’utilisateur
Kaminari
Modérateur
Messages : 7049
Inscription : ven. 24 sept. 2004 19:36
Contact :

Re: [Hardware] Pad analogique

Message par Kaminari »

Pour info, le support analogique fait partie des fonctionnalités voulues par Kitao Nakamura dans Ootake (en fait, l'implémentation est officiellement en cours de développement depuis plusieurs années). Il est possible de le contacter par mail ou Twitter (il est sympa et comprend l'anglais) pour lui demander des infos sur ce sujet.

kitao@ouma.jp
http://twitter.com/kitao_n
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Re: [Hardware] Pad analogique

Message par MooZ »

Les gars de chez Micomsoft ont mis à dispo des scans du manuel du XE-1 AP.
http://www.micomsoft.co.jp/cgi-bin/deve ... .cgi?no=32

Le manuel du Cyber Stick.
http://nfggames.com/x68000/Documentatio ... Manual.pdf
Avatar de l’utilisateur
Kaminari
Modérateur
Messages : 7049
Inscription : ven. 24 sept. 2004 19:36
Contact :

Re: [Hardware] Pad analogique

Message par Kaminari »

Apparemment le Micomsoft (en DSUB-9) nécessite un adaptateur séparé pour la PCE.
Avatar de l’utilisateur
RayXambeR
NECstasien
Messages : 333
Inscription : mer. 27 sept. 2006 19:35
Contact :

Re: [Hardware] Pad analogique

Message par RayXambeR »

Il me semblait qu'il y avait un 5ème jeu analogique mais je suis plus très sûr.
J'ai la manette micomsoft mais je n'ai pas l'adaptateur :(
Ca peut se fabriquer ça (avis aux experts !)
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Re: [Hardware] Pad analogique

Message par MooZ »

Un article avec toute la tripaille du pad et de l'adaptateur (xhe-3)
https://www.raphnet.net/electronique/xh ... dex_en.php
Avatar de l’utilisateur
franz
NECromancer
Messages : 4160
Inscription : jeu. 26 janv. 2006 09:33
Localisation : Montpellier

Re: [Hardware] Pad analogique

Message par franz »

RayXambeR a écrit : lun. 20 juin 2016 21:14 Il me semblait qu'il y avait un 5ème jeu analogique mais je suis plus très sûr.
Battle Ace (SGX) peut-être?
Avatar de l’utilisateur
RayXambeR
NECstasien
Messages : 333
Inscription : mer. 27 sept. 2006 19:35
Contact :

Re: [Hardware] Pad analogique

Message par RayXambeR »

Bien vu Mooz. Eh eh, pour l'anecdote c'est moi qui ait proposé cette idée d'adaptateur spécifique à Raphaël. Du coup je lui ai envoyé ma manette analogique, un pad PCE et un quintupleur. Et, qq mois plus tard, le voici qui a réussi à concrétiser : génial ! :)
Il est vraiment très fort et il crée un maximum d'adaptateurs en tous genres, tous azimuts. Je vous conseille vraiment ses créations, elles sont faites avec passion et techniquement très au point.
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Re: [Hardware] Pad analogique

Message par MooZ »

Je vais surement lui en prendre un. Comme ça je pourrais finaliser le code après avoir barboter un cyberstick :)
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Re: [Hardware] Pad analogique

Message par MooZ »

Et voilà, une doc complète sur le xe1-ap.
https://github.com/AleffCorrea/PCE-XE1AP-ANALOG
Avatar de l’utilisateur
franz
NECromancer
Messages : 4160
Inscription : jeu. 26 janv. 2006 09:33
Localisation : Montpellier

Re: [Hardware] Pad analogique

Message par franz »

Merci! :D
Avatar de l’utilisateur
shubibiman
Administrateur
Messages : 16392
Inscription : jeu. 23 sept. 2004 14:26
Localisation : Meet me at Shubibi's

Re: [Hardware] Pad analogique

Message par shubibiman »

Merci Mooz :)
"You are truly the PCE game clearing master"

*****Membre du FLPCE Canal Historique*****
Répondre