134 lines
6.5 KiB
Markdown
134 lines
6.5 KiB
Markdown
# ¿Dónde están mis partidas?
|
|
|
|
**Las partidas están en el dispositivo donde juegas.** La app de preparación de
|
|
Mac no recibe automáticamente lo que guardas en tu iPhone o iPad. Todavía no hay
|
|
sincronización en la nube.
|
|
|
|
## Si juegas en Mac
|
|
|
|
Se guardan fuera de la app, aquí:
|
|
|
|
```text
|
|
~/Library/Application Support/nxnative/<TITLE ID>/save/
|
|
```
|
|
|
|
Algunos juegos usan además una carpeta hermana llamada `save_device`.
|
|
Para Metroid Dread, ve a **Finder → Ir → Ir a la carpeta…** y pega:
|
|
|
|
```text
|
|
~/Library/Application Support/nxnative/010093801237C000/
|
|
```
|
|
|
|
Ahí están `save` y, si el juego la utiliza, `save_device`. Preparar otra versión
|
|
o mover la `.app` no reemplaza esas carpetas. Cierra el juego anterior antes de
|
|
abrir la versión nueva. Estas son las rutas predeterminadas; una configuración
|
|
avanzada con `DM_SAVE` puede cambiarlas.
|
|
|
|
## Si juegas en iPhone o iPad
|
|
|
|
Están dentro del contenedor privado de **esa app en ese dispositivo**, en
|
|
`Documents/save` y, cuando corresponde, `Documents/save_device`.
|
|
|
|
Para verlas: conecta y desbloquea tu dispositivo, confía en el Mac y abre
|
|
**Finder → tu iPhone/iPad → Archivos → tu juego**. Finder muestra directamente
|
|
el contenido de Documents. Según la configuración de iOS, el juego también puede
|
|
aparecer en **Archivos → En mi iPhone/iPad**.
|
|
|
|
| Carpeta o archivo | Qué contiene |
|
|
|---|---|
|
|
| `save` | Progreso del juego o cuenta |
|
|
| `save_device` | Progreso compartido del dispositivo, sólo en ciertos juegos |
|
|
| `romfs` | Datos del juego; no son tus partidas |
|
|
| `temp` | Archivos temporales |
|
|
| `log.txt` | Registro para diagnosticar problemas |
|
|
|
|
Tu iPad y tu iPhone guardan copias independientes. Una IPA y los archivos
|
|
`nxnative-ios.json`/`nxnative-mac.json` son de preparación; **no son un respaldo
|
|
del progreso que hay dentro del dispositivo**.
|
|
|
|
## Al actualizar o renovar la firma
|
|
|
|
En iPhone/iPad, conserva la misma cuenta, equipo e identificador efectivo de la
|
|
app e instala encima. **No desinstales el juego.** Si cambió su contenido,
|
|
reemplaza solamente `romfs`; conserva `save` y `save_device`.
|
|
|
|
Cambiar de cuenta o identificador puede crear otra app y otro contenedor. Por
|
|
eso el instalador integrado debe detenerse si no puede mantener esa identidad.
|
|
Que caduque la firma no significa que debas borrar el juego: vuelve a firmar e
|
|
instalar la misma app para recuperar el acceso a sus datos.
|
|
|
|
En Mac, la app nueva usa las partidas existentes del mismo Title ID en
|
|
Application Support. Renovar la firma de iPhone no sincroniza partidas ni cambia
|
|
la versión del juego.
|
|
|
|
Una carpeta puede no existir antes de abrir el juego y guardar por primera vez.
|
|
Estos archivos son los guardados que escribe el propio juego: no son un estado
|
|
de emulador ni la memoria que aún no has guardado. Renovar la firma no guarda
|
|
por ti una partida que dejaste abierta.
|
|
|
|
## Antes de copiar o respaldar
|
|
|
|
1. Guarda desde el propio juego y ciérralo por completo.
|
|
2. Conserva juntas `save` y `save_device`, si existe, en una carpeta con fecha y
|
|
nombre del dispositivo dentro de tu carpeta personal del juego, fuera del repo.
|
|
3. Conserva también la copia anterior del destino antes de intentar restaurar.
|
|
|
|
Si no existe `save_device`, puede ser normal. No reemplaces una carpeta con
|
|
progreso por otra vacía. Tampoco copies `save.work`, `save.new` ni sus equivalentes:
|
|
son carpetas internas de una operación de guardado, no el respaldo confirmado.
|
|
|
|
**Una copia manual de archivos no está validada como respaldo portable para todos
|
|
los juegos.** Algunos necesitan metadatos de nombres de archivo que un ZIP o una
|
|
transferencia por Finder puede perder. El futuro exportador tendrá que conservar
|
|
esos metadatos y comprobar la restauración. También deben coincidir el juego,
|
|
versión, DLC y datos de cuenta; no prometemos que cualquier partida funcione con
|
|
cualquier versión o emulador. [Detalles técnicos](saves.md).
|
|
|
|
## ¿Y los perfiles de controles?
|
|
|
|
Son preferencias de la app, separadas del progreso. Actualizar la misma app los
|
|
conserva, pero copiar solamente `save` no lleva tus perfiles al otro dispositivo.
|
|
Aún no tienen exportación ni sincronización entre dispositivos.
|
|
|
|
Primero dejaremos probado el respaldo y la restauración; después conectaremos
|
|
la nube. La API existente es un prototipo y todavía no está conectada al juego.
|
|
|
|
|
|
## Futuro servidor portable
|
|
|
|
Todavía no elegimos proveedor de nube. La base de la API es independiente del
|
|
hosting: Python, HTTP, identidad OIDC configurable y SQLite. Su comando de
|
|
respaldo permite trasladar la base a otro servidor conservando versiones y
|
|
permisos. [Configuración, respaldo y traslado](../dm/cloud/README.md#portable-hosting-and-migration).
|
|
Esto no activa sincronización en los juegos: faltan el inicio de sesión nativo y
|
|
la exportación/restauración segura de partidas en cada dispositivo.
|
|
|
|
|
|
## Exportar del iPhone/iPad desde la app (1.11)
|
|
|
|
En **Dispositivos**, busca tu juego reconocido y pulsa **Exportar partidas**.
|
|
Guarda dentro del juego y ciérralo desde el selector de apps; confirma ese paso y
|
|
elige un ZIP nuevo. No necesitas iniciar sesión con Apple para esta lectura en
|
|
un dispositivo ya emparejado y de confianza. **Mostrar ZIP de partidas** abre su
|
|
ubicación para compartirlo manualmente, por ejemplo mediante AirDrop.
|
|
|
|
La herramienta lee únicamente `Documents/save` y `Documents/save_device` cuando
|
|
existe. No copia `romfs`, cachés, `.work`, `.new` ni preferencias de controles.
|
|
Verifica inventarios, tamaños y hashes en dos lecturas antes de publicar el ZIP;
|
|
si la partida cambia, no publica un respaldo incompleto. El ZIP incluye esas
|
|
carpetas y `nxnative-save-export.json`, con versión del juego y comprobaciones.
|
|
No modifica el dispositivo ni sobrescribe otro ZIP. La nube sigue desconectada.
|
|
|
|
Si detecta el juego abierto, se detiene. Cuando el sistema no puede comprobarlo,
|
|
la exportación manual depende de tu confirmación de haberlo cerrado; no uses
|
|
esta opción con una partida activa. Se rechazan enlaces, archivos especiales,
|
|
credenciales y alias `.dm-case-*` cuyos metadatos no podemos conservar por AFC.
|
|
Límites actuales: 512 MB y 8192 entradas. La interrupción forzada puede dejar un
|
|
archivo temporal privado, pero no un ZIP final presentado como correcto.
|
|
|
|
Para compartir, manda el ZIP completo. Restaurar es todavía manual y depende de
|
|
que coincidan juego, versión y formato; no prometemos conversión de partidas de
|
|
otros emuladores. Antes de reemplazar archivos desde Finder, conserva un respaldo
|
|
del destino y cierra también ese juego. Esta versión no añade restauración
|
|
automática ni modifica tus partidas al preparar o copiar datos.
|