Wii System Menu Extractor & Normalizer

662 visiteurs sur le site | S'incrire

Accédez aux coordonnées de l’ensemble des techniciens professionnels recommandés par logic-sunrise 20 derniers dossiers et tutoriaux
Wii / Wii U
Wii System Menu Extractor & Normalizer

logo.png

 

Wii System Menu Extractor & Normalizer
 
Un outil avancé de reverse engineering, écrit en Rust, conçu pour extraire, décompresser et normaliser autant de ressources que possible du Menu Système de la Wii vers des formats standards et ouverts (glTF, PNG, JSON, WAV).
Il peut également — bien que ce ne soit pas son objectif principal — extraire et convertir des fichiers de certains jeux Wii.
 

1. Accès aux données (moteurs d’extraction)
- ASH (.ash)
: Machine virtuelle Huffman/LZ77 personnalisée et intégrée, permettant une décompression bit-par-bit exacte.
- LZ77 (.LZ, .lz7) : Prise en charge complète des variantes 0x10, avec détection robuste.
- Yaz0 (.szs) : Décompresseur LZSS haute performance pour les archives de chaînes.
- Archives standards (.app, .arc, .zip) : Extraction complète des arborescences U8 et ZIP.
- Conteneurs NW4R (.brres, .breft) : Extraction des sous-fichiers par scan heuristique de signatures.

2. Normalisation des ressources (qualité musée)
Graphismes (pixel-perfect)

- TEX0 / TPL / BTI → PNG : Décodage GX complet.
- Amélioration unique : stratégie « White-Alpha » pour la gestion des formats à intensité (I4, IA4), garantissant des éléments d’interface sans artefacts noirs.
Prise en charge complète de RGBA8 (planaire) et CMPR (Wii BC1/DXT1).
- Gestion des palettes (PLT0) : Application automatique aux textures indexées (CI4 / CI8).
 
Interface (dépendante de l’UI)
- BRLYT → JSON : Reconstruction de l’arbre de scène hiérarchique complexe.
- BRLAN → JSON : Extraction des courbes d’animation.
 
Modèles 3D
- MDL0 → glTF 2.0 : Export de la géométrie complète (versions v1 à v11).
 
Typographie
- BRFNT → JSON & PNG : Décodage bit-par-bit exact, incluant le tuilage spécifique Wii 8×4 utilisé par les polices (Rodin).
Extraction des métriques de glyphes (CWDH) et des tables Unicode (CMAP).
 
Audio & musique
- BWAV → WAV : Prise en charge des fichiers du Menu Système.
- RWAV / RWSD / RBNK → WAV : Décodage DSP-ADPCM matériel 16 bits.
- BRSEQ → MIDI & JSON : Séquences musicales (travail encore en cours).
 
Reverse engineering
- SEL → JSON : Prise en charge des fichiers binaires (Static Executable Linker).
Récupération du chemin de build d’origine (.elf) et de la table complète des symboles (noms internes des fonctions).

 

UTILISATION

 

Build

cargo build --release

Exécution

./target/release/wii_system_menu_extractor <CHEMIN_DU_DOSSIER_OU_FICHIER_TITLE>

Le programme traite les fichiers de manière idempotente : il détecte les extractions déjà effectuées et ne traite que les nouveaux fichiers ou ceux modifiés.
Lancer le programme directement (sans terminal) dans le répertoire courant produit le même effet sur son contenu, même sans sortie graphique.

Il n’existe pas encore de version officielle ni de numéro de version. Le programme est toujours en développement, mais il est fonctionnel et suffisamment efficace pour la majorité des usages.

 

 


APPIMAGE

 

Un script de build AppImage est fourni dans le dossier scripts.
Une AppImage prête à l’emploi est également disponible dans le dossier packages.

Le programme a été compilé sous Debian 13 et nécessite au minimum les versions de certaines bibliothèques incluses dans cette distribution de référence.
En conséquence, cette AppImage devrait fonctionner sur toutes les distributions Linux à jour.

 

 


ETAT DU SUPPORT (CIBLES)

 

Format : TEX0 / TPL
Normalisation : PNG
Statut : Ultra-fidélité (White-Alpha)

Format : BRLYT / BRLAN
Normalisation : JSON
Statut : 100 % (structure arborescente)

