The GBA can display a handful of background layers and a sprite layer. Behind all of these layers is a solid-color backdrop. However, by changing the backdrop color in the "horizontal blanking window" between when each row of pixels is drawn, you can make it basically any gradient you want!
Fundamentally, each "rain" (short for rainbow?) defined here is a list of colors. I've just arranged pixels in those colors vertically and stretched the result to the width of the GBA screen. I haven't dug too deeply into where or how each rainbow is actually used, so my presentation may be misrepresentative in some cases. Sorry!





This is the one graphic file that's different between the working build simple.bin (top) and the
source files/final ROM (bottom). Can you spot the difference? (Answer: the bottom row of pixels is a different
color.)


