Farbe grau beim VC20?

Es gibt 31 Antworten in diesem Thema, welches 5.026 mal aufgerufen wurde. Der letzte Beitrag (7. Mai 2023 um 13:09) ist von Thomas Hechelhammer.

  • Hallo.

    Ich bin auf der Suche nach -grau- beim vic20.

    Habe ich da etwas übersehen?

    Ich meine, bei einigen Farben aus der Palette geht nur -gelb- / -hellgelb- usw., aber kein annährend akzeptabel aussehendes Grau.

    Gibt es Vorschläge was da in Betracht kommt (für ein Raumschiff z.B. wie Defenda. Das ist doch eher weiß)?

    Gerne Multicolor um sämtliche Farben zu erreichen.

    Grüße, Thomas

  • Hi Thomas,

    Ich bin auf der Suche nach -grau- beim vic20.


    Habe ich da etwas übersehen?

    der VC20 hat leider gar keine Graustufen.

    Bitte melde dich an, um dieses Bild zu sehen.

    Man hat erst beim C64 einige der 8 hellen Farben durch nützlichere ersetzt.

    Gibt es Vorschläge was da in Betracht kommt (für ein Raumschiff z.B. wie Defenda. Das ist doch eher weiß)?

    Eher was "kühles", also blau und hellblau zum schattieren.

    mfg Tobias

  • der VC20 hat leider gar keine Graustufen.

    Es gibt einerseits das, was das Datenblatt des VIC-I einem erzählt ...

    ... und andererseits das, was ein Anzeigegerät bzw. das menschliche Auge aus dem dargebotenen Bild macht.

    Und da geht z.B. auch auf dem VC-20 ohne allzu große Schwierigkeiten sowas wie hier:

    Bitte melde dich an, um diesen Anhang zu sehen.

    ... tja.

    Das ist aber auch nichts spezielles: Farb-Bildschirmsichtgeräte mischen Grau aus gleichen Rot-, Grün- und Blau-Intensitäten zusammen, die so fein gerastert sind, daß das Auge die einzelnen Sub-Pixel nicht trennen kann; Drucker machen was ähnliches wenn sie mittlere Graustufen aus Gelb, Cyan und Magenta dithern statt aus Schwarz.

    Im Bild oben nimmt mein VFLI-Konverter alle erreichbaren und dazu sinnvoll nutzbaren Farben des Videochips her um die Graustufen des Wasserfalls nachzubilden. Natürlich kann er das nicht so fein dithern wie die Bildpunkte des Bildschirms, trotzdem paßt der Farbeindruck.

    Damit man sowas richtig ausprogrammiert bekommt muß man übrigens auch die Thematik in Bezug auf den Gamma-Exponenten richtig verstanden haben. Sonst gerät die Farbbalance nämlich durcheinander und der Konverter bekommt dann den Farbeindruck nicht richtig entsättigt (stattdessen bekommt man größere deutlich sichtbare Farbflecken).

  • Es ging hier um EINE Farbe und nicht, wie man mit den Farben einen Fast-Grau-Eindruck dithern kann, oder?

    Wie verbreitet ist der VFLI-Umbau?

  • Es ging hier um EINE Farbe und nicht, wie man mit den Farben einen Fast-Grau-Eindruck dithern kann, oder?

    Wie ich schon geschrieben hab - die "eine" Farbe (außer Weiß oder Schwarz) gibt der VIC-I nicht her. Bei allen Belegungen der Register bzw. des Farb-RAMs außer eben Weiß oder Schwarz enthält man immer einen Chroma-Anteil im angezeigten Pixel und damit stellt jedes farbtüchtige Sichtgerät damit auch eine bunte Farbe dar und keine Graustufe. Das folgt so schon aus dem Datenblatt und da gibt es nichts zu interpretieren oder wunschzudenken.

    Allerdings darf man durchaus über den Tellerrand schauen, und dann ergibt sich eine Möglichkeit (sie ist nicht die einzige!) doch den Eindruck einer Graustufendarstellung zu bewirken, genauso wie ich es in Beitrag Bitte melde dich an, um diesen Link zu sehen. geschildert habe.

    Wie verbreitet ist der VFLI-Umbau?

    Ich wüßte jetzt nicht inwiefern das für die Fragestellung hier relevant ist.

    Zu deiner Info: der VFLI-Umbau ermöglicht die Darstellung der Farbauflösung mit 8x1-Pixel-Attributzellen und den 3 globalen Farben neu in jeder Rasterzeile über die Breite von 208 Pixeln, wobei auch der Prozessor noch 20% Rechenleistung für's eigene Programm übrig hat. Die 208 Pixel entsprechen ziemlich genau der maximal sinnvollen Breite des Anzeigefensters, 208x256 Pixel in PAL füllen fast die gesamte Bildfläche einer Bildröhre aus.

    Ohne Umbau geht die gleiche Farbauflösung immerhin noch mit 104 Pixeln, also halbe Breite des nutzbaren Bildbereichs. Das Bild ist dann also hochkant, so wie hier (die Balken rechts bitte ignorieren - das ist eine Debug-Ausgabe des Konverters für das entsprechende 104x256 Format):

    Bitte melde dich an, um diesen Anhang zu sehen.

    Allerdings kann das Bild nur angezeigt werden und nach einem Tastendruck wird wieder auf Textmodus geschaltet. Um das Bild darstellen zu können muß die CPU bei dieser Implementierung dem VIC zu 100% assistieren.

  • Durch Bitte melde dich an, um diesen Link zu sehen. oder Schachbrettmuster von zwei Komplementärfarben mit ähnlicher Helligkeit könnte man eine Art grau mischen. Man braucht hierzu halt ZWEI Farben und Pixel für die Darstellung EINER Farbe.

    Dein Konverter scheint ähnliches zu machen. Einiges grau scheint hier z.B. aus hellmagenta und hellgrün gemischt zu sein. Oder blau und gelb.

    Würde ich mir gern mal auf meinem VC-20 ansehen, leider ist der "nackt".

    Ich bin kein Programmierer und schon gar nicht mit dem VC-20 firm, aber ich befürchte, dass hier die Zahl der gleichzeitig nutzbaren Farben limitierend sein wird für ein Spiel?
    So wie ich es verstanden habe, möchte der Threadersteller ein Spiel programmieren und kein Bild anzeigen.

    Falls es eine Möglichkeit gibt, für ein VC-20-Spiel ein "grau" zu generieren, ist das sicher für andere auch interessant und daher wäre es schön, wenn es hier näher beleuchtet wird. :)

  • Man kann natürlich auch Software-Interlace machen, also je Bildaufbau per Interrupt einfach zwei Farben mischen. Ob das dann noch praktikabel für ein Spiel ist oder gut aussieht ist eine ganz andere Frage. Meistens wird es wohl mehr Sinn ergeben, das Spiel anders zu färben oder z. B. in einer Fantasy-Welt spielen zu lassen, wo es kein Grau gibt.

  • Man kann natürlich auch Software-Interlace machen, also je Bildaufbau per Interrupt einfach zwei Farben mischen. Ob das dann noch praktikabel für ein Spiel ist oder gut aussieht ist eine ganz andere Frage.

    Wenn die beiden Farben etwa die gleiche Helligkeit haben, sollte sich das Flackern in Grenzen halten.
    Ob man das programmiert bekommt :nixwiss:

  • Zitat:

    "So wie ich es verstanden habe, möchte der Threadersteller ein Spiel programmieren und kein Bild anzeigen."

    Genau so ist es.

    Ich experimentiere gerade mangels Editor mit ... Excel wo ich 2x3 Boxen habe in der richtigen 1:1.5 Aspekt Relation.

    Hier ist die Figur, Anleihen stammen von Duke Nukem.

    Ich hätte gerne eine Wumme :wink: die gut aussieht.

    Die Schuhe sind noch wie geplant, die Waffe ist ... irgendein Gelb.

    Farben stehen weitgehend fest.

    Global 1 (schwarz oder cyan, je nach Hintergrund je nach Level)

    Global 2 (orange)

    Global 3 ("grau")

    Char gelb, rot, blau

  • Global 3 ("grau")

    Du kannst ja mal einfach probieren, wie von tokra vorgeschlagen, "Global 3" zwischen hellgrün und hellviolett hin- und herzuschalten, so daß sich die beiden Farben jeden Frame abwechseln. Das dabei entstehende "Schimmern" ginge meiner Meinung nach ohne weiteres als gewolltes Design durch. :)

  • Das klingt gut.

    Natürlich nur mit Hilfsfarbe (Lautstärkeregister) und die VIA Timer auf 1/50 s anpassen.

    Schade, denn dadurch fällt bei der Farbe 1 (0-15) das hellblau weg und wird (0-7) mit schwarz / cyan.

    Farbe 2 bleibt.

    Thomas

  • Thomas,

    falls möglich, solltest Du bei der Benennung der drei globalen Farben die gängigen Bezeichnungen Hintergrund-, Rahmen- und Hilfsfarbe an Stelle von "Global X" verwenden. Dann sind Zuordnung und Beschränkungen eindeutig.

    Mein Vorschlag wäre:

    Rahmenfarbe: Schwarz oder Cyan - d.h. die Pixel rund um die Figur und auch sonstiger "Hintergrund" werden mit dem Bitpattern %01 gemacht!

    Hintergrundfarbe: Orange oder Rosa - d.h. mit der Hintergrundfarbe(!) malst Du den Körper deiner Figur.

    Hilfsfarbe: abwechselnd Hellgrün/Hellviolett - das macht dann die graue bzw. metallische Farbe

    Zeichenfarbe: Gelb, Rot, Blau für Haare, Hemd, Hose

    Ich brauch' nur gerade noch ein paar Minuten, dann folgt ein kleines BASIC-Programm, welches die Figur genau so auf den Bildschirm bringt ...

  • [...] ein kleines BASIC-Programm [...]

    Here we go (ist für nicht-erweiterten VC-20):

    Mit den Cursor-Tasten kannst Du die Figur umherbewegen. :D

    Zeile 19 macht den Wechsel hellgrün/hellviolett in BASIC. Mit einer Routine im Interrupt sieht das sicher besser aus.

  • sehr gut.

    Mal sehen, ich werde evtl. Hilfsfarbe auf Rahmen umstellen. Es eigentlich schwarz - weiss gehen.

    Der Rahmen wird dann, wie bei Giana Sisters, bei verdeckten Hintergrund (orange), wie geplant schwarz / hellblau.


    Frage: Run/Stop Restore, wie geht das? ESC F12 geht nicht.

  • ich werde evtl. Hilfsfarbe auf Rahmen umstellen.

    Mir ist nicht klar, was Du damit meinst.

    Nochmal: Hintergrund-, Rahmen- und Hilfsfarbe sind feststehende Begriffe und sagen aus, wie die entsprechenden Register im VIC belegt sind. Wie bzw. wofür diese Farben dann in der Anzeigefläche verwendet werden, ist was ganz anderes!

    Im konkreten Beispiel möchtest Du für die Figur zwei Farben verwenden, die zu den oberen 8 Farben gehören, und zwar rosa (oder hellorange) für den Körper und hellgrün/hellviolett um ein grau zu erzielen. Diese beiden Verwendungen lassen sich nun nur so realisieren, daß sie der Hintergrund und der Hilfsfarbe des Videochips zugeordnet werden. Dann mußt Du dich entscheiden, wie herum diese Zuordnung sein soll (also Körper/Hintergrund - Grau/Hilfsfarbe oder Körper/Hilfsfarbe - Grau/Hintergrund). Das ist wesentlich dafür, welche (echte!) Hintergrundfarbe Du dann auf dem Bildschirm für die Zeichen in Hires hast. Ich habe hier jetzt die erste Version realisiert. Das hat natürlich direkt eine Auswirkung auf die Zeichendefinition - wählt man die zweite Version, sehen die DATAs anders aus.

    Die Zeichenfarbe soll jetzt dazu verwendet werden, nahe beieinander liegende, unterschiedliche Farbgebungen in der Figur zu bewerkstelligen (Gelb für die Haare, Rot für das Hemd, Blau für die Hose) - in meinem Programm passiert das beim Malen der Figur in den Zeilen 29 bis 31. Der Offset in der Variable CO ist so gewählt, daß man damit direkt die Position im Farb-RAM erhält, die der Position im Screen-RAM entspricht.

    Übrig bleibt die Rahmenfarbe und die muß jetzt als "Grundierung" herhalten. Die freie Fläche rund um die Figur ist tatsächlich in Rahmenfarbe ausgemalt! Also: für Multicolour-Zeichen ist die Rahmenfarbe eine der Farbquellen, eben für die Bitkombination %01. Das heißt aber auch, daß Du die Rahmenfarbe jetzt nicht einfach nach schwarz ändern, aber die "Grundierung" in Cyan beibehalten kannst - die "Grundierung" wird dann auch schwarz! Das kannst Du einfach ausprobieren, indem Du POKEV+15,... in Zeile 15 auf POKEV+15,10*16+8+0 änderst.

    Run/Stop Restore, wie geht das? ESC F12 geht nicht.

    Restore ist im Emulator auf PgUp bzw. Bild↑ gelegt.

    Übrigens: "RUN", "CLR" und "INST" sind die geshifteten Aktionen der STOP-, HOME- und DEL-Tasten. Die Tastenkombination heißt also korrekt "Stop/Restore". ;)

  • Übrigens: "RUN", "CLR" und "INST" sind die geshifteten Aktionen der STOP-, HOME- und DEL-Tasten. Die Tastenkombination heißt also korrekt "Stop/Restore". ;)

    Das ist völlig korrekt, hat aber nie jemand so gehandhabt.

    Die Kombination wurde immer schon von allen, die ich kenne als "RUN/STOP-RESTORE" bezeichnet. :tong: