Fix ePSXe Audio Crackling, Stutter and Desync

Crackling sound, music drifting out of sync, or effects arriving late: audio faults in ePSXe usually ride on top of a video problem, because the sound core syncs to the emulator’s frame delivery. Fix them in this order — plugin choice, frame rate stability, then latency settings.

1. Use the internal SPU core

Set Config > Sound to ePSXe’s internal SPU core. The desktop releases have steadily improved it — v2.0.18 specifically reworked SPUCORE reverb and volume handling, with fixes audible in games like Ghost in the Shell, Dino Crisis 1 & 2 and Wipeout. Old external SPU plugins are the most common crackle source on current builds.

2. Stabilise the frame rate first

If the game itself stutters or runs uncapped, the audio will crackle no matter what the sound settings say. Lock the frame limit (our too-fast fix covers the settings), and if your PC is struggling at high internal resolution, lower it one step — a stable 60 fps at 2x sounds better than a wavering 60 at 4x. On a weak machine, the software renderer is often the cure; see ePSXe on a low-end PC.

3. Latency and mode options

  • Try the SPU core’s latency/Async options: a slightly higher latency setting trades a few milliseconds for clean sound on machines that crackle at the lowest setting.
  • Keep XA sound enabled — disabling it silences music in many games and can masquerade as an audio bug.
  • Bluetooth headphones on Windows add their own delay; if sound is clean on speakers but late on Bluetooth, that’s the headset path, not ePSXe.

Android: switch to the Oboe engine

v2.0.19 added the Oboe sound engine specifically to cut audio latency on Android — select it in the sound preferences. If crackling arrived with the 2.0.19 update itself, note that the team shipped SPU regression fixes in the 2.0.19.x point releases, so update the app in Google Play before deep-diving settings. Persistent Android audio trouble after that: lower the internal resolution, close background apps, and re-check with wired audio to separate device limits from emulator behaviour.

Similar Posts