Need for Speed: Most Wanted (2005),
rebuilt in Unity

A from-scratch rebuild of the PC game, written by reverse-engineering the original speed.exe function by function. It runs on your own installed copy: Rockport, the cars, the menus, the career scripts, the sounds and the cutscenes are read from your game folder while it plays.

You need your own copy of the game. This project contains no game content: no textures, models, audio, music, video, data files or executable. It reads them from your installation at runtime and never modifies them.
The prologue race against Razor in the BMW M3 GTR, running in the rebuild

Status

Coverage is measured against the original executable: every function in speed.exe is tied to its original source file through the symbol table, then to the Unity code that ports it.

98%of the game's code ported (effective, by code size)
80%ported function for function; the rest partial, nothing missing
2.35 MBof game code in speed.exe v1.3, across 900+ original source files
9 + 55automated play tests and screenshot-tour shots, run on every build

By subsystem

Effective share ported, largest subsystems first (size of the original code in brackets).

The remaining partial code is mostly memory management, file loading and debug paths that Unity replaces, each accounted for function by function in the coverage report.

Screenshots

The rebuild running on the original data. Everything you see is drawn from the game's own files.

What it can do

A playable offline game from the press-start screen to the top of the Blacklist.

Career

  • The original career scripts (Lua) drive every race and story beat
  • All 16 Blacklist bins, boss races, rival flow, milestones and bounty
  • The prologue, story movies with subtitles, SMS and cell calls
  • Safehouse, car lot, impound and stable heat

Races

  • Circuit, sprint, lap knockout, tollbooth, speed trap and drag
  • The game's start grids, checkpoints and trigger volumes
  • AI racers on the original road network, catch-up and skill rules
  • Race intros, countdown, photo finish and results

Police

  • Heat levels, formations, roadblocks, spike strips and the helicopter
  • Pursuit breakers, hiding spots, cooldown and busted/evade
  • Cops chase AI racers too, as in the original
  • Dispatch and cop radio speech from the game's own scripts

Driving

  • The racer physics: engine, gearbox, tyres, aero and nitrous
  • Speedbreaker, damage, blown tyres and resets
  • Traffic, trucks with trailers and smashable props
  • Cutscene cars on the original animation tracks

World and graphics

  • All of Rockport, streamed section by section like the original
  • Ports of the game's shaders: car paint, reflections, road shadows, motion blur, sun and fog
  • Weather, rain and the time-of-day lighting
  • Car parts, levels of detail, body animation and flat tyres

Front end and HUD

  • The game's own UI engine (FEng) running its menu packages
  • Customization: parts, paint, vinyls, performance, cart
  • HUD, minimap, pursuit board, world map, rap sheet
  • Quick race, Challenge Series, options and controls

Audio

  • EA's sound-script interpreter (AEMS) running the original car sound programs
  • Engine synthesis, collisions, skids, wind, rain and thunder
  • The interactive pursuit music and the licensed soundtrack
  • Cutscene sound and the original mixer

Multiplayer

  • Two-player split-screen races
  • LAN races between PCs

Modding

  • Export textures to PNG and models to OBJ
  • Replacements load from a Mods folder
  • Your game files are never changed

How it works

Nothing from the game is converted or shipped. The rebuild opens your game's files the way speed.exe does and runs a re-implementation of the original code on top of Unity.

Reverse engineering

Each system was reversed from the v1.3 executable with Ghidra and a disassembler, cross-checked against a public decompilation project of the GameCube build where one exists. The PC code wins wherever they differ. Every ported function cites the address it follows.

Faithful first

The goal is 1:1 behaviour, even where the original looks rough. Where Unity replaces something (PhysX contacts, memory management), the exact deviation is written down in the specs.

Tested on every build

Play tests drive a career race, the Challenge Series, the prologue, split screen, LAN and the handling numbers. A screenshot tour then visits 55 menus and moments of the game.

Set it up with your game

