Volúmenes · bei.pm

Publicado el 19/11/2015·Actualizado el 13/02/2025·Español
Este texto fue traducido automáticamente por OpenAI GPT-4o Mini.

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.

  • 0x03 está establecido si el archivo está comprimido. Aquí parece que se utiliza un árbol de Huffman.
  • 0x80 aparentemente siempre está establecido.

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.