@@ -17,9 +17,9 @@ time. On an M1 Pro, races run at **119 fps** (the display's limit), against
1717
1818> ** This repository contains no game code and no game assets.** It contains the
1919> recompiler and the runtime only. You need your own copy of the game. The C
20- > code generated from its executable is never committed. The prebuilt apps on
21- > the [ Releases page] ( https://github.com/TalhaMudo/NFSU2Recomp/releases/latest ) contain the recompiled program but no game files:
22- > on first launch you point them at your own installation.
20+ > code generated from its executable is never committed. The prebuilt app on
21+ > the [ Releases page] ( https://github.com/TalhaMudo/NFSU2Recomp/releases/latest ) contains the recompiled program but no game files:
22+ > on first launch you point it at your own installation.
2323
2424![ Race, native ARM64 build] ( screenshots/selected/27_20260924_current-race.jpg )
2525
@@ -35,7 +35,7 @@ The game boots, reaches the menus, and races are playable with sound.
3535| DirectSound → CoreAudio, DirectInput (keyboard, mouse) | working |
3636| Windowed, fullscreen, Retina-native and 1080p widescreen | working |
3737| Career mode: profile creation (name entry), save and load | working |
38- | Double-clickable ` .app ` (` ./pack.sh ` ) | working |
38+ | Double-clickable ` .app ` with a launcher window (` ./pack.sh ` ) | working |
3939| Optional "HD" build: MSAA (2× at 1440 lines and above, 4× below), SSR, ray-traced reflections | working, see ` GRAPHICS_RESEARCH.md ` |
4040
4141### Known limitations
@@ -107,6 +107,7 @@ out/nfsu2_boot ~35 MB arm64 Mach-O
107107| ` runtime/overrides.c ` , ` d3dx_hle.c ` | hand-written replacements for specific game functions |
108108| ` runtime/enhance.c ` | HD build only (` -DNFS_ENHANCED=1 ` ) |
109109| ` runtime/bundle.m ` , ` pack.sh ` | ` .app ` behaviour and packaging |
110+ | ` launcher/*.swift ` | the app's launcher window (Swift/SwiftUI): finds and checks the game, Original/HD, portable copy |
110111| ` tests/boot.c ` | program entry point (runs the game from its PE entry point) |
111112
112113## Verification
@@ -149,7 +150,7 @@ HD build draws about 18 W.
149150## Requirements
150151
151152- Apple Silicon Mac, macOS 11 or later. Developed on an M1 Pro, macOS 27.
152- - Xcode Command Line Tools (` clang ` ).
153+ - Xcode Command Line Tools (` clang ` ; ` swiftc ` for the launcher window ).
153154- Python 3 with ` capstone ` 5.x and ` pefile ` (` requirements.txt ` ).
154155- Rosetta 2, only for ` tools/fuzzisa.py ` .
155156- Your own installation of the game, with this exact executable:
@@ -187,10 +188,22 @@ tools/gen_v2.sh "$EXE"
187188./run.sh # windowed
188189./run.sh 1080p # 1920x1080, widescreen-corrected
189190./run.sh hd # HD build
190- ./pack.sh # out/NFSU2.app
191- ./pack.sh --hd # out/NFSU2 HD.app
191+ ./pack.sh # out/NFSU2.app: launcher + both engines (Original and HD)
192+ ./pack.sh --zip # also out/NFSU2.zip for a release
193+ ./pack.sh --embed # out/personal/NFSU2.app with your game inside (do not share)
192194```
193195
196+ The app opens a small launcher window first (` launcher/ ` , built by ` pack.sh `
197+ with ` swiftc ` ): it finds and checks ` SPEED2.EXE ` , offers Original or HD graphics
198+ and full screen, opens the saves and logs folders, and ** Make Copy…** builds a
199+ portable app with the game files inside (APFS clones, seconds on the same disk),
200+ so nobody needs ` pack.sh --embed ` or a terminal for that. Untick "Show this
201+ window when the app opens" to go straight into the game (hold Option to get the
202+ window back). ` NFSU2_SKIP_LAUNCHER=1 ` / ` NFSU2_ENGINE=original|hd ` do the same
203+ from scripts.
204+
205+ ![ Launcher window] ( screenshots/selected/launcher.png )
206+
194207` run.sh ` documents the environment switches; most are diagnostics.
195208
196209While playing, ** Cmd+Shift+D** writes the next frame as a PNG plus the full
@@ -204,8 +217,9 @@ a report.
204217** Can I play Need for Speed: Underground 2 on a Mac?**
205218Yes, on an Apple Silicon Mac (M1 or later) with your own copy of the PC game.
206219Download ` NFSU2.zip ` from the [ Releases page] ( https://github.com/TalhaMudo/NFSU2Recomp/releases/latest ) , or build the port as
207- described above (` ./pack.sh ` produces a double-clickable ` NFSU2.app ` ). Menus,
208- races, career saves and sound work.
220+ described above (` ./pack.sh ` produces a double-clickable ` NFSU2.app ` ). Open it,
221+ choose the game folder once, click Play. Menus, races, career saves and sound
222+ work.
209223
210224** Do I need Wine, CrossOver, Whisky, Parallels or a virtual machine?**
211225No. The game's code is recompiled to native ARM64 and runs directly on macOS.
@@ -217,12 +231,21 @@ against 10–15 fps under Wine 11.18 with Rosetta 2, and 119 fps against 45 fps
217231in the 3D menus. Method and raw numbers are in ` WINE_COMPARISON.md ` .
218232
219233** Is there a ready-made download?**
220- Yes: the [ Releases page] ( https://github.com/TalhaMudo/NFSU2Recomp/releases/latest ) has ` NFSU2.zip ` (standard build) and
221- ` NFSU2.HD.zip ` (MSAA, ray-traced reflections). Neither contains game files; on
222- first launch the app asks for the folder that holds your own ` SPEED2.EXE ` . The
223- app is not notarized, so after moving it to Applications run once:
234+ Yes: the [ Releases page] ( https://github.com/TalhaMudo/NFSU2Recomp/releases/latest ) has ` NFSU2.zip ` . The app holds both
235+ graphics modes, Original and HD (MSAA, ray-traced reflections), chosen in its
236+ window; older releases had a separate ` NFSU2.HD.zip ` . It contains no game files:
237+ the window asks for the folder that holds your own ` SPEED2.EXE ` .
238+ The app is not notarized, so macOS blocks the first start: open System Settings ›
239+ Privacy & Security and click ** Open Anyway** (on macOS 14 and older: right-click
240+ the app › Open). If macOS says the app is damaged, run once in Terminal:
224241` xattr -dr com.apple.quarantine /Applications/NFSU2.app `
225242
243+ ** Can I carry the game to another Mac in one piece?**
244+ Yes. In the app's window, ** Make Copy…** creates "NFSU2 Portable.app" with the
245+ game files inside (about 1.4 GB). It runs on its own; saves stay in
246+ ` ~/Library/Application Support/NFSU2 Saves ` on each Mac. It contains the game,
247+ so keep it for yourself.
248+
226249** Which version of the game does it need?**
227250The Windows PC version, with the exact ` SPEED2.EXE ` listed under
228251[ Requirements] ( #requirements ) . Other builds, including the console versions,
0 commit comments