Verständnisfragen zu Grafimodi: FLI (Multicolor-FLI)

Es gibt 12 Antworten in diesem Thema, welches 1.670 mal aufgerufen wurde. Der letzte Beitrag (25. Februar 2022 um 10:29) ist von Hoogo.

  • Hi,

    ist mein Verständnis richtig, dass bei Multicolor-FLI pro Kachelzeile, also 4x1 Doppelpixel,

    die Farben aus dem Bildschirmspeicher %01 / %10 pro Zeile und für jede Kachel frei definierbar sind,

    die Hintergrundfarbe %00 (aus $d021) für alle 40x25 Kacheln gleich ist oder kann diese auch nach jeder Zeile (160 Doppelpixel) geändert werden (Quellen sind hier widersrpüchlich, s.u.),

    die Farbe %11 aus dem Farbram ($d800) für eine Kachel gilt (kann nach 8 Zeilen geändert werden) ?

    Auch das Farbram jede Zeile neu "zu beschreiben" ist programmiertechnisch unmöglich, oder? Ich frage als Anwender, von der Hardware und der Programmierung hab ich keinen Dunst. ;)

    Danke und Gruß,

    Tobias


    Bitte melde dich an, um diesen Link zu sehen.

    "Das Ändern der Hintergrundfarbe würde uns niemals für jedes Zeichen gelingen, dies scheidet also somit schon mal aus. Da sich das Farb-RAM immer an der Adresse $d800 befindet, müssten wir für jede Rasterzeile, für jede Zeichen-Zeile, einen neuen Wert dorthin schreiben. Auch dies ist unmöglich!"

    Bitte melde dich an, um diesen Link zu sehen.

    "Auch die Hintergrundfarbe, die dem Bitpaar 00 zugeordnet ist, kann geändert werden. Dagegen bleibt die Farbe für das Bitpaar 11, die vom Bitte melde dich an, um diesen Link zu sehen. bestimmt wird, für die Kachel gleich, denn für ein Umkopieren des Farb-RAMs ist keine Zeit."

  • die Farben aus dem Bildschirmspeicher %01 / %10 pro Zeile und für jede Kachel frei definierbar sind,

    die Hintergrundfarbe %00 (aus $d021) für alle 40x25 Kacheln gleich ist oder kann diese auch nach jeder Zeile (160 Doppelpixel) geändert werden (Quellen sind hier widersrpüchlich, s.u.),

    die Farbe %11 aus dem Farbram ($d800) für eine Kachel gilt (kann nach 8 Zeilen geändert werden) ?

    Auch das Farbram jede Zeile neu "zu beschreiben" ist programmiertechnisch unmöglich, oder? Ich frage als Anwender, von der Hardware und der Programmierung hab ich keinen Dunst. ;)

    Was genau geht, kann ich dir nicht exakt sagen, da müsste ich auch erst recherchieren und ich vermute, dass das andere hier besser wissen als ich.

    Ich kann dir aber etwas Hintergrundwissen geben: Für jede Grafikzeile stehen bei FLI dem Prozessor etwa 20 Taktzyklen zur Verfügung, von denen allerdings einige benötigt werden, damit die Farbinfos in jeder Zeile neu gelesen werden können. Mit den verbleibenden Taktzyklen kann man dann irgendwas verändern, wobei da nicht viel Zeit übrig bleibt. Das benutzt man, um die Position des Screen-RAMs zu verschieben (in $D018). Damit kann man mit einem einzigen "POKE" die Farben einer kompletten Zeile ändern, weil der VIC diese jetzt an anderer Stelle sucht (wo sie natürlich vorher schon sein müssen).

    Ich vermute stark, dass die Zeit noch ausreicht, dass man auch die Hintergrundfarbe ändern kann.

    Das Farbram kann man aber nicht verschieben, weshalb man dort auch nichts ändern kann (man könnte höchstens ein oder zwei Kacheln in der Zeit ändern, dann aber sonst nichts mehr machen).

    Weiß nicht, ob das jetzt weiterhilft... Ich wollte mir das in ein paar Tagen genauer anschauen, dann kann ich auch mehr dazu sagen...

  • Der VIC liest sowohl Screen- als auch Farbram parallel neu aus, wenn er eine Badline hat.

    Freiwillig macht er das alle 8 Pixelzeilen, und mit dem FLI-Trick kann man ihn öfters dazu zwingen, die Daten neu zu holen.

    Das kann man jede Pixelzeile machen, wie Du es beschrieben hast.

    Aber auch alle 2 oder 4 Zeilen sind beliebt

    In jeder Rasterzeile macht ein FLI die Farben je 4*1 Pixel, wie Du sie beschrieben hast.

    Rechenzeit ist dann knapp, aber es reicht noch, um in jeder Zeile die Hintergrundfarbe zu wechseln.

    Im Prinzip könnte man auch 1 oder 2 Zeichen im Farbram neu setzen, und die würden dann tatsächlich ebenfalls geändert. Praktisch bringen Dir aber 1 oder 2 neue Farbramwerte nix, sieht man eh nicht. Ich wüsste nicht, dass das mal jemand gemacht hätte.

    Wenn man aber nur alle 4 Rasterzeilen einen FLI macht, dann reicht die Zeit, um das komplette Farbram neu zu setzen.

    Das ergibt dann je 4*4 Pixel 3 neue Farben.

    Ich meine, AEG hat das mal in den 90ern gemacht.

  • Wenn man aber nur alle 4 Rasterzeilen einen FLI macht, dann reicht die Zeit, um das komplette Farbram neu zu setzen.

    Das ergibt dann je 4*4 Pixel 3 neue Farben.

    Ich meine, AEG hat das mal in den 90ern gemacht.

    Fällt Dir zufällig noch ein, wo Andrè was mit HCB gemacht hat? Denn eigentlich(tm) soll laut csdb HCB zuerst 2008 in Bitte melde dich an, um diesen Link zu sehen. benutzt worden sein (oder wurde da zumindest mit full-screen Bildern zuerst sinnvoll benutzt?).

    Auch interessant: Auf Seite 0 der Demo ist dazu der HCB-Editor v0.0.5 vorhanden.

    Semi-OT: Und copyfault ist nun auch endlich mal in die Pötte gekommen und hat was mit einem seiner neuer Grafik-Formate released: Bitte melde dich an, um diesen Link zu sehen. :)

  • Bitte bei FLI bleiben.

    Ansonsten gerne nen ählichen Thread aufmachen.

    Sonst wird es hier schnell unübersichtlich.

    Interssiert bin ich immer an neuen Formaten und besonders, dieses auchzu verstehen. ;)

    (Verständnisfragen zu) Grafimodi: QCH

    (Verständnisfragen zu) Grafimodi: HCB

    ;)

    mfg Tobias

  • Fällt Dir zufällig noch ein, wo Andrè was mit HCB gemacht hat?

    Ich meine, ich hätte auf der TP97 (oder 96?) mit Blackjack/Reflex gequatscht. Oder JimJack? Jedenfalls der Bruder von irgendwem, Zorc glaub ich.

    Damals ging es ja hauptsächlich um Smash vs. Reflex, und da kam dann sowas wie "wusstest Du, dass der VIC das so macht? Hat AEG blabla...". Dürfte also so kurz vor 97 gewesen sein, dass AEG das gemacht hat. Ich erinnere mich da noch an ein Logo, halbe Bildschirmhöhe, aber da kann ich auch was mit anderen Demos durcheinanderbringen.

  • Hoogo

    Danke für Deine Erklärungen.

    "Standard"-MC-FLI ist aber der mit Badline nach jeder Zeile, oder?

    Ich hab das mal zusammengefasst, ich denke und verstehe eher optisch. ;) Bitte mal schauen, ob das so passt.

    Es wäre super, wenn wir das so in der Art nach und nach für alle Grafikmodi machen könnten, auch die mit Sprites.

    Wenn man aber nur alle 4 Rasterzeilen einen FLI macht, dann reicht die Zeit, um das komplette Farbram neu zu setzen.

    Das ergibt dann je 4*4 Pixel 3 neue Farben.

    Das bringt aber nur was, wenn man unbedingt in einer Zeile 3 Farben haben muss, die anders sind als die in der gleichen Zeile anderer Chars, oder?

    Mit Badline nach jeder Zeile bekomme ich ja nach vier Zeilen alleine schon 8 individuelle Farben aus dem Screen-Ram.

    mfg Tobias

  • ...als die in der gleichen Zeile anderer Chars,

    8|

    Aber ich glaube, ich weiß, was Du meinst :) Ja, wenn Dir 2 neue Farben für eine Pixelzeile nicht reichen und Du unbedingt 3 neue Farben in der ZELLE brauchst, dann geht auch das... Aber entweder auf extrem wenige Chars beschränkt, oder halt nicht mehr für jede Pixelzeile.

    Zum PDF:
    Hires-FLI: Ich meine, die ersten 3 Chars wären immer komplett hellgrau.


    MC-FLI 8x:

    So reinrassige MC-FLI macht man ja heute kaum noch...

    Würde ich in verschiedenen Grüntönen darstellen, dass die Hintergrundfarbe jede Rasterzeile gewechselt werden kann. Und es gibt auch Editoren dafür, aber ob das jetzt Standard ist?

    Die 3 Chars vorne: Screenram ist wie bei Hires $FF, also hellgrau. Die 3. Farbe vom Farbram ist nicht immer braun, sondern hängt vom 1. Befehl hinter dem $d011 ab. Kann also im im Prinzip in jeder Rasterzeile wieder anders sein. Ist aber glaub ich auch nicht Standard geworden.

    MC-FLI 2x:

    Im Prinzip müsste man auch da in jeder Rasterzeile den Hintergrund ändern können. Bleibt wieder die Frage, ob das "Standard" ist.

    Ganz hinten hast Du 1 common color per screen (160x1) geschrieben.

  • Aber ich glaube, ich weiß, was Du meinst

    Ich glaube nicht. ;) Mir ging es nicht um noch eine andere FLI-Variante. Ich frage mich nur, wo der Vorteil liegt, wenn man nur 2x FLI macht statt 8x. Man kann so zwar 2x die eine Color-Ram-Farbe ändern, dafür aber auch nur 2x die beiden Screen-Ram-Farben. Anders bekommt man ja die beiden Screen-Ram-Farben 8x neu.

    Hires-FLI: Ich meine, die ersten 3 Chars wären immer komplett hellgrau.

    Hab ich korrigiert, danke. Ich bin das so von MUILFI gewohnt mit der anderen Farbe neben hellgrau, aber die kommt dann wohl eher aus Sprites. Abgedeckt wird der Bug-Bereich idR. doch eh mit Sprites, oder? Wenn man also das Sprite "löchrig" macht, dann hätte man wieder die zwei Farben.

    Die 3. Farbe vom Farbram ist nicht immer braun, sondern hängt vom 1. Befehl hinter dem $d011 ab

    Hab ich auch korrigiert. Danke.

    MC-FLI 2x:

    Im Prinzip müsste man auch da in jeder Rasterzeile den Hintergrund ändern können. Bleibt wieder die Frage, ob das "Standard" ist.

    Ganz hinten hast Du 1 common color per screen (160x1) geschrieben.

    Hab ich entsprechend geändert. Interessant wären schon die "Standards", also was genutzt wird, nicht die theoretischen Möglichkeiten.

    Würde ich in verschiedenen Grüntönen darstellen, dass die Hintergrundfarbe jede Rasterzeile gewechselt werden kann.

    Dann müsste ich aber auch für den Screen-Ram unterschiedliche Blautöne nehmen, oder?
    Ich hab versucht, das mit den dicken Rahmenlinen im Char darzustellen. Nach jeder dicken Linie kann neu "gemsicht" werden. Geht die Linie über das Char hinaus (dann dünn), dann gilt die Farbe für die gesamte Bildschirmzeile. Umrahmt die Fläche das Char, gilt die Farbe für den gesamten Bildschirm.

    mfg Tobias

  • Ich frage mich nur, wo der Vorteil liegt, wenn man nur 2x FLI macht statt 8x.

    Im konkreten Fall als Grafikmodus würde ich sagen: Wird gemacht, weil es gemacht werden kann, basta!

    Bei anderen Gelegenheiten sparst Du halt Rasterzeit und Speicher, den Du dann halt für Sprites oder für Grafik-Berechnung verbraten kannst. So eine Sorte von FLI findet sich in der Regel in den Demo-Effekten, die 80*50 Pixel Auflösung und mehr als 4 Farben nutzen.

  • In Hires-FLI ist die allererste Linie im FLI-Bug in normaler Hintergrundfarbe, kann man Bitte melde dich an, um diesen Link zu sehen. im großen Beispielbild sehen (und wird bei NuFLI genutzt).


    Arndt

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • In Hires-FLI ist die allererste Linie im FLI-Bug in normaler Hintergrundfarbe, kann man Bitte melde dich an, um diesen Link zu sehen. im großen Beispielbild sehen (und wird bei NuFLI genutzt).


    Arndt

    Interessant.
    Aber in Hires gibt es doch normal gar keine Hintergrundfarbe? Nur die beiden Farben vom Screen-Ram?

    In wiefern kann man diese 24x1 Linie bei NUFLI nutzen?

    mfg Tobias

  • In Hires-FLI ist die allererste Linie im FLI-Bug in normaler Hintergrundfarbe, kann man Bitte melde dich an, um diesen Link zu sehen. im großen Beispielbild sehen (und wird bei NuFLI genutzt).

    Imho müsste die erste Zeile ganz normal Hires sein. Ein FLI-Trick an der Stelle ist nicht nötig, da passiert ja alles noch schön von alleine.

    Im Prinzip müsste jede 8. Zeile normal sein können, aber das ist alles schon wieder mehr der technische Aspekt