I guess what I want is for the engine to run at 60fps and have the GPU slow down so it's always at 30 (It never goes lower anyways) so the extra power gained from slowing the GOU can go into perfect sound and movement emulation.
Ok, let's try to explain that in easy words: the real psx has a vsync signal which is triggered 60 (or 50 in PAL systems) times per second. On each signal the screen gets refreshed. Not every refresh is showing a new picture, though... some games will have a new frame on every vsync (so you could say they run at 60 PC FPS), some games are doing a new frames every 2. vsync (30 FPS), but they also can do frames at more odd timings (for example a new frame after 3 vsync signals, after that a frame after 2 vsync signals, then 3 again...).
So, the 'right' PC FPS can vary from 12 to 60 fps, depending on the game... bah.
In previous gpu plugin versions the gpu plugin calculated and showed the PC FPS... so you had the values 30 or 60 (depending on the interlaced modes). But it was very hard for the plugins to detect the more 'strange' timings, causing big sound glitches (the sound has to be in sync with the gfx, or you will get pauses or noise).
On _Demo_'s suggestion Lewpy and me are now using and displaying the psx vsync signal instead of the real pc frames... it makes it somewhat easier to get the stranger timings right... and if you see 60 fps with activated limitation you can be sure the game is running at the right speed (as long as the vsync signal is emulated correctly by the main emu).
Of course there are small drawbacks with the new fps calculation: depending on your system's speed it may happen that the 'limitation' option is eating a bit too much cpu cycles to hold the correct speed limit (you have to think about it: the gpu plugin will not know how 'speed expensive' the next frames will be... it only can examine the speed of the latest rendered frames and do a pause, if they were displayed too fast... but if the next frames are slower for whatever reason the limitation could have been too strong, causing an unwanted speed drop... of course it will now trying to make less pause for that frames, but you will never get the lost speed back).
conclusion:
a) the new fps display (and limitation) is _not_ showing the real PC frames, but the psx vsync signal
b) the new way helps to get the right speed limitation (important for sound)
c) the vsync timing has to be emulated correctly by the main emu, otherwise the gpu is lost
d) it's hard for the gpu plugin to keep the right speed if your system is slow... and even if you have a fast one you will see a small fps change (usually 1 fps) sometimes
e) Lewpy's and my gpu are having an option to work independly from the vsync signal (it's called "PC FPS calculation" in my gpus), which will be showing the real frame count, but that mode will be screwed on strange timings (mostly in mdecs)
Boah... long text
