What’s next?

Version 0.20 is bringing many new stuffs and I hope its quality is good. I was thinking to code more things for this release, but it would have even more delayed the release date. Issues 66, 68 and 70 (enhancements, not bugs) will probably be fixed in the next release.

There also are a few things I want to work on.

  • Translation tables

I already studied the stick position to rotation speed relation some time ago (link). Measuring rotation speed for each stick position is quite painful, and I’m thinking to design a tool to automate it. I want this to work with a cheap video capture card (about 10$).
Why do I want to study rotation speed? I want to add some translation tables (there will be one different translation table for each game) so that a 1:1 translation can be achieved. A 1:1 translation means that if you double your mouse speed, your rotation speed will double. This aims to produce a better PC-feel.

Following chart gives the rotation speed vs stick position measured for COD:MW2:


It’s obviously not 1:1, especially for positions lower than 50.

Following table (values do not correspond to the above chart) shows how to perform a 1:1 translation:

1:1 translation
position speed 1:1 speed 1:1 position
1 0 8 7
32 91 140 57
64 295 480 85
96 589 720 108
128 960 960 128

All stick positions are required. Speed unit is °/s.

First column is the stick position.
Second column is the measured rotation speed.
Third column is the speed that we would expect with a 1:1 position to rotation speed translation (position*max speed/max position).
Fourth column is the translation of the position to perform a 1:1 translation. Look for the expected speed in the 2nd column (closest value) and look what position it is in the first column, this gives the 1:1 position.

The translation looks like this:

This position to position translation may introduce a loss of precision. It probably would be better to have a direct speed to position translation.
  • Better precision for the right analog stick

8-bit precision allows 256 stick positions. 10-bit precision allows 1024 stick positions. More positions give a finer control. As a comparison, a high-end mouse reports x and y values with a 16 bit precision.

The official sixaxis page tells that analog sticks and l2/r2 buttons have a 10-bit precision. This is wrong: stick and button positions are reported with a 8-bit only precision. Only motion sensing controls have a 10-bit precision. This is lame because many people are saying that the Xbox360 pad is technically lower than the Sixaxis (8-bit precision vs 10-bit precision), which is absolutely wrong.

We can’t change the precision of the sixaxis emulator, but it is probably possible to build a usb gamepad interface that has a precision higher than 8-bit for the right stick.

10 Replies to “What’s next?”

  1. Salut, petite question : comment savoir quelle version on a d'installée ? Quand on fait "About" ça donne juste une version de wxwidgets.

    Merci.
    Fred

  2. Système→Administration→Gestionnaire de paquets Synaptic

    Ensuite tu tapes sixemu dans la zone de texte "Recherche rapide", et entrée.

  3. Aha ! Ca marque 0.15-1. C'est donc pas la dernière qui serait la 0.20 ? Pourtant ça marque "dernière version = 0.15-1" et ça ne propose donc pas de mise à jour.

  4. J'ai fait la mise à jour mais je ne vois pas apparaître la nouvelle config black ops pour la souris logitech, et quand je démarre la config dans sixemugui je n'ai plus la petite fenêtre noire et dans le jeu, aucune commande n'est reçue.

    Je tente de réinstaller la 0.15

  5. Pas de panique !

    Normalement la fenêtre noire est toujours là, c'est juste qu'elle est 40 fois plus petite qu'avant !

    Pour le fait qu'il ne se passe rien, c'est normal aussi ! Il faut convertir ta conf comme expliqué dans ce post : lien.

    A chaque nouvelle version je fais un post qui explique les nouveautés, et si besoin je donne des détails importants. Ces posts sont "taggué" avec les mots "Package release" : lien.

    N'hésites pas si tu as des questions.

  6. Ah oui et pour les exemples de conf, ils sont dans /etc/emuclient/config.

    Les configs de l'utilisateur sont dans /home/"ton nom"/.emuclient (le . indique que c'est un fichier caché).

  7. Finalement ça marche effectivement, j'avais pas compris que "replace keyboard" et mouse étaient obligatoires… Merci !

    En revanche les pré-configs données en plus, je les vois pas… Mais c'est ma première fois dans linux ! Sinon à propos de ce que je disais l'autre jour sur mes dead zones à 0, il semble que maintenant ça marche aussi bien avec des dead zone à 5… Bon, je reste à 0.

  8. Pour trouver les exemples de configs il faut faire File→Open, puis cliquer sur un bouton "crayon" (de mémoire parce que là je suis sous windows). Puis il faut écrire /etc/emuclient dans la zone de texte.

    Je suis d'accord c'est pas intuitif, mais les configs de l'utilisateur ne doivent pas être écrasées par l'installation d'une nouvelle version.

  9. Bon j'ai compris pourquoi avec tes valeurs de calibration (exp=0.38 et multipliers élevés) ça saccade à basse vitesse, et pourquoi tu dois mettre 0 en dead zone : plus le multiplier est élevé, plus la première position s'éloigne de la dead zone. Pour contrecarrer cela, il faudrait faire en sorte que la première position soit à proximité de la dead zone.

    Je vais essayer d'inclure une correction dans la prochaine version 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *