Hallo Besucher, der Thread wurde 6,1k mal aufgerufen und enthält 79 Antworten

letzter Beitrag von Hoogo am

Was ist das für ein Grafikmode ?

  • Hallo Leute,

    Bin heute über diese Demo gestolpert und das sieht für mich richtig tolll aus.

    Weiss jemand was das für eine Art von Grafik ist ?

    Mit kommt es vor das es mehr Farbabstufungen als sonst sind und irgendwie kommt mir die Auflösung mehr vor. Keine Multicolor doppelpixel sichtbar....

    Wie geht sowas ?


    Bitte um Info !

  • Das ist ein Sprite-Multiplexer. (Das ganze Bild besteht also nur aus Sprites.)


    PS: Ne, ist noch komplizierter. Ist 'ne Mischung aus Sprite-Multiplexer, Hi-Res-Grafik und FLI-Techniken, soweit ich das bilang beurteilen kann...


    PPS: Hab's mir noch etwas genauer angeschaut: Im Hintergrund befindet sich der Sprite-Multiplexer mit Sprites, die in beide Richtungen vergrößert sind. Die sehen, ohne die restliche Grafik so aus:


    Über den Sprites liegt die folgende Grafik (die Artefakte links sind durch Sprites ausgeblendet und entstehen durch die FLI-Technik; gleich mehr dazu):



    Mit FLI-Technik werden zudem die Farbinformationen (und die Spriteinformationen, wenn ich das richtig sehe) für jede Zeile ausgetauscht; dadurch sind mehr Farben möglich, obwohl es keine Multicolor-Hires ist (und auch die Sprites sind nicht multicolor). Wobei nur vier verschiedene Farbinfos vorhanden sind. Wenn ich es richtig sehe, haben jeweils die erste und fünfte Zeile einer "Textzeile" die gleichen Farben. Scheint irgendwie aufzugehen. Das habe ich noch nicht im Detail verstanden.

  • Danke Berni. Dachte da stimmt was nicht. Aber Sprites hätte ich mir nicht gedacht.

    Also ist es eine 2 Color Hires und die Sprites auch ?
    In welchen Program malen die diese Bilder ? Die werden sich das ja nicht selbst geschrieben haben (das Tool) ?! (oder doch?)

    Wenn ich nicht stzen würde - bin Sprachlos. Was für ein Aufwand... Aber es sieht toll aus. Dagegen sind meine heute gepixelten Demobilder der letzte Shit.


    Wie hast du das heraus bekommen? Hast du das Demo gefreezt um die Sprite Routine einzeln anzustarten ?

  • Danke Berni. Dachte da stimmt was nicht. Aber Sprites hätte ich mir nicht gedacht.

    Also ist es eine 2 Color Hires und die Sprites auch ?

    Ich hab's noch nicht ganz verstanden, aber im Wesentlichen läuft es darauf hinaus. Ich werd' mir das im Laufe des Tages nochmal genauer anschauen, dann kann ich mehr dazu sagen. Jetzt muss ich erst mal arbeiten...

    In welchen Program malen die diese Bilder ? Die werden sich das ja nicht selbst geschrieben haben (das Tool) ?! (oder doch?)

    Kann ich natürlich nicht sicher sagen. Wenn ich es machen müsste, würde ich so vorgehen: Als erstes das Programm auf dem C64 schreiben, damit ich genau weiß, welche Kombinationen gehen und welche nicht. Als nächstes würde ich das Bild auf dem PC (mit Gimp oder sowas) mit der C64-Palette malen. Dabei kann jedes Pixel noch beliebig eingefärbt werden (wobei man natürlich die Einschränkungen schon ein bissl im Hinterkopf behalten sollte). Danach würde ich mir (immer noch auf dem PC) ein Tool schreiben, welches ausrechnet, welche Pixel als Sprite und welche als Grafik dargestellt werden. Dabei muss man natürlich Kompromisse eingehen, weshalb das Ergebnis nicht mehr ganz dem entspricht, was man in Gimp noch hatte. Danach dürfte so ein interaktiver Prozess folgen, wo man als Mensch immer mal wieder etwas nachbessert und schaut, was das Tool draus macht, bis man zufrieden ist.

    Wie hast du das heraus bekommen? Hast du das Demo gefreezt um die Sprite Routine einzeln anzustarten ?

    Ich hab' mir das mit dem VICE-Monitor angeschaut. Die Register des VIC geben viel Aufschluss. Dann kann man sich den VIC-Speicherbereich anschauen. Die Hires-Grafik liegt bei $6000-$7fff, die Sprite-Daten bei $4000-$4fff und die Farbdaten bei $5000-$5ffff. Das Programm selbst ist irgendwo im Bereich $0800-$3fff. Für die Bilder oben hab' ich einmal den Hires-Bereich und einmal den Sprite-Bereich komplett mit Null-Bytes gefüllt. Zuletzt habe ich auch das Programm noch im Einzelschrittmodus etwas verfolgt. Da hat mir gestern Abend allerdings die Zeit gefehlt, um das in Ruhe durchzugehen, was da passiert.

  • Ich hab' noch ein paar Dinge rausgefunden:


    Zuerst einmal: Das Sprite-Bild, das ich oben gepostet habe, ist falsch. Da sind noch die Farb-Infos der Hires mit drin. Hier der Sprite-Multiplexer ohne die Hires-Grafik:



    Es handelt sich um 6x5 Sprites, die in X- und Y-Richtung vergrößert sind. Da die Farbinfo der Hires-Grafik in jeder zweiten Rasterzeile geändert wird (und die Sprites versetzt dazu positioniert sind), werden auch jedesmal die Spritedatenzeiger ausgetauscht. Dadurch sind jeweils zwei Sprites "interlaced", wodurch die Auflösung in Y-Richtung doch wieder maximal ist. Man hat allerdings bei den Farben kaum Spielraum, wie man unschwer sehen kann.


    Über diesen Sprites liegt die Hires-Grafik, die mit FLI-Technik in jeder zweiten Zeile dazu führt, dass man effektiv in jedem 8x2-Block zwei beliebige Farben zur Auswahl hat, zu der dann noch die Sprite-Farbe hinzukommen kann. Effektiv kann man damit in jedem 8x2-Block für jedes Pixel unter drei Farben (fast frei) wählen, wobei zwei der drei Farben frei bestimmbar sind und die dritte wie oben in breiten Streifen über den Bildschirm identisch bleiben muss.


    Diese Technik nennt man UFLI (oder UAFLI, wenn sich UFLI auf Multicolor-Grafik bezieht, das weiß ich nicht so genau). Zudem ist mir auch nicht klar, ob das Sprite-Interlacing im original UFLI auch schon vorhanden war, oder ob das hier eine Erweiterung ist.


    Laut Wiki unterstützt Godot zahlreiche FLI-Formate. Ob dieses Format dort auch dabei ist, kann ich aber nicht sagen; ich hab' das Programm noch nie benutzt.

  • Laut Wiki unterstützt Godot zahlreiche FLI-Formate. Ob dieses Format dort auch dabei ist, kann ich aber nicht sagen

    Nein, nur IFLI, AFLI und NuFLI gehen. (Hier die Lader aller besonderen C64-Formate.)


    Arndt

  • Wenn ich in PS vom AFLI-Bild das schwarz transparent mache und dann über das Sprite-Bild lege, kommt das hier raus.
    Entweder mache ich was falsch oder da fehlt noch was. :)


    300199-hires-png300305-real-sprites-png


    mfg Tobias

  • Wenn ich in PS vom AFLI-Bild das schwarz transparent mache und dann über das Sprite-Bild lege, kommt das hier raus.
    Entweder mache ich was falsch oder da fehlt noch was.

    Du machst was falsch :pumpkin:, und zwar einen Denkfehler: Eine der beiden Hires-Grafik-Farben ist immer eine Hintergrundfarbe (das muss nicht immer schwarz sein, sondern ist in jedem 8x2-Block eine andere Farbe). Die Sprites liegen vor dieser Hintergrundfarbe; aber halt hinter der anderen Farbe. Du musst also sozusagen die Sprites dazwischenschieben. Nur mit den beiden Bildern alleine geht das gar nicht, weil man dem Bild nicht mehr entnehmen kann, welche Farbe Vordergrund und welche Hintergrund ist. Dazu müsstest du das Programm starten und in VICE die vier Farbbereiche ($5000-$5fff) auswerten. Dürfte ziemlich mühselig sein, das von Hand zu machen.

  • Danke berni das du das nochmal angeschaut und berichtet hast !! der Multiplexer ist sehr cool ohne Fehler.

    Bei mir flackert immer mal eine Zeile in meinem Multiplexer Routinen. Hat irgendwas mit der Letzten Zeile , Badline oder dem umstand zu tun das der VIC in einer Zeile die Spritedaten holt aber den internen puffer erst in der darauffolgenden Zeile ausgibt...


    Selbst als ich die Rasterzeile über das Sprite gesetzt habe (den IRQ zum Wechseln der Sprite Y und Pointer (2040) ) flackerte es bei mir...


    Hatte vor einiger Zeit ja eine REU ScrollDEMO hier im Forum veröffentlicht und am Ende ein Andora Mutterschiff über den Schirm fliegen lassen (XEVIOUS Arcade)

  • Bei mir flackert immer mal eine Zeile in meinem Multiplexer Routinen.

    Ja, das Problem kenne ich. Meine leider auch immer mal wieder. Das Problem ist, dass man ein sehr, sehr gutes Timing für die Sprite-Datenzeiger (also die ab 2040) benötigt. Die müssen umgeschaltet werden, nachdem die letzte Zeile des oberen Sprites gezeichnet worden ist, aber bevor die erste Zeile des nächsten Sprites ausgelesen wird. Da bleiben nur wenige Taktzyklen für und wenn man Pech hat, ist man in einer Badline, dann sind es nicht genug...

  • Du machst was falsch :pumpkin:, und zwar einen Denkfehler: Eine der beiden Hires-Grafik-Farben ist immer eine Hintergrundfarbe (das muss nicht immer schwarz sein, sondern ist in jedem 8x2-Block eine andere Farbe). Die Sprites liegen vor dieser Hintergrundfarbe; aber halt hinter der anderen Farbe. Du musst also sozusagen die Sprites dazwischenschieben. Nur mit den beiden Bildern alleine geht das gar nicht, weil man dem Bild nicht mehr entnehmen kann, welche Farbe Vordergrund und welche Hintergrund ist. Dazu müsstest du das Programm starten und in VICE die vier Farbbereiche ($5000-$5fff) auswerten. Dürfte ziemlich mühselig sein, das von Hand zu machen.

    Ne, dann lass ich das mal sein. ;)


    mfg Tobias

  • Also wenn ich alle colorrams abschalte dann bekomme ich das :


    das scheint der REINE Sprite Layer zu sein.

    Habe dazu $d800-dbff auf 0 gesetzt

    danach $5000-5fff auf 0 gesetzt

    und die Hires ab 6000 auch gelöscht.... 6000 6340 (8k)

    (linkes Bild)


    .. ahm vergessen die (andere Hires ??) 7000-7fff zu löschen .... gleich nachgeholt...

    Das ist jetzt der Sprite Layer alleine (!) -> Rechtes Bild

  • jetzt habe ich das:

  • die mittlere ist die Sprites die Rechte der FLI ohne Sprites - so sehe ich das - ihr auch ?

    Also wenn das Mittlere hinter das Rechte geschoben wird passt es dann ?

    Oder doch davor ?

    Das FLI-Bild muss noch "technisch" in Vorder- und Hintergrund aufgeteilt werden.

    Ich glaube, Dunkelblau kommt im Bild nicht vor.

    Du müsstest in allen Screens die Lo-Nibbles auf 6 setzen, so dass überall $x6 steht. Blau machst Du im Screenshot dann transparent, es bleiben die Hi-Nibbles übrig, und dann hast Du den Vordergund.