TA et TA: Kingdoms — différences de formats
Source : coreprime/kbot @ 0ab97bf · Modifier sur GitHub
Une page unique qui résume ce qui est identique, semblable ou différent entre Total Annihilation (1997) et TA: Kingdoms (1999). Utile pour porter un travail d'un jeu à l'autre, ou pour décider quel jeu votre outil doit prendre en charge.
Tip
En bref. TA:K a conservé la plupart des formats conteneurs de TA (HPI,
GAF, TDF, COB), mais a simplifié les enveloppes (pas de XOR dans le HPI v2,
pas de répertoire weapons/ séparé, pas de grille de construction 2×3) et a
ajouté par-dessus des choses entièrement nouvelles (4 camps, économie au
mogrium, « armes » qui lancent des sorts, archives .kmp par mission).
Matrice de référence rapide
| Format | TA | TA: Kingdoms | État dans kbot |
|---|---|---|---|
| Archives HPI / UFO / CCX / GP3 | v1 — chiffrée par XOR, plusieurs chunks par fichier, chunks ≤ 64 Kio | v2 — enveloppe en clair, un seul chunk SQSH par fichier, en-tête de ~32 octets | ✅ Lecture des deux ; ✅ écriture v1 ; ❌ écriture v2 |
Archives de campagne .kmp |
Sans objet | HPI v2 à l'extension renommée ; regroupe carte, scripts et GAF de chaque mission | ✅ Lecture |
| Animations de sprites GAF / TAF | .gaf, palette tirée de palettes/palette.pal |
.taf à palette (même format binaire), palette tirée d'un .pcx par camp ; plus une variante truecolor .taf/.tsf (ARGB 16 bits, voir taf.md) |
✅ Lecture de tout ; ✅ écriture des GAF et des TAF/TSF truecolor |
| Images PCX | unitpics/<name>.pcx pour les portraits d'unités (96×96 à palette) |
Utilisé comme porteur de palette de 1×1 à côté d'un .taf |
✅ Lecture/écriture |
| PAL / ALP / LHT / SHD | Palette globale de TA + tables de correspondance | Palettes par camp et par terrain, pour la plupart dans des PCX porteurs ; palettes/ contient aussi, pour presque chacune d'elles (41 jeux), un .alp (65 536 octets) et des .shd / .lht (8 192 octets) de même disposition |
✅ Les deux (kbot pal lookup --palette accepte un .pal ou un .pcx) |
| Polices bitmap FNT | Glyphes 1 bpp fonts/*.fnt |
Même format, jeu de glyphes en général plus large | ✅ Lecture |
| Sections de carte SCT | sections/<biome>/*.sct, blocs de tuiles réutilisables pour l'éditeur TAE |
Non utilisé — le système de tuiles de TA:K est différent | ✅ TA ; sans objet pour TA:K |
| Terrain de carte TNT | IDVersion == 0x2000, grille de tuiles + carte des hauteurs + éléments + minicarte |
IDVersion == 0x4000 (variante) ; même structure générale, décodeur de tuiles différent |
✅ TA ; ⚠️ TA:K (en-tête lu, tuiles non décodées) |
| Fichiers compagnons des cartes TA:K | Sans objet | .ota (métadonnées TDF), .txt (description), .crt (binaire, rôle inconnu) |
✅ .ota ; — .crt/.txt |
| Modèles 3DO | Hiérarchiques, faces indexées dans la palette ou texturées | Semblables, mais le modèle de skinning diffère ; quelques champs supplémentaires par primitive | ✅ TA ; ⚠️ TA:K (se charge, mais la cinématique diffère) |
| Scripts d'unités COB / BOS | scripts/*.cob ; bytecode à pile |
Même format de bytecode et mêmes opcodes ; quelques ports GET_UNIT_VALUE ajoutés |
✅ Les deux |
| Configurations texte TDF / FBI / OTA | Même grammaire de forme INI | Même grammaire | ✅ Les deux |
| Définitions d'armes en ligne | Non — les armes se trouvent dans weapons/*.tdf, référencées par nom |
Oui — sous-sections [WEAPON1]/[WEAPON2]/[WEAPON3] dans le FBI de chaque unité |
✅ Les deux, via documentor |
| Profils d'IA | ai/*.txt avec directives plan/weight/limit |
ai/*.txt avec des weight/limit nus (pas de bloc plan) |
✅ Les deux |
| Menus de construction | [CANBUILD] statique de gamedata/sidedata.tdf + surcouches dynamiques [MENUENTRY] de download/*.tdf |
Répertoire par constructeur canbuild/<builder>/<unit>.tdf, chacun avec [Menu].Priority |
✅ Les deux |
| Grille du menu de construction | 2 colonnes × 3 lignes par page (BUTTON 0–5) | Liste linéaire par constructeur, triée par Priority | — |
| Câblage des banques de sons | 3 niveaux : SoundCategory du FBI → gamedata/sound.tdf → sounds/*.wav |
Champs soundclass= / soundcategory=, avec une résolution différente |
✅ Câblage de TA ; ⚠️ câblage de TA:K à documenter |
| Vidéo Smacker / ZRB | data/*.zrb (.smk renommés) |
Même format Smacker sous d'autres extensions | ✅ Les deux |
| Menus d'interface | .gui (format différent de celui de TA:K) |
Arbre de widgets .gui séparés par des blancs ; voir takgui.md |
⚠️ Seul TAK est décrit ; le .gui de TA n'est pas encore couvert |
Légende : ✅ prise en charge complète · ⚠️ partielle · ❌ non prise en charge · — sans objet ou rien de prévu
Ce qui est vraiment commun
Mêmes octets, même analyseur, mêmes types Go :
- Le marqueur HPI (
'HAPI') — chaque conteneur d'archive commence par lui. - La grammaire TDF — les deux jeux analysent les FBI, OTA et TDF d'armes avec le même analyseur. Les noms de champs diffèrent, mais la syntaxe est identique.
- Le bytecode COB — opcodes, modèle de pile, masques de signal : chaque
valeur
0x10xxxxxxcataloguée dans cob.md fonctionne dans les deux. - La vidéo Smacker —
.smk/.zrbsont identiques au bit près ; seule l'extension du nom de fichier change. - Le principe de hiérarchie du 3DO — les deux jeux utilisent des arbres parent/enfant/frère de pièces nommées, des coordonnées en virgule fixe et des primitives qui font référence aux textures par leur nom.
Ce qui diffère subtilement (à lire attentivement)
- La disposition de l'en-tête HPI. v1 = 20 octets au total (5 × uint32). v2 = un prologue de 8 octets + un sous-en-tête de 24 octets. Les 8 premiers octets sont identiques dans les deux (marqueur + version) : un lecteur qui ne connaît que la v1 réussira donc à valider le nombre magique avant de planter sur le reste. Voir hpi.md HPI v2.
- Les champs d'économie du FBI. TA :
BuildCostMetal=+BuildCostEnergy=. TA:K : un uniquebuildcost=(mogrium). documentor gère les deux viaUnit.BuildMetal/BuildEnergy(TA) etUnit.BuildCost(TA:K) — voir types.go. - Les codes de camp. TA :
ARM/CORE. TA:K :ARA/TAR/VER/ZON+CRE(Iron Plague) +MON/LIF/NPC. - L'archétype des armes. TA : un sac de champs booléens
(
ballistic=1,lineofsight=1,guidance=1,beamweapon=1, …). TA:K : une seule chaînetype=Ballistic/Missile/Magical/Melee. - La modélisation des dégâts. Les deux utilisent une sous-section
[DAMAGE]sous une arme, avec undefault=plus des remplacements par cible. TA:K utilise en plus undamagecategory=sur chaque unité (Human,Building,Magical) pour modéliser des résistances par grande classe.
Ce que seul TA possède
- Des charges utiles de fichiers en plusieurs chunks dans les archives
HPI (le modèle des
≤64 KiB chunks with size table). - Le chiffrement XOR des HPI (graine dépendant de la position + clé transformée).
- La surcouche
[MENUENTRY]dedownload/*.tdf, pour ajouter des entrées au menu de construction sans dériver sidedata.tdf. - La grille de construction 2×3, avec
BUTTONde 0 à 5 (d'en haut à gauche à en bas à droite). - Un répertoire
weapons/séparé, de TDF référencés par nom. - Le format d'éditeur SCT (sections) — propre à TAE.
- Une palette globale unique (
palettes/palette.pal) avec laquelle chaque ressource est dessinée, et un seul jeu de tables.alp/.shd/.lht. TA: Kingdoms a une palette par camp et par jeu de terrains, la plupart avec des tables de même disposition.
Ce que seul TA: Kingdoms possède
- Le HPI v2, avec des charges utiles de fichiers simplifiées en un seul chunk.
- L'arborescence
canbuild/<builder>/<unit>.tdfpour l'inscription au menu de construction (linéaire, sans grille). - Des définitions d'armes
[WEAPONn]en ligne dans les FBI. - Une économie à ressource unique, le mogrium (
buildcost=, sans séparation métal/énergie). - Des palettes par camp portées par des PCX de 1×1 placés à côté des
fichiers d'animation
.taf. - Des unités magiques, lanceuses de sorts (
arapries,vermage,zonsham), dont les armes sont des sorts. - Quatre (+1) camps : Aramon, Taros, Veruna, Zhon — plus Creon, venu de l'extension Iron Plague.
anims/buildpic/*.jpg— les portraits d'unités en JPG de 64×48 (TA utilise des PCX dansunitpics/).- Les archives HPI v2 de missions de campagne
.kmp, qui regroupent les cartes de chaque mission avec les scripts de mission. - L'obligation de passer
-disablecavedogverificationen ligne de commande pour charger la plupart des fichiers moddés.
Écarts page par page — où trouver la couverture de chaque jeu
Chaque page de format qui comporte des particularités de TA:K contient une section « TA: Kingdoms » clairement signalée. Index rapide :
| Page | Section TA:K |
|---|---|
| hpi.md | TA: Kingdoms — HPI v2, parcours hexadécimal complet dans l'annexe — Jersey.hpi |
| ai.md | TA: Kingdoms — profils sans plan |
| takgui.md | Toute la page est propre à TA:K |
| takmap.md | Toute la page est propre à TA:K |
Les catalogues de référence se trouvent dans des dépôts séparés :
coreprime/reference-ta— 278 unités, 199 armes, 45 constructeurs.coreprime/reference-tak— 203 unités, 198 armes, 32 constructeurs.
Voir aussi
internal/documentor— le paquet Go qui gère l'extraction pour les deux jeux.- Pièges — les pièges propres à chaque jeu, réunis au même endroit.
- Tutoriel de modding — pour TA uniquement à ce jour ; la couverture de TA:K est une lacune connue.
- Glossaire — référence de la terminologie commune aux deux jeux.