BFASD (File Format)

From MK8
Revision as of 13:03, 19 July 2017 by Ink Larry (Talk | contribs)

Jump to: navigation, search

A BFASD file (Binary caFe Animation Sound Data) contains information related to how certain models produce sound based on their skeleton animation. It is a direct update of the Wii format BRASD.

File Format

File Header

This is the structure for a BFASD header.

Offset Type Description
0x00 String File magic. Always FASD in ASCII.
0x04 UInt16 Byte Order Mark (BOM): 0xFEFF for big endian and 0xFFFE for little endian.
0x06 UInt16 Header size. Always 00 14.
0x08 UInt32 Version. Always 01 00 00 00.
0x0C UInt32 Length of the file in bytes.
0x10 UInt16 Number of sections. Always 00 01.
0x12 UInt16 Unknown. Always 00 00.
0x14 UInt32 Section 1 flag. Always 80 00 00 00.
0x18 UInt32 Offset to DATA section.
0x1C UInt32 Length of DATA section.
0x20 End of this file header


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 Start of Event Header

Event Header

After the DATA header comes the header for the event.

Offset Type Description
0x00 UInt32 Number of frames in corresponding animation.
0x04 UInt32 Unknown.
0x08 UInt32 Unknown. Always 0x0C.
0x0C UInt32 Number of events.
0x10 Start of first 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 BFSAR 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 start of this event entry.

Event structure 2 is more unknown. It has a string reference stored to a BFSAR 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 String Sound Name. This string is null-termined ASCII string and refers to a BFSAR sound effect.


The following tools can handle BFASD files: