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.