Romhacking (Leicht) - Tables erstellen und verstehen

    • Offizieller Beitrag

    Jeder Buchstabe und jede Ziffer hat einen Wert. Genau genommen einen Hexwert also 00 bis FF. Dieser Wert ist
    in den Konsolenspielen aber nicht standardisiert so, dass ein jedes Spiel einen anderen Wert haben kann für
    zum Beispiel den Buchstaben A.


    Ein Table ersetzt dir den Wert oder viel mehr das Ergebnis in ein Sichtbares Alphabet. Um diese "Dolmetscherdatei"
    zu finden/bzw. zu erstellen, müssen wir eine relative Suche Starten. Relativ deswegen weil wir nur den Text im Spiel,
    sowie die Ordnung des Alphabets kennen. Da die meisten englischen Spiele sowieso nur Großbuchstaben haben, sollte
    man teilweise schon mit "HELLO" oder "ENEMY" Erfolg haben.


    SNESEDIT wird dich über die Suche an das Wort bringen wo es die Buchstabenkette gefunden hat. Nun kannst du mit
    dem drücken der Taste 1 direkt eine Table Datei erstellen.


    Soweit so gut. Für viele Spiele sollte das genügen. Allerdings gibt es noch ein paar Sachen zu beachten.
    Spiele können aus verschiedenen Gründen verschiedene Schriften haben. Schriften(Fonts) haben meist auch einen
    unterschiedlichen Buchstabenwert. Das heist wir brauchen für jede Schriftart einen eigenen Table.


    Infos zum hacken von Japanischen Zeichen folgt später.

    • Offizieller Beitrag

    Hey Blackerking spitzen Arbeit, langsam kommen die Guten TuT's ;) ich wollte das schon die ganze Zeit machen Kamm leider noch nicht dazu weil ich immer noch im Archive rum wussel und die Datenbank fülle und video's bearbeite und Star Ozean neben bei, wenn noch Luft ist,werde ich es machen, ansonsten Daumen hoch und weiter machen. ^^

  • Wie man Buchstaben findet habe ich nun begriffen, aber wie schaut es mit Sonderzeichen und Zahlen aus. Bei Zahlen bekomme ich ein Suchergebnis von mehreren Tausend Einträgen bei der relativen Suche in SnesEdit. Woher weiß ich, dass es die richtige Zahl ist.

  • Am besten öffnest du den Grafikeditor mit "F4" in snesedit und versuchst die Font zu finden. Erstmal auf 2Bit stellen und runterscrollen, bis du etwas findest was nach schrift ausschaut. Hast du was gefunden kannst du es gegebenfalls noch genauer einstellen und nun dein Table vervollständigen. So mache ich es immer.

  • Ansonsten suchst Du im Spiel nach Stellen in denen Zahlen im Dialogfenster ausgegeben werden. Die Anzeige von Gold, etc. ist aber weniger geeignet da diese Werte in der Regel dynamisch sind. Aber zum Beispiel Jahreszahlen und ähnliches lassen sich ganz gut nutzen. Du suchst dann mit der normalen Suche den darauf folgenden Text und kannst so die Werte für die Zahlen ermitteln.

  • Kannst du mal ein Screenshot von der Grafikansicht posten? Da wo du die Ziffern gefunden hast, müssten auch die Buchstaben stehen? Die müssen mit auf den Screenshot.


    Hier hast du als Beispiel mal das Font zu FFV.

    Links, in der fünften Reihe siehst du das große Alphabet. Gehst du nun rückwärts die Zeichen durch, dann kommt von dem "A": p, h, m, 9, 8, 7 etc.
    Rechts siehst du in der dritten Zeile das "z". Dahinter kommen ein paar Bigrame: il, it, *Leerzeichen*, li, ll und dann die Satzzeichen.
    So könntest du einfach die Zahlen, Sonderzeichen und Satzzeichen in deinem Tbl übernehmen.

  • Stell mal die Font auf 8x12 und justier mit den +1 und -1 Tasten etwas nach. Dann bekommst du dieses Ergebniss:


    Von den Grafikeditor kommst du nicht direckt in den tbl editor. Mußt den Grafik editor erst schließen (esc) und dann vom Haubtfenster aus die Entertaste. Dann kannst du das tbs so füllen wie du es im grafik editor gesehen hast.

  • Sorry wenn ich mich immer noch etwas blöd anstelle, aber irgendwie denke ich reden wir aneinander vorbei.
    Das Beispiel was du gezeigt hast, ist schon das ins deutsch gepatchte Chrono Trigger von ManuLöwe. Aber ich habe die US Version als Voraussetzung genommen, wie es im Tutorial auch beschrieben ist. Da sind paar Zeichen anders, ich denke das wird bestimmt noch erklärt im Tutorial. Aber erstmal Schritt für Schritt abarbeiten.
    Ich habe nun mal ein Screenshot gemacht, so wie es im Moment aussieht:


    Also ich merke mir nun dort z.B. wo die "0" steht, also direkt hinter dem kleinen "z"
    Gehe mit ESC aus dem Menü raus und komme wieder in die normale Offset Liste, dort ist aber immer noch das "S" vom vorhin ausgewähltem "Sword" markiert. Wenn ich nun mit "1" in die tbl wechsel, dann hat er mir den Hexwert "B2" markiert, dort wo ich vorhin das "S" von mir gesetzt worden ist.


    Sieht also so aus:


    Was muss ich nun genau tun? Abzählen wo die NULL hinkommt?


    Also in dem Beispiel bei: "D4"???


    Ich habe auch schon nach Textpassagen gesucht, aber da scheitert die relative Suche, ich denke wohl weil es was mit Pointern und komprimierten Text zu tun hat oder?


    Gut wäre evtl. ein kleines Videotutorial.

  • Was heißt da abzählen? :) Wenn Du weißt, dass die Null direkt auf das kleine-z folgt, dann drückst Du auf die Enter-Taste bewegst den Cursor zum kleinen-Z und nimmst den nachfolgenden Wert. Danach machst Du noch weiter mit der nachfolgenden 1 und drückst danach die Taste a, dann vervollständigt er die Zahlenreihe automatisch.


    Und nach der 9 geht es nun weiter mit ! ? / " " : & ( ) usw. Ganz einfach, Du musst diese Zeichen aber via Hand setzen, da SnesEdit nur A-Z, a-z und 1-9 automatisch setzen kann.
    Sollte aber ja kein Problem sein.

  • Sorry wenn ich mich immer noch etwas blöd anstelle, aber irgendwie denke ich reden wir aneinander vorbei.
    Das Beispiel was du gezeigt hast, ist schon das ins deutsch gepatchte Chrono Trigger von ManuLöwe. Aber ich habe die US Version als Voraussetzung genommen,


    Ja, ich hatte die US Version gerade nicht griffbereit. Aber ich denke zum erklähren reicht auch die deutsche. :whistling:


    Zitat von knuffi1985

    Gehe mit ESC aus dem Menü raus und komme wieder in die normale Offset Liste, dort ist aber immer noch das "S" vom vorhin ausgewähltem "Sword" markiert. Wenn ich nun mit "1" in die tbl wechsel, dann hat er mir den Hexwert "B2" markiert, dort wo ich vorhin das "S" von mir gesetzt worden ist.


    Das ist doch klar, wenn du mit dem Curser noch auf einem "S" stehst, kommst du im tbl auch automatisch auf das "S".
    Wie TischleinDeckDich schon geschrieben hat, musst du einfach mit dem Curser weiter gehen, auf den Punkt von dem du nun weist wo die "0" kommt und dann die Liste einfach weiter auffüllen.