Jump to content
IGNORED

VSCROL Abuse


glurk

Recommended Posts

I'm looking for a way to do something with VSCROL that I think might not be possible.  I want to have a horizontally scrolling line of "text" - no problem - but I was also wanting to use VSCROL to have it bob up-and-down and have it clipped at the bottom.  Like popping up behind a wall.  Image from 'De Re Atari':

pic6_2.gif.ab272da28d0e4bdb89d28a48a717648a.gif

 

In other words, to display the top part, above the horizontal separation in the image.  While horizontally scrolling at the same time.  I actually hope this is possible, because otherwise I'd have to generate a whole lot of bitmap chars.  Any ideas?

 

 

Link to comment
Share on other sites

What would be in that "wall part" ?

With vscroll you can move whole row of text up down. For bottom part if there's no gfx you can just turn of display and get empty section.
If you want gfx there, you just need to set vscroll back to default value. Just experiment and you'll figure it out.

 

But if you wanna make each letter move up down in different speed/position, you can't do it with vscroll. 

Link to comment
Share on other sites

I've been recently playing with VSCROL and I believe if you wat that effect there must be a line

below the line that you scroll preferably with it's own load address otherwise I believe as the line scrolls

up, the next line below it in memory will start to appear, so a blank line below in memory is needed.

 

The next line in the display can obviously be anywhere and have whatever text/graphic on it that you want.

 

Hope that makes sense :)

Have a look at this, not graphics, but it does have the effect I think you want

It's self booting

 

cityboot.atr

 

Link to comment
Share on other sites

That demo is the general effect, but much more complex than what I'm trying.  I think maybe it is possible, I just have to experiment some more.  Below my "clip-line wall" blank lines are OK.  I may have to use every other line in memory so ANTIC doesn't pull up the line below.  As I want to do several of these lines.  It's a lot going on, but if I can make VSCROL work, it's a simpler programming task than having multiple bitmaps for every single character! 

Link to comment
Share on other sites

There's a limit to what you can do with VSCROL tricks.

You can't change it in the course of a scanline to make text go up or down.

Generally VSCROL is used by Antic to determine where a text line starts or ends so it's not continuously sampled.

 

But you can do some nice tricks.  Never ending character (as used by JAC in one of his demos that produced a revolve effect to quickly fade between 2 hires pictures.

Shrunken text - you can make character lines shorter which can allow things like smaller text or multicolour pictures where the PF2/PF3 attribute can be changed more often.

Cheap revolving text effect - in conjunction with CHACT to make the lower characters upside-down you can do revolving tricks.

 

Link to comment
Share on other sites

The main limitation is that vertical scrolling can only be triggered from the display list. Two mode lines have to be affected, one starting the scroll region that has its starting row changed, and another ending the scroll region that has its ending row changed. In particular, you can't change both the starting and ending rows on the same mode line. The VSCROL register is sampled every row, though, and that can be used to have the starting and ending mode lines use different starting and ending rows.

 

The other trick is that vertical scrolling doesn't require the same mode to be used over the entire region. In this case, vertically scrolling a blank mode line (IR 0) followed by a character mode line (IR 2/4-5) may get you the desired effect. The catch is that mode lines always draw at least one row, so this will take 9 rows.

Link to comment
Share on other sites

I don't think you can have scrolling enabled on a blank line - the bits that enable scrolling are also used to describe how many blank lines to generate.  Though of course the blank can follow a scrolling region but if I remember rightly that just means the blank area will move up/down according to the VSCROL value.

Link to comment
Share on other sites

You could acheive it with multiple character sets but your display message would be limited to 128 characters, and you'd need a lot of character sets (probably 16)

 

But for something like a demo or loading/intro screen probably worth the work.  You could procedurally generate the data required.

Link to comment
Share on other sites

I seem to think I've seen the effect before in a demo.  Which one, where, or when, I've no idea.

 

Ultimately, for what I'm doing, it won't be text anyways, it will be redefined character set graphics.  But I'll still need (# animation frames) X (# vertical offsets).  And that can add up quickly.  If I can cram them all in 128 chars it would be easier...  I haven't done the math on it yet.  Still thinking about it.

 

Link to comment
Share on other sites

38 minutes ago, popmilo said:

This one was useful to me when I had issues with combining multiple regions on screen with different scrolling values:

 

https://www.playermissile.com/scrolling_tutorial/index.html

 

Yay!  Thanks, I've seen that before, but forgot about it.  Very good resource, and now I've got it working, minus some fine-tuning!  ?

  • Like 2
Link to comment
Share on other sites

If I underestand the description, it's simple VSCROL for one character mode line which points to memory with empty VRAM for one line followed with text data in second row which will be "pulled up" by increasing VSCROLL value. Or I just misunderstood the question ;)

Link to comment
Share on other sites

I think the desired effect is the H-scrolling line of text with the up/down sine wave effect.  Near example below though only one line of text and each character would have the same vertical origin for each pixel row... and the amplitude of the vertical wave would be much less.

 

 

 

Edited by Rybags
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...