# Grixel - Retro Tools

>Dies ist eine Anwendung zum Erstellen von Bitmap-Strukturen für die Atari 8-Bit-Computerprogrammierung.
Das Programm geht davon aus, dass der Benutzer weiß, was er tut, daher werden sinnlose Einstellungen nicht validiert.
Wir können Einkanall-Strukturen oder größere erstellen. Die Breite wird immer an ein Vielfaches eines Datenbytes angepasst.
Wir können in HiRes oder LoRes mit einfacher oder doppelter Pixelhöhe in den Anzeigezeilen erstellen.
Das Programm ermöglicht die Kolorierung mithilfe des Atari-Sprite-Systems (nur Player, Missiles sind noch nicht enthalten).
Es ist möglich, die Farbe jedes Registers über einen DLI-Interrupt zu ändern. DLI unterstützt zusätzlich die Änderung der Sprite-Breite.
Das Programm unterstützt mehrere Projekte gleichzeitig.

---

##### # Projekt
>
>Ein Projekt kann über das Menü oder die Auswahlleiste erstellt/geladen werden:
![](Assets/Image/de-DE/grixel_1.png)
`Projektname` dient zur Information, damit der Benutzer nicht den Überblick verliert.
`TV-System` bestimmt, welche Farbpalette wir verwenden werden.
`Pixelmodus` bestimmt den Modus für Antic.
`Breite` für HiRes ist ein Vielfaches von 8 und für LoRes ein Vielfaches von 4.
`Höhe` ist "beliebig".

---

##### # Editor

>1. Linker Teil, Auswahl, Palette und Werkzeuge:
![](Assets/Image/de-DE/grixel_2.png)
`Auswahl` sind Indikatoren, die anzeigen, welches Register den Maustasten zugewiesen ist.
`Palette` sind die Register, mit denen wir auf dem Bild zeichnen. Ein Mausklick weist das Register dem entsprechenden `Auswahl`-Feld zu. Ein Doppelklick öffnet die Farbauswahl, die dem Register als Startfarbe (ab der obersten Bildzeile) zugewiesen wird. Die Register BG (Hintergrund), PF1, PF2 entsprechen den Grafikdaten, während PM0, PM1, PM2 und PM3 Sprites sind. PM01 ist die resultierende Farbe aus der Überlagerung von PM0 und PM1, und analog PM23 aus PM2 und PM3. Eine Sprite-Farbänderung erfolgt immer paarweise. Kleine Schaltflächen 1, 2 und 4 unter einem bestimmten Sprite geben seine Startbreite an.
`Werkzeuge` ist eine Reihe von Werkzeugen zur Unterstützung des Zeichnens:
 => Bleistift, pixelweises Zeichnen, wir können die Dicke und Form des Bleistifts erhöhen.
 => Linie, Linien zeichnen, wir beginnen mit dem Drücken der Maustaste und enden mit dem Loslassen. Wir können die Liniendicke und die Form der Enden erhöhen.
 => Füllung, wir füllen einen Bereich (nicht Farbe, sondern Register), indem wir ein Muster auswählen. Weiß auf dem Muster entspricht der linken Maustaste (LMB) und Schwarz der rechten Maustaste (RMB).
 => Form, wir zeichnen eine von drei Formen: Quadrat, Kreis oder Ellipse. Wir können drei Varianten wählen: nur Rahmen (LMB-Farbe), nur Füllung (LMB) oder Rahmen mit Füllung (LMB, RMB).
 => Text, wir können Text aus dem Inhaltsfeld einfügen, eine beliebige Systemschriftart und -größe auswählen. Die Farbe wird abhängig von der verwendeten Farbtaste ausgewählt. Durch Halten der Taste können wir die Position einstellen und durch Loslassen bestätigen.
 => Auswahl, wir können sie verschieben und kopieren. Wir bestätigen durch Klicken außerhalb des Auswahlbereichs oder durch Drücken der "Enter"-Taste.

---

##### # Farbauswahlfenster
>
> 1. Einzelfarbe.
![](Assets/Image/de-DE/grixel_3.png)
Hier wählen wir eine einzelne Farbe, die durch die Markierung in der unteren linken Ecke des Fensters angezeigt wird. Die Auswahl erfolgt mit der linken Maustaste.
> 2. Sprite-Farbe.
![](Assets/Image/de-DE/grixel_4.png)
Hier wählen wir Farben für Sprite 0, 1 oder 2,3. 0 oder 2 wählen wir mit der linken Maustaste und 1 oder 3 mit der rechten. Die MIX-Farbe wird in Echtzeit aktualisiert.

---

##### # Ebenen
>
>Das Programm unterstützt Ebenen.
![](Assets/Image/de-DE/grixel_5.png)
Wir zeichnen auf der aktiven Ebene. Wir können sie hinzufügen, entfernen, verschieben und zusammenführen.
Sie können die Referenzebene verwenden. Sie wird als Hintergrund des Bildes sichtbar sein. Sie befindet sich im unteren Teil des Ebenenpanels. Ihre Sichtbarkeit kann mit der Leertaste umgeschaltet werden.

---

##### # Bildsteuerungsleisten
>
>![](Assets/Image/de-DE/grixel_6.png)

1. DLI-Leiste zeigt Farbänderungen für das mit LMB ausgewählte Register. Um die Farbe zu ändern, klicken Sie mit der linken Maustaste an der gewünschten Stelle auf diese Leiste. Das Farbauswahlfenster wird geöffnet. Von oben kommt die erste Farbe aus den Starteinstellungen auf der linken Seite des Fensters beim Objekt "Palette".
Wenn wir den Farbbereich ändern und seinen Anfang auf eine andere Zeile verschieben möchten, platzieren Sie den Cursor in diesem Bereich auf der Leiste und verwenden Sie das Mausrad. Dies gilt ausschließlich für die Anfänge von Bereichen.
Wenn wir einen Farbänderungsbereich entfernen möchten, klicken Sie mit der mittleren Maustaste darauf.
Wenn wir die Farbe des Bereichs ändern möchten, klicken Sie mit der rechten Maustaste auf diesen Bereich.
2. Breitenleiste zeigt die Breite der gekoppelten Sprite-Register, d. h. PM0 und PM1 oder PM2 und PM3. Natürlich nur, wenn eines davon der LMB zugewiesen ist. Die Leiste ist so aufgebaut, dass sie für ein Register drei vertikale Linien hat: Die erste grüne bedeutet, dass das Sprite in dieser Bildzeile eine einfache Breite hat, die zweite gelbe bedeutet eine doppelte Breite und die dritte rote bedeutet eine vierfache Breite. Um die Breite zu ändern, klicken wir für das entsprechende Register auf diese Leiste, und die Breite ändert sich zyklisch in der Reihenfolge 1,2,4,1,2... usw. Hier ist zu beachten, dass sich die Änderung auf die gesamte restliche Höhe ab der angeklickten Zeile auswirkt.
3. Validierungsleiste. Beim Zeichnen mit Sprite-Registern müssen wir uns strikt an die Regeln halten, die die Sprite-Anzeige auf dem Atari steuern. Wenn wir sie verletzen, wird in der Zeile, in der der Fehler auf dem Bild auftritt, eine horizontale Linie in den Farben Rot und/oder Gelb gezeichnet. Diese Linie ist 4 Pixel breit, je einer für jedes Sprite-Register. Wenn ein Pixel rot ist, bedeutet dies, dass dieses Register in dieser Zeile gegen die Regeln verstoßen hat. Eine solche Linie kann ausgewählt werden, indem Sie auf diese Leiste klicken, um das Problem leichter zu finden.

---

##### # Regeln für Sprites

1. Bei einfacher Breite beträgt die Sprite-Breite 8 LoRes-Pixel. Das bedeutet, dass die äußersten Pixel für ein bestimmtes Sprite-Register in einer Bildzeile nicht weiter als 8 Pixel voneinander entfernt sein dürfen. In jeder folgenden Bildzeile ist die Regel natürlich gleich, aber die Verwendungsposition kann variieren. Entsprechender DLI-Interrupt-Code wird beim Export hinzugefügt.
2. Bei doppelter Breite ist das Sprite-Pixel 2 LoRes-Pixel breit. Beim Zeichnen müssen Sie dies berücksichtigen, da ein einzelnes Pixel immer einen Fehler erzeugt. Hier haben wir also ebenfalls 8 Sprite-Pixel, die jedoch die doppelte Breite haben, sodass Sie 16 LoRes-Pixel auf dem Bild abdecken können.
3. Bei vierfacher Breite ist das Sprite-Pixel 4 LoRes-Pixel breit und Sie können 32 LoRes-Pixel abdecken. Sie müssen nur auf die Kohärenz des Sprite-Pixels achten.
4. In HiRes ist es etwas anders, da die Datenpixel kleiner sind als das Sprite-Pixel. Das Zeichnen mit einem normalen Register ergibt ein kleines HiRes-Pixel, aber das Sprite verwendet ein Standard-LoRes-Pixel. Die restlichen Regeln bleiben unverändert.

---

##### # HiRes
>
>Im Gegensatz zu LoRes, wo wir mit allen regulären Registern zeichnen, zeichnen wir in HiRes nur mit PF1 (nur Farbton) und PF2 (Farbe und Farbton). Die Auswahl einer Farbe für beide Register setzt die Farbe in beiden Registern. Die Helligkeit müssen wir jedoch individuell auswählen.

---

##### # Export
>
>Wenn das Bild auf einen Atari-Bildschirm passt, enthält der Export den vollständigen Code zum Starten und Anzeigen des Bildes. Andernfalls werden reine Daten generiert.
