[Tutorial]: Uso de hacbuild. (Eliminar actualizaciones de un xci y conversión de nsp a xci)

Hacbuild es una herramienta creada por LucaFraga cuyo objeto es compilar archivos nca en formato xci.

Imagen
https://gbatemp.net/threads/hacbuild-th ... er.509412/
hilo_hacbuildgui-convertir-juegos-de-la-eshop-a-xci-en-proceso_2291910

Este tutorial abarcará los siguientes aspectos:
  • Conceptos generales sobre los formatos XCI, NSP y NCA
  • Reducción de espacio ocupado por los XCI en el disco duro mediante eliminación de partición update (y reducción del padding de los archivos que lo conforman) mediante hacbuild.
  • Conversión de archivos en formato digital (NSP o NCA) a XCI

CONCEPTOS GENERALES
[
¿Qué es un nca?
Un nca es un contenedor secundario con diversas funciones dentro del contenedor principal, ya sea este xci o nsp.
http://switchbrew.org/index.php?title=NCA

¿Qué es un nsp?
Un nsp es un contenedor de archivos pensado para desarrolladores. Un nsp tiene una estructura simple compuesta de - 4 archivos NCA:
  • Program: Archivo con los datos del juego o programa
  • Meta: Archivo con los metadatos del juego o programa
  • Legal: Archivo con las advertencias legales de uso
  • Control: Archivo con datos sobre como cargar el programa, por ejemplo que idioma debe de saltar al inicio..
- 1 ticket y 1 certificado. Necesarios para instalar la licencia en la consola
- Un archivo xml en el que se especifican las funciones que cumple cada archivo. (Es decir el xml le dice a la consola que pepito=program, juanito=meta, jaimito=legal y jorgito=control)
http://switchbrew.org/index.php?title=NCA

¿Qué es un xci?
Un xci es una imagen de cartucho de Nintendo Switch que recibió ese nombre internamente por "NX Card Image"
http://switchbrew.org/index.php?title=Gamecard_Format
Un xci está formado por varias particiones dependiendo de si es tipo "CART 1" o "CART 2".
  • SECURE: partición que incorpora los NCA "program", "meta", "legal" y "control"
  • UPDATE: partición que incorpora las actualizaciones del sistema operativo
  • NORMAL: partición que puede ir vacía o incorporar el NCA "meta" y el NCA "control". El motivo lo veremos más adelante
  • LOGO (en los "cart 2"): Es una partición con el logo de Nintendo y la animación de la switch que sale al inicio de los juegos.

¿Puede incorporarse actualizaciones a un xci?
La respuesta simple es que sí, aunque yo aún no he conseguido crear uno funcional. Basta con introducir los NCA que componen la actualización en nsp en la partición "secure", así como ticket y certificado de la actualización.
En la partición "normal" deben de ir los NCA "meta" y "control" del juego principal para que la Switch sepa que archivos NCA corresponden al juego.
En mi caso no he conseguido pasar del error de tarjeta con lo que creo que el quid está en editar el "meta" y el "control" del juego principal para indicarle que el cartucho incorpora la actualización. (suposición mía)
Más info sobre como identificar los NCA:
http://switchbrew.org/index.php?title=NCA

Aquí teneis un xci con actualizaciones de juego, en general todos los cartuchos de revisión las tienen y curiosamente usan tickets como los nsp.
Imagen
¿Cuánto espacio se puede ahorrar eliminando la partición update?
Depende del juego pero por ejemplo veamos el caso de Bayonetta:

- Sin trim 16Gb:
Imagen

- Con trim 9.375,428 kB
img]http://subirimagen.me/uploads/20180813163051.PNG[/img]

- Después de reconstruirlo con hacbuild quitándole el update 8.998,632kB
Imagen


ELIMINAR LA PARTICIÓN UPDATE Y REDUCIR EL TAMAÑO DEL ARCHIVO
1.- PASOS PREVIOS
Necesitaremos:
  • Hacbuild: Versión 1.0.0.1 (la versión que pongo ya que la que sale como última en github es la penúltima y da fallo de desbordamiento con juegos grandes)
    https://github.com/LucaFraga/hacbuild/r ... c257600a92
  • Un archivo keys.txt que tenga como mínimo la clave "XCI Header Key"
  • Un medio para extraer los nca que componen un xci, por ejemplo EZ-HAC https://github.com/Cyuubi/EZ-HAC/releases
  • Si usamos EZ-HAC necesitaremos hactool
  • Si usamos EZ-HAC un archivo keys.dat con las claves de la consola
  • Cierto conocimiento de la línea de comandos de windows.
Nota: Los archivos keys.txt y keys.dat se corresponden con un archivo de texto renombrado de distintas formas según el programa, el cuál incumple las normas de EOL por lo que debereis de buscarlo por vuestros medios

Nuestra carpeta con hacbuild tendrá el siguiente aspecto:
Imagen

Nuestra carpeta con EZ-HAC tendrá el siguiente aspecto:
Imagen

2.- Usos y advertencias
- Usos:
  • Eliminar la partición update reduciendo el tamaño de los xci.
  • Aplicar mods a los juegos con la ayuda de NCA Builder (por probar)
  • Convertir juegos de la eshop a xci
  • Agregar updates o dlcs al xci (sin probar editando los NCA, sin conseguir que funcione por método directo)
    - Limitaciones:
  • La conversión de juegos de la eshop a xci no está documentada, en este momento SX OS reconoce los juegos pero sin los metadatos adecuados da el cartucho como dañado. Se puede también usar los metadatos de un juego de cartucho pero aunque en este caso no de el juego como dañado no lo cargará o se quedará la pantalla en negro
[/list]

3.- DECOMPILANDO EL XCI
Para decompilar los xci yo he usado EZ-HAC. Simplemente lo abrimos, seleccionamos el archivo a decompilar y la ruta donde guardarlo.

El resultado será el siguiente:
Imagen


4.- ELIMINANDO LA PARTICIÓN UPDATE
Simplemente entrais en la carpeta "update" y borrais todos los archivos.
Imagen

5.- ELIMINAR LA PARTICIÓN LOGO
Si el juego es un "cart 2" necesitareis borrar la carpeta "logo" para que el archivo compilado funcione en vuestra switch. Simplemente borrad la carpeta por completo.

5.- OBTENIENDO "game_info.ini"
Abrimos la consola de sistema, nos vamos a la ruta donde tenemos hactool y introducimos el siguiente comando:
hacbuild.exe read xci <in_file>
En este caso:
cd C:\hacbuild
hacbuild.exe read bayonetta.xci

Nos grabará en la misma ruta un bayonetta.ini que renombraremos a game_info.ini y pondremos junto a las carpetas update, normal y secure

6.- RECOMPILANDO EL JUEGO
Usamos el comando hacbuild xci_auto <in_folder> <out_file>
En este caso llamándose la carpeta que contiene normal, secure y update "bayonetta" y el archivo final "nuevo_archivo.xci"
cd C:\hacbuild
hacbuild.exe xci_auto "C:\hacbuild\bayonetta" nuevo_archivo.xci


Y con esto tendremos un archivo que pesará 260mb menos, lo cuál unido al espacio que se elimina por espacio vacío en algunos juegos pequeños como el flashback es un cacho respecto al original dumpeado sin trimear.
Flashback, por ejemplo, baja a 255mb de los 2 gigas que pesa la imagen original.
Imagen
Flashback sin trimear
Imagen
Flashback trimeado
Imagen

Probado sin problemas con:
    [* ]Axiom Verge
    [* ]Bayonetta
    [* ]Crash Bandicoot N'Shane Trilogy
    [* ] Flashback
    [* ]Kirby
    [* ]Mario Tennis Aces
    [* ]Penny Punching Princess
    [* ]Mario Tennis Aces
--------------------
Fallo:
  • Azure Striker Gunvolt. seguramente algún despiste mío al compilar. Más pruebas pronto
Con los cart 2 como decía antes falla, tengo comprobado que hay una variable que debería de permitir generarlo como cart 1 en la cabecera pero la tengo sin identificar.

Para método automático usar NX-Trimmer:
NX-Trimmer v0.1
Más información:
hilo_ho-xci-builder-conversion-automatica-de-archivos-nsp-a-xci-anadido-nx-trimmer-by-julesrussel_2298146

CONVERTIR UN NSP EN XCI
1.- PASOS PREVIOS
Necesitaremos:
Nota: Los archivos keys.txt y keys.ini se corresponden con un archivo de texto renombrado de distintas formas según el programa, el cuál incumple las normas de EOL por lo que debereis de buscarlo por vuestros medios

Nuestra carpeta de hacbuild tendrá el siguiente aspecto:
Imagen

Nuestra carpeta de decrypt_xci_nca_nsp tendrá el siguiente aspecto:
Imagen

Nuestra carpeta ztools tendrá el siguiente aspecto:
Imagen

2.- Usos y advertencias
- Usos:
  • Crear un archivo xci a partir de un .nsp
- Limitaciones:
Hace falta que el juego digital tenga la licencia instalada en la consola, si bien el juego puede estar desinstalado. Esto puede hacerse
  • Habiendo descargado con anterioridad el juego digital en la consola que va a usar el xci
  • Habiendo instalado el nsp con anterioridad en la consola.
  • Instalando un nsp de tinfoil con el instalador de SX.
    (Este es un tipo de archivo que en las últimas versiones de tinfoill da error de instalación al no pasar verificado de firmas)
    Este archivo incorpora el NCA "control", el ticket, un certificado del nsp y un xml descriptivo del archivo. Podeis generarlo a partir del nsp con nspBuild https://gbatemp.net/threads/nspbuild-bu ... es.509816/
    o descargándolo por CDN, de lo segundo no puedo daros instrucciones al ir en contra de la normativa de EOL.
[/list]

3.- DECOMPILANDO EL NSP
Para decompilar los nsp yo he usado decrypt_xci_nca_nsp. Simplemente arrastrad el archivo .nsp sobre Drag_XCI_NCA_NSP_HERE.bat y cuando os pregunte pulsad en el tecldo "1". Obtendreis una carpeta "nspDecrypted"
Dentro de esa carpeta tendreis algo como esto:
Imagen

4.- PREPARANDO LOS ARCHIVOS PARA HACBUILD
Simplemente creais 3 carpetas "normal", "secure" y "update" e introducís los 4 NCA dentro de "secure" dejando las otras dos vacías.

5.- OBTENIENDO "game_info.ini"
Necesitareis un game_info de un juego cat 2. Podeis saber que juegos son cart 2 aquí http://nswdb.com/
Yo usé el Mario Aces.
Abrimos la consola de sistema, nos vamos a la ruta donde tenemos hactool y introducimos el siguiente comando:
hacbuild.exe read xci <in_file>
En este caso:
cd C:\hacbuild
hacbuild.exe read cart2.xci

Nos grabará en la misma ruta un cart.ini que renombraremos a game_info.ini y pondremos junto a las carpetas update, normal y secure.
El resultado final será el siguiente:
Imagen

6.- RECOMPILANDO EL JUEGO
Usamos el comando hacbuild xci_auto <in_folder> <out_file>
En este caso llamándose la carpeta que contiene normal, secure y update "nspDecrypted" y el archivo final "nuevo_archivo.xci"
cd C:\hacbuild
hacbuild.exe xci_auto "C:\hacbuild\nspDecrypted" nuevo_archivo.xci


7.- Ejecutando el juego
Si nuestra consola tiene la licencia del juego instalada no deberíamos tener problemas ejecutándolo desde SX OS. En caso contrario investigad sobre como crear un nsp de tinfoil y podreis agregar la licencia instalándolo con el instalador de SX OS.
Una vez realizado esto podremos cargar el archivo como si fuera un cartucho.
Imagen

Para método automático usar XCI_Builder:
XCI_Builder_v0.5.5
Más información:
hilo_ho-xci-builder-conversion-automatica-de-archivos-nsp-a-xci-anadido-nx-trimmer-by-julesrussel_2298146
Muchas gracias por el tutorial compa
Saludos
Es decir, que si nunca conectas la consola al online y los juegos los pasas por el Hacbuild para quitar el aviso de actualización, en teoría reduces más el riesgo de cagarla con un ban no?
@okenshin No, no tiene nada que ver. Las actuaizaciones de las que hablamos son las del Sistema Operativo, las cuáles llevan todos los juegos ya que al estar firmados con las claves de determinado FW necesitas estar en ese frmware para poder jugarlos. Esto reduce el espacio que ocupa el XCI al quitar las actualizaciones del sistema que realmente una vez actualizados no valen para nada.
El programa elimina también algo más de espacio que el trimming normal incluso si no borras las actualizaciones ya que aparentemente genera el root.hfo con menos padding que Nintendo).
No tiene que ver con las actualizaciones del juego, las cuáles puedes instalar por nsp. Estos nsp al ser generados externamente no incorporan tickets, ya que no los necesitan al no estar cifrados. (Hablo de las actualizaciones, los juegos base tal cuál se descargan del servidor de nintendo necesitan el ticket porque sus nca van cifrados en base a la titlekey que incorpora el ticket.)
JulesRussel escribió:@okenshin No, no tiene nada que ver. Las actuaizaciones de las que hablamos son las del Sistema Operativo, las cuáles llevan todos los juegos ya que al estar firmados con las claves de determinado FW necesitas estar en ese frmware para poder jugarlos. Esto reduce el espacio que ocupa el XCI al quitar las actualizaciones del sistema que realmente una vez actualizados no valen para nada.
El programa elimina también algo más de espacio que el trimming normal incluso si no borras las actualizaciones ya que aparentemente genera el root.hfo con menos padding que Nintendo).
No tiene que ver con las actualizaciones del juego, las cuáles puedes instalar por nsp. Estos nsp al ser generados externamente no incorporan tickets, ya que no los necesitan al no estar cifrados. (Hablo de las actualizaciones, los juegos base tal cuál se descargan del servidor de nintendo necesitan el ticket porque sus nca van cifrados en base a la titlekey que incorpora el ticket.)


Entendido @JulesRussel, vamos, es algo así como cuando descomprimías la ISO de un backup de X360 y quitabas la carpeta $Systemupdate para reducir espacio (y para que no te exigiese actualizar el FW)....
Gracias, buen tutorial.
Este es el camino para poder insertarle a un XCI las actualizaciones y DLC... estaría bien.
@giovani Sí, fíjate en esta imagen que puse:
Imagen

Es el Zelda Breath of the Wild rev. Si te fijas tiene más archivos .nsp de lo normal, es porque incorpora las actualizaciones del juego (hasta esa fecha), un ticket y un certificado (carpeta secure). El ticket y el certificado parecen estar relacionados con las actualizaciones con lo que analizándolos debería de poder añadirse las actualizaciones de forma natural.
Otra forma podría ser editando los nca y combinando los directorios como en LayeredFS pero esa parece más limpia y menos propensa a posibles errores.

Ahora que me doy cuenta no expliqué el uso de las carpetas.

En secure van los contenidos del juego que son cuatro nca:
- program: El juego en sí
- meta: metadatos
- control: Datos sobre como cargarlo, idiomas...
- manual/legal: Manual de juego o advertencias legales
Si el juego lleva updates lleva los nca de estos, un ticket y un certificado. El ticket y el certificado coinciden con la owner id de los nsp de actualizaciones, los cuáles no son necesarios para construirlos, con lo que tiene pinta de que es justo el contenido del nsp de actualización.

Normal puede ir vacío (cart 2) o con el nca control y meta repetidos.

Update: LAs actualizaciones del sistema

Logo En cart 2 lleva la animación de inicio
okenshin escribió:Es decir, que si nunca conectas la consola al online y los juegos los pasas por el Hacbuild para quitar el aviso de actualización, en teoría reduces más el riesgo de cagarla con un ban no?

https://www.youtube.com/embed/Gb0cJP7O75Q?start=0&end=9
CrusardGameamos escribió:
okenshin escribió:Es decir, que si nunca conectas la consola al online y los juegos los pasas por el Hacbuild para quitar el aviso de actualización, en teoría reduces más el riesgo de cagarla con un ban no?

https://youtu.be/Gb0cJP7O75Q


Te salva que has usado una referencia de los Simpsons. De haber usado cualquier otro recurso literario o gráfico, no te estaría respondiendo en estos mismos términos...
okenshin escribió:
CrusardGameamos escribió:
okenshin escribió:Es decir, que si nunca conectas la consola al online y los juegos los pasas por el Hacbuild para quitar el aviso de actualización, en teoría reduces más el riesgo de cagarla con un ban no?

https://youtu.be/Gb0cJP7O75Q


Te salva que has usado una referencia de los Simpsons. De haber usado cualquier otro recurso literario o gráfico, no te estaría respondiendo en estos mismos términos...

Despues de un rato investigando he averiguado como cortar el video en la URL justo antes de que me citaras XD

En cualquier caso, no se de dodne sacas lo del ban, los baneos estan implicitos en practicamente cualquier metodo que uses independientemente que le quites las actualizaciones o no, esto es simplemente para bajar mas aun el tamaño del .XCI, no he visto ninguna referencia sobre baneos en el hilo xD
CrusardGameamos escribió:
okenshin escribió:
CrusardGameamos escribió:https://youtu.be/Gb0cJP7O75Q


Te salva que has usado una referencia de los Simpsons. De haber usado cualquier otro recurso literario o gráfico, no te estaría respondiendo en estos mismos términos...

Despues de un rato investigando he averiguado como cortar el video en la URL justo antes de que me citaras XD

En cualquier caso, no se de dodne sacas lo del ban, los baneos estan implicitos en practicamente cualquier metodo que uses independientemente que le quites las actualizaciones o no, esto es simplemente para bajar mas aun el tamaño del .XCI, no he visto ninguna referencia sobre baneos en el hilo xD


Realmente lo del ban era una pregunta. En una primera lectura había entendido que el programa servía para eliminar los archivos del XCI que te solicitaban la actualización del juego para (pensaba erróneamente) evitar actualizarlos y protegerte un poco más.

No hace mucho que tengo una Switch y estoy a la espera de mi SX Pro... mientras tanto estoy leyendo todo lo que puedo y la paranoia reinante que hay con el ban y el cómo evitar ha hecho el resto a la hora de realizar yo esa pregunta.

De todas formas, el creador del hilo me lo ha vuelto a explicar muy amablemente y ya me ha quedado claro. Por favor, un poco de paciencia ;)
Tutorial actualizado. Añadido como regenerar los archivos cart 2 y como convertir los archivos nsp a xci.
En general reorganizado también todo un poco XD
hay dos cosas que no me quedan claro del todo, con esto es posible converitr desde xci a nsp?
si la respuesta a eso ultimo es SI, esos nsp se pueden instalar por devmenu usando hekate o reinx?
Darkomg escribió:hay dos cosas que no me quedan claro del todo, con esto es posible converitr desde xci a nsp?
si la respuesta a eso ultimo es SI, esos nsp se pueden instalar por devmenu usando hekate o reinx?

-x2
Gracias!
Edit 1: Editado el título de apartado nº 3 que veo que me acaban de avisar de que estaba erróneo.