You need Need for Speed: Most Wanted for PC, installed and patched to v1.3, plus Unity to build the rebuild.

  1. Install the game from your own disc or download and apply the v1.3 patch. Note its folder: the one that contains GLOBAL, TRACKS, CARS, FRONTEND and speed.exe. The retail default is C:\Program Files (x86)\EA GAMES\Need for Speed Most Wanted.
  2. Install the tools: Unity 6000.4.2f1 from Unity Hub, Git, and the .NET 8 SDK if you want the mod tool.
  3. Get the source:
    git clone https://github.com/MagicIbrar/nfsmw-unity.git
  4. Point it at your game. Create NFSMWUnity/gameroot.txt containing your game folder, for example:
    D:\Games\Need for Speed Most Wanted
    The rebuild looks in this order: -gameRoot "<folder>" on the command line, gameroot.txt next to the player (or next to Assets in the editor), the NFSMW_ROOT environment variable, then the retail default folder.
  5. Run it in the editor: open the NFSMWUnity folder in Unity Hub, open Assets/Scenes/FreeRoam.unity and press Play.
  6. Or build a player: menu NFSMW > Build Windows Player. It goes to NFSMWUnity/Build/NFSMWUnity; put a gameroot.txt next to NFSMWUnity.exe and run it.

Controls

KeyboardAction
W / Up, S / DownThrottle, brake and reverse
A D / Left RightSteer
SpaceHandbrake
N or Left CtrlNitrous
XSpeedbreaker
RReset the car
C / BChange camera / look back
Enter / EscAccept and start events / pause, back, skip cutscenes

Gamepads work too. Split screen and LAN are described in the project README.

Modding

Replace any car, world, menu or HUD texture, and any model, without touching the game's files.

1 · Export

The mod tool decodes the game's textures to PNG and its models to OBJ (with materials), ready for any image editor or Blender.

2 · Edit

Repaint a texture at any size, or reshape a model. OBJ files open upright in Blender in the game's own coordinates.

3 · Drop into Mods

ModTool import checks your file and puts it in the Mods folder. The rebuild loads it in place of the original; delete it to undo.

ModTool export-textures CARS/BMWM3GTRE46 C:\nfsmods\bmw
ModTool import C:\nfsmods\bmw\CARTEXTURES\BMWM3GTRE46_BADGING.png --pack CARTEXTURES --from CARS/BMWM3GTRE46
ModTool export-models CARS/GTI C:\nfsmods\gti GTI_KIT00_BODY_A
ModTool import C:\nfsmods\gti\GTI_KIT00_BODY_A.obj --from CARS/GTI

Naming rules, the coordinate frame and the limits are in MODDING.md. Please share mods as your own work only; do not redistribute the game's original files.

About the game

Need for Speed: Most Wanted was developed by EA Black Box and published by Electronic Arts in November 2005, for PC, PlayStation 2, Xbox, GameCube and as a launch title for the Xbox 360.

Rockport

An open city of three boroughs (Rosewood, Camden Beach and Bayview), linked by highways and full of police, traffic and smashable pursuit breakers.

The Blacklist

Fifteen of the city's most wanted street racers. You start at the bottom after Razor takes your BMW M3 GTR, and climb by winning races, earning bounty and completing pursuit milestones before facing each rival.

Pursuits

The police are the heart of the game: heat rises from patrol cars to rhinos and the helicopter, with roadblocks and spike strips. Escape, find a hiding spot and survive the cooldown, or get busted and impounded.

Modes

Career, Quick Race (circuit, sprint, lap knockout, drag, tollbooth, speed trap) and the Challenge Series of pursuit and race challenges, plus split-screen and online/LAN play.

Its look

A golden, hazy colour grade, bloom and motion blur, with live-action cutscenes blended with 3D. The rebuild keeps those visuals exactly as the original draws them.

This rebuild's target

The PC version, executable v1.3 (speed.exe). Online play is out of scope; LAN is re-implemented.

Credits

Team Vanilla

Thank you for your help with this project and the GitHub repository.