From c8043eefe4f9267565481da1269a93d46ab56b72 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 7 Jun 2026 15:19:12 +0600 Subject: [PATCH 1/5] =?UTF-8?q?[2026-06-07]=20native=20non-Steam=20pitfall?= =?UTF-8?q?s=20=E2=80=94=20mount=20namespace,=20stderr,=20libmp3lame?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../how-to/htpc-steam-nonsteam-shortcuts.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/family/how-to/htpc-steam-nonsteam-shortcuts.md b/family/how-to/htpc-steam-nonsteam-shortcuts.md index dcc3bd2d..0a78c539 100644 --- a/family/how-to/htpc-steam-nonsteam-shortcuts.md +++ b/family/how-to/htpc-steam-nonsteam-shortcuts.md @@ -4,6 +4,59 @@ **Steam должен быть выключен** перед записью shortcuts.vdf. Если Steam работает — он перезапишет файл из памяти при следующем запуске. +## Подводные камни native Linux shortcut'ов (Worms W.M.D case) + +### Проблема: Steam не видит `/run/media/system/Data/` + +Steam, запущенный через `gamescope-session-plus`, работает в изолированном mount namespace. Путь `/run/media/system/Data/` (btrfs-подраздел) может быть **не виден** Steam-процессу. + +**Симптом:** нажимаешь Play → `chdir` в логах есть, `exit code 0` мгновенно, игра не стартует. `/tmp/worms_stderr.log` не создаётся — значит `run.sh` даже не запустился. + +**Причина:** Steam проверяет существование `exe` файла перед запуском native shortcut. Если файл не найден — `steam-launch-wrapper` завершается с кодом 0 без ошибки. Для Proton shortcut'ов эта проверка не делается — Steam передаёт путь внутрь Proton. + +**Решение:** не указывать `exe` на `/run/media/system/Data/...`. Вместо этого: +1. Создать symlink в `/home/bazzite/`: + ```bash + ln -sf /run/media/system/Data/Games/.../run.sh /home/bazzite/game_name.sh + ``` +2. В VDF прописать `exe = /home/bazzite/game_name.sh`, `StartDir = /home/bazzite/`. +3. `/home/bazzite/` виден из любого mount namespace. + +### Проблема: `run.sh` глушит stderr + +Многие native Linux игры (особенно старые MojoSetup-инсталляторы) имеют в `run.sh`: +```sh +exec ./binary 2>/dev/null "$@" +``` +`2>/dev/null` скрывает все ошибки. Steam логи не показывают stderr дочернего процесса. + +**Решение:** убрать `2>/dev/null` из `run.sh`. Если нужно дебажить — перенаправить в файл: +```sh +exec ./binary 2>/tmp/game_stderr.log "$@" +``` + +### Проблема: старая `libmp3lame.so.0` без нужного символа + +Старые native игры тащат свою `libmp3lame.so.0` (2019-2020), в которой нет символа `lame_encode_buffer_interleaved_int`. Системная `libsndfile.so.1` (Fedora 43) требует этот символ. + +**Симптом:** `symbol lookup error: /lib64/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int` + +**Причина:** линковщик загружает игровую `libmp3lame.so.0` из `data/lib/` (старая, без символа), а `libsndfile.so.1` из `/lib64/` — и находит уже загруженную старую копию. + +**Решение:** заменить игровую `libmp3lame.so.0` на системную: +```bash +cp /lib64/libmp3lame.so.0 /run/media/system/Data/Games/.../data/lib/libmp3lame.so.0 +``` + +### Статус Worms W.M.D (native Linux) + +- **Версия:** MojoSetup-инсталлятор с rutracker (Worms W.M.D [239.583366] [Native]) +- **Путь:** `/run/media/system/Data/Games/Worms W.M.D Native/Worms W.M.D/` +- **Symlink:** `/home/bazzite/worms_wmd.sh → .../run.sh` +- **Steam shortcut:** entry 109, appid = -364361099 (unsigned: 3930606197) +- **LaunchOptions:** `%command%` +- **Статус:** ✅ запускается + ## Остановка Steam (Bazzite game session) ```bash From 5170b52aa490c97479c1dad2101e1fc0c5d5ee37 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 7 Jun 2026 15:19:53 +0600 Subject: [PATCH 2/5] =?UTF-8?q?[2026-06-07]=20Worms=20W.M.D=20native=20?= =?UTF-8?q?=E2=80=94=20doc=20+=20pitfalls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- family/how-to/htpc-worms-wmd-native.md | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 family/how-to/htpc-worms-wmd-native.md diff --git a/family/how-to/htpc-worms-wmd-native.md b/family/how-to/htpc-worms-wmd-native.md new file mode 100644 index 00000000..18a2a654 --- /dev/null +++ b/family/how-to/htpc-worms-wmd-native.md @@ -0,0 +1,65 @@ +--- +title: Worms W.M.D — Native Linux +tags: + - htpc + - bazzite + - worms + - native-linux + - pitfalls +created: '2026-06-07' +updated: '2026-06-07' +type: how-to +confidence: high +--- +# Worms W.M.D — Native Linux (HTPC Bazzite) + +**Статус:** ✅ работает + +## Источник + +MojoSetup-инсталлятор с rutracker: `Worms W.M.D [239.583366] [amd64] [Multi] [Steam] [Native]` + +## Расположение + +- **Игра:** `/run/media/system/Data/Games/Worms W.M.D Native/Worms W.M.D/` +- **Бинарник:** `data/Worms_W.M.Dx64` (ELF x86-64) +- **Симлинк:** `/home/bazzite/worms_wmd.sh → .../run.sh` +- **Steam shortcut:** entry 109, appid = -364361099 (unsigned: 3930606197) + +## Shortcut в VDF + +```python +{ + 'AppName': 'Worms W.M.D', + 'exe': '/home/bazzite/worms_wmd.sh', # symlink в home — не /run/media/! + 'Exe': '/home/bazzite/worms_wmd.sh', + 'StartDir': '/home/bazzite/', + 'LaunchOptions': '%command%', + 'appid': -364361099, +} +``` + +## Подводные камни + +### 1. `/run/media/` не виден Steam + +Steam (gamescope-session-plus) работает в изолированном mount namespace и не видит `/run/media/system/Data/`. **Решение:** symlink в `/home/bazzite/`. + +### 2. `run.sh` глушит stderr + +Оригинальный `run.sh` делает `exec ./Worms_W.M.Dx64 2>/dev/null "$@"`. **Решение:** убрать `2>/dev/null`. + +### 3. Старая libmp3lame + +Игровая `data/lib/libmp3lame.so.0` (2020, 289 KB) не содержит `lame_encode_buffer_interleaved_int`, который требует системная `libsndfile.so.1`. **Решение:** заменить на системную: + +```bash +cp /lib64/libmp3lame.so.0 /run/media/system/Data/Games/Worms\ W.M.D\ Native/Worms\ W.M.D/data/lib/libmp3lame.so.0 +``` + +### 4. Зависимости + +- `libbz2.so.1.0` — в игре нет, нужен симлинк: + ```bash + ln -sf /usr/lib64/libbz2.so.1.0.8 data/lib/libbz2.so.1.0 + ``` From 864a3b3579bf6de1153dd0c81bb769ea8e75993c Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 7 Jun 2026 15:20:29 +0600 Subject: [PATCH 3/5] [2026-06-07] eagle: family/how-to/htpc-worms-wmd-native.md --- family/how-to/htpc-worms-wmd-native.md | 65 -------------------------- 1 file changed, 65 deletions(-) delete mode 100644 family/how-to/htpc-worms-wmd-native.md diff --git a/family/how-to/htpc-worms-wmd-native.md b/family/how-to/htpc-worms-wmd-native.md deleted file mode 100644 index 18a2a654..00000000 --- a/family/how-to/htpc-worms-wmd-native.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Worms W.M.D — Native Linux -tags: - - htpc - - bazzite - - worms - - native-linux - - pitfalls -created: '2026-06-07' -updated: '2026-06-07' -type: how-to -confidence: high ---- -# Worms W.M.D — Native Linux (HTPC Bazzite) - -**Статус:** ✅ работает - -## Источник - -MojoSetup-инсталлятор с rutracker: `Worms W.M.D [239.583366] [amd64] [Multi] [Steam] [Native]` - -## Расположение - -- **Игра:** `/run/media/system/Data/Games/Worms W.M.D Native/Worms W.M.D/` -- **Бинарник:** `data/Worms_W.M.Dx64` (ELF x86-64) -- **Симлинк:** `/home/bazzite/worms_wmd.sh → .../run.sh` -- **Steam shortcut:** entry 109, appid = -364361099 (unsigned: 3930606197) - -## Shortcut в VDF - -```python -{ - 'AppName': 'Worms W.M.D', - 'exe': '/home/bazzite/worms_wmd.sh', # symlink в home — не /run/media/! - 'Exe': '/home/bazzite/worms_wmd.sh', - 'StartDir': '/home/bazzite/', - 'LaunchOptions': '%command%', - 'appid': -364361099, -} -``` - -## Подводные камни - -### 1. `/run/media/` не виден Steam - -Steam (gamescope-session-plus) работает в изолированном mount namespace и не видит `/run/media/system/Data/`. **Решение:** symlink в `/home/bazzite/`. - -### 2. `run.sh` глушит stderr - -Оригинальный `run.sh` делает `exec ./Worms_W.M.Dx64 2>/dev/null "$@"`. **Решение:** убрать `2>/dev/null`. - -### 3. Старая libmp3lame - -Игровая `data/lib/libmp3lame.so.0` (2020, 289 KB) не содержит `lame_encode_buffer_interleaved_int`, который требует системная `libsndfile.so.1`. **Решение:** заменить на системную: - -```bash -cp /lib64/libmp3lame.so.0 /run/media/system/Data/Games/Worms\ W.M.D\ Native/Worms\ W.M.D/data/lib/libmp3lame.so.0 -``` - -### 4. Зависимости - -- `libbz2.so.1.0` — в игре нет, нужен симлинк: - ```bash - ln -sf /usr/lib64/libbz2.so.1.0.8 data/lib/libbz2.so.1.0 - ``` From 0f0b5c7e8799d3ca901662fa60d6878c33f3418a Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 7 Jun 2026 15:20:50 +0600 Subject: [PATCH 4/5] =?UTF-8?q?Revert=20"[2026-06-07]=20native=20non-Steam?= =?UTF-8?q?=20pitfalls=20=E2=80=94=20mount=20namespace,=20stderr,=20libmp3?= =?UTF-8?q?lame"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit c8043eefe4f9267565481da1269a93d46ab56b72. --- .../how-to/htpc-steam-nonsteam-shortcuts.md | 53 ------------------- 1 file changed, 53 deletions(-) diff --git a/family/how-to/htpc-steam-nonsteam-shortcuts.md b/family/how-to/htpc-steam-nonsteam-shortcuts.md index 0a78c539..dcc3bd2d 100644 --- a/family/how-to/htpc-steam-nonsteam-shortcuts.md +++ b/family/how-to/htpc-steam-nonsteam-shortcuts.md @@ -4,59 +4,6 @@ **Steam должен быть выключен** перед записью shortcuts.vdf. Если Steam работает — он перезапишет файл из памяти при следующем запуске. -## Подводные камни native Linux shortcut'ов (Worms W.M.D case) - -### Проблема: Steam не видит `/run/media/system/Data/` - -Steam, запущенный через `gamescope-session-plus`, работает в изолированном mount namespace. Путь `/run/media/system/Data/` (btrfs-подраздел) может быть **не виден** Steam-процессу. - -**Симптом:** нажимаешь Play → `chdir` в логах есть, `exit code 0` мгновенно, игра не стартует. `/tmp/worms_stderr.log` не создаётся — значит `run.sh` даже не запустился. - -**Причина:** Steam проверяет существование `exe` файла перед запуском native shortcut. Если файл не найден — `steam-launch-wrapper` завершается с кодом 0 без ошибки. Для Proton shortcut'ов эта проверка не делается — Steam передаёт путь внутрь Proton. - -**Решение:** не указывать `exe` на `/run/media/system/Data/...`. Вместо этого: -1. Создать symlink в `/home/bazzite/`: - ```bash - ln -sf /run/media/system/Data/Games/.../run.sh /home/bazzite/game_name.sh - ``` -2. В VDF прописать `exe = /home/bazzite/game_name.sh`, `StartDir = /home/bazzite/`. -3. `/home/bazzite/` виден из любого mount namespace. - -### Проблема: `run.sh` глушит stderr - -Многие native Linux игры (особенно старые MojoSetup-инсталляторы) имеют в `run.sh`: -```sh -exec ./binary 2>/dev/null "$@" -``` -`2>/dev/null` скрывает все ошибки. Steam логи не показывают stderr дочернего процесса. - -**Решение:** убрать `2>/dev/null` из `run.sh`. Если нужно дебажить — перенаправить в файл: -```sh -exec ./binary 2>/tmp/game_stderr.log "$@" -``` - -### Проблема: старая `libmp3lame.so.0` без нужного символа - -Старые native игры тащат свою `libmp3lame.so.0` (2019-2020), в которой нет символа `lame_encode_buffer_interleaved_int`. Системная `libsndfile.so.1` (Fedora 43) требует этот символ. - -**Симптом:** `symbol lookup error: /lib64/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int` - -**Причина:** линковщик загружает игровую `libmp3lame.so.0` из `data/lib/` (старая, без символа), а `libsndfile.so.1` из `/lib64/` — и находит уже загруженную старую копию. - -**Решение:** заменить игровую `libmp3lame.so.0` на системную: -```bash -cp /lib64/libmp3lame.so.0 /run/media/system/Data/Games/.../data/lib/libmp3lame.so.0 -``` - -### Статус Worms W.M.D (native Linux) - -- **Версия:** MojoSetup-инсталлятор с rutracker (Worms W.M.D [239.583366] [Native]) -- **Путь:** `/run/media/system/Data/Games/Worms W.M.D Native/Worms W.M.D/` -- **Symlink:** `/home/bazzite/worms_wmd.sh → .../run.sh` -- **Steam shortcut:** entry 109, appid = -364361099 (unsigned: 3930606197) -- **LaunchOptions:** `%command%` -- **Статус:** ✅ запускается - ## Остановка Steam (Bazzite game session) ```bash From 26f6075eab1d71f6a816dafbebdaa64551acc8e2 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 7 Jun 2026 15:22:43 +0600 Subject: [PATCH 5/5] =?UTF-8?q?[2026-06-07]=20update=20Worms=20W.M.D=20sta?= =?UTF-8?q?tus:=20broken=20=E2=86=92=20working=20(native=20Linux)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- family/how-to/htpc-bazzite-proton.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/family/how-to/htpc-bazzite-proton.md b/family/how-to/htpc-bazzite-proton.md index 19f59601..8dcc2c7d 100644 --- a/family/how-to/htpc-bazzite-proton.md +++ b/family/how-to/htpc-bazzite-proton.md @@ -36,6 +36,7 @@ on Proton 8.0. - **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 @@ -47,7 +48,6 @@ on Proton 8.0. |------|-------|---------|-----------|---------------| | Brawlhalla | 2410005953 | Doesn't start | — | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | | Castle Crashers | 3048471472 | "crash, mini dump sent" | — | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | -| Worms W.M.D | 3846411911 | Doesn't start | GOG, Galaxy.dll отключён, Qt5 краш | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140,d3dcompiler_47=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\"` |