Preserve the previous README byte for byte as README-original.md. List current game profiles, distinguish local device validation, and document build commands, lightweight assets, controls and save-preserving updates.
17 KiB
nxnative personal · Juegos de Switch en iPhone y iPad
Esta es nuestra copia privada de nxnative, con editor de controles táctiles y scripts que preparan herramientas, compilan y generan una IPA ligera para instalar con Sideloadly.
Empieza aquí: elige un juego compatible → ejecuta un comando → instala la IPA ligera → copia romfs por Finder la primera vez.
Qué juegos correr · Preparar el Mac · Compilar fácilmente · Instalar con Sideloadly · Actualizar sin perder partidas · README anterior
Qué juegos correr
Metroid Dread 2.1.0 es el juego confirmado funcionando en nuestro iPhone. También comprobamos su recompilación sin firma y la generación automática de la IPA ligera. El editor nuevo todavía requiere comprobar su uso físico tras instalarlo.
Esta base incluye perfiles para los juegos de la tabla completa de abajo. Upstream publica pruebas en Mac o iPhone según el título: tener un perfil o una IPA compilada no confirma que ese juego funcione en tu iPhone. Abre la ficha del juego para comprobar plataforma, versión y problemas conocidos.
Algunos títulos incluidos para empezar a explorar:
| Juego | Versión del perfil | Referencia |
|---|---|---|
| Metroid Dread | 2.1.0 | Ficha · confirmado en nuestro iPhone |
| Super Mario Bros. Wonder | 1.2.1 / 1.0.0 | Ficha y límites |
| Super Mario Odyssey | 1.4.1 | Ficha y límites |
| Mario Kart 8 Deluxe | 4.0.0 | Ficha y límites |
| The Legend of Zelda: Breath of the Wild | 1.9.0 | Ficha y límites |
| The Legend of Zelda: Tears of the Kingdom | 1.4.3 | Ficha y límites |
| The Legend of Zelda: Link's Awakening | 1.1.0 | Ficha y límites |
| Hades | 1.0.38233 | Ficha y límites |
| Cuphead | 1.3.7 | Ficha y límites |
| Celeste | 1.4.1.1 | Ficha y límites |
| Balatro | 1.1.3 | Ficha y límites |
Ver los 70 perfiles incluidos y sus versiones
La región y versión del juego importan. Un título sin perfil puede recibir una compilación provisional y aun así no arrancar. Los PR de juegos nuevos que sólo revisamos no están incluidos automáticamente; consulta la revisión de PR.
Preparar el Mac
Necesitas:
- Un Mac con Xcode completo instalado y abierto al menos una vez, y SDK de iOS 26 o posterior.
- Homebrew instalado. El script instala las demás herramientas que falten.
- Un iPhone con A17 Pro o posterior, o iPad con M1 o posterior, y iOS/iPadOS 26 o posterior, según los requisitos de esta base. El soporte para otros chips no se incorporó desde los PR revisados.
- Tus archivos del juego y
prod.keys, en una carpeta fuera del repositorio. - Espacio para los archivos originales, la extracción, cachés, la IPA completa y otra copia de
romfs. - Sideloadly para firmar e instalar con tu cuenta Apple personal.
En un Mac nuevo, descarga nuestra copia privada. Debes tener acceso con tu cuenta GitHub:
git clone https://github.com/nalancer08/nxnative-personal.git
cd nxnative-personal
Si ya tienes nuestra copia en este Mac, abre Terminal en esa carpeta y omite el clonado. No clones de nuevo el repositorio original para compilar: esa copia no tendría nuestro editor ni estos scripts.
Compilar fácilmente
Opción 1: un comando y selector de carpeta
Desde la carpeta del repositorio:
bash scripts/prepare_ios.sh
Selecciona la carpeta que contiene un solo juego con sus actualizaciones. El script pide prod.keys si no está en esa carpeta, prepara las herramientas, compila y separa los datos automáticamente.
Opción 2: indicar la carpeta
Cambia la ruta del ejemplo por la tuya y conserva las comillas:
bash scripts/prepare_ios.sh "/Volumes/Juegos/MetroidDread"
La carpeta puede tener esta estructura; no cambies las extensiones de los archivos:
MetroidDread/
juego-base.nsp
actualizacion.nsp
prod.keys
También se admiten XCI y, con soporte adicional instalado por el script, NSZ/XCZ. Usa una carpeta distinta para cada juego. Por defecto se selecciona la actualización más reciente presente; puedes fijar una con --package.
Opción 3: doble clic
Abre scripts/Build-iPhone.command desde Finder. Ejecuta el mismo flujo y te pide la carpeta. En nuestro Mac también está el acceso Preparar-juego-iPhone.command en Descargas.
Qué obtienes
Al terminar, la consola muestra las rutas exactas. Junto al juego encontrarás:
nxnative-ios-FECHA-unsigned.ipa ← copia completa, se conserva
nxnative-ios-FECHA-unsigned-light-XXXX/
nxnative-ios-FECHA-unsigned-light.ipa ← instala ESTA con Sideloadly
romfs/ ← datos del juego para Finder
INSTALL.txt
nxnative-ios.json ← identidad y opciones de futuras compilaciones
Los nombres incluyen fecha y una parte única. La IPA ligera de Dread mide aproximadamente 57 MB; sus datos van aparte. Otros juegos pueden tener tamaños distintos.
El proceso conserva las salidas anteriores y reutiliza las cachés válidas. La IPA se genera sin firmar: la cuenta Apple se usa después, dentro de Sideloadly. No se suben juegos, llaves ni partidas a GitHub.
Instalar con Sideloadly
- Descarga y abre Sideloadly en el Mac.
- Conecta el iPhone por USB, desbloquéalo y acepta Confiar si lo solicita.
- Selecciona tu iPhone en Sideloadly y arrastra la IPA que termina en
-light.ipa. - Usa tu cuenta Apple personal, la misma que utilizaste si estás actualizando una instalación existente. En este proyecto no usamos cuentas ni equipos de empresa.
- Pulsa Start y completa la autenticación que solicite Sideloadly.
- Si el iPhone lo solicita, activa Ajustes → Privacidad y seguridad → Modo de desarrollador. Para un desarrollador no confiable, revisa Ajustes → General → VPN y gestión de dispositivos y autoriza la cuenta con la que firmaste.
Consulta las instrucciones vigentes y los errores en la FAQ oficial de Sideloadly. Con cuenta gratuita, la firma normalmente dura 7 días; Sideloadly también ofrece renovación automática cuando su configuración y conexión lo permiten.
Copiar los datos con Finder: primera instalación
- En Finder, selecciona el iPhone → Archivos → la app del juego.
- Arrastra la carpeta
romfscompleta del resultado de compilación a los documentos de esa app y espera a que termine. - Abre el juego. Si ya estaba abierto, ciérralo por completo y ábrelo otra vez.
En Dread, la estructura dentro de la app debe ser Documents/romfs/system/shd/.... Evita romfs/romfs. En otros juegos el contenido cambia, pero el directorio que copias sigue siendo romfs.
Si la app no aparece en Archivos de Finder, ábrela una vez y ciérrala; aún sin los datos puede fallar al arrancar. Copia romfs y vuelve a abrirla. Guía de Apple para compartir archivos.
Actualizar sin perder partidas
Instala encima de la app existente. No la desinstales. Desinstalar elimina sus documentos, partidas y datos copiados.
- Usa la misma cuenta Apple personal y el mismo bundle ID efectivo de la instalación anterior. Si configuraste un identificador personalizado en Sideloadly, consérvalo.
- Mantén
nxnative-ios.json: nuestros scripts guardan ahí la identidad para siguientes compilaciones. Eso no sustituye los ajustes que Sideloadly haya aplicado al firmar. - Haz una copia de
savedesde los documentos de la app antes de cambiar de versión, cuando esté disponible y con el juego cerrado. - Una actualización del editor puede reutilizar el
romfsdel teléfono si los datos del juego siguen siendo idénticos. Una actualización del juego puede necesitar el nuevoromfs. - Para renovar una firma, vuelve a instalar la misma IPA con la misma identidad o usa la renovación de Sideloadly. Referencia oficial sobre actualizar y conservar progreso.
Recompilar sólo la app con los datos ya preparados
Para cambios del editor u otros cambios de la app, cuando ya existen extracción, módulos reescritos y shaders válidos:
bash scripts/prepare_ios.sh "/Volumes/Juegos/MetroidDread" --app-only
Este modo no necesita llaves ni vuelve a extraer el juego. Recompila y vuelve a generar las IPA y una copia de romfs. Verifica las cachés; si no son válidas, se detiene. Para una versión de juego o cadena de shaders distinta, usa el comando normal.
Mover y ajustar los controles
Dentro del juego toca Edit controls:
- Selecciona A, B, X, Y u otro control en el menú, o toca cerca de su centro.
- Arrastra fuera del panel para mover el seleccionado. Show / hide tools muestra u oculta el panel para acceder al área detrás.
- Ajusta Size entre 50–200% y Opacity entre 0–100%.
- Save guarda; Cancel descarta. Reset control restaura el seleccionado y Reset all restaura el layout; confirma con Save.
Cada juego guarda sus propios acomodos de 2D y 3D. Un control al 0% sigue recibiendo toques; el editor lo muestra parcialmente para encontrarlo. El juego sigue corriendo mientras editas. Conectar o desconectar un mando cancela los cambios de edición no guardados.
Si algo falla
| Problema | Qué revisar |
|---|---|
| No hay NSP/XCI en la carpeta | Elige la carpeta que contiene los archivos directamente, no su carpeta padre. |
| Faltan herramientas | Instala Xcode y Homebrew; ejecuta otra vez el preparador y revisa el primer error. |
Caché de shaders inválida en --app-only |
Ejecuta el flujo normal para regenerar lo que haya cambiado. |
| Sideloadly no detecta el iPhone | Desbloquéalo, revisa el cable USB y acepta Confiar en el Mac/iPhone. |
| El juego no abre después de instalar | Comprueba que romfs se copió completo, la versión y los requisitos de la ficha del juego. |
| El juego dejó de abrir días después | Revisa si venció la firma y renueva conservando la cuenta y el identificador. |
| Error de compilación o pantalla incorrecta | Conserva el error y los logs de <title ID>_build/logs/; en el teléfono, busca Documents/log.txt. |
Los mensajes de compilación se muestran en inglés. El nuevo preparador usa esta copia del código y no exige borrar tus modificaciones ni volver al checkout original.
Qué cambiamos en esta copia
- Editor compartido de posición, tamaño y opacidad por control, con guardado por juego/layout.
- Preparación de dependencias y compilación desde nuestra propia base.
- Exportación automática de IPA ligera y
romfs, validación de integridad y conservación de archivos anteriores. - Registro de identidad por juego y bloqueo de compilaciones simultáneas desde el wrapper.
- Corrección del cálculo de espacio de extracción del PR #277.
- Revisión de 57 PR abiertos y 20 cambios posteriores. Sólo #277 se integró desde esa revisión; los demás conservan decisiones y validaciones pendientes.
Guías adicionales: automatización detallada · documentación de desarrollo · README anterior con la galería y créditos completos.
Este proyecto deriva de seedds/nxnative y conserva la licencia MIT. Los créditos y licencias de sus componentes siguen en el README anterior y en third_party. El repositorio no contiene los juegos ni sus llaves.