Source Code: https://github.com/zorchenhimer/nes-parallax
This is a parallax demo using MMC3’s IRQ scanline counter and some cycle counting. The IRQ counter is the boundary between the clouds and the light blue mountains. After that triggers and updates scroll values, another IRQ is setup for the second split.
The first boundary uses some sprites overlap some mountain tops across the first boundary. The second boundary only leaves about a scanline between the two without any overlap.
I had originally planned to have one additional scroll plane on the bottom (the “grass”) that utilized sprites, but decided against that in the end.