Running MATCH in WSL 2 + WSLg


Running MATCH in WSL 2 + WSLg

Goal: run MATCH under WSL 2 with working audio and no crashes.
(All steps below apply only to WSL — regular Linux users don’t need them.)

🧱 1. Check your WSL version

In Windows PowerShell:

wsl --version

Expected output:

WSL version: 2.3.x
Kernel version: 5.x
WSLg version: 1.x.x

If WSLg is missing, update and restart:

wsl --update
wsl --shutdown

🎧 2. Check the sound server

Inside WSL:

ls /mnt/wslg

If you see PulseServer — great, sound proxy is available.

📦 3. Install required packages

These packages enable full PulseAudio/PipeWire support and fix the Failed loading libpulse-simple.so.0 error.

sudo apt update
sudo apt install -y \
  libpulse0 libpulse-mainloop-glib0 libpulse-simple0 \
  libasound2 pulseaudio-utils

Fedora:

sudo dnf install -y pulseaudio-libs pulseaudio-utils alsa-lib

Arch / Manjaro:

sudo pacman -S --needed pulseaudio pulseaudio-alsa alsa-lib
# or, for PipeWire systems:
sudo pacman -S --needed pipewire pipewire-pulse alsa-lib

🔌 4. Connect to the WSLg audio server

Add to the end of ~/.bashrc (or ~/.zshrc):

export PULSE_SERVER=unix:/mnt/wslg/PulseServer
export SDL_AUDIODRIVER=pulse

Apply changes:

source ~/.bashrc

🔊 5. Test system audio

pactl info
paplay /usr/share/sounds/alsa/Front_Center.wav

If you hear “Front Center” — 🎉 sound works!

🕹 6. Run the game

./MATCH
# or
python MATCH.py

If everything is set correctly, the game will start with audio and without the libpulse-simple.so.0 error.

🧩 7. If audio still glitches

That’s a WSLg limitation, not the game. You can run in a safe silent mode:

SDL_AUDIODRIVER=dummy ./MATCH

Also ensure your code initializes audio with a fallback (already present in MATCH).

💡 Optional tweaks

  • Limit FPS to reduce CPU load:
    clock = pygame.time.Clock()<br>...<br>clock.tick(60)
  • Increase audio buffer to reduce crackling:
    pygame.mixer.pre_init(48000, -16, 2, 2048)
  • Avoid fullscreen mode in WSLg — windowed works more reliably.

✅ Result

Before After
pygame.error: dsp: No such audio device✅ no longer appears
Failed loading libpulse-simple.so.0✅ fixed
No sound✅ sound works
Crackling / freeze⚠️ minimal or gone (WSLg limits still apply)

> WSL2 environment detected > PulseAudio connection established [OK] > MATCH running with sound > enjoy minimalist precision across systems

Built with: Python + pygame • Cross-Platform Beta

Get MATCH

Leave a comment

Log in with itch.io to leave a comment.