citra-emu/citra — pull request #347 by bunnei (2014-12-27 02:58:34+00:00)
Title: Frameskip

Implemented a simple frame skip feature, and through doing so further cleaned up GSP synchronization. I added a new field to the configuration file, "frame_skip". It defaults to 0 (disabled), otherwise it must be 1, 2, 4, or some other power of 2. I've found that It can be used to easily double game performance, but doesn't yield much beyond that (i.e. no sense setting it greater than 2). Furthermore, I changed the emulator internal framerate to 30fps, because that makes more sense. Also, I adjusted GSP synch to be slightly more accurate (again), which removes the need for a "hacked" force buffer swap.

When debugging retail games, I suggest editing your config file to set something like: frame_skip=1 and gpu_refresh_rate=10. This will force the emu to run at 10fps, and skip every other frame. It makes titles that are not CPU bound (e.g. Cave Story 3D) get through their intros in seconds. Results may vary :-)