Nearly True-Color - 4 Millionen Farben auf dem Falcon

center

Jedem, der sich schon einmal mit True-Color-Grafik auf dem Falcon beschäftigt hat, wird zweifellos aufgefallen sein, daß der Falcon-True-Color-Modus nicht gleich dem Standard-True-Color entspricht. Daß der Falcon jedoch mit einfachen Software-Tricks mit ca. 4 Millionen Farben dem 16.7-Millionen-Farb-True-Color wesentlich näher kommen kann, wissen jedoch nur die wenigsten.

Sicherlich läßt sich der Falcon auch über eine Grafikkarte zu dieser Leistung bewegen, jedoch im Heimbereich amortisiert sich die Anschaffung einer solchen Grafikkarte meist nicht. Hier möchte ich einmal darlegen, wie man jeden Falcon mit angeschlossenem RGB-Monitor zu einer zusätzlichen 384x240er Auflösung bei 4 Millionen Farben überreden kann. Achtung! Das Programm darf auf keinen Fall mit einem VGA-Monitor benutzt werden.

Die Theorie

Zunächst einmal zu den Grundlagen, die diese Auflösung überhaupt möglich machen: Da es im Falcon leider kein undokumentiertes Register gibt, das diesen (ebenfalls nicht existierenden) Modus einschalten könnte, ist zu überlegen, wie man die fehlenden 4.128.768 Farben des FalconTrue-Color(TC)-Modus sozusagen "emulieren" kann. Es gibt mehrere Wege, nicht darstellbare Farbwerte trotzdem darzustellen, und zwei davon sind hier besonders wichtig: zum einen das Farb-Dithering; eine Möglichkeit, dem menschlichen Auge sogenannte Zwischenfarben vorzugaukeln, die sich aus den jeweils benachbarten Farben ergeben. Ein kleines Beispiel: stellen Sie sich einmal den RGB-Farbwert 31-0-0 vor. Dies ergibt im Falcon TC ein sattes Rot. Der Farbwert 30-0-0 z.B. ergibt jedoch ein kaum merklich dunkleres Rot. Benutzt man nun die Falcon-RGB 640*240er True-Color-Auflösung und setzt zwei Pixel mit diesen beiden Farbwerten direkt nebeneinander, ergibt sich für das Auge überraschenderweise genau der Zwischenwert dieser beiden Farben - entsprechend einem simulierten Farbwert von 30,5-0-0. Dies kommt - vereinfacht gesagt - durch die grobe Lochmaske eines RGB-Monitors und die "ungenaue" Farbunterscheidung des Auges zustande. Zwar halbiert diese Technik die Bildschirmauflösung in der X-Richtung (es werden ja immer zwei Pixel zur Annäherung des Originalfarbwertes eines Pixels benötigt), aber dies ist sicherlich zu verschmerzen. Die zweite Möglichkeit, Farbzwischenwerte zu erhalten, besteht im sog. Farb-Interlacing. Diese Technik macht sich die Trägheit des Auges und die Nachleuchtzeit des Monitors zunutze, indem sie z.B. die beiden vorhergenannten Farbwerte für einen Punkt immer abwechselnd anzeigt, und das mit 50 bzw. 60 Hertz. Diese "Farbumschaltung" des Punktes auf der halben Bildwiederholfrequenz des Monitors ergibt für das Auge ebenfalls einen Zwischenwert von 30,5-0-0. Diese beiden Theorien können Sie ruhig einmal für andere Farbwerte durchspielen, und Sie werden sehen, daß dies für benachbarte Farbwerte immer Gültigkeit hat.

Karten mischen

Ihnen wird aufgefallen sein, daß durch die beiden oben beschriebenen Techniken jeweils der Rot-, Grün- und Blauwert nur um ein Bit erweitert wird, was bei (2(5+1))* (2(6+1))*(2(5+1)) jedoch nur 524.288 Farbabstufungen ergibt. Doch wie kommen denn nun die 4 Millionen Farben zustande? Nun, ganz einfach: Wir mischen diese beiden Techniken einfach. Wir wissen, daß wir durch Farb-Interlacing 524.288 Farbwerte darstellen können. Nun, das heißt also auch, daß wir das Farb-Dithering auch mit 524.288 Farben verwenden können - da wir ja bei gleichzeitiger Benutzung des Farb-Interlacings auch auf die Zwischenfarben zugreifen können. Zusammengefaßt kommt also folgende Programmierarbeit auf uns zu: es ist einmal eine FarbInterlacing-Routine zu erstellen, die uns mit einem 6- Bit-Rot-, 7-Bit-Grün- und 6Bit-Blau-True-Color versorgt, und dieses erweiterte True-Color schließlich zum Farb-Dithering zu nutzen. Und schon haben wir ein hübsches 7-Bit-Rot-, 8-Bit-Grün-, 7-Bit-Blau-True-Color, das dem handelsüblichen 8-Bit-Rot, 8-Bit-Grün, 8Bit-Blau schon gefährlich nahekommt.

Das Listing

Zum Verständnis der Theorie folgt noch ein kurzes Listing, das einen Farbverlauf in einer 416*288-Nearly True- Color-Auflösung anzeigt. Um den Unterschied zu der "nur-Dithering-Methode" zu sehen, halten Sie einfach ESC gedrückt - das Farb-Interlacing wird solange angehalten. Das Programm zeigt natürlich nur die Grundlagen einer Nearly True-Color-Implementierung. Für Demos oder Spiele könnte man das Listing schon direkt verwenden. Was noch fehlt, ist natürlich eine VDI-Einbindung. Das wäre aber theoretisch möglich.

Zum Schluß noch einmal die übliche Warnung: Versuchen Sie auf keinen Fall, dieses Programm auf einem VGA- Monitor zu starten, da es zu schweren Schäden an Ihrem Monitor kommen kann. Benutzen Sie auf jeden Fall einen RGB-Monitor (oder Femseher). Viel Spaß mit dieser neuen Auflösung.


Mark Fechtner
Aus: ST-Computer 02 / 1995, Seite 68

Links

Copyright-Bestimmungen: siehe Über diese Seite