FF8/WorldMap charaone

From Final Fantasy Inside
< FF8
Revision as of 17:25, 16 February 2019 by my_wiki>MaKi (section 12 (arg4 == 0x12))
Jump to navigation Jump to search

file is different than field [ONE]

Header

Offset Length Description
0x00 uint EOF
0x04 (TIM_height * (TIM_width * 4) ) / 2 + 64 TIM texture
?? (after TIM textures, usually two?) VARIES Chara

Chara

Offset Length Description
0x00 uint bone section? length (shift left 6)
0x04 uint unknown struct size. Multiply by 8
0x08 uint unknown size
?? uint 32 * *(dword_24FEE48[v24] + 36))
0x38 uint section 12 pointer + 2

section 12 (arg4 == 0x12)

names are WIP, I'm not quite sure if it's animation, geometry or bones...

Offset Length Description
0x00 + ( i==0 ? 0 : sizeof(entry[i-1])) sizeof(entry) while entry.countOfEntries != null
  • there's no count for these objects, so you have to read all entries one-by-one. In order to understand when to stop you have to check if reading new entry.countOfEntities == 0

entry:

Offset Length Description
0x00 ushort count of entities
0x02 ushort count of bone rotations
0x04 ushort boneEntity


boneEntity:

Offset Length Description
0x00 ushort count of entities
0x02 ushort count of bone rotations
0x04 + (entityID * (countOfBoneRot * 6) + 6) ushort entityObject

entityObject:

Offset Length Description
0x00 short Idle X offset
0x02 short Idle Z offset
0x04 short Idle Y (up) offset
0x06 + (boneID*6) short Bone[boneID].RotX
0x08 + (boneID*6) short Bone[boneID].RotZ
0x0A + (boneID*6) short Bone[boneID].RotY