Apjomi · bei.pm
Š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.
|
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.