How do I show sprites in the border on C64?

Viewed 8376

I've seen cool C64 demos showing sprites in the border area of the screen. It shouldn't be possible; I think they managed to fool the graphics chip somehow. How exactly did they do it?

6 Answers

As it was already said, you have to fool the VIC to think that the border already started, but the reason why I write this is because the top answer is a little bit inprecise: I was totally unable to find a register to make the border smaller, so this is the way you do it (at least for top and bottom): You wait until the VIC reached the 25th character row and then you enable 24 rows ($D011, bit 3). You can do the same thing for the left and the right border, just with 38 cols ($D016, bit 3), but to do that you need very precise timing and you also need to eliminate the bad lines by setting the vertical scroll register, so the scanline mod 8 is never equal to the scroll value. Of course, you can't use the normal display anymore because the bad lines actually aren't just bad, they are used to load character data I think, stuff that repeats for every 8th line in the non-border area. I personally was a little bit confused when I read the top answer, I hope that can help. (Also, the top answer has a mistake: You don't make the border smaller, you make it bigger)

Related