Komplette Palette per ExAnimation verändern

Einleitung

Herzlich Willkommen zu dem Tutorial: Wie kann man die komplette Palette per ExAnimation verändern.
Hier erkläre ich euch, wie man das mit Lunar Magic bewältigen kann. Ich werde als Beispiel eine Lichtanimation erstellen, bei der man per ON/OFF-Block umschalten kann.
So sieht das Ergebnis aus:

Schwierigkeit: 5/10 - Fortgeschritten
Zeitaufwand: 15-90 Minuten
Vorkenntnisse: Paletten erstellen, ExGFX einfügen

Inhaltsverzeichnis

1.	Vorbereitung
1.1		Benötigte Programme
1.2		Paletten Erstellen
1.3		Grafiken exportieren + importieren
2.	Ausführung
2.1		Schritt Eins - ExAnimation für den Back Area
2.2		Schritt Zwei - Tipparbeit hoch 512!
2.3		Schritt Drei - Animation, wohoo!
3.	Schlusswort
3.1		Nachtrag #1 - Schnellere Methode die gesammte Palette zu kopieren

1. Vorbereitung

1.1 Benötigte Programme

Folgende Programme braucht ihr, um die komplette Palette per ExAnimation zu verändern:
  • Lunar Magic 1.7 oder neuer [1.82]
  • Einen Hex-Editor [Ich verwende hier HxD]

1.2 Paletten erstellen

Erstellt zwei Paletten, die erste in ein Level und die zweite in das nächste. Das zweite Level ist in meinem Beispiel das mit der dunkleren Palette.
Level 1 [Download]:

Level 2 [Download]:

(Die Paletten können per File -> Palette -> Import Level Palette from File... in Lunar Magic geladen werden)

1.3 Grafiken exportieren + importieren

Nun müsst ihr die Grafiken exportieren. Klickt auf den roten Pilz, dann auf den grünen Pilz, dann auf den blauen Pilz und zuletzt auf den gelben Pilz. Geht nun in den Graphics Ordner und kopiert GFX33.bin. Nun begebt euch in den ExGraphics Ordner und fügt die Datei ein und benennt sie in ExGFX60 um. Ihr könnt auch diese Datei direkt von hier runterladen. Nun geht ihr wieder zurück zu Lunar Magic und drückt auf den gelben Pilz.

2. Ausführung

2.1 Schritt Eins - ExAnimation für die Back Area

Das ist das einfachste, macht einfach für die Dunkle Palette einen schwarzen/dunkel grauen Hintergrund und für den hellen einen dunkelbläulichen/grauen Hintergrund.
Dann Kopiert ihr die Back Area Color von dem dunklen Level in das Helle Level auf einen freien Platz (z.B. das Kästchen unten rechts [Color FF]) und kopiert die Back Area Color vom hellen Level in das Kästchen links daneben (Color FE). öffnet nun das Level ExAnimations Fenster mit einem Klick auf den Goldenen Block von Super Mario Bros. 3. ()
Nun sollte dieses Fenster erscheinen:

Klickt auf die Dropdownbox "Slot" und wählt "1F: Not Used" aus. Dann geht auf die "Type"-Dropdownbox und wählt dort "Type: Palette Back Area Color, Stop on Fade" aus. Dannach klickt ihr auf die "Trigger"-Dropdownbox und wählt da "Trigger: ON/OFF" aus. Nun müssen wir die SNES-RGB-values rausfinden. Das geht sehr einfach:
Geht in den Palette Editor und geht mit der Maus auf die Hintergrundfarbe des hellen Levels (im Beispiel: die Farbe FE [fast ganz unten rechts]), klickt aber nicht. Im selben Fenster seht ihr unten "SNES RGB value". Den Wert schreibt ihr in die erste Textbox bei "Frames 00-07". Dann nehmt die Farbe von dem dunklen Hintergrund und schreibt sie in das Kästchen rechts neben den von vorhin.
So sieht es in unserem Beispiel aus (leicht editiert, damit es verständlicher ist):

Baut euch dann in dem Level, bei dem die ExAnimation ist, ein einfaches Level, es reicht ein Boden und es muss ein ON/OFF-Block drin sein. Beispiel:

(Ja, ich weiß, es ist nicht editiert außer der ON/OFF-Block, es ist Level 101 vom Orginal, ich hab nur den Screenshot geschnitten, damit er ein Screen lang ist.)
Öffnet euren Emulator und öffnet die ROM und startet ein Neues Spiel (am besten setzt ihr die Startposition auf der Oberwelt um, das geht schneller). Geht in das Level und springt mehrmals gegen den ON/OFF-Block. Falls ihr zu faul seid, ich hab eine Animation vorbereitet (der Hintergrund wurde ausgeschalten, sodass der Hintergrund nur aus der Back Area Color besteht.):
Animation
Toll, oder? Nein, es fehlt ja noch die Animation vom Vordergrund und dem Hintergrund (nicht die Back Area Color!).

2.2 Schritt Zwei - Tipparbeit hoch 512!

Jetzt wirds Anstrengend, also nicht Aufgeben! Nun brauchen wir ExGFX. Klingt komisch, ist aber so. Wir kopieren von dem Graphics Ordner GFX33.bin und fügen ihn in den ExGraphics Ordner rein. Dannach bennenen wir die Datei in ExGFX60 um.
Nun öffnen wir einen Hexeditor (hier HxD) und öffnen ExGFX60.bin damit. Dann sollte das Fenster ungefähr so aussehen:

Zuerst markieren wir alles (Strg+A ist sauschnell :D), gehen auf "Edit" -> "Fill Section...". Im Fenster klickt ihr auf "Zerobytes" und dann auf OK (den Schritt müsst ihr nur beim erstenmal machen, dann nie wieder). Jetzt sind alle Bits auf "0", ist jetzt aber nicht wichtig. Geht nun wieder ganz nach oben.
Jetzt wirds etwas kompliziert, also: Lest den folgenden Text ganz genau durch:
öffnet das ERSTE LEVEL (Helle Palette) und öffnet das Paletten Fenster. Fahrt mit der Maus auf die erste Farbe obenlinks.

Ihr seht, dass da der SNES-RGB-Wert = 0000 ist, also müssen wir in dem Hexeditor in den ersten Zwei Bytes 00 00 eintragen. Gut, die stehen da ja schon. Jetzt gehen wir mit der Maus eine Farbe nach rechts.

Diesmal ist der SNES-RGB-Wert = 7FDD. Halt! Ihr denkt bestimmt, dass man 7F DD in den Hexeditor schreiben muss. Das ist Falsch! Ihr müsst die letzten zwei Zahlen mit den ersten zwei tauschen, also wird 7FDD zu DD7F. Ihr müsst also DD 7F in den Hexeditor schreiben.

Dann macht ihr das so weiter, ihr geht immer eins weiter nach rechts. Nicht vergessen, die ersten zwei Ziffern müssen hinter den letzten zwei (anstelle von XXYY müsst ihr YYXX schreiben)! Hier ein Bild von der ersten Reihe der Palette:

Das kann bis zu einer Stunde daueren die ganze Palette von beiden zu importieren, seid also sehr, SEHR gedulig!
Nur kurz nochmal zum Merken, welche Farbe von einer Palette wo hin müssen (das ganze geht theoretisch bis Palette F!):

So sieht dann beim Beispiel die komplette Palette aus, Palette E und F werden bei mir nicht benötigt und werden deshalb ausgelassen, ich markiere das Ende mit Text [ist auch später Praktisch]):

Schließt noch nicht den Hexeditor! Scrollt erstmal ganz nach unten (Offset 2FF0). Falls da nicht genug Bytes für 2FFF Bytes da sind, dann müsst ihr sie wieder hinzufügen. Geht einfach an das Ende und schreibt 00 bis die Zeile voll ist.

(Das markierte ist das letzte Byte bei Offset 2FFF.) Wenn es zu viele sind, markiert den letzten und drückt auf Backspace (die Taste über Enter). Jetzt speichert ihr kurz die Datei zur Sicherheit ab.
Jetzt fügen wir die dunkle Palette ein, direkt nach der anderen Palette. Bei mir im Beispiel wäre das Offset 00000200. Geht bei Lunar Magic auf das dunkle Level und öffnet den Palette Editor, falls ihr ihn wieder geschlossen habt. Jetzt müsst ihr das gleiche wie vorhin machen, diesmal geht es aber schneller, da ihr weniger denken müsst. Trotzdem müsst ihr die vorhergenannten Regeln einhalten, also XXYY muss im Hexeditor YY XX geschrieben werden.
Hier das Ergebnis vom Beispiel (dunkle Palette):

Speichern! Leider ist die Tipparbeit noch nicht ganz beendet, aber jetzt wirds weniger kompliziert. Achja, ich bin noch so nett und gib das Ergebnis/die Lösung zum Download frei. [Download - Ergebnis ExGFX60.bin]

