Moveset File Format (Melee)

From OpenSA: Smash Engine Documentation Wiki
Jump to: navigation, search

Format Overview

The moveset files can be broken up into several sections:

Header

This contains information about the total filesize of the moveset portion, the size of the data section, and the number of entries in the other sections.

Header Size = 0x20
Offset Size Label Note
(Hex)
00000 04 Filesize The total filesize of the file.
00004 04 Datasize The size of the Data section.
00008 04 Offset Count The number of entries in the Offset section.
0000C 04 FtData Count The number of FtData sections in the file
00010 04 "Section Type 2" Count The number of secondary sections in the file. Certain characters such as Game & Watch have these.
00014 04 Version The version number of the file...?
00018 04 Undefined
0001C 04 Undefined

Data Section

This section starts at the end of the header, and all offsets within this section are therefore -0x20 relative to their absolute offset within the file.

FtData Sections

These sections contain information about the character's properties and moveset. They each have a definition and a header which points to offsets for the character's attributes and subactions.

Definition

This section defines the FtData section, giving it a name and a pointer to its header.

FtData Definition Size = 0x08
Offset Size Label Note
(Hex)
00000 04 Header The offset to the Header section of this FtData section.
00004 04 Name The offset to the null-terminated string representing the name of this section.

Header

This is the header for the data, containing the offsets to the subactions and attributes.

FtData Header Size = 0x60
Offset Size Label Note
(Hex)
00000 04 Attributes Start The offset to the beginning of the Attributes section.
00004 04 Attributes End The offset to the end of the Attributes section.
00008 04 Undefined
0000C 04 Subactions Start The offset to the beginning of the Subactions section.
00010 04 Undefined
00014 04 Subactions End The offset to the end of the Attributes section.
00018 18 Undefined These values are likely more offsets to sections that are yet unknown.

Attributes

This section describes properties of the character such as physics and number of jumps. Each entry is 8 bytes long and can either be an integral or floating point value.

Main article: Attributes (Melee)

Subactions

This section describes the commands and flags for each animation the character has. Each one has a header and an offset to a set of events. They are in roughly the same order for every character.

Main article: Subactions (Melee)

Header
Subaction Header Size = 0x18
Offset Size Label Note
(Hex)
00000 04 Name The offset to the null-terminated string representing the name of this section.
00004 04 Animation Offset The offset to the animation for this subaction, relative to the start of PlXxAJ.dat.
00008 04 Animation Size The filesize of the animation.
0000C 04 Events The offset to the Events section of this subaction.
00010 04 Character ID? Character ID in the lowest-order byte. Some other piece of data is occasionally present in the highest-order byte?
00014 04 00000000 When the file is loaded by the game, this space is filled in with a pointer to the animation in ARAM for use when loading the animation into RAM.