Hallo Besucher, der Thread wurde 30k mal aufgerufen und enthält 411 Antworten

letzter Beitrag von tilobyte am

Mehr Farben vom VIC-II

  • Und die zwei Bits in $d030.

    Eines schaltet zwischen 1 MHz und 2 MHz um, ja.

    Das zweite ist "Test". Bisschen wenig für Software-Einstellungen.

    Das "Test"-Bit verkürzt eine Rasterzeile (der Bilderzeugungs-State-Machine) auf einen Zyklus.

    Mit dem richtigen Timing, insbesondere im Sync-Bereich, kriegt man dann ein paar interessante Effekte hin.

  • Also "doppelte vertikale Auflösung" geht schon mal von der Speichergröße des Video-RAM nicht. Keine Ahnung, was da "erfunden" wurde. Aber mehr als eine Verdoppelung der bestehenden Inhalte kann das nicht sein.

    Guck Dir doch einfach mal die Programme an (auf echter Hardware), bevor Du rummotzt. :)


    Das "Video-RAM" beim VIC ist doch vorrangig gemappter Hauptspeicher, also 64 KB minus 2 mal 4 KB. Ausreichend.

    Zumal der C-128 auch zweimal Attribut-Speicher bei $d800 hat.

    Und beim Interlacen werden die Halbbilder sequenziell nacheinander ausgegeben.

  • uck Dir doch einfach mal die Programme an (auf echter Hardware), bevor Du rummotzt.

    Ich sag ja, mach ich später. Im Moment geht das hier nicht. :-P

    Das "Video-RAM" beim VIC ist doch vorrangig gemappter Hauptspeicher, also 64 KB minus 2 mal 4 KB. Ausreichend.

    Ja, aber der VIC-II kann davon nur 16 kB auf einmal adressieren.

    Und beim Interlacen werden die Halbbilder sequenziell nacheinander ausgegeben.

    Das stimmt allerdings. Müsste man die Speicherpage umschalten beim zweiten Halbbild.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • rummotzt.

    Vielleicht einigen wir uns aber darauf, dass ich - ganz im Sinne des Thread-Themas übrigens ;-) - Dingen gerne erst einmal etwas kritischer gegenüber stehe, die "zu gut zum wahr sein klingen". :-P


    Spätestens, seit einer in einem Demo ("2 MHz 64'er" von COSMOS glaube ich) behauptet hat, er ließe durch umprogrammieren des VIC den ganzen 64er mit 2 MHz laufen ... :-D

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Das "Video-RAM" beim VIC ist doch vorrangig gemappter Hauptspeicher, also 64 KB minus 2 mal 4 KB. Ausreichend.

    Ja, aber der VIC-II kann davon nur 16 kB auf einmal adressieren.

    Bei 504 Pixeln und 4 Bits pro Pixel braucht so eine Rasterzeile aber auch deutlich weniger Bandbreite als 16 KB. =D

    (Und wenn es keine Badline ist, kann man die VIC-Bank auch einfach während der Darstellung der Rasterzeile umschalten.)

  • Ja, ist gut, ich bin eh schon still. ^^

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Interessant wäre doch, ob (welche, wieviele) Bildschirme das so einfach hinnehmen und ein Flackern oder bewegtes Bild nicht bemerkbar ist.

    Das Chameleon hat so eine Option, wo er die Zeilenzahl variiert, um die Synchronisation zu halten, und das ist schon sehr vom Bildschirm abhängig, ob das funktioniert. Sobald die Zeilenzahl wechselt, schalten viele Bildschirme sofort das Bild ab, und versuchen erstmal einige Sekunden lang zu ermitteln, was da jetzt kommt.

    Ja, aber der VIC-II kann davon nur 16 kB auf einmal adressieren.

    Man kann doch jederzeit die Bank wechseln, die der VIC sieht.

  • Man kann doch jederzeit die Bank wechseln, die der VIC sieht.

    Ja, das war der Denkfehler - bei Interlace werden die Bildinhalte ja nacheinander geholt. Siehe meine EInsicht weiter oben.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Wahrscheinlich war das bei anderen Systemen auch üblich?

    Ja, ein TV-Signal ohne Interlacing war bei Heimcomputern und Spielekonsolen lange der Normalfall, der Übergang zu Interlaced war eher fliessend. Sogar einige Playstation 2-Spiele geben noch ein Signal ohne Interlacing aus, z.B. Ico.


    Nervig sind dabei die Titel, die zB beim Wechsel zwischen Menu und Gameplay zwischen Interlaced und Progressive umschalten - auf Röhren war das kein Problem, bei manchen Upscalern (zB Framemeister) führt das aber jedesmal zu einem schwarzen Bildschirm weil die eine Signaländerung erkennen und sich neu darauf synchronisieren wollen.

  • Bei besserem Monitor gibts natürlich auch bessere Scanlines, hier ein Sony PVM:

    Ich habe ja auch solche Sony PVMs, habe die aber eigentlich auch immer nur mit dem C64 betrieben, daher koennte ich jetzt gar nicht sagen, ob die Scanlines dann bei einem normalen TV-PAL-Signal weg waeren - aber das muesste ja demnach dann so sein.

  • Ich habe ja auch solche Sony PVMs, habe die aber eigentlich auch immer nur mit dem C64 betrieben, daher koennte ich jetzt gar nicht sagen, ob die Scanlines dann bei einem normalen TV-PAL-Signal weg waeren - aber das muesste ja demnach dann so sein.

    Ich hab auch meine PS2 dran hängen, und da sieht man das dann gut, in 480i/576i…

  • Sowas geht mit dem VIC-IIe des C-128 rein per Software.

    Da kann man etwas erzeugen, das recht nah an PAL-Interlace ist, weiterhin auch trotz PAL so 56 Hz ausgeben und auch Tricks machen, die echte neue Rot- und Grüntöne hervorbringen.

    Die Ergebnisse sind allerdings stark von der Toleranz des Anzeigegeräts abhängig.

    Ich hab mir das jetzt durchgelesen ... OK, es geht. Aber wenn ich das richtig verstanden habe, ist das SEHR timing-kritisch. Erinnert mich fast ein wenig an die ZX-80-Bildausgabe ... :-D Also für mehr als "schaut her, was ich kann" taugt das wohl nicht, wenn ich mich nicht irre. Aber gut, für Demos usw. natürlich prima.


    Hätte ich nicht für möglich gehalten. Auf was die Leute alles kommen ... :thumbup:

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Ich hab mir das jetzt durchgelesen ... OK, es geht. Aber wenn ich das richtig verstanden habe, ist das SEHR timing-kritisch. Erinnert mich fast ein wenig an die ZX-80-Bildausgabe ... :-D Also für mehr als "schaut her, was ich kann" taugt das wohl nicht, wenn ich mich nicht irre. Aber gut, für Demos usw. natürlich prima.

    Vielleicht baut auch irgendwer mal ein Spiel damit. :)

    Viel CPU-Zyklen braucht das ja prinzipiell nicht.

  • ... was uns zurück zum Thread-Thema bringt:


    Ist das Autorennspiel schon fertig? :bgdev

    Oder wenigstens das Farbpalettendemo? :-D

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.



  • Der erste Link war sehr aufschlussreich, da er die genauen Rasterzeilen, den Hinweis auf die Behandlung beider Halbbilder und auch den Quelltext zur Demo beinhaltet.


    Wegen der dort verwendeten Begriffe "Deep Black" und "Ultra Black", habe ich mich gefragt, ob man die "schwarze Farbe" für die Syncs auch künstlich erzeugen könnte?
    Man denke nur an die Freespin Demo :thumbup:


    Auf der vorher verlinkten Seite tauchten die Werte

    • -0.3V für "Sync Level",
    • 0 für "Blank Level" und bis
    • 0.7 für die Helligkeit/Farbe auf

    Bei Freespin (Ausgabe durch den seriellen Port mit einer kleinen selbstgemachten "Schaltung" siehe hier ):

    • +0V für SYNC
    • ~+0.5V black
    • +5V white

    und auch hier im Forum hat jemand bereits vor ca. 10 Jahren die VIC Ausgabe mit dem Oszilloskop gemessen (siehe Messpunkte mit dem Oszi beim C64 von Gerrit)



    und es gibt noch ein Video mit einem Screenshot, auf dem die unterschiedlichen Pegel sichtbar sind (Video mit dem Titel "Commodore 64 troubleshooting part 3 - probing with an oscilloscope" ab ca. 12:46 ist der Screenshot zu sehen).



    Frage 1.)
    Könnte man den Pegel des Video Signals nicht künstlich, d.h. durch eine einfache "Schaltung", limitieren, verschieben oder invertieren, so dass die Farben des Bildschirms dann die Synchronisation steuern könnten?
    Bspw.: "Deep Black" = Schwarz, "Blank" = Grau, "Farbe" = alles über Grau o.ä.. ?

    Frage 2.)
    Ließe sich die Freespin-Demo theoretisch auch für den seriellen oder einem anderen Port des C64er umsetzen?


    =====================

    Ich habe noch einwenig recherchiert, was das nicht dokumentierte VIC-IIe Test-Bit und die damit möglichen Demo Effekte angeht.
    Im englischen Wikipedia Artikel über den VIC-II gibt es einen Absatz über den VIC-IIe, in dem die Möglichkeiten zumindest genannt werden.
    Nachfolgend eine deutsche Übersetzung aus de.wikibrief.org.

    Der 8564/8566 VIC-IIe im Commodore 128 verwendete 48 statt 40 Pins, da er mehr Signale erzeugte, darunter die Uhr für die zusätzliche Zilog Z80- CPU dieses Computers. Es hatte auch zwei zusätzliche Register. Eines der zusätzlichen Register diente für den Zugriff auf die hinzugefügte Zehnertastatur und andere zusätzliche Tasten dieses Computers. Diese Funktion wurde dem VIC nur hinzugefügt, weil sich herausstellte, dass dies der einfachste Ort im Computer war, um die erforderlichen drei zusätzlichen Ausgangspins hinzuzufügen. Das andere zusätzliche Register diente zum Umschalten zwischen einem 1-MHz- und einem 2-MHz-Systemtakt; Bei der höheren Geschwindigkeit zeigt der Videoausgang des VIC-II lediglich jedes zweite Byte im Code an, während Schwarz das Bitmuster auf dem Bildschirm einstellt, was darauf hindeutet, dass der 80-Spalten-Modus des C128 bei dieser Geschwindigkeit verwendet wird (über den 8563 VDC RGB-Chip). Eher inoffiziell waren die beiden zusätzlichen Register auch im C64-Modus des C128 verfügbar, was die Verwendung der zusätzlichen Schlüssel sowie die Ausführung von CPU-gebundenem Code mit doppelter Geschwindigkeit ohne Video (z. B. intensive numerische Berechnungen) in Eigenregie ermöglichte. machte C64-Programme. Die zusätzlichen Register waren auch eine Ursache für geringfügige Inkompatibilitäten zwischen dem C64-Modus des C128 und einem echten C64 - einige ältere C64-Programme haben versehentlich in das 2-MHz- Umschaltbit geschrieben, was auf einem echten C64 überhaupt nichts bewirken würde, aber zu einem führen würde durcheinandergebrachte Anzeige auf einem C128 im C64-Modus.

    Der VIC-IIe verfügt über die wenig bekannte Fähigkeit, einen zusätzlichen Satz von Farben zu erzeugen, indem die Register auf eine bestimmte Weise manipuliert werden, die das Farbsignal außer Phase bringt, in dem sich andere Teile des Chips befinden.

    Unter Verwendung des spezifischen Verhaltens des Testbits des VIC-IIe kann es außerdem ein reales Interlace-Bild mit einer Auflösung von 320 × 400 (Einstellungsmodus) und 160 × 400 (Mehrfarbenmodus) erzeugen.

    Im Commodore 128 Bedienungshandbuch und in Commodore 128 Intern von Data Becker (beide zu finden auf https://www.retrozone.ch/c128/ ) wird das Test-Bit nicht erwähnt


    Im Commodore 128 Handbuch stehen beide Register des VIC-IIe nicht in der Tabelle zum VIC-Chip.
    (Vielleicht war nicht genug Zeit, um die Inhalte zu überarbeiten?)

    In letzterem Buch steht "Bits 1-7 sind unbenutzt":


    In Das Commodore 128 Handbuch von Markt & Technik findet man beide Register in der Übersicht.
    Das Test Bit wird nicht beschrieben, jedoch der 2MHz-Modus.




    (...)
    =====================

    Als letzten Punkt, wollte ich noch nachschauen, ob es Angaben über den Ausgabebereich des VIC gibt und wie nahe Sprites ohne Border oder das Pattern des Idle-Zustands, das Flackern oder die grauen Punkte in den Sync Bereich kommen könnten. In der Demo war ja von "ab ca. Rasterzeile 300" die Rede, um das Test-Bit ein- und auszuschalten.

    Im 6567 VIC-Datasheet findet man auf Seite 13 eine Tabelle mit den fixen Angaben.
    Diese gehen bis Zeile 261 (=ist mit Sicherheit NTSC. Im VIC-Article stehen 284 sichtbare von 312 Zeilen.
    Naiv: Die höchste Sprite Y-Position ist 255? Dann müsste doch 255+42 = 297 gelten.).



    Merkwürdig finde ich im Datenblatt die Angabe "47 Addressable control registers". 47 ist eine ungerade Zahl ;)
    Hat jemand schonmal spaßeshalber alle ungenutzten Bits und Adressen auf einem echten C64 daraufhin geprüft, ob sich nicht ein Test-Bit dahinter versteckt?


    (Okay, das war jetzt ein langer Text... In Zukunft gibt es nur noch kurze Beiträge ;) ... evtl. hat ja jemand seine Freude dran.)

  • Oder wenigstens das Farbpalettendemo?

    Es ist auch so, also bzgl. "Magician", meine ich:


    Es gibt ja keine wirklichen Magier, sondern nur Illusionisten, die mit Fakes und Ablenkung arbeiten. Demnach ist auch das Bild mit der True-Color-Entdeckung ein gültiger "Trick", nur eben noch ein bisschen offensichtlicher als beim Jason - und eben kein technisch einsetzbarer Trick, sondern nur ein Fake. Kann man machen; allerdings geben das Berufsmagier in der Regel auch zu.


    Das Problem: Normalerweise sind technische Tricks auf dem C64 dafür gedacht, sie auch irgendwann mal einzusetzen, und sei es nur in einer Demo, denn sonst nutzt der beste Trick keinem was. Während bei einem Illusionisten auf der Bühne das Publikum nur von weitem zuschauen und das Inventar und die Kleidung nicht eigenständig untersuchen darf, würde das in unserer Szene in Null-Komma-Nichts passieren. Also es würde schon bei der ersten Anwendung des Tricks analysiert und dokumentiert, mindestens von den Demo-Programmierern. :emojiSmiley-145::emojiSmiley-06: