Source Code: https://github.com/zorchenhimer/nes-animated-background
ROM Download: https://github.com/zorchenhimer/nes-animated-background/releases/download/v1/animated-background.nes
This ROM is a demonstration of an animated background that was originally apart of another game rom.
This ROM uses CHR RAM and some timed swapping of CHR banks to animate the background. The animation frames were created with Gimp and Aseprite and were designed to loop and tile seamlessly. The main animation is eight tiles high and eight tiles wide, or 64x64 pixels.
A “poor-man’s frame buffer” is utilized for the animation. Each frame one row of eight tiles are written to CHR RAM. Once eight rows have been written, the currently used background pattern table is swapped and writing rows begins on the opposite pattern table. This whole process can be accomplished with CHR ROM and 1k banks, foregoing the poor-man’s frame buffer, but the original ROM was already using CHR RAM for other purposes.
This demo also includes a “snake” on the background layer to demonstrate re-drawing animation tiles. The snake can be controlled with player one’s controller.