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 > FLI explained, please...
2009-05-03 20:40
Dragnet

Registered: Nov 2006
Posts: 16
FLI explained, please...

Hola,

I'm looking for an easy-understandable-for-a-novice description, preferably with a *documented* example to go along with it, of how FLI actually works, including a description of how the colordata is stored (so i'll know how to manipulate it). My C64 skills are very novice/rusty indeed, so the more documentation, the better...

I have already been searching this forum and the C64 codebase for the sorts, but found what seems like a trillion different FLI formats (FLI, AFLI, XFLI, IFLI, MUFLI, etc) with different resolutions... But, I'm merely thinking of "normal fli" (if there is such a thing) capable of handling a width of 40 chars (and at least a height of 10 chars), no sprites involved, and 16 colours per char, running as part of the normal IRQ. Make sense?

Furthermore, a reference to a drawing-program that can save in the explained format, or at least in a format that can be converted into it, would be very nice!

That's not much to ask for, is it? :)

Any help will be greatly appreciated...!

Regards /Dragnet
 
... 40 posts hidden. Click here to view all posts....
 
2009-05-06 18:43
Frantic

Registered: Mar 2003
Posts: 1648
"Singlecolor" is for cp-mongos. It is called hires!
2009-05-06 18:52
Krill

Registered: Apr 2002
Posts: 2980
Ok, and while we're at choosing some sane names for C64 stuff, let's fight weirdo terms like flexible line distance, flexible pixel position, IFFL (sorry, too lazy to look up what that crud means), crunching, etc.pp. :D
2009-05-06 19:12
Dragnet

Registered: Nov 2006
Posts: 16
Quote: in singlecolor you have more than 1 color+the background. thats only true for one char cell. if on irc we would chat about coding, and you would say "singlecolor" I would surely ask back "you mean hires?". but if I would say "hires chars" or "hires bitmap" you wouldnt need to ask back what do I mean. :)

anyway use it if you like it. :)

btw still dont get what do you mean with "VIC only allows Hires together with SingleColor" ? that shows how confusing and misleading is this term. There's Hires and Multicolor, Singlecolor is confusing. You use 2 terms on the same thing in one sentence and claim one of them is prequisite of the other...



Surprise, surprise - I'm still confused.

I understand the terms listed above, e.g. hires vs. multicoler, bitmap vs chars, but do not understand how hires goes together with FLI!? And I still have no clue as to what ECM is, but nevermind...

Anyways, if I read Grahams FLI code correctly from codebase64 (see link somewhere above), colours stored in $d800 are fixed, set on init. Does this (per char) correspond to the background colour or the individual colour per char? Point is, if its the individual colour per char, then how can the FLI technique offer more colours per char, eventhough we split per rasterline? Hence, it must be what is referred to as the background colour of the char, and additional colour ram (for hires bitmap, must be what corresponds to $4000 in Grahams example code) is what constitutes individual char colours. Ergo, this means that hires FLI gives you a total of 1+8 colours per char (plus $d020 value), allowing for two colours per rasterline per char, where one of the two is always the same for the entire char!? Is this correct, or did I just make an arse of myself as usual...? :)

Also, my initial question concerning the colour ram was actually more on how the colour ram is laid out in memory (not the fixed $d800 colours) for "normal" FLI (lores multicolour!). Say, if the colourram starts at $4000, then what is the memory location of the colour ram for the first line in the first char (ok, $4000 I guess for that one... hehe), for the 2nd line in the first char, etc, then for the first line in the second char, etc. Point is, the exact locations must naturally be known to manipulate the colours of a given char. I know this information can probably be deduced from the values stored in $d011 and $d018 in Grahams example, but damn if I know how...

Regards /Dragnet
2009-05-06 19:29
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: Surprise, surprise - I'm still confused.

I understand the terms listed above, e.g. hires vs. multicoler, bitmap vs chars, but do not understand how hires goes together with FLI!? And I still have no clue as to what ECM is, but nevermind...

Anyways, if I read Grahams FLI code correctly from codebase64 (see link somewhere above), colours stored in $d800 are fixed, set on init. Does this (per char) correspond to the background colour or the individual colour per char? Point is, if its the individual colour per char, then how can the FLI technique offer more colours per char, eventhough we split per rasterline? Hence, it must be what is referred to as the background colour of the char, and additional colour ram (for hires bitmap, must be what corresponds to $4000 in Grahams example code) is what constitutes individual char colours. Ergo, this means that hires FLI gives you a total of 1+8 colours per char (plus $d020 value), allowing for two colours per rasterline per char, where one of the two is always the same for the entire char!? Is this correct, or did I just make an arse of myself as usual...? :)

Also, my initial question concerning the colour ram was actually more on how the colour ram is laid out in memory (not the fixed $d800 colours) for "normal" FLI (lores multicolour!). Say, if the colourram starts at $4000, then what is the memory location of the colour ram for the first line in the first char (ok, $4000 I guess for that one... hehe), for the 2nd line in the first char, etc, then for the first line in the second char, etc. Point is, the exact locations must naturally be known to manipulate the colours of a given char. I know this information can probably be deduced from the values stored in $d011 and $d018 in Grahams example, but damn if I know how...

Regards /Dragnet


Hires FLI, more known as AFLI gives you two unique colors per char and raster line.

Normal FLI gives you one common background color. the $d800 colors per char. and two extra unique colors per char and raster line.

FLI simply fetches new color data from screen memory each rasterline. So the memory layout is simple, each color-screen corresponds to the current raster line within a char. Other than that the screens are access like normal.

screen-index: y & 7
screen-pos: (x/8)+(y/8)*40

0<=x<=319 0<=y<=199


2009-05-06 20:21
Oswald

Registered: Apr 2002
Posts: 5094
ok, FLI explained:

make sure you understand how multicolor/hires bitmaps works:

http://codebase64.org/doku.php?id=base:built_in_screen_modes

multicolor fli:

same as multicolor bitmap, except:

you change the location of the screen memory on every rasterline. using 8 screen memory to have a unique scr mem for each 8 lines of each chars.

hires fli:

same as hires bitmap, except:

see above.

naturally $d021 and & d800 doesnt come to play in here. (see the hires bitmap on the link again if you dont get this)
2009-05-06 20:28
MagerValp

Registered: Dec 2001
Posts: 1078
Quote: Ok, and while we're at choosing some sane names for C64 stuff, let's fight weirdo terms like flexible line distance, flexible pixel position, IFFL (sorry, too lazy to look up what that crud means), crunching, etc.pp. :D

Flexible Line Distance makes perfect sense, IMHO. FPP not so much, and IFFL doesn't even really mean anything :)
2009-05-06 20:29
Dragnet

Registered: Nov 2006
Posts: 16
Hola,

I get it... Finally... :)

What got me confused, I guess, was that I had forgotten that the screen can reside in numerous memory locations, e.g. $0400 or $4000, which makes the concept of FLI a bit hard to grasp concerning memory layout. Hence, the memory location (layout) *is* the screen colour data, not some arbitrary format stored to the screen...

Thanks for all the replies...!

Regards /Dragnet

2009-05-06 22:08
Skate

Registered: Jul 2003
Posts: 494
About naming the graphic modes, why don't we give animal names to graphic modes? We wouldn't have any problems by choosing names like hires/single color/almost square (makes sense actually ;)) gfx mode. I vote on Kangaroo and Koala :D

Koala
Kangaroo
Koala Char
Kangaroo Char
<write any Australian animal name here for ECM> Char

Case is closed...
2009-05-07 00:01
Ksubi
Account closed

Registered: Nov 2007
Posts: 87
ECM=Echidna Character Mode :)

2009-05-07 08:50
Jetboy

Registered: Jul 2006
Posts: 337
Quote: Flexible Line Distance makes perfect sense, IMHO. FPP not so much, and IFFL doesn't even really mean anything :)

IFFL means Interleaved File Fast Loader
Previous - 1 | 2 | 3 | 4 | 5 - 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
Smasher/F4CG
TheRyk/MYD!
Laddh
Acidchild/Padua
Holy Moses/Role
zscs
Mike
rambo/Therapy/ Resou..
LKP/CFN
𝘁𝗡𝗚/FairLight
grasstust/Hoaxers
Steve/Laser, Zenith,..
Paulko64
Deev/Onslaught
Guests online: 123
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 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (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 Censor Design  (9.3)
5 Triad  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

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