| |
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.... |
| |
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. |
| |
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) |
| |
Puterman Account closed
Registered: Jan 2002 Posts: 188 |
For more advanced wanking techniques, please consult the ever popular Wank Article. |
| |
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? |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
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. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
ofcourse csdb was "wise" enough to remove the necessary spaces.. argh.. once again:
dec d011
inc d011
____\/____
6789012345 |
| |
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? |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
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. |
| |
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! |
| |
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 |