Manettes de jeu analogiques.

15 sujets de 1 à 15 (sur un total de 15)

  • Gilloo

      #10328

      En lisant le code AROS, coté Poseidon, je remarque que les joysticks analogiques sont gérés… c’est à dire que les valeurs en X et Y sont données entre -128 et 127 et pas simplement des directions codées sur 4 bits.

      La lowlevel.library devrait rendre des trucs du genre

      0x2000YYXX souris YY= Y; XX= X

      0x3000000D joysticks D= directions

      0x4000000D paddles D= directions

      0xe000YYXX joysticks analogiques YY= Y; XX = X.

      or ce n’est pas le cas.

      Quels jeux utilisent ces subtilités ?

      Est-ce que le gameport.device est utilisé, si oui par quels jeux ?

      davebraco

        #158177

        FPSE peut-être?

        Je vais essayer de jeter un coup d’Oeil.

        henes

          #158178

          @Gilloo

          Il s’agit d’une extension de Poseidon et documentée dans libraries/lowlevel_ext.h

          Tu remarqueras que les vibrations sont également gérées.

          Pour les jeux utilisant cette API analogique, il y a au moins Virtual Grand Prix 2 ainsi que certains jeux SDL (PowerSDL utilisant cette extension pour sa gestion des joysticks analogiques).

          wolfmaniac

            #158179

            L’Amiga gèrant ces manettes depuis toujours, je me suis parfois posé la question : avec quels jeux peut-on les utilisées ?

            Get27 (Sébastien LIGEZ)

              #158180

              Ho ho… ça sent la mise à jour ANAIIS avec le support des joysticks analogiques :-P

              Amiga 500+, 68010, 2MB chipram, 4MB fastram, IDE68k, HxC Floppy Emulator, Subway USB, Indivision ECS, Rom 3.9
              PowerMac 3.5 MorphOS, G4 1.0GHz DP, 1 Go ram, Radeon 9600 128Mo mac, 22" 1680x1050
              PowerMac 7.3 MorphOS, G5 2.3GHz DP, 2 Go ram, Radeon 9800 128Mo pc reflashee, 22" 1680x1050

              Gilloo

                #158181

                @Get27 :-D Soit ça sent bon, soit tu lis dans mes pensées ;-)

                Mais il y a encore un peu de boulot.

                J’arrive à décoder ces satané HIDs, reste à savoir quoi en faire avec l’imput étriqué de l’Amiga.


                @Henes
                ,

                Je suppose qu’il faut appeler le

                SetJoyAttrs(port, TAG_slowmotor, valeur, TAG_DONE) ;

                SetJoyAttrs(port, TAG_fastmotor, valeur, TAG_DONE) ;

                SetJoyAttrs(port, TAG_motoroff, 0, TAG_DONE) ;

                au bon moment ? (me souviens pas de tête le nom des tags :) )

                Mais pour le rumble j’ai une intensité 0..255 et une durée 0..255 pour le moteur à gauche et pour le moteur à droite, soit 4 valeurs à fournir.

                Comment convertir une vitesse en intensité/durée, le tout en deux tags ? :-?

                Les valeurs X et Y doivent-elles être recadrées entre -128..127 quand les données brutes sont 0..255, 127 étant le point 0 (je suppose que oui… sinon on peut pas trop diriger)

                henes

                  #158182

                  @gilloo

                  Je n’ai jamais réfléchi ou joué avec les vibrations mais j’imagine que la vitesse est directement liée à l’intensité. Quand à la durée, il me paraitrait logique que tu l’ignores…. puisque c’est l’utilisateur qui start/stop les moteurs. Après un start, ils tournent jusqu’au stop.

                  Oui aux autres questions.

                  Et je crois que BoulderDaesh utilise l’API vibration. Ca te fait au moins un truc 68k de test :)

                  Gilloo

                    #158183

                    @Henes

                    J’ai testé ceci

                    http://aminet.net/package/game/jump/boulderdaesh

                    Ohohoh, je me retrouve en territoire connu d’il y a 29 ans!! (la mine aux diamants,… TO7!!)

                    Bien que multitâche, il ne semble pas utiliser la lowlevel.library

                    Par contre le clavier usb fonctionne, donc un jeu de plus compatible avec ANAIIS :)

                    D’autres jeux ?

                    henes

                      #158184

                      @Gilloo

                      A l’éditeur hexa, je vois pourtant bien un lowlevel.library dans l’exécutable. Et je crois savoir que Geit (l’auteur) l’utilise. Peut-être un problème de version ? Snoopdos ne voit rien ?

                      Gilloo

                        #158185

                        Snoopdos ouvre bien la lowlevel.library, mais j’ai seulement celle du 3.1 d’origine…

                        henes

                          #158186

                          Etrange alors.

                          Je vois que le jeu ouvre la v40+ du 3.1 donc ça devrait marcher…

                          Gilloo

                            #158187

                            Il faut peut être la lowlevel.library du paquet newlowlevel.lha

                            http://aminet.net/package/driver/input/NewLowLevel

                            étrange cette histoire…

                            henes

                              #158188

                              Non pas besoin de la newlowlevel de Guido. Je crois qu’il l’a d’ailleurs plus ou moins abandonné. Je viens d’essayer et le jeu fonctionne avec la lowlevel.library de MorphOS et Poseidon.

                              Qu’essayes-tu de faire ? Ecrire ta propre lowlevel ? Installer un patch compatible avec celui de Poseidon ?

                              Gilloo

                                #158189

                                J’essaie de patcher SetJoyPortAttrs et ReadJoyPort pour pouvoir utiliser les spécificités décrites dans libraries/lowlevel_ext.h , donc effectivement comme Poseidon.

                                Pour les joysticks et gamepads donnant une direction + boutons ça fonctionne bien, mais je n’ai rien pour tester les analogiques (j’ai bien peur de m’être trompé dans les directions, bien que je prenne ces données comme pour les souris, je me retrouve avec une position centrale au repos variant de -1,0 ou +1)

                                Gilloo

                                  #158190

                                  Dans le dernier paquet ANAIIS

                                  http://aminet.net/package/driver/other/anaiis

                                  il y a dans le répertoire bin un programme lowlevel qui teste les souris, joysticks analogiques et tout le toutim. Le fait d’appuyer longtemps sur le bouton du joystick activera le ‘rumble’ de plus en plus intensément.

                                  Il devrait arriver le paquet suivant avec le code source pour ceux que cela intéresse

                                  http://aminet.net/package/driver/other/anaiis_lowlevel

                                  mais apparemment le upload n’a pas marché :-(

                                15 sujets de 1 à 15 (sur un total de 15)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement Manettes de jeu analogiques.

                                Amiga Impact