Hmm, I never have really understood endianness. I mean, I'm fine with it in concept, it's the real world application that kills me. And what you said there is exactly why.BoyC wrote:Ok, wild guess here: what if the ffna files stand for "ArenaNet File Format"? If they wrote 'anff' for the ID string in the source, it'd be reversed because of the endian order...
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Guild Wars .DAT File
- Dinoguy1000
- Site Admin
- Posts: 786
- Joined: Mon Sep 13, 2004 1:55 am
- Has thanked: 154 times
- Been thanked: 163 times
-
- advanced
- Posts: 60
- Joined: Fri Feb 02, 2007 9:58 pm
- Been thanked: 2 times
Been parsing the first ffna file the game loads. It has a type of "4" after the ffna header.
These appear to be R.I.F.F files of some sort. The code that processes them is called riff.c, plus the ffna files do appear to have data in them in chunks.
The code to process them is HUGE however, because ArenaNet seems intent on using circular linked-lists (at least that is what the assembly seems to be, I could be wrong, it might be a hash table) for everything, which adds a huge amount of bloat to the code.
If anyone wants to help look at the assembly and figure out this file format, they are more than welcome.
Set a breakpoint on the "test eax,eax" right before the text "cmpDecompress" (it only appears twice) then look at the address pointed to by ebp-4. This is the buffer to uncompressed data. Look for "ffna" as the first 4 bytes and then just step through the code.
I don't know what file number it is from Irina's tool.
I'll keep plugging away, but it might be some time before I figure it out.
BD
These appear to be R.I.F.F files of some sort. The code that processes them is called riff.c, plus the ffna files do appear to have data in them in chunks.
The code to process them is HUGE however, because ArenaNet seems intent on using circular linked-lists (at least that is what the assembly seems to be, I could be wrong, it might be a hash table) for everything, which adds a huge amount of bloat to the code.
If anyone wants to help look at the assembly and figure out this file format, they are more than welcome.
Set a breakpoint on the "test eax,eax" right before the text "cmpDecompress" (it only appears twice) then look at the address pointed to by ebp-4. This is the buffer to uncompressed data. Look for "ffna" as the first 4 bytes and then just step through the code.
I don't know what file number it is from Irina's tool.
I'll keep plugging away, but it might be some time before I figure it out.
BD
-
- ultra-n00b
- Posts: 2
- Joined: Wed May 16, 2007 9:30 am
Here's the latest source. I was busy lately so there's no new features, but I cleaned up the code a bit.
You might need a full version of Visual Studio 8 with Service Pack 1 (i.e. not the express edition) and the latest windows platform SDK installed to compile it.
You might need a full version of Visual Studio 8 with Service Pack 1 (i.e. not the express edition) and the latest windows platform SDK installed to compile it.
You do not have the required permissions to view the files attached to this post.
-
- advanced
- Posts: 67
- Joined: Thu Jun 14, 2007 1:14 pm
- Location: Southern Germany
- Has thanked: 7 times
- Been thanked: 1 time
- Contact:
Hiya,
I was following the GW development with increased interest. Is there any news here? A Model viewer would be very cool
I've still not figured out where/how the 3D data is stored, but maybe I'm just looking at the wrong files? Anyone got any results already?
--Darkstar
I was following the GW development with increased interest. Is there any news here? A Model viewer would be very cool
I've still not figured out where/how the 3D data is stored, but maybe I'm just looking at the wrong files? Anyone got any results already?
--Darkstar
Check out the REWiki!
- Dinoguy1000
- Site Admin
- Posts: 786
- Joined: Mon Sep 13, 2004 1:55 am
- Has thanked: 154 times
- Been thanked: 163 times
Hey all, I recently got my hands on a copy of Guild Wars (thanks Mr.Mouse!), and I've been looking at the GW.dat file, and I've noticed that some of the unknown files are actually 16-bit Unicode text files. I have no idea how many, but I think all the different language EULAs are among them. Also, I've noticed that on many of the other unknown files, bytes 3 and 4 seem to be (IIRC) with some fair consistency.
Code: Select all
02 01
I'm just a casual Guild Wars player but I'm interested in modding this game like I've modded many others. On GwG we've found a new program called Texmod which we've been using for ripping texture out the game, I have a feeling it's not taking actual texture files though instead it is just making a new file based on the data it sees ingame.
http://www.guildwarsguru.com/forum/show ... t=10173288
is the first page. Sadly we can only modify textures and I'm hoping to move onto models. From what I understand of what you guys here have been saying: you've got a decompressor but no recompressor (so any modifications made can't be seen in game). I've downloaded the decompressor but can't use it (i'm the kinda person that needs a tut).
Anyway, thankyou. I'll be keeping an eye on things here
http://www.guildwarsguru.com/forum/show ... t=10173288
is the first page. Sadly we can only modify textures and I'm hoping to move onto models. From what I understand of what you guys here have been saying: you've got a decompressor but no recompressor (so any modifications made can't be seen in game). I've downloaded the decompressor but can't use it (i'm the kinda person that needs a tut).
Anyway, thankyou. I'll be keeping an eye on things here
hi,
i just mentioned it in another thread here.
search in google for: Iris2 UO
We have coded a granny v1 loader for our Iris2 (Ultima Online 3D-Client). Maybe it helps. But i think, GW uses Granny V2. Granny V1 differs from the current Granny V2 very much. Also Granny V2 don't prescribe developers how to save a granny. The fileformat can be changes from the developers. So don't expect, that a Granny V2 loader loads all Grannys.
You can use their Grannyviewer from the RAD site to take a look into the Fileformat. It shows the structure and the Datatypes. Take a look, but the current version 2 is very complex.
regards
i just mentioned it in another thread here.
search in google for: Iris2 UO
We have coded a granny v1 loader for our Iris2 (Ultima Online 3D-Client). Maybe it helps. But i think, GW uses Granny V2. Granny V1 differs from the current Granny V2 very much. Also Granny V2 don't prescribe developers how to save a granny. The fileformat can be changes from the developers. So don't expect, that a Granny V2 loader loads all Grannys.
You can use their Grannyviewer from the RAD site to take a look into the Fileformat. It shows the structure and the Datatypes. Take a look, but the current version 2 is very complex.
regards
-
- ultra-n00b
- Posts: 2
- Joined: Wed May 16, 2007 9:30 am
-
- advanced
- Posts: 60
- Joined: Fri Feb 02, 2007 9:58 pm
- Been thanked: 2 times
-
- advanced
- Posts: 60
- Joined: Fri Feb 02, 2007 9:58 pm
- Been thanked: 2 times
I'm working on several things. First, how GW determines what files to load and second, the format of the ffna files. There are different types, depending on what data is contained in them.
As far as I can tell right now, it looks like they ARE using a custom format for thier modeld, but don't hold me to that yet.
But the model data doesn't look the same as the test granny data I've worked with.
BD
As far as I can tell right now, it looks like they ARE using a custom format for thier modeld, but don't hold me to that yet.
But the model data doesn't look the same as the test granny data I've worked with.
BD
-
- n00b
- Posts: 10
- Joined: Mon Jan 15, 2007 1:30 pm
- Location: My Mousehole
- Contact:
Found an interesting file!
Found a very interesting zip file here: ftp://ftp.plaync.com/Source/XDeltaWithNCsoftMods1.zip
This seems to contain information on all of NCSoft compression techniques, hope this is useful to some people.
This seems to contain information on all of NCSoft compression techniques, hope this is useful to some people.