# 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 DOSBox‑X | | 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 ` — 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=` - 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