Difference between revisions of "BRWSD (File Format)"

From Custom Mario Kart
Jump to navigation Jump to search
(Created page with "{{Under-construction}}<br/> BRWSD ('''B'''inary '''R'''evolution '''W'''ave '''S'''ound '''D'''ata) is a sub file format found in BRSAR files from many Wii games. It consi...")
 
m
Line 211: Line 211:
  
 
The following tools can handle BRWSD files:
 
The following tools can handle BRWSD files:
* [[BrawlBox]], by [[Kryal]] & [[BlackJax]]
+
* [[BrawlBox]], by Kryal and BlackJax96
  
 
[[Category:File Format/Wii]]
 
[[Category:File Format/Wii]]

Revision as of 09:42, 18 June 2021

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 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: