Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Taking NUFLI one step further
2024-11-10 22:46
cobbpg

Registered: Jan 2022
Posts: 36
Taking NUFLI one step further

I'm working on a new converter for creating images the C64 can display with as much freedom as possible: NUFLI Studio preview video.

The images are NUFLI with the sprite colour limitations lifted: all sprite colours outside the FLI bug area can potentially change in every row. While this is impossible in general due to CPU time limitations, the solution is to generate the speedcode that updates the registers ahead of time. The code generator can make informed decisions about dropping the least impactful register changes to fit everything into the available budget. In practice, most pictures don't require all the 10 possible colour updates on every scanline, far from it.

Another big innovation compared to Mufflon is the improvement in conversion speed. Lifting the sprite colour change limitations makes it easy to fully parallelise the brute force colour search step for each 48x2 pixel area (or 24x2 pixels over the FLI bug), and this allowed me to implement it as a compute shader. The whole process takes about 0.25 seconds on my three-year-old gaming laptop. Besides, when using the internal editor, only the affected areas are recomputed, and they can be previewed in VICE right away (note that the video shows some lag that's probably introduced by OBS somehow; it doesn't happen outside recording).

My hope is that making the feedback practically instantaneous (even when using an external image editor) opens the door for pixel artists to develop a much better intuition about this image format. Also, removing the limitation of only changing sprite colours every second row should make it a lot less frustrating to work with.

I'm not sure what to call this image format. This is 95% NUFLI, the only real difference is that the speedcode is also generated ahead of time (when run on NTSC, there's a patching step done by the displayer routine to make it work), so the files are 4096 bytes bigger (they load from $1000 instead of $2000, the rest of the structure is almost identical). I'm leaning towards "NUFLI2" to make it somewhat search engine friendly, but I'm open to ideas.

At the moment I'm in the process of writing a manual for the tool and a deep-dive article about the technical details. Hopefully neither of those will take too long!
 
... 76 posts hidden. Click here to view all posts....
 
2024-11-14 08:10
WVL

Registered: Mar 2002
Posts: 903
Quote: NUFLIX

Winner. NUFLIX sounds good, is a pun to Netflix and can be explained as NUFLI extended (which is wat is is)

Now ehr.. is it possible to modify this to make UFLI max pictures or would a modified MUFFLON work better?

And, where did cobbpg come from?
2024-11-14 09:44
Oswald

Registered: Apr 2002
Posts: 5095
Quote: Quoting Copyfault
But ok, joking aside, I get that the core routine that runs on the C64 is... NUFLI. The improvements are more on the preparation side, where it for sure makes a f**kload of sense to presort sprite colour reg writes... so, somehow I tend to think more of a "new Mufflon" to materialize soon, instead of a new "mode", since it's still NUFLI.


The question of what to name something when the C64 display mode effect is the same, but the data preparation is what makes it special, is an interesting one.

When I did coding for the video sequences in Hunter's Moon, it just uses multicolour bitmap with sprites over the top. There's nothing special about the display mode. But the algorithm compressing all the data, making it fast enough to decompress while optimising bitmap and sprite data, that's the special part. But does the data processing deserve to get a name?


no, the difference is not only in data prep, it updates more color registers than NUFLI.
2024-11-14 10:41
ChristopherJam

Registered: Aug 2004
Posts: 1409
Very cool. Looks like there are a lot of ideas in there I've been meaning to implement for one of the other newfangled modes, but I've been a bit too distracted with crunchers to get around to.

Looking forward to see some new artwork coming out to take advantage of it!

(Oh, and another vote for nufliX btw :D)
2024-11-14 14:37
Raistlin

Registered: Mar 2007
Posts: 688
Quote: no, the difference is not only in data prep, it updates more color registers than NUFLI.

Yep, I was going to say similar. This does sound like a new mode. Since current NUFLI displayers wouldn't be able to display these new pictures, we can hardly say that they're just NUFLI generated differently.
2024-11-14 14:44
uneksija

Registered: Jan 2002
Posts: 45
If NUFLI+ would be problematic for search engines, how about NUFLIPLUS?

:)
2024-11-14 16:20
chatGPZ

Registered: Dec 2001
Posts: 11391
Nu-FLI (Butterfly edition)
2024-11-14 19:23
Danzig

Registered: Jun 2002
Posts: 440
NXFLI? (Next-FLI) NGFLI? (Next Generation-FLI)
2024-11-14 20:13
tlr

Registered: Sep 2003
Posts: 1791
NUFLING
2024-11-14 20:55
cobbpg

Registered: Jan 2022
Posts: 36
I do like NUFLIX actually, it's as close to NUFLI+ as it gets!

Quoting Copyfault
Not meant too serious, but you should maybe keep this for the next Performers-Demo and name the mode 'NextFli' ;)

To be fair, the visual improvement over NUFLI is not that obvious, at least in the current incarnation that keeps the same sprite arrangement. I think the real contribution here is (hopefully) to make it much more fun and less frustrating to create such pictures in the first place, and it might encourage more artists to give it a go.

Making the sprite setup customisable would also subsume QCH (i.e. 320x200 hires bitmap with 2 colours every 8x2 pixel block across the whole screen), for instance.

Quoting WVL
Now ehr.. is it possible to modify this to make UFLI max pictures or would a modified MUFFLON work better?

No, that's a much simpler use case. Since there's no time to change sprite colours when you perform FLI every line, you can just optimise every 48-pixel column for each of the 16 possible underlay colours separately and pick the best outcome.

In contrast, with NUFLIX I need to check all 256 possible sprite colour combinations within each 48x2 pixel region separately. Thankfully these regions don't overlap, so it's very easy to parallelise the algorithm and run it on the GPU.

Quoting WVL
And, where did cobbpg come from?

My old login name in some closed systems was cobb, which was obviously not widely available on just about any service on the open internet. :P I simply appended my initials to create a more unique identifier.
2024-11-14 22:30
Digger

Registered: Mar 2005
Posts: 438
Yeah, I was going to suggest NUFLIx before I read Sebaloz's comment.
Also like SNUFLI – Speedcode Flexible Line Interpretation.

Or NUFLIXBUS ;-) b/c you're unrollingly bussing the registers.

But jokes aside, this is some serious breakthrough. I can imagine such editor not only for NUFLI but for any other gfx mode. Writing optimisers/converters as shaders is super rad. And GX (Graphician's eXperience) is deluxe! With processor budget and choosing prios by error map.

Amazing work man, I look forward to testing this!

PS I had no idea about VICE's binary monitor API, something's worth exploring!
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Matt
MP Software/Hokuto F..
REBEL 1/HF
map/Plush
johny
MWR/Visdom
sln.pixelrat
Knobby/Role
encore
commodore_freak
E$G/HF ⭐ 7
Guests online: 120
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Coma Light 13  (9.6)
4 Edge of Disgrace  (9.6)
5 Mojo  (9.6)
6 Uncensored  (9.6)
7 The Demo Coder  (9.6)
8 Comaland 100%  (9.6)
9 What Is The Matrix 2  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.7)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 Morph  (9.5)
7 Dawnfall V1.1  (9.5)
8 Libertongo  (9.5)
9 Katzen-Video.mp4  (9.5)
10 Onscreen 5k  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Performers  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Coders
1 Axis  (9.8)
2 Sailor  (9.8)
3 Graham  (9.8)
4 Crossbow  (9.8)
5 Lft  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.068 sec.