Difference between revisions of "BRWSD (File Format)"
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 | + | * [[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:
|
0x0A | Byte | NoteOffType:
|
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:
- BrawlBox, by Kryal and BlackJax96