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

9.6 KiB
Raw Blame History

title, created, updated, type, namespace, tags, sources, confidence
title created updated type namespace tags sources confidence
HTPC Bazzite — Proton Compatibility 2026-05-23 2026-05-27 tech personal
htpc
infra
how-to
pitfalls
vk-play
atomic-heart
family/projects/htpc-windows-games-fix.md
medium

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 Games

Fallout 4, Vladik Brutal, Red Alert 3, GTA V, Cuphead. Samurai Gunn works but gamepad is not detected.

Common Fix Recipes

"Doesn't start" → try vcrun2019

For UE3/UE4 and modern Windows titles missing Visual C++ runtime:

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% in Steam launch options
  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.

Doom 3 BFG Edition — чёрные текстуры, краш после интро

Proton Experimental и 7+/8+/9+ ломают текстуры — известный регресс.

Лучший фикс — заменить движок через Luxtorpeda:

  1. Совместимость → Luxtorpeda (установлен в compatibilitytools.d)
  2. При запуске выбрать rbdoom-3-bfg (нативный Linux движок)
  3. LaunchOptions очищены (PROTON_USE_WINED3D=1 больше не нужен)

VK Play / VK GameCenter на Bazzite

Общая схема

VK Play версии игр запускаются через лаунчер VK GameCenter (GameCenter.exe) поверх Proton. Игра устанавливается средствами VK Play, лаунчер отвечает за авторизацию и лицензирование (в т.ч. Denuvo-эмуляцию).

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

  • shortcuts.vdf: binary VDF at ~/.steam/steam/userdata/147839491/config/shortcuts.vdf Edit with Steam closed: systemctl --user stop gamescope-session-plus@steam.service
  • CompatToolMapping: ~/.steam/steam/config/config.vdf — per-AppID Proton override
  • Wine prefix: ~/.local/share/Steam/steamapps/compatdata/<AppID>/pfx/
  • protontricks: Flatpak, needs xvfb + flatpak filesystem permission to ~/.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.

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 (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

Game AppID Issue Next
Atomic Bomberman 2875360586 DOS-era; 0x0 memory read DOSBox wrapper
Brawlhalla 2410005953 Won't start Try Brawlhalla.exe entry-point
Duck Game 2926094216 XNA 4.0 missing Wait for xna40 install
Worms W.M.D 3846411911 UE3 + anti-tamper vcrun2019 + d3dcompiler_47
Metro Exodus 3594910936 steam_api64.dll Goldberg + appid.txt
Castle Crashers 3048471472 Mini-dump crash vcrun2019 dotnet48

Gamepad Issues

  • Samurai Gunn, Super Bomberman R2: not detected → try Steam Input "Force Off" → "Use Default" cycle → or SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD=1
  • Metal Slug X: wrong speed in Neo-Geo wrapper → check emulator settings

How to Add a Non-Steam Game via VDF

Шаг 0: Остановить Steam

systemctl --user stop gamescope-session-plus@steam.service

Шаг 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))
"

Шаг 2: Добавить CompatToolMapping в config.vdf AppID в CompatToolMapping — unsigned uint32. Если в shortcuts.vdf appid signed (-555655402), то unsigned = signed & 0xFFFFFFFF (3739311894).

Шаг 3: Запустить Steam, проверить

Критически важно:

  • signed appid в shortcuts.vdf и unsigned в config.vdf — это один и тот же appid
  • Не редактировать файлы при запущенном Steam — он перезапишет
  • Делать бэкап перед любыми изменениями
  • vdf.binary_loads ищет ключи с точным регистром: AppName, не appname

VDF Troubleshooting

shortcuts.vdf испорчен (все записи пустые)

Steam перезаписывает VDF при старте если не понимает ручные правки. Восстановление: скопировать один из бэкапов (bak-eagle, bak-launch и т.д.) и добавить нужные новые записи заново.

Бэкапы в том же каталоге: shortcuts.vdf.bak-eagle (23 мая, 106 записей, последний чистый до экспериментов).

Проверка бэкапа:

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

API key хранится в ~/Documents/steamgriddb_api_key.txt на HTPC. Текущий ключ: 5f0a7cb3366dede2c10860a95795ce60 (обновлён: 2026-05-23, regenerated).

Скрипты постеров: ~/scripts/update-artwork.sh (или аналог). Запускать после добавления новых шорткатов.

See Also

personal-os-architecture obsidian-mcp-wrapper family/how-to/htpc-steam-nonsteam-shortcuts