This demo uses MMC3, whose
standard boards don't support 1-screen mirroring. It also uses WRAM at $6000.
TLSROM (mapper 118, MMC3 with A10 out = CHR A17) supports arbitrary mirroring, but unlike TSROM and TKROM, TLSROM has no WRAM at $6000.
TKSROM (mapper 118 with battery RAM) supports both 1-screen mirroring and battery RAM, but it isn't very Ys-y to find
a game using that board. (Only its
Super NES port made it across the Pacific.)
One optimization suggestion for this general technique of moving the status bar back and forth: Use only the last two rows of each nametable ($2380-$23BF) for the status bar so that you don't have to redraw it quite as often.
Another optimization suggestion, specific to MMC3 or other mappers with an interval timer: Set the timer to when scanline 223 of the nametable is about to be rendered, so that you can wrap around to Y=0 in software just before line 224. That way:
- You can keep the status bar at Y=224 ($2380) without needing to redraw anything.
- You get a plane that's 7 attribute rows tall instead of 7 1/2, making camera control somewhat simpler especially with your 32x32 pixel metatiles.
- You can arrange the nametable horizontally (vertical mirroring) to completely eliminate the attribute clash on the trailing edge.