How exactly is that effect achieved? Is it related to the trick that opens up the top/bottom borders? Can both of these tricks be used at once?
Not only can both tricks be used together, they must be used together. TLDR: Open the borders, and scroll the entire image up and down at the right time to increase the vertical resolution.
Three days ago I said:
After thinking about it for a little while some theory has entered my brain, theory about how it could work. I'm not sure yet. I'll try and code it up later on in the week when I have time
As promised:
The trick involves YSCROLL
. This gives us a way to scroll the entire image up or down a little. The maximum distance is eight pixels, which is the height of one line of text.
Usually when we meddle with YSCROLL
we also use RSEL
to reduce the vertical resolution by eight pixels, so that we don't get some glitchy stuff at the border of the screen. But this trick is different because we don't use RSEL
to reduce the resolution, but to increase it. And I'll describe how that works here.
- At the top of the screen, set
YSCROLL
to 0
and set RSEL
to 1
- At raster line 247 set
YSCROLL
to 7
. This means the VIC-II will blithely proceed to draw the previous 8 lines again. Of course, you could switch to a different bank or whatever to get different graphical data here.
- At raster line 249 set
RSEL
to 0
. This removes the top and bottom borders. That's important because otherwise the last eight pixels get hidden under the border.
There's one limitation I can think of. It's the Color-RAM, which occupies exactly the same 40 locations for the 25th and 26th row. Maybe you can design around that limitation somehow, or maybe quickly copy some new data in to that location. Or of course use some mode that does not use color ram, such as the hires bitmap mode.