Flickering on and off sprites is fine and dandy, but there are 2 downfalls: It has more information to parse and it slows down drastically for every sprite you add. My GS setup writes the 2 layers (for 3 level grayscale) into to picture variables and recalls them very quickly. No flicker by itself. When I added in game elements (collision detection, animated character sprite, moving around) it did flicker. However, it just looked like other grayscale packages did on my calc (which is rumored to have a bad LCD driver). I will make a screenshot in Pindur and see how it looks.
The 3 layer tile mapper supports backgrounds, objects on the background, and objects in front of the player. I use 3 matrices for this. This only works for Zelda style map movement, it is too slow for scrolling. I draw the background with [A] (grass and other things). Then I draw in things that you can collide with from [B]. This includes trees, houses, and things you don't collide with(like flowers) that need to be overlayed on an existing tile. This way, trees appear over grass and the area around them doesn't turn white. I store all that into a Picture variable. A quick real(0 and I draw [C] first using masks. Store to a second pic. Then I clear the screen again and draw [C] with the normal sprites, store to a 3rd picture, and enter the movement loop. First I recall the background+collision picture using the overwrite method which includes grass, masked trees, and masked flowers. This erases the previous sprite location, handily. Then I mask on the character (AND the mask then OR the sprite). After that I AND on the second picture (top layer mask) and OR on the 3rd picture (top layer). Viola, three layers of graphics (bg, player, fg).