You need per pixel lighting to effectively do normals, you don't need normals to do per pixel lighting. You would use the normals to calculate the light intensity at a point. i.e. it calculates the angle between the direction of the plane that the point is on, and the light source position.
per pixel lighting is calculating light for each pixel, as opposed to per vertex, which calculates it for each vertex. PPL is just usually done with normals, bump mapping etc, if you were to do it in a proper game, on an engine level, because, what kind of game developer would implement PPL, without normals. You don't
need normals to implement PPL, where did you hear this rubbish. Remember, this is emulation, not a PC game, I'm working on here...
Also, you're judging it from a 500kb jpeg image..If you can do it better, then by all means, please do.
Oh, and regarding the performance hit, what kind of system are you running, 5, 10 year old stuff? No feasible hit on a modern system, unless you were doing some crazy calculations for some big scene, in a proper PC game.
edit: Here's another example of PPL, off, and on, this time zoomed in, side by side.
[
attachment=44957]
edit2: Here is another comparison, again zoomed, and side by side.
[
attachment=44958]