How victorgbd/nfsmw-recompiled works
NFSMW Recompiled runs a statically translated native game, with this fork adding an Android frontend and graphics paths plus a Linux game launcher. The Android user configures the game, selects a game image and options, then starts the native runtime; touch controls can send input through a JNI bridge. The Linux launcher provides a separate game-import and launch interface. Source excerpts are partial, so some documented runtime capabilities are shown without speculative call edges.
Main entry points: SetupActivity.java Setup screen · android_main.cpp Android native entry · GameActivity.java Game activity · juego.cpp Game integration
Components 22
Android frontend
- Setup screen
android/app/src/main/java/io/github/nfsmwrecomp/SetupActivity.java - Preferences
android/app/src/main/java/io/github/nfsmwrecomp/Ajustes.java - Graphics drivers
android/app/src/main/java/io/github/nfsmwrecomp/Drivers.java - Language settings
android/app/src/main/java/io/github/nfsmwrecomp/Idioma.java - Game activity
android/app/src/main/java/io/github/nfsmwrecomp/GameActivity.java
Native game
- Android native entry
android/app/src/main/cpp/android_main.cpp - Game hooks
android/app/src/main/cpp/ganchos.cpp - Game integration
android/app/src/main/cpp/juego.cpp - Audio driver
android/app/src/main/cpp/audio/aaudio_driver.cpp - Render targets
android/app/src/main/cpp/render_targets.cpp - Vulkan probe
android/app/src/main/cpp/sonda_vulkan.cpp - Desktop app entry
app/src/main.cpp - Game app
app/src/nfsmw_app.h - In-game menu
app/src/nfsmw_menu.cpp
Linux launcher
- Launcher entry
launcher-linux/main.cpp - Launcher window
launcher-linux/main_window.cpp - Game configuration
launcher-linux/game_config.cpp - Game import
launcher-linux/import_service.cpp
Android input
- Touch editor
android/app/src/main/java/io/github/nfsmwrecomp/EditorTactilActivity.java - Touch controls
android/app/src/main/java/io/github/nfsmwrecomp/TouchControllerView.java - JNI input bridge
android/app/src/main/java/io/github/nfsmwrecomp/TouchControllerBridge.java
Other components
- Player
Connections 24
- Player → Setup screen: configures
android/app/src/main/java/io/github/nfsmwrecomp/SetupActivity.java - Setup screen → Preferences: reads and writes
android/app/src/main/java/io/github/nfsmwrecomp/SetupActivity.java - Setup screen → Language settings: uses
android/app/src/main/java/io/github/nfsmwrecomp/SetupActivity.java - Setup screen → Graphics drivers: selects
android/app/src/main/java/io/github/nfsmwrecomp/SetupActivity.java - Setup screen → Game activity: starts
android/app/src/main/java/io/github/nfsmwrecomp/SetupActivity.java - Game activity → Preferences: reads
android/app/src/main/java/io/github/nfsmwrecomp/GameActivity.java - Game activity → Touch controls: displays
android/app/src/main/java/io/github/nfsmwrecomp/GameActivity.java - Player → Touch editor: edits controls
android/app/src/main/java/io/github/nfsmwrecomp/EditorTactilActivity.java - Touch editor → Touch controls: configures
android/app/src/main/java/io/github/nfsmwrecomp/EditorTactilActivity.java - Touch controls → JNI input bridge: sends state
android/app/src/main/java/io/github/nfsmwrecomp/TouchControllerView.java - JNI input bridge → Android native entry: forwards input
- Game activity → Android native entry: loads native libraries
android/app/src/main/java/io/github/nfsmwrecomp/GameActivity.java - Android native entry → Audio driver: initializes audio
- Android native entry → Game integration: starts game
- Game integration → Game hooks: uses hooks
- Game integration → Render targets: renders
- Android native entry → Vulkan probe: probes Vulkan
- Player → Desktop app entry: launches
- Desktop app entry → Game app: creates
app/src/main.cpp - Game app → In-game menu: opens menu
app/src/nfsmw_app.h - Player → Launcher entry: launches
launcher-linux/main.cpp - Launcher entry → Launcher window: shows
launcher-linux/main.cpp - Launcher window → Game import: imports game
launcher-linux/main_window.cpp - Launcher window → Game configuration: configures game