English | Русский
How to get the VK Play (VKGC / GameCenter) edition of Atomic Heart running on Linux through Lutris + umu-run + Proton: fixing the instant startup crash, the blank launcher window after a GameCenter update, and a 720p/blurry render, and getting native 4K.
TL;DR (updated for GE-Proton11-1):
- Use GE-Proton11-1 or newer. Its reworked
winedmo/FFmpeg backend plays the intro movies that crashed the game on GE-Proton 10 — no more movie-skipping orPROTON_MEDIA_USE_GST.- Mind the space in the path. ProtonPlus installs it as a folder literally named
Proton-GE Latest; the space makes umu silently fall back to another Proton. PointPROTONPATHat a space-free symlink.- Do NOT set
PROTON_ENABLE_WAYLAND=1. After a GameCenter self-update, the CEF launcher shows a blank window (or crashes withDuplicateHandle) under Proton's native Wayland driver.- Fix the resolution in
GameUserSettings.iniif it renders at 720p. HDR is not exposed by this build of the game.
| OS | Bazzite (Fedora atomic), kernel 7.0.x |
| DE / session | KDE Plasma 6.6.5, kwin 6.6.5, Wayland |
| GPU / driver | NVIDIA RTX 4090, proprietary driver 610.43.02 |
| CPU | Ryzen 7 7800X3D |
| Launcher | Lutris 0.5.22, runner umu-run (umu-launcher 1.4.0) |
| Proton | GE-Proton11-1 (installed via ProtonPlus as Proton-GE Latest) |
| Game | Atomic Heart, VK Play edition (via GameCenter.exe), UE4 4.27.2 |
Launch chain: Lutris → umu-run → GameCenter.exe (VKGC) → AtomicHeart-Win64-Shipping.exe.
The game crashes immediately at launch (SecondsSinceStart=0), crash dump like:
C:\users\steamuser\AppData\Local\AtomicHeart\Saved\Crashes\UE4CC-Windows-XXXX_0000
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000000
The startup movie Launch_FHD_60FPS_PC_Steam.mp4 (H264 + AAC) is played through Media Foundation.
On GE-Proton 10 the MF backend winedmo had a flawed byte-stream read/Seek() implementation
and could not read the stream (winedmo_demuxer_create ... error -22, then status 0xc0000001). MF
never got a media source → CreatePresentationDescriptor returned NULL → NULL dereference → crash.
Switching to the alternate backend (winegstreamer via PROTON_MEDIA_USE_GST=1) only moved the crash
into winegstreamer's IMFByteStream → wg_parser glue. Both MF backends failed on this movie.
GE-Proton11-1 completely reworked video playback: DirectShow and Media Foundation now go through a
rebuilt winedmo → FFmpeg path (winegstreamer was removed entirely). This new winedmo opens the
Atomic Heart intro movie without crashing — verified: with the Launch_*.mp4 files present,
winedmo loads, demuxer_create no longer fails, and the game reaches gameplay.
So on GE-Proton11-1 you do nothing special for video: leave the movies in place, don't set
PROTON_MEDIA_USE_GST (it's a no-op there — gstreamer is gone), just select the Proton version.
Historical / GE-Proton 10 only: if you are stuck on GE10, the working workaround was to rename all
AtomicHeart/Content/Movies/Launch_*.mp4→.bakand setPROTON_MEDIA_USE_GST=1. See Appendix: GE-Proton 10 fallback.
ProtonPlus installs GE-Proton11-1 as a directory literally named Proton-GE Latest (with a space).
If you put that path directly in PROTONPATH, umu-run fails to resolve it and silently falls back to
another installed Proton (e.g. GE-Proton 10) — so you think you're testing GE11 but you aren't.
Check a Proton log: the paths will show the wrong version.
Fix — point PROTONPATH at a space-free symlink:
CT="$HOME/.local/share/Steam/compatibilitytools.d"
ln -sfn "$CT/Proton-GE Latest" "$CT/GE-Proton11-1"
# then use PROTONPATH=$CT/GE-Proton11-1At some point VK Play GameCenter pulls a server-side self-update (LightUpdate.dll). This happens
on any Proton version. After it, the updated CEF-based launcher may show a loader → blank window →
self-close, with logs like:
network_sandbox.cc: Failed to grant sandbox access ... Cache\Chrome\Network
FATAL: platform_handle_in_transit.cc DuplicateHandle failed ... (0xCB)
The launcher is a Chromium/CEF app. Under Proton's native Wayland driver
(PROTON_ENABLE_WAYLAND=1), CEF/Electron launchers are known to render as blank/white windows; the
updated GameCenter build additionally FATALs on a mojo DuplicateHandle while wiring up its network
service. This is not a Proton-version problem and not a game problem — it's the Wayland driver
vs. CEF.
- Remove
PROTON_ENABLE_WAYLAND(and the HDR vars) from the env. CEF then renders through XWayland (X11), which it handles fine. This is the single most important fix for the blank window. - Keep
--in-process-gpuin the game arguments (helps CEF under Wine). - If the launcher is stuck (blank window that stays), clear the CEF cache once — it forces a clean
rebuild and does not log you out (the login lives in the registry, not in the cache):
GC="$HOME/Games/atomic-heart-vk/drive_c/users/steamuser/AppData/Local/GameCenter" mv "$GC/Cache/Chrome" "$GC/Cache/Chrome.bak"
Note: you cannot fix this by adding Chromium flags (
--no-sandbox,--disable-features=NetworkServiceSandbox) via Lutris — GameCenter rebuilds its child command lines and ignores them. Removing the Wayland driver is the fix.
After the logo, a black 1280×720 window appears, the picture is blurry, and in the menu the cursor only moves within the top-left corner (the 720p zone over a 4K screen).
A mismatch in GameUserSettings.ini: ResolutionSizeX/Y is 4K, but the actual window size is taken
from DesiredScreenWidth/Height=1280×720.
File:
<prefix>/drive_c/users/steamuser/AppData/Local/AtomicHeart/Saved/Config/WindowsNoEditor/GameUserSettings.ini
Set all resolution fields to native (example for 4K):
ResolutionSizeX=3840
ResolutionSizeY=2160
LastUserConfirmedResolutionSizeX=3840
LastUserConfirmedResolutionSizeY=2160
DesiredScreenWidth=3840
DesiredScreenHeight=2160
bUseDesiredScreenHeight=True
LastUserConfirmedDesiredScreenWidth=3840
LastUserConfirmedDesiredScreenHeight=2160The key fields were DesiredScreenWidth/Height. After this: native 4K, cursor across the whole screen.
This build of the game has no HDR setting, so UE4 never activates an HDR swapchain and no HDR is emitted, regardless of which variables you set. The HDR/Wayland env vars are best left off here — they do nothing in-game and (as in Symptom 2) actively break the launcher.
gamescope is not a viable HDR route either: it crashes GameCenter (VKGC), and gamescope-HDR on NVIDIA has been broken since Plasma 6.5.
game:
args: --in-process-gpu # helps the GameCenter CEF window
system:
disable_runtime: true
env:
GAMEID: '0'
LC_ALL: ''
PROTONPATH: /home/<user>/.local/share/Steam/compatibilitytools.d/GE-Proton11-1 # space-free symlink!
WINEDLLOVERRIDES: sl.interposer=
STEAM_COMPAT_CLIENT_INSTALL_PATH: /home/<user>/.local/share/Steam
STEAM_COMPAT_DATA_PATH: /home/<user>/Games/atomic-heart-vk
gamescope: false
wine:
runner_executable: /usr/bin/umu-runNo PROTON_MEDIA_USE_GST, no movie-skipping, no PROTON_ENABLE_WAYLAND/HDR. That's the whole point of
moving to GE-Proton11-1.
For debugging video/MF you can temporarily add:
PROTON_LOG: -all,+loaddll,+module,+warn,+err,+mfplat,+quartz,+dmo
PROTON_LOG_DIR: /home/<user>
- Install the VK Play game via GameCenter (in Lutris through umu-run / GE-Proton).
- Install GE-Proton11-1 (e.g. via ProtonPlus) and make a space-free symlink for it
(Gotcha A). Point
PROTONPATHat the symlink. - Make sure
PROTON_ENABLE_WAYLANDis not set (Symptom 2). Keep--in-process-gpuin args. - Launch → GameCenter UI → Play. The intro movie now plays; the game reaches the menu.
- If it renders at 720p/blurry, fix
GameUserSettings.ini(DesiredScreenWidth/Height) — Symptom 3. - Play.
If for some reason you must stay on GE-Proton 10 (where winedmo cannot play the intro), the pre-GE11 workaround was both of these together:
# 1) skip the crashing startup movies
MOV="$HOME/Games/atomic-heart-vk/pfx/drive_c/VK Play/Atomic Heart/AtomicHeart/Content/Movies"
for f in "$MOV"/Launch_*.mp4; do mv -v "$f" "$f.bak"; done
# revert: for f in "$MOV"/Launch_*.bak; do mv "$f" "${f%.bak}"; done PROTON_MEDIA_USE_GST: '1' # force winegstreamer instead of broken winedmoSkipping the movies alone is not enough on GE10 — an early MF call still crashes winedmo without
PROTON_MEDIA_USE_GST=1. In-game videos will be black on GE10 but won't crash. On GE11 none of this is
needed.
⚠️ VK Play GameCenter verifies the GUP manifest (size + MD5) on check/update and may re-download renamed movie files. A normal launch usually leaves them alone.
- GE-Proton11-1 release notes (GloriousEggroll): complete video-playback rework, gstreamer removed, all DirectShow/Media Foundation routed through the rebuilt winedmo → FFmpeg.
- ProtonDB — Atomic Heart (app 668580): reports about broken videos and skipping startup movies (GE10).
- CachyOS proton-cachyos CHANGELOG — description of the winedmo
Seek()bug (GE10). - Known CEF/Electron-on-Proton issue: launchers render blank under the native Wayland driver;
--in-process-gpuhelps. - ValveSoftware/Proton issue #6554 (Atomic Heart, videos don't render).
Diagnosis done by reverse-engineering winedmo.so and parsing Proton logs.
If this helped, a star is appreciated. PRs confirming other hardware/drivers are welcome.