SML2-Mapheader

aus RHWiki, der freien Romhacking-Enzyklopädie

Inhaltsverzeichnis

Offset

Mapnummer1 = [A269h]

Mapnummer1 * 2 + 55CBh = Offset des Pointers zum Mapheader

Die Mapheader befinden sich alle in Mapbank 01. Der gesamte Mapheader wird nach A800h (im RAM) kopiert.

Struktur

A800h = Y-Startposition (niedriges Byte)
A801h = Y-Startposition (höheres Byte)
A802h = X-Startposition (niedriges Byte)
A803h = X-Startposition (höheres Byte)
A804h = Startbildmittelpunkt Y-Achse (niedriges Byte)
A805h = Startbildmittelpunkt Y-Achse (höheres Byte)
A806h = Startbildmittelpunkt X-Achse (niedriges Byte)
A807h = Startbildmittelpunkt X-Achse (höheres Byte)
A808h =
A809h =
A80Ah =
A80Bh = unteres Byte des Blockpointers
A80Ch = oberes Byte des Blockpointers
A80Dh = Mapbank
A80Eh = Musik
A80Fh = Hintergrundpalette
A810h = Vordergrundpalette 0
A811h = Vordergrundpalette 1
A812h = Mapnummer2
A813h = Zeit

Bedeutung der einzelnen Elemente

Y-Startposition und X-Startposition

Y-Startposition und X-Startposition geben Mario's Startposition in Pixeln relativ zur linken, oberen Ecke des Levels an.

Startbildmittelpunkt Y-Achse und Startbildmittelpunkt X-Achse

Startbildmittelpunkt Y-Achse und Startbildmittelpunkt X-Achse geben den Mittelpunkt des Sichtfenstern in Pixeln relativ zur linken, oberen Ecke des Levels an. Um den linken Rand zu errechnen, muss man von der Startbildmittelpunkt X-Achse 50h subtrahieren. Um den oberen Rand zu errechnen, muss man von der Startbildmittelpunkt Y-Achse 48h subtrahieren.

Blockpointer

Der Blockpointer zeigt auf die Blockdaten des Levels. Alle Blockdaten befinden sich in Bank 08.

Mapbank

Mapbank gibt die Bank an, in der die eigentliche Map und noch ein paar andere Daten liegen.

Musik

Das Musik-Byte gibt an, welche Musik im Level gespielt wird.

Hintergrundpalette

Dieses Byte gbit die Palette für alle Hintergrundgrafiken an. Diese ist normalerweise E4.

Vordergrundpaletten

Die Vordergrundpaletten geben die Palette für die Sprites an.

Mapnummer2

Mapnummer2 gibt die Mapnummer innerhalb der Mapbank an. Dies ist notwendig, da in einer Mapbank mehr als eine Map liegen kann.

Zeit

Die Zeit gibt die Zeit für das Level in Sekunden dividiert durch 100 an. Dieses Byte kann Werte zwischen 1 und 9 annehmen.

Byte / 0x64 = Zeit in Sekunden


'Persönliche Werkzeuge