Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The hardware scrolling in the C64 is pretty trivial, it can only shift the screen up to 7 pixels horizontally and vertically and mask the borders a bit. If you want to do scrolling you have to move the memory contents around which costs a lot of cpu time.

On a console you typically have a circular buffer and the screen is a movable window on it, so you only have to paint one row every time.



Atari 8-bit could fine scroll horizontal and vertical. In 1979.

https://www.atarimagazines.com/compute/issue67/338_1_Atari_F...


Which is the same circular buffer. Great if you can spare the memory, it uses twice as much if you want to scroll in one direction or four times if you want both directions.

On the C64 that’s 8k which is a lot if 16k is all you get (the video chip only has enough address lines to address 16k).


Still, it wasn't like you had to push all the pixels. You only moved 8x8 (or whatever it was) characters. So the C64 was pretty decent, actually. Also, of course you had to shift characters once every 8 pixels.

I was envious as hell on my MSX, which had no pixel shifting at all.


It’s very helpful and the implementation is ingenious but not very complicated.

Vertical scrolling changes the timing of the bad lines and horizontal scrolling the timing of the bitmap data fetched and this causes the image to come out at a different position.

There are a lot of creative tricks you can do with this though, especially with vertical scrolling.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: