Difference between revisions of "BRASD (File Format)"

From Custom Mario Kart
Jump to navigation Jump to search
m
Line 13: Line 13:
 
| 0x04 || UInt16 || {{BOM}}
 
| 0x04 || UInt16 || {{BOM}}
 
|-
 
|-
| 0x06 || UInt16 || '''Version number''' of the file format. Always 01 00.
+
| 0x06 || UInt16 || '''Version number''' of the file format. Always 01 00 in MKW.
 
|-
 
|-
 
| 0x08 || UInt32 || Length of the file in bytes.
 
| 0x08 || UInt32 || Length of the file in bytes.

Revision as of 15:02, 25 February 2017

A BRASD file (Binary Revolution Animation Sound Data) contains information related to how certain objects produce sound based on their CHR0 animation. In Mario Kart Wii, they always appear in a ./brasd/ subdirectory from a course.

File Format

File Header

This is the structure for the BRASD header.

Offset Type Description
0x00 String File magic. Always RASD 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. Always 01 00 in MKW.
0x08 UInt32 Length of the file in bytes.
0x0C UInt16 Offset to the first section.
0x0E UInt16 Number of sections. Always 00 01.
0x10 UInt32 Offset to the DATA section. Always 0x20.
0x14 UInt32 Length of the DATA section.
0x18 End of this file header

DATA

The DATA section starts with a section header.

Offset Type Description
0x00 String Section magic. Always DATA in ASCII.
0x04 UInt32 Length of this section.

Event Header

After the DATA header comes the event header.

Offset Type Description
0x00 UInt32 Number of frames in corresponding animation.
0x04 UInt32 Unknown. Always 01 00 00 00.
0x18 UInt32 Unknown. Always 00 00 00 0C.
0x0C UInt32 Number of Events.
0x10 Start of first event

Event

An event is split up into two structures. The first event structure contains information about the frames and the second event structure contains information about the sound. In a file all the event structure 1 comes first, and after that, all the event structure 2. It is the event that controls the info about the animation sound and stores a reference to a BRSAR sound effect.

Event structure 1
Offset Type Description
0x00 UInt32 Start frame.
0x04 Int32 End frame. If no end frame is used, this is set to -1.
0x08 Byte Type and Playback Interval. The first bit is Type (0 = Range, 1 = Trigger). The second bit is Playback Interval (0 = true, 1 = false).
0x09 Byte Padding?
0x0A Byte Unknown.
0x0B Byte Padding?
0x0C UInt32 Unknown.
0x10 UInt32 Offset to start of the event structure 2 used in this event. Relative to the end of the DATA header.

Event structure 2 is more unknown. It has a string reference stored to a BRSAR sound effect and some sound settings.

Event structure 2
Offset Type Description
0x00 UInt32 Unknown.
0x04 UInt32 Unknown. Always 0xFFFFFFFF.
0x08 Byte Unknown.
0x09 Byte Unknown.
0x0A Byte Unknown.
0x0B Byte Unknown.
0x0C UInt32 Unknown.
0x10 Byte Sound volume.
0x11 Byte[3] Padding?
0x14 Float Pitch.
0x18 Byte[4] Padding?
0x1C UInt32 User Parameter. Unknown meaning.
0x20 StringNT Sound Name. This string is a null-termined ASCII string that refers to a BRSAR sound.

Tools

The following tools can handle BRASD files: