File Format Overview - thethiny/NRS-Asset-Manager GitHub Wiki
File Format Overview
NRS games use a custom engine derived from UE3. Assets are stored as compressed .xxx packages containing a Midway-format UPK.
Common Elements
All games share:
- Magic:
0x9E2A83C1(UE3 standard) - Block compression: Oodle codec with 128KB chunk size
- Table structure: Name table (string pool) + Import table (external refs) + Export table (objects)
- Property system: UE3 serialized properties (
StrProperty,IntProperty,StructProperty, etc.)
Per-Game Formats
See the detailed format pages:
- Injustice 2 Format — 100-byte header, flat compressed chunks, TFC textures, Verified structs
- MK11 Format — 104-byte header, named packages, PSF external data
Header Identification
Offset 0x00: Magic (u32) = 0x9E2A83C1
Offset 0x04: FileVersion (u16) — identifies the engine version
Offset 0x0C: MidwayTeamFourCC (char[4]) — game identifier
| Game | FileVersion | FourCC | BranchVersion |
|---|---|---|---|
| IJ2 | 732 (0x2DC) | DCF2 | DDEV |
| MK11 | 769 (0x301) | MK11 | MAIN |
Table Entry Comparison
| Field | MK11 Export (76B) | IJ2 Export (72B) |
|---|---|---|
| ClassIndex | i32 resolve | i32 resolve |
| SuperIndex | i32 resolve | i32 resolve (at pos 2, not 5) |
| OuterIndex | i32 resolve | i32 resolve (at pos 3, not 2) |
| ObjectName | FName (i32+u32) | FName (u32+u32) |
| ArchetypeIndex | — | i32 |
| ObjectFlags | u64 | u64 |
| GUID | 16 bytes | 16 bytes |
| Size+Offset | u32+u64 | u32+u64 |
| ComponentMap | — | u32 count + entries |
| ExportFlags | — | u32 |
See Format Comparison for the full side-by-side analysis.