🎨Sprite-Editor

Malen Sie ein Sprite so, wie es der CPC speichert: Tinten 0–15 (Modus 0), 0–3 (Modus 1) oder 0–1 (Modus 2), jeder Tinte ist eine der 27 Hardware-Farben zugeordnet (INK n,farbe). Tinte 0 gilt beim Export der Maske als durchsichtig.

Rechtsklick = Tinte 0 (radieren)
Maus über das Raster: Byte und Tinte werden angezeigt · pinke Linien = Bytegrenzen
Tinten (INK) – Klick wählt die Malfarbe
27 Hardware-Farben – Klick weist sie Tinte 1 zu
INK 0,1 : INK 1,8 : INK 2,26 : INK 3,0 : INK 4,16 : INK 5,24 : INK 6,6 : INK 7,18 : INK 8,20 : INK 9,4 : INK 10,13 : INK 11,3 : INK 12,15 : INK 13,11 : INK 14,2 : INK 15,7
Vorschau – Originalgröße und vergrößert
1:1 (bei 640 Punkten Breite)
×3
Tinte 0 durchsichtig

Seitenverhältnis wie am Monitor: 640 Punkte je Zeile, jede Rasterzeile doppelt so hoch wie ein Punkt breit. Ein Modus-0-Pixel ist deshalb doppelt so breit wie hoch, ein Modus-2-Pixel halb so breit wie hoch.

; Modus 0, 8 × 16 Pixel = 4 Bytes × 16 Zeilen (64 Bytes)
pixelgeist:
        db &00,&C0,&C0,&00 ; Zeile 0
        db &40,&C0,&C0,&80 ; Zeile 1
        db &C0,&C0,&C0,&C0 ; Zeile 2
        db &C0,&C0,&C0,&C0 ; Zeile 3
        db &84,&48,&84,&48 ; Zeile 4
        db &84,&C8,&84,&C8 ; Zeile 5
        db &84,&C8,&84,&C8 ; Zeile 6
        db &84,&48,&84,&48 ; Zeile 7
        db &C0,&C0,&C0,&C0 ; Zeile 8
        db &C0,&C0,&C0,&C0 ; Zeile 9
        db &90,&C0,&C0,&60 ; Zeile 10
        db &C0,&C0,&C0,&C0 ; Zeile 11
        db &C0,&C1,&C2,&C0 ; Zeile 12
        db &C0,&C0,&C0,&C0 ; Zeile 13
        db &C0,&C0,&C0,&C0 ; Zeile 14
        db &80,&40,&80,&40 ; Zeile 15

Das Sprite wird automatisch nur in Ihrem Browser gespeichert (localStorage) und nirgendwohin übertragen. Der BASIC-Lader POKEt die Bytes ab &9000 und kopiert sie Zeile für Zeile mit der Adressformel auf den Bildschirm – langsam, aber lehrreich.

💡 Warum Breite in Bytes?
Zeichenroutinen arbeiten mit ganzen Bytes. Ein Sprite von 4 Bytes ist in Modus 0 nur 8 Pixel breit, in Modus 2 aber 32 Pixel. Wer ein Sprite pixelgenau bewegen will, braucht zusätzlich verschobene Fassungen – siehe Routine (e).
✅ Maske automatisch
Die Maske hat an jeder Stelle, an der das Sprite Tinte 0 hat, alle Bits dieses Pixels gesetzt. Beim Zeichnen gilt:Bildschirm = (Bildschirm AND Maske) OR Sprite.