Runtime class registry
The inspected runtime image contains class-registration strings and field metadata absent from the packed executable’s disk image. A registration string whose CRC-32 matches the id corroborates a class name; an arbitrary matching word does not. Observed · RR
The registration table is built while the game starts. A guest-memory snapshot taken at the main menu holds the plaintext class names, and their CRC-32 values name 604 of the 607 forge type ids that no tool or dictionary had named; a snapshot about 50 seconds after process start, at the splash screen, holds none of them. Observed
A dictionary word with a matching CRC-32 can be an accidental collision: 25 of 298 ids previously named from word lists had a different registered class, for example 0x7AAB07A6 is CameraManager rather than unexaminable, and 0x18A4E465 is DBAIEquipmentSet rather than clip_max_yremainders. Observed
| Name evidence | What it establishes | Confidence |
|---|---|---|
| Runtime class-registration string, matching CRC-32 | Class name in the inspected image | Observed |
| AnvilToolkit, ACExplorer, ReForger or Blacksmith list | A tool’s name for a hash in its supported game | Sourced · ACExplorer, ReForger, Blacksmith |
| Wordlist or generated string CRC match | Candidate; accidental 32-bit collisions remain possible | Inferred |
RRAssetStudio Selector, MATERIAL_SET |
Display labels for BuildTable 0x22ECBE63 |
Sourced · RRAssetStudio |
RRAssetStudio LODMultiMesh |
Label for LODSelector 0x51DC6B80 |
Sourced · RRAssetStudio |
RRAssetStudio MipMap |
Label for CompiledMip 0x1D4B87A3 |
Sourced · RRAssetStudio |
Stored fields normally serialize base-class-first and in descriptor order; flag 0x02000000 marks stored fields. Animation, Bone and Visual have custom serialization behavior. ManagedObject-derived bodies carry an extra leading byte. These relationships are checked against real bodies. Observed
Little-endian. Offsets are relative to this structure.
| Offset | Size | Type | Field | Confidence | Notes |
|---|---|---|---|---|---|
| 0x0 | 8 | pointer | field records | Observed | |
| 0x8 | 16 | bytes | unknown | Unknown | Stored bytes; meaning is not established. |
| 0x18 | 8 | pointer | name string | Observed | |
| 0x20 | 4 | u32 | base type id | Observed | |
| 0x24 | 4 | u32 | own type id | Observed |
Little-endian. Offsets are relative to this structure.
| Offset | Size | Type | Field | Confidence | Notes |
|---|---|---|---|---|---|
| 0x0 | 4 | u32 | flags | Observed | |
| 0x4 | 4 | u32 | field-name CRC-32 | Observed | |
| 0x8 | 4 | u32 | target class id | Observed | |
| 0xC | 2 | u16 | fixed-array count | Observed | |
| 0xE | 2 | u16 | kind | Observed | |
| 0x10 | 2 | u16 | element kind | Observed | |
| 0x12 | 38 | bytes | unknown | Unknown | Stored bytes; meaning is not established. |
Field arrays end at the next array or descriptor, not at the first apparently invalid record. A nonzero fixed-array count at offset 12 is valid. Observed
| Kind | Checked serialized representation | Confidence |
|---|---|---|
0x0A |
f32 | Observed |
0x11, 0x1F |
Eight bytes | Observed |
0x12 |
Nine-byte link: tag + u64 | Observed |
0x13, 0x16 |
Owned / embedded object: u64 + type + body | Observed |
0x14 |
Tagged pointer | Observed |
0x17 |
Fixed array; descriptor count, no serialized count | Observed |
0x18 |
Buffer: u32 count + elements, including object buffers | Observed |
0x19 |
Enum u32 | Observed |
0x1A |
u32 byte count + chars + NUL; empty string is only the count | Observed |
0x1B |
UTF-16 count + units + NUL unit; empty string is only the count | Observed |
0x1C |
Ten-byte resource reference | Observed |
0x1D |
u32 count + descriptor-selected elements | Observed |
0x00C0 |
Pure-bool group after the class’s other fields | Observed |
Enum descriptors are 16 bytes: pointer, enum-name CRC-32, count. Each target entry is eight bytes: value u32 and enumerator-name CRC-32 u32. An integer and hash remain readable when the spelling is unknown. Observed
The metadata is not a complete serialization program. Custom orders and shader-constant blocks require class-specific evidence; an unknown class cannot safely be decoded solely from field names. Unknown
Shaun White Skateboarding
Section titled “Shaun White Skateboarding”only in SWS
The class of an object is the CRC-32 of its class name, and the forge’s name records do not carry it (see forge archives). Level 01 holds 59 classes; 41 of them have a name in the Assassin’s Creed II schema of a community tool, the rest are known only by id unless a name below matches. Observed · level 01
The names below were checked by computing the CRC-32 of each name and comparing it with the stored id. Proven · the CRC-32 equals the id for every name listed
| Class | Id | Role | Id equals CRC-32 of the name |
|---|---|---|---|
GridCellDataBlock |
0xAC2BBF68 |
First object of a level cell; lists the cell’s objects | Proven |
Entity |
0x0984415E |
Placement and component list | Proven |
CompiledMesh |
0xFC9E1595 |
Vertex and index data of a mesh | Proven |
SKGenericMaterial |
0xB71F6261 |
The material class of every drawn surface | Proven |
TextureMap |
0xA2B7E917 |
A texture with its pixels | Proven |
CompiledTextureMap |
0x13237FE9 |
The pixel part of a texture, embedded in a TextureMap | Proven |
TextureMapSpec |
0x989DC6B2 |
A material’s reference to a TextureMap | Proven |
MeshShape |
0xB22B3E61 |
Triangle collision shape | Proven |
InertComponent |
0x0E5A450A |
Rigid body of a static prop | Proven |
RigidBody |
0x228F402A |
Embedded in an InertComponent | Proven |
CollisionFilterInfo |
0x43EF99C2 |
Collision layer box | Proven |
SWCollisionMaterial |
0xEF0C7E58 |
Surface type of a collision triangle | Proven |
SkyLight |
0x77EEEBB4 |
The level’s sun and ambient colour | Proven |
SWSkateGuidanceSystem |
0x5CDCA222 |
Grind edges of an entity | Proven |
SWSkateFreeFormGuidanceSystem |
0x359BE54E |
Free-form grind edges | Proven |
Animation |
0x0FA3067F |
Block-allocator class | Proven |
NavMeshManager |
0x0B4CE0E0 |
Block-allocator class | Proven |
RealTreeComponent |
0x7338CDF5 |
A procedural tree on an entity | Proven |
ActivateRealTreeGrowthEvent |
0xCB394D43 |
Event that grows the trees | Proven |
LightMapData |
0xAA9C9CB4 |
Baked light map reference | Proven |
VertexLightData |
0x37542FA0 |
Per-instance baked vertex colours | Proven |
CompositeLightingStaticComponent |
0x95DC9CD6 |
Baked spherical-harmonic lighting | Proven |
The executable is not packed (its .text section is stored whole on disk), and its disk image carries the class names as plain strings. Of the 244 classes of the objects the game loads from start-up into level 02 (see start-up), 242 have an id equal to the CRC-32 of a string of three or more characters in the executable; 0xE4365B9B and 0x824A23BA match none. Observed · the strings of the recorded executable against the classes of one run into level 02
The executable’s strings also include field and property names, so a string match names a class less surely than the class’s registration does. By such matches 0x3C6C77C8 (the box that begins every component) is ActiveSlots, 0x9C878790 is TransformationShape and 0x4497D578 is MeshShapeScalable. Inferred · one matching string each The surface-object classes other than SWCollisionMaterial are not known. Unknown
The material class name is present in the game executable; the CRC-32 of the name does not match the property hashes the material’s fields use, which are separate hashes of qualified names such as the InfluenceHidePixelMode property (0x7DACF81C). Observed
The role of each class is read from the contents of its objects in the cells. Observed