> I had thought of the profiler but I was wondering if profiling on the PC might
> have different results compared to execution on the PSP. Probably nothing huge
> and I'm sure it's a great indicator either way. Could you recommend any?
Are there PSP emulators? Sorry, I'm very much out of the loop these days. If so, using them to profile wouldn't be bad. Profiling on an actual PSP itself is your best bet. Because I'm not familiar with the hardware, I'm not sure what capabilities it has for profiling. Surely it has timers but whether they're fine-grained enough for accurate profiling is something you'll have to determine.
If you're talking about profiling an emulator compiled for X86 on a PC, then that's a different matter. It would give you a qualitative understanding of what is likely to be the main bottle neck but for finer optimization, it wouldn't be much help.
What I expect that you'll find is the graphics are by far the biggest bottleneck. Writing a fast renderer in assembly won't be trivial. It'll be quite an effort just to duplicate the functionality of C/C++ code in assembly, and then a whole lot more in order to design something from the ground up to take advantage of the PSP's graphics hardware and CPU.
Next, you might find that the CPU emulation could be greatly improved. This should be conceptually easier to port to assembly (although it will be tedious and boring.)
Lather, rinse, repeat.
You can try to use actual profiling software (like gprof or Intel's VTune, for PC code), but you can just as well write your own profiling routines to keep track of time spent in different parts of the code. There is plenty of information about how to do this online.