Dolphin, the GameCube and Wii emulator - Forums

Full Version: Is there an option to allow frame skipping?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
When the emulator is running certain taxing sequences, the game slows down. Is there any way I could get it to skip frames instead?
I completely understand that some people don't want their games to work this way, but personally I would rather have the game continue to run at normal speed but drop some frames rather than hold the game for a frame while the rendering catches up. It happens pretty frequently in places like the cutscenes in Starfox Adventures. Hearing the audio get choppy is far more annoying to me than if I saw my framerate do the same.

I've been looking through the settings, but I can't seem to find an option for it.
Dolphin doesn't have a frame skipping option. This is in part because it completely breaks some games, and in part because usually the bottleneck people are having is in the CPU emulation (in which case frameskipping is of no help).

You can try setting the emulated CPU clock to a value below 100%. Some games activate their internal frame skipping if you do this.
(01-30-2021, 08:41 PM)JosJuice Wrote: [ -> ]This is in part because it completely breaks some games,

I am curious where that would be the case.
Perhaps my understanding of how things work is wrong, but that sounds like it shouldn't be an issue.  There is emulating all the internal code and game logic, and then there's emulating the visuals.  I mean sure, it's not going to have the same level of separation like it did in the good old days when most of the game logic was handled during the V Blank, but the process of rendering the image is still being called through different functions, is it not?  Doesn't a frameskip work by just bypassing the render calls and focusing just on the rest of the code?
I just can't fathom a situation where the internal game logic absolutely requires a rendered image to operate.  Sure, there are plenty of visual effects that are dependent on previously rendered images and the visuals could certainly break down, but when would the internal game logic run differently because of this?

If I'm wrong about how this works, I'd be interested in knowing how.


(01-30-2021, 08:41 PM)JosJuice Wrote: [ -> ]in part because usually the bottleneck people are having is in the CPU emulation (in which case frameskipping is of no help).

I get that this could be the case sometimes, even most of the time.  But I still think it would be a useful feature to have for those times when it is relevant.  After all, isn't the biggest factor coming down to an individual's system?  And there are plenty of people whose machines have their graphics card as their real bottleneck, seeing as how CPU power hasn't really increased for a good decade or more.
(01-31-2021, 04:35 AM)Marscaleb Wrote: [ -> ]I just can't fathom a situation where the internal game logic absolutely requires a rendered image to operate.  Sure, there are plenty of visual effects that are dependent on previously rendered images and the visuals could certainly break down, but when would the internal game logic run differently because of this?

There are very much games where the game logic depends on what gets rendered. Not only through reading back the rendered image, but also through checking how far the emulated GPU has gotten in its command list.

(01-31-2021, 04:35 AM)Marscaleb Wrote: [ -> ]I get that this could be the case sometimes, even most of the time.  But I still think it would be a useful feature to have for those times when it is relevant.  After all, isn't the biggest factor coming down to an individual's system?  And there are plenty of people whose machines have their graphics card as their real bottleneck, seeing as how CPU power hasn't really increased for a good decade or more.

If it wasn't for frameskipping breaking games, I don't think the reason that the CPU usually is the bottleneck would be enough of a reason in itself to remove frameskip.
The GC/Wii does not have a concept of frames as such. Consoles with 3D hardware use display lists instead. The display lists are a list of 3D instructions for the GPU to render the screen and there isn't a reliable way of skipping lists. You'll notice that emulators from the N64 generation and later do not have 100% frame-skipping options.

There was a frame skipping option in old versions of Dolphin which you can try out. The option didn't work for me when I had it enabled.