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 port of Doom and Doom II to the Xbox 360.

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 possibly allow adding the Final Doom IWADs as additional episodes. 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.