← 1.20 ReplayEntropic Dev

REPLAY 1.20 · RESEARCH NOTES

The asset brain

A linked map of loading, rendering, and collision evidence.

34 notes · Latest source update
SOURCE NOTE · Updated 2026-09-28 13:57:07 UTC
On this page

XModel, XModelSurfs, and XSurface

Asset format index · Function cross-reference · Runtime flow

Replay 1.20 layout scope

Layout and serialization statements on this page refer only to Replay 1.20 unless explicitly labeled as Game-Test cross-reference provenance. Source names help identify analogous functions; source UDT sizes, offsets, strides, and dispatch values are not Replay layout evidence.

Evidence status

Partial Replay parser observations only. Replay has named Load/Preload/Postload roots and selected child roles, but no full XModel or XModelSurfs schema has been reconstructed. Replay render submission from loaded surfaces to DObj remains unresolved. Game-Test names in the linked cross-reference reports identify candidates only; no source layout value is transferred here.

Observed format facts

Replay item Replay 1.20 observation Limit
XModel root Replay Load path uses dispatch case 0x09; the root stream route advances 0x2B0 bytes. This route observation is not a complete root schema or ABI declaration.
XModelSurfs route Replay case 0x08 reaches Load_XModelSurfsPtr → Load_XModelSurfs; pointer route also reaches an asset helper. Pointer handling is not a full pointee schema.
XSurface scalar loop Replay ID 20339 q_Load_XSurface is called in a count-controlled loop with 0xC0 steps. The increment does not prove serialized fields; Replay caller census remains incomplete.
Subdivision level array Replay ID 20342 q_Load_XSurfaceSubdivLevelArray traverses count × 0x238; row size is 810 bytes across three PDATA fragments. Stride and function extent are separate measurements; neither is a transferable record size.
AlwaysloadedFlagSet Replay reads 0x38 bytes and accesses pairs at +0x18/+0x20 and +0x30/+0x28. Per-build accesses, not a struct declaration.
XModel reference marking Replay ID 20351 Mark_XModelPtrArray; caller sites at +0xAE, +0xC4, +0xF2. Mark reachability does not describe Load order or pointer-array serialization.

Format boundary

No complete Replay XModel/XModelSurfs field map, texture/material dependency walk, or Replay DObj surface-consumer chain is established here. The decal-volume-info child remains a q-candidate, and its nested Replay MapEdgeListPtr wrapper does not resolve a decal-mask field meaning. Source measurements are retained only in the reports as cross-reference context; Replay values above must not be generalized to another executable.

Local evidence

  • XModel root cross-reference and source member-offset leads
  • XSurface scalar-loader review
  • Subdivision-array report
  • AlwaysloadedFlagSet report
  • Mark_XModelPtrArray report
  • Decal-volume info candidate report