Sprite Memory

geschrieben am 01.10.2016 21:05:47
zuletzt bearbeitet von W4mp3 am 22.10.2016 19:00:22.
( Link )
Sprite Memory Einstellungen
aka. wie fixe ich fehlende Stücke im Sprite?



Vorwort
Wer kennt es nicht, man platziert ein paar schöne Sprites, testet das Level und plötzlich fehlt bei einem Sprite oder Mario etwas. Das hier ist soll euch helfen das zu fixen, falls das mal auftaucht. Als Grundkentnisse setze ich quasi nichts voraus, wichtig ist aber zu wissen, wie man Sprites platziert. Auch wichtig ist Hexzahlen zu verstehen oder wenigstens lesen zu können, weil quasi alle Zahlen hier in Hex sind.

Was ist Sprite Memory?
Der Sprite Memory entscheidet, wie viele Spritetiles gezeichnet werden dürfen und wieviel Platz er für spezielle Sprites reservieren soll. Bei SMW gibt es 19 Einstellungsmöglichkeiten. Normalerweise ist der auf 00 gesetzt, wenn keine speziellen Sprites benutzt werden. Bei Level 105 (Yoshis Island 1) gibt es aber den Banzai Bill. Dort wird der Sprite Memory auf 04 gesetzt, der Banzai Bill ist nämlich ein spezieller Sprite. Es gibt noch mehr spezielle Sprites, dazu dann im nächsten Abschnitt mehr.

Welche Einstellung muss ich jetzt nehmen?
Die Lunar Magic Hilfedatei sagt wortwörtlich, dass man einfach damit rumspielen soll. Wir machen das aber nicht, wir wollen ja schneller ans Ziel. So dröseln wir mal den Sprite Memory 04 von links nach rechts auseinander:

04:
Die Sprite Memory Nummer, mehr ist das nicht.

M:08-01=07
Wie viele Sprites aufeinmal gezeichnet werden dürfen. 08 ist die Anzahl der normalen Sprites UND der speziellen Sprites, die geladen werden können, also quasi die Gesamtzahl an Sprites, die auf dem Bildschirm sein dürfen. 01 Plätze sind reserviert für die speziellen Sprites. Somit können nur noch 07 normale Sprites benutzt werden.

SP: 60,9F
Reserviere für spezielle Sprites extra Plätze. Beide Zahlen repräsentieren jeweils einen Sprite. In dem Falle ist das der Sprite 60 (Gedrückter Swichpalace Schalter) und 9F (Banzai Bill). Falls da ein FF als Wert steht, dann heißt das soviel wie es gibt keinen reservierten Platz für einen speziellen Sprite. Weiter unten werde ich die Speziellen Sprites als "Sprite A" und "Sprite B" kennzeichnen.

M1:01-00=01
Wie viele "Sprite A" auf dem Bildschirm gleichzeitig sein dürfen. Hier wäre es ein "Gedrückter Switch Palace Switch"-Sprite. Da bei "M:" steht, dass maximal 01 Sprites spezielle Sprites sein dürfen darf auch der andere spezielle Sprite nicht geladen werden, wenn dieser hier einmal geladen wurde.

M2:01-00=01
Wie viele "Sprites B" auf dem Bildschirm gleichzeitig sein dürfen. Hier wäre das der "Banzai Bill"-Sprite. Da bei "M:" steht, dass maximal 01 Sprites spezielle Sprites sein dürfen darf auch der andere spezielle Sprite nicht geladen werden, wenn dieser hier einmal geladen wurde.

Sprite Memory 04 ist also für Levels mit Banzai Bills gedacht. Falls euch der Text oben verwirrt, nicht schlimm wichtig zu verstehen ist nur der Wert bei "M:" und bei "SP:". Ich habe sogar ein Bildchen dazu gemalt, vielleicht ist das Verständlicher als der Text oben:


Das ganze gilt dann auch analog für die anderen 18 Sprite Memory Einstellungen. Mein Tipp: Benutzt, wenn es geht immer Sprite Memory 00. Wenn da Tiles anfangen zu fehlen, dann muss ein anderer Sprite Memory benutzt werden. Um das Gesuche zu ersparen gibts eine Liste unten mit allen in SMW verwendeten Einstellungen.

Sprite Memory Einstellungen in SMW
Hier eine liste, wann welche Sprite Memory Einstellung verwendet wurde:

00: Normales Level ohne spezielle Sprites

