Volum · bei.pm

Publisert den 19.11.2015·Oppdatert den 13. 02. 2025·Norsk (Nynorsk)
Denne teksten vart automatisert omsett av OpenAI GPT-4o Mini.

Filformatene som er beskrevet på denne siden, er basert på teknisk analyse av åndsverk frå Dynamix, Inc. og Sierra Entertainment.
Åndsverka er i dag ein del av Activision Publishing, Inc.- / Activision Blizzard, Inc.-massen og er for tida eid av Microsoft Corp..

Informasjonen er samla inn gjennom Reverse Engineering og dataanalyse med det formål å arkivere og oppnå interoperabilitet med historiske data.
Ingen proprietære eller konfidensielle spesifikasjoner har blitt brukt.

Spelet kan no kjøpast som nedlasting på gog.com.

Volumene er ein datakontainer for spelet, liknande eit arkivformat som til dømes Tarball. I alle fall i Outpost 2 kjenner formatet berre til filer - ingen mapper. Det er truleg mogleg å simulere desse gjennom tilsvarande filnamn.

Eit volum består av volumoverskrifta samt fleire volumblokker som tilsvarar dei konkrete filene.

"Volumer" er filene med ending 'vol' i spelemappa.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske byte
0x0004 uint(24) Blokk-lengde
0x0007 uint(8) Flagg

Volumoverskrift

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske byte
0x0004 uint(24) Blokk-lengde
0x0007 uint(8) Flagg

Volume-headeret inneheld ikkje noko brukardata.
Det fungerar berre som ein container.

Det første elementet i volume-headeret bør vere volume-strengane; deretter følgjer volume-informasjonen.

Volumstrenger

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske byte
0x0004 uint(24) Blokk-lengde
0x0007 uint(8) Flagg
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske byte
0x0004 uint(24) Blokk-lengde
0x0007 uint(8) Flagg
0x0008 uint(32) Lastelengd

Gjev opp kor mange byte av dei følgjande dataene som faktisk er nyttedata.

Dei andre, attverande dataene i volum-strenglista blir tydelegvis å rekne som søppel.

I filer med seinare dato er desse 'attverande dataene' 0x00, noko som kan tyde på manglar med verktøykjeda under utviklinga av spelet, med andre ord at ein utviklar fyrst veldig seint har teke seg av korrekt initialisering av buffere, ettersom det ikkje har innverknad på spelet om dataene er initialiserte eller ikkje.

0x000c uint(8)[] Filnamn-liste

Denne teksten handlar om ei 0-byte-terminert liste av filnamn, som - i alle fall i denne datadelen - berre forventar ASCII-teikn.

Det er ikkje nødvendig å evaluere denne datablokken meir nøye når ein parser dataene, sidan offsetane til filnamna uansett vert referert direkte i volum-informasjonen.

Volumetekstane er ei liste over filnamn som er innehalde i volumet.

Voluminformasjon

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske byte
0x0004 uint(24) Blokk-lengde
0x0007 uint(8) Flagg

Voluminformasjonen inneheld meir detaljerte opplysningar om filene. Dette er på ein måte ein slags FAT-katalogpost (FAT = File Allocation Table).

Antalet filer kjem fram ved å dele blokkerstørrelsen med lengda på katalogpostane - 14 byte.

Dei enkelte katalogpostane har følgjande oppbygging:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Filnamn-offset

Angir på kva offset (!) innanfor filnamnlista (volum-strengar) filnamnet til fila finst.

Dette refererer til starten av nyttedata-blokka.

0x0004 uint(32) Filoffset

Angir kva offset innanfor den heile volume-fila som fila ligg.

0x0008 uint(32) Filstorleik

Angir kor stor fila er i byte.

0x000c uint(16) Flagg?

Det ser ut til å vere tilleggsmeldingar om filkodingen.

  • 0x03 er sett når fila er komprimert. Her ser det ut til å bli brukt eit Huffmann-tre.
  • 0x80 ser ut til å vere alltid sett.

Volumboks

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF teikn
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske byte
0x0004 uint(24) Blokk-lengde
0x0007 uint(8) Flagg

Eit volumeblock er ein container som tar imot filer. Han inneheld berre ein gong - på grunn av blokkformatet - redudant filstorleiken, og deretter følgjer direkte nytteopplysningane.