2.3 Schritt Drei - Animation, wohoo!

Speichert nochmal beim Hexeditor ab, dannach könnt ihr den Hexeditor schließen. Geht wieder in Lunar Magic und öffnet das erste Level.
Jetzt geht ihr auf Level ExAnimation (sieht immer noch so aus: ) und geht auf Slot 1E. Dort wählt ihr bei "Type" "Type: Palette + Working, Stop on Fade" aus. Bei "Trigger" wählt ihr "Trigger: ON/OFF" aus. Schreibt nun in das Kästchen oben rechts bei "Colors" 80 rein. Dann drückt ihr auf OK. Oh nein, es hat die Palette kaputt gemacht! Das soll uns erstmal nicht stören. Jetzt fügen wir ExGFX60 in die ROM ein, klickt einfach auf den gelben Pilz. Klickt wieder auf den Level ExAnimationsknopf und geht auf Slot 1E. Ihr seht jetzt, dass die Kästchen unten anstelle von 0 jetzt 10000 stehen haben. Bevor ihr irgendwas reinschreibt, macht ihr erstmal ein Häckchen bei "Use alternate ExGFX file for source" rein. Nun Schreibt in das erste Kästchen neben dem "Frame 00-07" 10000 rein und in das rechts daneben 10200 ein. Dies sind die Offsets vom Hexeditor plus 10000! Hier das Ergebnis:

Moment mal, wir sind noch nicht ganz fertig, die Sprites sind noch nicht andersfarbig! Also gehen wir wieder auf den Level ExAnimationsknopf. Jetzt wählen wir Slot 1D aus, machen den "Type" zu "Type: Palette + Working, Stop on Fade" und den "Trigger" zu "Trigger: ON/OFF". Wir machen das Häckchen bei "Use alternate ExGFX file for source" rein, schreiben bei "Colors" 60 rein und bei "Destination" 80. Klickt nun einmal auf OK. Jetzt haben die Sprites dieselben Farben wie der Vorder- und Hintergrund, d.h. wir müssen noch die Offsets angeben. Geht nun wieder zum Level ExAnimationsfenster, Slot 1D und geben in das erste Kästchen neben "Frames 00-07" 10100 und daneben rechts 10300 ein. Das sieht dann so aus:

Jetzt drückt ihr auf OK und speichert das Level ab und testet es! Wer zu faul ist, kann sich auch die Animation angucken:
Animation
Wir sind fertig, WOHOO! Für diejenigen, die zu faul sind: [Download - .mwl Level]

3. Schlusswort

Vielen dank für das Lesen meines Tutorials. Ich hoffe, es ist verständlich. Falls doch Fragen aufkommen: Schreibt mir entweder eine PM über SMWCentral oder über YouTube. Achja, bevor ich es noch vergesse: es gibt eine leichtere Methode, die ganze Palette zu kopieren. Mehr dazu im Nachtrag.

3.1 Nachtrag #1 - Schnellere Methode die gesammte Palette zu kopieren

Ok, ihr müsst erstmal bis inklusive Punkt 2.1 alles machen.
Geht nun auf File -> Palette -> "Export Level Palette to File..." und wählt unten in der Dropdownbox "Tile Layer Pro SNES Palette Files (*.tpl)" aus. Dann gibt ihr der Datei einen Namen (z.B. hell.tpl). Macht dasselbe beim Level mit der dunklen Pallete (nennt aber die dunkle Palette anders wie die helle!).
Öffnet die helle Pallete in einem Hexeditor, ihr bekommt folgendes Fenster mit folgendem Inhalt:

Löscht die ersten vier Bytes, sodass Offset 1FF das Maximum ist. Diese vier Bytes sind Kopfdaten, damit es ein Program (hier: Tile Layer Pro) als Palette erkennt. Nun kopiert alles und fügt es in ExGFX60 bei Offset 00000000 ein. Nun öffnet ihr die andere Palette in den Hexeditor, entfernt die ersten vier Bytes und Kopiert das ganze nach ExGFX60 und fügt es auf Offset 00000200 ein. Dannach fahrt mit Schritt 2.3 fort.
Dieses Tutorial wurde von W4mp3 erstellt.
Dieses Dokument darf weitergegeben werden, Änderungen sind nicht vorgesehen,
Verbesserungsvorschläge an W4mp3/ShUriK KiD schicken.