Edit 2: Estoy preparando un batch para la conversión de nsp a xci con solo arrastrar el archivo. La idea es hacer que cree también un nsp para instalar la licencia del juego a partir de los archivos del nsp sin que tengais que conseguirlo por vuestra cuenta.
El batch se basará en los programas de este hilo y extraerá los nca del nsp reordenándolos en las carpetas adecuadas, usará hacbuild para crear un xci y tomará en NCA de control, el ticket, el certificado y el xml para crear un nsp con nspbuild.
El xml lo editará para eliminar los datos de los archivos meta y program.
Como game_info.ini usará los datos de un preset por defecto, al menos de momento hasta que se compruebe si el preset funciona con todos los tamaños de archivos. De todas formas se podrán cambiar los datos del preset.
Cuando esté listo la idea es reempaquetar todo lo necesario con la excepción del keys.txt que tendreis que conseguir por vuestra cuenta.

@Darkomg @Darkomg
Sí, el programa usa hace algo similar pero creando un ticket falso al reconstruir los NCA como nsp.
https://gbatemp.net/threads/4nxci-open- ... er.513758/
Necesitareis también un parche para que funcionen los juegos convertidos. Se que hay uno para ReiNX y que un tío sacó otro en gbatemp para hekate pero no se donde está el hilo.
JulesRussel escribió:Edit 2: Estoy preparando un batch para la conversión de nsp a xci con solo arrastrar el archivo. La idea es hacer que cree también un nsp para instalar la licencia del juego a partir de los archivos del nsp sin que tengais que conseguirlo por vuestra cuenta.
El batch se basará en los programas de este hilo y extraerá los nca del nsp reordenándolos en las carpetas adecuadas, usará hacbuild para crear un xci y tomará en NCA de control, el ticket, el certificado y el xml para crear un nsp con nspbuild.
El xml lo editará para eliminar los datos de los archivos meta y program.
Como game_info.ini usará los datos de un preset por defecto, al menos de momento hasta que se compruebe si el preset funciona con todos los tamaños de archivos. De todas formas se podrán cambiar los datos del preset.
Cuando esté listo la idea es reempaquetar todo lo necesario con la excepción del keys.txt que tendreis que conseguir por vuestra cuenta.

Aunque ya lo he hecho por el otro hilo, te vuelvo a felicitar y a agradecer por aquí por el gran trabajo que estás haciendo.

Editado:
Por cierto, me pregunto si los xci resultantes de la conversión desde nsp serían tratados igual por el SX que los xci habituales provenientes de cartuchos oficiales...

Quiero decir, si por error al generarse el xci a partir del nsp no se le insertara el cert (que imagino está dentro del nsp) quedando un xci sin cert como los que se pueden encontrar por internet y que puede montar y ejecutar el SX... ¿también lo podría ejecutar el SX sin problema al igual que los habituales porque quizás no encontraría diferencia, o por el contrario sí que habría diferencia porque este xci "personalizado" como tal quizás carece de algún TitleID, ROMID o similar propio del formato cartucho (por ejemplo el KORG Gadget es exclusivo en digital no teniendo versión cartucho) lo cual levantaría sospechas a ninty y por tanto podría banearte?

Lo del baneo sé que nunca se sabe, pero tengo esa curiosidad... en cualquier caso, a lo dicho: ¡genial el trabajo/tuto/batch!. Saludos.
@Benaviz Los xci que vienen de nsp necesitan el certificado y el ticket que lleva el nsp, como ahora mismo no encuentro forma de introducirlo sin que de error al cargar el cartucho la forma es crear un nsp que pesa unos pocos kb (no llega al mega de tamaño) para instalar la licencia. Esto si ya tienes la licencia instalada en la consola no hace falta, es decir en caso de que ya hubieses instalado el nsp de la consola o hubieses bajado el juego de la store.
A lo que te refieres tú creo que es a la cabecera o certificado online, no la tendría porque no haría falta. Aunque se cargue como cartucho a efectos de licencia funciona como un nsp con lo que debería de funcionar online pero al igual que el nsp sería un instaban.
En este caso el certificado es un archivo "cert" que también llevan los xci pero solo cuando tienen actualizaciones incorporadas. Para incorporar las actualizaciones tiene toda la pinta de que hace falta editar los nca.
@JulesRussel ah, pensaba que el xci que se genera es un xci "estándar" como tal y que por tanto no debería de incluir el ticket del nsp en él (pues tengo entendido que el ticket va solo en los nsp y no tiene uso en los xci) y que solo debería de incluir el cert (aunque pudiera estar en blanco como ocurre con los backups que hay por internet).

