📈 GH Trending Explorer 🎲 Surprise me

← all repos

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