TA e TA: Kingdoms — Differenze tra i formati
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
0x10xxxxxxcatalogato in cob.md funziona in entrambi. - Video Smacker:
.smk/.zrbsono 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 solobuildcost=(mogrium). Il documentor gestisce entrambi tramiteUnit.BuildMetal/BuildEnergy(TA) eUnit.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 stringatype=Ballistic/Missile/Magical/Melee. - Modello del danno. Entrambi usano una sottosezione
[DAMAGE]sotto un'arma, con undefault=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]indownload/*.tdfper inserire voci nel menu di costruzione senza creare una propria versione di sidedata.tdf. - Griglia del menu di costruzione 2×3 con
BUTTON0–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>.tdfper 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 inunitpics/).- Archivi HPI v2
.kmpdelle 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:
coreprime/reference-ta: 278 unità, 199 armi, 45 costruttori.coreprime/reference-tak: 203 unità, 198 armi, 32 costruttori.
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.