Inhaltsverzeichnis

Half-Life PAK Archiv Spezifikation

Ähnlich wie WAD ist PAK ein Containerformat welches zur Speicherung der Half-Life Assets wie beispielsweise Modellen, Maps oder Audiodateien dient. Wie jedes andere Format der GoldSrc Engine wird es in der Little-Endian Byte-Reihenfolge gespeichert.

Das PAK Format sieht drei Teile innerhalb einer Datei vor:

Header

Der Header beinhaltet grundlegende Informationen zur PAK Datei, welche zur weiteren Nutzung der Datei benötigt werde. Seine Länge beträgt immer 12 Byte.

Byte offset Typ Inhalt Beschreibung
0x00 - 0x03 BYTE[4] „PACK“ Identifikation als PAK Datei
0x04 - 0x07 DWORD Asset Directory Offset Das absolute Offset zum Asset Directory in Bytes
0x08 - 0x0C DWORD Asset Directory Size Die Größe des Asset Directories in Bytes

Asset Directory

Das Asset Directory ist eine Auflistung von einem oder mehr Einträgen, welche auf die einzelnen Assets verweisen. Das Asset Directory reicht hierbei vom im Header beschriebenen Asset Directory Offset bis zum Ende der Datei. Ein Eintrag im Asset Directory beschreibt ein Asset innerhalb des “Asset Image“-Bereiches und eine feste Größe von 64 Byte und ist wie folgt aufgebaut:

Byte offset Typ Inhalt Beschreibung
0x00 - 0x38 BYTE[56] Asset Name Der Name des Assets.
0x39 - 0x3b DWORD Asset Offset Der absolute Offset zum Asset in Bytes
0x3c - 0x3f DWORD Asset Length Die Länge des Assets in Bytes

Asset Images

Die Asset Images sind die einfache Bytepräsentation der einzelnen Assets. Für jedes Asset Image existiert ein Eintrag im Asset Directory. Die Asset Images sind weder komprimiert, noch speziell ausgerichtet.