[HO] XCI Builder - Conversión automática de archivos nsp a xci (Añadido NX-Trimmer) by JulesRussel

1, 2, 3, 4, 517
JulesRussel
MegaAdicto!!!
4.942 mensajes
desde ene 2012
Editado 69 veces. Última: 4/11/2018 - 16:55:16 por JulesRussel.
Edit actualizado NUT_Cleaner y añadido soporte para creación de multicontenido.
Renombrado a NSC_Builder (Nintendo Switch Cleaner and Builder)
https://github.com/julesontheroad/NSC_BUILDER

hilo_ho-nsc-builder-eliminacion-de-encriptacion-por-titlerights-en-nsp-y-multi-content-builder_2301958#p1746496908

Después de describiros el proceso manual de creación de archivos xci a partir de archivos nsp os presento un automatizador para haceros más fácil el proceso.
Últimas Ediciones
  • Edición 02/09/2018:
    Actualizada release de XCI-Builder a v0.6.5.2. El fin es evitar la generación de archivos [lc].nsp en juegos sin .tik. Funcionando con Hero Academia One's Justice parcheado al inglés. Supongo que la generación de nsp sin ticket debe funcionar bien ahora en SX OS.
    Publicación en gbatemp y github. Nuevas versiones de ambos programas. Cuando tenga un rato edito el hilo.
    https://github.com/julesontheroad
    https://gbatemp.net/threads/nx-trimmer- ... ld.516870/
    Edición 30/08/2018:
    Lanzado NX-Trimmer 0.3 con compatibilidad con cualquier xci y un montón de cambios que podeis leer en el readme o en la lista de cambios añadida más abajo.
    Mayor explicación en viewtopic.php?p=1746391679
    Edición 29/08/2018:
    Actualización de estado de NX-Trimmer en:
    viewtopic.php?p=1746378120
Versiones actuales (github):

XCI-Batch-Builder
XCI_Builder
NX-Trimmer
Hilos de gbatemp:
https://gbatemp.net/threads/nx-trimmer- ... ld.516870/
https://gbatemp.net/threads/xci-builder ... st-8258062
Post pendiente de actualizar.

Versiones antiguas de XCI Builder (mediafire)

Versiones antiguas de NX-Trimmer

Lista de cambios de XCI Builder
v0.5.0 - Lanzamiento inicial
v0.5.1 - Eliminación de código redundante
v0.5.2 - Selección de xml correcto en archivos nsp con múltiples xml (Dumps BBB)
v0.5.3 - Corrección en archivo _lc.nsp en archivos nsp con tag IdOffset (Dumps BBB)
v0.5.4 - Corrección en archivo .xci resultante de conversión de archivos que incorporan imágenes jpeg (Dumps BBB)
v0.5.5 - Arreglado bug que impedía la compatibilidad con los archivos generados por CDNSP en versión 0.5.4

Lista de cambios de NX-Trimmer
v0.3.0 - Realizados bastantes cambios desde la verisón inicial. Los cuáles se detallan a continuación.
I - Añadida compatibilidad con juegos con más de 5 nca. Estos se dividen en dos casos, los cuáles se detallan a continuación.
a) Juegos con manual en html (5 nca). En estos se ha decidido eliminar el manual del juego, lo cuál no impide su ejecución.
El intento de acceder al manual desde los juegos que lo incluyen resulta en una acción que no da lugar a ningún
resultado. Los juegos probados pueden jugarse perfectamente sin manual.
b) Juegos rev con actualizaciones o incluso dlcs. En estos juegos se ha decidido eliminar las actualizaciones y dlcs del xci.
Adicionalmente se crean nsps con las actualizaciones o dlcs correspondientes. Para esta función es necesario tener instalado
Python en el ordenador.
II - La ruta de salida se ha movido ha la carpeta "output_nxt" para tenerlo todo más organizado y de cara a que se pueda tener NX-Trimmer
en la misma carpeta que XCI_Builder, el usará "output_xb" como salida.
III - Reformado de carpeta ztools, eliminando aplicaciones.
IV - Actualización de hacbuild.exe para corregir el warning por falta de "xci_header_key", la cuál no es necesaria para completar el proceso pero ahora se puede incorporar rellenando el archivo "header_key.txt" en ztools.
V - Añadida plantilla para keys.txt en la carpeta ztools
VI - Añadido sistema de códigos para la salida de los ficheros. Este consiste en lo siguiente:
a) Se eliminan las tags [] de los ficheros. Para eliminar cosas como trimmed.
b) Se eliminan los caracteres _ (más que nada porque no me gusta como quedan)
c) Se añade las siguientes tags a la salida.
[nxt] xci trimeado con NX-Trimmer
[nm] "no manual", es decir se ha eliminado el manual para hacer funcionar el xci.
[c1][c2]... En nsp de salida: número de orden del contenido adicional incluido en el xci. (Actualizaciones, dlcs ...)
[dlc] En nsp de salida significa que el contenido es un dlc
[upd] En nsp de salida significa que el contenido es una actualización
d) Los dlc de salida son ticketless, deberían ir cifrados con la clave de cartucho y ser solo funcionales con SX OS. Para hacerlos funcionales habría que añadir un ticket falso como hace 4XCI, lo cuál no es mi objetivo actual.
e) Las actualizaciones usan common tickets firmados por Nintendo, deberían de ser funcionales con cualquier FW.
VII - Se elimina el contenido de la partición "normal" ya que está pensada en caso de que cambie el contenido del nca "meta" y el nca "control"
en revisiones de cartuchos, a día de hoy estos se incluyen también en secure y no es necesaria la copia en "normal". Los cartuchos card2 llevan normal vacío por este motivo. Dependiendo de las revisiones que introduzcan los futuros card3 puede ser necesario actualizar el programa.
VIII - Mejor uso de hactool, extrayendo únicamente el contenido de la partición secure.
NOTA: Si se viene de una versión anterior sustituir las aplicaciones de ztools. Se ha actualizado hactool y se ha realizado una pequeña modificación en hacbuild.
v0.2.x - Versiones de desarrollo
v0.1.0 - Lanzamiento inicial

Funcionamiento básico de XCI Builder
Esta aplicación funciona arrastrando directamente el archivo nsp sobre el bat "XCI_Builder_v0.5.x.bat" a partir de esto os creará una carpeta con el nombre del nsp, la cuál contendrá dos archivos:
- El xci resultante
- Un nsp con la licencia necesaria para que funcione el xci, el cuál suele pesar unos pocos kb (normalmente menos de 1mb)
Necesitareis:
- Un ordenador con windows
- Un archivo keys.txt, el cuál es el mismo que usa hacbuild y todas sus aplicaciones derivadas. Este no lo puedo distribuir en el pack debido a la normativa del foro.
https://github.com/SciresM/hactool
- Python para que os cree el nsp de la licencia ya que usa nspBuild.py

Funcionamiento básico de NX-Trimmer
I.- Para el correcto funcionamiento de la aplicación rellenar el archivo "keys.txt" en la carpeta ztools.
Más información: https://github.com/SciresM/hactool
II.- Opcionalmente rellenar el archivo header_key.txt con el valor de xci_header_key para ello google es vuestro amigo.
III.- Para recortar un xci arrastrar el archivo xci sobre "NX-Trimmer_v0.3" y esperar a que se cierre la consola de sistema.
IV.- Se obtendrá una carpeta con el "nombre del archivo original" en output_nxt. Dentro habrá un archivo xci de menor
tamaño que el original
V.- En caso de que el cartucho incorpore actualizaciones o dlcs se añadirán a la misma carpeta
V.- Adicionalmente se almacenará el archivo game_info.ini del juego en la carpeta "game_info"
VI.- Cargar archivo xci en lanzador de SX OS.
VII.- Opcionalmente instalar las actualizaciones o dlcs generados.

Hilo descriptivo del proceso por método manual:
hilo_tutorial-uso-de-hacbuild-eliminar-actualizaciones-de-un-xci-y-conversion-de-nsp-a-xci_2297448

Capturas de pantalla y descripción detallada (XCI-Builder):
(Sección pendiente de reformar para añadir informaciónde NX-Trimmer). De momento leed el readme del zip descargado.
0. Capturas de pantalla
Imagen
Imagen
Imagen

Imagen

1. Descripción
Esta herramienta está pensada para facilitar la conversión de archivos nsp a archivos xci.
Esta herramienta está diseñada en código batch sirviendo de interfaz de intercambio entre los siguientes programas:
a.) hacbuild: Programa para creación de archivos xci mediante archivos nca. Diseñado por LucaFraga
https://github.com/LucaFraga/hacbuild
b.) hactool: Programa cuya función es mostrar la información, desencriptar y extraer diversos tipos de archivos de datos de Nintendo Switch.
Hactool ha sido diseñado por SciresM
https://github.com/SciresM/hactool
c.) nspBuild: Programa destinado a la creación de archivos nsp a partir de archivos nca.
nspBuild ha sido diseñado por CVFireDragon
https://github.com/CVFireDragon/nspBuild

Aplicación inspirada en "A Simple XCI, NCA, NSP Extracting Batch file (Just Drag and Drop) with Titlekey decrypt"
creada por Bigjokker y publicada en gbatemp:
https://gbatemp.net/threads/a-simple-xc ... t.513300//

2. Requisitos
- Es necesario emplear un ordenador con sistema operativo windows.
- Es necesario tener instalado python para que funciones la creación del nsp de licencia.
- Es necesario tener una versión de .NETFramework superior a v4.5.2
- Es necesario disponer de un archivo keys.txt con las claves necesarias para el funcionamiento de hactool.(Añadida plantilla al zip)

3. Funciones
- Conversión de archivos nsp a xci
- Obtención de archivo nsp de pequeño tamaño (normalmente menos de 1mb) para la instalación de la licencia del juego
- Obtención de archivos game_info.ini a partir de archivos xci
- Los archivos obtenidos no incorporan partición update siendo más ligeros que un xci normal.

4. Limitaciones
- Actualmente los archivos xci solo funcionan en SX OS
- Para la carga de los archivos construídos hace falta tener instalada la licencia del juego (titlekey).
Esto puede conseguirse de varias formas:
a.) Habiendo sido descargado el juego previamente vía eshop
b.) Habiendo sido instalado previamente el nsp usado para la conversión en la consola.
(Solo hace falta que haya sido instalado previamente, no hace falta que esté instalado en la actualidad)
c.) Instalando el archivo de licencia obtenido "título_lc.nsp"
Este nsp debe de ser instalado mediante el instalador de SX OS

5. Uso de la aplicación
I.- Para el correcto funcionamiento de la aplicación introducir archivo "keys.txt" en la carpeta ztools.
Más información: https://github.com/SciresM/hactool
Para ello se puede cubrir el archivo "keys_plantilla.txt", renombrar a "keys.txt" e introducir en la carpeta ztools.
II.- La aplicación crea cartuchos con los datos almacenados en game_info_preset.ini
III.- Para convertir un nsp a xci arrastrar el archivo nsp sobre "XCI_Builder_v0.5.x.bat" y esperar a que se cierre
la consola de sistema.
IV.- Se obtendrá una carpeta con el "nombre del archivo original". Dentro habrá dos archivos:
- "nombre del archivo original".xci -> Resultado de la conversión.
- "nombre del archivo original"_lc.nsp -> Archivo de licencia.
V.- Los datos del archivo game_info.ini pueden cambiarse manualmente o ser obtenidos de algún xci dumpeado previamente.
> Para la obtención del archivo "game_info.ini" desde un xci arrastrar el xci sobre "XCI_Builder_v0.5.x.bat".
> Se obtendrá un archivo .ini con el nombre del juego en la carpeta game_info
> Sustituir los datos de game_info.ini en la raíz
VI.- Instalar archivo _lc.nsp con el instalador de SX OS o versiones antiguas de tinfoil para poder usar el juego xci
obtenido en SX OS.

