Okay, here's some benchmarks. These help break down where the emulator is spending its time and what the problem areas are. All of these tests are done at 600MHz.
Phoenix Wright
The opening cutscene for the first case runs fullspeed. Its performance looks like this:
Full run time: 12.99ms per frame
Video 2D run time: 8.20ms per frame
Video 3D run time: 2.31ms per frame
Video Geometry run time: 0.00ms per frame
Screen Update run time: 0.37ms per frame
Audio run time: 0.75ms per frame
You can see a bit of time is spent on 3D. A single command here will cause the buffers to be cleared which all by itself probably takes quite a bit of time. Also, just having 3D enabled even with nothing rendered currently adds a lot to the 2D rendering time as well, as this huge buffer has to be converted. This is something I'm going to be focusing on improving near term.
Unfortunately, when you get more in-game the speed drops to about 50%, a big sign that either 3D is getting used heavily or the CPU is being pegged hard. Here's how it performs:
Full run time: 35.05ms per frame
Video 2D run time: 8.84ms per frame
Video 3D run time: 22.07ms per frame
Video Geometry run time: 0.09ms per frame
Screen Update run time: 0.45ms per frame
Audio run time: 2.08ms per frame
As you can see it's the 3D killing it. Interestingly, you can barely tell a difference with 3D enabled vs disabled, so it isn't actually doing much.
Children of Mana
Title sequence full speed. Name entry a little below full speed. Then the opening with the writing on the book is under half speed. Here's how it performs:
Full run time: 39.70ms per frame
Video 2D run time: 5.69ms per frame
Video 3D run time: 27.90ms per frame
Video Geometry run time: 0.24ms per frame
Screen Update run time: 0.02ms per frame
Audio run time: 2.77ms per frame
3D strikes again. Hard. I couldn't really figure out what the 3D is doing from looking at it. After finally suffering through the intro it's even slower (a little over 1/3rd speed)
Full run time: 56.40ms per frame
Video 2D run time: 6.41ms per frame
Video 3D run time: 39.76ms per frame
Video Geometry run time: 0.00ms per frame
Screen Update run time: 0.51ms per frame
Audio run time: 2.99ms per frame
3D runtime is through the roof, but it also looks like the CPU load (the stuff left over after you take everything out of the full run time.. well more or less) went up quite a bit. That's not especially surprising though.
Metal Slug 7
This one's pretty slow up to the player select screen then it crashes, so I won't give anything on this yet (it probably crashes because DMA modifies code, so hopefully not too hard to track down).
So unfortunately it looks like all three are using 3D to do 2D. Takeaway is the same as before: optimized 3D will help a lot. Then special paths for "simple" 3D will help even more. Overclocking/1GHz unit will of course improve things, and frameskip will help tremendously.
One other thing - the audio runtimes are higher than I'd really like, so I hope to do some optimizations for that too. It's small compared to the big 3D costs but an ms or two of savings can be really helpful.