Trainer-Sprites Hacken (FR/BG)

  • Hi, heute zeige ich euch wie man die Trainer-Sprites in FR/BG ändert. (Nicht die Hero Sprites, sondern die Gegner)
    Kurzes Vorwort xD


    Gut, fangen wir direkt an:


    Geht als erstes im unLZ.GBA zur Nummer (+ - 5) 1494. Dort fangen die Sprites an. Wie ihr seht, ist der erste Sprite der Team Aqua Boss (oder Rüpel?).



    Jetzt sucht ihr den Sprite den ihr editieren wollt mit der "Next" und "Previous" Funktion, ein bisschen arbeit schadet ja nie^^
    In meinem Fall editiere ich den Trainersprite von Gary zu dem von Perl.



    Nun müsst ihr den Sprite exportieren, mit "Save As". Speichert den Sprite irgendwo, bspw. auf dem Desktop.
    Jetzt öffnet ihr den Sprite in IrfanView, und schaut euch die Pallette an.



    Wie ihr seht, 16 Farben (Dazu muss gesagt werden, dass es zwar 256 sind, aber nur 16 verwendet werden. Also wäre es platzsparender, 16 zu benutzen). Also muss unser Sprite auch 16 Farben haben.
    Öffnet euer eigenes Bild in IrfanView und geht auf Image(Bild)/Decrease Color Depth(Farbtiefe reduzieren oder so :D )
    und speichert euer Bild.



    Wenn ihr das gemacht habt, müsst ihr das gleiche machen wie wenn ihr Pokemon-Sprites mit dem unLZ.GBA einfügt:
    Ihr müsst die Pallette so tauschen, so dass die Hintergrundfarbe auch wirklich Transparent ist.
    Geht auf Image(Bild)/Pallette/Edit Pallette(Pallette bearbeiten)



    Jetzt machen wir es uns ein wenig leichter:
    nehmt die Hintergrundfarbe(In meinem Fall Rot) und klickt doppelt darauf. Nun öffnet sich eine Pallette wie in Paint.
    Klickt auf "Farbe hinzufügen" und macht es wieder zu.



    Als nächstes klickt ihr auch doppelt auch die momentane 1. Farbe der Pallette, merkt euch ihre Werte (MEISTENS 4,2,4) und klickt auf die Farbe die ihr eben gespeichert habt.



    Nun gebt ihr die Werte die ihr euch gemerkt habt in der Farbe ein, die ihr gespeichert habt und drückt OK.(Dazu kein Screen :P)
    Als letztes speichert ihr das Bild mit der anderen Pallette mit anderem Namen als die ursprüngliche Datei.
    Öffnet das veränderte Bild (andere Pallette) mit PaintXP und fügt das originale Bild mit der reduzierten Farbtiefe ein und speichert.



    Und zuletzt fügt ihr euer Bild ein mit unLZ.GBA. Klickt dazu einfach auf "Import" und wählt "Write to ROM".
    Hier der Teil, der alles mit den Pokemon unterscheidet (denke ich, ich hab Pokemon-Sprites immer mit anderen Tools eingefügt):
    Ihr müsst ÜBERALL den Haken machen und ggf. die Offsets ändern, ich hab's auch ohne geschafft.



    Das wars, hier das resultat:



    Das wars schon. Klein aber fein, oder?
    Ich bräuchte etwas Feedback, wenn's erlaubt ist danach zu fragen^^


    Achja, Credits für dieses Tutorial:
    Ich
    PokeCommunity (ich krieg dieses eine e nicht hin)
    Mehr gibts da nicht.

  • Jaa...Ich versteh den sinn des tutorials nicht, aber es ist gut geschrieben und gut erklärt...Weis nur nicht wesshalb du dir diese Arbeit antuhst..


    @unten
    Ich meinte ja nur das es nichts neues ist und es schon 3 Tuts oder so gibt...

  • Jaa...Ich versteh den sinn des tutorials nicht, aber es ist gut geschrieben und gut erklärt...Weis nur nicht wesshalb du dir diese Arbeit antuhst..


    Es sind nicht alle mit deinem Intellekt gesegnet, einigen hilft dieses Tutorial bestimmt ;).
    Gut strukturiert, schön erklärt und manch älterer User könnte sich eine Scheibe von der Rechtschreibung abschneiden :P. Auf jeden Fall gute Arbeit :).


    Lg, Alen

  • Alen schrieb:

    Es sind nicht alle mit deinem Intellekt gesegnet, einigen hilft dieses Tutorial bestimmt ;).Gut strukturiert, schön erklärt und manch älterer User könnte sich eine Scheibe von der Rechtschreibung abschneiden :P. Auf jeden Fall gute Arbeit :)


    Lg, Alen


    Ich stimme dir zu Alen für neue user wie mich sind step by step tutorials genau das richtige!

  • Danke für das Tutorial, es hat mir ungemein geholfen. (:



    Aber ich hab ein kleines Problem..
    Er gibt an das Bild sei zu groß... Rein aus Interesse hab ich das Häckchen weggemacht bei 'Auto abort if new data is bigger'.
    Man kann sichs vorstellen: Der Sprite ging dabei natürlich in den Eimer.
    Wie kann ich also das Offset ändern? :/
    Ich dachte wenn ich bei 'Image Offset' das Offset ändere (Hab 800000 genommen :3), würde das passen.. dem war ja leider nicht so. :/

  • Ouh ganz schlecht.
    Fatale Fehler hast du da gemacht.
    Du musst umpointen.
    Als erstes notierst du dir die Zahl, die dir bei der Fehlermeldung angezeigt wird.
    Bsp: Size is 4AC which is too big


    Wandle das "4AC" von Hex in Decimal um und such nach einem freien Offset, welches so viele Bytes hat. (Der Free-Space-Finder ist dafür gnaz nützlich)


    Danach, wenn du das Bild in unLZ-GBA wieder speichern willst, einfach überall einen Haken machen und da wo "Image Offset" steht trägst du das neue Offset ein.


    Hier um Tutorialbereich gibt es auch einige Tutorials, die das Ganze noch genauer beschreiben.


    -Lifeless

  • Diese englische Meldung bedeutet: Komprimierte Größe beträgt X Bytes, was zu groß ist. Abbruch.
    Wenn die neuen Daten größer sind, als die alten, muss die ganze Sache einen neuen Speicherplatz bekommen.
    Stell dir vor, du willst deinen Ferari im Kleiderschrank parken, da der da aber nicht rein passt, solltest du ihn lieber in einer Garage parken. Solltest du das Auto dennoch in den Kleiderschrank fahren, geht er kaputt. So verhält es sich dann mit den Daten, die nach dem Bild kommen.
    Daher würdest du den nächsten Sprite beschädigen.
    Lösung: Gib ein neues freies Offset an. Das sollte aber in jedem guten Tutorial stehen.


    Zu den Farben: Wahrscheinlich ist die transparente Farbe nicht auf Index 0. Du kannst die Farbpalette von indizierten Bildern mit GIMP bearbeiten.

  • Ich verstehe garnichts mehr.


    Wie mache ich den neuen Speicher oder wie das heisst?


    Und wie mache ich den Giovanni aus HG jetzt so das er den aus BG ersetzen kann?


    Ich kapier irgendwie garnichts ich mache alles wie da oben und doch ist alles falsch :(

  • Code
    1. Compressed size is: 310. Which is to big. Aborting.


    Heißt, dein Bild ist 0x310 (hexadezimal) Bytes groß.
    Jetzt musst du 0x310 freie Bytes suchen.
    Freier Speicher ist durch eine Ansammlung von FF-Bytes gekennzeichnet.
    Öffne AdvanceMap und klicke auf die Lupe. Gib bei "Benötigte Bytes" die Anzahl der Bytes ein, die du brauchst.
    Hexadezimal 0x310 sind in dezimal 784 (unser Zahlensystem).
    Also suchst du nach 784 Bytes ab dem Offset 0x800000.
    Jetzt schlägt es dir bis zu 5 Offsets vor, die du nehmen kannst.


    Wenn du jetzt im unLZ dein Bild importierst und auf den Button "Write to ROM" klickst, machst du überall den Haken.
    Bei "Image Offset" kommt das freie Offset hin. Bei "Palette Offset" kommt ein anderes freies Offset hin.
    Idealerweise ergibt es sich aus: Freies Offset für das Bild + Bytegröße des Bildes (wenn danach auch FF-Bytes folgen).


    Beispiel:
    Offset für dein Bild: 0x800000
    Offset für die Palette: 0x800310