Grundlagen des Nintendo 3DS-Hackings

    • [Grundkenntnisse]
    • Grundlagen des Nintendo 3DS-Hackings

      Es war eines schönen Abends, als der gute manuth und ich uns dachten: "Bei den ganzen 3DS-Tutorials, die in letzter Zeit rauskommen, ist es doch nervig, ständig die Grundlagen dazuschreiben zu müssen..." Also haben wir uns gemeinsam hingesetzt und dieses Tutorial geschrieben.
      Der Sinn hiervon ist es, dass User, die in Zukunft Tutorials über das Nintendo-3DS Hacking schreiben, direkt hierauf verlinken können, statt immer die Grundlagen, wie zum Beispiel wie man das RomFS extrahiert, selbst schreiben zu müssen. Dieses Tutorial wird in Zukunft auf jeden Fall noch erweitert werden und es steht jedem frei, hierauf zu verlinken.

      Hinweis: Eine wichtige Grundlage zum Hacken von 3DS Spielen, ist die Installation von Homebrew. Da es dafür aber schon ein Tutorial gibt, wird es hier nur verlinkt: [Sonstiges] 3DS Homebrew Installation (Firmware 10.5) via Browserhax




      Die SD-Karte des Old 3DS lässt sich leicht entfernen und in den PC einsetzen.
      Beim N3DS bildet sich jedoch das Problem, dass sich die Karte hinter einer festgeschraubten Verschalung ist und es nervtötend ist, diese erstmals aufzuschrauben, um an die SD-Karte heranzukommen.
      Es gibt 2 alternative Wege dazu:

      1. Durch Nutzung von FTBrony
      Im Homebrew-Channel ist bereits eine App namens "FTBrony" abgelegt.
      Hierbei handelt es sich um einen FTP-Server, welcher auf die SD-Karte des 3DS zugreift.
      So kannst du gemütlich mit dem Windows Explorer, FileZilla oder ähnlichem die Dateien auf dem 3DS verwalten.

      Starte hierfür die App "FTBrony" und gib im Windows Explorer oder im FTP-Browser deiner Wahl die auf dem oberen Bildschirm des 3DS angezeigte IP-Adresse und Port ein um die Daten dann verwalten zu können.
      2. Mit Hilfe der SD-Karten-Verwaltung von Nintendo (empfohlen)
      Eine in meinen Augen richtig geniale Funktion von Nintendo ist die SD-Karten-Verwaltung, welche man über das Systemeinstellungs-Menü des 3DS erreichen kann.

      1. Gehe dafür folgendermassen vor:
      2. Öffne die Systemeinstellungen des 3DS
      3. Wähle die Option "Datenverwaltung"
      4. Tippe nun auf die "microSD-Verwaltung"
      5. Wähle nun einen Access-Point aus, mit dem dein PC verbunden ist und gib den Nutzernamen und das Passwort des Benutzers an, mit dem du dich auf deinen 3DS verbinden willst.
      6. Gib im Anschluss den Namen ein, unter dem der 3DS im Netzwerk auffindbar sein soll.
      7. Öffne nun den Explorer, wähle den Punkt "Netzwerk" und öffne den 3DS, welcher dir nun im Explorer angezeigt wird.



      Hier hast du nun die Möglichkeit, die Dateien auf der SD-Karte zu bearbeiten.
      Wann auch immer vom Bearbeiten/Kopieren/Umschreiben von Dateien auf dem 3DS die Rede sein sollte, solltest du einen dieser Wege auswählen.


      Spiel dumpen


      Hinweis: Je nach Spiel benötigst du für diesen Schritt 1,6 bis 2,1 GB freien Speicher auf deiner SD-Karte (Möglicherweise gibt es sogar noch größere Spiele). Stelle also sicher, dass du genügend freien Speicherplatz hast, bevor du mit diesem Schritt beginnst!

      1. Downloade braindump (Siehe Abschnitt 9 - Ressourcen und Tools), entpacke das Archiv und kopiere anschliessend den
        Ordner "braindump" in den Ordner "3ds" auf der SD-Karte deines 3DS.
      2. Lege das Spiel, das du hacken möchtest, in den 3DS ein oder downloade,
        falls nicht bereits geschehen, das Spiel vom Nintendo eShop.
      3. Starte den Homebrew-Launcher und öffne die App "braindump" welche nun zuunterst in der Auflistung erscheinen sollte.
      4. Nutze die rechte und die linke Pfeiltaste um dein Spiel auszuwählen und bestätige die Auswahl mit "A".
        Daraufhin wird euer Spiel auf die SD-Karte gedumpt.
      Hinweis: Dieser Schritt kann bis zu einer Stunde in Anspruch nehmen!



      RomFS extrahieren

      Auf der SD-Karte befindet sich nun eine neue cxi-Datei, dessen Namen aus Hexzahlen besteht.
      Verschiebe diese Datei auf den PC. Schreibe dir die letzten 8 Ziffern des Dateinamens irgendwo auf. Diese wirst du beim erneuten Builden der RomFS nochmal benötigen.
      Im Falle von Pokémon Omega Rubin wäre das beispielsweise
      0011c400
      .

      Für die Extrahierung des Spiels nutzen wir das "ctrTool" (Siehe Abschnitt 9 - Ressourcen und Tools).

      Kopiere die Datei, damit du immer eine cleane Version des Spiels griffbereit hast.
      Kopiere die Datei "ctrTool.exe" in den Ordner, in dem du cxi-Datei abgelegt hast und öffne ein cmd-Fenster.
      Hierzu drücke Win+R und gib "cmd" ein. Drücke anschließend auf "OK".



      Im neu geöffneten Fenster gibst du den Befehl
      cd
      gefolgt vom Pfad des Ordners, in dem sich deine .cxi-Datei befindet, ein (Wenn dein Pfad Leerzeichen enthält, musst du ihn in Anführungszeichen eingeben). Also beispielsweise
      cd pfad/zum/ordner/
      oder
      cd "pfad/zum ordner/"
      .
      Wenn du den Befehl ohne Fehler eingegeben hast, musst du folgenden Befehl eingeben:
      ctrtool -p --exefs=exefs.bin --romfs=romfs.bin {cxi-Datei}

      Beachte hierbei, dass du {cxi-Datei} mit dem Dateinamen deiner .cxi-Datei ersetzt!
      Das ctrTool erstellt nun die beiden Dateien "romfs.bin" und "exefs.bin".

      Lösche anschliessend die cxi-Datei.
      Führe nun folgende Befehle aus:
      ctrtool.exe --intype=romfs --romfsdir=romfsdir romfs.bin

      ctrtool.exe --intype=exefs --exefsdir=exefsdir --decompresscode exefs.bin

      Diese beiden Befehle erstellen die Ordner "romfsdir" (Dein RomFS) und "exefsdir" (Dein ExeFS). Anschliessend kannst du die Dateien romfs.bin und exefs.bin löschen.

      Zusatzinformationen
      Der Ordner "romfsdir" beinhaltet nun das ROM-FileSystem, also den Sektor
      des Spielmoduls/der eShop-App, welcher nur gelesen wird.

      Die .cxi-Datei enthält das ROM-FileSystem, sowie das Exe-FileSystem (Also den eigentlichen Code des Spiels) in einer Datei komprimiert. Diese Datei kann unter anderem vom 3DS-Emulator "citra" gestartet werden.



      Gehacktes RomFS builden

      Als erstes musst du den "RomFS Builder" (Siehe Abschnitt 9 - Ressourcen und Tools) starten.
      Klicke auf "Open" und wähle deinen RomFS-Order (Wie oben bereits gesagt, "romfsdir") aus.



      Danach klicke auf "Go". Das kann jetzt einige Zeit dauern (Bis zu 10 Minuten, je nach Rechenleistung deines PCs).

      Wenn der Builder fertig ist, öffnet sich ein Fenster und du musst auswählen, wo du deine Datei abspeichern willst. Speichere sie als .romfs-Datei ab und gib ihr als Namen den Code, den du dir beim Extrahieren des RomFS aufgeschrieben hast (Also beispielsweise 0011C400.romfs).

      Hinweis: Alle Buchstaben im Dateinamen müssen groß geschrieben sein!



      Gehacktes Spiel spielen

      Erstelle im Root der SD-Karte deines 3DS einen Ordner namens "hans".
      Beachte hierbei, dass der name "hans" gezwungenermassen klein geschrieben werden muss!

      Verschiebe anschliessend deine .romfs-Datei in den Ordner "hans". Sobald das getan ist, starte den Homebrew-Launcher auf deinem 3DS und wählt die App "Hans". Nutze wiederum die linke und die rechte Pfeiltaste, um dein Spiel auszuwählen und bestätige mit "A".

      Wähle danach unter Region und Sprache die "---", um Region und Sprache deiner Konsole auszuwählen oder wähle eine andere Region/Sprache aus, um
      nachzusehen, wie das Spiel in anderen Sprachen aussehen würde. Wähle unter "RomFS -> SD" YES und wähle "OK", um das Spiel nun zu starten.

      Zusatzinformationen: Was bewirkt das Ganze nun?
      Das ROM-FileSystem befindet sich auf der Karte oder in der eShop-App und wird nur gelesen. Darin befindet sich das eigentliche Spiel. Was wir mit der RomFS -> SD-Funktion machen ist folgendes:
      Statt dass das System den ROM von der Karte oder der eShop-App liest, wird die von uns erstellte romfs-Datei als ROM-FileSystem geladen.

      Wir ändern also nicht das Spielmodul oder die eShop-App, sondern nur unsere romfs-Datei. Darin befindet sich quasi das ganze Spiel und unsere Änderungen.

      Patches können durchaus erstellt werden. In diesem Falle nimmst du die romfs.bin als original-Datei und die XXXXXXXX.romfs als Modifikation. Hierzu eignet sich jedoch nur das RHRPS und das UPS.



      Nachwort
      Wir hoffen, dass dieses Tutorial einigen Nutzern das Schreiben erleichtern wird und wir werden es auch immer wieder erweitern.
      Hast du eine Idee, was wir noch hinzufügen könnten? Zögere nicht, und schreibe sie uns als PN, oder als Antwort in diesem Thread!



      Ressourcen und Tools

      Tools
      braindump
      ctrTool
      RomFS Builder


      Tutorials
      Hast du jetzt Lust aufs 3DS Hacking bekommen, weißt aber nicht, wo du anfangen sollst? Hier sind zwei Tutorials für den Anfang:
      [Grafikhacking (komprimiert)] [ORAS, X/Y] Titlescreen bearbeiten - von manuth
      [Musikhacking] [XY, ORAS] Musik bearbeiten - von mir

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von StuntHacks ()

    • Geniale Sache :thumbsup:
      Ich finde, unser Tutorial ist seeehr geil geworden, das Design hat wirklich Klasse ;)

      Ich werde den Teil gleich aus dem Titlescreen-Tut entfernen und auf dieses hier verweisen ^^
      RomHackersResources Patcher veröffentlicht
      Jede Menge Features, die Rom-Hackern das Leben erleichtern!



      Der durchsichtige Sonic ist dein Doppelgänger-Sonic!
      Du musst das Ziel vor deinem Doppelgänger erreichen!!