Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user Nicron ! (Registered 2024-05-21) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > UFLI?
2005-09-30 14:54
Nightlord

Registered: Jan 2003
Posts: 131
UFLI?

Hi everyone,

I tried to google around in order to learn how ufli works but could not find anything. I know how fli, afli, shfli, shifli and finally xfli works.

can someone please explain how ufli works and what are its limitations. i tried to look at the displayer code of that veronica picture. i see sprites involved. but i do not understand the code...
 
... 131 posts hidden. Click here to view all posts....
 
2006-09-14 19:08
Graham
Account closed

Registered: Dec 2002
Posts: 990
The magics of the code generator :)
2023-11-25 21:56
WVL

Registered: Mar 2002
Posts: 886
Well, after 18 years we are almost there.. I managed 124 lines in 2006, but that was not good enough.. Finally I got to 166 lines in Halloweed 3. The main problem was keeping the sprite data unique as I thought way back.

So now.. how do we get to 200 lines?
2023-11-25 22:15
Clarence

Registered: Mar 2004
Posts: 119
Congrats guys, well done pushing the limits. Must be a hell of a memory layout to accomodate the illegal opcode register manipulations (and finding a working combination). :)
2023-11-25 22:24
WVL

Registered: Mar 2002
Posts: 886
Yes, the memory layout is completely fucked up. Actually there are 3 'solutions'. It starts with one, and has to switch to a second one in the end. There are some special lines in the middle to get the switching from solution 1 to solution 2 working. At the end of solution 3 I needed some special lines aswell to avoid problems with sprite uniqueness again..
2023-11-26 00:33
DeeKay

Registered: Nov 2002
Posts: 362
amazing work, WvL!... now make a converter so we can actually use it for GFX! ;-D
I remember Crossbow had a look at Ninja's code and was seriously impressed and guessed that he must have worked many months on solving this.. and apparently he did, he said that he spent about a year on the train to work and back on his 6 sprite routine!

Now, the only thing I wonder about, both with your and with Ninja's part: Why do you guys always use graphics that do not show off the full FLI coloring? ;-) Yours is better than JB's in Ninja's part, but it could still be a half- or even quarter-FLI pic!..

Just tested in VICE 3.1 - No worky, good job, Werner! ;-D You br0ke the emu, vice devs many headaches now...
2023-11-26 01:04
WVL

Registered: Mar 2002
Posts: 886
We are at VICE 3.7 now and that works perfectly :-)
2023-11-26 08:42
Oswald

Registered: Apr 2002
Posts: 5028
crazy code man, what do you mean by special lines? if there is no time for anything how can you even change dd00 ? :)
2023-11-26 10:12
WVL

Registered: Mar 2002
Posts: 886
@Oswald : I mean lines that do not follow the 8-line repeating loop. To switch between loops, you have to switch dd02 and d018 to work in the new loop. I also found a good spot that didn't need a d018/dd00 write so I could refresh A and X.

I even found a solution with a repeating 16 line loop not needing a d018/dd00 write every 8th line, but couldn't make it work past 124 lines..

Also, I couldn't find a solution with good A,X,Y,A&X,A&Hibyte to multiplex the sprites for the last row. And even then you'd need a combination of a last loop that does not need d018/dd00 writes AND had proper register values for the multiplex..
2023-11-26 16:15
ChristopherJam

Registered: Aug 2004
Posts: 1381
UFLI?


Quoting WVL
Well, after 18 years we are almost there.. I managed 124 lines in 2006, but that was not good enough.. Finally I got to 166 lines in Halloweed 3. The main problem was keeping the sprite data unique as I thought way back.

Congratulations!

Quote:
So now.. how do we get to 200 lines?

Excellent question.

Back in 2019 I wrote a limited instruction simulator/search function that allowed me to find a few thousand solutions to "build a loop to display a 6 sprite 200 pixel high wall over FLI," but none of them managed to avoid reusing sprite data past the 168th line. I thought I'd make a bigger splash if I managed to solve the latter issue instead of just making a demo with what I had, but instead I just failed to beat you to the punch on the 168 line version (publish or perish!).

My approach was to search for 16 line loops that had a free instruction twice per loop (no need to change either of dd02 or d018 at the end of a char row), and I had a cunning way to use the free instruction to update one Y position every eight lines during the leadup to line 168

I think I took a few runs at using one loop above line 168 and a different loop below, but every combination of compatible loops from the solution set I found still had collisions in their sprite access patterns :-/

I got a little bit distracted with other projects after that, but I really should get back to it one of these days.



(my starting point was - Ninja did it, and while I didn't read his code I knew it was published in No More Secrets, so unintendeds must have played a part in his solution.. and the DMA burden says RMW instructions are necessary to be able to do the requisite two instructions per line in the cycles available..)
2023-11-26 18:40
WVL

Registered: Mar 2002
Posts: 886
It sounds you ran into the same problems that I did. I tried to prove mathematically that you will always run into a collision above line 166, but I couldn't quite prove that.

So it might still be possible. I didn't restrict too much, maybe more restrictions help. I wonder how you wanted to do the sprite multiplexing. I couldn't find suitable solutions with correct values for a,x,y etc, but maybe I should have been more clever and also search for solutions in which you can multiplex with ASL $d001, or ROR $d001 or something, but that can't work: you need a 4 cycle instruction, so only sta/stx/sty/sax...
Previous - 1 | ... | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 - 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
Sentinel/Excess/TREX
DJ Space
Didi/Laxity
alwyz/udi
Apollyon/ALD
E$G/hOKUtO fOrcE
Guests online: 92
Top Demos
1 Next Level  (9.8)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 No Bounds  (9.6)
9 Bromance  (9.5)
10 Lunatico  (9.5)
Top onefile Demos
1 Layers  (9.6)
2 It's More Fun to Com..  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Rainbow Connection  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Booze Design  (9.3)
3 Censor Design  (9.3)
4 Crest  (9.3)
5 Performers  (9.3)
Top Musicians
1 Rob Hubbard  (9.7)
2 Stinsen  (9.7)
3 Jeroen Tel  (9.6)
4 Linus  (9.6)
5 MacMagix  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.082 sec.