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

125 lines
9.6 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 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