From C64-Wiki
Jump to navigationJump to search
An NUFLI image from "Heraklionrelease" by Crest and Carrion (2009).

NUFLI (New Underlayed Flexible Line Interpretation) is a high-resolution and flicker-free graphics format with a resolution of 320×200 pixels, where, unlike the standard hires format, more colors are possible (3 colors in an 8×2 range instead of 2 colors in an 8×8 range).

The format was developed by Commodore 64 demoscene group Crest in 2009 and offers a flicker-free alternative to the interlaced modes used until then.

History[edit | edit source]

In 2010, the slideshow Crest Slide Story by the demogroup Crest was released. It showed a lot of well-known IFLI images that suddenly stopped flickering at all, heralding a revolution. They had developed the NUFLI format, which allows for a full 320×200 pixels with far more colors per tile than standard Hires and thus makes IFLI largely redundant. However, the images had to be reworked due to greater color selection restrictions.

Description[edit | edit source]

Color matrix of sprites (cyan-colored area of the screenshot). At the left edge of the image is the FLI bug, on the far right the AFLI-only column

NUFLI is based on AFLI, but uses FLI in every second (even) line plus a plane from Sprites, thus making it an extension of UFLI (Underlayed FLI), but the colors of the sprites can be changed every other (odd) line.

The six Hires sprites under the graphics are double wide and can therefore cover 24*2*6 = 8*36 bits, i.e. 36 tiles (4 to 39). In this area there are thus three levels: at the bottom, the top, which is not set, or set bits of the graphic, in between the set sprite bits. The last tile (40) is pure AFLI.

NUFLI has a range of FLI bugs. There are two sprites under the graphic, a multicolor sprite (colors 1 to 3) and above it a Hires sprite (color 4). All four colors can be changed. Five changes are possible in each even grid row, and one in each odd grid. If fewer color changes are made to the six Hires sprites in the graphic, more are possible with the sprites in the area of the FLI bug, but then unused register writes are taken. Of the 8 grid rows of a tile, only 6 are actually light gray, while 2 are in a normal Hires bitmap. The three tiles in the area of the FLI bug can contain a maximum of 5 to 6 colors.

In order for the entire graphic (except the last tile column) to be covered with sprites, there is no sprite multiplexer, but a technique called "sprite-crunching" or "sprite-stretching". This causes the VIC to repeat the lines of sprites over and over again, whereby the sprite pointers are constantly different due to extremely skilful programming, so that not only static surfaces but real changeable pixels can be displayed.

File format

An unpacked NUFLI image is in the Memory of the C64 between $2000 and $7A00. On a 1541-Diskette, it occupies 91 Blocks. The file ID is often . NUF. Details about the format can be found in the Forum64 thread "Nufli File Specs?" - see Web links. The display routine starts at $3000. The image can be displayed after loading with SYS 12288 or SYS 3*4096.

Often an NUFLI as a program file is in packed format which then requires about half as much floppy disk memory. If you start the loaded program with RUN, the file is unpacked and the image is displayed. To create an unpacked NUFLI from it, you can use a Monitor now save the RAM range of 2000-7A00 to floppy disk.

Image creation[edit | edit source]

NUFLI gives the viewer the impression that, despite running in Hires, the pixel colors can be chosen relatively freely. Nuvie reinforces this impression bdue to the fast sequence of images. It is only when you try to create NUFLI images that you reach the limits of this format. The excellent NUFLI converter Mufflon provides excellent results when converting Truecolor images, except, depending on the subject, you can see stripe artifacts in some places, which quickly reveal where tile boundaries lie. If you have a "handpixelated" image, elements can disappear or appear at a completely different color due to restrictions, hence why it usually takes a lot of work to create a good image. As a rule, the image is first created on a "larger" platform (e.g. PC) and then the image is converted using Mufflon. It uses an "error map" to show which pixels it had to make changes to due to limitations. On the basis of this information the image can be adjusted and converted again. Finally, the NUFLI Editor on the C64 is used to fine-tune pixels. A grid image created veto for the graphics editor Timanthes makes the areas visible for the FLI bug, sprite layers, and AFLI-only column. It is used as a layer to help take into account the color limits of the NUFLI format when editing an image for conversion on PC.

Similar to the .B with Hires editors on the C64, you can also create a complete image pixel by pixel with the NUFLI editor from Crest - since all restrictions are immediately active, you can take them directly into account and thus perfectly adjust your subject. The pixels of the sprite plane are twice as wide as the Hires pixels, so they are less suitable for fine detail than for flat areas such as the background. If you create an NUFLI image by hand, you can pixelate it as if it were a Hires image, but with an additional color. To make matters worse, the sprites are "between" and unset Hires pixels. This means the first Hires color, called "Ink" in the NUFLI editor, can be used normally, the user using it to put pixels on the background layer, called "Paper" in the editor. On "Paper" lies the sprite plane, i.e. pixels set with "Ink" cover sprites and papers, pixels set with "Sprite" cover "Paper". The second Hires color looks behind the "Sprite" plane, only allowing work with double-width pixels when combining "Sprite" and "Paper". The graphic artist is therefore required to have a lot of skill, as they have to cleverly conceal these resolution limitations.

Gallery[edit | edit source]

Heraklionrelease of Crest and Carrion (2009)
Prague by Carrion (2009)

Main menu of NUFLI editor V1.11 by Crest (2010)
The demo NUFLI image from NUFLI editor V1.11

Links[edit | edit source]