87 lines
7.4 KiB
Markdown
87 lines
7.4 KiB
Markdown
# 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`)
|