Wiimms ISO Tools/Dateien austauschen

Aus Wiiki
Wechseln zu:Navigation, Suche

Wiimms ISO Tools (oder kurz WIT) sind Kommandozeilen-Tools. Sie erlauben auch das Austauschen von einzelnen Dateien. Dieses geschieht in 3 Schritten:

  1. Entpacken des Original-Images.
  2. Dateien im Verzeichnisbaum Ändern, Austauschen, Löschen oder Ergänzen.
  3. Neues Image erstellen.

Bei weiteren Modifikationen müssen nur die Schritte 2. und 3. wiederholt werden.



Entpacken des Original-Images

Für das folgende Beispiele nehmen wir an, das das Original Image in einer WBFS-Datei unter dem Namen ORIGINAL.wbfs vorliegt, wobei auch andere der Bekannten Dateiformate erlaubt sind. Als temporäres Arbeitsverzeichnis soll PATCHDIR angelegt werden, welches aber noch nicht existieren darf. Das Kommando zum Extrahieren lautet dann:

wit extract ORIGINAL.wbfs PATCHDIR -vv --psel=data
wit extract 
Dieses ist das Kommando, welches ausgeführt werden soll.
ORIGINAL.wbfs 
Dies ist, wie bereits erläutert, das Original-Image, welches entpackt werden soll. Das Tool akzeptiert dabei die Dateiformate ISO, CISO, WBFS, WDF, WIA und FST.
PATCHDIR 
Die entpackten Dateien sollen in dieses Verzeichnis kopiert werden. Das Verzeichnis wird automatisch angelegt. Existiert es bereits, dann verweigert das Programm mit einem Fehlerhinweis die Arbeit, weil es nichts überschreiben möchte.
-vv (Kurzform von --verbose --verbose
Die Optionen sorgen dafür, dass das Tool Infos über den Stand des Extrahierens ausgibt.
--psel=data 
Diese Option gibt an, dass nur die Daten-Partition des Spieles entpackt wird. Evtl. vorhandenen Update oder andere Partitionen werden nicht benötigt.

Dateisystem modifizieren

Hier kann der Benutzer freie Hand anlegen. Das eigentliche Dateisystem des Wii-Images befindet sich im Verzeichnis PATCHDIR/files/.... Auch die Systemdateien wie z.B. main.dol können modifiziert werden. Diese liegen im Verzeichnis PATCHDIR/sys/.

Da das Wii-Image komplett neu erstellt wird, spielt die Größe der veränderten Dateien keine Rolle, solange nicht die Gesamtgröße von ca. 8.7 GiB überschritten wird. Es können sogar zusätzliche Dateien angelegt werden. Dieses können z.B. Info-Dateien zu den Erweiterungen oder Quelldateien sein.

wit unterstützt sogar Soft- und Hardlinks, falls die Option --links aktiviert sind. Dann werden verlinkte Dateien nur einmal auf dem Image abgelegt.

Neues Image erstellen

Hierzu wird einfach das COPY-Kommando von wit bemüht:

wit copy PATCHDIR CUSTOM.wbfs -vv --id=NEWID6 --name "Neuer Disc Titel"
wit copy 
Dieses ist das Kommando, eine Kopie zu erstellen.
PATCHDIR 
Der erste Dateiname gibt die Quelle des Kopierens an. Ist es ein Verzeichnis, welches vorher wie oben beschrieben entpackt wurde, dann setzt der Kopierbefehl automatisch alle Dateien zu einem neuen Image zusammen.
CUSTOM.wbfs 
Dieses ist die Zieldatei. Durch die Dateiendung .wbfs wird dem Programm mitgeteilt, dass es eine WBFS-Datei erstellen soll. Soll eine bereuts existierende Datei überschrieben werden, dann muss zusätzlich die Option --overwrite (oder kurz -o) angegeben werden.
--id=NEWID6 
Dieses optionale Option legt eine neue ID6 des Spieles fest. Mehr dazu weiter unten.
--name "Neuer Disc Titel" 
Diese optionale Option legt einen internen Spielnamen fest. Es ist sinnvoll, damit die USB-Loader etwas gescheites anzeigen, da das Spiel durch die neue ID dem USB-Loader nicht bekannt ist und er dann den internen Namen Verwendet. Der Name darf bis zu 63 Zeichen lang sein. Außerdem sollte man sich auf ASCII-Zeichen[1] (u.a. keine Umlaute) beschränken.

--id=NEWID6

Mit dieser Option können die Tools wit und wwt beim Kopieren eines Images diesem eine neue ID geben. Diese ID wird für den Disc-Header, für boot.bin, für TMD und TICKET und ggf. als WBFS-Kennung genutzt. TMD und TICKET nutzen übrigens nur die ersten 4 Buchstaben. Bei einer Veränderung wird das Image automatisch neu signiert (Fake signed).

Eigenes Savegame

Soll das neue Spiel ein eigenes Save-Game nutzen, dann muss mindestens eines der ersten 4 Zeichen modifiziert werden (Vergleiche »Wii-Image: Savegame«). Hier empfiehlt sich, den bisher als erstes Zeichen unbenutzten Buchstaben K (Eselsbrücke: K wie Klone) zu verwenden. In diesem Falle lautet die Option:

--id=K

Dadurch wird das erste Zeichen auf K gesetzt und die restlichen 5 Zeichen bleiben unverändert. So würde z.B. aus RMCP01 die neue ID KMCP01.

Savegame mit dem Original-Spiel teilen

Es ist auch möglich, dass das gepatchte Spiel dasselbe Save-Game nutzt, wir das Original-Spiel. Dennoch möchte man im USB-Loader die Auswahl zwischen dem Original-Spiel und dem (oder sogar mehreren) Custom-Varianten haben. Dieses ist möglich, indem man nur das 5. und 6. Zeichen der ID6 ändert, z.B.:

--ID=+XY

Das Plusszeichen ist ein Platzhalter, der dafür sorgt, dass die vorderen Zeichen unverändert bleiben. So würde z.B. aus RMCP01 die neue ID RMCPXY.

Batch-Datei/Script

Zum Entpacken des Images und für das Erzeugen eines Images bietet sich das Erstellen eines Scriptes (unter Windows: Batchdatei) an. Es folgen nun 2 Beispiele nun Windows. Zum Editieren unter Windows bietet sich das Programm Notepad++.

Bachtdatei zum Entpacken des Images:

@echo off
wit extract ORIGINAL.wbfs patchdir.d -vv
pause

Bachtdatei zum Erzeugen eines neuen Images:

@echo off
wit copy patchdir.d NEWIMAGE.wbfs -vv --overwrite --id=ID6 --name "TITEL"
pause

Script zum automatischen Patchen

Möchte man z.B. einen Patch verteilen, der automatisch beim Benutzer ein neues Image erstellt, dann könnte man so vorgehen:

  1. Als Voraussetzung fordert man die installierten Wiimms ISO Tools.
  2. Dann legt man ein Arbeitsverzeichnis an, welches das Verzeichnis patchdir/ und das Unterverzeichnis patchdir/files/ enthält. In letzteres legt man alle Dateien ab, die ausgetauscht werden müssen. Dabei ist auf die richtige Verzeichnisstruktur inklusive der Klein-/Großschreibung zu achten.
  3. Von diesem patchdir/ legt man eine ZIP-Datei an.
  4. Das UNZIP-Programm[2] sollte man am besten gleich dabeilegen.
  5. Und nun muss eine Batchdatei angelegt werden (siehe unten), die wir z.b. patch.bat nennen.
  6. Die Dateien patch.bat, patchdir.zip und unzip.exe sowie eine weitere README.txt mit Erläuterungen machen dann die Distribution aus.

Die Datei patch.bat sieht dann z.B. wie folgt aus:

@echo off
wit extract --one-job --no-fst --include ID6 . patchdir -vv --psel
unzip patchdir.zip
wit copy patchdir CUSTOM.wbfs -vv --id=K --name "Custom XYZ"
pause

Das Extract Kommando ist etwas trickig. Durch ».« werden alle Images des aktuellen Verzeichnisses entpackt. Durch --no-fst wird ein evtl. entpacktes Image ignoriert. Die Option --one-job sorgt dann dafür, dass nur ein Image entpackt wird.--include ID6 sorgt dafür, dass nur Images der der angegebenen ID6 entpackt werden. Mit der Kombination kann der Benutzer das Original mit beliebigen Dateinamen in beliebigen Dateiformat nutzen, wobei es einen kleinen Schutz vor falschen Originalen gibt.

Wiimms ISO Patcher ist eine Tool- und Script-Sammlung, die genau dieses tut. Der Patcher läuft unter Windows, Mac und Linux.

Links

Referenzen