Jump to content
Sign in to follow this  
Cybearg

Smooth Scrolling in bB?

Recommended Posts

So, on the Intellivision, smooth scrolling is hardware-supported because the on-screen tiles can have a pixel offset of 0-7. For the first 7 frames, the screen is just shifted by a pixel and the tiles are only actually scrolled on the 8th frame.

 

Could something similar be done in batariBasic? Essentially, the playfield would need to be delayed based on a variable of 0-3. On the 4th frame, the normal scroll command would be called and the offset would return to 0. This seems very doable, since it's basically just adding a delay to the screen, but then what may seem very simple on the surface is probably pretty complicated when you're racing the beam.

 

Any possibility of this? It would be great to have pfpixels smoothly scroll in. It would also likely require a slightly narrower visible screen, as you wouldn't want to see the pfpixels vanishing off the side of the screen and appearing on the other, so some pixels of the pfpixels would have to be masked on the edges.

 

For reference, I'm most interested in this with the context of horizontal scrolling, like for a platformer.

Edited by Cybearg

Share this post


Link to post
Share on other sites

The simple answer is no.

What if the playable screen area was narrowed, giving more time to set up the shift between scanlines?

Share this post


Link to post
Share on other sites

What if the playable screen area was narrowed, giving more time to set up the shift between scanlines?

 

I've seen some topics where assembly gurus have achieved something. I'd search in that section. The main challenge is to implement a kernel compatible with bB. batari and RevEng have other exciting things to do. The only person remotely qualified is you, dawg :)

http://atariage.com/forums/topic/224946-smooth-scrolling-playfield-i-think-ive-done-it/

http://atariage.com/forums/topic/218827-smooth-horizontal-scrolling-messing-with-wsync/

http://atariage.com/forums/topic/178574-smooth-horizontal-scrolling/

 

You could use my technique and DPC+ to do smooth horizontal scrolling without writing your own kernel. Consider it!

Share this post


Link to post
Share on other sites

Could something similar be done in batariBasic? Essentially, the playfield would need to be delayed based on a variable of 0-3. On the 4th frame, the normal scroll command would be called and the offset would return to 0. This seems very doable, since it's basically just adding a delay to the screen, but then what may seem very simple on the surface is probably pretty complicated when you're racing the beam.

 

 

The playfield was not designed to be shifted on the Atari, there isn't an offset register like you describe for the Intillevision.

 

That said, eshu did some experiments with RSYNC and VSYNC and was able to shift the screen.

  • Like 1

Share this post


Link to post
Share on other sites

Cyberg,

you can make 4-way scrolling look smoother with the large steps by scrolling fast - Loon's Rat Race game illustrates this well.

 

Another technique I learned from Jentsch was to do the fast scrolling in bursts which further adds to the illusion, I used this in KCMM; the scrolling is actually twice as coarse as bB (20 tile pixels accross instead of 40). Offsetting it with fine scrolling for the hi-res sprite characters between the fast scroll bursts complements the technique further still. You can leverage all of these techniques in bB! :)

 

Spice,

We can do very smooth vertical-only scrolling in asm 1 scanline at a time, is this possible with an existing bB kernel? If not it seems like it should be possible to create one.

 

Eshu's smooth horizontal scroll experiments are awesome and intriguing but I don't think they yield consistent results across console models and displays yet.

 

 

  • Like 1

Share this post


Link to post
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...