Time for an update so large it needs a new post. To summarize our progress so far, I've more or less mapped everything we know about the header and first section subheader anatomy of the battle models, using Serge, Kid, and Guile as examples. Everything's listed as hexadecimal offsets.
In the hex viewer representations reproduced below, the byte strings are broken into four-byte chunks by red lines (for the overall model header) and blue lines (for the first section subheader). Relative offsets we've identified in the subheaders are followed by their true addresses in the model files (in parentheses). Anything we (or at least I) have not identified yet will receive the "???" treatment.
I always ignore the fifth line of hex code for Serge and Kid, but it becomes extremely important in the first section subheader of Guile's model.
First up is Serge's header and first section subheader:Header: 00 ~ 1F
6 Sections | Section1 0x20 | Section2 0x4EF8 | Section3 0x50C8
Section4 0x5228 | Section5 0xA2CC | Section6 N/A | EOF 0xABDC
Section1: 20 ~ 4EF7
SubHeader: 20 ~ 3F
Pointer to Gobbledegook | PointerTable 0x14(34) | ??? 0x0280 | Gobbledegook 0x042B0205
??? 0xF9 | SubSection2 0x0338(0358)| SubSection3 0x28C8(28E8)| SubSection4 0x4228(4248)
SubSection1: 40 ~ 357
SubSection2: 358 ~ 28E7
Vertex Pool, SubSection3: 28E8 ~ 4247
SubSection 4: 4248 ~ 4EF7Next up is Kid's model header and first section subheader:Header: 00 ~ 1F
6 sections | Section1 0x20 | Section2 0x4DB4 | Section3 0x50C4
Section4 0x5224 | Section5 0xC6F0 | Section6 N/A | EOF 0xD000
Section1: 20 ~ 4DB3
SubHeader: 20 ~ 3F
Pointer to Gobbledegook | PointerTable 0x14(34) | ??? 0x0238 | Gobbledegook 0x040701D9
??? 0x0226 | SubSection2 0x0374(0394)| SubSection3 0x2C04(2C24)| SubSection4 0x4264(4284)
SubSection1: 40 ~ 393
SubSection2: 394 ~ 2C23
SubSection3: 2C24 ~ 4283
SubSection4: 4284 ~ 50C3Guile's Battle Model Header and First Subsection Header:
Header: 00 ~ 1F
6 Sections | Section1 0x20 | Section2 0x4C3C | Section3 0x4F10
Section4 0x5070 | Section5 0xE41C | Section6 N/A | EOF 0xED2C
Section1: 20 ~ 4C3B
SubHeader: 20 ~ 4F
Pointer to Gobbledegook | PointerTable 0x20(40) | ??? 0xD8 | ??? 0x016C
??? 0x01B8 | ??? 0x025C | Gobbledegook 0x049A034B | ??? 0x02BE
SubSection2 0x033C(035C) | SubSection3: 0x2A38(2A58)| SubSection4: 0x40D0(40F0)| ??? 0x0D
SubSection1: 50 ~ 35B
SubSection2: 35C ~ 2A57
Vertex Pool, Subsection3: 2A58 ~ 40EF
SubSection4: 40F0 ~ 4C3BI'm still trying to find GPU opcodes within the model files, and so far I've come up dry searching through the first section of everyone's models. GPU opcodes wouldn't occur in the textures themselves, right? It should be in with the model data to my understanding.
EDIT: Luminaire85 has determined that the first 4-byte string in the first subsection header points to a section of data that I've termed "Gobbledegook" (solely for the reason that we don't know what it represents yet).