OBD:Instance file format: Difference between revisions

corrected type of ints in header; it's really v1.0 and v1.1 of the engine, not "PC" and "Mac"
(added note about unused field in template descriptor)
(corrected type of ints in header; it's really v1.0 and v1.1 of the engine, not "PC" and "Mac")
 
Line 27: Line 27:
{{Table}}
{{Table}}
{{OBD_Table_Header}}
{{OBD_Table_Header}}
{{OBDtr| 0x00 | int64   | | 1F 27 DC 33 DF BC 03 00 | 0x0003BCDF33DC271F | Total template checksum (main indicator of engine compatibility):
{{OBDtr| 0x00 | uint64   | | 1F 27 DC 33 DF BC 03 00 | 0x0003BCDF33DC271F | Total template checksum (main indicator of engine compatibility):
*0x0003BCDF33DC271F ("PC") - templates compatible with Windows retail engine(s)
*0x0003BCDF33DC271F (v1.0) - templates compatible with Windows retail engine(s)
*0x0003BCDF23C13061 ("Mac") - templates compatible with Windows demo and Mac engines
*0x0003BCDF23C13061 (v1.1) - templates compatible with Windows demo and Mac engines
*0x0003BA70A8D8AE11 ("PS2") - templates compatible with PlayStation 2 engine(s)
*0x0003BA70A8D8AE11 (PS2) - templates compatible with PlayStation 2 engine(s)
*0x0000000000000000 (blank) - for use with [[OniX]] engine(s) (VR33), which handle data versioning using the 0x3C field below
*0x0000000000000000 (blank) - for use with [[OniX]] engine(s) (VR33), which handle data versioning using the 0x3C field below
OniSplit's .oni files (VR32) use PC checksum by default and Mac/PS2 checksums where required (SNDD, TXMP, AGQG, M3GM, IGSt, TSFT/TSGA, TRAM/TREX) }}
OniSplit's .oni files (VR32) use PC checksum by default and Mac/PS2 checksums where required (SNDD, TXMP, AGQG, M3GM, IGSt, TSFT/TSGA, TRAM/TREX) }}
{{OBDtr| 0x08 | int32   | | 31 33 52 56             | '13RV'             | .dat version (meant to be read as "VR31")<br>OniSplit's .oni files use '23RV' ("VR32") instead<br>OniX's [[Oni (folder)|GDFX]] uses '33RV' ("VR33") to signify that the new data versioning system is in use }}
{{OBDtr| 0x08 | uint32   | | 31 33 52 56 | '13RV'   | .dat version (meant to be read as "VR31")<br>OniSplit's .oni files use '23RV' ("VR32") instead<br>OniX's [[Oni (folder)|GDFX]] uses '33RV' ("VR33") to signify that the new data versioning system is in use }}
{{OBDtr| 0x0C | int16   | | 40 00 | 64 | size of this header }}
{{OBDtr| 0x0C | uint16   | | 40 00       | 64       | size of this header }}
{{OBDtr| 0x0E | int16   | | 14 00 | 20 | size of instance descriptor }}
{{OBDtr| 0x0E | uint16   | | 14 00       | 20       | size of instance descriptor }}
{{OBDtr| 0x10 | int16   | | 10 00 | 16 | size of template descriptor }}
{{OBDtr| 0x10 | uint16   | | 10 00       | 16       | size of template descriptor }}
{{OBDtr| 0x12 | int16   | | 08 00 | 8 | size of name descriptor }}
{{OBDtr| 0x12 | uint16   | | 08 00       | 8         | size of name descriptor }}
{{OBDtr| 0x14 | int32   | | 83 24 00 00 | 9347      | instance descriptor count  }}
{{OBDtr| 0x14 | uint32   | | 83 24 00 00 | 9347      | instance descriptor count  }}
{{OBDtr| 0x18 | int32   | | D4 1B 00 00 | 7124      | name descriptor count }}
{{OBDtr| 0x18 | uint32   | | D4 1B 00 00 | 7124      | name descriptor count }}
{{OBDtr| 0x1C | int32   | | 38 00 00 00 | 56        | template descriptor count }}
{{OBDtr| 0x1C | uint32   | | 38 00 00 00 | 56        | template descriptor count }}
{{OBDtr| 0x20 | int32   | | A0 BC 03 00 | 0x03BCA0  | data table offset }}
{{OBDtr| 0x20 | uint32   | | A0 BC 03 00 | 0x03BCA0  | data table offset }}
{{OBDtr| 0x24 | int32   | | A0 35 25 00 | 2438560  | data table size }}
{{OBDtr| 0x24 | uint32   | | A0 35 25 00 | 2438560  | data table size }}
{{OBDtr| 0x28 | int32   | | 40 F2 28 00 | 0x28F240  | name table offset }}
{{OBDtr| 0x28 | uint32   | | 40 F2 28 00 | 0x28F240  | name table offset }}
{{OBDtr| 0x2C | int32   | | 04 4F 02 00 | 151300    | name table size }}
{{OBDtr| 0x2C | uint32   | | 04 4F 02 00 | 151300    | name table size }}
{{OBDtr| 0x30 | int32   | | 99 CF 40 00 | (garbage) | used by OniSplit for raw table offset }}
{{OBDtr| 0x30 | uint32   | | 99 CF 40 00 | (garbage) | used by OniSplit for raw table offset }}
{{OBDtr| 0x34 | int32   | | 90 4F 63 00 | (garbage) | used by OniSplit for raw table size }}
{{OBDtr| 0x34 | uint32   | | 90 4F 63 00 | (garbage) | used by OniSplit for raw table size }}
{{OBDtr| 0x38 | int32   | | F4 55 5F 00 | (garbage) | unused }}
{{OBDtr| 0x38 | uint32   | | F4 55 5F 00 | (garbage) | unused }}
{{OBDtr| 0x3C | int32   | | 90 4F 63 00 | (garbage) | used by OniX (three high bytes) for data versioning; contains the highest data version (timestamp) found in any instance in this .dat; see instance descriptor table's 0x10 for format }}
{{OBDtr| 0x3C | uint32   | | 90 4F 63 00 | (garbage) | used by OniX (three high bytes) for data versioning; contains the highest data version (timestamp) found in any instance in this .dat; see instance descriptor table's 0x10 for format }}
|}
|}