Difference between revisions of "BRSTM file"

From WiiBrew
Jump to navigation Jump to search
Line 1: Line 1:
 
BRSTM files contain ADPCM sound data. They are used for music in some games, such as Super Smash Bros. Brawl and Mario Kart Wii.
 
BRSTM files contain ADPCM sound data. They are used for music in some games, such as Super Smash Bros. Brawl and Mario Kart Wii.
  
They contain an header, followed by a HEAD chunk, a ADPC chunk and a DATA chunk.<br/>
+
They contain a header, followed by a HEAD chunk, an ADPC chunk and a DATA chunk.<br/>
 
All the data in those files are big-endian, except where mentioned.<br/>
 
All the data in those files are big-endian, except where mentioned.<br/>
 
All the offsets are absolute (from begining of file), except where mentioned.<br/>
 
All the offsets are absolute (from begining of file), except where mentioned.<br/>
Line 21: Line 21:
 
|-
 
|-
 
| 0x0004
 
| 0x0004
| 4
+
| 2
| Magic (0xFEFF0100)
+
| Magic (0xFEFF)
 +
|-
 +
| 0x0006
 +
| 1
 +
| Major version
 +
|-
 +
| 0x0007
 +
| 1
 +
| Minor version
 
|-
 
|-
 
| 0x0008
 
| 0x0008
Line 29: Line 37:
 
|-
 
|-
 
| 0x000C
 
| 0x000C
| 4
+
| 2
| Unknown
+
| Header size
 +
|-
 +
| 0x000E
 +
| 2
 +
| Number of chunks
 
|-
 
|-
 
| 0x0010
 
| 0x0010

Revision as of 07:19, 28 April 2010

BRSTM files contain ADPCM sound data. They are used for music in some games, such as Super Smash Bros. Brawl and Mario Kart Wii.

They contain a header, followed by a HEAD chunk, an ADPC chunk and a DATA chunk.
All the data in those files are big-endian, except where mentioned.
All the offsets are absolute (from begining of file), except where mentioned.
All the sizes are in bytes, except where mentioned.

BRSTM header

The header is 64 bytes long.

Offset Size Description
0x0000 4 "RSTM" (0x5253544D)
0x0004 2 Magic (0xFEFF)
0x0006 1 Major version
0x0007 1 Minor version
0x0008 4 Size of the whole file
0x000C 2 Header size
0x000E 2 Number of chunks
0x0010 4 Offset to HEAD chunk
0x0014 4 Size of HEAD chunk
0x0018 4 Offset to ADPC chunk
0x001C 4 Size of ADPC chunk
0x0020 4 Offset to DATA chunk
0x0024 4 Size of DATA chunk
0x0028 24 Unknown/Padding (zero)

HEAD chunk

The head chunk is typically 256 bytes long.
It contains what looks like the ADPCM table and YN1/YN2, twice, probably once for the first part and once for the last (looping) part.
It also contains some other unknown stuff.

ADPC chunk

The ADPC chunk is typically 1216 bytes long. It seems to contain some other ADPCM table.

DATA chunk

The DATA chunk contains ADPCM sound data.