VSP Question

  • Follow


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

0
Reply jbones76 (17) 12/5/2005 2:02:20 AM

* "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
0
Reply Lars 12/5/2005 9:21:55 AM


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
0
Reply Jason 12/5/2005 11:00:15 AM

And what is VSP ???


--
    ___
   / __|__
  / /  |_/     Groetjes, Ruud
  \ \__|_\
   \___|       URL: Ruud.C64.org

0
Reply Ruud 12/5/2005 11:52:07 AM

* 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
0
Reply Lars 12/5/2005 12:21:56 PM

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
0
Reply Jason 12/6/2005 3:30:07 PM

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
0
Reply Jason 12/6/2005 3:30:36 PM

>>>>> "J" == Jason  <tmr@i.cosine.hate.org.spam.uk> writes:

J> Didn't we all... my first VSP was an FLD that i mis-timed! =-)

Heh, indeed - my first VSP was a broken FLI viewer :)

-- 
    ___          .     .  .         .       . +  .         .      o   
  _|___|_   +   .  +     .     +         .  Per Olofsson, arkadspelare
    o-o    .      .     .   o         +          MagerValp@cling.gu.se
     -       +            +    .     http://www.cling.gu.se/~cl3polof/
0
Reply MagerValp 12/6/2005 4:18:02 PM

* Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
|
| 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

Do you remember the name of this demo?

-- 
Lars Haugseth
0
Reply Lars 12/6/2005 5:07:11 PM

* 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
0
Reply Lars 12/6/2005 5:07:13 PM

"Lars Haugseth" <njus@larshaugseth.com> wrote in message news:87fyp6cgoi.fsf@onyxia.eiendomsnett.no...
>
> * Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
> |
> | 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
>
> Do you remember the name of this demo?
>
> --
> Lars Haugseth

VSP And IK+ by Meanteam




0
Reply Colin 12/6/2005 5:27:06 PM

* Lars Haugseth <njus@larshaugseth.com> wrote:
|
| * Jason <tmr@i.cosine.hate.org.spam.uk> wrote:
| |
| | 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
|
| Do you remember the name of this demo?

Forget it, I just found it:
http://noname.c64.org/csdb/release/?id=6176

Must have been the illogical name that made it so hard to find. ;-)

But who was the first to use it to create a scrolling bitmap several
screens wide?

First one I can think of is Mr. Cursor's "Double Density" intro:
http://noname.c64.org/csdb/release/?id=2681

But that's more than a year after VSP saw the light of day, so
I doubt that's the first one.

What was the first game to use it?

-- 
Lars Haugseth
0
Reply Lars 12/6/2005 5:37:11 PM

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
0
Reply Jason 12/7/2005 12:22:41 PM

* 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
0
Reply Lars 12/7/2005 1:22:21 PM

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
0
Reply Jason 12/7/2005 9:54:45 PM

* 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
0
Reply Lars 12/8/2005 11:07:33 AM

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
0
Reply Jason 12/8/2005 8:51:44 PM

16 Replies
102 Views

(page loaded in 0.176 seconds)

Similiar Articles:




7/25/2012 8:14:29 PM


Reply: