ldr.NuFLI

v1.02 07.04.17


NuFLI-Beispiel
Ein NuFLI-Bildbeispiel: Hires mit mehr als zwei Farben pro Kachel und gefülltem FLI-Bug-Streifen
Dateiformat:
NuFLI ist eine Erweiterung und Modifikation des AFLI-Formats mit einem sehr komplizierten
Aufbau. Hinweise auf die Spezifikationen findet man im Text.
Ungepackte Bilder sind 91 Blocks lang und beginnen an der Adresse $2000.

Hinweis: Für NuFLI ist eine REU erforderlich. Der Lader verwendet intern sowohl Undo 4Bit und Undo Rendered als auch Temp.


NuFLI hat keinen eigenen Requester.

Mit NuFli konvertiert man ungepackte Bilder (Länge 91 Diskblocks) des Hires-FLI-Formats NuFLI ins 4Bit-Format GoDots. NuFLI-Bilder stellen den gelungenen Versuch dar, in hoher Auflösung die farbliche Vielfalt von IFLI-Bildern ohne Einbußen wiederzugeben und zusätzlich noch das nervtötende IFLI-Flackern zu vermeiden. Sogar der eigentlich nicht nutzbare FLI-Bug-Bereich wird vom NuFLI-Format berücksichtigt und mit Grafik gefüllt, wenn der Pixelkünstler das will (s. Beispielbilder rechts und unten).

Bei der Entwicklung des Laders hat der Erfinder des NuFLI-Formats Crossbow der Demogruppe Crest entscheidend mitgeholfen. Das Format nutzt vorher unbekannte Fähigkeiten des C64 und ist im Aufbau so kompliziert, dass jeder Versuch, ohne Crossbow einen Lader zu bauen, aussichtslos geblieben wäre. Die Entwicklung des Laders kann man im Forum64 in allen Phasen nachverfolgen. Dort findet man auch die genauen File-Spezifikationen, sie würden hier auf godot64.de allein schon eine ganze Seite füllen, mindestens.

NuFLI basiert auf AFLI, einem Hires-FLI-Format, allerdings werden hier die Screen-RAMs (aus denen die Farben geholt werden) nur alle zwei Rasterzeilen umgeschaltet, nicht bei jeder wie unter AFLI. Die Hires-Beschränkung, nur zwei Farben pro Screen-RAM-Aktivierung (hier also in zwei Rasterzeilen) darstellen zu können, hebt NuFLI durch einen weiteren Farb-Layer auf, der durch (Hires-) Sprites realisiert wird. Dieser Layer liegt hinter den gesetzten Bitmap-Pixeln des Bildes, aber vor dem Hintergrund (den ungesetzten AFLI-Pixeln). Zusätzlich ist er noch um eine Rasterlinie senkrecht versetzt, sodass in einem Zwei-Rasterzeilen-FLI-Abschnitt insgesamt vier Farben vorkommen können, auf jeder Rasterzeile immerhin drei.

Wo kommen nun die nötigen Sprites her? Wir haben hier vier Screen-RAMs statt acht wie bei AFLI. Vervielfältigen der Sprites per Multiplexing? Selbst da hätten wir das Problem mit den zu ändernden Pixeln und Farben. Y-Expandieren der Sprites schließlich würde den Hires-Vorteil zunichte machen. Im NuFLI werden nur die Sprites 1 bis 6 für das Bild verwendet, die Sprites 0 und 7 sind für den FLI-Bug-Bereich zuständig. Unmöglich, damit alles abzudecken!

Crossbow hat nun im VIC-Chip des C64 einen Fehler entdeckt bzw. erstmals analysiert, der auf wunderbare Weise das Problem lösen hilft: Wenn man bei einem Sprite im richtigen Moment die Y-Expansion ausschaltet, bleibt das Sprite an! Der VIC vergisst, es abzuschalten! Es ist dann nicht mehr expandiert, reicht aber bis unten an den Bildschirmrand! Und es kann unterwegs bei jedem Screen-RAM-Wechsel mit neuen Daten beschickt werden, die Farben und Pixel lassen sich während der Anzeige ändern! Aus einem 24×21 Pixel großen Grafikgebilde wird auf diese Weise (bei eingeschalteter X-Expansion, wie es bei NuFLI der Fall ist) vereinfacht gesagt ein Sprite-Streifen von 48×200 Pixeln! Hier kann man alles über diesen unglaublichen VIC-Fehler nachlesen (Stichwort: Sprite Crunch).

Mit dieser Entdeckung lässt sich in einem NuFLI-Bild mit nur sechs Sprites (in Wahrheit zweimal sechs Sprites, weil ein NuFLI sich über zwei VIC-Banks erstreckt) eine Spanne von 36 Kacheln über die ganze Höhe des Bildes abdecken, nämlich das ganze Bild rechts des FLI-Bug-Bereichs, ausgenommen die letzte Kachelspalte am rechten Rand. Zwei solcher Endlos-Sprites decken zusätzlich den FLI-Bug ab, eines davon im Multi-Modus, um die Farbvielfalt auch hier zu gewährleisten. Der Sprite-Layer besteht also (scheinbar) aus sechs X-expandierten, endlos langen Hires-Sprites und einem endlosen Multisprite mit einem ebenso endlosen Hiressprite über dem FLI-Bug.

In GoDot lassen sich NuFLI-Bilder am besten im Multicolor-Modus anzeigen. Meistens sind dann streifige Stellen zu sehen (die in Multi durch ein pixelweises Hires-Schachbrettmuster entstehen). Wenn man hier einmal MCScreenFix anwendet, ist dieses Schachbrett danach auch in Multi erkennbar. Da die Bilddaten durch MCScreenFix verändert werden, vor dem Abspeichern z.B. als GIF nicht vergessen, diesen Modifier ein zweites Mal auszulösen (was den Ursprungszustand wieder herstellt).

Tipp: Interessante NuFLI-Galerien sind Tom's Retro Gallery (eine beeindruckende Bildergalerie) und NuFLIbase64 (hier gibt es auch echte NuFLIs zum Download, die Vorlagen für die Bilder auf dieser Seite sind alle von dort).

Anzeige in "Image Information":


Korrespondierende Saver: keine


Beispiele:

Alle Bilder auf dieser Seite abgespeichert von GoDot im GIF-Format.

Das NuFLI-Testbild während der Entwicklungsphase des Laders
Das NuFLI-Testbild während der Entwicklungsphase des Laders
Dieses NuFLI hat einen opulenten FLI-Bug-Streifen
Dieses NuFLI hat einen opulenten FLI-Bug-Streifen (Face_238 von nuflibase64)

zurück - zum Sonderformate-Menü

Arndt Dettke
support@godot64.de