Difference between revisions of "BRSAR (File Format)"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
{{Under-construction}} | {{Under-construction}} | ||
− | + | The '''BRSAR''' ('''B'''inary '''R'''evolution '''S'''ound '''AR'''chive) format is used to store sound effects and some music. It is used in [[Mario Kart Wii]], Super Smash Bros. Brawl, The Legend of Zelda: Skyward Sword and other games. | |
==File Header== | ==File Header== | ||
Line 9: | Line 9: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | + | !Offset !! Type !! Description | |
− | |||
− | |||
|- | |- | ||
− | | 0x00 | + | | 0x00 || String || '''File magic'''. RSAR in ASCII |
− | | | ||
− | | | ||
|- | |- | ||
− | | 0x04 | + | | 0x04 || UInt16 || '''Byte order mark'''. 0xFEFF for Big Endian, 0xFFFE for Little Endian |
− | | | ||
− | | '''Byte order mark'''. 0xFEFF | ||
|- | |- | ||
− | | 0x06 | + | | 0x06 || Byte || '''VersionMajor''' flag from [[BrawlBox]]. [[Mario Kart Wii]] uses 01. HomeButtonSe.brsar (used for the Home Menu) uses 01. Unknown if it affects anything in-game |
− | | | ||
− | | '''VersionMajor''' | ||
|- | |- | ||
− | | | + | | 0x07 || Byte || '''VersionMinor''' flag from [[BrawlBox]]. [[Mario Kart Wii]] uses 04. HomeButtonSe.brsar (used for the Home Menu) uses 01. Unknown if it affects anything in-game |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x08 || UInt32 || Length of the file |
− | | | ||
− | | Length of the | ||
|- | |- | ||
− | | | + | | 0x0C || UInt16 || Length of the header (always 0x40) |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x0E || UInt16 || '''Unknown''' (usually 0x03) |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x10 || UInt32 || Offset to the [[#SYMB|SYMB]] section |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x14 || UInt32 || Size of the [[#SYMB|SYMB]] section |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x18 || UInt32 || Offset to the INFO section |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x1C || UInt32 || Size of the INFO section |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x20 || UInt32 || Offset to the FILE section |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | 0x24 || UInt32 || Size of the FILE section |
− | | | ||
− | | | ||
|- | |- | ||
− | | colspan= | + | | 0x28 || Byte[24] || Padding |
+ | |- | ||
+ | | 0x40 || colspan=2 {{unknown|End of header}} | ||
|- | |- | ||
|} | |} | ||
Line 78: | Line 52: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Offset !! Type !! Description | |
− | |||
− | |||
|- | |- | ||
− | | 0x00 | + | | 0x00 || String || '''Section magic'''. SYMB in ASCII |
− | | | ||
− | | | ||
|- | |- | ||
− | | 0x04 | + | | 0x04 || UInt32 || Size of the SYMB section |
− | | | ||
− | | Size of the SYMB section | ||
|- | |- | ||
− | | 0x08 | + | | 0x08 || UInt32 || '''Unknown''' |
− | | | ||
− | | Unknown | ||
|- | |- | ||
− | | 0x0C | + | | 0x0C || UInt32 || Number of entries in the SYMB table |
− | | | ||
− | | Number of entries in the SYMB table | ||
|- | |- | ||
− | | colspan= | + | | 0x10 || colspan=2 {{unknown|End of header}} |
|- | |- | ||
|} | |} | ||
[[Category:File Format]] | [[Category:File Format]] |
Revision as of 01:16, 21 July 2016
Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling.
The BRSAR (Binary Revolution Sound ARchive) format is used to store sound effects and some music. It is used in Mario Kart Wii, Super Smash Bros. Brawl, The Legend of Zelda: Skyward Sword and other games.
File Header
The file begins with a header of size 0x40 bytes.
Offset | Type | Description |
---|---|---|
0x00 | String | File magic. RSAR in ASCII |
0x04 | UInt16 | Byte order mark. 0xFEFF for Big Endian, 0xFFFE for Little Endian |
0x06 | Byte | VersionMajor flag from BrawlBox. Mario Kart Wii uses 01. HomeButtonSe.brsar (used for the Home Menu) uses 01. Unknown if it affects anything in-game |
0x07 | Byte | VersionMinor flag from BrawlBox. Mario Kart Wii uses 04. HomeButtonSe.brsar (used for the Home Menu) uses 01. Unknown if it affects anything in-game |
0x08 | UInt32 | Length of the file |
0x0C | UInt16 | Length of the header (always 0x40) |
0x0E | UInt16 | Unknown (usually 0x03) |
0x10 | UInt32 | Offset to the SYMB section |
0x14 | UInt32 | Size of the SYMB section |
0x18 | UInt32 | Offset to the INFO section |
0x1C | UInt32 | Size of the INFO section |
0x20 | UInt32 | Offset to the FILE section |
0x24 | UInt32 | Size of the FILE section |
0x28 | Byte[24] | Padding |
0x40 | End of header |
Sections
Unless otherwise noted, offsets in each section are relative to the start of the section block.
SYMB
The SYMB section consists of an FST-like data structure. It contains 3 header-less subsections.
Offset | Type | Description |
---|---|---|
0x00 | String | Section magic. SYMB in ASCII |
0x04 | UInt32 | Size of the SYMB section |
0x08 | UInt32 | Unknown |
0x0C | UInt32 | Number of entries in the SYMB table |
0x10 | End of header |