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

87 lines
7.4 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
- **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`)