
Evidence at a glance
Loading source evidence…
What was done
This project provides a native Android port of Need for Speed Underground 2 by statically recompiling the original x86 binary into C code, utilizing DXVK for Vulkan graphics and custom touch controls.
The project implements a static binary recompilation of the Windows x86 executable SPEED2.EXE into native C code. The process translates over 27,700 functions into C99, which are then compiled for the Android ARM64 architecture. The runtime environment supports native execution on Android devices, replacing Direct3D 9 calls with Vulkan via an embedded DXVK Native port. The author reports that the game is playable on Android, featuring touch controls, gyroscope steering, and configurable frame rate limiters (30, 60, 120 FPS). Recent development includes porting core game protocols, such as roam and serialization, to Rust. The author addressed a 60 FPS slow-motion bug by modifying the guest QPC counter and expanding the maximum delta-time clamp multiplier. The port requires users to provide their own legitimate game files from a PC installation. Documentation notes that while the core gameplay is functional, specific limits and issue-driven changes are tracked in the repository's internal review logs. NFSU2-Revived-Android documents the build pipeline, which involves normalizing the executable, scanning for vtables and RTTI, and lifting assembly to C.
Reproduce it
Initialize the MSVC x86 environment, normalize the SPEED2.EXE binary, run vtable and RTTI scans, generate the function catalog, lift the assembly to C, and build the Android APK using the provided Gradle project.
Community
Ask a question, share what worked, or follow the next milestone.