When zoomed at level 2 for example, each pixel on the TV is equal to a 4 x 4 square on the gamepad. So instead of drawing the whole 4 x 4 square, half is the picture on the TV, the other half is black, to speed up the drawing on the gamepad. The effect of this makes the zoomed in image have scanlines. This has no effect on what the image looks like on the TV, but speeds up the rendering on the gamepad. If I didn't lay down a black background first, I would have to render the complete pixel as a 4 x 4 square on the gamepad, which is just a waste of CPU cycles. It has the same effect as looking at an old TV with scanlines, and only makes the image look darker. I never really had a problem with it, but if it bothers you too much, you could extend the loop in the copyPixels routine and recompile it, but you will get major graphics tearing when moving around the image. As it is, it tears enough, but not as bad as if you extended the loop.
I don't think I compiled for 5.4, and someone correct me if I am wrong, but I believe either the 5.3.2 or the 5.5 bin file should work on 5.4. I don't have 5.4 firmware, so I am not exactly sure of the differences. You could always change the Makefile to include 5.4 if it is different.