Toutes les pages de formats ↓
Tutoriels et références

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 0x10xxxxxx cataloguée dans cob.md fonctionne dans les deux.
  • La vidéo Smacker — .smk / .zrb sont 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 unique buildcost= (mogrium). documentor gère les deux via Unit.BuildMetal/BuildEnergy (TA) et Unit.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îne type=Ballistic / Missile / Magical / Melee.
  • La modélisation des dégâts. Les deux utilisent une sous-section [DAMAGE] sous une arme, avec un default= plus des remplacements par cible. TA:K utilise en plus un damagecategory= 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] de download/*.tdf, pour ajouter des entrées au menu de construction sans dériver sidedata.tdf.
  • La grille de construction 2×3, avec BUTTON de 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>.tdf pour 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 dans unitpics/).
  • 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 -disablecavedogverification en 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 :


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.