Volúmenes · bei.pm
Los formatos de archivo descritos en esta página se basan en el análisis técnico de la propiedad intelectual de Dynamix, Inc. y Sierra Entertainment.
La propiedad intelectual es actualmente parte de la masa de Activision Publishing, Inc. / Activision Blizzard, Inc. y está en posesión de Microsoft Corp..
La información fue recopilada mediante Ingeniería Inversa y Análisis de Datos con el propósito de archivado e interoperabilidad con datos históricos.
No se utilizaron especificaciones propietarias o confidenciales.
El juego se puede adquirir actualmente como descarga en gog.com.
Los volúmenes son un contenedor de datos para el juego, similar a un formato de archivo como, por ejemplo, Tarball. Al menos en Outpost 2, el formato solo reconoce archivos, no carpetas. Probablemente, sin embargo, estos podrían simularse a través de nombres de archivo correspondientes.
Un volumen consiste en el encabezado del volumen y varios bloques de volumen que corresponden a los archivos concretos.
"Volúmenes" son los archivos con la extensión 'vol'
en el directorio del juego.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 4f | 4c | 20 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | O | L | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
Encabezado de Volumen
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 68 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | h | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
El encabezado del volumen no contiene datos útiles.
Sirve únicamente como contenedor.
Como primera fecha en el encabezado del volumen deberían encontrarse las cadenas del volumen; a continuación siguen las informaciones del volumen.
Cadenas de Volumen
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 73 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | s | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas | |
0x0008 | uint(32) | Longitud del payload | Indica cuántos bytes de los siguientes datos son realmente datos útiles. Los datos restantes de la lista de cadenas de volumen parecen considerarse como basura. En archivos con fecha más reciente, estos 'datos restantes' son 0x00, lo que podría indicar deficiencias en la cadena de herramientas durante el desarrollo del juego, es decir, que un desarrollador solo se ocupó de la correcta inicialización de los buffers muy tarde, ya que no tiene impacto en el juego si los datos están inicializados o no. |
0x000c | uint(8)[] | Lista de nombres de archivos | Se trata de una lista de nombres de archivos terminada en 0 bytes, que - al menos en el componente de datos presentado - solo parece esperar caracteres ASCII. No es necesario analizar este bloque de datos con más detalle al procesar la información, ya que en la información del volumen se hacen referencia directamente a los offsets de los nombres de archivos. |
Los Volume Strings son una lista de nombres de archivos que se encuentran dentro del volumen.
Información del volumen
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
La información de volumen contiene detalles más específicos sobre los archivos. De alguna manera, se trata de una especie de entrada de directorio FAT (FAT = Tabla de Asignación de Archivos).
La cantidad de archivos se obtiene al dividir el tamaño del bloque por la longitud de las entradas del directorio - 14 bytes.
Cada entrada de directorio tiene la siguiente estructura:
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Desplazamiento del nombre de archivo | Indica en qué desplazamiento (!) dentro de la lista de nombres de archivo (cadenas de volumen) se encuentra el nombre del archivo. Se refiere al principio del bloque de datos útiles. |
0x0004 | uint(32) | Desplazamiento de archivo | Indica en qué offset dentro del archivo de volumen completo se encuentra el archivo. |
0x0008 | uint(32) | Tamaño del archivo | Indica el tamaño del archivo en bytes. |
0x000c | uint(16) | ¿Banderas? | Al parecer, proporciona información adicional sobre la codificación de archivos.
|
Bloque de Volumen
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 42 | 4c | 48 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | B | L | H | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
Un bloque de volumen es un contenedor que almacena archivos. Contiene, debido al formato del bloque, de manera redundante, el tamaño del archivo y a continuación siguen directamente los datos útiles.