mattyrb: There's lots of work to be done. If Unai can pull off a new GPU core, and it's as good as I hear his past work is, things will be much faster. AntiPasta work with ARM assembly should speed up things in the very near future, as well as a dynamic recompiler in the long term will mean an overall speed boost for all games.
So... GPU + Dynamic Recompiler + Turning my crusty C code into ARM assembly = Faster GP2PSX in the works.
Also, in the future I'd like to add support for save states, an ingame menu system, and a working frameskip.
A little explaination about the frameskip/framerate weirdness. The framerate reported is the amount of frames rendered that have been blitted to the screen per second. The GPU currently only blits frames if they've changed in any way from the previous frame. So if you have a static image for a second, you'll get a framerate of 0, which is "correct". If you have frameskip on, the framerate shouldn't go up much, if any. Most likely it will go down a bit with each additional frameskip. This is because the time it takes to blit the screen (not render), is less than the time it takes to emulate that frame. So if you have a framerate of 10 FPS with frameskip 0, and you change it to frameskip 1, you might just end up with a framerate of 7 which gives you the appearance of 14 (2*7) FPS.
So when Final Fantasy 7 is getting 20 FPS in-game, it's actually drawing 20 new frames of animation a second. That's why sometimes a 4 FPS game looks a bit smoother than you'd think, since it's only counting fresh new frames of animation.
Keep the frameskip to about 0-3 usually, any higher and things will become very choppy and usually not worth it.
Hope this helps.
Btw, anyone figure out how to hook up a USB pad to the GP2X extension port yet? ;P