Disponibile un nuovo aggiornamento per NSZ, lo strumento sviluppato dal developer Nico Bosshard ci permette di comprimere e decomprimere le ROM della console Switch, e senza subire alcuna perdita grazie all’algoritmo di compressione zstd.

I file compressi sono sostanzialmente identici alla controparte, questo significa che non sono realmente un nuovo formato. Il loro unico scopo è quello di avvisare l’utente che contiene file compressi.
Installazione
Per poter utilizzare correttamente lo script, dovrete fornire nella stessa directory del programma il file delle chiavi prod.keys oppure keys.txt. Le stesse chiavi si rendono compatibili con l’utility hactool. Se non avete a disposizione queste chiavi potrete scaricarle con Lockpick_RCM.
Build Windows
L’eseguibile per PC Windows non necessita di alcuna libreria, basta caricare le chiavi e cliccare sul file nsz.exe. Chi preferisce può comunque continuare ad utilizzare gli script Python.
[stextbox id=’info’]Nota: I metodi elencati di seguito richiedono l’installazione di Python 3.6+.[/stextbox]
PIP Package
Il modo più semplice per installare lo script sarebbe quello di utilizzare il seguente comando in un terminale o un prompt dei comandi. Funziona su tutti i sistemi operativi con Python 3.6 e versioni successive.
pip3 install --upgrade nsz
Se sei interessato a installare la GUI per lo script, puoi farlo eseguendo uno dei seguenti comandi. Su Linux si consiglia vivamente di seguire invece i passaggi ‘In esecuzione dal source su Linux’.
Se avete installato Python 3.6 o Python 3.7 digitare:
pip3 install --upgrade nsz[gui]
Se invece avete installato Python 3.8 o una versione successiva, scaricare il file requirements-gui.txt e digitare:
pip3 install -r requirements-gui.txt
In esecuzione dal source su Linux
Su Linux basta clonare ed eseguire pip3 install -r requirements.txt per la versione senza GUI e ./install_linux.sh se si desidera la GUI.
In esecuzione dal source su Windows
Lo script può essere eseguito anche clonando localmente la repository, è necessario installare le dipendenze eseguendo il seguente comando:
pip3 install -r requirements.txt
La GUI è opzionale e richiede moduli aggiuntivi per essere eseguita. Per installare i moduli necessari per eseguire la GUI, eseguire il seguente comando su Python 3.6 e Python 3.7 su Windows:
pip3 install -r requirements-gui.txt
Pochi esempi di utilizzo
- Per comprimere tutti i file in una cartella:
nsz -C /path/to/folder/with/roms/ - Per comprimere tutti i file in una cartella e verificare l’integrità dei file compressi:
nsz --verify -C /path/to/folder/with/roms/ - Per comprimere tutti i file in una cartella con 8 thread e inviare i file risultanti in una nuova directory:
nsz --threads 8 --output /path/to/out/dir/ -C /path/to/folder/with/roms/ - Per comprimere tutti i file in una cartella con livello di compressione di livello 22:
nsz --level 22 -C /path/to/folder/with/roms/ - Per decomprimere tutti i file in una cartella:
nsz -D /path/to/folder/with/roms/
[stextbox id=’info’]Nota: Per visualizzare tutti i possibili flag e una descrizione su cosa fa ogni flag, digitare nsz --help.[/stextbox]
NSZ
I file NSZ sono sostanzialmente identici ai file NSP. Il loro unico scopo è avvisare l’utente che contiene file NCZ compressi. I file NCZ possono essere combinati con file NCA nello stesso contenitore.
In alternativa a questo strumento, NSC_Builder supporta anche la compressione di NSP in NSZ e la decompressione di NSZ in NSP. NSC_Builder può essere scaricato da: https://github.com/julesontheroad/NSC_BUILDER
XCZ
I file XCZ sono sostanzialmente identici ai file XCI. Il loro unico scopo è avvisare l’utente che contiene file NCZ compressi. I file NCZ possono essere combinati con file NCA nello stesso contenitore.
NCZ
Questi sono file NCA compressi. I file NCA vengono decodificati e quindi compressi mediante zstandard. I primi 0x4000 byte di un file NCZ sono esattamente gli stessi del file NCA originale (è ancora crittografati). Ciò si applica anche se la prima sezione non inizia con 0x4000.
A 0x4000, ci sarà una struttura di intestazione NCZ di dimensioni variabili. Questa intestazione contiene un elenco di sezioni che indicano al decompressore come crittografare nuovamente i dati NCA dopo la decompressione. Può contenere anche un’intestazione di compressione del blocco opzionale che consente l’accesso in lettura casuale.
Tutte le informazioni nell’intestazione possono essere derivate dal Ticket NCA+originale, tuttavia vengono fornite pre-preparate per rendere la decompressione il più semplice possibile per terze parti.
Immediatamente dopo l’intestazione NCZ, il flusso zstandard inizia e termina in EOF. Il flusso viene decompresso per eseguire l’offset 0x4000. Se viene utilizzata la compressione a blocchi, il flusso viene suddiviso in blocchi indipendenti e può essere decompresso come mostrato in https://github.com/nicoboss/nsz/blob/master/nsz/BlockDecompressorReader.py
Riferimenti
- Pacchetto pip NSZ: https://pypi.org/project/nsz/
- Thread del forum: https://gbatemp.net/threads/nsz-homebrew-compatible-nsp-xci-compressor-decompressor.550556/
Changelog
- Corretta la compatibilità di title-installer con le versioni standard di python-z successive alla versione 0.15.2, è confermato che i file NSZ compressi con le moderne versioni zstd funzionano sugli ultimi Tinfoil, DBI, AtmoXL e TinWoo. Alcuni installatori di titoli abbandonati che non sono stati aggiornati continueranno a non funzionare. Vedere #120 (le versioni di zstandard più recenti della versione 0.15.2 interrompono la compatibilità con tutti i programmi di installazione dei titoli tranne DBI) per maggiori informazioni.
- Corretto un errore nel codice FileExistingChecks causato dalla specifica dell’estensione del file di destinazione errata durante la chiamata a CreateTargetDict. Questo corregge #123 (File sorgente XCZ eliminato prima della decompressione nella stessa cartella di output dell’originale).
- Il file NSP corretto e il file NSZ risultante verranno eliminati utilizzando
--rm-sourcequando la compressione solida fallisce. Questo corregge l’errore #124 (i file NSP e NSZ risultanti verranno eliminati utilizzando--rm-sourcequando la compressione solida fallisce). - Aggiunto l’hash crc32 di master_key_0e. Grazie a @16BitWonder per averlo aggiunto!
- Implementata l’opzione per abilitare la modalità a lunga distanza zStandard per una compressione ancora migliore come richiesto in #117 (aggiunge il supporto per la modalità a lunga distanza zStandard).
- Seguito il feedback dell’autore di python-zstandard in merito al flushing per correggere tutte le imperfezioni relative al flushing.
- Corretto l’errore “‘Counter’ object has no attribute ‘write'” durante l’utilizzo di
--create. Questo corregge l’errore #118 (--createnon funziona). - Implementato il supporto per l’espansione della directory per
--createe migliorata la documentazione. Questo chiude #119 (la sintassi per--createè stupida e la documentazione pessima). - Chiarita la regola del testo in chiaro dell’estensione di compressione del blocco del formato di file NSZ come discusso in #120.
BiteYourConsole declina ogni responsabilità per quanto riguarda informazioni, software, prodotti e servizi inclusi. Tutte le suddette informazioni sono pubblicate “così come sono” senza garanzia di alcun tipo.
Decliniamo ogni responsabilità per quanto riguarda queste informazioni e per quanto riguarda i software, i prodotti e i servizi inclusi.
BiteYourConsole inoltre non garantisce che questo sistema funzionerà senza incidenti o guasti all’hardware, al software o alla comunicazione.
Gli utenti sono autorizzati ad utilizzare questo programma solo per scopi legali e degni che sono consoni a tutte le leggi, i regolamenti e le consuetudini accettate in Italia e in qualsiasi altra entità giuridica da cui ci si connette a questo sistema.
Download: NSZ v4.2.0 [Win64]
Download: Source code NSZ v4.2.0
Fonte: github.com
🔥 Prodotti in promozione e articoli più venduti: Nintendo Switch
Vedi altri prodotti Nintendo SwitchQuesto articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

![[Scena PS Vita] Rilasciato VitaRPS5 (VitakiFork) v2.1.2](https://www.biteyourconsole.net/wp-content/uploads/VitaRPS5-238x178.webp)


![[Scena PS Vita] Rilasciato VitaRPS5 (VitakiFork) v2.1.2](https://www.biteyourconsole.net/wp-content/uploads/VitaRPS5-100x75.webp)


![[Scena PS Vita] Rilasciato LifeLua 08-06-2025: Interprete LuaJIT ad alte prestazioni per PlayStation Vita](https://www.biteyourconsole.net/wp-content/uploads/LifeLua-100x75.webp)
![[Scena Switch] Rilasciato ovl-sysmodules v1.4.7: Maggiore compatibilità e controlli touch più precisi su Nintendo Switch](https://www.biteyourconsole.net/wp-content/uploads/EdiZonSysModule-100x75.webp)