codepdbh / nfsu1-recompiled
git clone https://github.com/codepdbh/nfsu1-recompiled.git
v0.2.5 · today
Need for Speed Underground (2003) statically recompiled to native code for Windows and Android — no emulator. Requires your own copy of the game.
—
stars, 24h
+34
stars, 7 days · #1,195
+34
stars, 30 days · #8,177
34
★ total · +34% this week
1
forks · 100 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC++
License—
Created2026-10-13 (7d ago)
Last pushtoday
Watchers2
OwnerUser
Links
README excerpt
# Need for Speed Underground — Recompiled ### Android downloads / Descargas Android Underground 1 v0.2.5 | APK | Architecture | |---|---| | ARM64 / 64 bits | arm64-v8a, recommended | | ARMv7 / 32 bits | armeabi-v7a; requires Android with 32-bit app support | Android 10+ and Vulkan 1.1+. Both APKs use the same package and signing key; install the architecture supported by your device. Original game data is required. Audio, pacing and validation details: runtime follow-up. Issue-driven changes and remaining limits: 16 October review. **English · Español** --- ## English A **static recompilation** of *Need for Speed Underground* (2003, PC patch 1.4, `Speed.exe`) into native code, built on the toolchain that already runs **Need for Speed Underground 2 Recompiled** natively on Windows and on Android ARM64. The x86 executable is translated function by function into C with a patched pcrecomp (lift32), then compiled for the target. **No emulator, no Wine, no JIT**: the game's own logic runs as native code, and the graphics go through Direct3D 9 (DXVK on Vulkan on Android). > **You need your own copy of the game.** This repository contains **no game files and no code generated from the game**. Everything derived from `Speed.exe` is produced locally from your installation and is never committed. ### Goals - **Windows** (x86) native host as the validation platform. - **Android ARM64 and ARMv7** APKs with launcher, touch controls, gamepad support, resolution scaling, FPS limiter and native widescreen — like the NFSU2 port. - A **shared base** for future ports, without merging unrelated recompilation paths (x86 here, PowerPC/Xbox 360 for Most Wanted). ### Status | Stage | State | |---|---| | Executable analysis (`Speed.exe` 1.4, SHA-256 `c0fad450…c074b7`) | ✅ Direct3D 9, 254 imports (87 % shared with NFSU2), no RTTI, no relocations | | Function catalog | ✅ 22,751 functions; seeds from aligned data pointers and 191 vtables | | Lift to C | ✅ 0 lift failures, 3 hand-written overrides (CPU probe, CRT memmove) | | Windows host: build and link | ✅ | | Sound-bank code (x86 routines inside EA `.abk` banks) | ✅ 23 distinct blocks lifted ahead of time, matched by content at run time | | Windows host: boot | ✅ intro videos, front end, profile load, story-mode video | | First frame, menus, races | 🔧 menus reached; races not tested yet | | Android APK | 🔧 arm64 build installs and reaches the menus | | Widescreen | ⏳ | ### Layout [code] ### Building (Windows) Requirements: Visual Studio (MSVC x86), Python 3 with `capstone` and `pefile`, and a checkout of the patched `pcrecomp` next to this folder (patches in the NFSU2 repository, `patches/pcrecomp`). [code] The host looks for `Speed.exe` in a `Need for Speed Underground` folder next to it (or pass `--game-root`). ### Credits - **pcrecomp** — the static recompiler this project builds on. - **DXVK** — Direct3D 9 on Vulkan (Android). - The **NFSU2 Recompiled** project, whose runtime and tooling are reused here. Need for S