Profils pour X52: explication: changer le nom des modes avec

Salle dedieé aux péripheriques : Joystick, palloniers, Track-Ir

Topic author
Guig2000
Nouvelle Recrue
Nouvelle Recrue
Messages : 4
Inscription : 06 février 2006

Profils pour X52: explication: changer le nom des modes avec

#1

Message par Guig2000 »

J’avais déjà posté ce message sur un autre forum, où je suis inscrit depuis longtemps, mais je pense que s'il y a bien un endroit où cette explication pourrait intéresser, c'est sur checksix.
S'il y a d'autres personnes qui se sont intéressées au format de sauvegarde de ces fichiers, cela m'intéresse. S'il y a des programmeurs, qui pourraient automatiser cette tâche ce serait vraiment très bien.


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’affiche 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 méthode devrait fonctionner aussi pour eux.


Bonjour,
Sur le MFD du X52, on a 3 zones d'affichages: en haut l'affichage du mode sélectionné, au milieu 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 intéresse dans notre fichier d'origine, vous trouverez toujours ceci:
pré-visualisation texte (Attention les points représentent des valeurs NULL ou non affichables:

Code : Tout sélectionner

.........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)

Code : Tout sélectionner

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 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:
[tab=35] 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 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:
".." __ ".." __".." _".." _____________".." ".M" ".o" ".d" ".e" ". " ".3" ". " ".+" ". " ".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 structure 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:

Code : Tout sélectionner

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
edit: petite erreur corrigée ci-dessus
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 chaîne 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 la chaine hexa: "00 4D 00 6F 00 64 00 65 00 20 00 31" (=".M.o.d.e. .1").

EDIT: mon message était tout cassé après ces années.
Dernière modification par Guig2000 le dim. nov. 30, 2014 10:23 pm, modifié 1 fois.
Avatar de l’utilisateur

Dud FFW36
Pilote Confirmé
Pilote Confirmé
Messages : 3194
Inscription : 18 avril 2005

#2

Message par Dud FFW36 »

salut
petite question, dans ton texte tu laisses entendre que si le profil est simple on trouve facilement la ligne a modifier, dans ce cas ne serait il pas possible de créer un profil "vierge" avec mode 1 transformé en AIR /AIR , mode 2 en NAVIGATION et mode 3 en AIR/SOL qui servirait de base pour faire nos profils respectifs? ceci n'est qu'un exemple qui je pense satisfait beaucoup de monde :yes:
Ce profil serait dispo sur C6 par exemple.....

Sinon je pousse ta suggestion un programmeur talentueux (flatte flatte :innocent: ) ne pourrait il pas réaliser un programme pour nous automatiser ça? :sweatdrop :tongue:
Image

Topic author
Guig2000
Nouvelle Recrue
Nouvelle Recrue
Messages : 4
Inscription : 06 février 2006

#3

Message par Guig2000 »

J'ai enregistré un profil vierge, mais les données étaient quand même coupées en deux.
Par contre, comme je l'ai dit plus haut, j'ai pu constater que certains profils complexes avaient les données en un seul bloc, vers le premier tiers du fichier ex "MechWarrior Mercenaries - X52.dat" contenu dans le cd de driver (dans de fichier les données commences en 15725h).

L'idée de fournir un fichier vierge c'est pas con, vu qu'il n'y en a presque que pour les simulateurs ici.
Avatar de l’utilisateur

Dud FFW36
Pilote Confirmé
Pilote Confirmé
Messages : 3194
Inscription : 18 avril 2005

#4

Message par Dud FFW36 »

quand tu dis que les donnees etaient coupees en deux, cela veux dire que ça fonctionne quand même?
Sinon je suis fana pour recuperer ton fichier vierge si tu es d'ac, je suis en plein dans la programmation de mon profil et l'idee d'afficher Nav etc me plait bien. Peux tu indiquer ce que tu as chosi pour les differents mode stp?

merci
A+
Image

Topic author
Guig2000
Nouvelle Recrue
Nouvelle Recrue
Messages : 4
Inscription : 06 février 2006

#5

Message par Guig2000 »

cliquez sur le premier lien puis vous pourrez télécharger les deux fichiers:

http://www.chez.com/qg/index.html

http://www.chez.com/qg/pub/saitek/0.dat
http://www.chez.com/qg/pub/saitek/1.dat
Avatar de l’utilisateur

Dud FFW36
Pilote Confirmé
Pilote Confirmé
Messages : 3194
Inscription : 18 avril 2005

#6

Message par Dud FFW36 »

salut je viens de charger les profils c'est super :Jumpy: et change la perception de l'ecran du x52.
petite suggestion demande à les inserer dans la biblio C6, je pense que ça va faire plaisir à du monde. :tongue:

A+
Image
Répondre

Revenir à « salle: Periphériques: Hotas, Joysticks, Track-IR »