These pages cover various file formats used throughout the games. It is still under progress.
Abstract¶
Most file formats in Gran Turismo are proprietary and if not, will use platform provided formats. This is especially the case for games older than Gran Turismo 5.
The following pages are essentially a human readable mirror of the 010 templates for 010 Editor for each format described - which is still recommended to easily visualize game files.
If you intend to reverse formats you should probably grab IDB/Ghidra databases here.
Similarities between formats¶
GT formats make heavy use of offsets - usually in an ordered way.
Magics¶
It's no surprise that most files uses proprietary magic numbers. Sometimes there is no magic at all.
Mapping¶
When a file is opened, the buffer that serves for reading the file is often the structure itself that stays in memory. Offsets are therefore rewritten into memory addresses to each part of the structure. They call this process mapping. It is similar to pointer swizzling.
This process happens immediately after the file was opened, for each single structure containing offsets.
Tip
Finding the function handling mapping for each format greatly helps narrowing down the structure.
Note
In some cases the magic itself is changed, for instance, TXS3
becomes tXS3
once loaded.
Relocation¶
Most formats will have an empty field of zeros (and sometimes a file size) right after the magic - this field is usually used to "relocate" the structure - the pointer to the same file will be put there. Its purpose is unknown.
Versioning¶
Versioned files usually contain a major, and minor version. Normally ushort
, but can differ.
PS4-era formats with floats¶
Floats can be vector encoded (with pack/unpack intrinsics) in PS4 GT's formats.