BRASD (File Format)

From Custom Mario Kart
Jump to navigation Jump to search

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.
0x08 UInt32 Length of the file in bytes.
0x0C UInt16 Header size. Always 0x20.
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.
0x08 UInt32 Number of frames in corresponding animation.
0x0C DataRef Reference to Event Table.
(Offset relative to 0x08 of DATA header).
0x14 End of this file structure

Event Table

Offset Type Description
0x00 UInt32 N = Number of events.
0x04 Frame Info[N] Array of events.

Frame Info

The Frame Info structure contains information about the frames and the second event structure contains information about the sound.

Offset Type Description
0x00 Int32 Start frame.
0x04 Int32 End frame.
0x08 Byte Frame flags.
Value Description
0x00 Type. 0 = Range, 1 = Trigger.
0x01 1 = End frame is infinitely large.
0x02 1 = Start frame is infinitely large negative number.
0x09 Byte Loop offset.
0x0A Byte Loop interval.
0x0B Byte Reserved.
0x0C DataRef Reference to Sound Event.
(Offset relative to 0x08 of DATA header).

Sound Event

The Sound Event structure controls the info about the animation sound and stores a reference to a BRSAR sound effect.

Offset Type Description
0x00 UInt32 Option flag. Unknown meaning.
0x04 UInt32 Sound ID. Always 0xFFFFFFFF.
0x08 DataRef Reference to null-termined ASCII string that refers to a BRSAR sound.
(Offset relative to start of this structure).
0x10 Byte Sound volume.
0x11 Byte[3] Reserved.
0x14 Float Pitch.
0x18 UInt32 Reserved.
0x1C UInt32 User Parameter. Unknown meaning.

Data Reference

The Data Reference structure is used to point to other data types.

Offset Type Description
0x00 Byte Reference type. (0 = Address, 1 = Offset).
0x01 Byte Data type. Always 0x00.
0x02 UInt16 Reserved.
0x04 UInt32 Value.

Tools

The following tools can handle BRASD files: