NUFLI

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Ein NUFLI-Bild aus "Heraklionrelease" von Crest und Carrion (2009).

NUFLI steht für New Underlayed Flexible Line Interpretation und ist ein hochaufgelöstes und flackerfreies Grafikformat mit einer Auflösung von 320×200 Pixeln, bei dem im Gegensatz zum Standard Hires-Format mehr Farben möglich sind (3 Farben in einem 8×2 Bereich anstatt 2 Farben in einem 8×8 Bereich).

Das Grafikformat wurde von C64-Szene-Gruppe Crest im Jahre 2009 entwickelt und bietet eine Alternative zu den bis dahin verwendeten, jedoch flackernden Interlace-Modi.


Geschichte[Bearbeiten | Quelltext bearbeiten]

Die Demogruppe Crest zeigte in der Diashow Crest Slide Story im Jahre 2010 eine Menge bekannter IFLI-Bilder, die plötzlich überhaupt nicht mehr flackerten, und läuteten damit eine Revolution ein. Sie hatten das NUFLI-Format entwickelt, welches volle 320×200 Bildpunkte bei weit mehr Farben pro Kachel als Standard-Hires beherrscht und damit IFLI weitgehend überflüssig macht. Allerdings mussten die IFLI-Bilder nach dem Umwandeln in NUFLI teils noch stark nachbearbeitet werden, da die Einschränkungen bei der Farbwahl größer sind als bei IFLI.

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Farbmatrix der Sprites (Cyan-farbene Bereich des Screenshots). Am linken Bildrand befindet sich der FLI-Bug, ganz rechts die AFLI-only-Spalte

NUFLI basiert auf einem AFLI mit FLI in jeder zweiten (geraden) Zeile plus einer Ebene aus Sprites, ist also prinzipiell eine Erweiterung von UFLI (Underlayed FLI), wobei die Farben der Sprites aber jede zweite (ungerade) Zeile geändert werden können. Die sechs Hires-Sprites unter der Grafik sind doppelt breit und können daher 24*2*6 = 8*36 Bits, d.h. 36 Kacheln (4 bis 39) abdecken. In diesem Bereich gibt es somit drei Ebenen: ganz unten bzw. oben die nicht gesetzten bzw. gesetzten Bits der Grafik, dazwischen die gesetzten Sprite-Bits. Die letzte Kachel (40) ist reines AFLI.

In NUFLI lässt sich auch der Bereich des FLI-Bugs für das Bild nutzen. Hier sind zwei Sprites unter die Grafik gelegt, ein Multicolor-Sprite (Farben 1 bis 3) und darüber ein Hires-Sprite (Farbe 4). Alle vier Farben können geändert werden. Fünf Änderungen sind maximal möglich in jeder geraden Rasterzeile, eine in jeder ungeraden. Wenn weniger Farb-Änderungen bei den sechs Hires-Sprites in der Grafik vorgenommen werden, sind mehr bei den Sprites im Bereich des FLI-Bug möglich, dafür werden dann ungenutzte Registerschreibzugriffe genommen. Von den 8 Rasterzeilen einer Kachel sind hier tatsächlich nur 6 hellgrau, 2 dagegen normale Hires-Bitmap. Die drei Kacheln im Bereich des FLI-Bug können damit maximal 5 bis 6 Farben enthalten.

Spritepositionen bei NUFLI

Damit die ganze Grafik (mit Ausnahme der letzten Kachel-Spalte) mit Sprites bedeckt werden kann, kommt eine Mischung aus Multiplexer und einer Technik die "Sprite-Crunching" beziehungsweise "Sprite-Stretching" genannt wird zum Einsatz. Mit Sprite-Stretching wird der VIC dazu gebracht, die Zeilen von Sprites immer wieder zu wiederholen, wobei durch extrem geschickte Programmierung der Sprite-Pointer deren Inhalt ständig anders ist, so dass nicht nur statische Flächen sondern echte veränderbare Pixel dargestellt werden können.

Das Bild "Spritepositionen bei NUFLI" zeigt an, wo sich die 24 Sprites in der Grafik befinden: Im oberen Teil des Bildes werden die Sprites durch Sprite-Stretching auf 127 Pixel verlängert, im unteren Teil kommen "normale" Sprites zum Einsatz, bei denen aber in jeder zweiten Zeile die Grafikdaten aus einem anderen Speicherbereich geholt werden. Ganz links liegen jeweils zwei Sprites exakt übereinander. Diese sind in der Breite nicht vergrößert.

Dateiformat[Bearbeiten | Quelltext bearbeiten]

Ein ungepacktes NUFLI-Bild liegt im Speicher des C64 zwischen $2000 und $7A00, wobei eine Display-Routine bereits enthalten ist. Auf einer 1541-Diskette belegt es 91 Blöcke. Als Dateikennung wird oft .NUF benutzt. Details zum Format findet man im Forum64-Thread "Nufli File Specs?" - siehe Weblinks. Die Display-Routine beginnt bei $3000. Das Bild kann nach dem Laden also mit SYS 12288 bzw. SYS 3*4096 angezeigt werden. Beim Start wird allerdings als erstes dynamisch Code in den Bereich ab Adresse $1000 generiert, welcher dann zur Anzeige verwendet wird.

Oft liegt ein NUFLI als Programm-Datei in gepacktem Format vor, das dann etwa nur halb soviel Diskettenspeicher benötigt. Startet man das geladene Programm mit RUN, wird die Datei entpackt und das Bild angezeigt. Um daraus ein ungepacktes NUFLI zu erstellen, kann man mit einem Monitor nun den RAM-Bereich $2000-$7A00 auf Diskette speichern.

Erstellung von NUFLI-Bildern[Bearbeiten | Quelltext bearbeiten]

NUFLI lässt beim Betrachter den Eindruck entstehen, trotz Hires-Auflösung könne man die Pixelfarben relativ frei wählen. Bei Nuvies wird dieser Eindruck verstärkt, da man durch die schnelle Bildabfolge ein Einzelbild nicht in Ruhe betrachten kann. Erst wenn man selbst versucht, NUFLI-Bilder zu erstellen, stößt man an die Grenzen dieses Formats. Der exzellente NUFLI-Konverter Mufflon liefert zwar hervorragende Resultate beim Wandeln von Truecolor-Bildern, im Ergebnis sieht man jedoch je nach Motiv an einigen Stellen Streifen-Artefakte, durch die schnell sichtbar wird, wo Kachelgrenzen liegen. Hat man ein "handgepixeltes" Bild, können beim Konvertieren aufgrund der Restriktionen Elemente verschwinden oder eine ganz andere Farbe bekommen. Es ist also, um ein gutes NUFLI-Bild zu erzeugen, meist eine Menge Arbeit nötig. In der Regel erstellt man das Bild zunächst auf einer "größeren" Plattform (z.B. PC) und erzeugt dann mit dem Mufflon das NUFLI-Bild. Dieser zeigt in einer "Errormap", bei welchen Pixeln er aufgrund der NUFLI-Limitierungen Änderungen vornehmen musste. Auf Basis dieser Information kann man sein Bild angleichen und erneut konvertieren. Zum Schluss wird mit dem NUFLI-Editor auf dem C64 dann die pixelweise Feinarbeit vorgenommen. Ein Gitter-Bild, das Veto für den Grafik-Editor Timanthes erstellt hat, macht die Bereiche für den FLI-Bug, die Sprite-Lagen und die AFLI-only-Spalte sichtbar. Als Layer genutzt hilft es, die Farblimitierungen des NUFLI-Formats beim Bearbeiten eines zu konvertierenden Bildes am PC zu berücksichtigen.

Ähnlich wie z.B. mit Hires-Editoren am C64 kann man mit dem NUFLI-Editor von Crest aber auch ein komplettes Bild pixelweise erstellen - da alle Restriktionen sofort aktiv sind, kann man diese direkt berücksichtigen und so sein Motiv perfekt anpassen. Die Pixel der Sprite-Ebene sind doppelt so breit wie die Hires-Pixel, weshalb sie sich weniger für feine Details eignen sondern eher für flächige Bereiche wie den Hintergrund. Erstellt man ein NUFLI-Bild per Hand, kann man also vereinfacht gesagt zunächst wie bei einem Hires-Bild pixeln, wobei man eine zusätzliche Farbe hat. Erschwerend kommt jedoch hinzu, dass die Sprites "zwischen" gesetzten und nicht gesetzten Hires-Pixeln liegen. Das heißt: Die erste Hires-Farbe, im NUFLI-Editor "Ink" genannt, kann normal verwendet werden, man trägt mit ihr Pixel auf die Hintergrund-Ebene, im Editor "Paper" genannt, auf. Auf dem "Paper" liegt quasi die Sprite-Ebene, d.h. mit "Ink" gesetzte Pixel verdecken Sprite und Paper, mit "Sprite" gesetzte Pixel verdecken "Paper". Ergo: Die zweite Hires-Farbe schaut hinter der "Sprite"-Ebene hindurch, so dass man bei der Kombination von "Sprite" und "Paper" nur mit doppelt breiten Pixeln arbeiten kann. Dem Grafik-Artisten wird also viel Können abverlangt, da er diese Auflösungs-Einschränkungen geschickt kaschieren muss.

NUFLI-Bilder & -Editor[Bearbeiten | Quelltext bearbeiten]


Clearwater von Almighty God
Lonely Tree von Grass/Hokuto Force



Hauptmenü des NUFLI-Editor V1.11 der Demogruppe Crest (2010)
Vorfreude von Excess (2023)



Sonstiges[Bearbeiten | Quelltext bearbeiten]

In der Zeittafel der C64-Demos wird versucht, die wichtigsten Demos, bei denen Effekte wie diese zum ersten Mal verwendet wurden, in chronologischer Form zusammenzutragen.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Infos
Tools
Bilder