I have been able to import some models:






by examining about 50 files in 010 editor and creating a template that seems to work for most files.
I am however completely new to this and it seems some files just act completely different and I can't figure it out on my own. (for example the 13097_ffna.raw included below)
If perhaps someone could shine some light on this (or help by reversing the .exe?)
I am also looking for a way to find specific meshes since they all have numbers in the .dat browser.
And a way to find their textures/animation files.
010 editor template example:

(I'm not used to c/c++, which you'll no doubt notice if you open up the template. I also didn't comment it entirely and it looks like a mess, but if you do take a look at it and have questions go ahead and ask them.)
I'm currently rewriting the template with my handwritten comments and trying to clean up the code itself.
currently this is what I've found out so far:
first 4 bytes = FFNA
byte = 02 = model
4 bytes= some sort of type identifier
4 bytes = byte amount
byte = 26 = start of file
7 bytes = unknown
4bytes seem to have an influence on the amount of meshes
4bytes = format type1 ?
4bytes = format type2 ?
20 bytes = unknowns that seem to interact with the bytes that follow the mesh identifiers? i've tried to get an algorythm from them in the template
2*4 bytes = scale
20 bytes = unknown (seems to only change when according to my "algorythm" there are zero meshes)
byte = amount of meshes (influenced if there's a 29/0C instead 08/09 in the dword described higher above)
8 bytes * amount of meshes (named "quads" in my template from before i knew what they were)
the amount of following bytes depends on the amount of meshes and the values of their bytes
after that come the facelists (in the template picture starting at the second group with black background)
the black bar itself is the amount of faces in mesh
there are 3 values and they seem to add up if the values are different
--> value 1
if value1 differs from value2 --> value1 + 2
then
if value1 differs from value3 --> value1 + 2 +3
followed by 5*4bytes unknowns
red = faces --> seem to be in threes, still looking if in some files they are in fours
directly after start the vertices and rest
sometimes float1,2,3 are x,y,z, sometimes it's float 4,5,6
and if the format type 1 == F095B2D6 there are 4 extra bytes inserted after the first 3 floats
EDIT: for those who do not have a guildwars account, perhaps this can help http://www.guildwars.com/support/gwtrial.php






