Volumes · bei.pm

Gepubliseer op 19/11/2015·Bijgewerk op 13/02/2025·Afrikaans
Hierdie teks is outomaties vertaal deur OpenAI GPT-4o Mini.

Die op hierdie bladsy beskryfde lêerformate is gebaseer op die tegniese analise van intellektuele eiendom deur Dynamix, Inc. en Sierra Entertainment.
Die intellektuele eiendom is vandag deel van die Activision Publishing, Inc.- / Activision Blizzard, Inc.-massa en is tans in besit van Microsoft Corp..

Die inligting is saamgestel deur Reverse Engineering en Data-analyse vir die doeleindes van argivering en interoperabiliteit met historiese data.
Geen eiendoms- of vertroulike spesifikasies is gebruik nie.

Die spel kan tans by gog.com as 'n aflaai gekoop word.

Volumes is 'n datakonteiner vir die spel, soortgelyk aan 'n argiefformaat soos byvoorbeeld Tarball. In Outpost 2 ken die formaat egter net lêers - geen vouers nie. Waarskynlik kan hierdie egter deur middel van toepaslike lêernaam gesimuleer word.

'Een Volume bestaan uit die Volume-koptekst sowel as verskeie Volume-blokke wat die spesifieke lêers verteenwoordig.

"Volumes" is die lêers met die uitbreiding 'vol' in die spelgids.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Magiese Bytes
0x0004 uint(24) Blok-lengte
0x0007 uint(8) Vlae

Volume Kop

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Magiese Bytes
0x0004 uint(24) Blok-lengte
0x0007 uint(8) Vlae

Die Volume-header bevat op sy beurt geen gebruikersdata nie.
Dit dien slegs as 'n houer.

As eerste data in die Volume-header behoort die Volume-stringe te wees; gevolg deur die Volume-inligting.

Volume Strings

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Magiese Bytes
0x0004 uint(24) Blok-lengte
0x0007 uint(8) Vlae
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Magiese Bytes
0x0004 uint(24) Blok-lengte
0x0007 uint(8) Vlae
0x0008 uint(32) Payload-lengte

Gee dit aan hoeveel bytes van die volgende data werklik nuttige data is.

Die oorblywende data van die volume-stringlys is blykbaar as vullis te beskou.

In lêers met 'n latere datum is hierdie 'oorblywende data' 0x00, wat op tekortkominge met die hulpmiddelketting tydens die ontwikkeling van die speletjie kan dui, dit wil sê, dat 'n ontwikkelaar eers baie laat om die korrekte inisialiserings van die buffers gesorg het, omdat dit geen invloed op die speletjie het of die data geïnitialiseer is of nie.

0x000c uint(8)[] Lys van lêername

Hierdie is 'n 0-byte-terminerende lys van lêernames wat - ten minste in die huidige datastuk - slegs ASCII-karakters verwag.

Dit is nie nodig om hierdie datablock meer akkuraat te ontleed nie, aangesien die Offsets van die lêernames reeds direk in die Volume-inligting verwys word.

Die Volume Strings is 'n lys van lêernommers wat binne die volume ingesluit is.

Volume Inligting

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Magiese Bytes
0x0004 uint(24) Blok-lengte
0x0007 uint(8) Vlae

Die Volume-inligting neem meer gedetailleerde inligting oor die lêers op. Dit is op 'n sekere manier 'n tipe FAT-gidsinskrywing (FAT = File Allocation Table)

Die aantal lêers spruit voort uit die blokgrootte gedeel deur die lengte van die gidsinskrywing - 14 Byte.

Die individuele gidsinskrywings het elk die volgende struktuur:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Bestandsnaam-offset

Gee aan by watter offset (!) binne die lêernaamlys (Volume-Strings) die lêernaam van die lêer gevind word.

Dit verwys na die begin van die nutdata-blok.

0x0004 uint(32) Lêer-offset

Gee aan op watter offset binne die hele volume-lêer die lêer geleë is.

0x0008 uint(32) Lêergrootte

Gee die grootte van die lêer in bytes aan.

0x000c uint(16) Vlaggies?

Gee dit blykbaar bykomende inligting oor die lêerkodering aan.

  • 0x03 is ingestel wanneer die lêer gecomprimeer is. Hier word blykbaar 'n Huffman-boom gebruik.
  • 0x80 is blykbaar altyd ingestel.

Volume Blok

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Verskuiwing Data tipe Benaming Verklaring
0x0000 uint(32) Magiese Bytes
0x0004 uint(24) Blok-lengte
0x0007 uint(8) Vlae

'n Volume-blok is 'n houer wat lêers opneem. Dit bevat net weer - weens die blokformaat - die lêergrootte op 'n redundante manier, en daarna volg die nutdata direk.