Home Homebrew Rilasciato NSZ v4.6.1

[Scena Switch] Rilasciato NSZ v4.6.1 [aggiornato x1]

339
0

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.

A partire da questa versione, la verifica (--verify) utilizza la convalida dell’hash sha256 a livello di file per garantire che l’hash sha256 del file originale e del file decompresso corrispondano, garantendo la ricreazione identica del file.

Inoltre, è stata effettuata una riscrittura significativa per supportare multiple partizioni XCI/XCZ, con l’opzione --keep che mantiene tutte le partizioni, inclusi i loro contenuti.

Tra le correzioni di bug, sono state apportate modifiche al padding NSP per farlo corrispondere allo standard No-Intro, risolto un problema di sovrapposizione dell’header PFS0 quando viene utilizzata l’opzione --fix-padding, migliorata la gestione delle dimensioni dell’header PFS0 e risolti problemi relativi al font Kivy.

Alcune modifiche agli argomenti della riga di comando includono la rinomina di --remove-padding a --fix-padding, che ora rende il padding NSP conforme allo standard No-Intro.

Inoltre, --keep-delta è stato rinominato in --keep, in quanto ora non viene più utilizzato solo per mantenere i file NDV0 ma anche tutte le partizioni XCI.

Infine, --verify e --remove-padding sono incompatibili tra loro, e in caso di conflitto, verrà automaticamente utilizzato --quick-verify per mantenere la coerenza con il comportamento degli argomenti della riga di comando precedenti alla versione 4.6.0 di NSZ.

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.

Nota: I metodi elencati di seguito richiedono l’installazione di Python 3.6+.

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/

Nota: Per visualizzare tutti i possibili flag e una descrizione su cosa fa ogni flag, digitare nsz --help.

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

Changelog v4.6.1

  • Corretto il problema “MPLUS1p-Medium.ttf not found” nella GUI di NSZ 4.6. Le versioni precedenti di NSZ potevano corrompere le configurazioni globali di Kivy, come segnalato in #154. Questo è stato risolto in NSZ 4.6.
  • Alcuni utenti non riuscivano ad avviare la GUI di NSZ 4.6 a causa di configurazioni Kivy danneggiate. Questa versione ripara automaticamente la configurazione di Kivy ripristinando la proprietà default_font se danneggiata. Ciò risolve il problema #164.

Changelog v4.6.0

Principali nuove funzionalità

  • --verify ora utilizza la convalida dell’hash NSP sha256 a livello di file. --verify ora garantisce che l’hash sha256 del file originale e del file decompresso corrispondano e quindi il file venga ricreato in modo identico in termini di bit.
  • Riscrittura principale XCI/XCZ per supportare più partizioni XCI: specificare --keep per mantenere tutte le partizioni incluso il loro contenuto. Per impostazione predefinita, il contenuto di tutte le partizioni tranne quella protetta viene rimosso, ma la partizione vuota viene mantenuta per la compatibilità con Yuzu Emulator.

Correzioni di bug

  • Aggiunto terminatore null mancante alla fine della tabella delle stringhe. Questo risolve #151
  • Corretto il problema con l’intestazione PFS0 che si sovrapponeva al primo file quando veniva utilizzata l’opzione --remove-padding.
  • Corretti alcuni problemi logici responsabili della gestione di dimensioni dell’intestazione PFS0 troppo brevi.
  • Corretto il riempimento dell’intestazione PFS0 in modo che segua la specifica PFS0. Questo risolve #150
  • Non vogliamo toccare il carattere Kivy predefinito, ma utilizziamo invece LabelBase per impostare DEFAULT_FONT per questa specifica applicazione. Questo risolve #154
  • Aggiunta la possibilità di leggere i dump xci completi grazie a @alucryd
  • Aggiunto l’hash della chiave master_key_10 grazie a @seiya-git
  • Migliorato il supporto per l’eliminazione dei file sorgente. Questo risolve #141

Modifiche agli argomenti della riga di comando:

  • Rinominato --remove-padding in --fix-padding. Ciò è stato fatto poiché questa opzione ora fa sì che il riempimento NSP corrisponda allo standard No-Intro.
  • Rinominato --keep-delta in --keep poiché non è più utilizzato solo per conservare i file NDV0 ma anche per conservare tutte le partizioni XCI.
  • --verify e --remove-padding sono incompatibili tra loro. Per motivi di compatibilità --quick-verify verrà utilizzato automaticamente se si verifica questa situazione per corrispondere al comportamento degli argomenti della riga di comando prima di NSZ v4.6.0.

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.6.1 [Win64]

Download: Source code NSZ v4.6.1

Fonte: github.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.