Hello there.
Well, all in all Dolphin is quite impressive. But aside from the more important
compatibility problem, It has some performance flaws. I'm talking about Video
Plugin's design.
I've tested some aspects of Dolphin performance and discovered that Video Plugin could use some major tweaking.
Let's take Resident Evil Zero as an example. I'm using last Dolphin beta (1.0.3), since the ingame speed is no different from previous versions.
Take a close look at the statistics.
So we have 27k triangles in this scene, which is the typical count for Riva TnT 2 generation video card, running at 5 FPS on GeForce 6600 GT.
You might say "Of course, this is an emulation, after all!". But take a look at this:
- 5584 DrawIndexedPrimitive Calls
- 5585 SetVertexShader Calls
This means that you are submitting 10k heavy like hell calls each frame, and killing off CPU completely. I also suspect that Dolphin performs a lot of buffer
locking operations which is also _very_ expensive.
Think about it: 25k DrawIndexedPrimitive Calls = 100% busy 1 Ghz CPU.
You're making 5k calls. But you need a lot of CPU time for emulating, plus
game logic, plus background applications. You can't just have all your CPU
for submitting.
This is no big secret for me that GameCube architecture is very different, and
it is possible that GC DIP calls are not as expensive as thier PC counterparts.
But you have to do something about this. The maximum count should be no higher than 500-600 for DIP calls, and 100-200 for SVS calls. Until then Dolphin
will remain "A Pregnant Snail".
So it seems to this is the main bottle neck. (Oh, come on, we all know that
Resident's game logic is not too complex: no physics, AI is quite simple, tiny scenery and so on)
The specs are: 3 Ghz Pentium 4, 1 GB RAM, GeForce 6600 GT 128 MB.
Well, all in all Dolphin is quite impressive. But aside from the more important
compatibility problem, It has some performance flaws. I'm talking about Video
Plugin's design.
I've tested some aspects of Dolphin performance and discovered that Video Plugin could use some major tweaking.
Let's take Resident Evil Zero as an example. I'm using last Dolphin beta (1.0.3), since the ingame speed is no different from previous versions.

Take a close look at the statistics.
So we have 27k triangles in this scene, which is the typical count for Riva TnT 2 generation video card, running at 5 FPS on GeForce 6600 GT.
You might say "Of course, this is an emulation, after all!". But take a look at this:
- 5584 DrawIndexedPrimitive Calls
- 5585 SetVertexShader Calls
This means that you are submitting 10k heavy like hell calls each frame, and killing off CPU completely. I also suspect that Dolphin performs a lot of buffer
locking operations which is also _very_ expensive.
Think about it: 25k DrawIndexedPrimitive Calls = 100% busy 1 Ghz CPU.
You're making 5k calls. But you need a lot of CPU time for emulating, plus
game logic, plus background applications. You can't just have all your CPU
for submitting.
This is no big secret for me that GameCube architecture is very different, and
it is possible that GC DIP calls are not as expensive as thier PC counterparts.
But you have to do something about this. The maximum count should be no higher than 500-600 for DIP calls, and 100-200 for SVS calls. Until then Dolphin
will remain "A Pregnant Snail".
So it seems to this is the main bottle neck. (Oh, come on, we all know that
Resident's game logic is not too complex: no physics, AI is quite simple, tiny scenery and so on)
The specs are: 3 Ghz Pentium 4, 1 GB RAM, GeForce 6600 GT 128 MB.
Last edited: