Un script de compresión/descompresión (con GUI opcional) que permite al usuario comprimir/descomprimir ROMs de Nintendo Switch sin pérdidas, gracias al algoritmo de compresión zstd. El archivo comprimido se puede instalar directamente con los instaladores de títulos de NSW soportados.
Instalación:
Hay varias formas de instalar el script. Puedes encontrar detalles sobre la instalación de todas ellas a continuación.
Es necesario tener un archivo de claves compatible con hactool en un directorio adecuado para utilizar el script.
El archivo de claves debe estar ubicado como archivo prod.keys en %USERPROFILE%/.switch/(Windows)/$HOME/.switch/(UNIX) o keys.txt en el directorio de trabajo.
Puede ser volcado con Lockpick_RCM.
Algunos ejemplos de uso:
- Para comprimir todos los archivos de una carpeta: nsz -C /ruta/carpeta/con/roms/
- Para comprimir todos los archivos de una carpeta y verificar la integridad de los archivos comprimidos: nsz --verify -C /ruta/carpeta/con/roms/
- Para comprimir todos los archivos de una carpeta con 8 hilos y dar salida a los archivos resultantes en un nuevo directorio: nsz --threads 8 --output /ruta/al/salida/dir/ -C /ruta/al/carpeta/con/roms/
- Para comprimir todos los archivos de una carpeta con el nivel de compresión 22: nsz --level 22 -C /ruta/carpeta/con/roms/
- Para descomprimir todos los archivos de una carpeta: nsz -D /ruta/carpeta/con/roms/
Detalles del formato de archivo:
NSZ
Los archivos NSZ son funcionalmente idénticos a los archivos NSP. Su único propósito es avisar al usuario de que contiene archivos NCZ comprimidos. Los archivos NCZ pueden mezclarse con los archivos NCA en el mismo contenedor.
Como alternativa a esta herramienta, NSC_Builder también soporta la compresión de NSP a NSZ, y la descompresión de NSZ a NSP.
XCZ
Los archivos XCZ son funcionalmente idénticos a los archivos XCI. Su único propósito es avisar al usuario de que contiene archivos NCZ comprimidos. Los archivos NCZ pueden mezclarse con los archivos NCA en el mismo contenedor.
NCZ
Son archivos NCA comprimidos. Los NCA se descifran y luego se comprimen con zStandard.
Los primeros 0x4000 bytes de un archivo NCZ son exactamente los mismos que los del NCA original (y siguen encriptados). Esto se aplica incluso si la primera sección no comienza en 0x4000.
En 0x4000, está la cabecera NCZ de tamaño variable. Contiene una lista de secciones que indican al descompresor cómo volver a encriptar los datos de la NCA después de la descompresión. También puede contener una cabecera de compresión de bloques opcional que permite un acceso de lectura aleatorio.
Toda la información de la cabecera puede obtenerse a partir del NCA + Ticket original, pero se proporciona pre-parejada para facilitar al máximo la descompresión a terceros.
Directamente después de la cabecera NCZ, el flujo zStandard comienza y termina en EOF. El flujo se descomprime hasta el offset 0x4000. Si se utiliza la compresión por bloques, el flujo se divide en bloques independientes y se puede descomprimir.
El script NSZ ha sido creado por Nicoboss.
Que novedades incluye la versión 4.6.1
Released
- Las versiones anteriores de NSZ podían corromper las configuraciones globales de Kivy. Esto se solucionó en NSZ 4.6. Algunos usuarios no podían iniciar la interfaz gráfica de NSZ 4.6 debido a que las configuraciones de Kivy estaban dañadas. Esta versión repara automáticamente la configuración de Kivy. Lo hace restableciendo la propiedad default_font si está corrupta.