OAF: Difference between revisions

From Game Research Wiki
Jump to navigation Jump to search
Line 33: Line 33:




NOTE! Number might be 8 bytes rather than 4? 64 bit int?
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
Filenames are null terminated/separated by a 0x00

Revision as of 09:14, 18 August 2014

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
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

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.