Wave Dictionary

From Burnout Wiki
Revision as of 13:47, 22 May 2021 by Escape209 (talk | contribs)

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 and is stored in a RwLLNode in an RwLinkList.

class RwaWave 
{
    RwaUniqueID uniqueID;
    RwaWaveDef* waveDef; // Pointer to location in system memory.
    RwaWaveFormat format;
    RwaWaveFormat targetFormat; // Usually identical to format. 
    RwUInt32 uncompressedLength;
    void* data;
    void* state;
    RwUInt32 flags;
    RwaObj* obj;
};

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;
};