Tdu2 Unpacker [Fast - 2025]

| Offset | Size | Type | Description | |--------|------|------|-------------| | 0x00 | 4 | uint32 | Unknown Magic (0x00020000 for TDU2) | | 0x04 | 4 | uint32 | Version (0x00000011 = 17) | | 0x08 | 8 | uint64 | Index Table Offset (usually 0x100) | | 0x10 | 8 | uint64 | Index Table Size (entries) | | 0x18 | 8 | uint64 | File Count | | 0x28 | 4 | uint32 | String Table Offset | | 0x2C | 4 | uint32 | String Table Size | Each file is represented by a 0x40-byte entry.

1. Abstract Test Drive Unlimited 2 (TDU2) stores its game assets (models, textures, sounds, scripts) within proprietary archive formats. The primary format is *.big files (a generic container also seen in other Atari/Eden Games titles). This report details the reverse engineering process and implementation of an unpacker capable of extracting these files. 2. File Format Analysis (Bigfile Format) Initial analysis via hex dump reveals a standard structure: Header, Index Table, and Data Blocks. 2.1. Header Structure (First 256 bytes) The header is 0x100 bytes long and lacks a traditional magic number (e.g., "BIGF") but contains a version identifier and table offsets. tdu2 unpacker

def parse_header(self): self.handle.seek(0x08) self.index_offset = struct.unpack('<Q', self.handle.read(8))[0] self.file_count = struct.unpack('<Q', self.handle.read(8))[0] | Offset | Size | Type | Description