Donnerstag, 21. September 2017

HBMenu als Kernel für Ace3DS+ und co

WoodR4 Klone mit der Ace3DS Plus Hardware gibt es inzwischen überall; sogar bei 3DS Flashkarten wie der Gateway, der MT-Card oder der QQ3DS dabei. Da nach meiner Erfahrung die Homebrew Kompatibilität bei diesen Karten etwas eingeschränkt ist gibt es hier eine Anleitung, wie man die gehackte Wood R4 Version durch das HBMenu (und andere Homebrews) ersetzen kann.
Wenn du eine fertige Version herunterladen möchtest kannst du das hier tun.

Was du dafür brauchst (Hardware):

-Eine Flashkarte mit der Ace3DS Plus Hardware (z.B. blaue Gateway, blaue MT-Card, R4iTT, vielleicht R4infinity)
-Einen DS auf dem die Flashkarte läuft

Was du dafür brauchst (Software):

-Eine funktionierende DevkitPro Installation (https://devkitpro.org/wiki/Getting_Started)
-Eine funktionierende C/C++ Compiler/IDE Installation (Ich empfehle http://www.codeblocks.org/downloads/26)
-Einen Hex Editor (z.B. HxD)
-Den aktuellen Kernel von deiner Karte

1. Vorbereitungen

Ich gehe davon aus, dass DevkitPro und ein funktionierender C/C++ Compiler installiert und getestet sind.
Erstmal muss das HBMenu für die entsprechende Karte kompilliert werden. Dafür wird die DLDI Datei für die Karte benötigt, meistens befindet sie sich in den Kernel Dateien im "_rpg" Ordner und trägt den Namen "r4_sd.dldi" oder "ace3ds_sd.dldi. Die muss in "r4tfv2.dldi" umbenannt werden und die alte Datei mit dem Namen im "BootStrap" Verzeichnes vom HBMenu Quellcode ersetzt werden.
Jetzt kann man einfach in dem Hauptverzeichnis vom HBMenu Quellcode "make" eingeben. In dem "BootStrap" Ordner befindet sich eine "bootstrap.nds" die wir brauchen und im Hauptverzeichnis eine "hbmenu.nds", die wir in "BOOT.NDS" umbenennen und die am Ende von der bootstrap.nds gestartet werden wird. Wenn man eine andere Homebrew ausführen möchte kann man eine andere Homebrew "BOOT.NDS" benennen.

Als nächstes muss R4denc mit dem neuen Schlüssel für den Kernel ausgestattet werden damit wir ihn entschlüsseln können. Dafür muss in dem R4denc Quellcode der alte Schlüssel in Zeile 130 ersetzt werden (unsigned short key =...). Wenn man R4denc jetzt kompilliert kann man mit dem Befehl r4denc input.dat output.nds den Kernel entschlüsseln.

2. Wie lässt man HBMenu wie einen normalen Kernel wirken?

Den entschlüsselten Kernel und die "bootstrap.nds" muss man im Hex Editor öffnen und die ersten 0x11h Bytes aus dem Kernel kopieren. In meinem Fall ist das "52 34 49 54 00 00 00 00 00 00 00 00 23 23 23 23 23 23" (R4IT........######). Die muss man jetzt an den Anfang der "bootstrap.nds" schreiben ohne dass die restlichen Bytes nach hinten verschoben werden. Möglicherweise muss die Anwendung noch mit einem Tool um DS Header zu bearbeiten wie DSBrut gestartet werden um die Signatur des Headers zu korrigieren.
Jetzt muss die "bootstrap.nds" nur noch mit R4denc wieder verschlüsselt werden (r4denc bootstrap.nds _DSMENU.DAT). Dann müssen die "_DSMENU.DAT" und die "BOOT.NDS" in das Hauptverzeichnis der SD Karte kopiert werden. Wenn man eine Ace3DS Plus/X und keine Blue Card benutzt muss die _DSMENU.DAT noch in _DS_MENU.DAT umbenannt werden.
Fertig.

Keine Kommentare:

Kommentar veröffentlichen