Preamble:
I did some C64 programming back in the day, some of it was pretty cool too. I have the listing of a version of my 32 sprite multiplexing routines and I'm planning on typing it in (or OCR) and see if I can get it running again. It wasn't really using any amazing tricks but the dynamic zone calculation code was quite good for the time I think.
Some of my colleagues were doing things that were supposed to be impossible like putting sprites in the borders. I understood how that worked but I'd only heard rumours that there was a pretty cool way to do smooth horizontal scroll without needing to do a coarse scroll in character map and colour memory. Several of the games I did had pretty decent (I thought) scrolling routines but yes the big overhead was the shifting of the entire character map memory and colour memory every eighth shift as the hardware smooth scroll registers only shifted the screen eight pixels before they reset.
Now it turns out that the fancy smooth scrolling techniques operated on a similar fashion as the techniques to put sprites in the borders in that you tricked the simple hardware that was waiting for some condition like a particular line and then change what it was waiting for to something earlier after it had already past the earlier check. This meant the check never triggered and lets say a border was never enabled.
In the smooth scrolling case, if you use a similar trick to get the VIC 2 chip into thinking it's time to start a new line and you time it to happen, say in the middle of the screen you can force the entire screen to be shifted over by that amount. It's pretty cool since you can scroll a lot without having to have to copy every eighth scroll position. This is especially nice in bitmap mode. Apparently it was invented by a demo coder in 1987 here -> http://www.pouet.net...php?which=19753
How did I find out about this, well it's probably on the net somewhere but a nice fellow put together what appears to be definitive lecture on the C64 video hardware at some hacker conference or something. In any case he also covers the 6502 in quite a bit of detail partially based on the work of this Hungarian fellow (amazing) http://impulzus.sch.bme.hu/6502/6502/ although he regurgitates this again in a better and more complete 6502 talk that is tied in with the amazing http://visual6502.org/ which if you haven't seen the site or heard about this. shame shame shame.
The links to the talks are 6502 -> http://www.pagetable.com/?p=517
Ultimate C64 talk -> http://www.pagetable.com/?p=54
All these cool C64 tricks are explained in much more technical detail here for those who are interested -> https://sh.scs-trc.n...3.14.htm#3.14.6
Well it's too late to not be guilty of being sidetracked on the C64 and 6502 stuff but that stuff is very cool and the visual6502 guys have also reverse engineered and gate level simmed the TIA chip as well!
THE 2600 dollar Question.
Now finally to my question to the 2600 home-brew / tech community. Is there some equivalent trick maybe maybe maybe on the 2600 TIA that would allow some way of doing horizontal smooth scrolling of playfields? There was some discussion at one time on the Stella list but I only vaguely recall the discussion. I'm fairly un-optimistic that there will be a solution found that could be done software only but perhaps even something crazy that worked on a fancy cart would be an interesting but even that seems unlikely.
- AtariAge Forums
- → Viewing Profile: djmips
djmips
Member Since 27 Nov 2003OFFLINE Last Active Jan 16 2012 6:17 AM
Community Stats
- Group Members
- Active Posts 590 (0.2 per day)
- Profile Views 9,608
- Member Title Dragonstomper
- Age Age Unknown
- Birthday Birthday Unknown
-
Custom Status
scrolling
-
Gender
Not Telling
-
Location
Seattle
Contact Information
2
Neutral
User Tools
Latest Visitors
Topics I've Started
Smooth Horizontal Scrolling
Fri Mar 11, 2011 2:04 AM
- AtariAge Forums
- → Viewing Profile: djmips
- Guidelines




Send me a message
Find content
Display name history
