Kein Emulator. Der eigene Code des Spiels läuft direkt auf dem Apple-Chip, die Switch-Grafik wird auf Metal nachgebaut. Bring deine NSP-Dateien und prod.keys mit; ein Skript macht daraus eine IPA, die du per Sideload installierst.
Eine native Portierung statt Emulation: Der Spielcode wird nur dort umgeschrieben, wo Apples Kernel es verlangt.
Die NSO-Module jedes Spiels werden umgeschrieben und laufen direkt auf der CPU. Eine Host-Schicht ersetzt Horizon, das Betriebssystem der Switch: Threads, Speicher, Dateisystem, Audio und Dienste.
NVN- und Vulkan-Aufrufe sind auf Metal umgesetzt. Maxwell-Shader werden beim Build nach SPIR-V und dann in die Metal Shading Language übersetzt.
Hier wird nichts aus irgendeinem Spiel ausgeliefert. Das Packskript liest deine NSPs mit deinen Schlüsseln auf deinem Mac und schreibt eine unsignierte IPA zum Sideloaden.
Jedes Spiel hat in dm/games/<title id> ein kleines Profil aus Konstanten und Shader-Tabellen. Der Code liest das Profil und verdrahtet nie ein bestimmtes Spiel.
Aufgebaut auf d2r-mobile, dem Shader-Übersetzer von Ryujinx, Atmosphère, yuzu, LibHac, SPIRV-Cross und mehr. Siehe die Danksagungen.
IPA auf einem Mac packen, per Sideload installieren, spielen. Der erste Build dauert 30–60 Minuten, spätere etwa 10.
Voraussetzungen. Ein Mac mit Xcode und Homebrew; freier Speicherplatz von etwa der doppelten NSP-Größe plus 10 GB; ein iPhone 15 Pro oder neuer (A17 Pro+) oder ein iPad mit M1 oder neuer, mit iOS / iPadOS 26+ (die BC-komprimierten Texturen der Spiele brauchen das).
Einmalig, auf dem Mac.
git clone https://github.com/seedds/nxnative.git && cd nxnative
brew install xcodegen zstd spirv-cross
brew install --cask dotnet-sdk
python3 -m pip install lz4 capstone fonttools "backports.zstd; python_version < '3.14'"Das Basisspiel (ein NSP oder ein XCI-Dump), sein Update und eventuelle DLCs.
~/Games/MarioWonder/
Super Mario Bros. Wonder [010015100B514000][v0].nsp
Super Mario Bros. Wonder [010015100B514800][v327680].nspDie IPA erscheint im selben Ordner.
python3 scripts/build_ipa_from_nsp.py ~/Games/MarioWonder -k ~/keys/prod.keysInstalliere die IPA mit AltStore, Sideloadly, LiveContainer oder Ähnlichem. Die App übernimmt Name, Symbol und Version des Spiels.
Tippe oben auf 2D / 3D, um das Touch-Layout zu wechseln. Ein verbundener Controller blendet die Touch-Steuerung aus. In 3D wischst du auf dem rechten Drittel des Bildschirms für die Kamera. Schüttle das Handy, um den Controller zu schütteln.
Alle auf einem iPhone getestet und spielbar. Wähle eines für die Details.












































Standardmäßig Englisch. Beim Packen mit -l eine andere wählen (zum Beispiel -l ja) oder DM_LANG=zh-Hans in Documents/env.txt eintragen.
In der Dateien-App unter dem Namen der App: save/ und log.txt. Schick log.txt, wenn etwas schiefgeht.
Kurze Ruckler beim ersten Auftauchen einer Szene sind normal: Die Grafik wird einmal kompiliert und gemerkt.
Manche Sideload-Werkzeuge vergeben einen neuen Datenordner. Kopiere save/ und pso_user.tsv aus dem alten.
Zeilen in Documents/env.txt: DM_OPMODE=0 für den Handheld-Modus, DM_FPS_TARGET=30 zum Akkusparen, DM_SHOW_FPS=1 für eine FPS-Anzeige.
Keine amiibo, keine Online-Funktionen. Andere Spiele bekommen einen Analysebericht und eine bestmögliche IPA, die vielleicht nicht startet.