Dolphin, the GameCube and Wii emulator - Forums

Full Version: 60 fps and sound
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
hi guys :-)
m new here and was wondering y the game MUST be in 60fps to get a normal sound !
even if the game running in 59 fps the sound is horrible
so I want to know if there is a solution or at least if there is a way to force the game to run full speed at 30fps
Because if the game the emulator is not running at full speed, audio should not be processed at full speed. If the game needs to run 60 fps, there's not much you can do except try the frameskip option.
Console games usually aren't programmed in the same way as pc games. PC games have to deal with different kind of hardware and lots of them fail for too slow or too fast ones (eg faster movement, clipping issues on lags, ...).The easiest way to handle this kind of issues is to enforce a constant framerate. As all consoles (of the same type) have the same hardware, it's easy to optimize the game just for this hardware to archive the best result there.

So in the end, the game just render one frame, generate 16.6 ms audio, calcuate 16.6 ms physics, ..., and continue with the next one.
thnx 4 quick reply :-)
I dunno if this related and even may be silly but I remember mortal kombat 9 when ported to PC it had the same problem cuz developer did a cheap porting so the game was unplayable at 30 fps but later modders managed to make a file which made the game to think its running at full speed at 30 fps
iirc there are some hacks for PAL games to change the speed (50 vs 60 fps). This is always possible, but it's very hard (read: impossible) without the game source to change the framerate and to retain the ingame speed.

btw: dolphin supports to run the game slower without audio stuttering, but it sounds funny Wink
(06-13-2014, 06:47 PM)baha2 Wrote: [ -> ]thnx 4 quick reply :-)
I dunno if this related and even may be silly but I remember mortal kombat 9 when ported to PC it had the same problem cuz developer did a cheap porting so the game was unplayable at 30 fps but later modders managed to make a file which made the game to think its running at full speed at 30 fps
MK9 is a fighting game. Fighting games are always frame timed to ensure game balance is unaffected by platform. That was not a lazy port.
gsync will solve these issues
(06-15-2014, 01:29 AM)Gir Wrote: [ -> ]gsync will resolve these issues

Gsync doesn't affect games with a fixed timestep. The game will still run a slowed speed. Gsync is for games that run at full speed already, but cannot hit 60fps all the time, and adjusted monitor refresh to smooth out the decrease. It does not affect the tjmestep of a game.
(06-15-2014, 01:33 AM)Nintonito Wrote: [ -> ]
(06-15-2014, 01:29 AM)Gir Wrote: [ -> ]gsync will resolve these issues

Gsync doesn't affect games with a fixed timestep. The game will still run a slowed speed. Gsync is for games that run at full speed already, but cannot hit 60fps all the time, and adjusted monitor refresh to smooth out the decrease. It does not affect the tjmestep of a game.



Quote:G-SYNC is a variable refresh rate technology announced by NVIDIA, running dynamically at 30Hz->144Hz. Monitor refreshes immediately upon Direct3D frame presentation, instead of waiting till the next VSYNC. Before, 60Hz monitors needed 1/60sec to transmit the refresh from the GPU to the monitor. Not anymore. In a G-SYNC monitor, the frame transmission time is always 1/144sec, even during 60fps.

Apparently, this makes it possible to do ultralow input lag 60Hz for emulators!

For developers, it is actually very simple to run G-SYNC at a fixed refresh rate: Basically, emulator runs at 60fps@60Hz, but with frame transmission times of 1/144th of a second from GPU to display. In G-SYNC mode, you just simply do Direct3D Present() 60 times a second accurately (based on QueryPerformanceCounter()), and viola! G-SYNC 144Hz running at 60fps@60Hz.

1/60sec frame transmission to monitor = 16.7ms (traditional VSYNC at 60Hz)
1/144sec frame transmission to monitor = 6.9ms (G-SYNC)
Input lag reduction = almost 10ms

To Emulator Users: Tell your emulator creators, link to this post.
To Emulator Creators: It's a very simple programming change to emulators:
- A command line option or mode that ignores VSYNC, and instead uses microsecond-accurate timer to call Direct3D Present(). This allows the emulator to control a G-SYNC monitor's immediate refresh (e.g. 50Hz or 60Hz). The emulator briefly runs as fast as possible for 1/60sec (surged emulation execution) then frame is immediately delivered as fast as possible to the monitor (in 1/144sec) without waiting for VSYNC. Rinse and repeat 60 times a second. Low input lag bliss.
(06-15-2014, 01:29 AM)Gir Wrote: [ -> ]gsync will solve these issues

I run dolphin on my g-sync monitor. The only affect it has is reducing input lag. It's effectively the same as running the game with vsync off. If you don't get 100% vps then you still get sound issues. Sure it may look smoother with no stutters when the frame rate drop, but the game still slows down and the audio stutters.
Pages: 1 2