WAD

From Valve Developer Community
Jump to: navigation, search

WAD is the file extension for Half-Life texture packages. An acronym for Where's All the Data?, WAD files first originated in ID Software's Doom as a general purpose file archive to help facilitate game MODs. A format of the same name was later used in ID Software's Quake engine as a texture package, then consequentially adapted by Half-Life 1's GoldSrc engine. GoldSrc specifically uses version 3 of the format, sometimes referred to as WAD3. WAD files typically contain standard texture sets, custom texture sets for individual levels, sprays, HUD elements and fonts.

WAD3 can store 3 types of data (however, WAD format itself allows up 256 types, but GoldSrc uses only 3).

Note:Qlumpy supports other types as well. Despite it being possible to add these types, you should not use them.


The following types are supported:

miptex (0x44)
Power-of-16-sized world textures with 4 mipmaps.
qpic (0x42)
Simple image with any size.
typedef struct
{
    int width, height;
    char data[height][width]; //Image is stored as 8-bit numbers of colors in palette
    short colors_used; //Number of colors in palette (can't be more than 256)
    char lbmpalette[numcolors][3]; //8-bit RGB palette data
} qpic_t;
font (0x45)
Fixed-height font. Contains an image and font data (row, X offset and width of a character) for 256 ASCII characters.
typedef struct
{
    short startoffset; //Offset to the character in data
    short charwidth;
} charinfo;
typedef struct
{
    int width, height; //Width is always 256 pixels
    int rowcount; //Number of fixed-height character rows
    int rowheight; //Height of a row
    charinfo fontinfo[256]; //Info about each character
    char data[height][width]; //Same as in qpic_t
    short colors_used; //Same as in qpic_t
    char lbmpalette[numcolors][3]; //Same as in qpic_t
}

All numbers in WAD files are unsigned and little-endian.

Links

CStrike Planet
A collection of official and custom Counter-Strike WAD files.
The Wadfather
A large collection of WAD files.

Utilities

GCFScape
Views and extracts WAD files as BMP files.
Qlumpy
Half-Life SDK tool for compiling WAD files.
VTFEdit
3rd party tool for converting WAD files to Source materials.
Wally
The de facto WAD editing suite (supports only miptex).
Download
Xwad
Source SDK tool for converting WAD files to Source materials.