Profils pour X52: changer le nom des modes avec un éditeur hexadécimal

Profils pour X52: changer le nom des modes avec un éditeur hexadécimal - Joys - Hardware - Périphériques

Marsh Posté le 06-02-2006 à 23:52:40    

obj: Profils pour X52: explication: changer le nom des modes avec un éditeur hexadécimal
But, Exemple: Faire que quand on change le commutateur de mode, c'est "Navigation", "Combat air" "Combat air shift" qui s'affaiche au lieu d'un bête "Mode 1" ou d'un ridicule "Mode 2 + petit doigt".
NB: je crois que pour le X36 et le X45, le logiciel est le même alors cette methode devrait fonctionner aussi pour eux.
 
 
Bonjour,
Sur le MFD du X52, on a 3 zones d'affichages: en haut l'affichage du mode sélectioné, au millieu un afficheur 3*16 caractères, en bas un chrono/horloge.
En fonctionnement profil chargé, l'afficheur 3 * 16 affiche le nom de mode sur la première ligne.
Or le logiciel de programmation sst ne propose pas la modification du nom du mode. Le mode 1 s'appelle toujours "Mode 1", le MFD affiche donc inutilement deux fois la même information.
J'ai téléchargé des profils en anglais et j'ai constaté que les modes shiftés s'appelaient "Mode X + Pinkie" au lieu de "Mode X + petit doigt" en Français (logique).
J'en ai conclu que les noms de modes sont modifiables dans les fichiers ".dat" de profils.
Après lecture de ce messages, vous devriez être capable de changer vous-mêmes le nom des modes.
Ce week-end j'ai donc utilisé un éditeur hexa (indispensable), comparé plusieurs profils, pour comprendre où se trouvent les informations qui nous interressent et comment sont elles structurées.
Pour les impatients, si le nom des modes que vous voulez utiliser, sont de taille inférieure ou égale à celle des noms d'origine, recherchez la chaine 00 4D 00 6F 00 64 00 65 00 20 00 31 (=".M.o.d.e. .1" ). Attention les points n'en sont pas ce sont des NULL (00h). Puis remplacez les lettres que vous souhaitez.
Mais si 6 caractères, ça ne vous suffit pas, lisez la suite.
 
Dans la zone de fichier qui nous interresse dans notre fichier d'origine, vous trouverez toujours ceci:
pré-visualisation texte  (Attention les points représentent des valeurs NULL ou non affichables:
.........M.o.d.e. .1...........M.o.d.e. .2...........M.o.d.e. .3.......*...M.o.d.e. .1. .+. .p.e.t.i.t. .d.o.i.g.t.......*...M.o.d.e. .2..+. .p.e.t.i.t. .d.o.i.g.t.......*...M.o.d.e. .3. .+. .p.e.t.i.t. .d.o.i.g.t..
 
vue hexa du contenu réel: (Attention  les adresses ne sont pas invariables et différent selon les fichiers)
 
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000960                        00  00 00 00 00 0E 00 00 00   .........
00000970   4D 00 6F 00 64 00 65 00  20 00 31 00 00 00 01 00   M.o.d.e. .1.....
00000980   00 00 0E 00 00 00 4D 00  6F 00 64 00 65 00 20 00   ......M.o.d.e. .
00000990   32 00 00 00 02 00 00 00  0E 00 00 00 4D 00 6F 00   2...........M.o.
000009A0   64 00 65 00 20 00 33 00  00 00 04 00 00 00 2A 00   d.e. .3.......*.
000009B0   00 00 4D 00 6F 00 64 00  65 00 20 00 31 00 20 00   ..M.o.d.e. .1. .
000009C0   2B 00 20 00 70 00 65 00  74 00 69 00 74 00 20 00   +. .p.e.t.i.t. .
000009D0   64 00 6F 00 69 00 67 00  74 00 00 00 05 00 00 00   d.o.i.g.t.......
000009E0   2A 00 00 00 4D 00 6F 00  64 00 65 00 20 00 32 00   *...M.o.d.e. .2.
000009F0   20 00 2B 00 20 00 70 00  65 00 74 00 69 00 74       .+. .p.e.t.i.t
 
 
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
0000DDF0                                                 00                  .
0000DE00   20 00 64 00 6F 00 69 00  67 00 74 00 00 00 06 00    .d.o.i.g.t.....
0000DE10   00 00 2A 00 00 00 4D 00  6F 00 64 00 65 00 20 00   ..*...M.o.d.e. .
0000DE20   33 00 20 00 2B 00 20 00  70 00 65 00 74 00 69 00   3. .+. .p.e.t.i.
0000DE30   74 00 20 00 64 00 6F 00  69 00 67 00 74 00 00       t. .d.o.i.g.t..


 
explication de la structure des données:
Ceux qui ont déjà fait de l'édition auront compris que la zone de noms de mode est dans ce cas là coupée en deux (et c'est presque toujours le cas).
Le fichier est enregistré par mots de 16 bits, ici les valeurs étant toujours inférieures à 256, on a un octet sur 2 égal à 0.
On peut diviser la zone en 6 parties (1 par nom de mode) qui ont la même structure, que voici:
 
1°mot de 16 bits: NULL   2°:ID mode   3°: NULL  4°:nombre d'octets en en Hexa d'ici à la fin du nom de ce mode  5°: NULL  6°: début du nom du mode

Exemple du dessus avec Mode 1:    
        NULL    1° mode     NULL   14 octets sont à suivre   NULL   nom du Mode: "Mode 1"
hexa    00 00    00 00     00 00   00 0E                     00 00  00 4D 00 6F 00 64 00 65 00 20 00 31
ASCII   ".."      ".."     ".."    ".."                       ".."  ".M"  ".o"  ".d"  ".e"   ". "  ".1"
 
 
Exemple du dessus avec Mode 3 + petit doigt:
   
        NULL    6° mode     NULL   42 octets sont à suivre   NULL   nom du Mode: "Mode 3 + petit doigt"
hexa    00 00    00 06     00 00   00 2A                     00 00  00 4D 00 6F 00 64 00 65 00 20 00 31 00 20
ASCII   ".."      ".."     ".."    ".."                       ".."  ".M"  ".o"  ".d"  ".e"   ". "  ".3"  ". "
 
hexa    00 2B 00 20 00 70 00 65 00 74 00 69 00 74 00 20 00 64 00 6F 00 69 00 67 00 74
ASCII    ".+"  ". "  ".p"  ".e"  ".t"  ".i"  ".t"  ". "  ".d"  ".o"  ".i"  ".g"  ".t"
 
 
récap des ID de mode: 1°     2°     3°     4°     5°     6°
                   0000h  0001h  0002h  0004h  0005h  0006h Bah oui, ils comptent bizare chez Saitek, pour eux, après 2 il y a 4.


 
Quelle valeur donner à "nombre d'octets..."?  
1° tactique: compter; 2° tactique: "Mode 1" prend 6 caractères. 6*2+2=14=0Eh
 
 
Donc vous collez tout ce petit monde à la suite les uns des autres, vous rajoutez un NULL, et vous obtenez la structure globale de la zone de définition des noms.
 
 
Par contre n'ai pas réussi à trouver comment modifier la taille de la stucture globale de la zone, donc si vous ajoutez des caractères à un nom de mode, il faudra ABSOLUMENT en enlever à un autre.
Mais ce n'est pas un problème, il suffit de remplacer les ridicules "+ petits doigt" par des "shift" ou des "bis". Donc avant de modifier quoi que ce soit, notez l'offset du dernier octet de la structure, et quand vous avez fini les modifs, vérifiez qu'il est au bon endroit.
 
Maintenant il ne reste plus qu'a trouver où se trouvent ces données dans le fichier de profil:
En 9FF vous trouverez ceci:

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
 
000009F0                                                 00                  .
00000A00   43 00 6F 00 6E 00 74 00  72 00 6F 00 6C 00 30      C.o.n.t.r.o.l.0


Il s'agit un début de suites de données qui ne doivent absolument pas changer de place.
Si votre profil est vierge ou pas trop compliqué, la zone des noms de mode commence quelques octets ou quelques dizaines d'octets plus avant.
Malheureusement, la structure de données ne rentre pas avant l'offset 9FF (même avec un profil vierge). La suite se trouve alors (beaucoup) plus loin, vers la fin du premier tiers du fichier. (lancer une recherche de chaine hexa pour la trouver).
Si le profil est complexe, il n'y a pas d'adresse fixe où chercher, mais la zone de déf des noms de mode est monobloc. Rechercher 00 4D 00 6F 00 64 00 65 00 20 00 31 (=".M.o.d.e. .1" ).


Message édité par guig2000 le 07-02-2006 à 00:03:39
Reply

Marsh Posté le 06-02-2006 à 23:52:40   

Reply

Marsh Posté le 22-02-2006 à 21:40:13    

2 Fichiers-exemples vierges pour les simulateurs d'avions de combat ici (cliquez sur le premier lien pour pouvoir télécharger):
 
http://www.chez.com/qg/
 
"http://www.chez.com/qg/pub/saitek/0.dat"
"http://www.chez.com/qg/pub/saitek/1.dat"


Message édité par guig2000 le 22-02-2006 à 21:44:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed