Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling.
BRWSD (Binary Revolution Wave Sound Data) is a sub file format found in BRSAR files from many Wii games. It consists of a table of instance parameters that link to direct audios found into BRWAR files.
File Format
Offset |
Type |
Description
|
0x00 |
String |
File magic. Always RWSD in ASCII.
|
0x04 |
UInt16 |
Byte order mark (BOM): The value is always 0xFEFF. If value 0xFFFE is read, then the false endian is used. Mario Kart Wii uses nearly always big endian (bytes 0xFE,0xFF).
|
0x06 |
UInt16 |
Version number of the file format. (?)
|
0x08 |
UInt32 |
Length of the file in bytes.
|
0x0C |
UInt16 |
Length of this header in bytes.
|
0x0E |
UInt16 |
Number of sections.
|
0x10 |
UInt32 |
Offset to DATA section.
|
0x14 |
UInt32 |
Length of DATA section.
|
0x18 |
Byte[8] |
Padding.
|
0x20 |
End of this file header
|
DATA
The DATA section starts with a header.
Offset |
Type |
Description
|
0x00 |
String |
Section magic. Always DATA in ASCII.
|
0x04 |
UInt32 |
Length of this section.
|
0x08 |
End of this header
|
Wave Information Data Table
The DATA header is followed by a table that lists the entries of wave information data. All offsets are relative to the start of this table.
Offset |
Type |
Description
|
0x00 |
UInt32 |
Number of Wave Information Data Entries.
|
0x04 |
Byte[4] |
Unknown. Always 0x01000000.
|
0x08 |
UInt32 |
Offset to the first Wave Information Group (O[1]).
|
0x0C |
Byte[4] |
Unknown. Always 0x01000000.
|
0x10 |
UInt32 |
Offset to the first Wave Information Group (O[2]).
|
...
|
O[x] + 0x00 |
Byte[4] |
Unknown. Always 0x01000000.
|
O[x] + 0x04 |
UInt32 |
Offset to the x WSD Information Data Entry.
|
O[x] + 0x08 |
Byte[4] |
Unknown. Always 0x01000000.
|
O[x] + 0x0C |
UInt32 |
Offset to the x Note Event Table.
|
O[x] + 0x10 |
Byte[4] |
Unknown. Always 0x01000000.
|
O[x] + 0x14 |
UInt32 |
Offset to the x Note Information Table.
|
WSD Information Data Entry
Offset |
Type |
Description
|
0x00 |
Float |
Pitch
|
0x04 |
Byte |
Pan (0–127)
|
0x05 |
Byte |
SurroundPan (0–127)
|
0x06 |
Byte |
FxSendA
|
0x07 |
Byte |
FxSendB
|
0x08 |
Byte |
FxSendC
|
0x09 |
SByte |
MainSend
|
0x0A |
Byte[22] |
Padding
|
Note Event Table
All offsets are relative to the Wave Information Data Table.
Offset |
Type |
Description
|
0x00 |
UInt32 |
Number of Note Event Group Entry Tables.
|
0x04 |
Byte[4] |
Unknown. Always 0x01000000.
|
0x08 |
UInt32 |
Offset to the first Note Event Group Entry Table (O[1]).
|
0x0C |
Byte[4] |
Unknown. Always 0x01000000.
|
0x10 |
UInt32 |
Offset to the second Note Event Group Entry Table (O[2]).
|
...
|
O[x] + 0x00 |
Byte[4] |
Unknown. Always 0x01000000.
|
O[x] + 0x04 |
UInt32 |
Offset to the Note Event Group Entry (O[x]E).
|
O[x]E + 0x00 |
UInt32 |
Number of Note Event Entries.
|
O[x]E + 0x04 |
Byte[4] |
Unknown. Always 0x01000000.
|
O[x]E + 0x08 |
UInt32 |
Offset to the first Note Event Entry.
|
O[x]E + 0x0C |
Byte[4] |
Unknown. Always 0x01000000.
|
O[x]E + 0x10 |
UInt32 |
Offset to the second Note Event Entry.
|
...
|
Note Event Entry
Offset |
Type |
Description
|
0x00 |
Float |
Position
|
0x04 |
Float |
Length
|
0x08 |
UInt32 |
Decay
|
0x10 |
Byte[4] |
Padding
|
Note Information Table
All offsets are relative to the Wave Information Data Table.
Offset |
Type |
Description
|
0x00 |
UInt32 |
Number of Note Information Entries.
|
0x04 |
Byte[4] |
Unknown. Always 0x01000000.
|
0x08 |
UInt32 |
Offset to the first Note Information Entry.
|
0x0C |
Byte[4] |
Unknown. Always 0x01000000.
|
0x10 |
UInt32 |
Offset to the second Note Information Entry.
|
...
|
Note Information Entry
Offset |
Type |
Description
|
0x00 |
UInt32 |
Wave number
|
0x04 |
SByte |
Attack (-1–127)
|
0x05 |
SByte |
InfoDecay (-1–127)
|
0x06 |
SByte |
Sustain (-1–127)
|
0x07 |
SByte |
Release (-1–127)
|
0x08 |
SByte |
Hold (-1–127)
|
0x09 |
Byte |
WaveDataLocationType:
- 0x0 = Index
- 0x1 = Address
- 0x2 = Callback
|
0x0A |
Byte |
NoteOffType:
- 0x0 = Release
- 0x1 = Ignore
|
0x0B |
Byte |
AlternateAssign
|
0x0C |
Byte |
OriginalKey
|
0x0D |
Byte |
Volume (0–127)
|
0x0E |
Byte |
InfoPan (0–127)
|
0x0F |
Byte |
InfoSurroundPan (0–127)
|
0x10 |
Float |
InfoPitch
|
0x14 |
Byte[18] |
Padding
|
Tools
The following tools can handle BRWSD files: