v1.04 31.03.22

SetColorbase definiert die RGB-Werte der C64-Farben, die beim Speichern oder Laden von Bildformaten, die mit solchen Werten umgehen können, verwendet werden sollen. Das ist die Riege der Lader für Fremdformate und Saver GIF, Saver IFF, Saver PCX oder Saver PNG.
Wie wendet man das Modul an? Vor dem Laden von Bildern dieser Formate stellt man einfach mit SetColorbase die gewünschte Farbpalette ein (die man in dem Bild vermutet) und lädt das Bild. Welche Optionen hat man? Die Auswahl der Farbpaletten (GoDot, Pepto, Deekay, PAL@v1, Colodore, CoCo und Ptoing, Genaueres siehe bei den Savern GIF und PNG).
SetColorbase findet beim Starten selbst heraus, welche RGB-Farbeinstellung zuletzt aktiviert war, macht diese im Übrigen dem System bekannt und zeigt deren Namen dann an, in den meisten Fällen wahrscheinlich "GoDot". Wenn man jetzt mit Leave das Modul verlässt, passiert in den genannten Ladern gar nichts weiter und sie verhalten sich als wäre nichts geschehen (die GoDot-Darstellung eines Bildes, das mit der Pepto-Palette abgespeichert war, sieht dann aber eher "bescheiden" aus).
Hinweis: Das bestbestückte Archiv von schönen und beeindruckenden C64-Bildern findet sich im Netz unter c64gfx.com, lauter Bilder, die in Compos für Aufsehen gesorgt haben, Bilder, die einerseits in den ungewöhnlichsten C64-Grafikmodi angezeigt werden, aber auch umwerfende Multicolor- und Hiresbilder. Die Vorschaubilder sind im Format 384×272 Pixel (VICE-Screenshot). Alternativ dazu kann man auch die britische Retro Gallery aufsuchen. Screenshots davon haben von SetColorbase unterstützte Paletten und können deshalb gut als GIF abgespeichert und in GoDot mit dem entsprechenden Lader importiert werden (zusammen mit dem Helfermodul DecodeGIFhir, damit alle Pixel eins zu eins im C64 ankommen). Ist das Ergebnis schlechter als erwartet: SetColorbase auf eine der anderen Paletten umstellen und nochmals laden.
Beispiel:

Der folgende Abschnitt dient der Hintergrundinformation. Inzwischen kann man die beschriebene Anpassung sehr viel einfacher mit MapColorbase durchführen.
Wenn man Bilder mit einer ganz unbekannten, hier nicht vertretenen Palette mit GoDot konvertieren möchte, kann man sozusagen "unter der Motorhaube" (z.B. mit dem SMON) tätig werden: Die RGB-Werte für GoDots Konvertierungsroutinen liegen im Speicher ab der Adresse $0380 (bis $03af), und zwar je 16 Bytes für einen RGB-Farbauszug, zusammen 48 Bytes. Die Reihenfolge der Farbwerte in jedem Farbauszug ist GoDots Renderalgorithmus angepasst, sie entspricht dem folgenden Schema (die Zahlen sind die Farbnummern des C64-Betriebssystems):
| lgr (15) | mgr (12) | dgr (11) | blk (0) | wht (1) | bwn (9) | lrd (10) | ora (8) | pur (4) | cya (3) | red (2) | lbl (14) | blu (6) | grn (5) | lgn (13) | yel (7) |
Außerdem müssen die einzelnen RGB-Werte vorangepasst werden: Der Algorithmus erwartet die RGB-Werte im unteren Nibble, weshalb das obere Nibble hier ins untere geshiftet (der Wert somit durch 16 geteilt) und nach dem Inhalt des alten unteren Nibbles gerundet werden muss (ab $08 im alten unteren Nibble wird das Ergebnis aufgerundet). Ein ursprünglicher Wert von z.B. $ad wird daher in den Wert $0b umgewandelt und dann erst eingetragen, ein Originalwert von $62 lautet dann entsprechend $06. Algorithmus: Neuwert = (Originalwert+8)/16.
Weitere Beispiele:



zurück - zum Standardmodifier-Menü
Arndt Dettke