Wave Dictionary
The RenderWare Audio Wave Dictionary container format is used to store a collection of audio files, or "waves." It uses the file extension .awd
. Each wave is of type RwaWave
and is stored in a RwLLNode
in an RwLinkList
.
Layout[edit | edit source]
Offset | Type | Value | Description |
---|---|---|---|
0x00 | uint32_t | 0x809 |
Magic number. |
0x04 | uint32_t | The single byte at 0x04 seems to be a Big Endian bool. | |
0x08 | uintptr_t | Pointer to audio data. | |
0x0C | RwaWaveDict* | Pointer to wave dictionary. | |
0x10 | uint32_t | ||
0x14 | uint32_t | Audio data size. | |
0x18 | RwaUUID | Xbox: 73F2018B 75DFF081 4BC8E45F 453A2D04 PS2: 5393C7DB EA6481AE 4917FC38 AAEAC9AC GCN: 48F6C70A 72142484 6A4279E1 D3329DFD |
Platform UUID. |
0x28 | uintptr_t | Pointer to audio data. |
RwaUUID[edit | edit source]
Offset | Type | Name |
---|---|---|
0x00 | uint32_t | time_low |
0x04 | uint16_t | time_mid |
0x06 | uint16_t | time_hi_and_version |
0x08 | uint8_t[8] | node |
RwaUniqueID[edit | edit source]
Offset | Type | Name |
---|---|---|
0x00 | RwaUUID* | uuid |
0x04 | char* | name |
0x08 | uint32_t | flags |
RwaWaveDict[edit | edit source]
Offset | Type | Name |
---|---|---|
0x00 | RwaUniqueID | uniqueID |
0x0C | RwaLLNode | waveListHead |
0x18 | int8_t | flagsAux |
0x19 | int8_t | flags |
0x1C | RwLLLink | link |
0x24 | void* | dumpAddr |
0x28 | void* | waveRAMHandle |
0x2C | void* | waveRAMSize |
RwaWaveFormat[edit | edit source]
Offset | Type | Name | Description |
---|---|---|---|
0x00 | uint32_t | sampleRate | |
0x04 | uint32_t | dataType | 0: Sony PS ADPCM 1: Signed 16-bit PCM 3: Nintendo DSP ADPCM 4: Xbox IMA ADPCM |
0x08 | uint32_t | length | |
0x0C | uint8_t | bitDepth | |
0x0D | uint8_t | noChannels | |
0x10 | void* | miscData | Has a "00: GCN ADPCM Header" chunk which contains Nintendo DSP ADPCM coefficients and initial history data. |
0x14 | uint32_t | miscDataSize | |
0x18 | uint8_t | flags | |
0x19 | uint8_t | reserved |
RwaWave[edit | edit source]
Offset | Type | Name |
---|---|---|
0x00 | RwaUniqueID | uniqueID |
0x0C | RwaWaveDef* | waveDef |
0x10 | RwaWaveFormat | format |
0x2C | RwaWaveFormat | targetFormat |
0x48 | uint32_t | uncompressedLength |
0x4C | void* | data |
0x50 | void* | state |
0x54 | uint32_t | flags |
0x58 | RwaObj* | obj |