BRWSD (File Format)

From Custom Mario Kart
Jump to navigation Jump to search
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

File Header

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 UInt32 Offset to WAVE section.
0x1C UInt32 Length of WAVE section.

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 UInt32 N = Number of Wave Information Data Entries.
0x0C DataRef[N] References to Wave Information Data Entries.

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 DataRef Reference to WSD Information Data Entry.
0x08 DataRef Reference to Track Table.
0x10 DataRef Reference to Note 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[2] Padding
0x0C DataRef Reference to address to Graph Enviroment Table. Always 0.
0x14 DataRef Reference to address to Randomizer Table. Always 0.
0x1C UInt32 Reserved.

Track Table

All offsets are relative to the Wave Information Data Table.

Offset Type Description
0x00 UInt32 N = Number of Track Infos.
0x04 DataRef[N] References to Track Info.

Track Info

Offset Type Description
0x00 DataRef Reference to Note Event Table.

Note Event Table

Offset Type Description
0x00 UInt32 N = Number of Note Events.
0x04 DataRef[N] References to Note Events.

Note Event

Offset Type Description
0x00 Float Position
0x04 Float Length
0x08 UInt32 Note Index.
0x10 UInt32 Reserved

Note Table

All offsets are relative to the Wave Information Data Table.

Offset Type Description
0x00 UInt32 N = Number of Note Information Entries.
0x04 DataRef[N] References to Note Information Entries.

Note Information Entry

Offset Type Description
0x00 Int32 Wave Index
0x04 Byte Attack (-1–127)
0x05 Byte InfoDecay (-1–127)
0x06 Byte Sustain (-1–127)
0x07 Byte Release (-1–127)
0x08 Byte Hold (-1–127)
0x09 Byte[3] Padding
0x0C Byte OriginalKey
0x0D Byte Volume (0–127)
0x0E Byte InfoPan (0–127)
0x0F Byte InfoSurroundPan (0–127)
0x10 Float InfoPitch
0x14 DataRef Reference to address to LFO Table. Always 0.
0x1C DataRef Reference to address to Graph Enviroment Table. Always 0.
0x24 DataRef Reference to address to Randomizer Table. Always 0.
0x2C UInt32 Reserved

WAVE

The WAVE section starts with a header.

Offset Type Description
0x00 String Section magic. Always WAVE in ASCII.
0x04 UInt32 Length of this section.
0x08 UInt32 N = Number of offsets.
0x0C UInt32[N] Offsets to Wave Infos.

Data Reference

The Data Reference structure is used to point to other data types.

Offset Type Description
0x00 Byte Reference type. (0 = Address, 1 = Offset).
0x01 Byte Data type. Usually 0x00.
0x02 UInt16 Reserved.
0x04 UInt32 Value.

Tools

The following tools can handle BRWSD files: