A SNES naturally runs at 60.09881 frames per second and generates 534 sound samples per frame. Unfortunately, most modern displays run at fewer than 60 frames per second, usually something like 59.94. This means that if we want the video to be smooth, there will be gaps in the audio.
Fortunately, we can stretch the audio to fill in the gaps. The sound setting "Input Rate" can be set to whatever Snes9x is actually outputting in terms of audio on your system. So if you have vsync turned on and your monitor runs at 59.94Hz, you can set the input rate to 31955Hz, and there will be no gaps.
To make this easier, the Windows and GTK ports have an option called "Automatic Input Rate" that asks your monitor what the refresh rate is and adjusts it for you. To further improve this, you can set the "Dynamic Rate Control" option, which will try to control the audio output in real time so it doesn't crackle.
Further things you can try are:
- On Windows or PulseAudio outputs, match the Playback Rate with whatever your sound server is running. With Windows, this is usually 48000Hz. PulseAudio accepts both 48000Hz and 44100Hz.
- Otherwise, use the highest playback rate available. This is 48000Hz with Snes9x.
- Switch the sound driver. On Windows, WaveOut or XAudio2 may work better on your system. With the GTK port, ALSA and OSS are preferred, followed by PulseAudio--SDL should never be used except as a last resort.