Tutte le pagine dei formati ↓
Tutorial e riferimenti

TA e TA: Kingdoms — Differenze tra i formati

Fonte: coreprime/kbot @ 0ab97bf · Modifica su GitHub

Una sola pagina che riassume che cosa è uguale, simile o diverso tra Total Annihilation (1997) e TA: Kingdoms (1999). Utile quando si porta del lavoro da un gioco all'altro o si decide quale gioco deve supportare il proprio strumento.

Tip

In breve. TA:K ha mantenuto la maggior parte dei formati contenitore di TA (HPI, GAF, TDF, COB), ma ne ha semplificato gli involucri (niente XOR in HPI v2, niente directory weapons/ separata, niente griglia di costruzione 2×3) e vi ha aggiunto sopra cose del tutto nuove (4 fazioni, economia del mogrium, "armi" lanciate come incantesimi, archivi .kmp per missione).


Tabella di riferimento rapido

Formato TA TA: Kingdoms Stato in kbot
Archivio HPI / UFO / CCX / GP3 v1: cifrato con XOR, più chunk per file, chunk ≤64 KiB v2: involucro in chiaro, un solo chunk SQSH per file, intestazione di ~32 byte ✅ Legge entrambi; ✅ scrive v1; ❌ scrive v2
Archivi .kmp della campagna N/D HPI v2 con l'estensione cambiata; raccoglie mappa, script e GAF di ogni missione ✅ Legge
Animazioni di sprite GAF / TAF .gaf, la palette viene da palettes/palette.pal .taf con palette (stesso formato binario), palette da un .pcx per fazione; più una variante truecolor .taf/.tsf (ARGB a 16 bit, vedi taf.md) ✅ Legge tutto; ✅ scrive GAF e TAF/TSF truecolor
Immagini PCX unitpics/<name>.pcx per i ritratti delle unità (96×96 con palette) Usato come contenitore di palette 1×1 accanto al .taf ✅ Legge/scrive
PAL / ALP / LHT / SHD Palette globale di TA + tabelle di ricerca Palette per fazione e per terreno, per lo più dentro PCX usati come contenitori; palettes/ contiene anche un .alp (65.536 byte) e .shd / .lht (8.192 byte) con la stessa struttura per quasi ognuna di esse (41 insiemi) ✅ Entrambi (kbot pal lookup --palette accetta un .pal o un .pcx)
Font bitmap FNT fonts/*.fnt, glifi a 1 bpp Stesso formato, di solito con un insieme di glifi più ampio ✅ Legge
Sezioni di mappa SCT sections/<biome>/*.sct, blocchi di tile riutilizzabili per l'editor TAE Non usato: il sistema di tile di TA:K è diverso ✅ TA; N/D TA:K
Terreno della mappa TNT IDVersion == 0x2000, griglia di tile + mappa delle altezze + elementi + minimappa IDVersion == 0x4000 (variante); stessa struttura generale, diverso decodificatore dei tile ✅ TA; ⚠️ TA:K (l'intestazione si legge, i tile non sono decodificati)
File di accompagnamento delle mappe TA:K N/D .ota (metadati TDF), .txt (descrizione), .crt (binario, scopo sconosciuto) ✅ .ota; — .crt/.txt
Modelli 3DO Gerarchici, facce indicizzate sulla palette o con texture Simili, ma il modello di skinning è diverso; alcuni campi in più per primitiva ✅ TA; ⚠️ TA:K (si carica, ma la cinematica è diversa)
Script delle unità COB / BOS scripts/*.cob; bytecode basato su stack Stesso formato di bytecode e stessi opcode; aggiunte alcune porte di GET_UNIT_VALUE ✅ Entrambi
Configurazioni testuali TDF / FBI / OTA Stessa grammatica in stile INI Stessa grammatica ✅ Entrambi
Definizioni inline delle armi No: le armi stanno in weapons/*.tdf e sono richiamate per nome Sì: sottosezioni [WEAPON1]/[WEAPON2]/[WEAPON3] dentro l'FBI di ogni unità ✅ Entrambi tramite il documentor
Profili IA ai/*.txt con direttive plan/weight/limit ai/*.txt con weight/limit isolati (nessun blocco plan) ✅ Entrambi
Menu di costruzione [CANBUILD] statico in gamedata/sidedata.tdf + aggiunte dinamiche [MENUENTRY] in download/*.tdf Directory per costruttore canbuild/<builder>/<unit>.tdf, ciascuno con [Menu].Priority ✅ Entrambi
Griglia del menu di costruzione 2 colonne × 3 righe per pagina (BUTTON 0–5) Lista lineare per costruttore, ordinata per Priority —
Collegamento dei banchi sonori 3 livelli: SoundCategory dell'FBI → gamedata/sound.tdf → sounds/*.wav Campi soundclass= / soundcategory= con una risoluzione diversa ✅ Collegamento di TA; ⚠️ il collegamento di TA:K va ancora documentato
Video Smacker / ZRB data/*.zrb (.smk rinominati) Stesso formato Smacker con estensioni diverse ✅ Entrambi
Menu dell'interfaccia (GUI) .gui (formato diverso da quello di TA:K) .gui, albero di widget delimitato da spazi bianchi; vedi takgui.md ⚠️ Descritto solo quello di TAK; il .gui di TA non è ancora trattato

Legenda: ✅ supporto completo · ⚠️ parziale · ❌ non supportato · — N/D o nessun piano


Le cose davvero condivise

Stessi byte, stesso parser, stessi tipi Go:

  • Marcatore HPI ('HAPI'): ogni contenitore di archivio comincia con questo.
  • Grammatica TDF: entrambi i giochi analizzano i TDF di FBI, OTA e armi con lo stesso parser. I nomi dei campi cambiano, ma la sintassi è identica.
  • Bytecode COB: opcode, modello a stack, signal mask, ogni valore 0x10xxxxxx catalogato in cob.md funziona in entrambi.
  • Video Smacker: .smk / .zrb sono identici bit per bit; cambia solo l'estensione del file.
  • Concetto di gerarchia del 3DO: entrambi i giochi usano alberi padre/figlio/fratello di pezzi con nome, coordinate in virgola fissa e primitive che richiamano le texture per nome.

Le cose sottilmente diverse (leggere con attenzione)

  • Struttura dell'intestazione HPI. v1 = 20 byte in tutto (5 × uint32). v2 = 8 byte di prologo + sotto-intestazione di 24 byte. I primi 8 byte sono identici in entrambe (marcatore + versione), quindi un lettore che conosce solo la v1 riuscirà a validare il magic prima di andare in crash sul resto. Vedi HPI v2 in hpi.md.
  • Campi economici dell'FBI. TA: BuildCostMetal= + BuildCostEnergy=. TA:K: un solo buildcost= (mogrium). Il documentor gestisce entrambi tramite Unit.BuildMetal/BuildEnergy (TA) e Unit.BuildCost (TA:K): vedi types.go.
  • Codici di fazione. TA: ARM / CORE. TA:K: ARA / TAR / VER / ZON + CRE (Iron Plague) + MON / LIF / NPC.
  • Archetipo dell'arma. TA: un insieme di campi booleani (ballistic=1, lineofsight=1, guidance=1, beamweapon=1, …). TA:K: una sola stringa type=Ballistic / Missile / Magical / Melee.
  • Modello del danno. Entrambi usano una sottosezione [DAMAGE] sotto un'arma, con un default= più sostituzioni per bersaglio. TA:K usa in più damagecategory= su ogni unità (Human, Building, Magical) per modellare la resistenza per grandi classi.

Le cose che ha solo TA

  • Payload dei file su più chunk negli archivi HPI (il modello ≤64 KiB chunks with size table: chunk di al massimo 64 KiB più una tabella delle dimensioni).
  • Cifratura XOR degli HPI (seme dipendente dalla posizione + chiave trasformata).
  • Aggiunte [MENUENTRY] in download/*.tdf per inserire voci nel menu di costruzione senza creare una propria versione di sidedata.tdf.
  • Griglia del menu di costruzione 2×3 con BUTTON 0–5 (da in alto a sinistra a in basso a destra).
  • Directory weapons/ separata di TDF richiamati per nome.
  • Formato SCT (sezioni) per l'editor, specifico di TAE.
  • Una sola palette globale (palettes/palette.pal) con cui viene disegnato ogni asset, e un solo insieme di tabelle .alp / .shd / .lht. TA: Kingdoms ha una palette per ogni fazione e insieme di terreni, quasi tutte con tabelle della stessa struttura.

Le cose che ha solo TA: Kingdoms

  • HPI v2 con payload dei file semplificati, a chunk singolo.
  • Albero di directory canbuild/<builder>/<unit>.tdf per la registrazione nel menu di costruzione (lineare, senza griglia).
  • Definizioni inline delle armi [WEAPONn] dentro gli FBI.
  • Economia a risorsa unica, il mogrium (buildcost=, nessuna divisione tra metallo ed energia).
  • Palette per fazione contenute in stub PCX 1×1 posti accanto ai file di animazione .taf.
  • Unità magiche che lanciano incantesimi (arapries, vermage, zonsham), le cui armi sono incantesimi.
  • Quattro (+1) fazioni: Aramon, Taros, Veruna, Zhon, più Creon dall'espansione Iron Plague.
  • anims/buildpic/*.jpg: ritratti delle unità come JPG 64×48 (TA usa PCX in unitpics/).
  • Archivi HPI v2 .kmp delle missioni della campagna, che raccolgono le mappe di ogni missione insieme agli script della missione.
  • -disablecavedogverification: un'opzione della riga di comando obbligatoria per caricare la maggior parte dei file modificati.

Differenze pagina per pagina — dove trovare la copertura di ciascun gioco

Ogni pagina di formato con particolarità di TA:K contiene una sezione "TA: Kingdoms" ben segnalata. Indice rapido:

Pagina Sezione su TA:K
hpi.md HPI v2 di TA: Kingdoms, con l'analisi esadecimale completa nell'Appendice — Jersey.hpi
ai.md TA: Kingdoms — profili senza plan
takgui.md L'intera pagina riguarda solo TA:K
takmap.md L'intera pagina riguarda solo TA:K

I cataloghi di riferimento stanno in repository separati:


Vedi anche

  • internal/documentor: il pacchetto Go che gestisce l'estrazione per entrambi i giochi.
  • Insidie: le insidie specifiche di ciascun gioco, in un solo posto.
  • Tutorial sul modding: per ora solo TA; la copertura di TA:K è una lacuna nota.
  • Glossario: riferimento terminologico comune ai due giochi.