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 > 3rd Line FLI
2018-10-24 11:14
Cruzer

Registered: Dec 2001
Posts: 1048
3rd Line FLI

Is it possible without getting either linecrunch or FLD for each new character line?
2018-10-24 11:37
Krill

Registered: Apr 2002
Posts: 2980
Quoting Cruzer
Is it possible without getting either linecrunch or FLD for each new character line?
Not sure if i understand, but you want to have new colours (or chars) for every 3rd rasterline?

Pretty sure that's possible. But i have a hunch you just want to have a regular badline (no timing-exact $d011 manipulation required) whenever one of those "FLI lines" coincides with the badline (0th rasterline) of a new char row.
2018-10-24 11:52
Cruzer

Registered: Dec 2001
Posts: 1048
Quoting Krill
Not sure if i understand, but you want to have new colours (or chars) for every 3rd rasterline?
Correct.

Quoting Krill
i have a hunch you just want to have a regular badline (no timing-exact $d011 manipulation required) whenever one of those "FLI lines" coincides with the badline (0th rasterline) of a new char row.
That's the least of my concerns. I have just experimented with doing timing-exact $d011 manipulation on every 3rd line, and this resulted in linecrunch for every char. So you first have a char row that's 8 pixels tall, then one that's 1 pixel tall, and so on.

Then I tried setting the d011 value that caused the linecrunch earlier, and that changed the linecrunch to FLD.

So ideally I would like 8 pixel high char rows with no gaps.
2018-10-24 11:59
Krill

Registered: Apr 2002
Posts: 2980
But you just have to set a $d011 value such that (($d011 & $07 ) == ($d012 & $07)) is true, in other words, that the lowmost 3 bits of $d011 and $d012 are equal. Then make sure that this happens in the correct cycle (such that the first 3 chars of a char row show the FLI bug).
2018-10-24 12:34
Oswald

Registered: Apr 2002
Posts: 5094
maybe you do the fli on bad line too ?
2018-10-24 12:53
Krill

Registered: Apr 2002
Posts: 2980
Quoting Oswald
maybe you do the fli on bad line too ?
This is why i said, "But i have a hunch you just want to have a regular badline (no timing-exact $d011 manipulation required) whenever one of those "FLI lines" coincides with the badline (0th rasterline) of a new char row."

However, in order not to get into FLD territory, you have to make sure that you never leave a char row and go into idle mode ($3fff et al.) - but this should really not happen if you set $d011 every 3 rasterlines to match the lowmost 3 bits of $d012.

Oh, and of course with setting it to the next badline (after FLI has been triggered) whenever that one would be the next "FLI line".
2018-10-24 15:31
JackAsser

Registered: Jun 2002
Posts: 2014
This is most definitely possible. Just make sure you reset $d011 after you've done the FLI otherwise you will in practice shorten the character line or cause FLD. Just like when you do f.e. 4x4 FLI by triggering evert 8th line in between normal bad lines. If you would forget to reset $d011 there you would create gaps and crunches.

(See LFT's eminent timing PDF)
2018-10-24 15:48
Krill

Registered: Apr 2002
Posts: 2980
Yes, that "resetting" is setting $d011 so that the next badline is the next "FLI" line, which must be done whenever the current FLI line is rasterline 5 of a char row (next "FLI" line at rasterline 0 of next char row).
2018-10-24 16:59
ChristopherJam

Registered: Aug 2004
Posts: 1409
All of the above, but IIRC you can also avoid the "normal" badlines by only setting d011 to match raster just after the DMA would have completed (it's kind of like a very late FLI line)

This way you only lose 40 cycles to DMA on 8 lines out of 24, instead of 10 lines out of 24, and also only do the fetches you actually want.
2018-10-24 17:07
Krill

Registered: Apr 2002
Posts: 2980
Yes, that's extending the FLI bug area to more than 3 chars if you need the cycles and don't mind a smaller effect area. :)
2018-10-24 17:36
ChristopherJam

Registered: Aug 2004
Posts: 1409
Yes, you can extend it all the way to 43, and just inherit whatever screen values were there from the previous line.

I just can't remember how that prevents VIC-II from dropping into idle mode at the end of line 7 - I guess that only happens if the badline condition is false?

VIC Artikel or LFT's timing chart would elucidate I'm sure.
2018-10-24 18:05
Dano

Registered: Jul 2004
Posts: 234
isn't that something like the rastermover from uncensored right before the rotating rasters?

that one sets new colors into the screen of the bitmap, then forces a $d011 after 6 lines.

but you with that you cannot force new bitmap data.
2018-10-24 18:42
ChristopherJam

Registered: Aug 2004
Posts: 1409
I believe the aim here is to still have a new row every 8 lines, so you would indeed be able to display an entire bitmap.

Thinking about DMA timing a bit more, should be able to do something like this every 24 lines:

Normal char fetch on line 0
FLI fetches on lines 3,6,7,9,12,15,18,21

The fetch on line 7 can happen either at the start or the end of that line (23 or 63 cycles after the line 6 fetch), depending on whether you have useful things to do for the intermediate 40 cycles.

The FLI fetch on line 15 should already be forcing the follow through for line 16.

so, only 7 stable interrupts every 24 lines. (the normal fetch for line 0 of the next group can be queued just after the FLI fetch of line 21)
2018-10-24 19:29
Krill

Registered: Apr 2002
Posts: 2980
Quoting ChristopherJam
Yes, you can extend it all the way to 43, and just inherit whatever screen values were there from the previous line.

I just can't remember how that prevents VIC-II from dropping into idle mode at the end of line 7 - I guess that only happens if the badline condition is false?

VIC Artikel or LFT's timing chart would elucidate I'm sure.
That would not be delayed DMA* but the case of "repeated char row", i think. And yeah, it's covered in VIC Artikel, IIRC.

* Rather "tardy DMA", actually, as whatever DMA hasn't happened at that point will not happen, but still the rest corresponding to right (ahead) of the current beam X position will. "Delayed DMA" is, for some reason, the canonical term for what's otherwise called VSP, i.e., hardware X hard-scrolling.
2018-10-24 19:46
Digger

Registered: Mar 2005
Posts: 437
FLI every 3rd line... The question is: why would you do that? ;-D
2018-10-24 21:12
Krill

Registered: Apr 2002
Posts: 2980
Cruzer magic!
2018-10-25 13:19
HCL

Registered: Feb 2003
Posts: 728
..are you planning on displaying gfx (picture..) with that mode, or "just" doing effects with the color-blocks? The latter is probably easier since it allows for repeating the bitmap..
2018-10-25 15:47
Krill

Registered: Apr 2002
Posts: 2980
My bet is on a new iteration of something something PLASMA using char mode and new colours and chars for each new 3-scanline row. Or something. :)
2018-10-25 16:20
Digger

Registered: Mar 2005
Posts: 437
Hope it’s not the same idea that I am doing with every 2nd line FLI ;-)
2018-10-25 16:23
chatGPZ

Registered: Dec 2001
Posts: 11386
if in doubt, you can always use it to scroll a giant bitmap, slowly.
2018-10-25 16:25
Krill

Registered: Apr 2002
Posts: 2980
Bitmap crawl compo in slightly more than a week! \:D/
2018-10-25 17:01
ChristopherJam

Registered: Aug 2004
Posts: 1409
First time I tried to do 2nd line FLI was a bit of a headfuck - I had no idea why VIC was dropping into idle mode...
2018-10-25 18:53
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: First time I tried to do 2nd line FLI was a bit of a headfuck - I had no idea why VIC was dropping into idle mode...

If RC==7 && d011&7!=d012&7 && cycle==58 => idle

By manipulating d011 after the DMA fetch but before c58 you break the condition
2018-10-27 07:28
Hein

Registered: Apr 2004
Posts: 954
Quote: Bitmap crawl compo in slightly more than a week! \:D/

If all bitmaps start crawling now, that time they'll be done. Thank you. :)
2018-10-29 13:33
HCL

Registered: Feb 2003
Posts: 728
Ok, i have a 3:rd line FLI-routine now that seems working. What next?!
2018-10-29 13:34
chatGPZ

Registered: Dec 2001
Posts: 11386
scroll bitmaps, obviously
2018-10-29 14:21
Trash

Registered: Jan 2002
Posts: 122
Quote: Ok, i have a 3:rd line FLI-routine now that seems working. What next?!

since Cruzer started the thread I guess you have to do a dypp scroller, a clever multicolortwister or possibly a plasma... If anyone else had started the thread a bitmapscroller would have been expected...
2018-10-29 17:49
Hein

Registered: Apr 2004
Posts: 954
Quote: Ok, i have a 3:rd line FLI-routine now that seems working. What next?!

Brand it 'Real Trifli®' (Tri Fli or other graphic modes...).
2018-10-29 21:20
chatGPZ

Registered: Dec 2001
Posts: 11386
oh yeah! interlace flicker while you scroll!
2018-10-29 21:47
ChristopherJam

Registered: Aug 2004
Posts: 1409
Well duh and/or hello.

If it's not scrolling a non-integral number of pixels per frame, then it's not interlaced.

ps, JackAsser - yes, I got there eventually :)
2018-10-29 21:49
chatGPZ

Registered: Dec 2001
Posts: 11386
scroll at 1 pixel every 2nd frame! YEAH!
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
Flashback
pcollins/Quantum
LightSide
Shake/Role
HOL2001/Quantum
Guests online: 97
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Webmasters
1 Slaygon  (9.6)
2 Perff  (9.6)
3 Sabbi  (9.5)
4 Morpheus  (9.4)
5 CreaMD  (9.1)

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