All projects
Utilities / ● Maintained

LEGO City Undercover on Linux

Every crash this game throws on Proton, named and fixed.

A reproducible fix log for running LEGO City Undercover on Linux via Proton 3.7-8, including a Chapter 15 freeze fixed nowhere else.

6
Launch flags documented
Each with a stated reason, not copied blindly
5
Distinct failure modes solved
From empty logs to mid-game deadlocks
1
Fix unique to this repo
The Chapter 15 moon transition freeze
Synced 0m ago

The problem

LEGO City Undercover (Steam App ID 578330) has several Linux failure modes, and each one produces a misleading symptom that sends people in the wrong direction. The audio thread deadlocks under heavy scene loads and surfaces as a cryptic critical-section timeout that looks like a GPU fault. FSYNC silently crashes the game on cutscenes. High resolutions on a dual-monitor setup freeze level transitions. Newer Proton versions page-fault on launch. Worst of all, the game freezes at the Chapter 15 moon transition, and I could not find that fix documented in any Steam thread or community wiki. I wanted a single page that names every crash, its real cause, and the exact flag that resolves it.

How I built it

I treated it like a bug investigation rather than a forum hunt. Every crash got reproduced, every root cause confirmed in the Proton logs, and every fix verified before it went in the README. The result is one working Steam launch string where each flag earns its place: the Optimus and Vulkan ICD variables force rendering onto the NVIDIA GPU, PULSE_LATENCY_MSEC=240 raises the PulseAudio buffer so the audio threads stop deadlocking, PROTON_NO_ESYNC and PROTON_NO_FSYNC dodge the cutscene crash, and WINEDLLOVERRIDES="xaudio2_7=n,b" routes XAudio2 through Wine’s own stub, which is the piece that finally gets past Chapter 15. Proton is pinned to 3.7-8 because anything newer breaks the port. A small udev rule tames a noisy SHANWAN controller clone that was flooding the HID queue, and the README pairs every error-log signature with its fix so someone landing from a search lands on an answer.

01 / Quick start

Run it in under a minute

Steam launch options
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json PULSE_LATENCY_MSEC=240 PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 WINEDLLOVERRIDES="xaudio2_7=n,b" PROTON_LOG=1 %command%