Monatsarchiv für Oktober 2007

Valkyrie Profile

Mittwoch, den 31. Oktober 2007

Und schließlich zu meinem anderen Projekt, das im Moment ein wenig im Hintergrund steht.

Arbeiten wollte ich an diesem Spiel schon lange. Schon als ich es das erste Mal gespielt hatte kam das Verlangen. Aber - ähnlich wie bei Lufia 2 - war es wiedereinmal unmöglich für mich. Ein Jahr später dann hat die Telekom wieder einmal Mist gebaut und ich stand ohne Internet da. Diese Zeit habe ich dann genutzt, um mir Valkyrie Profile noch einmal anzusehen. Zunächst verlief es wieder einmal erfolglos. Nichtmal im SaveState des Emulators ließ sich Text finden. Aus Neugier habe ich dann einmal das gesamte SaveState in einem grafischen Editor durchgescrollt - und ich wurde fündig!

Es zeigte sich, dass das Spiel die Zeichensätze in einem ungewöhnlichen Format speicherte, nämlich nur die Zeichen die auch verwendet wurden. Die Ursprünge davon liegen vermutlich bei der japanischen Version, wo so eine Vorgehensweise viel wertvollen RAM speichern kann. Für englische Spiele ist es dagegen sehr ungewöhnlich und fast schon kontraproduktiv.

Jedenfalls hatte ich so endlich einen Anfang gefunden. Das nächste Problem stellte die Komprimierung des Spiels dar. Besser gesagt, die Komprimierungen. Es gibt zwei verschiedene, aber sie sind relativ ähnlich. Es dauerte ein wenig, aber schließlich könnte ich sie beide umsetzen und so die Daten vom Spiel dekomprimieren.

Aber schon zeigte sich das nächste Problem. Das Dateisystem vom Spiel. Alles was man auf der CD finden konnte waren drei Dateien. Einmal die CNF-Date, die das System zum Starten braucht, einmal die ELF-Datei die den Code enthält, und schließlich eine 700mb große Datei wo der Rest des Spiels enthalten ist. Nun, wo sollte man da anfangen? Ich wusste schon, dass das Spiel diese Datei intern in viele tausend einzelne Dateien unterteilt, aber, wie macht es das?

Es half alles wenig. Aber durch einen glücklichen Zufall bekam ich Kontakt zu einem französischen Rom-Hacker namens Pixel - der einigen sicher ein Begriff sein sollte (Stichwort: Terminus Traduction). Nach einem kleinen Crashkurs in Sachen Verschlüsselungen und kleinen Hilfestellungen konnte ich so dank ihm die Dateien vom Spiel entpacken!

Und das waren nicht grade wenige. Viele tausend Dateien waren es, 4300 Stück. Allesamt natürlich ohne Namen. Ein wenig günstiger Umstand ist das, aber damit muss man nun einmal klar kommen. Die nächste Zeit verbrachte ich also damit diese Dateien zu analysieren, Daten zu finden, Zeichensätze zu analysieren (da das Spiel ja für jeden Text nur die nötigen Zeichen speicherte), Texte zu dumpen, und so weiter. Es gelang mir schließlich sogar, die Daten vom Spiel auch wieder erfolgreich zu komprimieren - ein großer Schritt für mich.

Aber dennoch blieb ein Problem. Die Daten wieder richtig einzufügen blieb umständlich, wegen den Fehlerkorrekturen die so eine CD inne hat. Für C++ gab es dafür Code der einem das abnahm, aber da ich mit Objekt Pascal arbeitete war das keine Wahl. Da ich allerdings schon lange auf C++ umsteigen wollte, fasste ich den Entschluss es nun endlich zu tun.

Es war ein harter Umstieg, und ich musste viel Code portieren, aber schließlich hat es sich gelohnt. Inzwischen kann ich sehr gut mit C++ umgehen, habe allen Code portiert, und auch noch viel mehr geschrieben.

Zu dem was ich inzwischen alles mit dem Spiel anstellen kann zählen:

  • Alle Daten dekomprimieren und wieder komprimieren (effektiver als vorher!)
  • Alle Arten von Texten dumpen und wieder einfügen und Zeichensätze anpassen
  • Grafiken extrahieren

… nach viel sieht das nicht aus, oder? Aber es ist es. Viel Code steckt da drin, und vieles kann man damit anstellen. Doch es steht mir noch viel Arbeite bevor.

Anzumerken ist auch noch, dass die italienische Gruppe SadNES City ebenfalls an diesem Spiel arbeitet, und wir uns gegenseitig gut mit Informationen unterstützen.

Lufia 2 Geschichte

Dienstag, den 30. Oktober 2007

Zunächst einmal meine Fortschritte bei Lufia 2.

Viele schöne Dinge verbinde ich mit dem Spiel, doch auch unschönes, wenn ich beispielsweise an die groteske deutsche Übersetzung denke. Schon seit ich mit Rom-Hacking angefangen habe, hatte ich den Wunsch mehr mit diesem Spiel zu machen. Aber es zeigte sich schnell, dass das Spiel weit über meinem Niveau war, mit seinen multiplen Kompressionen und verworrenem Format. Seitdem sind nunmehr drei Jahre vergangen. Drei lange Jahre, in denen ich mir das nötige Wissen aneignen konnte.

Vor zwei Monaten schließlich fing ich an dieses Wissen anzuwenden. Der wichtigste Schritt war zunächst, die Komprimierung des Spiels herauszufinden. Nach einer kurzen Einarbeitungen in 65816 Assembly ging das dann schließlich, und ich machte erstmals Fortschritte. Ein paar Wochen später gelang es mir dann auch, die Komprimierung soweit umzusetzen, dass ich die Daten auch wieder komprimieren konnte - ebenso effektiv wie sie vorher auch komprimiert waren.

Mit diesem großen Problem aus dem Weg machte ich mich schließlich an andere Dinge. Nach einigem Testen gelang es mir im Laufe der letzten Woche schließlich, das Kartenformat vollständig zu entschlüsseln, und jegliche Karten ins Bitmap Format zu konvertieren. Dazu waren mehrere Schritte nötig, und vermeidbare Fehler haben mich auch viel Zeit gekostet, aber am Ende zählt nur dass es jetzt funktioniert.

Im Moment arbeite ich schließlich an den verschiedenen Events auf der Karte, wozu unter anderem NPCs zählen. Das Format scheint relativ simpel zu sein, mit Glück zeigen sich also schon bald weitere Erfolge.

Alleine arbeite ich allerdings nicht an diesem Spiel. Ein weiterer Verrückter namens Favorite teilt das Interesse an diesem Spiel und arbeitet ebenfalls mit Erfolg an mehreren Formaten vom Spiel - unter anderem das der Monster.

Kurze Vorstellung

Dienstag, den 30. Oktober 2007

In diesem Blog werde ich über meine Rom-Hacking Fortschritte berichten. Dazu zählen momentan zwar nur zwei Projekte, doch diese sind dafür sehr aufwendig und zeitraubend:

  • Eine deutsche Übersetzung für Valkyrie Profile
  • Momentan noch recht wenig, allerdings verschiedene Arbeiten an Lufia 2

Der Großteil meiner Zeit fließt dabei in Valkyrie Profile ein (die Playstation Version, nicht die PSP Version). Es ist ein ziemlich schweres Spiel, und braucht auch noch sehr viel Arbeit bis es fertig ist. Im Moment nehme ich allerdings eine kleine Auszeit von Valkyrie Profile, nach vielen Wochen sehnt man sich eine Zeit lang nach etwas anderem.

Und da kommt Lufia 2 ins Spiel. Das gibt es zwar schon auf Deutsch, aber das schlecht als recht und mit vielen fragwürdigen Änderungen. Ob ich eine Übersetzung dazu mache weiß ich noch nicht, aber bisher habe ich schon vieles über das Spiel herausgefunden. Dazu später mehr.

Ansonsten gab es noch einige andere Projekte, aber ich weiß noch nicht, ob ich sie weitermachen soll. Zwei Spiele haben ein Remake auf einer neueren Konsole erhalten, also habe ich noch etwas Zweifel ob es sich auch lohnt. Ich werde aber natürlich davon berichten.


FireStats icon Powered by FireStats