Files
obsidian-vault/wiki/htpc-bazzite-proton.md
T

274 lines
14 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.
---
confidence: medium
created: '2026-05-23'
namespace: personal
sources:
- family/projects/htpc-windows-games-fix.md
tags:
- htpc
- infra
- how-to
- pitfalls
- vk-play
- atomic-heart
- vdf
- doom
title: HTPC Bazzite — Proton Compatibility
type: tech
updated: '2026-05-27'
---
# HTPC Bazzite — Windows Game Proton Compatibility
Bazzite HTPC at `bazzite@192.168.1.86`. 39 non-Steam Windows games added as
Steam shortcuts (2026-05-22). Default tool: Proton Experimental; older titles
on Proton 8.0.
---
## 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)
- **Doom 3 BFG Edition** (2026-05-27 — **Classic-RBDOOM-3-BFG** flatpak, native Linux engine)
## 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 (unsigned) | Proton | Path |
|------|------------------|--------|------|
| VK GameCenter | 2321627338 | GE-Proton10-34 | `/run/media/bazzite/Windows/users/mallexxx/AppData/Local/GameCenter/GameCenter.exe` |
| Atomic Heart VK | 3867240821 | GE-Proton10-34 | `/run/media/bazzite/Data/gamecenter/atomic heart/AtomicHeart.exe` |
## Mapped to GE-Proton10-34 but still broken
| 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"` |
## Still broken — fundamental issues
| Game | AppID | Symptom | What's known | What might help |
|------|-------|---------|--------------|-----------------|
| Atomic Bomberman / BM95 | 2875360586 | Crash "instruction at 0x0 referenced 0x7" | Win3.1-era PE32. Tried: `proton_8`, registry `Version=win98`, virtual desktop 640×480, WineBus controllers off | Dedicated 32-bit `WINEARCH=win32`; or DOSBoxX |
| Discworld Noir | 2361018632 | "Please insert disk III" | Russian 2-CD "Zatmenie v2". 69 missing files copied ✅. Drive D: → cd2 as CD-ROM | Try cd1; or mount `.nrg` images |
| Final Fantasy X HD | 2642741094 | Was Japanese, no saves | `GameSetting.ini` replaced (en+HD) from Windows | Test pending |
| Metal Slug X | 2938712902 | Speed wrong, controls dead | Neo-Geo emulator config issue, not Wine | — |
| Metro Exodus | 3594910936 | "Unable to create interface isteamuser" | VC++ runtime copied | Needs Goldberg `steam_api64.dll` + `steam_appid.txt` |
| Split Second | 3871231787 | Green artifacts | `PROTON_USE_WINED3D=1` | Switch to GE-Proton; copy `d3dx9_*.dll` |
| Super Bomberman R2 | 3340354231 | Gamepad not detected | Steam Input config issue | — |
## Gamepad Issues
- **Samurai Gunn, Super Bomberman R2**: not detected → Steam Input "Force Off" / "Use Default" cycle; or `SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD=1`
- **Metal Slug X**: wrong speed in Neo-Geo wrapper
---
## Common Fix Recipes
### "Doesn't start" → try vcrun2019
```
protontricks <AppID> vcrun2019 d3dcompiler_47
```
### XNA 4.0 games (Duck Game, etc.)
```
protontricks <AppID> xna40
```
### DOS-era games (e.g. Atomic Bomberman)
Proton won't work. Use **Steam Tinker Launch** → wrap with DOSBox (dosbox-staging).
### Non-Steam copy of a Steam game (e.g. Metro Exodus)
Game needs `steam_api64.dll` emulator:
1. Drop in Goldberg `steam_api64.dll`
2. Add `steam_appid.txt` with the real App ID (e.g. 412020 for Metro Exodus Enhanced)
### Cyrillic encoding issues (e.g. Discworld Noir)
Try in order:
1. `LANG=ru_RU.UTF-8 %command%`
2. `WINEDLLOVERRIDES="gdiplus=n,b"`
3. Install `ttf-mscorefonts` + set Cyrillic codepage in Wine registry
### White screen / broken D3D9 (Rayman Origins, Split Second)
```
PROTON_USE_WINED3D=1 %command%
```
Or try `WINEDLLOVERRIDES="d3d9=b"` or an older Proton version.
### Doom 3 BFG Edition — чёрные текстуры, краш после интро
Proton ломает текстуры — известный регресс. **Фикс:** Classic-RBDOOM-3-BFG (Doom BFA) через flatpak.
**Подробнее:**
1. Установлен `io.github.maddecoder.Classic-RBDOOM-3-BFG` (flathub, user)
2. Шорткат в Steam: `exe="/usr/bin/flatpak"`, `LaunchOptions=run io.github.maddecoder.Classic-RBDOOM-3-BFG +set fs_basepath "/run/media/bazzite/Data/games/doom 3 bfg edition" +set com_skipIntro 1`
3. CompatToolMapping не требуется — flatpak запускается нативно
4. Legacy путь Luxtorpeda не подошёл — non-Steam шорткаты не ассоциируются с его пакетами
---
## VK Play / VK GameCenter на Bazzite
### Общая схема
VK Play версии игр запускаются через лаунчер VK GameCenter (`GameCenter.exe`) поверх Proton. Лаунчер отвечает за авторизацию и лицензирование (в т.ч. Denuvo-эмуляцию). Игра устанавливается средствами VK Play.
### Статус (2026-05-27)
- Шорткаты VK GameCenter и Atomic Heart VK добавлены
- CompatToolMapping настроен на GE-Proton10-34
- **Не запускаются** — при запуске Steam пишет `cannot execute binary file`, потому что не применяет Proton для non-Steam exe на `/run/media/` монтировке.
- **Решение:** требуется рестарт Steam, чтобы он перечитал config.vdf (в данный момент config.vdf не синхронизирован с shortcuts.vdf)
### Известные нюансы
- VK Play официально подтвердил совместимость Atomic Heart со Steam Deck/Proton
- Для авторизации используется `mycomgames://` URL-схема
- Альтернатива: Lutris с конфигом из gist.github.com/keyCat (обработчик схемы)
- При первом запуске может понадобиться `protontricks <appid> vcrun2019`
---
## How to Add a Non-Steam Game via VDF
**Шаг 0: Остановить Steam**
```
systemctl --user stop gamescope-session-plus@steam.service
```
**Шаг 1: Прочитать shortcuts.vdf backup**
AppID в shortcuts.vdf — signed int32. В config.vdf CompatToolMapping — unsigned uint32.
```python
import vdf
with open('shortcuts.vdf.bak-eagle', 'rb') as f:
d = vdf.binary_loads(f.read())
# edit d['shortcuts']
with open('shortcuts.vdf', 'wb') as f:
f.write(vdf.binary_dumps(d))
```
**Шаг 2: Добавить CompatToolMapping в config.vdf**
Unsigned appid = signed & 0xFFFFFFFF.
**Шаг 3: Запустить Steam, проверить**
**Критически важно:**
- Редактировать ТОЛЬКО при остановленном Steam
- Делать бэкап **до** изменений
- `vdf.binary_loads` — регистрозависим: `AppName`, `Exe`, а не `appname`, `exe`
- Steam переписывает config.vdf при shutdown — если изменить config.vdf пока Steam работает, изменения пропадут
- Для non-Steam шорткатов Steam может не применить Proton, даже если CompatToolMapping правильный — нужен рестарт Steam для синхронизации
---
## VDF Troubleshooting
### shortcuts.vdf испорчен (все записи пустые)
Steam перезаписывает VDF при старте если не понимает ручные правки. Восстанавливай из бэкапа.
**Бэкапы**`~/.steam/steam/userdata/147839491/config/`):
| Файл | Дата | Entries | Примечание |
|------|------|---------|------------|
| `shortcuts.vdf.bak-eagle` | 23 мая 18:32 | 106 | **Последний чистый бэкап** — не тронут |
| `shortcuts.vdf.bak-launch` | 22 мая 22:25 | 108 | Старый, без Atomic Heart |
| `shortcuts.vdf.whale-restored-YYYY-MM-DD` | по ситуации | 108 | Текущее состояние после восстановления |
| `/run/media/bazzite/Data/backups/saves/shortcuts/shortcuts.vdf.YYYY-MM-DD` | daily | — | Автоматический через saves-backup.service |
Проверка бэкапа:
```python
import vdf
with open("shortcuts.vdf.bak-eagle", "rb") as f:
d = vdf.binary_loads(f.read())
named = sum(1 for e in d["shortcuts"].values() if e.get("AppName"))
print(f"{named} named entries")
```
### VDF Incident — 2026-05-27 (разбор)
**Что произошло:** при попытке добавить VK GameCenter + Atomic Heart VK через Python vdf на работающем Steam, Steam переписал файл при старте, создав 110 пустых записей-заглушек.
**Почему бэкапы тоже пустые:** все бэкапы были сделаны уже после того как Steam испортил файл. Единственный выживший — `bak-eagle` (23 мая, до начала экспериментов).
**Как нашли:** hexdump показал имена игр, но `vdf.binary_loads` не видел их — проблема в регистре ключей (`AppName`, а не `appname`).
**Как восстановили:**
1. Остановлен Steam
2. Считан `bak-eagle` + добавлены VK GameCenter и Atomic Heart VK
3. Обнаружено несоответствие appid между shortcuts и config
4. Перегенерация с правильными appid
5. Создан `shortcuts.vdf.whale-restored-2026-05-27`
**Уроки:**
- Только при остановленном Steam
- Бэкап ДО изменений
- Проверять signed↔unsigned соответствие
- Регистр ключей в vdf.binary_loads
### VK GameCenter не запускается — причины и диагностика
**Сценарий:** "Steam читает config.vdf при старте, запоминает CompatToolMapping. Если config.vdf меняется пока Steam работает — изменения не применяются до рестарта. Steam при shutdown переписывает config.vdf своим состоянием в памяти."
**Диагностика:**
1. `journalctl --user -u gamescope-session-plus@steam.service | grep "cannot execute binary"` — Steam не применяет Proton
2. Проверить что unsigned appid из shortcuts.vdf (`appid & 0xFFFFFFFF`) совпадает с ключом в CompatToolMapping config.vdf
3. Проверить что config.vdf не был переписан Steam — сравнить с бэкапом
---
## Key Infra Notes
- **shortcuts.vdf**: `~/.steam/steam/userdata/147839491/config/shortcuts.vdf` (binary VDF)
- **config.vdf**: `~/.steam/steam/config/config.vdf` (text VDF, CompatToolMapping block)
- **Wine prefix**: `~/.local/share/Steam/steamapps/compatdata/<AppID>/pfx/`
- **protontricks**: Flatpak, needs `flatpak override --user --filesystem=/var/home/bazzite/.local/share/Steam`
- **Background jobs**: `systemd-run --user --unit=<name>`
- **GE-Proton**: extract tar.gz into `~/.steam/steam/compatibilitytools.d/`, restart Steam
- **Classic-RBDOOM-3-BFG**: `flatpak install --user flathub io.github.maddecoder.Classic-RBDOOM-3-BFG`
### saves-backup.service
Systemd user service (`/etc/systemd/user/saves-backup.service`):
- Ежедневный rsync Steam userdata
- Копия shortcuts.vdf в `/run/media/bazzite/Data/backups/saves/shortcuts/shortcuts.vdf.YYYY-MM-DD`
- Ротация: удаление старше 30 дней
---
## Fixes Done (filesystem / config / cover-art)
- Cover art swapped: Atomic Bomberman, Discworld Noir, SBR2, FFVI, ALttP, Sunset Riders
- "Captain Commando" → "Sunset Riders"
- Doom 3 BFG: **Classic-RBDOOM-3-BFG flatpak** (2026-05-27) — работает ✅
- CompatToolMapping for all AppIDs:
- **GE-Proton10-34**: Brawlhalla, Castle Crashers, Worms WMD/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
- **Proton Experimental**: ~24 remaining games
- Rayman Legends: Ubisoft Connect + registry fix
- Discworld Noir: symlink, Cyrillic locale, missing files, drive D: as CD-ROM
- FFX HD: English `GameSetting.ini`
- VC++ runtime + d3dcompiler DLLs copied into 6 prefixes from Windows partition
- Duck Game: XNA 4.0 framework dir copied
- Atomic Bomberman: `Version=win98` + virtual desktop 640×480 + WineBus controllers off
- GE-Proton10-34 installed
## Source Assets (Windows partition)
- Ubisoft Game Launcher: `/run/media/bazzite/Windows/Program Files (x86)/Ubisoft/`
- System DLLs: `/run/media/bazzite/Windows/Windows/System32/`, `SysWOW64/`
- XNA 4.0: `/run/media/bazzite/Windows/Program Files (x86)/Microsoft XNA/`
- .NET 4.0: `/run/media/bazzite/Windows/Microsoft.NET/Framework64/v4.0.30319/`
- Discworld Noir source: `/run/media/bazzite/Data/downloads/zatmenie v2 [torrents.ru]/`
- FFX settings: `/run/media/bazzite/Windows/Users/mallexxx/documents/square enix/...`
## Open Questions
1. Delete `pfx/` folders for still-broken GE-Proton games (Brawlhalla, Castle Crashers, Worms WMD/WP, Duck Game)
2. Atomic Bomberman: 32-bit Wineprefix outside Proton
3. Discworld Noir: try cd1 or mount `.nrg` images
4. Metro Exodus: Goldberg Steam emulator?
5. **Atomic Heart VK:** не запускается — config.vdf не синхронизирован с shortcuts.vdf, нужен рестарт Steam
6. **VK GameCenter:** та же проблема
## See Also
[[personal-os-architecture]] [[obsidian-mcp-wrapper]] [[family/how-to/htpc-steam-nonsteam-shortcuts]]