Objemy · bei.pm

Uverejnené dňa 19. 11. 2015·Aktualizované 13. 02. 2025·Slovenčina
Tento text bol automaticky preložený pomocou OpenAI GPT-4o Mini.

Formáty súborov popísané na tejto stránke sú založené na technickej analýze duševného vlastníctva od Dynamix, Inc. a Sierra Entertainment.
Duševné vlastníctvo je dnes súčasťou majetku Activision Publishing, Inc. / Activision Blizzard, Inc. a aktuálne ho vlastní Microsoft Corp..

Informácie boli zhromaždené prostredníctvom analýzy spätnej inžinierie a analýzy dát za účelom archivácie a interoperability s historickými dátami.
Neboli použité žiadne proprietárne alebo dôverné špecifikácie.

Hra je momentálne dostupná na zakúpenie ako download na gog.com.

Volume sú dátové kontajnery pre hru, podobné archívovému formátu, ako napríklad Tarball. V Outpost 2 tento formát pozná iba súbory - žiadne priečinky. Zrejme by sa však dali simulovať pomocou príslušných názvov súborov.

Volume sa skladá z hlavičky volume a viacerých blokov volume, ktoré zodpovedajú konkrétnym súborom.

"Volumes" sú súbory s príponou 'vol' v hernom adresári.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Magické bajty
0x0004 uint(24) Dĺžka bloku
0x0007 uint(8) Zástavy

Hlavička objemu

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Magické bajty
0x0004 uint(24) Dĺžka bloku
0x0007 uint(8) Zástavy

Objemový hlavička neobsahuje žiadne užitočné údaje.
Slúži iba ako kontajner.

V prvom dátume v objemovej hlavičke by sa mali nachádzať objemové reťazce; za nimi nasledujú objemové informácie.

Objemové reťazce

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Magické bajty
0x0004 uint(24) Dĺžka bloku
0x0007 uint(8) Zástavy
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Magické bajty
0x0004 uint(24) Dĺžka bloku
0x0007 uint(8) Zástavy
0x0008 uint(32) Dĺžka payloadu

Uvádza, koľko bajtov z nasledujúcich údajov sú skutočne užitočné dáta.

Ostatné, zostávajúce údaje zo zoznamu Volume-Strings sú zjavne považované za odpad.

V súboroch s neskorším dátumom sú tieto 'zostávajúce údaje' 0x00, čo by mohlo naznačovať nedostatky v nástrojoch počas vývoja hry, inými slovami, že sa až veľmi neskoro vývojár zaoberal správnou inicializáciou bufferov, pretože nemá vplyv na hru, či sú údaje inicializované alebo nie.

0x000c uint(8)[] Zoznam názvov súborov

Toto je zoznam názvov súborov ukončený 0-bajtom, ktorý - aspoň vo predloženom dátovom bloku - očakáva len znaky ASCII.

Nie je potrebné pri parsovaní dát tento dátový blok podrobnejšie vyhodnocovať, pretože v informáciách o zväzku sú priamo odkazované offsety názvov súborov.

Volume reťazce predstavujú zoznam názvov súborov, ktoré sú obsiahnuté v objeme.

Informácie o objeme

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Magické bajty
0x0004 uint(24) Dĺžka bloku
0x0007 uint(8) Zástavy

Informácie o Volume obsahujú podrobnejšie údaje o súboroch. Ide v istom zmysle o akýsi záznam v adresári FAT (FAT = File Allocation Table)

Počet súborov sa určuje ako veľkosť bloku delená dlžkou záznamov v adresári - 14 bajtov.

Každý jednotlivý záznam v adresári má nasledujúcu štruktúru:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Offset názvu súboru

Uvádza, na akom offsete (!) v zozname názvov súborov (Volume-Strings) sa nachádza názov súboru.

Odkazuje pritom na začiatok bloku používateľských dát.

0x0004 uint(32) Offset súboru

Uvedie, na ktorom offsete v rámci celej objemovej súborovej štruktúry sa súbor nachádza.

0x0008 uint(32) Veľkosť súboru

Uvádza, aká veľká je súbor v bajtoch.

0x000c uint(16) Zástavy?

Zdá sa, že poskytuje ďalšie informácie o kódovaní súborov.

  • 0x03 je nastavené, keď je súbor komprimovaný. Tu sa zjavne používa Huffmanovo strom.
  • 0x80 je zrejme vždy nastavené.

Objemový blok

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF znaky
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Posun Typ dát Názov Vysvetlenie
0x0000 uint(32) Magické bajty
0x0004 uint(24) Dĺžka bloku
0x0007 uint(8) Zástavy

Objemový blok je kontajner, ktorý uchováva súbory. Obsahuje iba znova - z dôvodu bloku formátu - redundatne veľkosť súboru a po nej nasledujú priamo údaje.