01: Level mit Platformsprites (Sprites 55 - 63, A3, C4, E0) und den Line-Guided Chainsaw/Rope (Sprite 64 - 66); Sprite 5F (Brown platform on a chain) und Sprite 64 (Rope mechanism) sind spezielle Sprites.

04: Level mit Banzai Bill (Sprite 9F) oder Pressed Switch palace switch (Sprite 60)

07: Geisterhauslevel oder Sumo Bros. (Sprite 9A)

09: Big Boo Boss (Sprite C5)

0B: Geisterhauslevel mit Big-Boo (Sprite 28; Spezieller Sprite hier)

0A: Waldlevel mit Wiggler (Sprite 86;Spezieller Sprite)

0C: Level mit Lakitu (Sprite 1E)

0D: Geisterhauslevel mit Gas Bubble (Sprite 90)

0E: Schlosslevel oder Platformlevel oder Bosslevels (Wendy, Lemmy, Reznor) oder Waldlevels

0F: Schlosslevel mit Line-guided Grinder (Sprite 67) und Bowser Statuen (Sprite BC)

10: Bowser Boss

11: Geisterhauslevel mit Fishing Boo (Sprite AF)

12: Larry/Iggy Boss

Reihenfolge der Sprites
So merkwürdig das auch klingen mag: Es kommt darauf an in welcher Reihenfolge die Sprites geladen werden! Hier ein einfach es Beispiel zum selber Testen:

Im Spiel sieht das dann so aus:

Schiebt mal den Parakoopa ein Tile nach rechts und schaut mal was passiert:

"VERBRENNT IHN, DIESEN W4MP3, HÄCKSE!!!" Das ist keine Magie, nur etwas doofes was SMW da macht. Nehmen wir einfach mal an, dass der Sprite Memory aus drei Plätzen besteht. Wenn wir die Sprites laden, dann wird der Parakoopa in den ersten freien Platz geschrieben, die Flügel dann in den nächsten Platz, der Platz wird aber nicht als "Besetzt" markiert. Dann kommt der Platformsprite, der sieht dass der zweite Platz "frei" ist. Er schreibt sich da rein und löscht dabei die Flügel vom Parakoopa. Wenn wir jetzt aber den Platformsprite zuerst laden, dann ist der Platformsprite im ersten Platz, der Koopa im Zweiten und die Flügel im dritten Platz. Ich weiß, das klingt komisch ist aber so. Einfach mal experimentieren, wenn mal ein Sprite unsichtbar wird. Das hat bei mir jetzt schon mindestens sechs mal funktioniert.

~~~

Extremere Maßnahmen
Für die nächsten zwei Patches muss man wissen wie man einen Patch patcht.

No more Tile Limits Patch
Download
Der Patch ändert die Art und Weise, wie SMW mit Sprites umgeht, und sorgt dadurch dafür, dass in der Regel insgesamt mehr Sprites gleichzeitig auf dem Bildschirm sein können.

Extended No Sprite Tile Limits v. 3.0
Download
Der Patch macht quasi dasselbe wie oben nur für nicht normale Sprites wie Feuerbälle, der Boo-Ring und noch viele andere speziellere Sprites.

~~~

Ich habe immer noch fehlende Tiles in meinen Sprites/Mario ist immer noch unsichtbar
Hier gibt es nur noch eine Lösung: Lösche einen Sprite, anders geht es nicht.

Abschluss
So, jetzt solltet ihr wissen, wie man den Sprite Memory richtig einstellt. Falls noch fragen offen sind einfach stellen. Achja, bevor ich es vergesse, danke nochmal an RPG Hacker für das Testlesen usw.
Tutorials: ExAnimation | YouTube: W4mp3 | Twitter: https://twitter.com/SMWW4mp3
geschrieben am 08.10.2016 7:27:18
( Link )
Finde es super das hier noch jemand Tutorials macht und zwar auch noch zeitlich passende dazu. ( beim Teamhack war das ja irgendwie son Ding mit Sprite Memory und so ... )
Abgesehen davon danke das du gleich noch Patches verlinkt hast. Ich wusste selber nicht das es soetwas in der art gibt. ( also nicht die Patches sondern... ach egal :p )

Das Tutoial an sich ist außerdem gut verständlich und schön mit Bildern verziert so das es auch der letzte Vollhorst Ungelehrte verstehen kann.
Danke für die nette Auffrischung!


Zitat von W4mp3:
"VERBRENNT IHN, DIESEN W4MP3, HÄCKSE!!!"


Nicht dagegen einzuwenden.
>we live in a society