
WiiPy è un semplice strumento a riga di comando che sfrutta le funzionalità di libWiiPy per gestire i formati di file utilizzati sulla console Nintendo Wii. WiiPy funge anche da implementazione di riferimento per le funzionalità di libWiiPy, poiché è progettato per utilizzarle tutte.
WiiPy è cross-platform e supporta macOS, Windows e Linux, grazie al fatto che è scritto in Python puro e può essere compilato per tutte e tre le piattaforme tramite Nuitka.
Per scoprire quali funzionalità sono supportate, è consigliabile consultare l’elenco delle funzionalità offerte da libWiiPy, disponibile qui (link alla documentazione ufficiale).
Requisiti
libWiiPy è stato testato su Python 3.11 e 3.12 e funziona correttamente in entrambe le versioni. WiiPy dipende esclusivamente da libWiiPy, quindi qualsiasi versione supportata da libWiiPy dovrebbe essere compatibile anche con WiiPy.
Per assicurarsi di avere libWiiPy e tutte le sue dipendenze, è sufficiente eseguire:
pip install -r requirements.txt
Utilizzo
L’uso base di WiiPy è molto semplice:
python3 wiipy.py <comando>
È possibile utilizzare --help
per visualizzare un elenco di tutti i comandi disponibili oppure <comando> --help
per vedere le istruzioni specifiche di un comando. Lo stesso vale per i sottocomandi, con la sintassi <comando> <sottocomando> --help
.
I sottocomandi disponibili aumenteranno man mano che verranno aggiunte nuove funzionalità a libWiiPy. WiiPy è progettato attorno al ramo principale di libWiiPy, quindi qualsiasi funzionalità integrata in main sarà probabilmente supportata qui in breve tempo. Ciò significa anche che eventuali aggiornamenti della libreria saranno rapidamente implementati, evitando problemi con cambiamenti incompatibili.
Compilazione
Se si desidera compilare WiiPy da Python in un eseguibile più nativo, è possibile utilizzare uno dei seguenti comandi. Assicurarsi di essere in un ambiente virtuale (venv) e di aver installato Nuitka (incluso in requirements.txt
).
Linux e macOS
È disponibile un Makefile per compilare e installare WiiPy su Linux e macOS. Questo genererà un eseguibile chiamato wiipy
nella directory principale del progetto.
make all
Facoltativamente, è possibile installare WiiPy in modo che sia disponibile a livello di sistema (verrà installato in /usr/bin/
):
sudo make install
Windows
Su Windows, è possibile utilizzare lo script PowerShell Build.ps1
al posto del Makefile. Questo genererà un eseguibile chiamato wiipy.exe
nella directory principale del progetto.
.\Build.ps1
Novità nella v1.5.0
Sono passati ben 4 mesi dall’ultima release! È finalmente arrivato il momento di rilasciare alcune delle nuove funzionalità su cui ho lavorato.
Elenco delle modifiche:
Info
- Ora vengono accettati più file come TMD, Ticket o WAD validi.
File che corrispondono ai patterntmd.bin
,tmd.*
,ticket.bin
ecetk
saranno accettati, così come i file WAD con qualsiasi nome (grazie alla lettura dell’header). - Migliorata la formattazione degli ID Titolo ASCII a 4 caratteri.
- Per i WAD o TMD di tipo boot2, la riga
required IOS
verrà nascosta e la versione del titolo includerà(boot2vX)
dopo il numero di versione. - Quando si visualizzano le informazioni di un intero WAD, vengono eseguiti controlli reali delle firme sui certificati, TMD e Ticket, e vengono mostrate le informazioni di firma.
- Per TMD e Ticket, la riga
Fakesigned:
sarà sostituita daSignature:
con valori comeValid (Unmodified <TMD/Ticket>)
,Invalid (Modified <TMD/Ticket>)
oFakesigned
. - Per il WAD completo,
Fakesigned:
sarà sostituito daSigning Status:
con valori comeLegitimate
(TMD e Ticket originali),Illegitimate
(modificati),Piratelegit
(TMD originale, Ticket modificato),Edited
(TMD modificato, Ticket originale) oFakesigned
.
- Per TMD e Ticket, la riga
- Vengono mostrati i nomi dei canali per i WAD che li contengono.
EmuNAND
- Aggiunto il nuovo sottocomando
emunand info
, che fornisce un riepilogo degli IOS e dei Titoli installati in un EmuNAND, insieme alla versione del System Menu e allo spazio di archiviazione utilizzato. Questo comando legge anche i TMD dei titoli installati e segnala eventuali IOS richiesti ma non installati. - Aggiunto il nuovo sottocomando
emunand install-missing
, che rileva automaticamente tutti gli IOS necessari per i titoli installati in un EmuNAND e li scarica e installa. Il comando cerca di capire se si tratta di un EmuNAND Wii o vWii in base al System Menu installato, altrimenti assume che sia per il Wii. L’opzione--vwii
forza l’installazione di IOS per vWii.
Modifica WAD/TMD
- Ora è possibile utilizzare simboli come parte di un nuovo Title ID.
- Per i WAD che contengono canali, è possibile modificare il nome del canale.
NUS
- Ora è possibile specificare un endpoint NUS personalizzato con l’argomento
-e/--endpoint
. - Il comando è stato aggiornato per essere compatibile con le modifiche da libWiiPy v0.5.X a v0.6.0.
Nuovo Comando: lz77
- Il nuovo comando
lz77
permette di comprimere e decomprimere file usando l’algoritmo LZ77, utilizzato spesso sul Wii.- Nota: Mentre la decompressione è veloce, l’implementazione attuale della compressione in libWiiPy può essere molto lenta. WiiPy espone solo il livello di compressione più basso per ora.
Per maggiori dettagli sui singoli comandi, consultare --help
per ciascuno di essi.
Queste build si basano sul ramo main di libWiiPy aggiornato al 28/03/2025 e utilizzano la versione v0.6.0 della libreria.
Scarica ora e inizia a gestire i tuoi file Wii con facilità!