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

62 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- 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
## Still broken — fixes attempted but no change
| Game | AppID | Symptom | Tried | Possible next steps |
|---|---|---|---|---|
| Atomic Bomberman / BM95 | 2875360586 | crash "instruction at 0x0 referenced 0x7" before main window | `proton_8`; registry `[Software\Wine] Version=win98`; virtual desktop 640×480 via `[Software\Wine\Explorer\Desktops] Default=640x480` | Run in separate **32-bit Wineprefix** (`WINEARCH=win32`); `wine explorer /desktop=foo,640x480 bm95.exe` wrapper; unplug gamepad |
| Brawlhalla | 2410005953 | Doesn't start | Switched to `proton_8`; VC++ runtime copied from Windows; LaunchOpt `WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"` | Try Brawlhalla launcher .exe instead of `BrawlhallaGame.exe` (Adobe AIR-based — needs AIR runtime); ProtonGE; native Linux client |
| Castle Crashers | 3048471472 | "crash, mini dump sent" | VC++ runtime copied; LaunchOpt `WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"` | Verify DLL overrides loaded (`WINEDEBUG=+loaddll`); try `proton_10`; install d3dx9 via copying from Windows |
| Discworld Noir | 2361018632 | Cyrillic still shows as `?????` | `C:\Discworld Noir` symlink; corefonts; LaunchOpt `HOST_LANG/HOST_LC_ALL=ru_RU.UTF-8 LANG/LC_ALL=ru_RU.UTF-8 %command%` | Add registry font substitutions for Tahoma/Arial; install `cjkfonts` + `fakerussian`; try Steam Tinker Launch with explicit `LANG` |
| Doom 3 BFG | 3602815006 | White screen, audio plays | `proton_10`; LaunchOpt `PROTON_USE_WINED3D=1` | Try `proton_8`; `+set r_useOpenGL32 1`; install **gallium-nine** (real D3D9 native); check OpenGL/Mesa errors via `WINEDEBUG=+d3d` |
| Duck Game | 2926094216 | Won't launch | VC++ + XNA 4.0 copied from Windows; LaunchOpt `WINEDLLOVERRIDES="msvcp140,vcruntime140=n,b"`; xna40 install **aborted** (hung in dotnet40) | Try `proton_10`; install **ProtonGE** (best XNA/FNA support); copy `.NET 4.0` from Windows Framework + register GAC |
| Final Fantasy X HD | 2642741094 | Was Japanese, no saves | `GameSetting.ini Language=jp → en` (copied from Windows) | **Test pending** — should work after this |
| Metal Slug X | 2938712902 | Speed wrong, controls dead | (none) | Neo-Geo emulator config issue, not Wine — needs game-side fix or different emulator |
| Metro Exodus | 3594910936 | "Unable to create interface isteamuser" | VC++ runtime copied; LaunchOpt `WINEDLLOVERRIDES` | Need Goldberg `steam_api64.dll` emulator + `steam_appid.txt` (game expects real Steam install) |
| Rayman Origins | 4002021894 | Sprites missing (shadow only) + broken gamma | `proton_8`; LaunchOpt cycle: `PROTON_USE_WINED3D=1``WINEDLLOVERRIDES="d3d9=b"` | Try `proton_experimental`; ProtonGE; or `dgVoodoo2` wrapper |
| Split Second | 3871231787 | Green artifacts | LaunchOpt `PROTON_USE_WINED3D=1` | Try `proton_10`; copy native `d3dx9_*.dll` from Windows |
| Super Bomberman R2 | 3340354231 | Gamepad not detected | (none) | Steam Input config issue — toggle in controller settings |
| Worms World Party | 2401592779 | Doesn't start | VC++ runtime copied; LaunchOpt `WINEDLLOVERRIDES` | Try `proton_10`; check stderr via `PROTON_LOG=1` |
| Worms W.M.D | 3846411911 | Doesn't start | VC++ + d3dcompiler_47 copied; LaunchOpt `WINEDLLOVERRIDES="msvcp140,vcruntime140,d3dcompiler_47=n,b"` | Same — check `PROTON_LOG=1` output |
## Fixes done this session (filesystem / config)
- Cover art swapped (Atomic Bomberman, Discworld Noir, SBR2, FFVI, ALttP, Sunset Riders)
- "Captain Commando" Steam shortcut renamed → "Sunset Riders"
- `CompatToolMapping` added for all 39 AppIDs in `config.vdf` (32 → `proton_experimental`, 7 → `proton_8`, 1 → `proton_10`)
- Rayman Legends: Ubisoft Connect copied from Windows partition into prefix + registry `HKLM\Software\Wow6432Node\Ubisoft\Launcher\InstallDir` added
- Discworld Noir: `C:\Discworld Noir` symlink → `/run/media/bazzite/Data/games/discnoir`
- FFX HD: `GameSetting.ini` replaced with English+HD version from Windows
- VC++ runtime DLLs (`vcruntime*`, `msvcp*`, `concrt*`, `msvcr*`) copied from `Windows/System32` (+ `SysWOW64`) into 6 prefixes (Castle Crashers, Worms WMD, Worms WP, Duck Game, Brawlhalla, Metro Exodus)
- `d3dcompiler_43.dll` / `d3dcompiler_47.dll` copied into same prefixes
- XNA 4.0 framework dir copied from `Program Files (x86)/Microsoft XNA` into Duck Game prefix
- Atomic Bomberman prefix: `Version=win98` registry + virtual desktop 640×480
## Lessons learned / Infra notes
- `shortcuts.vdf` is binary VDF; edit only with Steam closed (`systemctl --user stop gamescope-session-plus@steam.service`); restart `start` after
- `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 `~/.var/app/com.github.Matoking.protontricks/cache/protontricks/proton/Proton X/bin` — must sequence
- `xvfb-run protontricks <verb>` — MS-redist EXE installers (dotnet40, VC_redist) **hang on invisible button click** in xvfb. Cannot install this way. **Solution:** copy DLLs from Windows partition directly + use `WINEDLLOVERRIDES="dll1,dll2=n,b" %command%` launch option
- For Cyrillic/locale: Proton needs `HOST_LANG` / `HOST_LC_ALL` env (not just `LANG`/`LC_ALL`) to propagate host locale into prefix
- Background jobs that survive SSH disconnect: `systemd-run --user --unit=<name>`
## Open questions for next session
- Confirm if FFX language fix worked (test pending)
- Confirm Cyrillic in Discworld Noir after locale env fix
- Decide on installing ProtonGE via ProtonPlus (one-click via Desktop Mode) — would likely resolve Brawlhalla, Castle Crashers, Duck Game, Rayman Origins, Worms WMD/WP in one swoop
- Goldberg Steam emu for Metro Exodus (DRM-adjacent, needs user OK)