Moveset File Format (Brawl)

From OpenSA: Smash Engine Documentation Wiki
(Redirected from Moveset File Format)
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 amount of entries in the other sections

Header Size = 0x20
Offset(in hex) Data Note
0x00 Filesize Total filesize of the moveset
0x04 Data Total size of the data section.
0x08 Offset Section Count Amount of entries in the Offset section. Each entry is 0x4 bytes.
0x0C Data Table Count Number of entries in the Data Table. Each entry is 0x8 bytes
0x10 External Data Count Number of External Subroutine Data Each entry is 0x8
0x14 Unknown Always 0?
0x18 Offset Fixing Flag Starts as 0. Is changed to 1 after the pac is loaded into memory and the game finishes changing the addresses pointed to by each offset (not the offset section entries themselves) to absolute addresses.
0x1C Unknown Always 0?

Data

This section contains all of the data end to end. Theres no way to really parse this section, although things are in primarily the same order in every characters file. The attributes always come first, for example. However, actions, subactions and subroutines may not even be in order, and action 116 may appear later than 117 sometimes

Offsets

This section seems to contain a list of offsets into the Data section. However, this isn't necessarily pointers to the same stuff for each character, and no two characters have the same number of offsets.

Data Table

This section contains a list of entries for sections of data. These entries contain an offset into the Offsets section, and a offset to a string describing the section. Every character has a section called "data" which holds offsets for the attributes, actions, subactions, etc, and many characters have other information here that seems to be called "Nodes".

Entry Size = 0x08
Offset(in hex) Data Note
0x00 Offset Offset where the data is stored
0x04 String Offset Offset to a null-terminated string that contains the name of this section

External Data

This section contains a list of data in another .pac file that is refered to in this file. Most of the time, these are in Fighter.pac. These entries are like the ones in the Data Table, in the sense that they contain an offset, and a offset to a string describing the information.

Entry Size = 0x08
Offset(in hex) Data Note
0x00 Offset Offset where the data is stored
0x04 String Offset Offset to a null-terminated string that contains the name of this section