I keep thinking I should change the name of the project but I giggle inside every time I read it.

Anyways, I’m officially publishing this completely unfinished project — I plan to work on it more after I wrap up some things that are coming up soon (such as going out of town). I, also, don’t know how much things will change from the benchmark Square-Enix released to the game when it comes out March 6th.

Since I’m going to be busy over the next couple of weeks, I thought I would go ahead and publish what I have for now and let people have at it (and probably break it).

The devil’s in the details

There are, as of this post, 11 sets of bytes in the package files that I have no idea what they do. Further, there are at least 3 file flags that I couldn’t tell you what they do because I don’t know. To make matters even worse, I can’t even guarantee all of the files are extracted the way they’re suppose to be. Some could be encrypted, some could have oddities about them that require special handling, and some could not work due to a simple screw up on my end.

Fortunately, there are some XML files that I was able to verify via extraction and decompressing that appear to be exactly what they should be. So… there’s that. I haven’t been able to verify much else yet. I’m sure you all will let me know how much it doesn’t work.

A helping hand

For those who are interested, or might want to take up the challenge themselves, I can offer what I know.

Straight from the comments I made in the source code as I was going.

//* 0x00 [0x43 0x52 0x41 0x46] signature -- "CRAF" (could be FARC backwards)
//* 0x04 [0x14 0x00 0x03 0x00] ?? -- maybe version?
//* 0x08 [0x-- 0x-- 0x-- 0x--] count -- number of items (acts as size for lists of files) 
//* 0x0c [0x-- 0x-- 0x-- 0x--] ?? 
//* 0x10 [0x-- 0x-- 0x-- 0x--] offset from start -- [SEEMS TO ALWAYS BE 0x40] information about files including things like offset, length etc 
//* 0x14 [0x-- 0x-- 0x-- 0x--] offset from start -- offset for list of files (# of files = count above) 
//* 0x18 [0x-- 0x-- 0x-- 0x--] offset from start -- offset for second list of files (# of files = count above) 
//* 0x1c [0x-- 0x-- 0x-- 0x--] offset from start -- start of data 
//* .... 
//* NEXT SET REPEATS FOR COUNT ENTRIES WHERE COUNT IS THE ABOVE COUNT STARTING AT 0x40 (usually) 
//* 0x40 [0x-- 0x-- 0x-- 0x-- 0x-- 0x-- 0x-- 0x--] ?? -- no idea (maybe integrity check to see if data has been corrupted?) 
//* 0x48 [0x-- 0x-- 0x-- 0x--] ?? 
//* 0x4c [0x-- 0x-- 0x-- 0x--] length of data 
//* 0x50 [0x-- 0x-- 0x-- 0x--] ?? 
//* 0x54 [0x-- 0x-- 0x-- 0x--] offset of specific entry from start 
//* 0x58 [0x-- 0x-- 0x-- 0x--] offset of data 
//* 0x5c [0x-- 0x-- 0x-- 0x--] ?? 
//* 0x60 [0x-- 0x-- 0x-- 0x--] offset of second list entry

I have actually figured out a bit more than is there but I can’t remember it off the top of my head at the moment. I’ll do a more in-depth write up about it after some sleep (it’s currently almost 4 AM and I have class today) so be sure to check back for that if you’re interested in this kind of thing.

Anyways, head on over to the projects page and give it a whirl.

Category:
Final Fantasy XV, Games, Programming, Projects
Tags:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: