# 📋 RR3 Asset Manifests

## Overview

These manifest files were extracted from the Real Racing 3 APK (v12.6.0 or similar). They contain the complete list of game assets that need to be downloaded from EA's CDN servers.

## Manifest Format

Each manifest file contains one asset per line with the following format:

```
/path/to/asset.ext<TAB>md5hash<TAB>compressed_size<TAB>uncompressed_size
```

**Example:**
```
/data/events.dat.nct	0a21c68abefbfcac00e7387f025e8012	14461497	14461497
```

### Fields:
- **Path**: Asset file path (relative to CDN root)
- **MD5**: MD5 checksum for integrity verification
- **Compressed Size**: Size in bytes when compressed
- **Uncompressed Size**: Size in bytes when decompressed

## Manifest Categories

### Base Assets (`asset_list_base.txt`)
Core game data including:
- Game configurations
- Menu transitions
- Camera tweaks
- Career data (`/data/events.dat.nct` - 14MB!)
- Championship definitions
- Job system data

### Audio Assets (`asset_list_audio*.txt`)
- Engine sounds
- UI sounds
- Ambient audio
- Music tracks

### GUI Assets (`asset_list_base_gui*.txt`)
- Menu backgrounds
- UI elements
- Icons and buttons
- HUD components

### Car Groups
Each racing series has its own manifest:
- `asset_list_group_formula_1_assets.txt` - F1 cars (17KB of assets!)
- `asset_list_group_formula_e_assets.txt` - Formula E
- `asset_list_group_nascar_assets.txt` - NASCAR
- `asset_list_group_gt3_assets.txt` - GT3
- `asset_list_group_endurance_*.txt` - Endurance racing
- `asset_list_group_legend_assets.txt` - Classic cars
- And many more...

### Season Assets
- `asset_list_group_season_1_assets.txt` through `season_5_assets.txt`
- Season-specific content and events

## Usage for Asset Preservation

### Step 1: Parse Manifest
```csharp
var lines = File.ReadAllLines("asset_list_base.txt");
foreach (var line in lines)
{
    var parts = line.Split('\t');
    var path = parts[0];
    var md5 = parts[1];
    var compressedSize = int.Parse(parts[2]);
    var uncompressedSize = int.Parse(parts[3]);
    
    // Download from: https://cdn-rr3.ea.com{path}
    // Verify with MD5 hash
}
```

### Step 2: Download from EA CDN
The base URL for EA's CDN is typically:
```
https://cdn-rr3.ea.com
```

Full asset URL would be:
```
https://cdn-rr3.ea.com/data/events.dat.nct
```

### Step 3: Verify Integrity
After downloading, calculate MD5 and compare with manifest:
```csharp
using var md5 = MD5.Create();
using var stream = File.OpenRead(assetPath);
var hash = BitConverter.ToString(md5.ComputeHash(stream))
    .Replace("-", "")
    .ToLower();
    
if (hash == expectedMd5)
{
    // Asset valid!
}
```

## Critical Assets

### Highest Priority (Game Won't Work Without These):
1. `/data/events.dat.nct` (14.4 MB) - All race events
2. `/data/jobs.bin.nct` (3.5 MB) - Job system
3. `/data/championships.bin.nct` (157 KB) - Championships
4. `/camTweaks.dat` (131 KB) - Camera configurations
5. `/data/gtlt.bin.nct` (688 KB) - Core game logic tables

### High Priority (Major Features):
- Formula 1 assets (17 KB manifest = ~500+ MB actual data)
- Base GUI assets (game menus)
- Audio base (engine sounds)

### Medium Priority (Enhanced Experience):
- Track-specific assets
- Car liveries
- Additional racing series

## Asset Statistics

Based on the manifests extracted:

- **Total Manifest Files**: 1,236 files
- **Car Groups**: ~25 racing series
- **Seasons**: 5 seasons of content
- **Estimated Total Assets**: 10,000+ individual files
- **Estimated Total Size**: 2-5 GB when fully downloaded

## Implementation Plan

### Phase 1: Automatic Download (While EA Servers Active)
1. Parse manifests on server startup
2. Create database entries for all assets
3. On first request, proxy to EA CDN
4. Cache locally and serve
5. Verify MD5 integrity

### Phase 2: Manual Upload (After EA Shutdown)
1. Community members share their cached game data
2. Upload via web panel
3. Verify MD5 matches manifest
4. Share with all players

### Phase 3: Complete Preservation
1. All critical assets cached
2. Game fully playable offline
3. Community-hosted forever!

## Legal Notice

⚠️ **Important**: These assets are copyrighted by Electronic Arts Inc.

- ✅ **Allowed**: Personal game preservation after EA shutdown
- ✅ **Allowed**: Hosting for players who own the game
- ❌ **Not Allowed**: Public distribution for piracy
- ❌ **Not Allowed**: Commercial use

Users must own Real Racing 3 to use community servers.

## Next Steps

1. Implement `AssetsController` with manifest parsing
2. Add automatic CDN proxying
3. Create web UI for asset management
4. Start caching critical assets
5. Share with community!

---

**Generated**: February 2026  
**Source**: Real Racing 3 APK v12.6.0  
**Purpose**: Game Preservation After EA Shutdown (March 2026)
