I wrote this game with C and the homebrew psp sdk: https://pspdev.github.io/pspsdk/
The graphics API (sceGU) is very similar to fixed-function openGL. So if there's anything you're trying to understand about sceGU, you can often use information/resources made for legacy openGL.
I learned most of what I know about psp development from the samples included with the sdk.
For example, this one shows you how to render a spinning 3d cube: https://github.com/pspdev/pspsdk/blob/master/src/samples/gu/cube
I built a very small engine/framework for managing things like object positions, mesh data, sounds, etc..
But I think the most important thing was building a gltf converter.
This allowed me to build the entire level with blender, export as a gltf, then convert it to a format that the 'engine' could read directly, without needing any runtime conversion.
This meant I could build a game without needing to also build a 3d editor.
And I could build the engine with less work, as it only needed to support one texture type, vertex layout, etc..
I did all the texture conversion, mipmap generation, vertex format changes, etc. on my pc, so I didn't have to worry about porting libraries to the psp, and I didn't need to deal with the memory limitations of the PSP during conversion.
If you're just getting started with psp development, I would highly recommend checking out all of the included pspsdk samples.
The psp homebrew discord: https://discord.gg/VZcjFvy3mT is a great place to learn more about psp development.