C64 Sprite-Editor
Sprites auf dem echten 24x21-Pixelraster des C64 mit der originalen Farbpalette entwerfen
C64 Sprite-Editor: Sprites so zeichnen, wie die Hardware es tat
Der Commodore 64 nutzte Hardware-Sprites: kleine Pixelbilder, die sich unabhängig über den Bildschirm bewegten. Dieser Editor lässt dich sie auf dem echten 24x21-Pixelraster mit der originalen C64-Farbpalette zeichnen.
Jeder C64-Sprite war genau 24 Pixel breit und 21 Pixel hoch. Das war keine gestalterische Entscheidung, sondern eine Hardware-Vorgabe des VIC-II-Grafikchips. Jeder Sprite wurde als 63 Byte gespeichert: drei Byte pro Zeile, ein Bit pro Pixel. Ein Pixel war entweder an oder aus, und wenn er an war, erhielt er die dem Sprite zugewiesene Farbe.
Der Multicolour-Modus erlaubte zwei zusätzliche Farben pro Sprite, allerdings auf Kosten der halbierten horizontalen Auflösung. Die markantesten C64-Sprites aber, jene aus Spielen wie The Last Ninja, Green Beret und Paradroid, waren einfarbig. Klar, präzise und unverkennbar C64.
Bei Amazon kaufen
Commodore-Hardware, Spiele, Bücher und Zubehör finden. Das vollständige Sortiment auf Amazon.
Sprites in C64-Spielen
Spielfiguren, Gegner, Schüsse und Bildschirmobjekte wurden alle als Hardware-Sprites verwaltet. Der VIC-II-Chip konnte bis zu acht Sprites gleichzeitig anzeigen, jeden unabhängig positioniert, mit einem einzigen Schreibvorgang in seine X- und Y-Positionsregister.
Da Sprites vollständig in Hardware verwaltet wurden, kostete das Bewegen eines Sprites kaum CPU-Zeit. Der Prozessor schrieb einfach neue Koordinaten in die VIC-II-Register, der Chip erledigte den Rest. Deshalb konnten C64-Spiele schnelle Objekte auf dem Bildschirm bewegen, ohne das Spiel zu verlangsamen.
Das 63-Byte-Format
Jeder Sprite wurde als 63 Byte im Speicher abgelegt, beginnend an einem Zeiger im VIC-II-Register $07F8 plus der Sprite-Nummer. Die Bytes waren Zeile für Zeile angeordnet: drei Byte für Zeile 0, drei Byte für Zeile 1 und so weiter bis Zeile 20.
Um ein Pixel zu zeichnen, setzte man das entsprechende Bit im richtigen Byte auf 1. Ein Sprite mit einem ausgefüllten Block in der oberen linken Ecke hätte sein erstes Byte auf $FF gesetzt (alle acht Pixel ein). Das ist dasselbe Format, das der DATA-Export-Knopf in diesem Editor erzeugt.
Programmierer entwarfen Sprites damals üblicherweise zunächst auf Millimeterpapier, berechneten die Byte-Werte von Hand und tippten sie dann als DATA-Anweisungen in den BASIC-Editor. Der POKE-Loop las diese Werte anschließend ein und schrieb sie in den Sprite-Datenbereich im Speicher.
Zeichne deinen eigenen C64-Sprite
Wähle eine Farbe aus der Palette, klicke oder tippe auf das Raster, um Pixel zu malen, und nutze die Export-Schaltflächen, um deine Arbeit zu speichern. Der DATA-Export kopiert BASIC-Zeilen, die du direkt in einen echten C64 oder Emulator eintippen kannst.
Was der DATA-Export erzeugt
Jede Sprite-Zeile ist drei Byte breit, weil 24 Pixel geteilt durch 8 Bit pro Byte genau 3 Byte ergibt. Der Export liest jede Pixelzeile, wandelt sie in Binärwerte um (1 für ein gemaltes Pixel, 0 für leer), teilt in drei 8-Bit-Gruppen auf und wandelt jede in eine Dezimalzahl um.
Die Ausgabe besteht aus 21 BASIC-Zeilen, eine pro Sprite-Zeile. Jede Zeile sieht in etwa so aus: '10 DATA 0,0,0'. Ein Sprite ohne gemalte Pixel ergibt lauter Nullen. Ein vollständig gefüllter Sprite ergibt lauter 255er.
Die DATA-Zeilen auf einem echten C64 verwenden
Sobald du die DATA-Zeilen hast, öffne deinen C64, einen Emulator oder VICE und tippe sie ein. Füge dann einen kleinen BASIC-Loader hinzu: eine FOR-Schleife, die jeden Byte-Wert einliest und ab Adresse 832 in den Sprite-Datenbereich schreibt (für Sprite 0).
Setze den Sprite-Zeiger, aktiviere den Sprite und lege Farbe sowie Position in den VIC-II-Registern fest, und dein Sprite erscheint auf dem Bildschirm. Die Werte, die dieser Editor exportiert, entsprechen genau dem, was die Hardware erwartet.
Das 64. Byte jedes Sprites (Byte 63) ist ein Füllbyte und immer 0. Der Editor gibt es nicht aus, was dem Verhalten der meisten C64-Sprite-Editoren entspricht.
**** FREQUENTLY ASKED QUESTIONS ****
READY.
C64-Hardware erkunden
Der Sprite-Editor verwendet dasselbe Pixelformat wie echte C64-Hardware. Erfahre mehr darüber, was der VIC-II-Chip leisten konnte, wie Programmierer Sprites in Spielen einsetzten und was die Grafikfähigkeiten des C64 für 1982 so besonders machte.
C64-Fähigkeiten ▶

