No es un emulador. El código del propio juego se ejecuta directamente en el chip de Apple, con los gráficos de Switch reconstruidos sobre Metal. Trae tus archivos NSP y prod.keys; un script los convierte en un IPA que instalas por sideload.
Un port nativo en lugar de emulación: el código del juego solo se reescribe donde lo exige el kernel de Apple.
Los módulos NSO de cada juego se reescriben y se ejecutan directamente en la CPU. Una capa anfitriona sustituye a Horizon, el sistema de Switch: hilos, memoria, sistema de archivos, audio y servicios.
Las llamadas NVN y Vulkan se implementan sobre Metal. Los shaders Maxwell se traducen a SPIR-V y luego a Metal Shading Language durante la compilación.
Aquí no se distribuye nada de ningún juego. El script de empaquetado lee tus NSP con tus claves en tu Mac y crea un IPA sin firmar para instalar por sideload.
Cada juego tiene un pequeño perfil de constantes y tablas de shaders en dm/games/<title id>. El código lee el perfil; nunca fija un juego concreto.
Construido sobre d2r-mobile, el traductor de shaders de Ryujinx, Atmosphère, yuzu, LibHac, SPIRV-Cross y más. Consulta los agradecimientos.
Empaqueta un IPA en un Mac, instálalo por sideload y juega. La primera compilación tarda 30–60 minutos; las siguientes, unos 10.
Requisitos. Un Mac con Xcode y Homebrew; espacio libre de unas dos veces el tamaño de los NSP más 10 GB; un iPhone 15 Pro o posterior (A17 Pro o superior) o un iPad con M1 o posterior, con iOS / iPadOS 26 o superior (lo necesitan las texturas comprimidas BC de los juegos).
Una sola vez, en el 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'"El juego base (un NSP o un volcado XCI), su actualización y cualquier DLC.
~/Games/MarioWonder/
Super Mario Bros. Wonder [010015100B514000][v0].nsp
Super Mario Bros. Wonder [010015100B514800][v327680].nspEl IPA aparece en la misma carpeta.
python3 scripts/build_ipa_from_nsp.py ~/Games/MarioWonder -k ~/keys/prod.keysInstala el IPA con AltStore, Sideloadly, LiveContainer o similar. La app toma el nombre, el icono y la versión del juego.
Toca 2D / 3D arriba para cambiar la disposición táctil. Un mando conectado oculta los controles táctiles. En 3D, desliza el dedo por el tercio derecho de la pantalla para mover la cámara. Sacude el teléfono para sacudir el mando.
Todos probados en un iPhone y jugables. Elige uno para ver los detalles.












































Inglés por defecto. Elige otro al empaquetar con -l (por ejemplo -l ja) o añade DM_LANG=zh-Hans a Documents/env.txt.
En la app Archivos, bajo el nombre de la app: save/ y log.txt. Envía log.txt cuando algo falle.
Los tirones breves la primera vez que aparece una escena son normales: los gráficos se compilan una vez y se recuerdan.
Algunas herramientas de sideload dan una carpeta de datos nueva. Copia save/ y pso_user.tsv de la antigua.
Líneas en Documents/env.txt: DM_OPMODE=0 para modo portátil, DM_FPS_TARGET=30 para ahorrar batería, DM_SHOW_FPS=1 para ver los fps.
Sin amiibo ni funciones en línea. Los demás juegos reciben un informe y un IPA de mejor esfuerzo que puede no arrancar.