Hm, and i thought that i'll be the first to post info about __da files.
But i didnt make it. Never thought about other type than 4byte float.
I'll post info that i gathered in the evening ... i dont have it at this computer.
As for the third value for each bone; either 1 or 0. Well, looking at Aeris' model, she has 31 bones, of which 23 are marked "1". Now, looking at the polygon files, there's 23 of them...
Fice: yes, i think that 1 means 'model_bound' too.
========== so shadows came and evening is here =====
so here is what do i think that files are:
AA skeleton file
AB might be list of magics ?
AC-AJ Textures
AM-BZ Body parts P
CK-CZ Weapons P
DA skeleton movement
==== AA - skeleton file:
(but all of you know about this)
offset 0x0C (long) number of bones
offset 0x1C (long) ?? but same as in DA
0x30 (long) might be checksum
0x34: bone info start:
number of bones * {
(long) parent, -1 = root, 0 based)
(float) bone length, negative, i dunno why
(long) model_bound: 1 = yes, 0 = no
} (record length:12b)
==== DA:
file goes like this, starting on offset 0
(long) recs count of records
recs * {
(long) rec_a = ??, but usually same for all blocks
(long) rec_b = ??
(long) block_length, always modulo 4 == 0
block data block, block_length bytes long
}
block:
{
(short) block_a, same as rec_b
(short) real_data_len ??
data data block, real_data_len bytes long, at least i think so.
this isn't even allways, so there should be some variable
info in this data block
}
IMHO there are some spare bytes at end of block
and that is whole file (except of that data, but that is explained by phaeron)
-----------
example, file JCDA:
06 00 00 00 ; records count
record #1 goes now, adress 0004:
02 00 00 00, 0D 00 00 00, 40 00 00 00 ; rec_a, rec_b, block_length
data header #1 now, length with header = 40h :
0F 00, 3A 00 ; block_a, real_data_len
and data ( 40h - header length(4) = 3Ch ):
00 00 00 FF FE 00 BE 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
record #2 goes now, adress 0050:
02 00 00 00, 13 00 00 00, 54 00 00 00 ; rec_a, rec_b, block_length
data header #2 now, length with header = 54h :
15 00, 4D 00 ; block_a, real_data_len
and data ( 54h - header length(4) = 50h ):
04 00 00 FF FE 00 BE 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
record #3 now, adress 00B0 ..... and so on, 6 records
Hope it helps.
Bye bye and good night to you all
[edited] 171 2002-04-15 21:45