XModels and Surfaces
Target-binary evidence
Atlas indexes the target function Load_ProcessStructLayout_XModel at RVA 0x8A5A20 (symbol size 5,564 bytes) with candidate source archive_impl_xmodel_db.h, lines 5194–5337; it indexes Load_ProcessStructLayout_XSurface at RVA 0x8AAF40 (3,075 bytes) with candidate source archive_impl_r_xsurface_db.h, lines 4849–4928. Load_XModelSurfs / pointer loader family is present in the same generated archive source. The functions and RVAs are target-specific evidence; see Evidence Scope.
Candidate serialized layout
- Candidate
XModel: size0x2A8, alignment 8. The registered header includes name,numsurfs,numLods,collLod, bone/client-bone counts, flags, contents, scale/radius/bounds, material handles, six LOD records, physics/detail-collision pointers, cloth/blend-shape/decal references. Source:archive_impl_xmodel_db.h:5194-5337; notable fields are at lines 5196–5210, 5232–5264, 5290–5304, and 5310–5334. - Candidate
XModelLodInfo: size0x40; candidate table registers distance, surface count/index, and a stagedXModelSurfsreference (archive_impl_xmodel_db.h:5292-5304). - Candidate
XSurface: size0xC0, alignment0x10; header fields include flags, vertex/triangle/blend-shape counts, rigid-list/subdivision counts and hash. It then registers shared-buffer offsets for vertex/index/triangle-cluster/color/second-UV/normal-transform/tension data, a shared-data record, lightmap coordinates, rigid-vertex lists, and subdivision data (archive_impl_r_xsurface_db.h:4849-4928).
Format observations
The generated loader declarations treat model metadata and surface payload references separately. XSurface has several 32-bit shared-data offsets plus stream-backed pointers; those names imply a split between record metadata and shared geometry payload, but the precise encoding and backing stream mapping are not established by these lines alone. Do not read the candidate values as confirmed target offsets until exact source/build parity is established.
Confidence and unknowns
- High: target loader symbols and RVAs are present in Atlas for the hashed Game-Test EXE.
- Medium: Atlas associates those symbols with the cited generated-source files.
- Candidate only: all listed sizes/offsets. Need target binary type records or a verified matching source revision before using as ABI.
- Unknown: exact source revision/build relationship, stream-block assignment, packed vertex/index decoding, pointer fixups, and platform GPU alignment details.
Evidence: Evidence Scope · Atlas validation · XModel loader source · XSurface loader source.