NFS Underground 2 Recompiled

codepdbh’s recompiled SPEED2.EXE, released as Underground 2 Android Evolved: download v0.14.13, copy your PC files, and what phones get.

  • v0.14.13
  • SPEED2.EXE → C
  • 27,742 functions
  • 222,245 downloads
A Bayside Blue Nissan Skyline GT-R R34 parked on a Tokyo street at night
Nissan Skyline GT-R R34, Tokyo
Advertisement

codepdbh/nfsu2-recompiled is the oldest and most active of the three: started October 6, 2026, 11 releases in this data, 222,245 downloads and issue numbers past #2833. It recompiles the PC SPEED2.EXE of Need for Speed: Underground 2 into C and ships it for Android as Underground 2 Android Evolved.

This site does not explain how to obtain game files. The port needs your own installation of the PC game; the APKs contain none.

Download Underground 2 Recompiled v0.14.13

Published November 6, 2026, 14:38 UTC. arm64 for nearly every phone; ARMv7 only for 32-bit Android (not yet tested on a phone by the project).

FileSizeBytesSHA-256
NFSU2-AndroidEvolved-v0.14.13-arm64.apk70.4 MB70,358,899b7e044cbbe2a9df2e2e8cb5873f4207b161790f484222b242df28f536855bf80GitHub
NFSU2-AndroidEvolved-v0.14.13-armeabi-v7a.apk80.8 MB80,848,973807d7f730b85296e7624db44136034dba8518674b7f0e15518f2d509c1af89aaGitHub
NFSU2-v0.14.13-SHA256SUMS.txt218 bytes218f534042b56501fc3ce0bf2026e29c0da109f5a2431701a05d4750ff5f1c1930cGitHub

In v0.14.11 both APKs are the same 70,369,847-byte arm64 file (identical SHA-256). If you installed that “armeabi-v7a” APK on a 32-bit phone and it would not open, use v0.14.13.

What’s new in v0.14.13

  • Complete file reads: the most likely cause of repeated crashes when loading areas and menus is fixed.
  • PowerVR fallback for MediaTek phones whose Vulkan driver failed at the first graphics pipeline.
  • Less clipping in the mixer, game threads pinned to the big cores, and the A button doubles as Enter while driving.
  • Tested at 120 FPS on a Samsung Galaxy S25 (arm64); the ARMv7 build has not been tested on a phone.

v0.14.12 fixed lights and reflections drawn as streaks and made the launcher say which file is missing. v0.14.10 made sound steadier on MediaTek, Mali and Unisoc (a 40–100 ms audio buffer instead of 4–10 ms) and stopped looping sound on loading screens.

Performance on real phones

PhoneSourceResultNotes
Galaxy S25 (arm64)v0.14.13120 FPSProject test in the release notes
Galaxy S24 Ultra, Snapdragon 8 Gen 3README35–51+ FPS at 1170×540Race against AI with the touch HUD
Redmi Note 8v0.14.720 → 28 FPS (~25,000 draw calls); 28 → 34–36 FPS (~19,000)Same race before and after the thread-handover fix

The v0.14.7 profile found the drawing thread idle 56% of the time, waiting for its turn on the shared emulated CPU; handing over less often gave the gains above. v0.14.8 removed a linker option that crashed v0.14.7 at start on Android 13 and newer (16 reports) while keeping the speed-up.

Project status

ComponentStateDetails
C generationDone27,742 functions, about 8.9 million lines of C, 0 lift failures
Windows hostDoneMSVC x86, about 4.5 minutes on 16 threads; intros and menus with keyboard and controller
Cars and visualsWorkingCars, vinyls and headlights render (16-bit signed flag fix)
RacesPlayableResort Loop and Quick Races; steering, nitrous, AI traffic
Android ARM64PlayableTouch controls, audio, clean background and resume
Frame limiter and scalerDone30/60/120 FPS caps, 25%, 50%, 75%, native and 720p resolution

Copying your PC game to the phone

Advertisement
Internal storage/nfsu2/       ← /sdcard/nfsu2
  SPEED2.EXE                ← from your own PC installation
  GLOBAL/  TRACKS/  CARS/  FRONTEND/  LANGUAGES/  MOVIES/  SOUND/  …
  WidescreenFix.dat         ← optional (proportional HUD)
  android_registry.dat      ← the game’s video options, written by the port

Open NFSU2 Android Evolved, grant file access, choose language, resolution and FPS cap, and launch. Graphic options set in the game are kept between starts since v0.14.9 (resolution and anti-aliasing stay under the launcher’s control, so a value that crashes a phone does not crash it every start). Step-by-step for all three ports: install guide.

Touch controls

A drag-and-drop editor with button scaling and saved layouts; Clásico, Xbox and PlayStation styles; gyroscope tilt steering; dedicated steering, handbrake, nitrous, brake/reverse and throttle buttons. Since v0.14.8 the controls hide again as soon as you keep playing with a Bluetooth or USB pad. See controllers.

Which phones are reporting

From the 93 most recent reports with device data on November 9, 2026 (the launcher’s report form fills it in):

Chip makerReportsShare
MediaTek3840%
Qualcomm Snapdragon2931%
Unisoc1415%
Other99%
Samsung Exynos33%

Android versions from 10 to 17; most reports are on v0.14.13. The release notes list as still open: frame drops after a few seconds on some Snapdragon 8 Gen 3 and Dimensity phones, and external controller buttons that are not detected.

Building from source

The README’s pipeline: initialise MSVC x86, normalise SPEED2.EXE (restores the relocation directory without changing the original), scan vtables and RTTI for seeds, build the function catalog (about 5 minutes), lift to C (about 90 seconds), then scripts/build.sh and scripts/run.sh for the Windows host or ./gradlew assembleDebug in android/ for the APK. The tooling is MIT-licensed; no game code is in the repository.

Release history

ReleasePublishedTitleDownloads
v0.14.13November 6, 2026—13,815
v0.14.12October 30, 2026—36,513
v0.14.11October 27, 2026—23,561
v0.14.10October 23, 2026sonido46,480
v0.14.9October 20, 2026opciones gráficas guardadas47,336
v0.14.8October 19, 2026mandos y compatibilidad10,391
v0.14.7October 16, 2026rendimiento14,556
v0.14.6October 16, 2026estabilidad y cache grafica2,127
v0.14.5October 15, 2026—6,548
v0.14.4October 15, 2026Mandos Bluetooth1,931
v0.14.3October 13, 2026—18,987

All three Need for Speed recompilation projects automatically hide on-screen touch buttons as soon as a Bluetooth or USB-C gamepad connects, giving you real analog throttle and steering for Canyon/Drift events and Level 5 pursuits:

ControllerBest ForWhy It Fits NFS RecompLink
Xbox Wireless ControllerAndroid Bluetooth & Windows XInputMatches original Xbox 360 Most Wanted button prompts & trigger travelView on Amazon →
Sony DualSenseAndroid 10+ & PC Bluetooth playInstant Android HID recognition + smooth L2/R2 analog throttleView on Amazon →
GameSir Cyclone 2Zero-drift 1000 Hz racing controlHall Effect analog triggers + TMR sticks + Bluetooth for Android & PCView on Amazon →
8BitDo Ultimate 2 WirelessMulti-device wireless + charging dockWorks across Android Bluetooth and Windows 2.4 GHz with Hall/TMR sticksView on Amazon →

As an Amazon Associate, this site earns from qualifying purchases.

Advertisement
A wet city street at night with shop lights reflecting in a puddle
A city street after rain, at night
The BMW M3 GTR race car in white, blue and red livery at the BMW Museum in Munich
BMW M3 GTR, BMW Museum, Munich
Red and white light trails from traffic on a curving highway at night
Traffic on a highway at night, long exposure

Frequently asked questions

What is nfsu2-recompiled?

codepdbh/nfsu2-recompiled is a full static recompilation of Need for Speed: Underground 2’s PC executable, SPEED2.EXE (x86-32), into portable C with an enhanced fork of pcrecomp. The C is compiled for Android ARM64 and ARMv7, with Direct3D 9 translated to Vulkan by an embedded port of DXVK Native. No JIT, no virtual machine.

Can I download NFS Underground 2 Recompiled for Windows?

No prebuilt Windows version is published; the releases are Android APKs. The README’s pipeline builds a native Windows host from your own game with MSVC x86, Python 3 (capstone, pefile, unicorn, keystone-engine) and pcrecomp with the project’s eleven patches.

Which SPEED2.EXE does it support?

The tested build is 4,800,512 bytes with SHA-256 f9dd86c054878ce6276beb07c1fd61874f7a1e4bf1f241b084c65b73e24168a7 (embedded date February 9, 2005). Widescreen hooks are tied to that exact code; another build (such as the one used by the R36S handheld port) needs its own hook table.

Where do I put the game on the phone?

Copy your PC installation (SPEED2.EXE, GLOBAL, TRACKS, CARS, FRONTEND, LANGUAGES, MOVIES, SOUND and the rest) into Internal storage/nfsu2. No online mod is needed. Then open NFSU2 Android Evolved, grant file access, choose language, resolution and FPS cap, and play.

Why does the launcher keep PLAY disabled?

Since v0.14.12 it says what is missing instead, for example a language file LANGUAGES/<language>.bin. The WidescreenFix.dat warning is optional and does not block playing (#2253).

Is there a handheld version?

Yes, separately: Manuel Peña’s nfsu2-recompiled-r36s ports it to the R36S handheld, listed as a contributor project in the README.