[jq]
Why is the emulator slow?
Because nobody pays us to work on it full time and it runs fast enough for us to be happy. Well, almost.
New releases may always be a step backwards in some (or many) cases from earlier releases in terms of speed. There is a delicate balance between compatibility and speed and sometimes one advances further than the other. At any rate, we have introduced a few speed hacks and toggles which you may find helpful:
- (0.9.4) If you are in Windows, make sure you're not using the NOSSE2 build. That one is slower.
- (0.9.5) If you are in Windows, make sure you're not using the NOSSE build. That one is slower.
- (0.9.6) If you are in linux or OSX, try issuing --num-cores=2 or --num-cores=4 as appropriate to the emulator, as these ports don't know how to detect the numprocs on your system.
- (0.9.5) If you are in linux, try making a build with SSE and SSE2 extensions enabled because the code is ready to handle it. Someone should provide details on how to do this.
- If you are using someone else's unofficial "SVN" build, it probably is not fully optimized, since we make our Windows releases using some profiler-guided optimization, which helps by several FPS. For all I know, they are also carriers of viruses, and lately they tend to crash on Vista.
- If you can handle it, turn off the sound.
- Use frame skip. Even frameskipping by 1 will help and many games will stay playable. Frameskipping is continually tweaked in each release to get more bang for the buck, but beware that dual screen 3d games still may not work well under frameskip. If screens seem stuck, pick a different frameskip value.
- (0.9.4+) In the sound options, set interpolation to none which should help a little bit.
- (0.9.4 only) Turn on the sound option "ADPCM Caching"; this is new and experimental, and will break some things, but it should offer a substantial speedup in some cases.
- (0.9.5+) Use dual/asynch SPU mode -- even if you turn off the sound. Try alternate synch methods if you must use synch spu mode.
- (0.9.4+) There is now the option of disabling an entire screen. (Tools > View Layers > Main GPU, etc) Consider disabling a screen which is useless in the game you are playing.
- Try the software rasterizer. In many cases, especially games which make only light use of the 3d hardware, this will actually run faster, by as many as 10 FPS. But it might also run slower, again, by as many as 10 FPS.
- (0.9.5+) If you are using the software rasterizer, disable edge marking and fog if you feel like they aren't needed. If the game isn't using those features then this won't help.
- Buying a newer, faster computer is somewhat more expensive, but it has other side benefits.
- A faster CPU is more helpful than a bleeding edge graphics card. DeSmuME is more CPU intensive than it is GPU intensive. It just needs a graphics card that is glitch-free, and currently the NVIDIA cards have a better track record. A newer graphics card has a slim possibility of increasing speed.
- The cheapest way to get 60fps is to buy the cart. You may find that this is not enough, and you need to buy a console as well. Here are some steps that have worked well for me in the past:
- Look for neighbors that are mowing their own lawns. Ask them if they would like for you to do it instead.
- Borrow your daddy's lawn mower and mow the neighbor's lawn.
- After this, they will generally give you cash. As you repeat the above steps, this cash can accumulate to large values.
- Once the accumulated cash is sufficient, it can be taken to a merchant where it can be exchanged for games and consoles.
- My lawn needs mowing. It wont make your game run any faster if you mow it for me, but I am less likely to get evicted, which would be bad for my productivity.
[/jq]