Format : BRFNT
Normalisation : PNG + JSON
Statut : Pixel-perfect (Rodin tuilé)

Format : SEL
Normalisation : JSON
Statut : Symboles et chemin ELF

Format : BWAV / RWAV
Normalisation : WAV
Statut : Bit-perfect

Format : MDL0
Normalisation : glTF 2.0
Statut : Géométrie et UV

Format : BMG
Normalisation : JSON
Statut : Multilingue

 

 


GLOSSAIRE DES FORMATS ET JSON NORMALISES

 

 

Archives et compression

 

ASH / LZ77 / Yaz0
Formats de compression propriétaires.
Normalisation : décompression vers les fichiers originaux (.arc, .brres).

U8 / ARC / APP
Archives de fichiers non compressées.
Normalisation : extraction dans des sous-dossiers _extracted.

 

 


Graphismes et typographie

 

TPL / TEX0 / BTI (textures Wii) vers PNG.
Stockage tuilé GX. Les formats IA4 et IA8 sont normalisés via la stratégie White-Alpha pour l’interface.

BRFNT (police binaire) vers atlas PNG et JSON.
Le JSON contient les métriques (hauteur, ligne de base) et le mapping Unicode (code vers index de glyphe).
Champs JSON : ascent (hauteur au-dessus de la ligne de base), widths (largeur par glyphe).

 

 


Interface et animation

 

BRLYT (layout) vers JSON.
Stocke l’arbre hiérarchique de l’interface (panes).
Le champ root contient la pile de panes avec le nom, les positions x/y/z, l’échelle, la rotation et les enfants hiérarchiques.

BRLAN (animation de layout) vers JSON.
Contient les séquences d’animation appliquées aux panes BRLYT.
Champs JSON : animations (cibles), keyframes avec time (frame) et property (valeur).

 

 


Audio

 

RWAV / BWAV vers WAV.
Fichiers audio bruts, souvent en DSP-ADPCM (compression matérielle 4 bits) ou PCM16.

BRSAR / RWSD vers WAV et JSON.
Le JSON liste les sons et leurs propriétés (volume, pitch).

 

 


Reverse engineering

 

SEL (table des symboles) vers JSON.
Contient les métadonnées de linkage du code Wii, souvent présentes dans les fichiers .app.
Champs JSON : internal_path (chemin d’origine sur le PC du développeur Nintendo), symbols (liste complète des noms de fonctions C++ récupérées).

BMG (Message Group) vers JSON.
Table de textes localisés.
Champ JSON : messages associe un identifiant numérique à la chaîne traduite.

 

 


LICENCE

 

GNU General Public License version 3 (GPL 3) – Tikilou

 

 


LIENS

 

AppImage :
https://github.com/T...e></svg></span>

Dépôt GitHub :
https://github.com/T...ctor-Normalizer

 

 


 

PS: Ce projet fait partie d’un projet “Museum” beaucoup plus vaste.

C’est encore en développement.
L’approche est volontairement alignée avec celle de Valve sur la préservation et l’accès aux contenus.

Lundi 26 Janvier 2026, 17:19 par tikilou
Source : Tikilou
26 janvier 2026, 17:33
Approuver ce commentaire (+1)
Tikilou, je te laisse la remettre en forme ?
Répondre à ce commentaire
26 janvier 2026, 18:14
Approuver ce commentaire (+1)

Tikilou, je te laisse la remettre en forme ?


Ouais elle à l'air un peu fatiguée :D
Répondre à ce commentaire
Utilisateur en ligne
26 janvier 2026, 19:31
Approuver ce commentaire (+1)
Tikilou, je te laisse la remettre en forme ?

 

Tikilou, je te laisse la remettre en forme ?

Les liens sont tout en bas, avec le dépôt Github et l'AppImage à télécharger !

Il n'y a pas de capture d'écran en tant que tel, c'est un outil sans interface graphique, prévu pour le terminal, utilisable aussi sans interface graphique ou appelé depuis un script/outil tiers.
Si lancé depuis le terminal, on voit juste défiler l'extraction des fichiers, si on le lance sans terminal, tout le contenu du dossier où est présent l'appimage, est extrait.

Répondre à ce commentaire
Cliquer ici pour continuer sur le forum
Envoyer