Apjomi · bei.pm

Publicēts 19.11.2015.·Atjaunināts 13.02.2025.·Lettisch
Šis teksts tika automatizēti tulkots, izmantojot OpenAI GPT-4o Mini.

Šajā lapā aprakstītie failu formāti balstās uz tehnisko analīzi par intelektuālo īpašumu no Dynamix, Inc. un Sierra Entertainment.
Intelektuālais īpašums šobrīd ir daļa no Activision Publishing, Inc. / Activision Blizzard, Inc. mases un pašreiz pieder Microsoft Corp..

Informācija tika apkopota, izmantojot Reverse Engineering un Datu analīzi, lai arhivētu un nodrošinātu savietojamību ar vēsturiskajiem datiem.
Nekādas patentētas vai konfidenciālas specifikācijas netika izmantotas.

Spēli pašlaik var iegādāties kā lejupielādi gog.com.

Apjomi ir datu konteiners spēlei, līdzīgs arhīva formātam, piemēram, Tarball. Vismaz spēlē Outpost 2 šajā formātā ir tikai faili - nav mapju. Iespējams, ka tās varētu simulēt, izmantojot atbilstošus failu nosaukumus.

Apjoms sastāv no apjoma galvenes un vairākiem apjoma blokiem, kas atbilst konkrētajiem failiem.

"Apjomi" ir faili ar paplašinājumu 'vol' spēles direktorijā.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Burvju baiti
0x0004 uint(24) Bloka garums
0x0007 uint(8) Karogi

Apjoma virsraksts

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Burvju baiti
0x0004 uint(24) Bloka garums
0x0007 uint(8) Karogi

Apjoma galvene pati par sevi nesatur nekādas lietotāja datus.
T tā kalpo tikai kā konteineris.

Pirmajā datumā apjoma galvenē vajadzētu atrasties apjoma virknes; pēc tam seko apjoma informācija.

Apjoma virknēs

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Burvju baiti
0x0004 uint(24) Bloka garums
0x0007 uint(8) Karogi
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Burvju baiti
0x0004 uint(24) Bloka garums
0x0007 uint(8) Karogi
0x0008 uint(32) Payload garums

Norāda, cik daudz baitu no šiem datiem patiesībā ir lietderīgi dati.

Atlikušos, palikušos datus no apjoma virkņu saraksta acīmredzot var uzskatīt par atkritumiem.

Failos ar vēlākām datumiem šie 'palikušie dati' ir 0x00, kas var liecināt par nepilnībām rīku komplektā spēles izstrādes laikā, proti, ka izstrādātājs par pareizu buferu inicializāciju sāka rūpēties tikai ļoti vēlu, jo datu inicializēšana vai neinicializēšana neietekmē spēli.

0x000c uint(8)[] Failu nosaukumu saraksts

Šeit ir runa par 0-baitu terminētu failu nosaukumu sarakstu, kas - vismaz šajā datu komponentē - tikai gaida ASCII rakstzīmes.

Nav nepieciešams, analizējot datus, šo datu bloku pārbaudīt sīkāk, jo apjoma informācijā jau tieši tiek norādīti failu nosaukumu ofseti.

Apjoma virknes ir failu nosaukumu saraksts, kas iekļauti apjomā.

Apjoma informācija

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Burvju baiti
0x0004 uint(24) Bloka garums
0x0007 uint(8) Karogi

Apjoma informācija ietver sīkākas ziņas par failiem. Tas ir zināmā mērā līdzīgs FAT direktorija ierakstam (FAT = Failu sadales tabula).

Failu skaits ir iegūts, dalot bloka izmēru ar direktorija ierakstu garumu - 14 baitiem.

Katram direktorija ierakstam ir šāda struktūra:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Datņu nosaukuma novirze

Norāda, kurā novirzē (!) failu nosaukumu sarakstā (apjoma virkņu) atrodas faila nosaukums.

Attiecas uz datu bloka sākumu.

0x0004 uint(32) Faila nobīde

Norāda, kurā ofsetā visā apjoma failā atrodas fails.

0x0008 uint(32) Faila izmērs

Norāda, cik liela ir faila izmērs baitos.

0x000c uint(16) Karogus?

Acīmredzot sniedz papildu informāciju par faila kodējumu.

  • 0x03 ir iestatīts, ja fails ir saspiedēts. Šeit acīmredzot tiek izmantots Huffmana koks.
  • 0x80 šķiet vienmēr ir iestatīts.

Tilpuma bloks

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF rakstz.
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Novirze Datu tips Nosaukums Skaidrojums
0x0000 uint(32) Burvju baiti
0x0004 uint(24) Bloka garums
0x0007 uint(8) Karogi

Apjoma bloks ir konteineris, kurš satur failus. Tajā vēlreiz - blokformāta dēļ - ir redundanti norādīta faila lielums, un pēc tam seko tieši lietotājdati.