39
edits
(Created page with "The resource size table is an ares file format managed by ares::ResourceSizeTable. It contains an array of sorted file path Crc32b hashes + file resource heap size pairs, '''the earliest revision has no header'''. Since succeeded by a version with a 0xc byte header and an optional additional array of fixed 128 byte file paths + file resource heap size pairs for file paths that would produce a hash collision. Since succeeded by version with a new 0x16 byte header, the 0x6...") |
(Improve wording) |
||
Line 1: | Line 1: | ||
The resource size table is an ares file format managed by ares::ResourceSizeTable. | The resource size table is an ares file format managed by ares::ResourceSizeTable. '''The earliest revision has no header''', only containing the crc32b array, the size of array is implicitly calculated. Succeeded by a version with a 0xc byte header and an optional array of fixed size file path + resource size pairs for file paths that would produce a hash collision (default fixed size of that game's max path). Since succeeded by a version with a new 0x16 byte header, the 0x6 byte magic makes all subsequent u32 values unaligned. | ||
=== Header (revision 1) === | === Header (revision 1) === | ||
Line 41: | Line 41: | ||
|0x4 | |0x4 | ||
|u32 | |u32 | ||
|Version | |Version | ||
|- | |- | ||
|0xa | |0xa | ||
|0x4 | |0x4 | ||
|u32 | |u32 | ||
| | |Size of paths in collision table (0x80 and 0xa0 have been used) | ||
|- | |- | ||
|0xe | |0xe | ||
Line 70: | Line 70: | ||
|0x4 | |0x4 | ||
|u32 | |u32 | ||
|Crc32b of | |Crc32b of file path | ||
|- | |- | ||
|0x4 | |0x4 | ||
Line 88: | Line 88: | ||
|0x0 | |0x0 | ||
|0x80 | |0x80 | ||
| | |char[ares MaxPath] | ||
| | |Fixed size file path | ||
|- | |- | ||
|0x80 | |0x80 |
edits