Any way to limit FPS or skip frames?


#1

I just downloaded citra and tested ZLBW, runs fine but FPS drops constantly to 40/50 while it’s supposed to run at 60. I don’t have a powerful CPU.
So I’m wondering, is there a way to limit the FPS to 30 or in other words, skip 1 frame ?
Thanks :kissing_heart:


#2

there is no frame skipping in citra


#3

There is no way to do this in Citra. Some graphic card vendors allow for ‘Half-Vsync’ (NVIDIA does via their control panel, not sure about others).


#4

As other’s have said, Citra doesn’t have this built in.

You can however force it via other software. I suggest using Rivatuner Statistics Server as it works on every graphics card (Nvidia and AMD). Just download it via the link above (or if you don’t trust me just Google it) and follow these instructions:

  1. Firstly you’ll need to extract the downloaded archive. You can do this via Winrar or 7-Zip. I’m using Winrar. If you don’t know how to extract a file let me know, I’ll create another post with instructions.
  2. Once extracted double click “RTSSSetup660.exe” (the digits at the end vary on version number) and install it.
  3. Once installed you’ll need to launch it. Sadly you’ll have to get to it via the start menu or by searching for it in where you installed it via the file manager/explorer.
  4. Once launched go to the System Tray (that’s the bottom right hand corner of Windows).
  5. Click on the blue monitor icon. If not their click on the up arrow and then the blue monitor as it could be hidden.
  6. Click on the big plus icon. Then go to “citra-qt.exe”. For BE builds it’s in appdata, for NB it’s where you extracted it.
  7. Go to the “Framerate limit” option on the settings section and change it to 30.
  8. DON’T close the program, and just run Citra.
  9. You should be done and good to go. I just tested it on the latest Bleeding Edge and Nightly builds and it works perfectly (though no FPS counter).

That should be it


#5

rivatuner is know to cause a lot of troubles with citra while running in the background, i really would not recommend doing this


#6

Okay, but I thought that was just with Afterburner? Either way, good to know. Still, if the end user has no trouble (like I haven’t yet) then it should be fine. If you do encounter issues though it could be worth closing the Riva and retrying the segment on Citra.


#7

nope, it’s the tuner, msi afterburner does not do much on it’s own but it’s when the tuner creates these hook ups and start monitoring then citra starts to panic, you can confirm that by testing yourself if you want just disable on screen monitoring from afterburner then launch citra with log filter set to Info then run any game, then turn on on screen monitoring and watch the massive log spam and the severe performance hit.

maybe you can get around by never enabling the monitoring hook ups but the monitoring role comes from the tuner and not the afterburner so i would say the fault falls upon the tuner. or the monitoring hook ups it uses at least.

furthermore citra is not the only program to complain from the the tuner, other emulators break or behave oddly with it also some AAA game titles don’t like it.


#8

Interesting, as of yet I’m not having that effect. I’ve seen the odd graphical glitch, but for the most part games have been running fine if not better in some cases. Could it vary on hardware, or on a game by game basis?

___ AWHILE LATER___

Saying that I’ve just tested a few more titles and some wouldn’t even get past the loading and saving state with Riva in use. I made sure to try a game on the compatibility list too, Star Fox 64.3D which is reported to be “Great”. I’ll be sure to stop suggesting it in future.

Back to OP’s question though. I guess the only option is with the Vertical Synchronisation setting in the graphics card control panel. Though from what I hear, that isn’t perfect either.


#9

Okay I just tried it, it sure limited the FPS to 30 but the game runs 50% slower :frowning: so no frames are skipped.

I think no software can tell citra not to render frames, the only solution here is to implement a frame skipper in citra, would you guys know how hard it would be? assuming I’m a developer but never dealt with graphic rendering stuff, I may need some guidance


#10

there used to be a frame skipper in citra but it was broken and unusable so it was removed by majority’s vote see this as to why


#11

Hmm, now I understand that a frame skip wouldn’t even make the game run at 100% speed 30FPS,
because the problem slowing down the emulation on a low end computer has nothing to do with graphic rendering, the proof to that is when I scale resolution to 4xNative it still runs at the same speed.

As JayFoxRox puts it in that github issue: the GPU probably won't be the bottleneck