In this post, Espozo wrote:
... You know, just looking at the game, how the heck is the character partially behind and in front of the background like that? Behind them, there's more than one color, so it can't be something with color 0. (Watch the character walk behind spikes.)
Solstice software renders the characters to CHR-RAM, taking into account occlusion. Open the PPU viewer in FCEUX to see it in action.
It's also double-buffering the sprites, and running the game at 30hz, effectively, probably to make enough time for the CHR writes. When there's two monsters onscreen they seem to update one at a time, alternating (i.e. they're both running at 15hz, staggered). I'm not sure if it uses the black at the top/bottom of the screen for extra write time too.
This is all just a very simple AMROM mapper, by the way. You don't necessarily need fancy hardware like the MMC5 to pull of some pretty impressive rendering tricks.