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.

SPRITE EDITOR FEATURES
01Authentisches 24x21-Pixelraster
0216 offizielle C64-Farben
03Radiergummi, Löschen und Undo/Redo
04Strg+Z zum Rückgängigmachen, Strg+Y zum Wiederherstellen
05Touch-Unterstützung für mobile Geräte
06Export als PNG oder C64 BASIC DATA

Bei Amazon kaufen

Commodore-Hardware, Spiele, Bücher und Zubehör finden. Das vollständige Sortiment auf Amazon.

Auf Amazon stöbern

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.

So funktionierte der VIC-II-Chip

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.

C64-Hardware-Geschichte

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.

C64-Speicherkarte und BASIC

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.

Den SID-Chip erkunden

**** 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