OAF: Difference between revisions
No edit summary |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
== Structure == | == Structure == | ||
{| class="wikitable" | {| class="wikitable" | ||
!colspan="15"| | !colspan="15"|Header | ||
|- | |- | ||
! Size !! Content !! Description | ! Size !! Content !! Description | ||
|- | |- | ||
| 12Bytes || | | 12Bytes || Unknown || Appears to be same data on all archives | ||
|- | |- | ||
| 4Bytes || Offset || | | 4Bytes || Offset || Offset for filename list | ||
|- | |- | ||
| | | 4Bytes || Unknown(?) || Padding or part of 8 byte number | ||
|- | |- | ||
| 4Bytes || Offset || | | 4Bytes || File Count || Number of Files inside. | ||
|- | |||
!colspan="15"|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 | |||
|} | |} | ||
== Research == | == 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. | 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. | ||
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 | |||
There is a little bit of data before or after each data entry. Unsure what it means right now. |
Latest revision as of 21:19, 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 | Offset for filename 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 |
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.
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
There is a little bit of data before or after each data entry. Unsure what it means right now.