Done some research of modelbin structure.
Header, 20 bytes:
List of entries, 24 bytes for each entry:
lekS (Skel) entry - skeleton:
hprM (Mrph) entry - I think it's morphing data for characters models, looks empty:
ItaM (MatI) entries - materials data:
hseM (Mesh) entries - mesh data:
BdnI (IndB) entry - (?):
yaLV (VLay) entries - vertex layers?:
BreV (VerB) entries - vertex buffers?:
fuBM (MBuf) entries - ?:
ldoM (Modl) entry - model?:
(it's last index entry and no next entry header start offset is present, so global "data start" from main Grub header must be used)
So, we have 100 entries in sum: 1 Skel entry, 1 Mrph entry, 10 MatI entries, 69 Mesh entries, 1 IndB entry, 5 VLay entries, 8 VerB entries mixed with 4 MBuf entries and 1 Modl entry.
Material data entries looks like file-inside-file, they have personal Grub header with
local adressing, I cut out one for closer look:
As you can see, two entries is present "MATI" and "MTPR" and those entries is also using local adressing.
Another strange thing is
Name entry - this entry must have name lenght in symbols for correct reading, and it have it, but in strange format, like mirrored byte:
...or in some hex format I'm not familiar with:
18 is 12h and 31 is 1Fh - I can see some logic here, but it's strange.
shakotay2 wrote:
Code: Select all
...
0x140b emaN b0 00 10 00 xoBB 80 01 13 body_a_LOD5 -0.753424 0.755402 -1.765556 0.753425 1.081711 0.620197
0x143e emaN b0 00 10 00 xoBB 80 01 13 body_a_LOD5 -0.966901 0.000073 -1.803357 0.966901 0.578240 -1.000934
0x1471 emaN b0 00 10 00 xoBB 80 01 13 body_a_LOD5 -0.815528 -0.002078 -2.096735 0.815527 0.179026 1.001929
0x14a4 emaN` 00 10 00 xoBB 80 01 0e Shadow -0.961083 -0.000369 -2.319926 0.961083 1.047848 1.001929
0x14d2 emaN` 00 10 00 xoBB 80 01 0e Shadow -0.802868 -0.000369 -2.130043 0.802868 0.184148 1.001929
0x1500 emaN` 00 10 00 xoBB 80 01 0e Shadow -0.879130 0.141074 -0.786225 0.879130 1.016461 0.669687
...
An error here: "emaN`" is "Name 60h" where 60h is 6 symbols in name "Shadow".