Wave Dictionary

Revision as of 11:36, 22 May 2021 by Escape209 (talk | contribs) (D'oh.)

The RenderWare Audio Wave Dictionary container format is used to store a collection of audio files. It uses the file extension .awd.

Layout

Template:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRow
Offset Name Type Value Description
Header
Wave Dictionary

RwaWave

Each wave is of type RwaWave, stored in a RwLLNode in the RwLinkList. In the AWD are of type , and are serialized as below:

Template:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRowTemplate:MemoryLocationTableRow
Offset Name Type Value Description

This is followed by the RwaLLNode, the entry (of type char[]) and a 128-bit UUID.

RwaUniqueID

struct RwaUniqueID  {
    union {
        RwaUUID* uuid;
        RwaUUID* copyUUID;
    }

    struct name {
        char* uniqueName;
        char* copyName;
    }
};

RwaWaveFormat

struct RwaWaveFormat {
    uint32_t sampleRate;
    RwaUUID* dataType;
    uint32_t length;
    uint8_t bitDepth;
    uint8_t noChannels;
    // uint8_t pad[2];
    void* miscData;
    uint8_t miscDataSize;
    uint8_t flags;
    uint8_t reserved;
};