Categories
Development High Stakes Research

Research: MCO .frd file format

1. File Type: .FRD in MCO

  • Format name: .FRD (same extension as in NFS3/NFS4)
  • Purpose: Contains 3D geometry, instance data, and object references for complete tracks

2. Core Structure: DEADBEEF Blocks

  • Marker: Every significant block starts with the 4-byte value 0xDEADBEEF
  • Immediately following:
    • +4 bytes → block_type (typically 0x00000000, exact meaning unknown)
    • +8 bytes → object_id (4 bytes, varies; likely a unique identifier)
  • Block size: Minimum of 12 bytes (often 32–64 bytes or more)
  • Occurrences: Numerous, regularly spaced throughout the file
  • Interpretation: These blocks likely define objects, instances, or spatial elements within the track

3. basename from info.ini

TrackbasenameHexOccurrences in .FRD
Tr112000x04B025
Tr213000x051429
Tr311000x044C18
  • Every track’s info.ini defines a basename=XXXX value
  • This value (as 16-bit Little Endian) appears multiple times inside the .FRD file
  • Each occurrence is embedded in structured binary patterns
  • Nearby bytes show repetitive layouts and fixed patterns, suggesting instancing or referencing logic

4. Structure Around basename Values

  • Multiple references per track
  • Repeated binary layout:
    • Frequent values like 00 00, 05 00, 38 00, 88 00, etc.
    • Patterns suggest 2-, 4-, or 16-byte groups
  • Likely represents an instance or placement table for objects using the basename ID

5. Structural Consistency Across Tracks

  • DEADBEEF blocks appear in all .FRD files analyzed
  • basename values always referenced multiple times
  • Block structure, layout, and repetition are consistent across all three tracks

Summary of Confirmed Roles

ElementRole / Purpose
info.iniDeclares basename, which is used as a reference in .FRD
.FRDBinary container for objects, references, geometry
DEADBEEFMarker indicating start of significant block
block_type(Mostly 0x00) — possibly object class or type flag
object_idUnique object or instance identifier
basenameKey identifier used throughout the binary for object grouping or lookup