diff --git a/.stversions/.obsidian/workspace-mobile.json b/.stversions/.obsidian/workspace-mobile.json index 4170e625..903dc0fd 100755 --- a/.stversions/.obsidian/workspace-mobile.json +++ b/.stversions/.obsidian/workspace-mobile.json @@ -141,12 +141,12 @@ "state": { "type": "markdown", "state": { - "file": "family/documents/games-wishlist.md", + "file": "personal/projects/personal-os/wiki-curation-runs/2026-05-23.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "games-wishlist" + "title": "2026-05-23" } }, { @@ -290,7 +290,7 @@ } } ], - "currentTab": 19 + "currentTab": 9 } ], "direction": "vertical" @@ -306,7 +306,7 @@ "type": "file-explorer", "state": { "sortOrder": "alphabetical", - "autoReveal": false + "autoReveal": true }, "icon": "lucide-folder-closed", "title": "Файловый менеджер" @@ -318,7 +318,7 @@ "state": { "type": "search", "state": { - "query": "Мерседес", + "query": "Bazzite", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -445,8 +445,15 @@ "bases:Создать новую базу": false } }, - "active": "98d78f21d10301ba", + "active": "6fbf0b97dfa87f9b", "lastOpenFiles": [ + "personal/projects/personal-os/wiki-curation-runs/2026-05-28.md", + "family/how-to/htpc.md", + "family/how-to/htpc-bazzite-proton.md", + "personal/projects/personal-os/wiki-curation-runs/2026-05-23.md", + "family/documents/games-wishlist.md", + "personal/books-wishlist.md", + "personal/documents/learning-list.md", "personal/documents/3d-print-wishlist.md", "personal/documents/books-reading-list.md", "family/documents/books-reading-list.md", @@ -454,7 +461,6 @@ "personal/projects/balda/workspace-context.md", "personal/projects/balda/soul.md", "personal/shopping-order.md", - "personal/books-wishlist.md", "personal/documents/fly-box.md", "family/documents/car-notes.md", "work/briefs/inbox/2026-06-05-1630.md", @@ -469,12 +475,6 @@ "personal/projects/eagle-dashboard.md", "personal/gift-ideas.md", "work/briefs/daily/2026-06-04.md", - "family/contacts/services.md", - "personal/index.md", - "family/documents/recipes-wishlist.md", - "work/zoom-personal-link.md", - "personal/documents/music-recommendations.md", - "personal/documents/medical-notes.md", "work/briefs/daily", "work/briefs/weekly", "work/briefs/inbox", diff --git a/.stversions/family/how-to/htpc-bazzite-proton.md b/.stversions/family/how-to/htpc-bazzite-proton.md new file mode 100755 index 00000000..120c7b98 --- /dev/null +++ b/.stversions/family/how-to/htpc-bazzite-proton.md @@ -0,0 +1,455 @@ +--- +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-06-01' +--- +# 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) +- **VK GameCenter** (GE-Proton10-34, `Data/gamecenter/GameCenter/`) +- **Discworld Noir (NQ)** — работает, сейвы грузятся ✅ +- **Doom 3 BFG** (через flatpak Classic-RBDOOM-3-BFG) +- **Worms W.M.D (native Linux)** — ✅ запускается (MojoSetup-инсталлятор, rutracker, не Proton) + +## Removed from Steam shortcuts ✅ +- Human Fall Flat (3928445186) — already in real Steam +- Shovel Knight (2526703384) — already in real Steam + +## Mapped to GE-Proton10-34 but still broken + +| Game | AppID | Symptom | Diagnosis | 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 World Party Remastered | 2401592779 | Лог: `Steam denied appID 2401592779`. **Вывод:** GOG, `w2.exe` со вшитым Steamworks SDK — игра дёргает `SteamAPI_Init()` с хардкодом 270910, Steam проверяет лицензию → denied. `steam_appid.txt` не помогает. Фундаментально неработоспособна через Proton как non-Steam без обхода Steam API. | — | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | +| Duck Game | 2926094216 | Won't launch | — | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | + +## Epic Games & GOG — Heroic Launcher + +### Игры + +| Игра | Источник | Статус | +|------|----------|--------| +| GTA V | Epic Games | ✅ уже в списке (Working) | +| Fall Guys | Epic Games | 📥 к установке | +| Borderlands: The Handsome Collection | Epic Games | 📥 к установке | +| Sid Meier's Civilization® VI | Epic Games | 📥 к установке | +| Grand Theft Auto V: Premium Edition | Epic Games | 📥 к установке (дубль GTA V?) | +| Hitman Absolution | GOG.com | ⬇️ скачивается | + +### Как установить Epic Games игры через Heroic + +1. **Установить Heroic Games Launcher** (если ещё нет): + ```bash + flatpak install flathub com.heroicgameslauncher.hgl + ``` + +2. **Войти в Epic Games:** + Heroic → Login → Epic Games → авторизация через браузер + +3. **Установить игру:** + Library → найти игру → Install → выбрать путь: + `/run/media/system/Data/games/` + +4. **Настроить Proton:** + Heroic → игра → Settings → Wine → выбрать GE-Proton + (скачать через Heroic → Wine Manager если ещё нет) + +5. **Добавить в Steam для Gaming Mode:** + Heroic → игра → правая кнопка → Add to Steam + Игра появится как non-Steam shortcut, запускается через gamescope + +6. **Обложки:** + После добавления в Steam запустить `fix_artwork.py` для арта с SteamGridDB + +### GOG игры через Heroic + +Аналогично Epic — Heroic поддерживает GOG нативно: +1. Heroic → Login → GOG → авторизация +2. Library → GOG tab → Install + +--- + +## Target: + +## Unravel — EA App, вылет после "preparing game" + +**Steam AppID:** 1225560 +**Статус:** broken — вылетает после "preparing game" на GE-Proton10-34 + +### План фикса + +1. **Заменить EAappInstaller.exe** — скачать свежий (~2 MB) с [EA CDN](https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe) и переписать: + ``` + /run/media/system/Data/Steam/steamapps/common/Unravel/__Installer/Origin/redist/internal/EAappInstaller.exe + ``` + +2. **Включить GE-Proton10-34** для Unravel (Properties → Compatibility → Force GE-Proton10-34) + +3. **Launch Options:** `PROTON_USE_WINED3D=1 %command%` + +4. После запуска — EA app установится, привязать аккаунт EA к Steam, дальше работает + +### Источник +[Steam Guide — Unravel on Linux](https://steamcommunity.com/sharedfiles/filedetails/?id=3695395873) (Foxidy Fox, 2026-03-29) + +## Still broken — fundamental issues + +| Game | AppID | Symptom | What's known | What might help | +| ---------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------- | +| FPC Atomic Bomberman ✅ | -1009122144 (unsigned: 3285845152) | Native Linux SDL-порт (FPC). Работает: геймпад, музыка. Причина: `sleep 5` в LaunchOptions. Win95-шорткат (BM95.EXE) удалён. Артворки скопированы. | Путь в `/run/media/bazzite/Data/Games/fpc_atomic/`. | ✅ Фикс: `sleep 5 && LD_LIBRARY_PATH=/run/media/bazzite/Data/Games/fpc_atomic %command%` | +| Atomic Heart VK | — | ✅ Авторизация сделана, игра обновлена. Запуск тестируется. | 97GB, GameCenter, shared prefix | — | +| 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 | — | +| 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 vcrun2019 d3dcompiler_47 +``` + +### XNA 4.0 games (Duck Game, etc.) +``` +protontricks xna40 +``` + +### DOS-era games +Proton won't work. Use **Steam Tinker Launch** → wrap with DOSBox (dosbox-staging). + +### Non-Steam copy of a Steam game +Game needs `steam_api64.dll` emulator: +1. Drop in Goldberg `steam_api64.dll` +2. Add `steam_appid.txt` with the real App ID + +### 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 ломает текстуры — известный регресс. **Фикс:** Luxtorpeda → rbdoom-3-bfg (native Linux engine). + +--- + +## VK Play / VK GameCenter на Bazzite + +### Аккаунты VK Play +- **Основной:** `xxxellam@gmail.com` — Google, залогинен на Bazzite +- **Дополнительный:** `mallexxx@mail.ru` — подключён к VK Play + +### Общая схема +VK Play версии игр запускаются через лаунчер VK GameCenter (`GameCenter.exe`) поверх Proton. Лаунчер отвечает за авторизацию и лицензирование (в т.ч. Denuvo-эмуляцию). + +Известно: +- VK Play официально подтвердил совместимость Atomic Heart со Steam Deck/Proton. +- Для авторизации используется `mycomgames://` URL-схема. На HTPC без Steam Deck API может потребоваться ручной ввод логина/пароля. +- Альтернатива: Lutris с конфигом из gist.github.com/keyCat (обработчик `mycomgames://` схемы). +- Перед первым запуском может понадобиться `protontricks -555655402 vcrun2019`. + +### Как добавить VK Play игру +1. Запустить VK GameCenter через Steam (GE-Proton10-34) +2. Авторизоваться в VK Play +3. Установить игру через лаунчер (Atomic Heart уже установлен) +4. После авторизации игра появится в библиотеке VK Play + +### Lutris login workaround (shared prefix with Steam/Proton) + +**Проблема:** Steam CEF browser не умеет обрабатывать `mycomgames://` URL-схему, необходимую для OAuth-логина VK Play. При клике "Login" — `ERR_NETWORK_IO_SUSPENDED`. + +**Решение:** использовать Lutris для первичной авторизации, потом запускать игру через Steam/Proton. + +### Implementation status (2026-05-28) + +Все компоненты настроены через SSH (Kraken → HTPC). Последний шаг (логин) требует GUI-сеанса на HTPC. + +| Component | Status | Notes | +|-----------|--------|-------| +| `d:` dosdevices symlink (→ Data) | ✅ | `/run/media/bazzite/Data` | +| `handle-vkplay-scheme` script | ✅ | `~/.local/bin/` — обрабатывает `mycomgames://` через Proton 10.0 | +| `.desktop` → MIME `x-scheme-handler/mycomgames` | ✅ | Зарегистрирован на `Vkplay-scheme-handler.desktop` | +| Lutris flatpak | ✅ | `flathub net.lutris.Lutris` | +| Lutris game config (shared prefix) | ✅ | `~/.config/lutris/games/vk-play-shared.yml` | +| `start-vk.cmd` in Proton prefix | ✅ | `drive_c/VKPlay/gamecenter/start-vk.cmd` | +| Steam shortcut VK GameCenter | ✅ | AppID=-1973339958, GE-Proton10-34 | +| Steam shortcut Atomic Heart VK | ✅ | AppID=-1973339958 (через GameCenter) | +| Atomic Heart installed (97GB) | ✅ | `/run/media/bazzite/Data/gamecenter/atomic heart/` | + +**Статус (2026-06-07):** ✅ Авторизация через Lutris выполнена. Игра обновлена. Запуск проверяется. + +1. Установить Lutris через flatpak: + ``` + flatpak install flathub net.lutris.Lutris + ``` + +2. Создать кастомный пресет VK GameCenter в Lutris, указав **тот же Wine prefix**, что использует Steam: + ``` + ~/.local/share/Steam/steamapps/compatdata/-1973339958/pfx/ + ``` + +3. Зарегистрировать `mycomgames://` protocol handler — поместить .desktop-файл, который ассоциирует схему с Lutris: + - Референс: https://gist.github.com/keyCat/a77b1d4d1e0f651b9d3a9818e7f739c5 + +4. Выполнить логин через Lutris — откроется внешний браузер, авторизация сработает, редирект `mycomgames://` попадёт в Lutris. + +5. После успешного логина запускать игру через Steam — токен уже лежит в shared prefix, `mycomgames://` больше не нужен. + +**Почему shared prefix:** игра (Atomic Heart, 97GB) НЕ копируется — она уже установлена в `/run/media/bazzite/Data/gamecenter/atomic heart/` через Steam-версию VK GameCenter. Lutris будет использовать тот же префикс, где уже есть dosdevices symlink `d:` → `/run/media/bazzite/Data` и все токены авторизации. + +--- + +## 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 +# read backup +with open('shortcuts.vdf.bak-eagle', 'rb') as f: + d = vdf.binary_loads(f.read()) +# edit d['shortcuts'] +# write +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` + +--- + +## 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` (106 записей) + добавлены VK GameCenter (index 106) и Atomic Heart VK (index 107) +3. Обнаружено что config.vdf уже имеет CompatToolMapping с другими appid от предыдущих попыток +4. Перегенерация с appid, совпадающими с config.vdf +5. Удалены дублирующиеся unsigned записи из config.vdf +6. Создан `shortcuts.vdf.whale-restored-2026-05-27` + +**Уроки:** +- Только при остановленном Steam +- Бэкап ДО изменений +- Проверять signed↔unsigned соответствие +- Регистр ключей в vdf.binary_loads + +--- + +## 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//pfx/` +- **protontricks**: Flatpak, needs `flatpak override --user --filesystem=/var/home/bazzite/.local/share/Steam` +- **Background jobs**: `systemd-run --user --unit=` +- **GE-Proton**: extract tar.gz into `~/.steam/steam/compatibilitytools.d/`, restart Steam + +### 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" +- 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 + - **Luxtorpeda**: Doom 3 BFG + - **Proton Experimental**: ~24 remaining games +- Doom 3 BFG → Luxtorpeda (rbdoom-3-bfg, 2026-05-27) +- 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: cover art swapped (FPC native, BM95.EXE удалён) +- 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]/` +- **Discworld Noir (скачан 2026-05-29):** `/run/media/bazzite/Data/downloads/Discworld Noir.isz` (ISZ, 1.1GB, Alcohol 120%) +- **Discworld (оригинал, скопирован 2026-05-29):** `/run/media/bazzite/Data/downloads/DISCWORLD.iso` (ISO, 434MB) — с TrueNAS `/mnt/RED_2TB/backup/Downloads/Distr/games/DISCWORLD.iso` +- FFX settings: `/run/media/bazzite/Windows/Users/mallexxx/documents/square enix/...` + +--- + +## Discworld Noir (NQ repack) — настроен ✅ + +**Статус:** работает — запускается, сейвы грузятся + +**Источник:** `Discworld Noir.isz` (Alcohol 120%, 1.1 GB) с Яндекс.Диска — пропатченный репак с фиксом "insert disk III" + +**Папка:** `/run/media/bazzite/Data/Games/discworld_noir_nq/` +- `tin3_dxd.exe` — оригинальный (560160 bytes, не Loma fix) +- `cd1/`, `cd2/` — оба диска (по 313 файлов, merged) +- `DN_Setting_*.exe`, `cw3220.dll`, `dwnoir.dll` + +**Proton prefix:** `compatdata/2973247222/pfx/` (unsigned от appid `-1321720074`) +**Symlink:** `C:\Discworld Noir` → `/run/media/bazzite/Data/Games/discworld_noir_nq/` +**Registry:** `[Software\Wow6432Node\Perfect Entertainment\Discworld Noir]` — все пути `C:\Discworld Noir` + +**Steam shortcut:** Index 108, Exe = Linux-путь напрямую, GE-Proton10-34 + +**Ключевой фикс — fstab монтирование:** +Сейвы не грузились (Load задизейблен, `sg.1` создавался но не читался). Решилось перемонтированием Data через `/etc/fstab`: +```fstab +UUID=01D99C23361E63D0 /run/media/bazzite/Data ntfs-3g uid=1000,gid=1000,fmask=113,dmask=002,noatime,exec 0 2 +``` +udisks2 давал неверные права для Proton I/O. После fstab NTFS стал регистрозависимым — `Games` с большой буквы, `Downloads` с большой буквы. + +**Что не сработало:** +- Loma fix — спиннер / кривая палитра +- Dolomite (`ddraw.dll`) — не влияет на меню + +## Original Discworld (ScummVM) — работает ✅ + +**Статус:** работает — запускается через Steam shortcut + +**Источник:** `DISCWORLD.iso` (434 MB) с TrueNAS → распакован в `/run/media/bazzite/Data/Downloads/discworld_iso/` + +**Steam shortcut:** Index 107, Exe = `scummvm.sh` → flatpak `org.scummvm.ScummVM`, CompatToolMapping не нужен (native Linux) + +**Game ID:** `tinsel:dw` — ScummVM 2026.2.0, engine-qualified +**LaunchOptions:** `-f -p "/run/media/bazzite/Data/Downloads/discworld_iso/DISCWLD" tinsel:dw` + +**Путь к данным:** `/run/media/bazzite/Data/Downloads/discworld_iso/DISCWLD/` — внутри `.GRA` файлы + +**Что было сломано:** +1. Прописан `dw1` — ScummVM 2026.2.0 требует engine-qualified ID `tinsel:dw` +2. Путь указывал на корень `discworld_iso/` — файлы лежат в `DISCWLD/` +3. После fstab путь был с маленькой буквы `downloads` — NTFS стал регистрозависимым + +## Open Questions +1. Delete `pfx/` folders for still-broken GE-Proton games (Brawlhalla, Castle Crashers, Worms WMD/WP, Duck Game) +|2. ~~FPC Atomic Bomberman~~ ✅ фикс: `sleep 5 &&` в LaunchOptions +3. Metro Exodus: Goldberg Steam emulator? +4. **Atomic Heart VK:** test VK Play авторизацию, при необходимости `protontricks vcrun2019` + +--- + +## FPC Atomic Bomberman — Native Linux ✅ + +**Не Proton.** Нативный SDL-порт (Free Pascal). Всё работает. + +### Расположение +- **Папка:** `/run/media/bazzite/Data/Games/fpc_atomic/` +- **Бинарник:** `fpc_atomic` (8.9MB) +- **Steam shortcut:** Index 107, unsigned AppID `3285845152` +- **Steam LaunchOptions:** `LD_LIBRARY_PATH=/run/media/bazzite/Data/Games/fpc_atomic sleep 5 && LD_LIBRARY_PATH=/run/media/bazzite/Data/Games/fpc_atomic %command%` + +### Почему sleep 5 + +Steam Virtual Gamepad создаётся с задержкой после старта Steam-сессии. FPC Atomic вызывает `SDL_Init` сразу при запуске и сканирует SDL-устройства. Если Virtual Gamepad ещё не появился — `ResolveGameControllerNameToIndex()` возвращает `-1` и геймпад не работает. `sleep 5` перед запуском игры даёт Steam время создать виртуальный геймпад. + +### SDL2 +- Библиотеки (`libbass.so`, `libsdl2.so`) лежат в папке игры +- `LD_LIBRARY_PATH` указывает на `/run/media/bazzite/Data/Games/fpc_atomic/` +- SDL2-devel не ставится на Bazzite (exclude-filtered mesa-libGLU-devel), но системная SDL2 работает + +### Анимации взрывов +- `ani.zip` (xplode18-21 ANIs) — скачан через HTPC (Cloudflare на Mac блокирует geocities) + +### Конфиг +- `~/.config/fpc_atomic/fpc_atomic.cfg` +- Настройки геймпада сохраняются и не сбрасываются +- `SDL_Name=Steam Virtual Gamepad`, `SDL_NameIndex=0`, `SDL_IsGameController=1` + +### Артворки +Скопированы с удалённого BM95.EXE шортката (unsigned appid `2875360586` → `3285845152`): +- `3285845152_hero.png` +- `3285845152_logo.png` +- `3285845152.png` +- `3285845152p.png` + +## See Also +[[personal-os-architecture]] [[obsidian-mcp-wrapper]] [[family/how-to/htpc-steam-nonsteam-shortcuts]] diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md b/.stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md similarity index 100% rename from personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md rename to .stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md b/.stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md similarity index 100% rename from personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md rename to .stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-31.md b/.stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-31.md similarity index 100% rename from personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-31.md rename to .stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-31.md diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md b/.stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md similarity index 100% rename from personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md rename to .stversions/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md diff --git a/personal/projects/personal-os/enrichment-runs/last.md b/.stversions/personal/projects/personal-os/enrichment-runs/last.md similarity index 100% rename from personal/projects/personal-os/enrichment-runs/last.md rename to .stversions/personal/projects/personal-os/enrichment-runs/last.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-15.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-16.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-17.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-18.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-19.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-20.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-22.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-23.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-24.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-25.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-27.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-28.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/2026-05-29.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md diff --git a/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md b/.stversions/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md similarity index 100% rename from personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md rename to .stversions/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md diff --git a/family/how-to/htpc-bazzite-proton.md b/family/how-to/htpc-bazzite-proton.md old mode 100644 new mode 100755 index 91fe39c5..245e7681 --- a/family/how-to/htpc-bazzite-proton.md +++ b/family/how-to/htpc-bazzite-proton.md @@ -122,15 +122,14 @@ on Proton 8.0. ## Still broken — fundamental issues -| Game | AppID | Symptom | What's known | What might help | -|------|-------|---------|--------------|-----------------| +| Game | AppID | Symptom | What's known | What might help | +| ---------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------- | | FPC Atomic Bomberman ✅ | -1009122144 (unsigned: 3285845152) | Native Linux SDL-порт (FPC). Работает: геймпад, музыка. Причина: `sleep 5` в LaunchOptions. Win95-шорткат (BM95.EXE) удалён. Артворки скопированы. | Путь в `/run/media/bazzite/Data/Games/fpc_atomic/`. | ✅ Фикс: `sleep 5 && LD_LIBRARY_PATH=/run/media/bazzite/Data/Games/fpc_atomic %command%` | -| Atomic Heart VK | — | ✅ Авторизация сделана, игра обновлена. Запуск тестируется. | 97GB, GameCenter, shared prefix | — | -| 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 | — | +| Atomic Heart VK | — | ✅ Авторизация сделана, игра обновлена. Запуск тестируется. | 97GB, GameCenter, shared prefix | — | +| 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 | — | +| 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` @@ -153,10 +152,10 @@ protontricks xna40 ### DOS-era games Proton won't work. Use **Steam Tinker Launch** → wrap with DOSBox (dosbox-staging). -### Non-Steam copy of a Steam game (e.g. Metro Exodus) +### Non-Steam copy of a Steam game 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) +2. Add `steam_appid.txt` with the real App ID ### Cyrillic encoding issues (e.g. Discworld Noir) Try in order: @@ -413,8 +412,7 @@ udisks2 давал неверные права для Proton I/O. После fst ## Open Questions 1. Delete `pfx/` folders for still-broken GE-Proton games (Brawlhalla, Castle Crashers, Worms WMD/WP, Duck Game) |2. ~~FPC Atomic Bomberman~~ ✅ фикс: `sleep 5 &&` в LaunchOptions -3. Metro Exodus: Goldberg Steam emulator? -4. **Atomic Heart VK:** test VK Play авторизацию, при необходимости `protontricks vcrun2019` +2. **Atomic Heart VK:** test VK Play авторизацию, при необходимости `protontricks vcrun2019` ---