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

9.6 KiB
Raw Blame History

HTPC Windows Games — Compat Status

Live status of 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

Recently added — not yet tested

Game AppID (signed) AppID (unsigned) Proton Path
VK GameCenter -555655402 3739311894 GE-Proton10-34 /run/media/bazzite/Windows/users/mallexxx/AppData/Local/GameCenter/GameCenter.exe
Atomic Heart VK -475792602 3819174694 GE-Proton10-34 /run/media/bazzite/Data/gamecenter/atomic heart/AtomicHeart.exe

Примечание: требуется авторизация в VK Play через лаунчер. VK Play использует mycomgames:// URL-схему. Atomic Heart официально совместим со Steam Deck/Proton (подтверждено VK Play).

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\"

Moved to Luxtorpeda — need testing

Game AppID Before After Status
Doom 3 BFG 3602815006 GE-Proton10-34 (white screen, audio plays) Luxtorpeda → rbdoom-3-bfg (native Linux engine) LaunchOptions PROTON_USE_WINED3D=1 removed

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 DOSBoxX
Discworld Noir 2361018632 "Please insert disk III" prompt (in Russian, after Cyrillic fix) Russian "Zatmenie v2" 2-CD release. 69 missing files copied . Drive D: → cd2 folder as CD-ROM Try drive D: → cd1; or mount .nrg images
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
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

VDF Incident — 2026-05-27

Что произошло

При попытке добавить VK GameCenter и Atomic Heart VK в shortcuts.vdf через Python vdf.binary_load/dump на работающем Steam, Steam переписал VDF при старте, создав 110 пустых записей-заглушек. Все бэкапы (bak, bak-launch, bak2-6, clean, timestamped) также оказались пустыми — они были сделаны уже после того как Steam испортил файл.

Как восстановили

Обнаружено что shortcuts.vdf.bak-eagle (23 мая, 50720 байт) содержит 106 живых шорткатов. Проблема с vdf.binary_loads — он ищет ключи с точным регистром: AppName, а не appname.

  1. Остановлен Steam (systemctl --user stop gamescope-session-plus@steam.service)
  2. Считан bak-eagle, добавлены записи VK GameCenter (index 106) и Atomic Heart VK (index 107)
  3. AppID в shortcuts.vdf — signed int32; в config.vdf CompatToolMapping добавлены как unsigned uint32
  4. После записи обнаружено несоответствие appid — в config.vdf уже были entries с другими appid от предыдущих попыток
  5. Перегенерация shortcuts.vdf с appid, совпадающими с config.vdf: VK GameCenter = -555655402, Atomic Heart VK = -475792602
  6. Удалены дублирующиеся unsigned записи из config.vdf
  7. Создан бэкап shortcuts.vdf.whale-restored-2026-05-27

Восстановленный backups

  • shortcuts.vdf.bak-eagle — 106 entries, чистый, не тронут
  • shortcuts.vdf.whale-restored-2026-05-27 — 108 entries (106 старых + VK GameCenter + Atomic Heart VK)

Уроки

  • Редактировать shortcuts.vdf ТОЛЬКО при остановленном Steam
  • vdf.binary_loads: ключи с точным регистром (AppName, Exe, а не appname, exe)
  • signed appid в shortcuts.vdf → unsigned (signed & 0xFFFFFFFF) в CompatToolMapping config.vdf
  • Перед добавлением новой пары шорткат+Proton — проверить, нет ли уже CompatToolMapping с нужным appid в config.vdf
  • Делать бэкап ДО любых изменений, а не после

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 AppIDs in config.vdf:
    • GE-Proton10-34: Brawlhalla, Castle Crashers, Worms WMD, Worms WP, Duck Game, Rayman Origins, VK GameCenter, Atomic Heart VK, insaneramzes Atomic Heart
    • Proton 8.0: Atomic Bomberman, Discworld Noir, Metal Slug X, Soldat, Red Alert 3, Split Second
    • Luxtorpeda: Doom 3 BFG
    • Proton Experimental: ~24 remaining games
  • Doom 3 BFG moved to Luxtorpeda → rbdoom-3-bfg (native Linux engine, 2026-05-27)
  • Rayman Legends: Ubisoft Connect copied from Windows partition into prefix + registry
  • Discworld Noir fixes (symlink, Cyrillic locale, missing files, drive D:)
  • 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 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)
  • /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]/ — Discworld Noir source (cd1, cd2, .nrg images)
  • /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)
  2. Atomic Bomberman: create separate 32-bit Wineprefix outside Proton
  3. Discworld Noir: try drive D: → cd1 or mount .nrg images
  4. Metro Exodus: ask user if OK to use Goldberg Steam emulator
  5. Atomic Heart VK: test VK Play авторизацию через Proton, при необходимости — protontricks vcrun2019
  6. Doom 3 BFG: test с Luxtorpeda → rbdoom-3-bfg (должно работать с нативным OpenGL)

Lessons learned / Infra notes

  • shortcuts.vdf is binary VDF; edit only with Steam closed
  • 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
  • protontricks (Flatpak) needs flatpak override --user --filesystem=/var/home/bazzite/.local/share/Steam
  • Parallel protontricks runs on same Proton version conflict
  • xvfb-run protontricks <verb> — MS-redist EXE installers hang on invisible button click. Workaround: copy DLLs from Windows partition
  • For Cyrillic/locale: Proton needs HOST_LANG / HOST_LC_ALL env vars
  • Background jobs that survive SSH disconnect: systemd-run --user --unit=<name>
  • GE-Proton install: extract tar.gz into ~/.steam/steam/compatibilitytools.d/
  • vdf.binary_loads key names are case-sensitive: AppName, not appname
  • signed appid in shortcuts.vdf ↔ unsigned in config.vdf CompatToolMapping