Cybearg Posted November 14, 2014 Share Posted November 14, 2014 (edited) 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 November 14, 2014 by Cybearg Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted November 14, 2014 Share Posted November 14, 2014 The simple answer is no. I made some samples of what can be done instead here: http://atariage.com/forums/topic/195843-smooth-horizontal-scrolling-demo/ Quote Link to comment Share on other sites More sharing options...
Cybearg Posted November 14, 2014 Author Share Posted November 14, 2014 The simple answer is no. What if the playable screen area was narrowed, giving more time to set up the shift between scanlines? Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted November 14, 2014 Share Posted November 14, 2014 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! Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted November 14, 2014 Share Posted November 14, 2014 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. 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted November 14, 2014 Share Posted November 14, 2014 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.