Hallo Besucher, der Thread wurde 15k mal aufgerufen und enthält 48 Antworten

letzter Beitrag von Stephan am

Das C64-Farbkonzept

  • Hallo,


    weiß jemand vielleicht, warum die Original-C64-Farbpalette sich so zusammenstellt, wie sie ist?


    Wie wir ja alle wissen, stellt sich die C64-Farbpalette ja durchgehend aus matten Farben mit geringer Leuchtkraft zusammen.


    Stand dahinter ein besonderes Konzept?


    Warum hat man dort keine Farben mit mehr Leuchtwirkung definiert?


    Interessiert mich nur mal so.



    Danke schon mal.

  • IIRC, Legend has it, dass die Entwickler damalsTM in einem TV/Radio Shop reinmarschiert sind und vom dem Verkäufer die miesesten, schlimmsten, garbage Fernseher verlangten zum Kauf, damit sie die Farben entsprechend testen konnten.


    Davon abgesehen:
    a) hat es einige Ressourcen zum Thema wenn man googlet
    b) bitte nicht schon wieder so ein Farben Heiliggral Thread...

  • Hier gibt es eine Mail von einem der Entwickler:


    http://www.pepto.de/projects/colorvic/2001/




    Zitat von Robert "Bob" Yannes

    I'm afraid that not nearly as much effort went into the color selection as you think. Since we had total control over hue, saturation and luminance, we picked colors that we liked.

  • habe mich vor x Jahren mal mit dem Artikel von Pepto auseinandergesetzt bzw. eingelesen und eigene Rechnereien angestellt.


    Zu berücksichtigen ist, dass der C64 ursprünglich aus der NTSC-"Farbwelt" stammt, wo jeder Fernseher einen Phasenregler zum Einstellen eines Phasen-Bezugswinkels und damit der Farbtöne insgesamt besitzt.


    Sprich, die Farben mögen in ihrer relativen Beziehung untereinander definiert sein, absolut sind sie es keinesfalls! Erst durch die Schaffung eines PAL-C64 erfolgte der Übergang in eine Welt "normalisierbarer Farben", die den Anschein der fixen Definition erwecken.


    Dies vorausgeschickt, lässt sich noch festhalten:
    Die Farbskala des C64 stammt vom VC20 ab. Dies merkt man vor allem beim Grauwerte-Umfang, den frühe VIC-II-Versionen noch fünfstufig statt neunstufig geboten hatten.


    Wenn man nur 16 Farben verfügbar hat - vorgegeben durch Registerbreiten im VIC und v.a. das Color-RAM 2114 - dann lässt sich die Zuordnung recht natürlich herleiten.


    Im durch Winkel definierten Raum der Farbtöne gibt es drei Grundfarben, die einem so auch als Phosphor-Töne einer Cathode ray tube-Bildröhre wiederbegegnen (und wohl ebenso als 3 spezialisierte Licht-Rezeptoren im menschlichen Auge des Betrachters!)


    Rot Grün Blau.


    Sodann Mischfarben aus je 2 dieser Grundfarben:
    Purpur (Magenta) = Rot + Blau.
    Gelb = Grün + Rot (additive Farbmischung beachten)
    Cyan = Blau + Grün.


    macht bis hierhin 6 Farben.
    Im VC 20 kamen noch weiß und schwarz als unbunte Farben dazu.
    Ergibt 8 Farbtöne, ohne Verschnitt in 3 bit darstellbar.
    Da 4 Bit verfügbar sind, hat man im VC 20 das ganze verdoppelt wie folgt:
    Das oberste Bit der Farbwerte schaltet einen "Grell" Modus ein mit erhöhter Luminanz (Y):
    daher ergeben sich hellrot, hellgrün, hellblau sowie helle Varianten der Mischfarben.


    Für weiß und schwarz wurden als Extrawurst jedoch keine Grautöne hineingemurkst, sondern um menschlichen Haut-Farbtönen (vielleicht für Spielfiguren /Sprites oder Scans) naturalistischeres Aussehen zu ermöglichen, weitere Farbtöne im Rot-Bereich (Zwischenwinkel im Farbkreis) spendiert, nämlich Braun und Orange.


    Das VC20-Orange (recht hell) und die Hellen Mischtöne gaben dem VC20 vielleicht ein quietschgelbes "billiges" Grafik-Image.


    Es fällt jedenfalls auf, dass gerade & genau an Stelle der hellen Mischtöne des VC20 beim C64 dann als Ersatz die Grautöne (dunkel, mittel, hellgrau) eingefügt wurden.


    Auch diese Entscheidung scheint mir nicht zufällig, sondern auf Überlegung basierend.
    Denn bei konstanter Chrominanz (U- und V-Wert bzw. bei NTSC: I- und Q-Komponente) sind die hellen Mischfarben mit ihrem erhöhten Y-Wert (Luminanz) zugleich zwangsläufig diejenigen, deren Farbtöne objektiv am wenigsten "Gesättigt" sind, mit anderen Worten: sie haben die geringste optische Unterscheidungskraft untereinander und ihr Fehlen würde am wenigsten bemerkt!


    Edit: Um es noch klarer zu fassen: die Amplitude des Farbdifferenzsignals (U,V) ist am C64 bei allen Farben gleich. Das schrieb schon Pepto und IMHO hat auch M. Mäkelä das ausgemessen. Die Stärke des Y-Signals wird bei den hellen Farben (Farbnummer >= 9 am VC 20) jedoch angehoben. Ausserdem "feuern" bei den Mischfarben immer 2 Farbkanonen der Bildröhre m Gegensatz zu den drei Grundfarben R,G,B (nur 1 Strahl-Farbkanone aktiv). Durch diese Effekte erscheinen die hellen Mischfarben (also Hell-Cyan, Hell-Magenta, Hell-Gelb) zusätzlich "entsättigt", also sie sind "weniger bunt" bzw. am wenigsten bunt und unter den Farben am ehesten ersetzbar.




    So lag es nahe, gerade diese Farben zu "opfern" zugunsten ein paar echter Graustufen und erst dadurch konnten schwarzweisse Grafiken mit einem rudimentären Tonwertumfang (schwarz + 4 Helligkeiten, passend zum Multicolor-Modus) dargestellt werden. Just my 2 Cents....

  • Beim Farbschema des C64 habe ich nicht den Eindruck, dass hier die Historie um den VIC20 Pate stand. Eher, dass sich sowohl beim VIC20 als auch C64 die ersten 8 Töne sich in der Zusammenstellung an Paletten mit RGB-Basis orientieren (wie zb auch der ZX Spectrum). Bzw der Rest Pi mal Daumen erweitert wurde, was nach Meinung der Entwickler die Palette passend ergänzt. So deute ich auch das Zitat von Robert Yannes. Vor '83 gab es keine Pixelgrafiken im ästhetischen Sinne als Quellmaterial, da werden eher Diagramme oder einfache Testbilder als Referenz gedient haben.


    Mal den NTSC-C64 mit Old-VIC-Farben angeschaut. Die Farben kommen dort ein End kräftiger als bei PAL rüber und zugleich sind bestimmte Kombinationen, wie gelb-orange-dunkelrot sehr gleichmäßig verteilt. Es ist die Hardware-Konstellation, wo ein einfacher Regenbogen-Übergang am besten funktioniert (dunkelblau-dunkelgrün-gelb-orange-dunkelrot). Dann die oberen 8 Farben, die im Vergleich zu anderen zeitgenössischen Paletten nur 4 Helligkeitspärchen bilden (bei rot, blau, grün und gelb). Braun bzw Grautöne machen auf mich dagegen den Eindruck, als ob man vom CGA-Standard inspiriert wurde. Die Anordnung der Farben ist ja sonst etwas willkürlich, daher kann ich mir nicht recht vorstellen, dass man hier besonders gezielt vorgegangen ist.

  • Beim Farbschema des C64 habe ich nicht den Eindruck, dass hier die Historie um den VIC20 Pate stand. Eher, dass sich sowohl beim VIC20 als auch C64 die ersten 8 Töne sich in der Zusammenstellung an Paletten mit RGB-Basis orientieren (wie zb auch der ZX Spectrum). Bzw der Rest Pi mal Daumen erweitert wurde, was nach Meinung der Entwickler die Palette passend ergänzt. So deute ich auch das Zitat von Robert Yannes. Vor '83 gab es keine Pixelgrafiken im ästhetischen Sinne als Quellmaterial, da werden eher Diagramme oder einfache Testbilder als Referenz gedient haben.


    Mal den NTSC-C64 mit Old-VIC-Farben angeschaut. Die Farben kommen dort ein End kräftiger als bei PAL rüber und zugleich sind bestimmte Kombinationen, wie gelb-orange-dunkelrot sehr gleichmäßig verteilt. Es ist die Hardware-Konstellation, wo ein einfacher Regenbogen-Übergang am besten funktioniert (dunkelblau-dunkelgrün-gelb-orange-dunkelrot). Dann die oberen 8 Farben, die im Vergleich zu anderen zeitgenössischen Paletten nur 4 Helligkeitspärchen bilden (bei rot, blau, grün und gelb). Braun bzw Grautöne machen auf mich dagegen den Eindruck, als ob man vom CGA-Standard inspiriert wurde. Die Anordnung der Farben ist ja sonst etwas willkürlich, daher kann ich mir nicht recht vorstellen, dass man hier besonders gezielt vorgegangen ist.

    Das mag dein Eindruck sein. Er muss aber nicht stimmen ;)
    Wären die Farbtöne an der RGB-Palette orientiert, dann wäre die Abfolge genau wie bei CGA (oder eine aus Verschiebungen, Translation, Spiegelung "monoton" daraus abgeleitete Version) wo jedes Bit im Farbwert genau einer Grundfarbe entspräche. Sind sie aber gerade nicht ;-)


    Z.b. Bitwert 4= rot, bitwert 2 = grün, bitwert 1 = blau ,alle bits gesetzt = weiß = Wert 7. alle bits gelöscht wäre schwarz. bit wert 4 + bitwert 2 = 6 ergibt gelb usw. Gerade so funktioniert es bei den VC20 und C64 bekanntlich nicht! Auch ist in RGB nicht ohne Verrenkungen ein orange oder braun machbar. Edit: Auch der Spectrum ZX u.a. kochen nur mit Wasser - wenn ein 8bit-Rechner nur 3 bis 4 bit für Farbe verwenden kann, landen alle fast zwangsläufig bei ähnlichen Paletten.



    Das Zitat von Bob Yannes behauptet nur sie hätten durch die zugrundeliegende Schaltung eine "volle Kontrolle über Sättigung und Helligkeit" gehabt. Das ist etwas wolkig und die "volle Kontrolle" erschöpft sich grundsätzlich pi mal Daumen in drei Bit für die Farben und 1 bit für die Luminanz. Da von "voller Kontrolle" zu sprechen ist etwas vollmundig , es ist wohl Marketing dabei ;)


    Beim C16 / plus 4 / C116 wo man die Luminanz und die Chrominanz separat einstellen kann und 7 bit insgesamt verfügbar sind hierfür, sieht es schon anders aus; da kann man schon eher von "voller Kontrolle" sprechen.


    Ich behaupte nicht dass die C64 Palette direkt d.h. ohne Modifikation von der VC20 Palette abstammt; sondern es sind einige Zusatzgatter vonnöten und im Endeffekt wurde evtl. sogar ein winziges ROM in den VIC eingebaut, um die Fallunterscheidungen unterzubringen. Wenn ich dazukomme, schreibe ich morgen was zu den Grundlagen der Farberzeugung in VC 20 und C64.


    Abschließend kann ich dir versichern, dass die Anordnung der Farben definitiv nicht willkürlich ist, sondern auf einem streng monotonen mathematischen Schema beruht das auch gattermäßig "minimal" ist. Allerdings nicht CGA oder RGBI-basiert .......

  • Spätestens ab dem C64II waren die Farben plötzlich wieder "egal".. ;). Mir gefallen auch die Farben der großen Platine (Brotkasten) besser, sind kräftiger/strahlender (allein deswegen schon, hauptsächlich).
    Kommt beim C64II das eigentl. durch Veränderungen im dem HMOS (8569er) VIC, oder wegen Unterschieden im Modulatorkasten zustande (oder beides) ?

  • die Farben mögen in ihrer relativen Beziehung untereinander definiert sein, absolut sind sie es keinesfalls!

    Auch NTSC beherrscht(e) seit den 70ern die automatische Farbwertkorrektur; außerdem hat man den Regler normalerweise nur um wenige Grad verstellt und dann so belassen. Daß amerikanische TV-Beiträge früher hierzulande einen ekligen Grünstich hatten, lag an etwas ganz anderem (NTSC-Farbvektoren waren ursprünglich um 15 Grad gegen die PAL-Vektoren verdreht, was aber nicht alle Konverter beachteten- irgendwann hat die US-Sendetechnik dann auch auf die einfacher zu schaltenden PAL-Vektoen umgestellt, die Leute haben einmalig ihre Geräte angepaßt, und der Spuk hatte ein Ende)

    Wenn man nur 16 Farben verfügbar hat - vorgegeben durch Registerbreiten im VIC und v.a. das Color-RAM 2114 - dann lässt sich die Zuordnung recht natürlich herleiten.

    Das macht auf gleiche Weise...

    dass sich sowohl beim VIC20 als auch C64 die ersten 8 Töne sich in der Zusammenstellung an Paletten mit RGB-Basis orientieren (wie zb auch der ZX Spectrum).

    ...auch der Spectrum, kommt aber zu einem völlig anderen Ergebnis. Der arbeitet nämlich immer mit 100% Farbintensität in 8 Farbtönen und 16(?)Helligkeiten. Brauchbare Landschaften wie mit C64-hellblau/-hellgrün bekommt man damit nicht hin.


    Und natürlich hat man auch anmno 1981 schon realistische Computer-Bilder gemalt. Nicht vergesen: Der VIC-SID-Chipsatz sollte ursprünglich der ultimative Arcade-Chipsatz werden! In einem Consumer-Heimcomputer ist der eigentlich nur durch Zufall gelandet.

    Auch ist in RGB nicht ohne Verrenkungen ein orange oder braun machbar.

    Doch, nennt sich bei CGA-RGB dunkelgelb, und es hängt vom Monitor ab (und von der Helligkeitseinstellung)
    welchen Farbton man bekommt.

    Beim C16 / plus 4 / C116 wo man die Luminanz und die Chrominanz separat einstellen kann

    Nicht ganz: Man kann aus der Chrominanz nur 15 vorgegebene Farben wählen; die sind weder gleichmäßig über die Farbtöne verteilt, noch kann man die Farbintensität unabhängig wählen.

  • Steht gleich als erster Satz in Wikipedia: "Im Januar 1981 begann die frühere MOS Technology, jetzt als Commodore Semiconductor Group eine Tochter von Commodore International, mit der Entwicklung eines neuen Chipsatzes für Grafik und Audio für eine Spielkonsole der nächsten Generation. Die Arbeit an den beiden Chips VIC II (Grafik) und SID (Audio) war im November 1981 erfolgreich abgeschlossen."


    P.S.: ach so, wenn man ganz genau ist, gibt es natürlich einen Unterschied zwischen Arcade und Spielkonsole...

  • ...auch der Spectrum, kommt aber zu einem völlig anderen Ergebnis. Der arbeitet nämlich immer mit 100% Farbintensität in 8 Farbtönen und 16(?)Helligkeiten. Brauchbare Landschaften wie mit C64-hellblau/-hellgrün bekommt man damit nicht hin.


    Und natürlich hat man auch anmno 1981 schon realistische Computer-Bilder gemalt. Nicht vergesen: Der VIC-SID-Chipsatz sollte ursprünglich der ultimative Arcade-Chipsatz werden! In einem Consumer-Heimcomputer ist der eigentlich nur durch Zufall gelandet.

    Also, das halte ich schon für etwas eng gefasst. Man muss sich nur mal vorstellen, welchen Weg das nimmt, wenn man als Material Fotos nimmt oder Printmedien. Und vor allem auch, wie die Farben am Ende augefallen sind. Wenn sich jemand dransetzt und diese Farben nach der Prämisse "Angenehm fürs Auge" nachstellt, wird er garantiert nicht wie beim Speccy die Farben auf Anschlag setzen. Die Farben sind von der Auswahl der Töne dennoch entsprechend.


    Das mit den realistischen Computerbilder aus der Zeit glaube ich nicht recht. Was ich an realistischen Grafiken zu Beginn der 80er kenne, ist normal zweifarbig. Ultimative Arcades aus der Perspektive der frühen 80er - hat man da technisch über ein Moon Patrol hinaus gedacht, was damals noch nicht erschienen ist?


    Deine Anmerkung "Brauchbare Landschaften kann man nicht..." ist ein Henne-Ei-Ding. Dafür muss man doch erstmal vor Augen haben, wie jemand sowas umsetzt (nebenbei bemerkt: von den damaligen 8Bit-Systemen ist der C64 für die Umsetzung von Naturlandschaften noch am Besten geeignet). Es wäre allerdings sehr interessant zu wissen, ob es damals überhaupt entsprechendes Referenzmaterial gab. Ich habe mal vor ein paar Jahren versucht, als ich mit c64pixels anfing, grafische Standards auf anderen Systemen abzustecken, da auf dem Brotkasten nennenswerte Beispiele auch erst um 83 herum auftauchen. Es aber aufgegeben, weil kaum Material im Netz zu finden war.

  • Das Zitat von Bob Yannes behauptet nur sie hätten durch die zugrundeliegende Schaltung eine "volle Kontrolle über Sättigung und Helligkeit" gehabt. Das ist etwas wolkig und die "volle Kontrolle" erschöpft sich grundsätzlich pi mal Daumen in drei Bit für die Farben und 1 bit für die Luminanz. Da von "voller Kontrolle" zu sprechen ist etwas vollmundig , es ist wohl Marketing dabei ;)


    Nein - es ist kein "Marketing-bla-bla"!


    Ich hab mal den DIE Shot der betreffenden Stelle herausgefischt. Man sieht sehr schön (links) die ROM Tabelle, die dem 4Bit Wert der Farbe einen 8Bit Wert
    für die Chrominanz zuordnet. Im Kasten rechts ist die ROM-Tabelle, die diesem 8Bit Wert einen 4Bit Luminanz-Wert zuordnet.



    Die Meander (N00b: Schlangen) ganz rechts zeigen auch "schön" die Widerstände, zum addieren der einzelnen Chroma Phasen
    um aus dem 8Bit Wert den entsprechenden Phasenwinkel für die Farbe zu erzeugen.



    Abschließend kann ich dir versichern, dass die Anordnung der Farben definitiv nicht willkürlich ist, sondern auf einem streng monotonen mathematischen Schema beruht das auch gattermäßig "minimal" ist. Allerdings nicht CGA oder RGBI-basiert .......


    Ob die Tabellen nach einem "streng monotonen mathematischen Schema" kreiiert wurden, kann ich freilich nicht beurteilen.


    Aber was sicher ist:


    Mit Hilfe der Tabellen konnten die VIC-II Entwickler in gewissen Grenzen tatsächlich jede Farbe/Helligkeit erzeugen. Insofern hat sich Yannes in seiner
    Mail nicht zu weit aus dem Fenster gelehnt.

  • Es ist auch durchaus denkbar, dass sie damals versucht haben, Farben zu waehlen, die sich vom bisherigen "grelle Neonfarben"-Konzept, wie man das bislang in vielen Arcade-Spielen gewohnt war, abheben wollten. Aehnlich wie es ja auch z.B. zur Amiga-Zeit einen gewissen Trend gab, schwach gesaettigte Farben zu nehmen, einfach weil es technisch endlich machbar war und man sich sicherlich ein Stueck vom "quietschbunt"-Image der vorherigen Spiele und Spielkonsolen abheben wollte (behaupte ich jetzt mal). Ich denke da an Spiele wie The Chaos Engine usw.

  • Spielekonsole der nächsten Generation und Arcade ist nur so ein gaaanz kleiner Unterschied...

    Der Geldeinwurfschlitz? :D Ne, hast schon recht, hab ich mir vorher noch nie so richtig Gedanken drüber gemacht.

  • Daß ein ROM im Spiel sein dürfte, habe ich weiter oben auch mehr vermutet gehabt, aufgrund der vielen "Sonderfälle" und "Abweichungen" / Weiterentwicklungen des C64-Chips gegenüber dem VC20. Daß tatsächlich eins drin ist, wusste ich nicht und solche "Schaltpläne" auf Chip-Ebene zu lesen bin ich auch nicht gewohnt oder geschult. (Inhalte des PLA im 6502 wiederzuerkennen wenn man direkt daneben eine Tabelle in Schriftform hat, würde ich mir mit äusserster Mühe noch zutrauen)


    Ist das Widerstandsnetzwerk rechts im Bild ein R-2R-Netzwerk?
    Du schriebst:
    ROM Tabelle, die dem 4Bit Wert der Farbe einen 8Bit Wert

    für die Chrominanz zuordnet. Im Kasten rechts ist die ROM-Tabelle, die diesem 8Bit Wert einen 4Bit Luminanz-Wert zuordnet.
    könnten die 8 sichtbaren Leitungen die du "Bit" nennst, eigentlich so etwas wie "Decoderausgänge" sein (von ihrer logischen Beziehung untereinander her), also dass das ROM nicht einen Datenbus D0-D7 als Ausgang hat sondern gleich "ausdecodiert" liefert, das würde zu den 8 Helligkeitsstufen (ausser schwarz) passen; und in der ROM-Struktur rechts sehe ich 6 Strukturen vertikal übereinander angeordnet, oder sehe ich das falsch? Ich komme nicht damit zurecht, dass für die Chrominanz 8 bit gebraucht werden... ist da irgendwas redundant kalkuliert?
    Hat dieses Die-Bild schon Eingang in irgendwelche Emulatoren gefunden? :)


    Nein - es ist kein "Marketing-bla-bla"!

    Das hab ich auch nicht behauptet ;-) Leider hat er nicht deutlich gesagt, dass mit einem ROM natürlich volle Freiheit der Zuordnung hergestellt werden kann - alte Programmiererweisheit, dass mit einer weiteren Ebene der Indirektion alles abgedeckt werden kann ....


    Dass der C64 erdigere Töne beherrscht und dies zum Vorteil gereichte gegenüber anderen Rechnern die quietschbunt daherkamen, scheint sich zum Konsens zu kristalisieren ...

  • Ist das Widerstandsnetzwerk rechts im Bild ein R-2R-Netzwerk?


    Nein.


    ... könnten die 8 sichtbaren Leitungen die du "Bit" nennst, eigentlich so etwas wie "Decoderausgänge" sein (von ihrer logischen Beziehung untereinander her), also dass das ROM nicht einen Datenbus D0-D7 als Ausgang hat sondern gleich "ausdecodiert" liefert, das würde zu den 8 Helligkeitsstufen (ausser schwarz) passen;

    Die Luminanz wird an dieser Stelle nicht erzeugt. Der VIC-II R1 (mit nur 5 Luminanzstufen) hatte bereits diese 8 Ausgänge.


    und in der ROM-Struktur rechts sehe ich 6 Strukturen vertikal übereinander angeordnet, oder sehe ich das falsch? Ich komme nicht damit zurecht, dass für die Chrominanz 8 bit gebraucht werden... ist da irgendwas redundant kalkuliert?
    Hat dieses Die-Bild schon Eingang in irgendwelche Emulatoren gefunden? :)


    Da sind 8 Strukturen. Die 4 Ausgänge für Luminanz gehen dann nach oben weg.


    Das Bild habe ich gerade eben ausgeschnitten aus dem Gesamtbild... ich denke aber das ähnliches mit anderen Bildern schon gemacht wurde.

  • Es ist auch durchaus denkbar, dass sie damals versucht haben, Farben zu waehlen, die sich vom bisherigen "grelle Neonfarben"-Konzept, wie man das bislang in vielen Arcade-Spielen gewohnt war, abheben wollten. Aehnlich wie es ja auch z.B. zur Amiga-Zeit einen gewissen Trend gab, schwach gesaettigte Farben zu nehmen, einfach weil es technisch endlich machbar war und man sich sicherlich ein Stueck vom "quietschbunt"-Image der vorherigen Spiele und Spielkonsolen abheben wollte (behaupte ich jetzt mal). Ich denke da an Spiele wie The Chaos Engine usw.

    Halte ich auch für nachvollziehbar. Die technischen Gegebenheiten sind fraglos omnipräsent, wenn man solche Dinge festlegt. Da gibt es auch noch den Alltag. Im Film sind die Farben vergleichsweise gedeckt, im Print bekommt man Neon-Farben auch nicht 1:1 reproduziert. Wobei das frühe C64-Farbschema schon stärker gesättigt bzw die Farben auch klarer waren, als es sich im weiteren Verlauf entwickelt hat.