Variable Screen Position on the Commodore 64

I keep forgetting what this trick is called so even though I’ve mentioned it here before, I’m hoping this will cause it to stick.

Variable Screen Position, or VSP, is basically an abuse of the C64 hardware, a way to make its VIC-II graphics chip do something it’s really not meant to do, a way to get it to get its graphics data from memory in such a way that it does rest on the bedrock of 1K memory boundaries. Perhaps best known for its use in the 1993 classic Mayhem in Monsterland (video, 59 minutes), and more recently the homebrew C64 port of Super Mario Bros.

Without VSP, scrolling on the C64 beyond an eight pixel range is extremely processor intensive, and in fact cannot be done for the full screen in a video frame’s time on unmodified original hardware if moving color RAM is required too. Here is a page that describes it, and how to do it safely, that is, how to live with the memory corruption it causes on some hardware. I had mentioned before that it had to do with messing with the VIC-II memory refresh timing, but this page claims that it’s actually due to the VIC trying to access memory at a time when a read hasn’t stabilized.

Well anyway, here’s video of that C64 port of Super Mario Bros., so you can marvel as the system doing something that’s much easier on the NES.