Moveset File Format (Brawl)
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
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".
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.
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 |