| |
Radiant
Registered: Sep 2004 Posts: 639 |
$d011 stretching
As far as I've understood, you can stretch the last line of a char by altering $d011, again brought to my attention by the discussion about opening the sideborder while having many sprites on a graphics screen. I've checked the VIC Article and some other sources, but haven't found anything on how or why this works. Doing a simple FLD causes the VIC-II to just do idle reads from $3fff instead of repeating the last line, right? Has it got anything to do with the linecrunching technique, i.e. aborting the badline and then repeatedly doing FLD after that? |
|
... 7 posts hidden. Click here to view all posts.... |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
Just incrementing $D011 so it never reaches a badline will cause FLD and not repeating of charlines. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
@Graham: Doesn't that depend on where you start, as well as the number of cycles used per line or something? I usually just trial'n'error my way until it produces the result I need. I haven't really studied any VIC article or cycle tables very thoroughly, but maybe it would be a good idea.
As far as I know, all of the following tricks are possible with the same technique - incrementing $d011's y-scroll bits every line to avoid badlines:
- FLD: Pushes the gfx down, and replaces it with ghost byte on the affected area.
- Bitmap stretching
- Color stretching, which doesn't affect the bitmap gfx
- Line crunching, which makes the updating of bitmap gfx jump 8 lines down for each rasterline
|
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
color stretching = fli ? |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: color stretching = fli ?
nono... color stretching as cruzer said avoids badlines, hence no new fetches hence same colors all the way down the bitmap. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
@Cruzer:
If the VIC never reaches a badline, it will simply start to display the ghostbyte. Everything else requires a badline condition at different cycles of the rasterline. |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
I also can't see how what Cruzer and JackAsser are proposing would work. I've never been able to repeat char rows without badlines nor seen anything about it, but perhaps it's possible? |
| |
HCL
Registered: Feb 2003 Posts: 728 |
The "color-stretch" effect is commonly used in lots of demos. Don't know if you're really avoiding the badline, but you definitely avoid wasting any cycles on it :). Plus you don't get any new colors (in bitmap mode) or chars (in char mode).
My memory is weak today, but i know i used it in "Smart girls.." in the greetings-logo-zoomer, but that's just one way of using it.. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
If you use simple FLI timing and delay the DMA so much that 0 DMA cycles are left, you can repeat one charline without any badline. Now you can simply switch the charset for different graphics. This way you can display 4 color gfx without badlines and you only need 2 $D011 accesses per charline. |
| |
HCL
Registered: Feb 2003 Posts: 728 |
Yeah, *burp* exactlywhatiwasgoingtosay.. ;) |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
So now RadiantX, go home and play with that $d011! and deliver a fantastic demo to us! :D |
Previous - 1 | 2 - Next |