mod.SetColorbase

v1.00 14.03.18


SetColorbase
Das Modul "SetColorbase".

Wenn man im Netz nach C64-Bildern sucht, trifft man - bei denen, die einen beeindrucken - meistens auf Bilder, die in den Farben der sogenannten Pepto-Palette abgespeichert wurden. Diese Farbpalette ist aus viel Forschung und Berechnung entstanden und beansprucht für sich, die C64-Farben auf ideale Weise darzustellen. Bilder mit Pepto-Farben sehen immer etwas dunkel und gedeckt aus, ein Eindruck, der dem landläufigen C64-User so ganz und gar unbekannt vorkommen dürfte, denn was er an seinem eigenen Monitor sieht, stellt sich meistens viel farbkräftiger dar.

Wie dem auch sei, es gibt sehr viele solcher Bilder im Netz zu finden. Man kann sich auf einem PC auch sehr an ihnen erfreuen. Auf einem C64 bekommt man die Bilder üblicherweise nicht ordentlich angezeigt (wenn man nicht das Bild im Originalformat vorliegen hat).

Wie gut, dass es da GoDot gibt, das auch Pepto-Bilder so einlesen kann, dass kein Pixel des Originals verloren geht. Und dann im zweiten Schritt sogar in der Lage ist, diese Bilder mit einer ganz anderen Farbpalette wieder abzuspeichern, die einen vielleicht noch mehr beeindruckt, weil sie die Farbigkeit des C64 ebenfalls übermittelt!

Pepto-Farben
Dieses Bild (Autor: wer?) in den Pepto-Farben: eher gedeckt.
Umgewandelt in Deekay-Farben
Das gleiche Bild in den Farben des unvergleichlichen Deekay: herrlich, wirklich beeindruckend!.

Was braucht man dazu? SetColorbase, dazu die Riege der Lader für Fremdformate und den Saver GIF. Anwendung? Vor dem Laden der Bilder stellt man einfach mit SetColorbase die gewünschte Farbpalette ein (die man in dem Bild vermutet) und lädt das Bild. Optionen? Die Auswahl der Farbpaletten (GoDot, Pepto, Deekay, VICE, Colodore und CoCo, mehr dazu siehe auch beim Saver GIF).

SetColorbase findet beim Starten heraus, welche Farbeinstellung im Moment gültig ist und zeigt diese dann an (in den meisten Fällen sicher "GoDot"). Wenn man jetzt mit Leave das Modul verlässt, passiert in den entsprechenden Ladern gar nichts weiter und sie verhalten sich wie eh und je (die geladenen Pepto-Bilder sehen dann eher "bescheiden" aus). Aber sonst...


Wenn man Bilder mit einer ganz anderen, 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 dem 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 Werte vorangepasst werden: Das obere Nibble wird ins untere geshiftet (der Wert somit durch 16 geteilt) und nach dem Inhalt des alten unteren Nibbles gerundet (ab $08 wird 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.


Weitere Beispiele:

Pepto-Farben
Das Bild, mit dem Deekay den Wandel
in der C64-Grafik-Codierung einleitete.
Mit der Pepto-Palette...
Umgewandelt in Deekay-Farben
...und mit seiner eigenen.

zurück - zum Standardmodifier-Menü

Arndt Dettke
support@godot64.de