[2026-06-25] eagle: merge conflict — review needed

This commit is contained in:
Alexey Martemyanov
2026-06-25 11:19:40 +06:00
9 changed files with 736 additions and 11 deletions
+10 -10
View File
@@ -211,12 +211,12 @@
"state": {
"type": "markdown",
"state": {
"file": "personal/documents/workout.md",
"file": "family/documents/bring-to-russia.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "workout"
"title": "bring-to-russia"
}
},
{
@@ -374,7 +374,7 @@
}
}
],
"currentTab": 25
"currentTab": 14
}
],
"direction": "vertical"
@@ -402,7 +402,7 @@
"state": {
"type": "search",
"state": {
"query": "Switch games nsp",
"query": "Nsz",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@@ -453,7 +453,7 @@
}
}
],
"currentTab": 0
"currentTab": 1
},
"right": {
"id": "569cb05179715434",
@@ -529,8 +529,12 @@
"bases:Создать новую базу": false
}
},
"active": "6fbf0b97dfa87f9b",
"active": "5ea6459fdd49023b",
"lastOpenFiles": [
"personal/documents/workout.md",
"family/documents/vault-sync/2026-06-22.md",
"family/how-to/htpc-emulators-setup.md",
"personal/projects/balda/fix-openaimodel-tools.md",
"personal/projects/budget-app/index.md",
"personal/projects/budget-app",
"personal/creative/songs/Рыба.md",
@@ -555,10 +559,6 @@
"personal/projects/personal-os/claude-proxy-node-internals.md",
"personal/projects/personal-os/claude-wrapper-proxy.md",
"work/briefs/inbox/2026-06-10.md",
"work/briefs/daily/2026-06-15.md",
"personal/projects/balda/balda-valera.md",
"personal/projects/zulip-router.md",
"personal/projects/balda/fast-rlm-integration.md",
"personal/projects/hermes-configs/whale-config.example.yaml",
"personal/projects/hermes-configs/eagle-config.example.yaml",
"personal/projects/hermes-configs",
@@ -0,0 +1,522 @@
# HTPC — Эмуляторы: Настройка
> Актуально: май 2026. Железо: i7-6800K, RX 570, 32GB RAM.
---
## Бэкап сейвов
**Daily → Data диск** (`Persistent=true` — срабатывает при включении если пропустил):
- `saves-backup.timer` (00:00 daily)
- Скрипт: `~/scripts/backup-saves.sh`
- Назначение: `/run/media/bazzite/Data/backups/saves/`
- Покрывает: Dolphin GC, Dolphin Wii, RetroArch, Ryujinx, Steam userdata, MAME
**Weekly → Кракен HDD** (`Persistent=true`):
- `saves-sync-kraken.timer` (weekly)
- Скрипт: `~/scripts/backup-saves-to-kraken.sh`
- Назначение: `kraken@192.168.1.15:/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/backups/htpc-saves/`
- ⚠️ Путь назначения **всегда на HDD** (`/srv/dev-disk-by-uuid-.../`), не в `~/` (SSD, маленький)
- Транспорт: rsync по LAN (SSH ключ bazzite→kraken авторизован)
```bash
# Запустить вручную:
bash ~/scripts/backup-saves.sh # Data диск
bash ~/scripts/backup-saves-to-kraken.sh # Кракен
```
---
## Dolphin (Wii / GameCube)
**Версия:** 2603a (Flatpak `org.DolphinEmu.dolphin-emu`)
**Конфиг:** `~/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/`
### Статус настройки (16.05.2026) ✅
- **Видео:** Vulkan, 3x Internal Resolution (1080p→1440p EFB), VSync, async shader compilation
- **Fullscreen:** включён при запуске
- **ISO пути:**
- `~/Emulation/roms/gc`
- `~/Emulation/roms/wii`
- `/run/media/bazzite/Data/dolphin roms` ← основная библиотека
- `/run/media/bazzite/Data/games`
### Геймпады — Xbox схема
**Контроллеры:** 2× Xbox 360, 2× 8BitDo (Xbox-схема). Драйвер `xpad` загружен.
**GCPad (для GC игр):** XInput2/0..3/Xbox 360 Controller
- A/B/X/Y → A/B/X/Y
- Z (GC) → Shoulder R
- Start → Start
- Стики → Axis 0/1 (левый), Axis 2/3 (правый) — deadzone 15%
- Триггеры → Trigger L/R, threshold 90%
**Wiimote + Nunchuk (для Wii игр):** SDL/0/Xbox 360 Controller
- Extension = **Nunchuk** (не Classic Controller — DKC Returns пишет "unsupported controller" на CC)
- Shake привязан на кнопку X (порог 0.2, frequency 50)
- WiimoteSource = 1 (эмуляция, не реальный Wiimote)
### Игры на Data диске (`/run/media/bazzite/Data/dolphin roms/`)
| Игра | Формат | Game ID | Тип | Кооп |
|------|--------|---------|-----|------|
| **Donkey Kong Country Returns** | .iso | SF8P01 | Wii | ✅ 2P |
| **New Super Mario Bros Wii** | .iso | — | Wii | ✅ 4P |
| Donkey Kong Jungle Beat | .wbfs | — | GC | — |
| Luigi's Mansion | .iso | — | GC | — |
| Metroid Prime Trilogy | .iso | — | Wii | — |
| Super Mario Sunshine | .iso | — | GC | — |
| Zelda: Breath of the Wild | папка | — | Wii U? | — |
| Zelda: Skyward Sword | .iso | — | Wii | — |
| Zelda: Wind Waker | .iso | — | GC | — |
| Zelda: Four Swords Adventures | .gcm | — | GC | — |
| Zelda: Collector's Edition | .iso | — | GC | — |
### ⚠️ Важные нюансы при запуске
**DKC Returns — финальный маппинг (Xbox геймпад → Classic Controller):**
| Xbox кнопка | Действие в игре |
|-------------|----------------|
| A | Прыжок |
| B | Бег / подбор |
| X | Roll / **Shake** (ground pound, атака на Rambi) |
| Y | Бег / подбор |
| LB | ZL (Roll альтернатива) |
| RB | ZR (Roll альтернатива) |
| LT | ZL analog |
| RT | ZR analog |
| Start | + (Пауза) |
| Back | - (Карта) |
| D-Pad | D-Pad |
| Левый стик | Движение |
| Правый стик | C-Stick |
**X нажат = одновременно CC/X (Roll) + Shake** — как в оригинальном DKC где X = Roll.
**Если геймпад не определяется:**
- Проверить: `ls /dev/input/js*` — должны появиться js0, js1 при подключении
- Xbox 360 проводной: автоматически через `xpad`
- 8BitDo в Xbox режиме (кнопка X при включении): определяется как xpad-совместимый
---
---
## MAME
**Версия:** 0.287 (Flatpak `org.mamedev.MAME`)
**Конфиг:** `~/.var/app/org.mamedev.MAME/data/MAME/mame.ini`
**Статус:** ✅ настроен (16.05.2026)
**ROM пути:**
- `/run/media/bazzite/Data/mame_roms`**отобранные ~46 игр** (из chosen_mame.sh)
- `/run/media/bazzite/Data/mame roms` — дополнительно (mspacman, neogeo)
- Полная база 22k ROM: `/run/media/bazzite/Data/downloads/mame_0.271_roms_[merged]/`
**Видео:** Vulkan (bgfx), fullscreen, vsync, skip_gameinfo
**Отобранные игры (chosen_mame.sh):**
Pacman, DK Jr, SF2, Space Invaders, MK, Asteroids, Centipede, Metal Slug 1-5, KOF98, Contra, Double Dragon, Final Fight, Golden Axe 3, TMNT, Ghosts'n Ghouls, SSRIDERS, Raiden, Tetris, Battletoads, Puzzle Bobble, Robocop, Punisher, Rampage 2, Hyper SF2, и др.
**neogeo BIOS** скопирован в `mame_roms/` — Metal Slug работает.
**RetroArch MAME cores:** `mame_libretro.so` (0.287) + `mame2003_plus_libretro.so` (0.139)
ROM симлинк: `~/Emulation/roms/mame/roms/mame_chosen → /run/media/bazzite/Data/mame_roms`
---
## RetroArch
**Версия:** 1.22.2 (Flatpak `org.libretro.RetroArch`)
**Статус:** ✅ настроен (16.05.2026)
- **Видео:** Vulkan, fullscreen, vsync
- **Геймпады:** Xbox autoconfig скопирован в `~/.var/app/.../autoconfig/` — определяется автоматически при подключении
- `X360 Controller.cfg` (проводной)
- `X360 Wireless Controller.cfg` (беспроводной)
- `8BitDo_Ultimate_C_Wired_Controller_for_Xbox.cfg`
- **ROM пути (симлинки):**
| Папка | Ссылка |
|-------|--------|
| `~/Emulation/roms/snes_data` | `/run/media/bazzite/Data/snes roms` |
| `~/Emulation/roms/sega_data` | `/run/media/bazzite/Data/sega roms` |
| `~/Emulation/roms/n64_data` | `/run/media/bazzite/Data/n64 roms` |
| `~/Emulation/roms/gba_data` | `/run/media/bazzite/Data/gba roms` |
| `~/Emulation/roms/mame/roms/mame_chosen` | `/run/media/bazzite/Data/mame_roms` |
**Конфиг:** `~/.var/app/org.libretro.RetroArch/config/retroarch/`
**ROM browser:** `~/Emulation/roms/` (+ симлинки на Data диск)
### Доступные cores
| Core | Платформа | Файл |
|------|-----------|------|
| snes9x | SNES | `snes9x_libretro.so` |
| bsnes / bsnes_hd | SNES | `bsnes_libretro.so` / `bsnes_hd_beta_libretro.so` |
| genesis_plus_gx | Sega MD/CD | `genesis_plus_gx_libretro.so` |
| mgba | GBA/GB/GBC | `mgba_libretro.so` |
| mupen64plus_next | N64 | `mupen64plus_next_libretro.so` |
### ROM симлинки (Data диск → ~/Emulation/roms/)
```
snes_data → /run/media/bazzite/Data/snes roms
sega_data → /run/media/bazzite/Data/sega roms
n64_data → /run/media/bazzite/Data/n64 roms
gba_data → /run/media/bazzite/Data/gba roms
```
### NES игры в Steam (Mesen core)
Добавлены 17.05.2026 через `mesen_libretro.so`. ROM: `758 nes roms/` на Data диске.
| Игра | ROM файл | HD Pack |
|------|----------|---------|
| Darkwing Duck | `darkwing duck (u).nes` | ❌ нет |
| Chip 'n Dale | `chip 'n dale rescue rangers (u) [!].nes` | ❌ нет |
| Batman | `batman (u).nes` | ❌ нет |
| Super Mario Bros | `super mario bros. (ju) (prg0) [!].nes` | ✅ mkwong98 |
| The Legend of Zelda | `legend of zelda, the (u) (prg1).nes` | ✅ Zelda Remastered |
| Castlevania | `castlevania (u) (prg1).nes` | ✅ 30th Anniversary HD |
| Bomberman | `bomberman (u).nes` | ✅ Bomberman Remastered |
| Battle City | `battle city (j) [p1].nes` | ✅ imkrut |
**Установка HD паков:**
- Папка: `~/.var/app/org.libretro.RetroArch/config/retroarch/system/HdPacks/`
- Подпапка = имя ROM файла без `.nes`
- `Mesen.opt`: `mesen_hdpacks = "enabled"`
- Скачать с romhacking.net вручную (Cloudflare, curl не работает):
- Battle City: https://www.romhacking.net/forum/index.php?topic=30639.0
- Bomberman: https://www.romhacking.net/forum/index.php?topic=30619.0
- Castlevania: https://www.romhacking.net/forum/index.php?topic=24125.0 (30th Anniversary)
- Zelda Remastered: https://www.romhacking.net/forum/index.php?topic=31559.0
- Super Mario Bros: https://forums.nesdev.org/download/file.php?id=12073
### Кооп игры на Data диске (готовы к запуску)
**SNES:**
- Donkey Kong Country 1, 2, 3 ✅
- Contra III, Battletoads ✅
**N64:**
- Mario Kart 64 ✅
- Diddy Kong Racing ✅
- Mario Party ✅
- Donkey Kong 64
**Sega:**
- Streets of Rage 2 ✅ (кооп)
- Sonic 1/2/3 ✅
- Golden Axe I/II ✅
---
## Steam библиотека — shortcuts и artwork
**Статус:** ✅ 85 игр добавлено в Steam (11.06.2026), запускаются из Gaming Mode.
### Как добавлено
Прямая запись в `~/.steam/steam/userdata/<uid>/config/shortcuts.vdf` через Python + `vdf` библиотека.
Скрипт: `/tmp/add_shortcuts.py` (можно восстановить при необходимости).
**Формат записи:**
```python
sc['Exe'] = '/home/bazzite/Emulation/tools/launchers/retroarch.sh' # или dolphin-emu.sh
sc['LaunchOptions'] = '-L /home/bazzite/.var/.../core.so /path/to/rom'
```
⚠️ **Важно:** `~` в путях не разворачивается — только абсолютные пути `/home/bazzite/...`
⚠️ **Важно:** Steam перезаписывает shortcuts.vdf при запуске — писать только пока Steam закрыт.
### Игры по эмуляторам
| Эмулятор | Launcher | Игр |
|----------|----------|-----|
| Dolphin (Wii/GC) | `launchers/dolphin-emu.sh` | 10 |
| RetroArch SNES | `launchers/retroarch.sh` + `snes9x_libretro.so` | 11 |
| RetroArch N64 | `launchers/retroarch.sh` + `mupen64plus_next_libretro.so` | 11 |
| RetroArch GBA | `launchers/retroarch.sh` + `mgba_libretro.so` | 2 |
| RetroArch Genesis | `launchers/retroarch.sh` + `genesis_plus_gx_libretro.so` | 8 |
| RetroArch MAME | `launchers/retroarch.sh` + `mame2003_plus_libretro.so` | 19 |
### Artwork (SteamGridDB)
API ключ: `5f0a7cb3366dede2c10860a95795ce60`
Хранится: `~/Documents/steamgriddb_api_key.txt` и `~/.bashrc` (STEAMGRIDDB_API_KEY)
**API:**
```bash
curl -s \
-H "Authorization: Bearer 5f0a7cb3366dede2c10860a95795ce60" \
-H "Accept: application/json" \
"https://www.steamgriddb.com/api/v2/search/autocomplete/<query>"
```
**Скрипты на HDD** (`/run/media/system/Data/scripts/`):
- `update-steam-artwork.py` — для эмуляторов (все shortcut'ы)
- `update-steam-artwork-windows.py` — для Windows игр
- `update-doom-artwork.py` — Doom 3 BFG
- `update-vk-artwork.py` — VK GameCenter + Atomic Heart VK
**Формат файлов в `~/.steam/steam/userdata/147839491/config/grid/`:**
- `{appid}p.png` — cover (portrait, 600×900)
- `{appid}.png` — wide (920×430)
- `{appid}_hero.png` — hero
- `{appid}_logo.png` — logo
**Запуск:**
```bash
python3 /run/media/system/Data/scripts/update-steam-artwork.py
```
Перезапуск Steam после смены арта:
```bash
systemctl --user restart gamescope-session-plus@steam.service
```
**Имена игр важны** — SteamGridDB ищет по `AppName` из shortcuts.vdf. Неправильное имя → неправильный арт.
### Описания — недоступно
Steam не поддерживает описания для non-Steam shortcuts — ни через vdf, ни через API. Ограничение самого Steam.
---
## Windows игры (Data/games) — Proton
**Статус:** ✅ 39 игр добавлены в Steam shortcuts (17.05.2026), Proton Experimental, обложки скачаны.
**Расположение игр:** `/run/media/bazzite/Data/games/`
**Список:**
Atomic Bomberman, Brawlhalla, Castle Crashers, Contra: Operation Galuga, Cuphead, Discworld Noir, Distance, Doom 3 BFG Edition, Duck Game, Fallout 4, Final Fantasy X/X-2 HD, Gas Guzzlers Extreme, GTA V, GRIP, Heave Ho, Human Fall Flat, Lethal League Blaze, Liftoff FPV, Metal Slug X, Metro Exodus, Monaco, Nidhogg 2, No Time to Explain, Pummel Party, Rayman Legends, Rayman Origins, Red Alert 3, Samurai Gunn, Savant Ascent, Shovel Knight, Civilization V, Skydrift, Soldat, Split Second, Super Bomberman R2, TowerFall Ascension, Vladik Brutal, Worms WMD, Worms World Party Remastered
**Compat tool:** `proton_experimental` — прописан в `~/.local/share/Steam/config/config.vdf``CompatToolMapping`
**Скрипты:**
```bash
python3 /tmp/add_windows_games.py # добавить игры в shortcuts.vdf (Steam закрыт!)
python3 /tmp/artwork_windows.py # скачать обложки с SteamGridDB
```
**Сейвы Windows → Linux:**
- Rayman Origins: скопирован на `/run/media/bazzite/Data/backups/saves/rayman-origins/savegame_0`
- При первом запуске через Proton: положить в `~/.local/share/Steam/steamapps/compatdata/<appid>/pfx/drive_c/users/steamuser/Documents/My Games/rayman origins/savegame/`
---
## Wishlist / К покупке в Steam
| Игра | Платформа | Примечание |
|------|-----------|------------|
| **DuckTales Remastered** | Steam | HD ремастер WayForward (2013) — пока недоступен в магазине |
---
---
## N64 — Hi-Res Texture Packs (HTS)
**Платформа:** RetroArch core `mupen64plus_next_libretro.so`
**Формат:** `HTS` — кешированные текстуры GLideN64. Файлы `*_HIRESTEXTURES.hts` кладутся в:
```
~/.var/app/org.libretro.RetroArch/config/retroarch/system/Mupen64plus/cache/
```
**Настройки в `Mupen64Plus-Next.opt`** (обязательно):
```
txHiresEnable = "True"
txHiresFullAlphaChannel = "True"
EnableEnhancedHighResStorage = "True"
EnableEnhancedTextureStorage = "True"
EnableTextureCache = "True"
txCacheCompression = "True"
txFilterMode = "None" # для HTS не нужен
```
**Источник пакетов:** [EvilGames.eu](https://evilgames.eu/texture-packs.htm) — GhostlyDark's Reloaded серия
### Имя файла HTS = ROM Header Name
Имя `.hts` файла должно совпадать с **внутренним именем ROM** (не с именем файла). Проверить:
```bash
# Показать ROM header name
head -c 25 /path/to/rom.z64 | strings
# Или через Python:
python3 -c "rom=open('/path/to/rom.z64','rb').read(); print(rom[0x20:0x20+20].decode('ascii','ignore').strip())"
```
### Установленные HTS (июнь 2026)
| ROM Header | Игра | Размер HTS | Пакет | Прогресс |
|-----------|------|-----------|-------|----------|
| `BANJO TOOIE` | Banjo-Tooie | 132MB | BT Reloaded v0.1.1 | UI only |
| `Banjo-Kazooie` | Banjo-Kazooie | 2.0GB | BK Reloaded v0.2.0 | UI only |
| `SMASH BROTHERS` | Super Smash Bros | 1.2GB | SSB Reloaded v2.0.1 | 100% |
| `MARIOKART64` | Mario Kart 64 | 12GB | MK64 Reloaded v2026.04.03 | 100% |
| `SUPER MARIO 64` | Super Mario 64 | 4.9GB | SM64 Reloaded v2.6.0 | 100% |
| `THE LEGEND OF ZELDA` | Zelda: Ocarina of Time | 29GB | OoT Reloaded v11.0.0 | 100% |
| `ZELDA MAJORA'S MASK` | Zelda: Majora's Mask | 17GB | MM Reloaded v11.0.2 | 100% |
### Несовместимые форматы
**GlideHQ (подпапки)** — старые пакеты в формате `hires_texture/ROM_NAME/`**не работают** с Mupen64Plus-Next в RetroArch. Только HTS.
**Rice (плоские PNG)** — можно скомпилировать в HTS через RMG (Rosalie's Mupen GUI), но только с запущенной игрой в GUI режиме. Headless не работает.
**Conker (Conker BFD)** — есть только PNG (60MB) на диске, готового HTS нет. Нужна компиляция.
### Процесс установки
```bash
CACHE="$HOME/.var/app/org.libretro.RetroArch/config/retroarch/system/Mupen64plus/cache"
# Извлечь HTS из архива напрямую в кэш
7z x /path/to/pack.7z -so "ROMNAME_HIRESTEXTURES.hts" > "$CACHE/ROMNAME_HIRESTEXTURES.hts"
```
**Важно:** `/tmp` — tmpfs (16GB). Для пакетов >1GB качать сразу на `/run/media/system/Data/N64/`.
---
## TODO: DOS / Windows Standalone
- [ ] Discworld (DOS) — настроить через DOSBox в RetroArch или DOSBox Staging standalone
- [ ] Другие Windows/DOS игры — добавить в SRM как standalone shortcuts
- [ ] Добавить парсеры в SRM: DOS и/или Windows категории
---
## Ryujinx (Nintendo Switch)
**Версия:** 1.3.3 (Ryubing fork, Flatpak `io.github.ryubing.Ryujinx`)
**Статус:** ✅ Работает (10.06.2026)
**Компоненты:**
| Компонент | Статус | Путь |
|-----------|--------|------|
| Keys | ✅ `prod.keys` (12KB) | `~/.var/app/io.github.ryubing.Ryujinx/data/Ryujinx/system/` |
| Firmware | ✅ 19.0.1 (229 .nca) | установлен через GUI |
| ROMs на диске | ✅ 27 игр | `/run/media/system/Data/Switch Roms/` |
| Symlinks (плоские, без пробелов) | ✅ | `~/Emulation/roms/switch/` |
| В Steam (shortcuts.vdf) | ✅ 24 игры | launchoptions → плоские симлинки |
| Постеры (SteamGridDB) | ✅ wide + poster для всех | `~/.steam/steam/userdata/147839491/config/grid/` |
**36 игр в Steam (Switch) — статус на 21.06.2026:**
Всего symlinks в `~/Emulation/roms/switch/`: 31. Из них в Steam добавлено 38 (shortcuts.vdf), все с artwork.
Эмулятор: Ryujinx 1.3.3 (flatpak), firmware 19.0.1, prod.keys (12KB), title.keys отсутствует.
| Игра | ROM slug | Статус |
|------|----------|--------|
| Animal Crossing New Horizons | `animal_crossing.nsp` | ✅ работает |
| Donkey Kong Country Tropical Freeze | `donkey_kong.nsp` | ✅ работает |
| Super Mario Odyssey | `mario_odyssey.nsp` | ✅ работает |
| Mario Kart 8 Deluxe | `mario_kart_8.nsp` | ✅ работает |
| The Legend of Zelda: Breath of the Wild | `zelda_botw.nsp` | ✅ работает |
| Spyro Reignited Trilogy | `spyro_reignited_trilogy.nsp` | ✅ работает |
| Majora's Mask (2Ship2Harkinian) | `majoras_mask.nsp` | ❌ PAL_SEHException (GPU crash) |
| Donkey Kong Country Returns HD | `donkey_kong_country_returns_hd.nsp` | ⏳ NSZ |
| Hollow Knight | `hollow_knight.nsp` | ❌ битый |
| Hollow Knight: Silksong | `hollow_knight__silksong.nsp` | ⏳ NSZ |
| It Takes Two | `it_takes_two.nsp` | ❓ |
| Little Nightmares | `little_nightmares.nsp` | ❓ |
| Little Nightmares III | `little_nightmares_iii.nsp` | ❓ |
| Luigi Mansion 3 | `luigi_mansion_3.nsp` | ❓ |
| Ori and the Will of the Wisps | `ori_and_the_will_of_the_wisps.nsp` | ⏳ NSZ |
| Plants vs. Zombies: Replanted | `plants_vs__zombies__replanted.nsp` | ⏳ NSZ |
| Super Mario 3D All-Stars | `super_mario_3d_all_stars.nsp` | ❓ |
| Super Mario 3D World + Bowser Fury | `super_mario_3d_world___bowser_fury.nsp` | ⏳ NSZ |
| Super Mario Bros. Wonder | `super_mario_bros__wonder.nsp` | ❓ |
| Super Mario Party | `super_mario_party.nsp` | ❓ |
| Super Smash Bros. Ultimate | `smash_ultimate.nsp` | ⏳ NSZ |
| Sonic Mania | `sonic_mania.nsp` | ❓ |
| The Disney Afternoon Collection | `the_disney_afternoon_collection.nsp` | ✅ |
| Unravel Two | `unravel_two.nsp` | ⏳ NSZ |
| Sam & Max Save the World | `sam_and_max_save_the_world.nsp` | ❓ |
| Vasilisa and Baba Yaga | `vasilisa_and_baba_yaga.nsp` | ⏳ NSZ |
| Constance | `constance.nsp` | ❓ |
| Hunting Simulator 2 | `hunting_simulator_2.nsp` | ⏳ NSZ |
| Carnivores Dinosaur Hunt | `carnivores_dinosaur_hunt.nsp` | ⏳ NSZ |
**Symlink схема:** плоские симлинки без пробелов в `~/Emulation/roms/switch/``/run/media/system/Data/Switch Roms/...` Оригинальные симлинки на папки сохранены для совместимости.
**Transmission:** `/data/Switch Roms` (case-sensitive, с пробелом) мапится в `/run/media/system/Data/Switch Roms/` через mount `/data``/run/media/system/Data`
→ Подробно: [[switch-emulation-rom-infra]]
### ⚠️ Текущий статус — 21.06.2026
**Используется:** Flatpak `io.github.ryubing.Ryujinx` 1.3.3 stable.
**AppImage Canary 1.3.287** (`~/Applications/publish/Ryujinx`) — переименован в `Ryujinx.sh.bak`, чтобы launcher не подхватывал его (в 1.3.287 баг `ArgumentOutOfRangeException` в `CheckLaunchState()`, PR #7123/#7116).
**Проблема:** после копирования конфигов из AppImage → flatpak, Ryujinx просит prod.keys (хотя файл лежит в `data/Ryujinx/system/prod.keys`, 12KB). firmware 19.0.1 есть (229 .nca). `title.keys` отсутствует.
**Статус:** выясняется — возможно mismatch версий prod.keys (22.1.0) и firmware (19.0.1), либо flatpak sandbox не видит файлы.
**Launcher:** `~/Emulation/tools/launchers/ryujinx.sh` — ищет `~/Applications/publish/Ryujinx.sh` → не находит (`.bak`) → запускает `flatpak run io.github.ryubing.Ryujinx`.
**Логирование:** `~/ryujinx-launch.log` — PWD, ARGS, EXE, EXIT_CODE.
**Ryujinx не поддерживает NSZ нативно** — только NSP и XCI. NSZ нужно конвертировать в NSP.
**NSZ → NSP конвертация (22.06.2026):**
Установлен `nsz` CLI (v4.6) на HTPC через `pip3 install nsz`.
**Правильная команда:** `nsz -D file.nsz` (decompress mode).
Проверено на The Disney Afternoon Collection — `nsz -D` верифицировал все NCA хеши (`[VERIFIED]`), файл 407MB PFS0 (7 files), работает в Ryujinx ✅.
NSP создаётся рядом с NSZ, с тем же длинным именем (со скобками/размером). После декомпрессии:
1. Переименовать NSP в slug (короткое имя без пробелов/скобок) — `dk_country_returns_hd.nsp` и т.д.
2. Создать симлинк: `ln -sf /run/media/system/Data/Switch\ Roms/…/slug.nsp ~/Emulation/roms/switch/slug.nsp`
**Статус:**
- The Disney Afternoon Collection — ✅ конвертирован, работает
- **NSZ на конвертацию (23 игры):**
**В Steam (10):**
1. Donkey Kong Country Returns HD
2. Hollow Knight: Silksong
3. Ori and the Will of the Wisps
4. Plants vs. Zombies: Replanted
5. Super Mario 3D World + Bowser Fury
6. Super Smash Bros. Ultimate
7. Unravel Two
8. Vasilisa and Baba Yaga
9. Hunting Simulator 2
10. Carnivores Dinosaur Hunt
**Не в Steam, в 14 Hunting games (12):**
11. America Wild Hunting
12. Animal Hunting 3D
13. Best Sniper Legacy Dino Hunt Shooter 3D
14. Big Buck Hunter Arcade
15. Big Buck Hunter Ultimate Trophy
16. Cabela's The Hunt Championship Edition
17. Deer Drive Legends
18. Duck Hunting Challenge
19. Hunt
20. Hunter Simulator Wild Hunting
21. Hunting Simulator
22. Werewolf Hunter Survive the Howl
**Битый (Hash error):**
- Hollow Knight — ❌
---
## Геймпады — общая информация
| Тип | Подключение | Драйвер | Статус |
|-----|------------|---------|--------|
| Xbox 360 (×2) | USB | xpad (в ядре) | ✅ автоматически |
| 8BitDo (×2) | USB/Bluetooth, Xbox режим | xpad-совместимый | ✅ в Xbox режиме |
**8BitDo Xbox режим:** удерживать **X** при включении контроллера → определяется как Xbox-совместимый через xpad.
**Проверить подключение:**
```bash
ls /dev/input/js* # должно быть js0, js1, ...
cat /proc/bus/input/devices | grep -A4 "Xbox\|8BitDo"
```
+41
View File
@@ -0,0 +1,41 @@
---
title: "💪 Программа упражнений"
aliases: ["Упражнения", "Workout", "workout"]
tags: ["personal", "health", "fitness"]
related:
- "[[personal/documents/subscription-gym]]"
- "[[personal/documents/todo-list]]"
updated: "2026-05-17"
---
# 💪 Программа упражнений/тренировок
Жим штанги лёжа на прямой скамье 5/10
Жим гантелей лёжа на прямой скамье 5/10
Жим в тренажёре сидя грудь 5/12
Сведения рук в тренажёре сидя 5/12
Обратные отжимания от скамьи 5/10
Разгибания рук на блоке прямой ручкой 5/12
Пресс 5/30
Спина.
Тяга верхнего блока к груди прямым хватом 5/10
Тяга верхнего блока к груди узкой ручкой 5/10
Тяга нижнего блока к поясу 5/12
Бицепс стоя с кривым грифом 5/10
Молот одновременно 5/12
Обратные разведения в тренажёре 5/12
Трапеции с гантелями 5/12
Ноги.
Разминка: разгибания ног сидя в тренажёре не большой вес 3/12
Жим ногами 5/10
Сгибания ног лёжа в тренажёре 5/10
Разгибания ног сидя 5/10
Плечи.
Жим гантелей сидя на скамье 5/10
Боковые разводки стоя с гантелями 5/12
Подъем гантелей перед собой одновременно 5/12
## Связанные заметки
- [[personal/documents/subscription-gym]] — абонемент в зал
- [[personal/documents/todo-list]] — список дел
+50
View File
@@ -0,0 +1,50 @@
# Vault Sync — 2026-06-21
**Время**: 17:35
**Статус**: ✅ OK
Все три репозитория синхронизированы:
- `syncthing` — ✅ Pushed
- `taiga-vault` — ✅ Pushed
- `syncthing-out` — ✅ Pushed
**Заметки за день (из коммитов)**:
- `family/how-to/htpc-emulators-setup.md` — несколько обновлений
- `family/how-to/htpc-bazzite-proton.md` — создана
- `family/how-to/htpc-steam-nonsteam-shortcuts.md` — создана
- `family/how-to/htpc-system.md` — обновление
- `personal/projects/budget-app/index.md` — несколько коммитов
- `personal/projects/balda/balda-valera.md` — обновление
- `personal/projects/balda/fast-rlm-integration.md` — создана
- `personal/projects/balda/fix-openaimodel-tools.md` — создана
- `personal/projects/hermes/hermes-gateway-stream-consumer-text-loss.md` — создана
- `personal/projects/hermes/no-edit-segment-send-bug.md` — создана
- `personal/projects/zulip-router-approval-reactions.md` — создана
- `personal/projects/zulip-router.md` — создана
- `personal/agent/Phase 2 — Approval Reactions.md` — создана
- `personal/creative/songs/Рыба.md` — создана
**Ошибки**: одна транзиентная ошибка Push failed у syncthing в 16:31 — восстановилась на следующем цикле.
## 19:35 — cron run
Скрипт выполнен. Все три репозитория синхронизированы:
- **syncthing** — ✓ (есть единичный Push failed в 16:31, но следующий цикл исправил)
- **taiga-vault** — ✓
- **syncthing-out** — ✓
За день закоммичены изменения в:
- `family/how-to/htpc-emulators-setup.md` — много правок
- `family/how-to/htpc-bazzite-proton.md` — новая заметка
- `family/how-to/htpc-steam-nonsteam-shortcuts.md` — новая заметка
- `family/how-to/htpc-system.md` — обновление
- `personal/projects/budget-app/index.md` — правки
- `personal/projects/balda/balda-valera.md` — правки
- `personal/projects/balda/fix-openaimodel-tools.md` — новая заметка
- `personal/agent/Phase 2 — Approval Reactions.md` — новая заметка
- `personal/creative/songs/Рыба.md` — новая заметка
- `personal/projects/hermes/` — несколько заметок
- `personal/projects/zulip-router*.md` — заметки
Ошибка в строке `/usr/bin/bash: line 3: sudo: not found` — единичная, скрипт продолжил работу. Без последствий.
+16
View File
@@ -0,0 +1,16 @@
# Vault Sync — 2026-06-22
**Время**: 08:00 + **вечерний запуск 21:45**
**Статус**: ✅ OK
Скрипт выполнен. Результаты:
- **syncthing** — ✅ стабильные пуши, ошибок нет
- **taiga-vault** — ✅ стабильные пуши, ошибок нет
- **syncthing-out** — ✅ стабильные пуши, ошибок нет
**Изменения за день**:
- workout.md — обновлён (синк с Eagle/Кракена)
- .obsidian/workspace-mobile.json — менялся (автосохранение настроек Obsidian)
- .stversions — история версий старых файлов
**Ошибки**: нет. Единственный сбой — syncthing **Push failed** 21 июня в 16:31 (разовая сетевой сбой, восстановился через 2 минуты).
+18
View File
@@ -0,0 +1,18 @@
# Vault Sync — 23 июня 2026
**Скрипт**: `/opt/data/sync-vault.sh`
**Лог**: `/tmp/vault-sync.log`
**Последний запуск**: 19:21
## Статус
- **syncthing** — ✓ Pushed (каждые ~5 мин)
- **taiga-vault** — ✓ Pushed
- **syncthing-out** — ✓ Pushed
Все три репозитория синхронизируются без ошибок. За сутки — ни одного сбоя.
## Заметки
- `sudo: command not found` 17/06 — не влияет, все push'и проходят.
- Коммиты за день: 2 (в 16:10 и 17:40).
+22
View File
@@ -0,0 +1,22 @@
---
title: '2026-06-24'
type: vault-sync-log
created: '2026-06-24 04:45'
status: ok
---
Vault sync ran at 04:45 via cron job.
**Скрипт**: `/opt/data/sync-vault.sh`
**Лог**: `/tmp/vault-sync.log`
**Код выхода**: 0
Все три репозитория синхронизированы успешно:
- syncthing — Pushed ✓
- taiga-vault — Pushed ✓
- syncthing-out — Pushed ✓
**09:40** — штатная синхронизация, ошибок нет.
**16:25** — синхронизация по cron. Изменений от Eagle/Syncthing не обнаружено. Vault чист.
**21:51** — синхронизация по cron. Все три репозитория запушились без ошибок. Изменений от Eagle/Syncthing нет.
+56
View File
@@ -393,8 +393,64 @@ CACHE="$HOME/.var/app/org.libretro.RetroArch/config/retroarch/system/Mupen64plus
## Ryujinx (Nintendo Switch)
<<<<<<< HEAD
**Версия:** 1.3.3 (Ryubing fork, Flatpak `io.github.ryubing.Ryujinx`)
**Статус:** ✅ Работает (22.06.2026)
=======
**Версия:** 1.3.3 (Ryubing fork, Flatpak `io.github.ryubing.Ryujinx`)
**Статус:** ✅ Работает (10.06.2026)
**Компоненты:**
| Компонент | Статус | Путь |
|-----------|--------|------|
| Keys | ✅ `prod.keys` (12KB) | `~/.var/app/io.github.ryubing.Ryujinx/data/Ryujinx/system/` |
| Firmware | ✅ 19.0.1 (229 .nca) | установлен через GUI |
| ROMs на диске | ✅ 27 игр | `/run/media/system/Data/Switch Roms/` |
| Symlinks (плоские, без пробелов) | ✅ | `~/Emulation/roms/switch/` |
| В Steam (shortcuts.vdf) | ✅ 24 игры | launchoptions → плоские симлинки |
| Постеры (SteamGridDB) | ✅ wide + poster для всех | `~/.steam/steam/userdata/147839491/config/grid/` |
**36 игр в Steam (Switch) — статус на 21.06.2026:**
Всего symlinks в `~/Emulation/roms/switch/`: 31. Из них в Steam добавлено 38 (shortcuts.vdf), все с artwork.
Эмулятор: Ryujinx 1.3.3 (flatpak), firmware 19.0.1, prod.keys (12KB), title.keys отсутствует.
| Игра | ROM slug | Статус |
| --------------------------------------- | ---------------------------------------- | ------------------------------ |
| Animal Crossing New Horizons | `animal_crossing.nsp` | ✅ работает |
| Donkey Kong Country Tropical Freeze | `donkey_kong.nsp` | ✅ работает |
| Super Mario Odyssey | `mario_odyssey.nsp` | ✅ работает |
| Mario Kart 8 Deluxe | `mario_kart_8.nsp` | ✅ работает |
| The Legend of Zelda: Breath of the Wild | `zelda_botw.nsp` | ✅ работает |
| Spyro Reignited Trilogy | `spyro_reignited_trilogy.nsp` | ✅ работает |
| Majora's Mask (2Ship2Harkinian) | `majoras_mask.nsp` | ❌ PAL_SEHException (GPU crash) |
| Donkey Kong Country Returns HD | `donkey_kong_country_returns_hd.nsp` | ⏳ NSZ |
| Hollow Knight | `hollow_knight.nsp` | ❌ битый |
| Hollow Knight: Silksong | `hollow_knight__silksong.nsp` | ⏳ NSZ |
| It Takes Two | `it_takes_two.nsp` | ❓ |
| Little Nightmares | `little_nightmares.nsp` | ❓ |
| Little Nightmares III | `little_nightmares_iii.nsp` | ❓ |
| Luigi Mansion 3 | `luigi_mansion_3.nsp` | ❓ |
| Ori and the Will of the Wisps | `ori_and_the_will_of_the_wisps.nsp` | ⏳ NSZ |
| Plants vs. Zombies: Replanted | `plants_vs__zombies__replanted.nsp` | ⏳ NSZ |
| Super Mario 3D All-Stars | `super_mario_3d_all_stars.nsp` | ❓ |
| Super Mario 3D World + Bowser Fury | `super_mario_3d_world___bowser_fury.nsp` | ⏳ NSZ |
| Super Mario Bros. Wonder | `super_mario_bros__wonder.nsp` | ❓ |
| Super Mario Party | `super_mario_party.nsp` | ❓ |
| Super Smash Bros. Ultimate | `smash_ultimate.nsp` | ⏳ NSZ |
| Sonic Mania | `sonic_mania.nsp` | ❓ |
| The Disney Afternoon Collection | `the_disney_afternoon_collection.nsp` | ✅ |
| Unravel Two | `unravel_two.nsp` | ⏳ NSZ |
| Sam & Max Save the World | `sam_and_max_save_the_world.nsp` | ❓ |
| Vasilisa and Baba Yaga | `vasilisa_and_baba_yaga.nsp` | ⏳ NSZ |
| Constance | `constance.nsp` | ❓ |
| Hunting Simulator 2 | `hunting_simulator_2.nsp` | ⏳ NSZ |
| Carnivores Dinosaur Hunt | `carnivores_dinosaur_hunt.nsp` | ⏳ NSZ |
**Symlink схема:** плоские симлинки без пробелов в `~/Emulation/roms/switch/``/run/media/system/Data/Switch Roms/...` Оригинальные симлинки на папки сохранены для совместимости.
**Transmission:** `/data/Switch Roms` (case-sensitive, с пробелом) мапится в `/run/media/system/Data/Switch Roms/` через mount `/data``/run/media/system/Data`
>>>>>>> nas/main
→ Подробно: [[switch-emulation-rom-infra]]
### Компоненты
Regular → Executable
+1 -1
View File
@@ -23,8 +23,8 @@ updated: "2026-05-17"
Тяга нижнего блока к поясу 5/12
Бицепс стоя с кривым грифом 5/10
Молот одновременно 5/12
Обратные разведения в тренажёре 5/12
Трапеции с гантелями 5/12
Обратные разведения в тренажёре 5/12
Ноги.
Разминка: разгибания ног сидя в тренажёре не большой вес 3/12