6. Compatibilidad
La compatibilidad de la conversión depende del archivo game_info.ini
La compatibilidad del archivo incluído game_info_preset.ini es excelente si bien no perfecta.
a) Hasta el momento se ha detectado ERRORES en:
- Valkyria Chronicles 4 Demo (error de cartucho)
- Azure Striker Gunvolt (error de cartucho)
- Resident Evil Revelations 2 (error de datos del juego)
Aún no se ha comprobado con otros game_info en estos juegos.
b) A día de hoy se ha VERIFICADO la compatibilidad en los siguientes juegos:
36 Fragments of Midnight
6180 to the moon
88 heroes
ACA NEOGEO AERO FIGHTERS 2
ACA NEOGEO FATAL FURY
ACA NEOGEO GAROU MARK OF THE WOLVES
ACA NEOGEO Money Puzzle Exchanger
ACA NEOGEO SHOCK TROOPERS
Aegis Defenders
AQUA KITTY UDX
Astro Bears Party
Battle Chef Brigade
Binaries
Bloodstained Curse of the Moon
Bomb Chicken
Brave Dungeon + Dark Witch StoryCOMBAT
Brawlout
Candle - The Power of the Flame
Celeste
Crossing Souls
Dead Synchronicity Tomorrow Comes Today
Don't Die Mr Robot
Earthlock
GO VACATION
Monster Hunter Ultimate
Night in the Woods
OKAMI HD
Shantae Half-Genie Hero
Star Ghost
Stardew Valley
Unepic
PENDIENTE DE ACTUALIZAR LISTA - Tengo pensado añadir una hoja de google para que la actualicemos entre todos.

7. Agradecimentos a:

LucaFraga, SciresM, CVFireDragon, Bigjokker y a los miembros de gbatemp y elotrolado.net


Agradecimientos también a alvarions por servirme de tester
Que gran trabajo compañero, lo probaré y os cuento, un pin a este post!!
josete2k
Abonado
25.585 mensajes
desde nov 2001
en EOL... ¿no me ves?
Editado 1 vez. Última: 19/08/2018 - 23:34:10 por josete2k.
Genial... Imagino que un futuro cfw más actualizado podría incluir el parcheo de titkekeys para este menester ¿no?
JulesRussel
MegaAdicto!!!
4.942 mensajes
desde ene 2012
Editado 2 veces. Última: 19/08/2018 - 23:44:15 por JulesRussel.
Del momento el tuto es copia del readme. Si veis que hace falta expandirlo en algo en particular comentádmelo para añadir más info.
Si teneis problemas poniéndolo a funcionar podeis mandarme un MP siempre que sea algo que no venga a cuento discutir en el post.
Y si quereis añadir aplicaciones al listado de compatibilidad del game_info_preset.ini podeis hacerme una cita y lo añado al post principal.
También si encontrais otro game_info que funcione con las 3 aplicaciones que no me funcionaron a mí o con otras podeis hacérmelo saber sin problemas.
Para obtener los game_info de los xci podeis arrastrarlos sobre la aplicación y os los generará en una carpeta game_info. Está puesto en el readme.

@josete2k Sería mejor conseguir prescindir de ellas o al menos averiguar como incluírlas en el xci, lo cuál es algo posible ya que Nintendo lo hace con las versiones revisadas. Incluye el ticket de la actualización y el certificado de la misma. En el sonic mania parece que incluye incluso un DLC.
Aún no he investigado esto pero debería de ser posible el tema está en saber si ncabuilder vale para este menester o sería necesario otra aplicación distinta. Con el authoring tool filtrado igual es posible pero necesitaríamos una aplicación libre de licencias de Nintendo. A ver si traduzco el readme y pongo la apli en gbatemp comentando lo de las actualizaciones y todo eso y conseguimos que a los sceners les entre el gusanillo.
alvarions
マスターチーフ
12.360 mensajes
desde sep 2010
en Getaway 3
Editado 1 vez. Última: 20/08/2018 - 00:00:38 por alvarions.
Un placer amic, funcioan de diez!!
yggdrassilbcn
MegaAdicto!!!
745 mensajes
desde mar 2017
en Barcelona
gracias compañero de nuevo por todo este trabajazo.
un saludo
Benaviz
Adicto
136 mensajes
desde feb 2008
Editado 3 veces. Última: 20/08/2018 - 10:27:18 por Benaviz.
Genial, de nuevo gran trabajo.

JulesRussel escribió:@josete2k Sería mejor conseguir prescindir de ellas o al menos averiguar como incluírlas en el xci, lo cuál es algo posible ya que Nintendo lo hace con las versiones revisadas. Incluye el ticket de la actualización y el certificado de la misma. En el sonic mania parece que incluye incluso un DLC.
Aún no he investigado esto pero debería de ser posible el tema está en saber si ncabuilder vale para este menester o sería necesario otra aplicación distinta. Con el authoring tool filtrado igual es posible pero necesitaríamos una aplicación libre de licencias de Nintendo. A ver si traduzco el readme y pongo la apli en gbatemp comentando lo de las actualizaciones y todo eso y conseguimos que a los sceners les entre el gusanillo.

ya sería la crème de la crème poder prescindir de ellas o al menos autoincluirlas en el xci y así evitar el paso de tener que instalar un nsp, pero que vamos, que ya está genial así tal cual tu utilidad que es un trabajazo, y muy práctica. Muchas gracias, saludos y cómo no me suscribo al hilo.
tomate
Adicto
491 mensajes
desde ago 2006
en Zaragoza
Gracias por el hilo, esta muy bien explicado.
Tengo un par de dudas, ¿Qué ventajas tiene el formato XCI sobre el NSP?
¿Cual es el procedimiento de carga de los XCI?. Creo que de momento solo funciona en SX os, pero ¿Hay algo previsto para usarlo sin el SX?.

Muchas gracias.
JulesRussel
MegaAdicto!!!
4.942 mensajes
desde ene 2012
Me di cuenta qyer por la noche de que los nsp de los dumps nuevos de Big Blue Box son distintos, tienen más xml y tienen una tag extra en cada nodo. Voy a tener que que cambiar un poco el código del programa para adaptarlo a estos ya que en estos casos no debería de estar creando nsps correctos de licencia.
Hacer que detecte el xml correcto ya lo tengo listo, ahora supongo que hoy de noche cambiaré el código para que detecte la longitud de los nodos del xml.

De momento es plenamente funcional con los nsp que se obtienen por CDN que eran los únicos disponibles a hasta el jueves pasado si no me equivoco.

@tomate
La ventaja que suelen tener los xci es no instalar tickets en la consola, dándole así un método menos de detección a Nintendo. En este caso eso no es aplicable porque de momento cuando he intentado generar el xci con archivos nca sin encriptar he tenido problemas para lanzarlo en SX OS.
La otra ventaja actual está en que no es necesario instalarlos eliminando el problema del doble espacio temporal y facilitando la gestión de archivos.
Se le intuye el potencial de crear archivos con actualizaciones y dlcs ya aplicados así como archivos con MODS y traducciones sin necesidad de LayerdFS. Lo primero es algo que ya hace Nintendo en sus reediciones y debería de ser posible conseguirlo tarde o temprano. El tema está en si ahora mismo tenemos las herramientas necesarias para conseguirlo.
tomate
Adicto
491 mensajes
desde ago 2006
en Zaragoza
JulesRussel escribió:Me di cuenta qyer por la noche de que los nsp de los dumps nuevos de Big Blue Box son distintos, tienen más xml y tienen una tag extra en cada nodo. Voy a tener que que cambiar un poco el código del programa para adaptarlo a estos ya que en estos casos no debería de estar creando nsps correctos de licencia.
Hacer que detecte el xml correcto ya lo tengo listo, ahora supongo que hoy de noche cambiaré el código para que detecte la longitud de los nodos del xml.

De momento es plenamente funcional con los nsp que se obtienen por CDN que eran los únicos disponibles a hasta el jueves pasado si no me equivoco.

@tomate
La ventaja que suelen tener los xci es no instalar tickets en la consola, dándole así un método menos de detección a Nintendo. En este caso eso no es aplicable porque de momento cuando he intentado generar el xci con archivos nca sin encriptar he tenido problemas para lanzarlo en SX OS.
La otra ventaja actual está en que no es necesario instalarlos eliminando el problema del doble espacio temporal y facilitando la gestión de archivos.
Se le intuye el potencial de crear archivos con actualizaciones y dlcs ya aplicados así como archivos con MODS y traducciones sin necesidad de LayerdFS. Lo primero es algo que ya hace Nintendo en sus reediciones y debería de ser posible conseguirlo tarde o temprano. El tema está en si ahora mismo tenemos las herramientas necesarias para conseguirlo.

Muchas gracias por la explicación. Genial.
1, 2, 3, 4, 517