› Foros › Nintendo Switch › Scene
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
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
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
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.
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//
- 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)
- 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.
- 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
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.
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.
LucaFraga, SciresM, CVFireDragon, Bigjokker y a los miembros de gbatemp y elotrolado.net
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.
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.
- Desconozco los detalles técnicos, pero si lo que se hace es un proceso de descifrado y recifrado, igual podría relajarse completamente el requisito de firmware, si se cifrase con la versión más baja. Igual estoy diciendo una burrada.
- He intentado realizar lo mismo que el .bat desde línea de comandos para hacer un shell script de bash, pero lo he tenido que dejar porque el .bat original parece que hace más cosas que invocar binarios externos, creo que efectúa parcheos sobre archivos y cosas complejillas que no me veo capaz de replicarlo en tiempo y forma. Dejo ahí la sugerencia por si alguien quisiera hacer el port.
JulesRussel escribió:@Szckrack Seguramente el formato de las keys. Ya tenía pensado añadir una plantilla al tuto con el formato porque otro compañero tuvo un problema con ello.
Las keys tienen que seguir el formato que requiere hactool, te paso un MP con más info hasta que haga la plantilla.
keyblob_mac_key_source =
keyblob_key_source_00 =
keyblob_key_source_01 =
keyblob_key_source_02 =
keyblob_key_source_03 =
keyblob_key_source_04 =
master_key_source =
master_key_00 =
master_key_01 =
master_key_02 =
master_key_03 =
master_key_04 =
package1_key_00 =
package1_key_01 =
package1_key_02 =
package1_key_03 =
package1_key_04 =
package2_key_source =
package2_key_00 =
package2_key_01 =
package2_key_02 =
package2_key_03 =
package2_key_04 =
aes_kek_generation_source =
aes_key_generation_source =
titlekek_source =
titlekek_00 =
titlekek_01 =
titlekek_02 =
titlekek_03 =
titlekek_04 =
key_area_key_application_source =
key_area_key_ocean_source =
key_area_key_system_source =
sd_card_kek_source =
sd_card_save_key_source =
sd_card_nca_key_source =
header_key_source =
header_key =
key_area_key_application_00 =
key_area_key_application_01 =
key_area_key_application_02 =
key_area_key_application_03 =
key_area_key_application_04 =
key_area_key_ocean_00 =
key_area_key_ocean_01 =
key_area_key_ocean_02 =
key_area_key_ocean_03 =
key_area_key_ocean_04 =
key_area_key_system_00 =
key_area_key_system_01 =
key_area_key_system_02 =
key_area_key_system_03 =
JulesRussel escribió:@satelman ¿Antes de nada, que versión de windows tienes?
El formato que usa hactool es este:keyblob_mac_key_source =
keyblob_key_source_00 =
keyblob_key_source_01 =
keyblob_key_source_02 =
keyblob_key_source_03 =
keyblob_key_source_04 =
master_key_source =
master_key_00 =
master_key_01 =
master_key_02 =
master_key_03 =
master_key_04 =
package1_key_00 =
package1_key_01 =
package1_key_02 =
package1_key_03 =
package1_key_04 =
package2_key_source =
package2_key_00 =
package2_key_01 =
package2_key_02 =
package2_key_03 =
package2_key_04 =
aes_kek_generation_source =
aes_key_generation_source =
titlekek_source =
titlekek_00 =
titlekek_01 =
titlekek_02 =
titlekek_03 =
titlekek_04 =
key_area_key_application_source =
key_area_key_ocean_source =
key_area_key_system_source =
sd_card_kek_source =
sd_card_save_key_source =
sd_card_nca_key_source =
header_key_source =
header_key =
key_area_key_application_00 =
key_area_key_application_01 =
key_area_key_application_02 =
key_area_key_application_03 =
key_area_key_application_04 =
key_area_key_ocean_00 =
key_area_key_ocean_01 =
key_area_key_ocean_02 =
key_area_key_ocean_03 =
key_area_key_ocean_04 =
key_area_key_system_00 =
key_area_key_system_01 =
key_area_key_system_02 =
key_area_key_system_03 =
http://www.mediafire.com/file/za1crn7gr ... ntilla.txt
El compañero tenía un problema con windows 7 y uno de los ejecutables de ztools "od.exe" que realmente no es necesario. Era uno de los remanentes que me quedaba del código de desencriptado en que me basé, ya que está pensado para LayeredFS y esa parte es para preparar una variable para luego desencriptar el NCA del juego, algo no necesario para construir el xci.
Te voy a pasar la versión modificada para que la testees por MP si te parece bien.
JulesRussel escribió:@satelman No, no importa es de hacbuild ese error. Pensaba que era porque tenía un fallo en el código pero lo da cuando no tiene cabecera. Ese error lo da si usas backups con la parte del certificado eliminada. Por eso lo pone como advertencia, lo vi hoy mirando el código de hacbuild en su github.
Sigue el proceso sin problemas, ese error te lo darán ambos programas pero deberían de finalizar y crearte los archivos sin problemas.
La plantilla es keys.txt está en el readme escrito. Prueba con lo que te pasé de todos modos.
beeeeer escribió:Lo del archivo tocho de la licencia, parece que es porque se lleva a la carpeta licencia el nca incorrecto (el mas grande) de los 3 que hay. La variable var1 y por tanto el id.txt no vienen correctos al hacer la copia.
Si el archivo a copiar, el bueno, es el que lleva el mismo chorizaco que el tik, un workaround sería hacer la copia usando el sufijo, que es un poco distinto a los demás nca
aioma escribió:Al convertirlos en xci hay menos riesgo de baneos que si los meto en .nsp?? O da igual que los convierta?
Memnoch92 escribió:aioma escribió:Al convertirlos en xci hay menos riesgo de baneos que si los meto en .nsp?? O da igual que los convierta?
Sin ser muy entendido... pero vamos, yo diría que si la modificas y te conectas a Internet, ya estás en la diana para ser baneado. Pero lo que no entiendo es por qué os importa que os baneen sabiendo que si modificáis vais a caer tarde o temprano...
De momento el mismo porque todavía no podemos librarnos de los tickets.aioma escribió:Al convertirlos en xci hay menos riesgo de baneos que si los meto en .nsp?? O da igual que los convierta?