He moved Need for Speed Underground 2 into a browser to race his brother again
The fan project turns an old PC executable into WebAssembly, while keeping the source toolchain distinct from the commercial game files needed to build your own server.

Two brothers wanted to play an old racing game together again. The result now has a browser start page, online races and a source repository explaining how a Windows executable became something Chrome and Firefox can run.
“My brother and I played this game together about 20 years ago,” the maker writes on Underground 2 Revived. Moving it to the browser was a way to play together again. “It got a bit out of hand,” he adds, which is certainly one description for giving a reunion its own WebGPU renderer.
The project runs the PC game’s code through static recompilation. Its repository describes translating x86 functions into C ahead of time, then compiling that into WebAssembly. The browser runs the resulting module, with Direct3D 9 graphics reimplemented over WebGPU and sound delivered through Web Audio.
That is a different route from rebuilding a similar-looking racing game from scratch. The old program’s functions are being translated for a new execution environment, with replacement implementations of the Windows services it expects. The browser gets more than a picture of the old game; it has to support the behavior underneath it.
The technical foundation is Talha Müderrisoğlu’s NFSU2Recomp. This browser fork says it uses the upstream project’s MIT-licensed version from October 16, 2026. That describes the permission for the tool code in that version. It doesn’t turn Need for Speed Underground 2 into a freely licensed game.
For a self-hosted build, the instructions require your own North American PC copy patched to version 1.2, including an exact executable of 4,800,512 bytes. They provide a SHA-256 digest to identify it. Other versions won’t work, according to the README, so an arbitrary disc image and a familiar filename are insufficient.
The repository says it contains none of the game’s code or data and is unaffiliated with Electronic Arts. Generated C and the compiled module are kept out of version control because they are made from the game. Hosted play and assembling your own server are separate routes with separate practical requirements.
The Rust server serves the page, the module and the game folder, and connects players for multiplayer. The README says players reaching the same server can meet in free roam; other machines need an HTTPS context for the shared deployment. A reunion now has infrastructure, naturally.
The hosted start page offers save import and export, controller settings, and separate online controls. Those give the revival a more practical life than a one-off screenshot. Actual browser compatibility, performance and multiplayer reliability still depend on the player’s machine and the server; the port’s existence doesn’t settle those for every family reunion.
The reunion acquired a server.