VSP Question [message #146063] |
Sun, 04 December 2005 21:02  |
jbones
Messages: 42 Registered: February 2012
Karma: 0
|
Member |
|
|
In the early 90's I recall implementing VSP, but now am a bit fuzzy on
the details. I know I can shift the entire screen whole columns to the
right using $D011, but this only allows a bitmap to swing through the
right border. I don't recall how to make a bitmap appear to swing
through the left border. Was it by duplicating the bitmap one row
higher and shifting it so far to the right that it wrapped around the
left? Any input is appreciated. Thanks.
Codey/2D
|
|
|
Re: VSP Question [message #146221 is a reply to message #146063] |
Mon, 05 December 2005 04:21   |
Lars Haugseth
Messages: 231 Registered: April 2012
Karma: 0
|
Senior Member |
|
|
* "jbones" <jbones76@gmail.com> wrote:
|
| In the early 90's I recall implementing VSP, but now am a bit fuzzy on
| the details. I know I can shift the entire screen whole columns to the
| right using $D011, but this only allows a bitmap to swing through the
| right border. I don't recall how to make a bitmap appear to swing
| through the left border. Was it by duplicating the bitmap one row
| higher and shifting it so far to the right that it wrapped around the
| left? Any input is appreciated. Thanks.
The bitmap (or characters) will never move into the actual side borders.
You will have to use sprites for that.
When you use the $D011 trick to delay the drawing n cycles and thus move
the whole bitmap n chars to the right, the part of the picture that dis-
appears on the right will appear on the left side of the next raster line.
If you want to make a continuous scroller, you have to compensate for this
and also use double buffering if you don't want to redraw the whole bitmap
when you get to the point where you have to reset the $D011 delay.
--
Lars Haugseth
|
|
|
Re: VSP Question [message #146237 is a reply to message #146221] |
Mon, 05 December 2005 06:00   |
Jason
Messages: 148 Registered: March 2008
Karma: 0
|
Senior Member |
|
|
Lars Haugseth wrote:
> When you use the $D011 trick to delay the drawing n cycles and thus move
> the whole bitmap n chars to the right, the part of the picture that dis-
> appears on the right will appear on the left side of the next raster line.
Next character line, not the next rasterline.
> If you want to make a continuous scroller, you have to compensate for this
> and also use double buffering if you don't want to redraw the whole bitmap
> when you get to the point where you have to reset the $D011 delay.
Or use a linecruncher to offset the screen so the VSP can carry on where it
left off, although that does add limitations to how the scroller can work.
--
______________________________ _________________________________
/ /\/ ___/ / ___/ / / ___/\
/ Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/
/ ICQ: 44373717 IRC: TMR_C0S / / /__/ / / / / / / / / /\
/_____________________________/ /_____/_____/_____/__/__/__/_____/ /
\_____________________________\/\_____\_____\_____\__\__\__\ _____\/TMR
|
|
|
|
Re: VSP Question [message #146247 is a reply to message #146237] |
Mon, 05 December 2005 07:21   |
Lars Haugseth
Messages: 231 Registered: April 2012
Karma: 0
|
Senior Member |
|
|
* Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
|
| Lars Haugseth wrote:
| > When you use the $D011 trick to delay the drawing n cycles and thus move
| > the whole bitmap n chars to the right, the part of the picture that dis-
| > appears on the right will appear on the left side of the next raster line.
|
| Next character line, not the next rasterline.
I just dug up some 15 year old code to check, and you're right. Looks like
I've forgotten most of how this thing works. Not that I ever knew exactly
how -- stuff like this was mostly done by experimentation back then. :)
--
Lars Haugseth
|
|
|
Re: VSP Question [message #146668 is a reply to message #146244] |
Tue, 06 December 2005 10:30   |
Jason
Messages: 148 Registered: March 2008
Karma: 0
|
Senior Member |
|
|
Ruud.Baltissen@abp.nl wrote:
> And what is VSP ???
VPS is Variable Screen Positioning, sometimes referred to as DMA delay, a
"feature" of the vertical smooth scroll register that was first used in a
demo by JCB/Meanteam and used for the scrolling in Creatures and Mayhem In
Monsterland (as well as countless demos) since. The short version is that
it makes a badline wait before starting, causing the screen to offset to the
right.
--
______________________________ _________________________________
/ /\/ ___/ / ___/ / / ___/\
/ Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/
/ ICQ: 44373717 IRC: TMR{C0S} / / /__/ / / / / / / / / /\
/_____________________________/ /_____/_____/_____/__/__/__/_____/ /
\_____________________________\/\_____\_____\_____\__\__\__\ _____\/TMR
|
|
|
Re: VSP Question [message #146670 is a reply to message #146247] |
Tue, 06 December 2005 10:30   |
Jason
Messages: 148 Registered: March 2008
Karma: 0
|
Senior Member |
|
|
Lars Haugseth wrote:
> I just dug up some 15 year old code to check, and you're right. Looks like
> I've forgotten most of how this thing works. Not that I ever knew exactly
> how -- stuff like this was mostly done by experimentation back then. :)
Didn't we all... my first VSP was an FLD that i mis-timed! =-)
--
______________________________ _________________________________
/ /\/ ___/ / ___/ / / ___/\
/ Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/
/ ICQ: 44373717 IRC: TMR{C0S} / / /__/ / / / / / / / / /\
/_____________________________/ /_____/_____/_____/__/__/__/_____/ /
\_____________________________\/\_____\_____\_____\__\__\__\ _____\/TMR
|
|
|
|
|
Re: VSP Question [message #146683 is a reply to message #146670] |
Tue, 06 December 2005 12:07   |
Lars Haugseth
Messages: 231 Registered: April 2012
Karma: 0
|
Senior Member |
|
|
* Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
|
| Lars Haugseth wrote:
| > I just dug up some 15 year old code to check, and you're right. Looks like
| > I've forgotten most of how this thing works. Not that I ever knew exactly
| > how -- stuff like this was mostly done by experimentation back then. :)
|
| Didn't we all... my first VSP was an FLD that i mis-timed! =-)
Sounds very familiar. Remember than HUH!?-feeling? Those were the days...
--
Lars Haugseth
|
|
|
|
|
Re: VSP Question [message #146910 is a reply to message #146688] |
Wed, 07 December 2005 07:22   |
Jason
Messages: 148 Registered: March 2008
Karma: 0
|
Senior Member |
|
|
Lars Haugseth wrote:
> But that's more than a year after VSP saw the light of day, so
> I doubt that's the first one.
"Double Density" uses a linecruncher and VSP rather than just a VSP, to be
honest i can't think of any demos that do more than one screen just using a
VSP without some form of linecrunch and there *was* a gap between the
Meanteam demo coming out and VSP really taking off too... i think Horizon's
"Bonanza" probably qualify as one of the very first linecrunch/VSP routines?
http://noname.c64.org/csdb/release/?id=3391
> What was the first game to use it?
To my knowledge (which i'll happily admit is somewhat shaky at the best of
times =-), the first mainstream game was "Creatures", although there
might've been something before that which wasn't released in the U.K. so i
missed it. i suspect that the first game to use a linecrunch was earlier but
wasn't actually completed; "Touchlight" by Cascade wasn't released because
they discovered the problem with that kind of scrolling and some C64s before
it's completion, but the very nice-looking previews of "Touchlight" are at
http://www.gtw64.co.uk/
--
______________________________ _________________________________
/ /\/ ___/ / ___/ / / ___/\
/ Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/
/ ICQ: 44373717 IRC: TMR{C0S} / / /__/ / / / / / / / / /\
/_____________________________/ /_____/_____/_____/__/__/__/_____/ /
\_____________________________\/\_____\_____\_____\__\__\__\ _____\/TMR
|
|
|
Re: VSP Question [message #146913 is a reply to message #146910] |
Wed, 07 December 2005 08:22   |
Lars Haugseth
Messages: 231 Registered: April 2012
Karma: 0
|
Senior Member |
|
|
* Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
|
| Lars Haugseth wrote:
| > But that's more than a year after VSP saw the light of day, so
| > I doubt that's the first one.
|
| "Double Density" uses a linecruncher and VSP rather than just a VSP,
| to be honest i can't think of any demos that do more than one screen
| just using a VSP without some form of linecrunch and there *was* a gap
Isn't it sufficient just using VSP and then redraw the part of the bitmap
being moved off one side and into the other?
| between the Meanteam demo coming out and VSP really taking off
| too... i think Horizon's "Bonanza" probably qualify as one of the very
| first linecrunch/VSP routines?
|
| http://noname.c64.org/csdb/release/?id=3391
Ah, yes I remember that one now that you mention it.
| > What was the first game to use it?
|
| To my knowledge (which i'll happily admit is somewhat shaky at the
| best of times =-), the first mainstream game was "Creatures", although
How about Dan Dare III? Not sure if it predates Creatures, though. They
were both released in 1990.
| there might've been something before that which wasn't released in the
| U.K. so i missed it. i suspect that the first game to use a linecrunch
| was earlier but wasn't actually completed; "Touchlight" by Cascade
| wasn't released because they discovered the problem with that kind of
| scrolling and some C64s before it's completion, but the very
| nice-looking previews of "Touchlight" are at http://www.gtw64.co.uk/
Nice!
--
Lars Haugseth
|
|
|
Re: VSP Question [message #147048 is a reply to message #146913] |
Wed, 07 December 2005 16:54   |
Jason
Messages: 148 Registered: March 2008
Karma: 0
|
Senior Member |
|
|
Lars Haugseth wrote:
> * Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
> | "Double Density" uses a linecruncher and VSP rather than just a VSP,
> | to be honest i can't think of any demos that do more than one screen
> | just using a VSP without some form of linecrunch and there *was* a gap
>
> Isn't it sufficient just using VSP and then redraw the part of the bitmap
> being moved off one side and into the other?
Yes, if you're only planning on moving a single screen horizontally it's
fine; as you say, just write in a couple of hundred bytes of bitmap at the
point that's just been pushed under the border (since hardware smooth scroll
will be on). But anything past one screen distance either needs the VSP to
snap back after each screen characters, a double buffering system over two
bitmaps (which can be done as long as they're both kept in sync) and a large
overhead whenever the buffer changes to shift the colour RAM around or a
linecruncher to increase the travel distance.
> How about Dan Dare III? Not sure if it predates Creatures, though. They
> were both released in 1990.
i'd have to look through the code on "Dan Dare III" but off the top of my
head i don't remember it being a VSP scroller, "just" about 18 lines of char
screen with colour scroll and incredibly well coded, especially that play
area to status mask switch.
--
______________________________ _________________________________
/ /\/ ___/ / ___/ / / ___/\
/ Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/
/ ICQ: 44373717 IRC: TMR{C0S} / / /__/ / / / / / / / / /\
/_____________________________/ /_____/_____/_____/__/__/__/_____/ /
\_____________________________\/\_____\_____\_____\__\__\__\ _____\/TMR
|
|
|
Re: VSP Question [message #147093 is a reply to message #147048] |
Thu, 08 December 2005 06:07   |
Lars Haugseth
Messages: 231 Registered: April 2012
Karma: 0
|
Senior Member |
|
|
* Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
|
| > How about Dan Dare III? Not sure if it predates Creatures, though. They
| > were both released in 1990.
|
| i'd have to look through the code on "Dan Dare III" but off the top of
| my head i don't remember it being a VSP scroller, "just" about 18
| lines of char screen with colour scroll and incredibly well coded,
| especially that play area to status mask switch.
On closer inspection you're right, it's character based. Black background,
white and brown as common colors. They've done a very good job with those
graphics, I'd say.
I guess that switch would have been hard to achieve had they been using
VSP and linecrunching.
--
Lars Haugseth
|
|
|
Re: VSP Question [message #147123 is a reply to message #147093] |
Thu, 08 December 2005 15:51  |
Jason
Messages: 148 Registered: March 2008
Karma: 0
|
Senior Member |
|
|
Lars Haugseth wrote:
> On closer inspection you're right, it's character based. Black background,
> white and brown as common colors. They've done a very good job with those
> graphics, I'd say.
Yup, a *wonderful* job.
> I guess that switch would have been hard to achieve had they been using
> VSP and linecrunching.
well, the big give-away with line crunching is that large black mask at the
top of the screen (where "Double Density" has the 1x1 font text, that's all
sprites) so it's a no-no for a starter - and anything like that status panel
isn't possible after a split because the screen is heavily offset. For VSP
it's possible to do a second VSP that corrects the difference but linecrunch
is a lot harder to counter.
--
______________________________ _________________________________
/ /\/ ___/ / ___/ / / ___/\
/ Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/
/ ICQ: 44373717 IRC: TMR{C0S} / / /__/ / / / / / / / / /\
/_____________________________/ /_____/_____/_____/__/__/__/_____/ /
\_____________________________\/\_____\_____\_____\__\__\__\ _____\/TMR
|
|
|