GBX
De TM Wiki.
GBX est le format de fichier de Nadeo, utilisé dans le jeu pour stocker divers types de données, tels que les maps ou les replays mais aussi les profils, les campagnes, etc.
Sommaire |
Types de fichiers GBX
Typiquement, le header d'un fichier GBX débute avec la chaîne "GBX", suivie des octets 06 00, puis la chaîne "BUCR" (ou plus rarement "BUCE"). Une petite exception: certaines vieilles textures (*.Texture.Gbx) datant (au plus tard) de 2003, situés dans le dossier Resource\Media\Texture\, prennent les octets 03 00 (à la place de 06 00) suivis de "TUU9". Ce format de fichier obsolète n'a plus été étudié par la suite.
Les quatre prochains octets définissent le type de fichier GBX. Voici un tableau associant les types de fichiers connus à leur chaîne d'octets correspondante:
00 90 03 09 AudioEnvironment (TMO/TMS/TMN) 00 30 00 24 Challenge (TMO/TMS/TMN/TMU) 00 30 04 03 Challenge (TMF) 00 80 03 24 ConstructionCampaign (TMO/TMS/TMU) 00 00 09 03 ConstructionCampaign (TMF) 00 C0 01 07 ControlEffectMaster (TMF seulement) 00 70 01 07 ControlStyle (TMF seulement) 00 D0 03 03 GameAdvertisement 00 60 02 01 FidCache 00 50 01 05 FuncShader (TMO/TMS/TMN) 00 B0 01 24 Ghost (TMO/TMS/TMN/TMU) 00 20 09 03 Ghost (TMF) 00 E0 0E 03 LadderScores (TMF seulement) 00 20 02 06 LightMapCache 00 10 06 03 Manager (TMF seulement) 00 C0 01 09 Music 00 A0 04 24 Profile (TMO/TMS/TMN) 00 50 0B 24 Profile (TMU/TMF) 00 E0 07 24 Replay 00 F0 03 24 Replay (AutoSave pour TMO/TMS/TMN/TMU) 00 30 09 03 Replay (AutoSave pour TMF) 00 40 03 24 Scores (TMO/TMS/TMN/TMU) 00 D0 08 03 Scores (TMF) 00 70 06 01 Script (TMF seulement) 00 50 00 09 Solid 00 A0 01 09 Sound 00 40 06 09 Sound (TMS seulement) 00 E0 08 09 Sound (TMS seulement) 00 E0 08 09 SoundEngine (TMO/TMS seulement) 00 E0 05 09 SoundSurface (TMO/TMS seulement) 00 50 00 0B SystemConfig 00 20 02 24 TMEDClassic (TMO/TMS seulement) 00 10 01 09 Texture 00 10 00 24 DedicatedTrackMania (fichier de serveur dédié)
Le dernier octet semble différencier plusieurs catégories GBX comme les assets (sons, musiques, textures, etc.) et les données de jeu (maps, replays, profils, etc.), dont le type de fichier est défini par les deux octets précédents. En triant cette liste dans l'ordre croissant du dernier octet au premier, on obtient ceci:
00 60 02 01 FidCache 00 70 06 01 Script (TMF seulement) 00 D0 03 03 GameAdvertisement 00 30 04 03 Challenge (TMF) 00 10 06 03 Manager (TMF seulement) 00 D0 08 03 Scores (TMF) 00 00 09 03 ConstructionCampaign (TMF) 00 20 09 03 Ghost (TMF) 00 30 09 03 Replay (AutoSave pour TMF) 00 E0 0E 03 LadderScores (TMF seulement) 00 50 01 05 FuncShader (TMO/TMS/TMN) 00 20 02 06 LightMapCache 00 70 01 07 ControlStyle (TMF seulement) 00 C0 01 07 ControlEffectMaster (TMF seulement) 00 50 00 09 Solid 00 10 01 09 Texture 00 A0 01 09 Sound 00 C0 01 09 Music 00 90 03 09 AudioEnvironment (TMO/TMS/TMN) 00 E0 05 09 SoundSurface (TMO/TMS seulement) 00 40 06 09 Sound (TMS seulement) 00 E0 08 09 Sound (TMS seulement) 00 E0 08 09 SoundEngine (TMO/TMS seulement) 00 50 00 0B SystemConfig 00 10 00 24 DedicatedTrackMania (fichier de serveur dédié) 00 30 00 24 Challenge (TMO/TMS/TMN/TMU) 00 B0 01 24 Ghost (TMO/TMS/TMN/TMU) 00 20 02 24 TMEDClassic (TMO/TMS seulement) 00 40 03 24 Scores (TMO/TMS/TMN/TMU) 00 80 03 24 ConstructionCampaign (TMO/TMS/TMU) 00 F0 03 24 Replay (AutoSave pour TMO/TMS/TMN/TMU) 00 A0 04 24 Profile (TMO/TMS/TMN) 00 E0 07 24 Replay 00 50 0B 24 Profile (TMU/TMF)
Pour TMS, on peut observer qu'une chaîne d'octets (00 E0 08 09) confond deux types de fichiers; inversement, le type Sound est représenté par trois chaînes différentes. On pourrait alors supposer qu'il y a eu des confusions aux premiers moments du développement de TMS. De plus, il existe également d'autres fichiers GBX non référencés ici, comme TMDecoration, TMEDClip, TMEDFlat, TMEDPylon, TMEDRectAsym, TMEDRoad, TMZoneFlat et Scene3d. Mais la plupart sont vides et ne semblent pas contenir leur chaîne d'octet...
Dans cette partie, seuls les types Challenge et Replay ont été étudiés en détail.
Type GBX: Challenge
Dans ce type de fichier, on trouve deux blocs GBX principaux (Header et Données), un bloc XML présent dans toutes les versions depuis TM SpeedUp, et un bloc exclusif à TMU/TMF:
- Le bloc Header
- Le bloc XML
- La miniature au format JPEG et le commentaire (TMU/TMF)
- Le bloc Données
à compléter...
Type GBX: Replay
Dans ce type de fichier, on trouve deux blocs GBX principaux (Header et Données), ainsi qu'un bloc XML depuis la version 2:
- Le bloc Header
- Le bloc XML
- Le bloc Données
à compléter...
Outils permettant d'analyser et de modifier des fichiers GBX
- Extract GBX data - un script PHP qui permet d'extraire des infos Ă partir de fichiers *.Challenge.Gbx (y compris le Thumbnail dans TMU/TMF) et *.Replay.Gbx
- Tally GBX versions - un script PHP qui récupère les infos de version depuis le header des fichiers *.Challenge.Gbx
- GBX Data Fetcher - deux classes PHP qui permet d'extraire des infos à partir de fichiers *.Challenge.Gbx (y compris le Thumbnail dans TMU/TMF) et *.Replay.Gbx, mais aussi décoder les blocs XML
- Replay Parser - une classe PHP qui permet d'extraire des infos Ă partir de fichiers *.Replay.Gbx, le bloc Data ainsi que les blocs XML
- Blockmix tools - outils d'édition hexadécimaux (Recompressor, ChallengeEdit, GBX-Master)
- Easy TM
- Trackmania Disassembler - inclut une librairie vous permettant d'écrire vos propres applications permettant de lire le format.