Pero ya veo por lo que me cuentas que no es así, y que al uso este xci "personalizado" funciona como un nsp que requiere una licencia (término por cierto que me suena nuevo en cuanto a que solo había oido hablar de "cert" y "ticket", pero que tampoco es raro pues solo soy un usuario que desconozco mucho), por lo que entiendo que su uso provocaría baneo o instaban como dices y por tanto personalmente evitaré usar de momento para minimizar el riego de baneo.

Entiendo que este tema es complejo y que hay lagunas de información que supongo irán desapareciendo poco a poco gracias a tu trabajo y al de otros. Saludos y buen trabajo.
Esperando ese "paquete" para facilitar el tema de conversión de nsp a xci. Agradecer tu trabajo.
@alvarions Tener lo tengo ya casi, ya tengo automatizada la generación del xci y la limpieza del xml. Quedarí crear el nsp que hay que instalar con la "licencia" en caso de no estar ya en tu consola.
Lo que no se es si lo subiré antes del lunes porque me voy mañana de fin de semana fuera y quiero testearlo antes un poco.
Cuando esté terminado va a ser arrastrar al bat y te dejar el xci y el "nsp de licencia" en una carpeta con el nombre del nsp original.
@Benaviz Mira, este es el cartucho de Zelda Revisión 1 sin tocar. Pasa lo mismo con otros revisión 1. Llevan el ticket y el certificado de la actualización, con lo que oficialemente para las actualizaciones NIntendo lo hace así.
En este caso lo que pasa es que hace falta tener el ticke instalado en la consola para el juego principal porque los nca que componen el juego digital se encriptan con la title key.
En teoría desencriptando los nca con ncabuilder y recompilandolos sin encriptar se podría hacer funcionar el xci sin instalar nada pero cuando hago esto SX OS no me da error de lectura del cartucho e intenta cargarlo pero sin conseguirlo. El tema está en que los archivos cambian de nombre al no firmarse con la titleky y el ncabuilder no te deja usarla para firmarla.
Con los nsp creo que no pasa el error al ir el archivo xml y decir este para que siver cada archivo. Con los xci igual hay que editar algo en algún archivo antes de firmarlo.
Imagen
@JulesRussel Si me lo quieres pasar por mp para hacer pruebas sin problemas. Siempre estoy toqueteando y probando, esta opción me parece interesante aunque nunca utilo xci. Tengo sx os y uso para el dia a dia un hakate modificado a mi gusto.
@JulesRussel ah pues no sabía que las actualizaciones llevaran ticket, una cosa más que sé.
Pues nada, supongo que esto es investigación, desarrollo, ensayo y error hasta conseguir lo buscado, y sobra decir que te tomes tu tiempo para probar, que lo primero es lo primero, y yo la verdad que como decía siento no poder probar la herramienta (al menos de momento) porque no quisiera arriesgar más aun los servicios online de ninty en mi consola, pero desde luego estoy "suscrito" a tu hilo porque el tema es, como ya he mencionado, muy interesante, pero por suerte hay compas como alvarions que pueden probar tu herramienta y quién sabe si en algún momento yo también y en cualquier caso estoy atento.
a la final era solo de nsp a xci y no al reves entonces?
@Darkomg Sí, error mío al poner el título. Para el proceso contrario teneis este programa. https://github.com/The-4n/4NXCI/releases
no he entendido muy bien como funciona esto. a ver si van por aqui los tiros...digamos, que los juegos, vienen por defecto, con una particion que ocupa mas espacio, para que se puedan actualizar, desde los servidores de nintendo. pero que esa particion, la puedes quitar, con lo que quitas gran parte de espacio que no sirve mas que para lo comentado, y actualizar manualmente? algo asi seria?
gracias por el tuto. parece muy interesante todo esto, aunque complicado para mi. pero seguro que gracias a este hilo, acabaré pillando el tema.
Lanzado xci builder v0.5. El automatizador prometido en el hilo.
Creo hilo a parte ya que tengo previsto ir añadiéndole funciones y no quiero quitarle tampoco visibilidad al uso manual de hacbuild.
hilo_ho-xci-builder-conversion-automatica-de-archivos-nsp-a-xci-by-julesrussel_2298146#p1746326909

yggdrassilbcn escribió:no he entendido muy bien como funciona esto. a ver si van por aqui los tiros...digamos, que los juegos, vienen por defecto, con una particion que ocupa mas espacio, para que se puedan actualizar, desde los servidores de nintendo. pero que esa particion, la puedes quitar, con lo que quitas gran parte de espacio que no sirve mas que para lo comentado, y actualizar manualmente? algo asi seria?
gracias por el tuto. parece muy interesante todo esto, aunque complicado para mi. pero seguro que gracias a este hilo, acabaré pillando el tema.

Sí, la parte de "recortado extra" de los xci funciona así. Los xci llevan 3/4 particiones y de estas la partición update puede eliminarse al no ser necesaria para más que actualizar la consola a la versión mínima del juego.
También reduce un poco el padding. Es decir comprime un poco más los archivos que componen el juego con lo que se gana un pelín más que lo que ocupa la partición update.
Me imagino que haré también un automatizador de esta otra parte del tuto.
@JulesRussel genial, me parece un buen hilo a seguir. porque creo que se puede ganar mucho reduciendo el tamaño de los XCI, ya que algunos ocupan una bestialidad.
Gracias por aportar tus conocimientos. Por gente como tu, los demás aprendemos mucho. Y creo que hay que agradecer este esfuerzo.

saludos
@JulesRussel Probastes 4NXCI v0.9-Beta 2, funciona o todavia esta en una etapa muy temprana? :) .
@Lyserg07 Lo intenté el otro día pero creo que no me coincidía el formato de los keys.txt que tengo porque me daba un aviso, supongo que tiene que ver con alguna clave a la que unos devs llaman de una forma y otros de otra.
Tengo que echarle un vistazo de todos modos porque en la última versión separa las actualizaciones y los dlcs en archivos independientes.
Sacaron una gui que ayuda en su uso, por si te interesa añadirla a tu hilo
https://gbatemp.net/threads/x2n-gui-a-g ... ci.515217/
@JulesRussel Gracias en algun momento voy a probarlo con el Gui :D.
X2N-GUI.
Hola!

he leido el hilo pero no me queda claro si con esto podemos saltarnos sin problema el poder jugar sin tener la switch actualizada, alguien me ilumina por favor? :D
Edit: Actualizado hilo inicial reflejando la existencia de los métodos automáticos.


pspklp
Esto elimina solo la partición update (en los xci), si el juego requiere una versión superior no te va a dejar jugar igualmente.

Eso es posible (hasta cierto punto) en los nsp. Para ello tienes que editarlos del siguiente modo:
hilo_tutorial-usar-juegos-nsp-para-versiones-de-fw-superiores-en-fw-inferior_2295641

Lo que puedo hacer es que XCI_Builder ponga ese valor que se supone hace falta a 0 pero aún así haría falta tener el firmware de la versión con que se compilaron los NCA que componen el nsp. La única forma de saltarse esto sería tocar los nca y recompilarlos para una versión menor con NCABuilder:
https://gbatemp.net/threads/ncabuilder- ... ly.514313/
Eso sí el NCABuilder en su versión 0.1 no va muy fino, con los cambios que Simon va a hacr en la 0.2 seguramente funcionen estas cosas.

En cuanto a lo primero si quieres hago una versión de prueba con esa opción pero yo estoy en la 5.1, necesitaría a alguien que la probase.
Esto funcionaría solo con los nsp ya que los xci ya están configurados a su versión mínima.
33 respuestas