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 > D011 scrolling
2004-06-08 00:17
SIDWAVE
Account closed

Registered: Apr 2002
Posts: 2238
D011 scrolling

Hi,

What is the best rasterline to flip the D011, when
scrolling the screen ?

No FLD!

Plain old scrolling ?

I have timing error, so the text jumps a bit.
Scroll the colorram too in same scan, takes a lot
of time..

Thanks for ANY help!!
 
... 34 posts hidden. Click here to view all posts....
 
2004-06-10 14:17
Stingray
Account closed

Registered: Feb 2003
Posts: 117
Thanks, had a quick read of it, sounds pretty complex to. If the screen can only wrap around I can't see how it could have been used in a game like Mayhem, unless there is a way of changing only the bytes in the first or last column. Even if it's not the trick they used it's still pretty freaky.
2004-06-10 14:59
CyberBrain
Administrator

Posts: 392
DMA DELAY has often been used in the good old wanker-effect. You know... Where you move a logo left/right by a sinus movement. It's called wanker-effect because the movement looks like.. err... wanking. (if you use double-sinus it looks like drunk wanking)
2004-06-10 18:56
Puterman
Account closed

Registered: Jan 2002
Posts: 188
For more advanced wanking techniques, please consult the ever popular Wank Article.
2004-06-11 07:43
AmiDog

Registered: Mar 2003
Posts: 97
Well, not that I know what I'm talking about but anyway. I assume that by using DMA delay, one only need to copy 25 bytes rather than 1000 when scrolling a "full column"? I.e. replace the column which wraps?
2004-06-11 08:09
Oswald

Registered: Apr 2002
Posts: 5022
stingray: the explanation is complex, the theory codewise is simple: do a dec d011 inc d011 on the last top border rasterline in the middle of the screen with a straight irq, and you will see how it works.

or to explain it in another way:

lets say the screen has just 10 columns:

default state:

0123456789

dma delay:

dec d011
inc d011
\/
6789012345

to update the screen you just change the columns that are actually at the leftmost, rightmost on the screen.
amidog: right.
2004-06-11 08:13
Oswald

Registered: Apr 2002
Posts: 5022
ofcourse csdb was "wise" enough to remove the necessary spaces.. argh.. once again:

dec d011
inc d011
____\/____
6789012345
2004-06-11 12:40
Stingray
Account closed

Registered: Feb 2003
Posts: 117
Thanks again Oswald. I get the wrapping part, thats not the part i'm having trouble understanding. What I wont to know is how you change just the new column so you arn't just continuesly wrapping round or is that just not possible?
2004-06-20 10:42
Krill

Registered: Apr 2002
Posts: 2851
Quote: Thanks again Oswald. I get the wrapping part, thats not the part i'm having trouble understanding. What I wont to know is how you change just the new column so you arn't just continuesly wrapping round or is that just not possible?

you scroll say one char left and have to put a new column in to the right. that can be at any offset of $00-$27 into a char line, depending on the current x-offset. so you just need to get you x hardscroll value, add some constant value and do mod 40 on it.
2004-06-22 23:16
White Flame

Registered: Sep 2002
Posts: 136
I'm still confused on how to use DMA delay for >80 char wide screens (ie, when you've already delayed 40 cycles and need to go more). I don't need it for anything that I'm currently writing, but I tried to mess with it and got stumped, besides either doing a full redraw every 40 chars, or doing multiple delay lines to line things up (which loses more and more display lines). How wide do levels max out at in games like Mayhem in Monsterland? It looks like it's a flush 24 chars tall, so giving 8 lines of delay, I'm guessing 40+40*8=360. But IIRC, some levels are like 13 screens wide or more... bleargh!
2004-06-23 06:43
AmiDog

Registered: Mar 2003
Posts: 97
Well, look at this column display (read as 2 number values from top to bottom):

start:

00...34
12...90

rotated a lot left:

3400...
9012...

one more:

400...3
012...9

one more:

00...34
12...90

and what do we have? The start position!

So, when you have scrolled the screen 40 chars, you are back at the start position and have changed all columns, so I assume you just start over, i.e. set DMA delay to zero and repeat the procedure... Not that I know for sure, since I've not tried anything like this myself...
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
Clayboy
grip
Rhythm/G★P
Mythus/Delysid
Alakran_64
Guests online: 117
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 Antitrack  (9.8)
3 OTD  (9.8)
4 S!R  (9.7)
5 Faayd  (9.7)

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