Starsky And Hutch
Choose archive extension:
WAD
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {4} - Header (AFHI)
uint32 {4} - Number Of Files
uint32 {4} - Number Of Files
uint32 {4} - null
uint32 {4} - Version (1)
uint32 {4} - Version (1)
uint32 {4} - null
uint32 {4} - File Data Length? [+1140]
uint32 {4} - File Data Length? [+1140]
uint32 {4} - null
uint32 {4} - Directory Offset (112)
uint32 {4} - Directory Length (numFiles*48)
uint32 {4} - Length of the Directory Entries (48)
uint32 {4} - Filename Directory Offset
uint32 {4} - Length Of Filename Directory
uint32 {4} - First File Offset
uint32 {4} - Length Of File Data
uint32 {4} - Sound Quality Directory Offset
uint32 {4} - Length Of Sound Quality Directory
uint32 {4} - ID Directory Offset
uint32 {4} - Length Of ID Directory
uint32 {4} - Unknown (65536)
uint32 {4} - Unknown (32768)
uint32 {4} - Unknown (14)
uint32 {4} - Unknown
byte {12} - null
// DIRECTORY
- // For each file
- uint32 {4} - File ID?
- uint32 {4} - Unknown
- uint32 {4} - Unknown
- uint32 {4} - Unknown
- uint32 {4} - File ID?
- uint32 {4} - File Offset [+FirstFileOffset]
- uint32 {4} - File Length
- uint32 {4} - File ID?
- uint32 {4} - Unknown (18)
- uint16 {2} - File Type ID?
- uint16 {2} - File Type ID?
- uint64 {8} - null
- uint32 {4} - File ID?
// ID DIRECTORY
- // for each file
- uint16 {2} - Unknown
- uint16 {2} - Unknown
- uint16 {2} - Unknown
// FILENAME DIRECTORY
- // for each file
- char {X} - Filename
- byte {1} - null Filename Terminator
- char {X} - Filename
// SOUND QUALITY DIRECTORY
- // for each file
- uint16 {2} - Unknown (1)
- uint16 {2} - Unknown (1)
- uint32 {4} - Sound Quality (11025/22050)
- uint32 {4} - Sound Quality*2 (22050/44100)
- uint16 {2} - Mono/Stereo (2)
- uint32 {4} - Sound Channel Bit Rate (16)
- uint16 {2} - Unknown (1)
// FILE DATA
- // For each file
- byte {X} - File Data
- byte {0-15} - null Padding to a multiple of 16 byte
- byte {X} - File Data
MultiEx BMS
GoTo 4 0 ; Get FNum Long 0 ; GoTo 40 0 ; Get DirOffset Long 0 ; GoTo 52 0 ; Get FNOffset Long 0 ; GoTo 60 0 ; Get FirstFO Long 0 ; Math DirOffset += 20 ; For n = 1 to FNum ; GoTo DirOffset 0 ; Get FO Long 0 ; Math FO += FirstFO ; Get FS Long 0 ; Math DirOffset += 48 ; GoTo FNOffset 0 ; Get FNOffset String 0 ; SavePos FN 0 ; Log FN FO FS 0 0 ; Next n ;