Diskfile

From DoomWiki.org

A diskfile is an uncompressed container format which contains files in a folder structure. It is used by Nerve Software's ports of Wolfenstein 3D, Doom, and Doom II to the Xbox 360, as well as the PlayStation 3 port of Wolfenstein 3D.

Format[edit]

A diskfile begins with a simple header:

Offset Size Format Description
0 4 32-bit, big-endian, unsigned Number of contained files
4 72 * n Directory entry Name, offset, and size of each contained file
4+72*n 4 32-bit, big-endian, unsigned Total size of all contained files

A directory entry corresponds to this structure:

Offset Size Format Description
0 64 8-bit character array Path and name of the file
64 4 32-bit, big-endian, unsigned Offset from the end of the header to the start of the file in the archive
68 4 32-bit, big-endian, unsigned Total size of the contained file

The paths are written following the DOS/Windows convention of using backslashes ('\') as directory separators. All paths begin with the pseudo-drive letter of GAME:.

The typical folder hierarchy consists of this:

  • GAME:\ (root folder, empty)
  • GAME:\assets\ (contains an xui.xzp file)
  • GAME:\assets\m\ (contains MIDI tracks and a Gravis Ultrasound configuration file named gravis.cfg)
  • GAME:\assets\m\instruments\ (contains GUS patches)
  • GAME:\assets\w\ (contains the IWAD and a background.tga graphics, 428x200 pixels)

In doom2.disk, the w\ folder also contains a metadata.txt file which gives episode name and level names to the content of the IWAD. It is possible this file was designed to optionally allow adding the Final Doom IWADs as additional episodes, though this never saw a release if such was planned. It also contains a mission1\ subdirectory with the PWAD for No Rest for the Living and its own metadata file, giving level names, music track (by their idmus value rather than by name) and par times (in seconds), as well as the end-of-episode text.

Doom Classic Unity variant[edit]

Initial versions of the Doom Classic Unity port utilized a little-endian variant of the file format, but it was entirely removed in subsequent updates.