Atari ST und Co: Das virtuelle Sprite

Der Atari ST bringt wie viele klassische Computer keine Sprites mit. Diese müssen mühsam simuliert werden. Dabei wird aus dem einfachen Reinladen der Daten in die Hardwaresprites dann ein:
1. Aufbereiten (Maske erstellen)
2. Background sichern
3. Die Maske mit AND auf das Videomemory anwenden und ein Loch herstellen
4. Mit OR das nun leere Memory füllen
5. Warten auf den Raster (= Wechseln des Bildes)
(6. Sprite wieder mit gesichertem Background überschreiben)
GOTO 1

All das passiert im Film (Unten werden noch Zeilen direkt kopiert) oben und sieht in der Erstellung so aus:

AND (Maske anwenden) – Loch erstellen

OR (Hineinkopieren des Sprites) – Loch füllen

Und da steht das B, es wurde eingefügt. Im Video ist es noch ein bisschen komplizierter, da hier noch der Schatten zuerst hineingerechnet wird. Wobei das dann nichts mehr technisch Zusätzliches is, es ist nur per AND die Maske angewendt. Also eine angewandete Maske und dann darüber das Loch und darin das B.


Code mässig wird hier tatsächlich nur AND und Or benützt. Der Code dazu vom Project cryAtariEngine

Zuerst wird quasi das Loch (Schatten) erstellt (and.w). Weil das Bild 16 Farben hat sind das jeweils 2 Bytes (2b = 1w) für 16 Pixel * 4 Ebenen (a1)-6(a1). Dann werden die 4 * 2Bytes geladen in die CPU, das sind dann 16 Pixel in 4 Ebenen (Bitplanes) mit dem Loch und dann per OR (oder) die 4 Ebenen eingefügt ins Schwarz. Danach wird das ganze wieder zurückkopiert ins Videoram.

Und genau hier würde man damit anfangen eine Demo oder ein Game zu machen.

Auf einem C64 ist dies alles ausgelagert, da gibt es Hardwaresprites. Auf dem Amiga gibt es die auch, aber oft macht das der Blitter. Diese arbeitet genauso wie die Routine oben, einfach dass das Ganze in einem Spezialchip (Blitter) läuft und dann nur aus Parametern an diesen Chip besteht.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert