[2026-05-27] HTPC docs: updated with VK Play/Atomic Heart setup, Doom 3 BFG → Luxtorpeda, VDF incident report

This commit is contained in:
Alexey Martemyanov
2026-05-27 17:26:10 +06:00
parent c43a0cd79d
commit bdec542b87
3 changed files with 177 additions and 72 deletions
+96 -37
View File
@@ -1,14 +1,20 @@
---
title: HTPC Bazzite — Proton Compatibility
created: '2026-05-23'
updated: '2026-05-23'
updated: '2026-05-27'
type: tech
namespace: personal
tags: [htpc, infra, how-to, pitfalls]
sources: [family/projects/htpc-windows-games-fix.md]
tags:
- htpc
- infra
- how-to
- pitfalls
- vk-play
- atomic-heart
sources:
- family/projects/htpc-windows-games-fix.md
confidence: medium
---
# HTPC Bazzite — Windows Game Proton Compatibility
Bazzite HTPC at `bazzite@192.168.1.86`. 39 non-Steam Windows games added as
@@ -44,37 +50,46 @@ Game needs `steam_api64.dll` emulator:
### Cyrillic encoding issues (e.g. Discworld Noir)
Try in order:
1. `LANG=ru_RU.UTF-8 %command%` in Steam launch options
2. `WINEDLLOVERRIDES="gdiplus=n,b"`
2. `WINEDLLOVERRIDES=\"gdiplus=n,b\"`
3. Install `ttf-mscorefonts` manually + 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.
Or try `WINEDLLOVERRIDES=\"d3d9=b\"` or an older Proton version.
### Doom 3 BFG Edition (App 208200) — чёрные текстуры, краш после интро
### Doom 3 BFG Edition — чёрные текстуры, краш после интро
Proton Experimental и 7+/8+/9+ ломают текстуры — известный регресс.
**Быстрый фикс**откатить Proton версию:
ПКМ → Свойства → Совместимость → **Proton 5.13** (самый стабильный)
**Лучший фикс**заменить движок через Luxtorpeda:
1. Совместимость → **Luxtorpeda** (установлен в compatibilitytools.d)
2. При запуске выбрать **rbdoom-3-bfg** (нативный Linux движок)
3. LaunchOptions очищены (`PROTON_USE_WINED3D=1` больше не нужен)
**AMD GPU** — launch option:
```
MESA_GL_VERSION_OVERRIDE=4.5COMPAT %command%
```
## VK Play / VK GameCenter на Bazzite
**Лучший долгосрочный фикс** — заменить движок через Luxtorpeda:
1. Установить Luxtorpeda (Steam compatibility tool)
2. Свойства → Совместимость → **Luxtorpeda**
3. При запуске выбрать **rbdoom-3-bfg**
### Общая схема
VK Play версии игр запускаются через лаунчер VK GameCenter (`GameCenter.exe`) поверх Proton. Игра устанавливается средствами VK Play, лаунчер отвечает за авторизацию и лицензирование (в т.ч. Denuvo-эмуляцию).
Или flatpak без Proton:
```
flatpak install flathub io.github.maddecoder.Classic-RBDOOM-3-BFG
```
Указать путь к данным: `~/.local/share/Steam/steamapps/common/DOOM 3 BFG Edition/`
### Steam shortcuts
| Shortcut | AppID (signed) | AppID (unsigned) | Proton | Путь |
|----------|----------------|-------------------|--------|------|
| 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 + Proton: известные проблемы и решения
- **Авторизация:** лаунчер использует `mycomgames://` URL-схему для браузера. Может потребоваться ручной ввод логина/пароля или обработчик схемы (через Lutris конфиг).
- **vcredist:** на Steam Deck гайдах рекомендуется установить Visual C++ runtime через protontricks перед первым запуском.
- **Совместимость:** VK Play официально подтвердил совместимость Atomic Heart со Steam Deck/Proton.
- **Альтернатива через Lutris:** есть готовый `vk_play_lutris.yml` с обработчиком `mycomgames://` схемы (источник: gist.github.com/keyCat).
### Запуск VK Play игры
1. Запустить VK GameCenter через Steam (GE-Proton10-34)
2. Авторизоваться в VK Play
3. Установить игру через лаунчер (в данном случае Atomic Heart установлен заранее)
4. После авторизации игра появится в библиотеке VK Play, можно запускать
## Key Infra Notes
@@ -88,14 +103,23 @@ flatpak install flathub io.github.maddecoder.Classic-RBDOOM-3-BFG
`~/.local/share/Steam`
- **Background protontricks** (survives SSH disconnect):
`systemd-run --user --unit=<name> flatpak run ...`
- **shortcuts.vdf бэкапы:** хранятся в той же папке, именованные `shortcuts.vdf.bak-*`. Автоматический daily backup через saves-backup.service в `/run/media/bazzite/Data/backups/saves/shortcuts/shortcuts.vdf.YYYY-MM-DD`.
## Added Games (2026-05-23)
## BTRFS / Backups
- **saves-backup.service** — systemd user service, ежедневный rsync Steam userdata + копия shortcuts.vdf с ротацией 30 дней.
- После изменений shortcuts.vdf: cp в `shortcuts.vdf.whale-restored-YYYY-MM-DD` в той же папке.
## Added Games
| Game | AppID (unsigned) | Path | Proton |
|------|-----------------|------|--------|
| Atomic Heart | 2234736297 | `/run/media/bazzite/Data/games/atomic.heart.ultimate.edition-insaneramzes/atomicheart.exe` | GE-Proton10-34 |
| Atomic Heart (insaneramzes) | 2234736297 | `/run/media/bazzite/Data/games/atomic.heart.ultimate.edition-insaneramzes/atomicheart.exe` | GE-Proton10-34 |
| VK GameCenter | 3739311894 | `/run/media/bazzite/Windows/users/mallexxx/AppData/Local/GameCenter/GameCenter.exe` | GE-Proton10-34 |
| Atomic Heart VK | 3819174694 | `/run/media/bazzite/Data/gamecenter/atomic heart/AtomicHeart.exe` | GE-Proton10-34 |
| Doom 3 BFG | 3602815006 | `/run/media/bazzite/Data/games/doom 3 bfg edition/doom3bfg.exe` | Luxtorpeda → rbdoom-3-bfg |
## Broken Status (2026-05-22)
## Broken Status
| Game | AppID | Issue | Next |
|------|-------|-------|------|
@@ -113,27 +137,62 @@ flatpak install flathub io.github.maddecoder.Classic-RBDOOM-3-BFG
→ or `SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD=1`
- **Metal Slug X**: wrong speed in Neo-Geo wrapper → check emulator settings
## How to Add a New Game
## How to Add a Non-Steam Game via VDF
**Шаг 0: Остановить Steam**
```
systemctl --user stop gamescope-session-plus@steam.service
```
**Portable (нет установщика)** — скопируй папку на HTPC, переходи к шагу 1.
**Шаг 1: Прочитать shortcuts.vdf backup**
```
python3 -c "
import vdf
with open('shortcuts.vdf.bak-eagle', 'rb') as f:
data = f.read()
d = vdf.binary_loads(data)
# modify d['shortcuts']
with open('shortcuts.vdf', 'wb') as f:
f.write(vdf.binary_dumps(d))
"
```
**С установщиком** — сначала добавь `setup.exe` как шорткат, запусти →
после установки замени путь на основной `.exe`.
**Шаг 2: Добавить CompatToolMapping в config.vdf**
AppID в CompatToolMapping — unsigned uint32.
Если в shortcuts.vdf appid signed (-555655402), то unsigned = signed & 0xFFFFFFFF (3739311894).
**Шаг 1: Добавить шорткат**
Steam → *Игры → Добавить не-Steam игру* → выбери `.exe`
**Шаг 3: Запустить Steam, проверить**
**Шаг 2: Назначить Proton**
ПКМ на игре → Свойства → Совместимость → Proton Experimental
**Критически важно:**
- signed appid в shortcuts.vdf и unsigned в config.vdf — это один и тот же appid
- Не редактировать файлы при запущенном Steam — он перезапишет
- Делать бэкап перед любыми изменениями
- vdf.binary_loads ищет ключи с точным регистром: `AppName`, не `appname`
**Шаг 3: Запустить один раз**
Wine prefix создастся в:
`~/.local/share/Steam/steamapps/compatdata/<AppID>/pfx/`
## VDF Troubleshooting
### shortcuts.vdf испорчен (все записи пустые)
Steam перезаписывает VDF при старте если не понимает ручные правки.
Восстановление: скопировать один из бэкапов (bak-eagle, bak-launch и т.д.) и добавить нужные новые записи заново.
Бэкапы в том же каталоге: `shortcuts.vdf.bak-eagle` (23 мая, 106 записей, последний чистый до экспериментов).
Проверка бэкапа:
```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")
```
### AppID mismatch: shortcuts.vdf vs config.vdf
Steam хранит appid как unsigned uint32 в CompatToolMapping, но в shortcuts.vdf как signed int32. При добавлении нового шортката через VDF нужно сгенерировать новый appid (signed int32) и добавить его же (unsigned) в CompatToolMapping.
### Бэкап после восстановления
```
cp shortcuts.vdf shortcuts.vdf.whale-restored-YYYY-MM-DD
```
## SteamGridDB
@@ -145,4 +204,4 @@ API key хранится в `~/Documents/steamgriddb_api_key.txt` на HTPC.
## See Also
[[personal-os-architecture]] [[obsidian-mcp-wrapper]]
[[personal-os-architecture]] [[obsidian-mcp-wrapper]] [[family/how-to/htpc-steam-nonsteam-shortcuts]]