Files
obsidian-vault/family/projects/htpc-windows-games-fix.md
T

7.4 KiB
Raw Blame History

HTPC Windows Games — Compat Status

Live status of 39 non-Steam Windows games added to Steam on Bazzite HTPC (bazzite@192.168.1.86). Setup started 2026-05-22.

Working

  • Fallout 4
  • Vladik Brutal
  • Red Alert 3
  • Rayman Origins (fixed 2026-05-23 — GE-Proton10-34 + WINEDLLOVERRIDES="d3d9=b" %command%)
  • Samurai Gunn (works but gamepad not detected)
  • GTA V, Cuphead (assumed; not retested)

Removed from Steam shortcuts

  • Human Fall Flat (3928445186) — already in real Steam
  • Shovel Knight (2526703384) — already in real Steam

Mapped to GE-Proton10-34 but still broken (need further investigation)

These were swapped to GE-Proton in hopes its bundled VC++/d3dcompiler/dotnet/dxvk-async would fix them. Same symptoms as before — GE-Proton may be reusing the existing prefix's wine state. Next: consider deleting pfx/ to force GE-Proton to regenerate cleanly.

Game AppID Symptom LaunchOpt set
Brawlhalla 2410005953 Doesn't start WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"
Castle Crashers 3048471472 "crash, mini dump sent" WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"
Worms WMD 3846411911 Doesn't start WINEDLLOVERRIDES="msvcp140,vcruntime140,d3dcompiler_47=n,b"
Worms World Party 2401592779 Doesn't start WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"
Duck Game 2926094216 Won't launch WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"
Doom 3 BFG 3602815006 White screen, audio plays PROTON_USE_WINED3D=1 %command%

Still broken — fundamental issues

Game AppID Symptom What's known What might help
Atomic Bomberman / BM95 2875360586 Crash "instruction at 0x0 referenced 0x7" before main window Win3.1-era PE32 (Windows 4.00 subsystem). Tried: proton_8, registry Version=win98, virtual desktop 640×480, [Services\WineBus] Map Controllers=0 + Enable SDL=0, LaunchOpt SDL_JOYSTICK_DISABLE=1 Run in dedicated 32-bit Wineprefix (WINEARCH=win32); try Wine ≤ 9.x; or DOSBox-X (despite being PE32, the game has DOS-like 16-bit color expectations)
Discworld Noir 2361018632 "Please insert disk III" prompt (in Russian, after Cyrillic fix) Russian "Zatmenie v2" 2-CD release. install.lst only references M1+M2. Source has 233 files in cd1 / 85 files in cd2; installed had 16 files missing — copied 69 missing files into cd2 ; original cd3 / cd4 folders are empty (Russian release packs everything into 2 CDs). Now mapped drive D: → cd2 folder in prefix as CD-ROM type Try drive D: → cd1 instead; or mount the dwnrus_1_v2.nrg / dwnrus_2.nrg images with udisksctl and bind-mount; or check dwnoir.dll for hardcoded paths
Final Fantasy X HD 2642741094 Was Japanese, no saves GameSetting.ini Language=jp → en (copied from Windows) Test pending
Metal Slug X 2938712902 Speed wrong, controls dead (none) Neo-Geo emulator config issue, not Wine
Metro Exodus 3594910936 "Unable to create interface isteamuser" VC++ runtime copied; LaunchOpt WINEDLLOVERRIDES Needs Goldberg steam_api64.dll emulator + steam_appid.txt (game expects real Steam install) — DRM-adjacent
Split Second 3871231787 Green artifacts LaunchOpt PROTON_USE_WINED3D=1 Switch to GE-Proton; or copy d3dx9_*.dll from Windows
Super Bomberman R2 3340354231 Gamepad not detected (none) Steam Input config issue

