Todas as páginas de formatos ↓
Tutoriais e referência

TA e TA: Kingdoms — diferenças entre os formatos

Fonte: coreprime/kbot @ 0ab97bf · Editar no GitHub

Uma única página que resume o que é igual, parecido ou diferente entre o Total Annihilation (1997) e o TA: Kingdoms (1999). É útil quando se porta trabalho de um jogo para o outro ou quando se decide que jogo a sua ferramenta precisa de suportar.

Tip

Em resumo. O TA:K manteve a maioria dos formatos de contentor do TA (HPI, GAF, TDF, COB), mas simplificou os invólucros (sem XOR no HPI v2, sem pasta weapons/ separada, sem a grelha de construção 2×3) e acrescentou por cima coisas totalmente novas (4 lados, a economia do mogrium, "armas" que lançam feitiços, arquivos .kmp por missão).


Matriz de referência rápida

Formato TA TA: Kingdoms Estado no kbot
Arquivo HPI / UFO / CCX / GP3 v1 — cifrado com XOR, vários blocos por ficheiro, blocos de ≤64 KiB v2 — invólucro em claro, um único bloco SQSH por ficheiro, cabeçalho de ~32 bytes ✅ Leitura dos dois; ✅ escrita da v1; ❌ escrita da v2
Arquivos de campanha .kmp N/A HPI v2 com outra extensão; junta o mapa, os scripts e os GAF de cada missão ✅ Leitura
Animações de sprites GAF / TAF .gaf, a paleta vem de palettes/palette.pal .taf com paleta (o mesmo formato binário), com a paleta tirada de um .pcx de cada lado; e ainda uma variante truecolor .taf/.tsf (ARGB de 16 bits, ver taf.md) ✅ Leitura de todos; ✅ escrita de GAF e de TAF/TSF truecolor
Imagens PCX unitpics/<name>.pcx para os retratos das unidades (96×96 com paleta) Usado como transportador de paleta de 1×1 ao lado do .taf ✅ Leitura/escrita
PAL / ALP / LHT / SHD Paleta global do TA + tabelas de consulta Paletas por lado e por terreno, na maioria dentro de PCX transportadores; palettes/ guarda também um .alp (65 536 bytes) e .shd / .lht (8192 bytes) com a mesma disposição para quase todas elas (41 conjuntos) ✅ Os dois (kbot pal lookup --palette aceita um .pal ou um .pcx)
Tipos de letra bitmap FNT Glifos de 1bpp em fonts/*.fnt O mesmo formato, normalmente com um conjunto de glifos maior ✅ Leitura
Secções de mapa SCT Blocos de mosaicos reutilizáveis sections/<biome>/*.sct para o editor TAE Não usado: o sistema de mosaicos do TA:K é diferente ✅ TA; N/A TA:K
Terreno dos mapas TNT IDVersion == 0x2000, grelha de mosaicos + mapa de alturas + elementos + minimapa IDVersion == 0x4000 (variante); a mesma estrutura geral, com um descodificador de mosaicos diferente ✅ TA; ⚠️ TA:K (o cabeçalho é lido, os mosaicos não são descodificados)
Ficheiros auxiliares dos mapas do TA:K N/A .ota (metadados TDF), .txt (descrição), .crt (binário, função desconhecida) ✅ .ota; — .crt/.txt
Modelos 3DO Hierárquicos, com faces indexadas na paleta ou com textura Parecido, mas o modelo de skinning é diferente; alguns campos adicionais por primitiva ✅ TA; ⚠️ TA:K (carrega, mas a cinemática difere)
Scripts das unidades COB / BOS scripts/*.cob; bytecode baseado em pilha O mesmo formato de bytecode e os mesmos opcodes; algumas portas GET_UNIT_VALUE acrescentadas ✅ Os dois
Configurações de texto TDF / FBI / OTA A mesma gramática ao estilo INI A mesma gramática ✅ Os dois
Definições de armas embutidas Não: as armas estão em weapons/*.tdf e são referidas pelo nome Sim: subsecções [WEAPON1]/[WEAPON2]/[WEAPON3] dentro do FBI de cada unidade ✅ Os dois, através do documentor
Perfis de IA ai/*.txt com diretivas plan/weight/limit ai/*.txt só com weight/limit (sem bloco plan) ✅ Os dois
Menus de construção [CANBUILD] estático em gamedata/sidedata.tdf + sobreposições dinâmicas [MENUENTRY] em download/*.tdf Uma pasta por construtor, canbuild/<builder>/<unit>.tdf, cada ficheiro com [Menu].Priority ✅ Os dois
Grelha do menu de construção 2 colunas × 3 linhas por página (BUTTON 0–5) Lista linear por construtor, ordenada por Priority —
Ligação dos bancos de som 3 camadas: SoundCategory do FBI → gamedata/sound.tdf → sounds/*.wav Campos soundclass= / soundcategory= com uma resolução diferente ✅ Ligação do TA; ⚠️ falta documentar a ligação do TA:K
Vídeo Smacker / ZRB data/*.zrb (.smk com outra extensão) O mesmo formato Smacker, com outras extensões ✅ Os dois
Menus GUI .gui (formato diferente do do TA:K) Árvore de widgets .gui separados por espaços; ver takgui.md ⚠️ Só o do TAK está descrito; o .gui do TA ainda não é tratado

Legenda: ✅ suporte completo · ⚠️ parcial · ❌ não suportado · — N/A ou sem planos


O que é realmente partilhado

Os mesmos bytes, o mesmo analisador, os mesmos tipos de Go:

  • Marcador HPI ('HAPI'): todos os contentores de arquivo começam por ele.
  • Gramática TDF: os dois jogos analisam os TDF FBI/OTA/de armas com o mesmo analisador. Os nomes dos campos diferem, mas a sintaxe é idêntica.
  • Bytecode COB: os opcodes, o modelo de pilha, as máscaras de sinais e todos os valores 0x10xxxxxx catalogados em cob.md funcionam nos dois.
  • Vídeo Smacker: .smk / .zrb são idênticos bit a bit; só muda a extensão do nome do ficheiro.
  • Conceito de hierarquia do 3DO: os dois jogos usam árvores pai/filho/irmão de peças com nome, coordenadas em vírgula fixa e primitivas que referem texturas pelo nome.

O que é subtilmente diferente (leia com atenção)

  • Disposição do cabeçalho HPI. v1 = 20 bytes no total (5 × uint32). v2 = prólogo de 8 bytes + subcabeçalho de 24 bytes. Os primeiros 8 bytes são idênticos nos dois (marcador + versão), por isso um leitor só de v1 consegue validar o número mágico antes de rebentar com o resto. Veja HPI v2 em hpi.md.
  • Campos de economia do FBI. TA: BuildCostMetal= + BuildCostEnergy=. TA:K: um único buildcost= (mogrium). O documentor trata os dois através de Unit.BuildMetal/BuildEnergy (TA) e de Unit.BuildCost (TA:K); veja types.go.
  • Códigos de lado. TA: ARM / CORE. TA:K: ARA / TAR / VER / ZON + CRE (Iron Plague) + MON / LIF / NPC.
  • Arquétipo das armas. TA: um saco de campos booleanos (ballistic=1, lineofsight=1, guidance=1, beamweapon=1, …). TA:K: uma única cadeia type=Ballistic / Missile / Magical / Melee.
  • Modelação do dano. Os dois usam uma subsecção [DAMAGE] dentro de uma arma, com um default= e substituições por alvo. O TA:K usa ainda damagecategory= em cada unidade (Human, Building, Magical) para modelar resistências por classe geral.

O que só o TA tem

  • Payloads de ficheiros com vários blocos nos arquivos HPI (o modelo dos "blocos de ≤64 KiB com tabela de tamanhos").
  • Cifra XOR do HPI (semente por posição + chave transformada).
  • Sobreposição [MENUENTRY] em download/*.tdf para acrescentar entradas ao menu de construção sem fazer uma cópia própria do sidedata.tdf.
  • Grelha 2×3 do menu de construção, com BUTTON 0–5 (do canto superior esquerdo ao inferior direito).
  • Pasta weapons/ separada, com TDF referidos pelo nome.
  • Formato de editor SCT (secções): específico do TAE.
  • Uma única paleta global (palettes/palette.pal) com que todos os recursos são desenhados, e um único conjunto de tabelas .alp / .shd / .lht. O TA: Kingdoms tem uma paleta por lado e por conjunto de terreno, a maioria com tabelas da mesma disposição.

O que só o TA: Kingdoms tem

  • HPI v2, com payloads de ficheiros simplificados num único bloco.
  • Árvore de pastas canbuild/<builder>/<unit>.tdf para o registo no menu de construção (linear, sem grelha).
  • Definições de armas [WEAPONn] embutidas nos FBI.
  • Economia de recurso único, o mogrium (buildcost=, sem divisão entre metal e energia).
  • Paletas por lado transportadas em pequenos PCX de 1×1, colocados ao lado dos ficheiros de animação .taf.
  • Unidades mágicas, que lançam feitiços (arapries, vermage, zonsham), cujas armas são feitiços.
  • Quatro (+1) lados: Aramon, Taros, Veruna, Zhon, mais os Creon da expansão Iron Plague.
  • anims/buildpic/*.jpg: retratos das unidades em JPG de 64×48 (o TA usa PCX em unitpics/).
  • Arquivos HPI v2 .kmp das missões da campanha, que juntam os mapas de cada missão aos scripts da missão.
  • Obrigatoriedade do argumento de linha de comandos -disablecavedogverification para carregar a maior parte dos ficheiros modificados.

Diferenças página a página — onde encontrar o que cobre cada jogo

Todas as páginas de formatos com particularidades do TA:K têm uma secção "TA: Kingdoms" bem assinalada. Índice rápido:

Página Secção do TA:K
hpi.md TA: Kingdoms — HPI v2, com o percurso hexadecimal completo no Apêndice — Jersey.hpi
ai.md TA: Kingdoms — perfis sem plan
takgui.md A página inteira é só do TA:K
takmap.md A página inteira é só do TA:K

Os catálogos de referência estão em repositórios separados:


Ver também