Saltar al contenido
PORTSNATIVE.
InicioCatálogo
Juegos WebEmuladoresHerramientasNovedades
PORTSNATIVE.

Un catálogo para descubrir ports y proyectos relacionados. Enlazamos a las fuentes oficiales y no alojamos archivos de los juegos originales.

ExplorarCatálogoMi lista
InformaciónNosotrosProponer un portSoporteApoyo y donacionesAviso legal
© 2026 PortsNative
Volver al catálogo
Need for Speed: Most Wanted (2005) · nfsmw nx (stevensnd)
PORTSNATIVE

Need for Speed: Most Wanted (2005) · nfsmw nx (stevensnd)

PORT NATIVOACCIÓN / AVENTURAWINDOWSALPHA

Need for Speed: Most Wanted (2005) · nfsmw nx (stevensnd)

Need for Speed: Most Wanted (2005)

OrigenXbox 360

TecnologíaPort Nativo C/C++ (Reimplementación de Motor)

Disponible paraWindows

Ver proyecto oficial

Sobre el proyecto

Port de Xbox 360 a Nintendo Switch mediante ReXGlue. Instrucciones de creación local de NRO y uso en consola con homebrew. No implica soporte Switch 2 ni firmware oficial.

2 versiones de Need for Speed: Most Wanted (2005)

Estás viendo: nfsmw nx (stevensnd)

nfsmw nx (stevensnd)github.com/stevensnd/nfsmw-nx
Windows
Actual
NFSMW Recompiledgithub.com/madelrandel-blip/NFSMW-Recompiled
Windows
Linux
Android
›

Información oficial del proyecto

README original del autor (en inglés)Abrir en GitHub ↗
<div align=center> <img src="extras/banner.png" alt="Need for Speed: Most Wanted" width="60%"> </div> <h1 align=center>Need for Speed: Most Wanted — Nintendo Switch port</h1>

A native Nintendo Switch port of the Xbox 360 version of Need for Speed: Most Wanted (2005).

It's not an emulator. The PowerPC code of the game's default.xex is statically recompiled to C++ with ReXGlue and compiled for the Switch and the game is drawn by a native Vulkan renderer running on NVK (Mesa). It targets 30 FPS at the console's stock clocks with no overclock.

[!NOTE] You need your own copy of the Xbox 360 game: a disc image (.iso) or the extracted disc with its default.xex.

Supported editions

One NRO per edition of the game (the installer page picks the right one automatically):

FileEdition
nfsmw-nx-pal-es.nroPAL - Spanish & Brazilian Portuguese (Fan Version)
nfsmw-nx-pal-en.nroPAL - English & Russian (Fan Version)
nfsmw-nx-pal-fr.nroPAL - French
nfsmw-nx-pal-de.nroPAL - German
nfsmw-nx-pal-it.nroPAL - Italian
nfsmw-nx-pal-pl.nroPAL - Polish (Fan Version)
nfsmw-nx-usa.nroNTSC-U
nfsmw-nx-jpn.nroNTSC-J
nfsmw-nx-kor.nroNTSC-K - Korean
nfsmw-nx-cht.nroNTSC - Asia, Traditional Chinese

How to install

  1. Open the installer page: https://stevensnd.github.io/nfsmw-nx-installer/
  2. Choose your format (Disc image (.iso) or XEX format, the folder with default.xex, Movies and NFS) and press Create nfsmw-nx.zip. Everything runs in your browser and the game files never leave your computer: the page detects your edition, downloads its build and makes the shaders from your disc.
  3. Extract the downloaded nfsmw-nx.zip into sdmc:/switch/.

Your nfsmw-nx folder should look like this:

/switch/nfsmw-nx/
  nfsmw-nx.nro
  nfsmw.toml                (settings)
  nfsmw_shaders.nfsp        (the game's shaders, made from your disc)
  game_root/                (the files of your disc)

Launch with a game override (hold R while starting an installed title) or a forwarder. Album applet mode does not provide enough memory. If you use a forwarder, set it to a 39-bit address space.

I suggest using the latest version of Sphaira to generate the forwarder.

Finally CHECK THIS SCREENSHOT to know which options you must use to generate the forwarder.

[!NOTE] Updating: open the installer page again and press Create nfsmw-nx-update.zip. It only rebuilds nfsmw-nx.nro, nfsmw.toml and nfsmw_shaders.nfsp, so there is no need to copy the game files again: extract it over your existing folder.

[!CAUTION] The first race after installing or updating compiles the graphics pipelines it has not seen yet, so IT CAN STUTTER for a few seconds. They are saved on the SD card and later sessions start smoothly.

Controls

Each Switch button acts as the Xbox 360 button with the same letter, so the letter in the on-screen prompts is the button to press: A accepts and B goes back, as in other Switch games.

<div align="center">
SwitchXbox 360
AA
BB
XX
YY
ZR / ZLRT / LT
R / LRB / LB
+Start
−Back
Sticks / D-padSticks / D-pad
</div>

To use the face buttons by position instead, as on an Xbox pad (B acts as A, A as B, Y as X and X as Y), set input_xbox_layout = true in nfsmw.toml.

Settings

nfsmw.toml, next to the NRO, holds the settings and each one is described in the file. Several of them can also be changed while playing from the Debug Menu (L + R + Right).

Color filter (the "piss filter")

The game's "visual treatment", which players call the "piss filter", gives the city its yellow tint, with some desaturation and a dark vignette. To make it softer or turn it off, change nfsmw_tratamiento_visual in nfsmw.toml, or in the Debug Menu (L + R + Right, category Graficos) while playing:

  • original (default): as on the Xbox 360;
  • suave: half as strong;
  • apagado: no filter. The glow and the fades to black stay the same.

It costs nothing.

Steering (left stick)

The game ignores the first part of the stick's travel, and a Switch stick travels less than an Xbox 360 one, so small steering corrections are hard to make and easy to overdo. These settings reshape the left stick before the game sees it. With their defaults the stick goes to the game untouched. They can be changed while playing from the Debug Menu (L + R + Right, category Input), or added to nfsmw.toml:

input_left_stick_deadzone = 0.06       # ignored around the centre, so a resting stick does not steer
input_left_stick_anti_deadzone = 0.22  # where the travel starts: the edge of the game's own dead zone
input_left_stick_outer_deadzone = 0.0  # travel at the edge that already counts as fully pushed
input_left_stick_curve = 1.0           # 1 = linear; above 1 is finer near the centre

Start with the values above. If the car still does not answer a small push, raise the anti dead zone a little; if it twitches or drifts with the stick at rest, lower it or raise the dead zone. Always use some dead zone together with an anti dead zone: without one, the stick's resting noise would steer.

Debug Menu

It's only available in Spanish for now. Press L + R + Right (D-pad) while playing to open it and again to close it. It can be used with the Joy-Con, moving with the D-pad and scrolling with the left stick, or with the touch screen. While it is open, the controls go to the menu and not to the game.

  • Search box at the top: finds a setting by its name or description.
  • Categories on the left and the settings of the selected one on the right, each with its value (a checkbox, a list or a number). The color of the name tells when a change takes effect: green at once, yellow after restarting the game, and red is read-only.
  • Save to config at the bottom: writes the changes to nfsmw.toml so they are kept. It rewrites the file with only the settings that differ from the program's defaults, without its comments. Without saving, the changes last until you close the game.

The categories:

  • Graficos: internal resolution, frame rate limit (60 or 30), the GPU clock requested in handheld mode, FXAA antialiasing, the sky glow, the game's color filter, and the options for the console overlays (SaltyNX) and ReverseNX-RT.
  • Graficos > Posproceso: color filters for the final image, as presets (cine, sepia, noir, frio, calido, vivo, matrix, crt) or personalizado with your own brightness, contrast, saturation, vibrance, temperature, gamma, vignette and scanlines.
  • NFSMW: the port's own settings: renderer, shadows, reflections, streaming, audio, the game functions that run as native code, and diagnostics. Many of them are described in nfsmw.toml; change them only to try something.
  • The rest (Audio, GPU, Input, Kernel, Log, UI...) come from the ReXGlue SDK and are mostly for development and debugging.

[!NOTE] To see the FPS, the resolution and information about the clocks, Horizon OC Monitor is a better choice: it shows more information than the Debug Menu currently does.

Resolution

The resolution is automatic by default (nfsmw_resolucion_interna = "automatico"): 1280x720 in handheld mode and 1920x1080 docked. It's chosen when the game starts: if you dock or undock the console while playing, the game keeps the resolution, scaled to the screen until you restart it. ReverseNX-RT's Fake Docked and Fake Handheld count as well: choose the mode in its overlay and restart the game. The choice is kept until you restart the console.

To use one resolution in both modes, set it in nfsmw.toml (or in the Debug Menu, category Graficos, then Save to config) and restart the game:

  • 1280x720: the resolution of the Xbox 360 version. Docked, it can give a higher frame rate than 1920x1080, which has 2.25 times the pixels while the docked GPU clock is only 1.67 times the handheld one.
  • 1920x1080: sharper, at a high GPU cost, above all in handheld mode.
  • 1024x576, 640x360 and 640x480 only shrink the image after it is drawn at 1280x720, so they do not raise the frame rate.

[!NOTE] If you're having bad performance on Docked and don't want to apply a higher OC + you want more FPS, set the resolution to 1280x720.

Performance

In handheld mode the port asks the system for its official 460.8 MHz GPU mode, a standard performance configuration of the console and not an overclock. Races average 32 to 35 FPS; the heaviest area measured, the exit of Heritage Heights, runs at 21-22 FPS for about 20 seconds.

How it went from a few frames per second to this is explained step by step in docs/performance-history.md.

Overclocking

The port is made to run at the console's stock clocks with no overclock. These are the clocks it runs at by default:

<div align="center">
ModeCPUGPUMemory
Handheld1020 MHz460.8 MHz1331.2 MHz
Docked1020 MHz768 MHz1600 MHz
</div>

GAMEPLAY USING THE DEFAULT CLOCKS

The CPU is what limits it most (the game runs on three cores at 1020 MHz) and in handheld mode the GPU as well.

[!CAUTION] Overclocking pushes the console beyond what it was designed for and you do it at your own risk. An unstable memory overclock can corrupt the NAND or the SD card: make a backup first and test every change.

These guides explain how to do it:

  • How to get 60 FPS: the tools you need (Horizon OC, Ultrahand, Status Monitor...) and how to set them up.
  • Mariko guide: overclocking the Switch V2, Lite and OLED.
  • Erista guide: overclocking the original 2017 Switch.
  • How to test stability: how to check that your CPU, GPU and memory clocks are stable.

For this port:

  • In Horizon OC, set the clocks with Edit App Profile while the game is running. The App ID is the one of the game you hold R on to launch it, or your forwarder's.
  • Status Monitor shows the port's frame rate and resolution if SaltyNX is installed (how it works).

How it works

  • The game's code is translated, not emulated. ReXGlue translates every function of the game's program (default.xex) to C++, which is then compiled for the Switch. ReXGlue also gives the game what it expects from an Xbox 360: its system, files, audio and controllers. This port adds the Switch part: memory, threads, crash handling, clocks, audio output and showing the frames on screen.
  • Its own renderer. Imitating the Xbox 360 GPU was far too slow on the Switch. Instead, the port reads the list of commands the game sends to the GPU and draws the same frame with Vulkan. The busiest parts of the game's graphics code run as native code, each one checked against the original.
  • Shaders translated beforehand. The game's GPU programs (shaders) are translated with XenosRecomp and DXC into one library file. The installer page does this from your disc.
  • Its own graphics driver. Vulkan runs on NVK, from the Mesa project, through mesa-switch, with this port's changes in mesa/: skipping hidden pixels (ZCULL), shader compiler fixes and cheaper draws.
  • Optimization. The code is built with LTO, PGO and function ordering, the CPU cost of each draw is cut down, the busiest game functions run as native code, and the GPU time per frame is reduced. The few changes that alter the image (a cheaper shadow filter, no radial blur on the final image, no vegetation in the shadow maps) are settings in nfsmw.toml.

[!NOTE] The PGO profile is not complete. It comes from a small test on the console, done only to check that PGO improves the port's performance, not from playing through the whole game.

Documentation

For anyone porting another Xbox 360 game, or curious about how this one was done. Start with docs/README.md: it explains in six steps how the whole port fits together, and what to read for what you want to do. Every technical word is explained in the glossary.

<div align="center">
DocumentWhat it explains
docs/glossary.mdEvery technical word, in plain words
docs/building.mdHow to build the NRO, the driver and the shader library, step by step
docs/porting-another-game.mdWhat you can reuse for another game, and in which order to work
docs/native-renderer.mdHow the port draws the game with Vulkan
docs/shaders.mdHow the game's shaders are translated, and what had to be fixed
docs/toolchain.mdHow the game's code is translated and compiled, and the build options that make it faster
docs/mesa.mdThe graphics driver and this port's changes to it
docs/platform-notes.mdThings about the Switch system that cost a lot of time to find out
docs/audio-and-video.mdThe game's audio and cutscenes on the Switch
docs/editions.mdHow every edition and language of the game is supported
docs/measuring.mdHow to measure performance on the console without being misled
docs/performance-history.mdHow the frame rate went from a few FPS to about 30, step by step
</div>

Build

devkitA64 and libnx from devkitPro, CMake, Ninja, Python, the Vulkan driver built from mesa-switch with mesa/mesa-switch-nfsmw.patch, and your own copy of the game for the code generator. The whole process is in docs/building.md.

<div align="center">
FolderContents
app/The game: hooks, native renderer, audio, video, configuration, CMake project
sdk/ReXGlue SDK with the Horizon layer and the code generator changes
shaders/XenosRecomp with this port's changes, the library tools and their WebAssembly builds
mesa/The patch for mesa-switch
pgo/The profiles for profile guided optimization, one per edition
tools/Code generation steps, build scripts, edition support
docs/Documentation
</div>

Credits

  • Electronic Arts and EA Black Box — creators of Need for Speed: Most Wanted. This is an unofficial, fan-made port with no affiliation.
  • madelrandel-blip — NFSMW Recompiled, the recompilation project this port started from.
  • Tom Clay — the ReXGlue SDK, built on the work of the Xenia team.
  • hedge-dev — XenosRecomp, the Xenos shader translator.
  • danfromtico and NaGaa95 — mesa-switch: Mesa, NVK and NAK on Horizon.
  • devkitPro and switchbrew — devkitA64 and libnx.
  • The other libraries listed in THIRD_PARTY_NOTICES.md.

Support

HERE are my social media

If you enjoy my work and want to support me:

ko-fi

Legal

No affiliation with Electronic Arts. "Need for Speed" and "Need for Speed: Most Wanted" are trademarks of Electronic Arts Inc. This repository contains no assets or program code from the original game. Users must provide their own legally obtained copy, and the installer page makes the package from it on their own computer. Running homebrew requires custom firmware, which violates Nintendo's ToS and can get a console banned — your call.

Source code is provided under the GPL-3.0 License (see LICENSE), inherited from NFSMW Recompiled. The SDK changes are under the SDK's BSD-3-Clause license and the shader translator and Mesa changes under MIT, so other ports can reuse them (see THIRD_PARTY_NOTICES.md).

Leer guía oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Acción / Aventura
Estado
alpha
Plataforma de origen
Xbox 360
Tecnología
Port Nativo C/C++ (Reimplementación de Motor)
Versión
—
Actualización
14 oct 2026

Plataformas de destino 1

Windows
Ver en GitHub
Publicidad