Fixes done (filesystem / config / cover-art)

  • Cover art swapped: Atomic Bomberman, Discworld Noir, SBR2, FFVI, ALttP, Sunset Riders
  • "Captain Commando" Steam shortcut renamed → "Sunset Riders"
  • CompatToolMapping for all 39 AppIDs in config.vdf
    • GE-Proton10-34: Brawlhalla, Castle Crashers, Worms WMD, Worms WP, Duck Game, Rayman Origins, Doom 3 BFG (7 games)
    • Proton 8.0: Atomic Bomberman, Discworld Noir, Metal Slug X, Soldat, Red Alert 3, Split Second (6 games)
    • Proton Experimental: ~24 remaining games
  • Rayman Legends: Ubisoft Connect copied from Windows partition into prefix + registry HKLM\Software\Wow6432Node\Ubisoft\Launcher\InstallDir
  • Discworld Noir:
    • C:\Discworld Noir symlink → game folder
    • LaunchOpt HOST_LANG=ru_RU.UTF-8 HOST_LC_ALL=ru_RU.UTF-8 LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8 %command% (Cyrillic now renders)
    • corefonts installed via protontricks
    • 69 missing files copied from /Data/downloads/zatmenie v2 [torrents.ru]/cd2/ to game's cd2
    • Drive D: → cd2 folder, marked as CD-ROM in [Software\Wine\Drives]
  • FFX HD: GameSetting.ini replaced with English+HD version
  • VC++ runtime DLLs + d3dcompiler_43/47 copied into 6 prefixes from Windows partition
  • Duck Game prefix: XNA 4.0 framework dir copied from Windows
  • Atomic Bomberman prefix: Version=win98 + virtual desktop 640×480 + WineBus controller mapping disabled
  • GE-Proton10-34 installed to ~/.steam/steam/compatibilitytools.d/

Source assets discovered on Windows partition

  • /run/media/bazzite/Windows/Program Files (x86)/Ubisoft/ubisoft game launcher/ (595 MB) — used for Rayman Legends prefix
  • /run/media/bazzite/Windows/Windows/System32/ and SysWOW64/ — VC++ runtime, d3dcompiler, xinput DLLs
  • /run/media/bazzite/Windows/Program Files (x86)/Microsoft XNA/ — XNA 4.0 Framework
  • /run/media/bazzite/Windows/Microsoft.NET/Framework64/v4.0.30319/ — .NET 4.0
  • /run/media/bazzite/Data/downloads/zatmenie v2 [torrents.ru]/ — original Discworld Noir Russian 2-CD source (cd1, cd2, dwnrus_1_v2.nrg, dwnrus_2.nrg)
  • /run/media/bazzite/Windows/Users/mallexxx/documents/square enix/... — FFX gamesetting.ini

Open questions / next steps

  1. Try deleting pfx/ folders for the still-broken GE-Proton games (Brawlhalla, Castle Crashers, Worms WMD/WP, Duck Game) to force fresh prefix creation with GE-Proton's bundled runtimes
  2. Doom 3 BFG: investigate gamescope+OpenGL interaction (the game uses OpenGL natively, not D3D; white screen suggests gamescope/X11 swap issue, not DXVK)
  3. Atomic Bomberman: create a separate 32-bit WINEARCH=win32 prefix outside Proton, install game there, wrap as launcher script
  4. Discworld Noir: if drive D: → cd2 doesn't satisfy CD check, try cd1 or mount one of the .nrg images
  5. Metro Exodus: ask user if OK to use Goldberg Steam emulator

Lessons learned / Infra notes

  • shortcuts.vdf is binary VDF; edit only with Steam closed (systemctl --user stop gamescope-session-plus@steam.service)
  • config.vdf is text VDF; CompatToolMapping block controls per-AppID Proton
  • Steam reads both vdfs on startup, writes back from in-memory state on exit → any edit while Steam running will be lost
  • protontricks (Flatpak) needs flatpak override --user --filesystem=/var/home/bazzite/.local/share/Steam
  • Parallel protontricks runs on same Proton version conflict on the shared bin cache — must sequence
  • xvfb-run protontricks <verb> — MS-redist EXE installers (dotnet40, VC_redist) hang on invisible button click. Workaround: copy DLLs from Windows partition + WINEDLLOVERRIDES="dll1,dll2=n,b" %command%
  • For Cyrillic/locale: Proton needs HOST_LANG / HOST_LC_ALL env vars to propagate locale into prefix
  • Background jobs that survive SSH disconnect: systemd-run --user --unit=<name>
  • GE-Proton install: download tar.gz from github.com/GloriousEggroll/proton-ge-custom/releases/latest, extract into ~/.steam/steam/compatibilitytools.d/, restart Steam — tool name in CompatToolMapping matches the extracted directory name (e.g. GE-Proton10-34)