Alle Formatseiten ↓
Tutorials und Nachschlagewerk

TA und TA: Kingdoms – Unterschiede der Formate

Aus coreprime/kbot @ 0ab97bf · Auf GitHub bearbeiten

Eine einzige Seite, die zusammenfasst, was zwischen Total Annihilation (1997) und TA: Kingdoms (1999) gleich, ähnlich oder verschieden ist. Nützlich, wenn du Arbeit von einem Spiel aufs andere überträgst oder entscheidest, welches Spiel dein Werkzeug unterstützen muss.

Tip

Kurz gesagt. TA:K hat die meisten Containerformate von TA beibehalten (HPI, GAF, TDF, COB), aber die Hüllen vereinfacht (kein XOR in HPI v2, kein eigenes Verzeichnis weapons/, kein Bauraster von 2×3) und obendrauf völlig Neues eingeführt (4 Seiten, Mogrium-Wirtschaft, „Waffen“ als Zaubersprüche, .kmp-Archive pro Mission).


Übersichtsmatrix

Format TA TA: Kingdoms Stand in kbot
HPI / UFO / CCX / GP3-Archiv v1 – XOR-verschlüsselt, mehrere Chunks pro Datei, Chunks ≤64 KiB v2 – unverschlüsselte Hülle, ein einziger SQSH-Chunk pro Datei, Header von ~32 Byte ✅ beide lesen; ✅ v1 schreiben; ❌ v2 schreiben
.kmp-Kampagnenarchive entfällt HPI v2 mit umbenannter Endung; bündelt Karte + Skripte + GAFs pro Mission ✅ lesen
GAF / TAF-Sprite-Animationen .gaf, die Palette kommt aus palettes/palette.pal .taf mit Palette (dasselbe Binärformat), Palette aus einer .pcx pro Seite; dazu eine Truecolor-Variante .taf/.tsf (16-Bit-ARGB, siehe taf.md) ✅ alle lesen; ✅ GAF und Truecolor-TAF/TSF schreiben
PCX-Bilder unitpics/<name>.pcx für Einheitenporträts (96×96 mit Palette) Als Palettenträger von 1×1 neben .taf verwendet ✅ lesen/schreiben
PAL / ALP / LHT / SHD Globale Palette von TA + Nachschlagetabellen Paletten pro Seite und pro Geländeart, meist in PCX-Trägern; palettes/ enthält außerdem für fast jede davon eine .alp (65.536 Byte) und .shd / .lht (8.192 Byte) mit demselben Aufbau (41 Sätze) ✅ beide (kbot pal lookup --palette nimmt eine .pal oder .pcx)
FNT-Bitmap-Schriften fonts/*.fnt, Glyphen mit 1 bpp Dasselbe Format, typischerweise größerer Glyphensatz ✅ lesen
SCT-Kartensektionen sections/<biome>/*.sct, wiederverwendbare Kachelblöcke für den Editor TAE Nicht verwendet – das Kachelsystem von TA:K ist anders ✅ TA; entfällt bei TA:K
TNT-Kartengelände IDVersion == 0x2000, Kachelraster + Höhenkarte + Kartenobjekte + Minikarte IDVersion == 0x4000 (Variante); dieselbe Gesamtstruktur, anderer Kachel-Decoder ✅ TA; ⚠️ TA:K (Header lesbar, Kacheln nicht dekodiert)
Begleitdateien von TA:K-Karten entfällt .ota (TDF-Metadaten), .txt (Beschreibung), .crt (binär, Zweck unbekannt) ✅ .ota; – .crt/.txt
3DO-Modelle Hierarchisch, palettenindizierte oder texturierte Flächen Ähnlich, aber mit anderem Skinning-Modell; einige zusätzliche Felder pro Primitiv ✅ TA; ⚠️ TA:K (lädt, aber die Kinematik weicht ab)
COB / BOS-Einheitenskripte scripts/*.cob; stackbasierter Bytecode Dasselbe Bytecode-Format und dieselben Opcodes; einige zusätzliche GET_UNIT_VALUE-Ports ✅ beide
TDF / FBI / OTA-Konfigurationen im Textformat Dieselbe INI-artige Grammatik Dieselbe Grammatik ✅ beide
Inline-Waffendefinitionen Nein – Waffen stehen in weapons/*.tdf und werden über den Namen referenziert Ja – Unterabschnitte [WEAPON1]/[WEAPON2]/[WEAPON3] in der FBI jeder Einheit ✅ beide über den documentor
KI-Profile ai/*.txt mit den Direktiven plan/weight/limit ai/*.txt mit nackten weight/limit (kein plan-Block) ✅ beide
Baumenüs Statisches [CANBUILD] in gamedata/sidedata.tdf + dynamische [MENUENTRY]-Ergänzungen in download/*.tdf Verzeichnis pro Baueinheit canbuild/<builder>/<unit>.tdf, jeweils mit [Menu].Priority ✅ beide
Raster des Baumenüs 2 Spalten × 3 Zeilen pro Seite (BUTTON 0–5) Lineare Liste pro Baueinheit, nach Priority sortiert –
Verdrahtung der Soundbanks 3 Stufen: SoundCategory der FBI → gamedata/sound.tdf → sounds/*.wav Felder soundclass= / soundcategory= mit anderer Auflösung ✅ Verdrahtung von TA; ⚠️ Verdrahtung von TA:K muss noch beschrieben werden
Smacker- / ZRB-Video data/*.zrb (umbenanntes .smk) Dasselbe Smacker-Format unter anderen Endungen ✅ beide
GUI-Menüs .gui (anderes Format als bei TA:K) .gui als durch Leerraum getrennter Widget-Baum; siehe takgui.md ⚠️ nur TAK beschrieben; .gui von TA noch nicht abgedeckt

Legende: ✅ vollwertig · ⚠️ teilweise · ❌ nicht unterstützt · – entfällt oder nicht geplant


Was wirklich gemeinsam ist

Dieselben Bytes, derselbe Parser, dieselben Go-Typen:

  • HPI-Marker ('HAPI') – jeder Archivcontainer beginnt damit.
  • TDF-Grammatik – beide Spiele parsen FBI/OTA/Waffen-TDFs mit demselben Parser. Die Feldnamen unterscheiden sich, die Syntax ist identisch.
  • COB-Bytecode – Opcodes, Stack-Modell, Signalmasken, jeder in cob.md katalogisierte Wert 0x10xxxxxx funktioniert in beiden.
  • Smacker-Video – .smk / .zrb sind bitgleich; nur die Dateiendung ändert sich.
  • Hierarchiekonzept von 3DO – beide Spiele verwenden Bäume aus benannten Pieces mit Eltern, Kindern und Geschwistern, Festkomma-Koordinaten und Primitive, die Texturen über den Namen referenzieren.

Was sich in Feinheiten unterscheidet (genau lesen)

  • Aufbau des HPI-Headers. v1 = insgesamt 20 Byte (5 × uint32). v2 = 8 Byte Vorspann + 24-Byte-Sub-Header. Die ersten 8 Byte sind in beiden identisch (Marker + Version), ein Leser nur für v1 validiert die Magic Number also erfolgreich, bevor er am Rest scheitert. Siehe hpi.md, HPI v2.
  • Wirtschaftsfelder der FBI. TA: BuildCostMetal= + BuildCostEnergy=. TA:K: ein einziges buildcost= (Mogrium). Der documentor behandelt beide über Unit.BuildMetal/BuildEnergy (TA) und Unit.BuildCost (TA:K) – siehe types.go.
  • Seitencodes. TA: ARM / CORE. TA:K: ARA / TAR / VER / ZON + CRE (Iron Plague) + MON / LIF / NPC.
  • Waffen-Archetyp. TA: ein Sammelsurium boolescher Felder (ballistic=1, lineofsight=1, guidance=1, beamweapon=1, …). TA:K: ein einziger String type=Ballistic / Missile / Magical / Melee.
  • Schadensmodell. Beide verwenden unter einer Waffe einen Unterabschnitt [DAMAGE] mit einem default= plus Überschreibungen pro Ziel. TA:K verwendet zusätzlich damagecategory= an jeder Einheit (Human, Building, Magical), um Resistenzen grober Klassen abzubilden.

Was nur TA hat

  • Datei-Nutzdaten aus mehreren Chunks in HPI-Archiven (das Modell „Chunks ≤64 KiB mit Größentabelle“).
  • XOR-Verschlüsselung von HPI (positionsabhängiger Seed + transformierter Schlüssel).
  • [MENUENTRY]-Ergänzung in download/*.tdf, um Einträge im Baumenü hinzuzufügen, ohne einen Fork von sidedata.tdf anzulegen.
  • Baumenü-Raster von 2×3 mit BUTTON 0–5 (oben links bis unten rechts).
  • Eigenes Verzeichnis weapons/ mit TDFs, die über den Namen referenziert werden.
  • Editorformat SCT (Sektion) – spezifisch für TAE.
  • Eine globale Palette (palettes/palette.pal), mit der jedes Asset gezeichnet wird, und ein Satz Tabellen .alp / .shd / .lht. TA: Kingdoms hat eine Palette pro Seite und Geländesatz, die meisten mit Tabellen desselben Aufbaus.

Was nur TA: Kingdoms hat

  • HPI v2 mit vereinfachten Datei-Nutzdaten aus einem einzigen Chunk.
  • Verzeichnisbaum canbuild/<builder>/<unit>.tdf für die Registrierung im Baumenü (linear, ohne Raster).
  • Inline-Waffendefinitionen [WEAPONn] in den FBIs.
  • Wirtschaft mit der einzigen Ressource Mogrium (buildcost=, keine Aufteilung in Metall und Energie).
  • Paletten pro Seite, getragen von PCX-Stubs von 1×1, die neben den .taf-Animationsdateien liegen.
  • Magie- und Zaubereinheiten (arapries, vermage, zonsham), deren Waffen Zaubersprüche sind.
  • Vier (+1) Seiten: Aramon, Taros, Veruna, Zhon – dazu Creon aus der Erweiterung Iron Plague.
  • anims/buildpic/*.jpg – Einheitenporträts als JPGs von 64×48 (TA verwendet PCX in unitpics/).
  • .kmp-Archive in HPI v2 für Kampagnenmissionen, die Karten mit Missionsskripten bündeln.
  • -disablecavedogverification als nötiges Kommandozeilenargument, um die meisten gemoddeten Dateien zu laden.

Abweichungen pro Seite – wo die Abdeckung der Spiele steht

Jede Formatseite mit TA:K-Besonderheiten hat einen deutlich gekennzeichneten Abschnitt „TA: Kingdoms“. Kurzer Index:

Seite TA:K-Abschnitt
hpi.md TA: Kingdoms – HPI v2, vollständiger Hex-Durchgang im Anhang – Jersey.hpi
ai.md TA: Kingdoms – Profile ohne plan
takgui.md Die ganze Seite betrifft nur TA:K
takmap.md Die ganze Seite betrifft nur TA:K

Die Referenzkataloge liegen in eigenen Repos:


Siehe auch

  • internal/documentor – das Go-Paket, das das Extrahieren für beide Spiele übernimmt.
  • Stolperfallen – spielspezifische Stolperfallen an einem Ort.
  • Modding-Tutorial – derzeit nur für TA; die Abdeckung von TA:K ist eine bekannte Lücke.
  • Glossar – Nachschlagewerk zur spielübergreifenden Terminologie.