OAF

From Game Research Wiki
Revision as of 09:16, 18 August 2014 by Orin (talk | contribs) (→‎Structure)
Jump to navigation Jump to search

Used in the following game(s):

  • South Park: The Stick of Truth

Structure

Header
Size Content Description
12Bytes Unknown Appears to be same data on all archives
4Bytes Offset Start offset for file list
4Bytes Unknown(?) Padding or part of 8 byte number
4Bytes File Count Number of Files inside.
Index Entry
Size Content Description
4Bytes Unknown No idea what this is... maybe some kind of CRC or hash?
4Bytes Offset File location
4Bytes Unknown(?) Padding or part of 8 byte number
4Bytes File Size Size of file(?)
4Bytes Unknown Padding or part of 8 byte number


File offsets may just be of a 'long long' data type, which is a 64bit number stored over 8bytes rather than 4bytes of padding. I wonder I could just use as streamoff. That's typedef as long long... right? O.o

Filenames are null terminated/separated by a 0x00 and might not have any whitespace in the filename/path since looks like they used underscores like most people do. XD

Research

Different from the ones I'm used to. A quick look doesn't show much of a normal index but file names may be stored at the end of the file. This could be a bit tricky but only two ways I can think of this working is it stores the start offset of the file name for a specific entry or it loads all file names into memory.