Some progress today.
I fixed the crash by including "GLES/gl.h" instead of "GL/gl.h". I had to comment calls to glClientActiveTexture_ and glActiveTexture_ calls (these are used for multitexturing?).
The menu appears, the background is drawn fine, as well as the checkpoint. I hear the music.
But, the text and the level are not drawn at all. The framerate seems very bad, but I think it is due to the intense error log of pspgl
Commented out every GL call not supported. The framerate almost doubled to 20fps.
-> glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1);
-> glPolygonOffset(-1.0f, -2.0f);
I desactived GL_BLEND in sol_draw_all and guess what!
... but the checkpoints are filled with black now.
FPU exception (divide by zero) solid_sim_sol.c:76
again in solid_sim_sol.c:222
I corrected the first crash by using the hack described in a comment.
The second crash was solved by replacing :
if (vn - wn <= 0.0f) to if (vn - wn < 0.0f)
in line 217.
I'm busy cutting down the resolution of the textures. For example, the ball's texture size is 512*256, which is enormous for the PSP. I scaled it down to 128*64, to get better framerate and more available memory.