Cloned Games

NFS Recompiled

SporadicPlayableLinux
NFS Recompiled screenshot

About

Need for Speed II (1997) and Need for Speed III: Hot Pursuit (1998) are the second and third games in Electronic Arts' Need for Speed racing series, released for PlayStation and Windows; Hot Pursuit made police pursuits a major part of gameplay. NFS Recompiled is a static recompilation of Need for Speed II: Special Edition and Need for Speed III: Hot Pursuit from their original Win32 executables into portable C++ that runs natively on Linux. A Python disassembler emits C++ that runs on a virtual x86 CPU, backed by reimplementations of 18 Win32 API modules and an SDL2/OpenGL layer that translates 3Dfx Glide calls into OpenGL. The author calls it a toy project, but says it works.

How it differs from the original

It replaces the original Windows runtime (DirectX, Glide) with SDL2 and OpenGL so the games run natively on Linux; the game data itself must still come from the original CDs.

Getting started

Install the game from the original CD (on Linux via Wine) and copy the CD's Fedata and GameData folders into the install directory, then run the executable with zero, one or two path arguments pointing to the install and CD data. Building from source needs CMake, a C++17 compiler, SDL2, OpenGL and NASM; pre-generated C++ is included, so the original executables are only needed to regenerate it.

Known limitations

  • project-status: Toy/experimental static recompilation project; README and CMakeLists mostly AI-generated.
Requires original assets. Requires original game installation from Need for Speed II: Special Edition or Need for Speed III: Hot Pursuit CD-ROM.

Media

Additional notes

Disclaimer
The author notes that the README and CMake build files were mostly AI-generated.
Build option
A strict 80-bit FPU emulation build option is required to avoid NFS III software-renderer glitches on Linux.
Share:

We’d like to use analytics cookies to understand how visitors use this site. See our Privacy Policy for details. Nothing else is tracked, and the site works the same either way.