Registrarse

[Nintendo Switch] Extraer los datos de juegos de Nintendo Switch

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
¡Hola! Ya que hay algunos interesados en verle las tripas a los juegos de Nintendo Switch, os traigo cómo decompilarlos en unos sencillos pasos. Sí, es necesario tener la Nintendo Switch hackeada. ¿Por qué? Porque necesitaremos las claves de la consola. Podemos conseguirlas por Google en caso de no querer/poder hackear nuestra Switch.

Paso 1. Extraer las claves:

1) Descargamos Lockpick RCM https://github.com/shchmue/Lockpick_RCM/releases y lo descomprimimos donde queramos.
2) Descargamos TegraRCMSmash si no lo tenemos ya: https://switchtools.sshnuke.net/
3) Abrimos TegraRCMGUI y cargamos el .bin de Lockpick.
4) Ponemos la Nintendo Switch en modo RCM y la conectamos al PC.
5) Inyectamos Lockpick y seguimos los pasos que se nos indican en la pantalla de la consola para extraer las claves prod.keys y title.keys en la SD de la consola.
6) Apagamos la consola y metemos la SD en el PC.

Paso 2. Extraer los datos:

Aunque podemos usar Hactool de SciresM, usaremos Hactoolnet porque funciona mejor con actualizaciones.

1) Para empezar necesitaremos descargar hactoolnet: Hactoolnet:https://github.com/Thealexbarney/LibHac/releases

2) Lo descomprimimos donde queramos en nuestro PC.
3) Copiamos prod.keys y title.keys en la misma carpeta.
4) Usando nxdumptool o cualquier otro extractor (o google) obtenemos nuestro juego en formato XCI (formato de cartucho) o NSP (formato digital). Recomiendo en NSP ya que la cabecera no está encriptada.
5) Copiamos el juego a la misma carpeta en la que tengamos hactoolnet.
6) Click derecho en la carpeta > Abrir ventana de comandos aquí > se nos abrirá el cmd
7) Ponemos hactoolnet -t pfs0 "juego.nsp" --outdir "ruta/donde/descomprime"
8) Vamos a dicha carpeta y encontraremos varios archivos. Tomamos el .nca más grande de todos y lo copiamos en otra carpeta. Recomiendo la misma de hactoolnet.

9) Extraer los recursos de nuestro juego:

A: SOLO SI TENEMOS ACTUALIZACIÓN:

9.0) Si queremos desencriptar del todo una actualización (ejemplo: Pokémon Espada), necesitamos sacar su NCA ahora.
9.1) Si hemos desencriptado una actualización, se nos generará un .tik. Abrimos este archivo con HxD o vuestro gestor hexadecimal favorito.
9.2)Vamos al byte 0x180 y copiamos los 32 bytes en un archivo de texto a parte. Necesitaremos ahora esta clave. Esta es la clave llamada Right ID. Ejemplo, en Pokémon Espada es: 2D7A13C17E67C70BE4F1D0537141D99F.
9.3) Volvemos a la carpeta donde tengamos Hactoolnet.
9.4) abrimos el cmd otra vez y ponemos: hactoolnet -k prod.keys "ruta al nca desencriptado en el paso 8". En caso de ser la misma: hactoolnet -k prod.keys base.nca
9.5) Apuntamos la clave que nos muestra. Esta es la TitleKey de desencriptado. En caso de pokémon Espada: 0100ABF008968800000000000000000A
9.6) Abrimos el archivo title.keys en nuestro gestor de texto favorito. Añadimos al final
rightID = titleKey. Ejemplo: 0100ABF008968800000000000000000A = 2D7A13C17E67C70BE4F1D0537141D99F
9.7) Guardamos el archivo.
10) Volvemos a la carpeta donde tengamos Hactoolnet si no estamos en ella. Abrimos la ventana de comandos una vez más.
11) Escribimos el siguiente comando:

Código:
hactoolnet --titlekeys title.keys -k prod.keys "ruta/al/update.nca" --basenca "ruta/al/base.nca" --romfsdir "ruta/donde/exportar/romfs"
--exefsdir "ruta/donde/exportar/exefs"
siendo "base.nca" la ruta al nca del juego base, "update.nca" la ruta al nca de la actualización y "romfs" la ruta donde queremos descomprimir finalmente los archivos del juego.

B: SOLO SI NO TENEMOS ACTUALIZACIÓN:

9.0)Escribimos el siguiente comando:

Código:
hactoolnet --titlekeys title.keys -k prod.keys --romfsdir "ruta/donde/exportar/romfs" --exefsdir "ruta/donde/exportar/exefs" "ruta/al/base.nca"
12-A, 10-B) Si todo ha salido bien, se nos generará una carpeta exefs con el código del juego y romfs con sus recursos gráficos. Normalmente este segundo es el que modificaremos para crear mods gráficos y el primero para romhacks.



Si no necesitamos el exefs (solo para la obtención de recursos y no de código), podéis quitar el

Código:
--exefsdir "ruta/donde/exportar/exefs"
Recordad que necesitáis las claves iguales o superiores a las exigidas por el juego a desencriptar. Es decir, si Pokémon Espada exige claves 9.0.0+, no podréis descomprimirlo con claves 8.0.0 o inferior.

¿Qué os ha parecido?

¡Un saludito!
 
Última edición:

Hunter1991

Pequeño saltamontes
Hola amigo, muy buen post, estoy por intentar sacar los recursos de un xci de TLOZ, trabajo de diseñador y necesito extraer los png de los items, tengo una consola con hack, crees que tambien me pueda ayudar aunque no sea un juego de Pokemon? Desde ya gracias
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Hola amigo, muy buen post, estoy por intentar sacar los recursos de un xci de TLOZ, trabajo de diseñador y necesito extraer los png de los items, tengo una consola con hack, crees que tambien me pueda ayudar aunque no sea un juego de Pokemon? Desde ya gracias
Ten en cuenta que Botw y Totk usan diferente formato pero para las texturas debería valerte este mismo tutorial y continuar con el de extracción de recursos en este mismo subforo ;)
 
Arriba