Audio backends
Two backends are available. The active backend is stored in theaudioDriver field of the container config.
- ALSA (default)
- PulseAudio
Advanced Linux Sound Architecture is the default audio driver (Characteristics:
Container.DEFAULT_AUDIO_DRIVER = "alsa").ALSA runs as a dedicated ALSAServerComponent inside XEnvironment. It opens a Unix domain socket, accepts connections from Wine’s ALSA audio driver, and forwards PCM audio to Android’s audio subsystem.- Lower latency than PulseAudio for most games
- Multithreaded client handling for concurrent audio streams
- Requires the
MODIFY_AUDIO_SETTINGSAndroid permission (granted automatically) - Audio capture (
allowAudioPlaybackCapture=true) is enabled in the manifest
alsa or pulseaudio.
Wine audio components
The audio driver alone is not enough — the corresponding Wine components must also be enabled:| Wine component | Required for |
|---|---|
directsound=1 | Any game using the DirectSound API (most pre-2010 games) |
directmusic=1 | Games using DirectMusic for MIDI-based soundtracks |
directsound is enabled by default; directmusic is disabled by default.
Even with the audio driver correctly set, audio will be silent if
directsound=0 in the Wine components for a game that needs it.Common audio issues
No sound at all
No sound at all
Work through this checklist:
Verify the audio driver
Open Container Settings → Audio and confirm
alsa is selected. Save and restart the container.Check Wine DirectSound component
Go to Container Settings → Wine Components and make sure
directsound is set to 1 (enabled).Confirm Android permissions
Winlator requires the
MODIFY_AUDIO_SETTINGS permission. On Android 13+ you may need to manually grant audio permissions from Android Settings → Apps → Winlator → Permissions.Audio crackling, popping, or lag
Audio crackling, popping, or lag
Some degree of audio latency is expected under emulation. However, severe crackling usually has a specific cause:
- CPU overload: The device is not keeping up with real-time audio. Lower the game’s graphics settings or switch the Box64 preset to
Performance. - mesa_glthread interference: In rare cases, GL threading causes CPU scheduling spikes that affect audio. Try setting
mesa_glthread=falsein environment variables. - PulseAudio buffer: PulseAudio’s buffering model can cause noticeable lag. Switch to ALSA for lower latency.
MIDI / music not playing
MIDI / music not playing
DirectMusic is disabled by default. If a game relies on DirectMusic for its soundtrack (common in late-1990s/early-2000s titles):
- Open Container Settings → Wine Components
- Enable
directmusic(set to1) - Restart the container
Video cutscenes have no audio
Video cutscenes have no audio
Video cutscenes often use DirectShow for both video and audio decoding. Enable the
directshow Wine component and, if the video uses WMA/WMV audio, also verify that wmdecoder=1.