[2026-05-27] HTPC docs: updated with VK Play/Atomic Heart setup, Doom 3 BFG → Luxtorpeda, VDF incident report
This commit is contained in:
+96
-37
@@ -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]]
|
||||
|
||||
Reference in New Issue
Block a user