Volume · bei.pm
déi Dateiformater, déi op dëser Säit beschriwwe sinn, baséieren op der technescher Analyse vum geistegen Eegentum vun Dynamix, Inc. an Sierra Entertainment.
D'geistegt Eegentum ass Haut Deel vun der Activision Publishing, Inc.- / Activision Blizzard, Inc.-Masse an ass zur Zäit am Besëtz vun Microsoft Corp..
D'Informatioune goufen duerch Reverse Engineering an Datenanalyse fir d'Archivéierung an d'Interoperabilitéit mat historesche Date gesammelt.
Et goufen keng proprietär oder vertrauléch Spezifikatiounen benotzt.
D'Spill kann zur Zäit op gog.com als Download kaaft ginn.
Bei den Volumen handelt et sich ëm e Datencontainer fir d'Spill, ähnlech wéi e Archivformat wéi z.B. Tarball. Zumindest an Outpost 2 kann dat Format just Dateien - keng Fieder - erkennen. Wahrscheinlech kéinten dës awer iwwer entspriechend Dateinimmere simuléiert ginn.
E Volume besteet aus dem Volume-Header souwéi aus verschiddene Volume Blokker, déi den konkret Dateien entspriechen.
"Volumes" sinn d'Dateien mat der Endung 'vol'
am Spillverzeechnes.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 4f | 4c | 20 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | O | L | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Magie Bytes | |
0x0004 | uint(24) | Block-Längt | |
0x0007 | uint(8) | Fändel |
Volume Header
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 68 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | h | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Magie Bytes | |
0x0004 | uint(24) | Block-Längt | |
0x0007 | uint(8) | Fändel |
De Volume Header enthält selwer keng Nutzdaten.
Hien déngt nëmmen als Container.
Als éischt Datum am Volume Header sollten déi Volume Strings sinn; dorop follegen dann d'Volume-Informatiounen.
Volumensträng
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Magie Bytes | |
0x0004 | uint(24) | Block-Längt | |
0x0007 | uint(8) | Fändel |
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 73 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | s | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Magie Bytes | |
0x0004 | uint(24) | Block-Längt | |
0x0007 | uint(8) | Fändel | |
0x0008 | uint(32) | Payload-Längt | Gëtt un, wéi vill Bytes vun den folgendene Daten tatsächlech Nutzdaten sinn. déi aner, verbleibend Daten vun der Volume-Strings-Lëscht si schéngen als garbage ze werten. An Dateien mat méi spéit Datum sinn dës 'verbleibend Daten' 0x00, wat op Mängel mat der Toolchain während der Entwécklung vum Spill hinweisen kéint, an dat heescht, datt sech éischt ganz spéit e Entwéckler ëm déi korrekt Initialiséierung vun den Bufferen gek kümmert huet, well et keen Afloss op d'Spill huet, ob d'Daten initialiséiert sinn oder net. |
0x000c | uint(8)[] | Dateinumm-Lëscht | Hei handelt et sech ëm eng 0-Byte-terminéiert Lëscht vun Dateinammen, déi - op d'mannst am presente Datenbestand - nëmme ASCII-Zeichen erwaart. Et ass net néideg, beim Parsen vun den Daten dësen Datenblock méi genee auszewäerten, well an den Volume-Informatioune sowieso direkt d'Offsets vun den Dateinammen referenziéiert ginn. |
Bei de Volume Strings ass et eng Lëscht vun Dateinimm déi am Volume enthalen sinn.
Volumen Informatiounen
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Magie Bytes | |
0x0004 | uint(24) | Block-Längt | |
0x0007 | uint(8) | Fändel |
déi Volumen-Informatiounen enthalen méi detailléiert Informatiounen iwwer d'Dateien. Et ass esou eng Aart FAT-Verzeechnesäintrag (FAT = File Allocation Table).
Die Zuel vun den Dateien ergëtt sech aus der Blockgréisst dividéiert duerch d'Längt vun de Verzeechnesäinträgen - 14 Byte.
Die eenzelne Verzeechnesäinträgen hunn all folgend Struktur:
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Dateinumm-Offset | Gëtt ugewise, an wéi engem Offset (!) an der Dateinummelëscht (Volume-Strings) den Dateinumm vun der Datei fënnt. Bezieht sech op de Start vum Nutzdatenblock. |
0x0004 | uint(32) | Datei-Offset | Gëtt un, an wéi engem Offset an der ganzer Volume-Datei d'Datei ass. |
0x0008 | uint(32) | Datei-Gréisst | Gitt un, wéi grouss d'Datei an Byte ass. |
0x000c | uint(16) | Fändel? | Gëtt anscheinend zousätzlech Informatiounen iwwer d'Dateikodéierung u.
|
Volume Block
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 42 | 4c | 48 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | B | L | H | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datentyp | Bezeechnung | Erklärung |
---|---|---|---|
0x0000 | uint(32) | Magie Bytes | |
0x0004 | uint(24) | Block-Längt | |
0x0007 | uint(8) | Fändel |
Eng Volume-Block ass e Container, deen Dateien opnimmt. Hien enthält nëmmen eng kierz - wéinst dem Blockformat - redundant d'Dateigréisst an nom de folgend direkt d'Nutzdaten.