RetroArch features a real-time solution (dynamical input-rate adjustment), while bsnes features a precalculated settings-based solution, to the potential audio-crackling and video-tearing issue.
Be this a thread concerning the difference between both of those implementations.
(Which one do you find the most convenient to use?) (Which one do you believe produces the best results?)