How to hide vertical scrolling updates with no status bar?
Posted: Wed Feb 20, 2013 5:47 pm
I've (had) an 8 way scroller for my new game, which currently takes advantage of NTSC overscan, like Super Bat Puncher, to hide scrolling glitches. As you know though it is not perfect, some TVs still show a tiny bit of the nametable updates with this approach. Personally, I will be happy with this approach if I can't find something better, but I am going to investigate some possibilities.
One possibility I was thinking of was Sprite 0 hit, and turning graphics on and off---however I don't think this is even possible. Graphics must be on for Sprite 0 hit to work at all.
Another possibility is to ensure that my vblank code always does the exact same amount of work and do cycle counting to hide graphics at the top, and then use sprite 0 hit at the bottom and turn off graphics once detected.
And finally, the last possibility I can think of is to have bankswitchable CHR, and have one bank loaded with nothing but blank tiles, and use sprite 0 hit and bankswitch to the "blank graphics" chr bank for the scanlines at the top and bottom that I want to hide.
I was just curious what your thoughts were on these possibilities. The first one I'm probably going to try is the cycle counting and Sprite 0 hit hybrid.
Note I am not interested in using a status bar, only hiding scrolling glitches. *edit* Note also, I do not plan on using a scanline counter, this would be prohibitively expensive for building homebrew cartridges with new parts.
*edit* Here's a video of what I ended up implementing:
Cycle-timed scroll update hiding
One possibility I was thinking of was Sprite 0 hit, and turning graphics on and off---however I don't think this is even possible. Graphics must be on for Sprite 0 hit to work at all.
Another possibility is to ensure that my vblank code always does the exact same amount of work and do cycle counting to hide graphics at the top, and then use sprite 0 hit at the bottom and turn off graphics once detected.
And finally, the last possibility I can think of is to have bankswitchable CHR, and have one bank loaded with nothing but blank tiles, and use sprite 0 hit and bankswitch to the "blank graphics" chr bank for the scanlines at the top and bottom that I want to hide.
I was just curious what your thoughts were on these possibilities. The first one I'm probably going to try is the cycle counting and Sprite 0 hit hybrid.
Note I am not interested in using a status bar, only hiding scrolling glitches. *edit* Note also, I do not plan on using a scanline counter, this would be prohibitively expensive for building homebrew cartridges with new parts.
*edit* Here's a video of what I ended up implementing:
Cycle-timed scroll update hiding