diff --git a/family/how-to/htpc-emulators-setup.md b/family/how-to/htpc-emulators-setup.md new file mode 100644 index 00000000..ba12309d --- /dev/null +++ b/family/how-to/htpc-emulators-setup.md @@ -0,0 +1,201 @@ +# HTPC — Эмуляторы: Настройка + +> Актуально: май 2026. Железо: i7-6800K, RX 570, 32GB RAM. + +--- + +## 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 + Classic Controller (для Wii игр):** XInput2/0..3/Xbox 360 Controller +- Extension = Classic Controller +- Кнопки маппятся напрямую через Classic Controller +- 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 +``` + +### Кооп игры на 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 ✅ + +--- + +## Ryujinx (Nintendo Switch) + +**Версия:** 1.3.3 (Ryubing fork, Flatpak `io.github.ryubing.Ryujinx`) +**Статус:** ✅ Установлен (16.05.2026), ждёт ключей + +**Пути:** +``` +Keys: ~/.var/app/io.github.ryubing.Ryujinx/data/Ryujinx/system/prod.keys +ROMs: ~/Emulation/roms/switch/ +``` + +**Нужно:** +1. Скачать `prod.keys` + firmware: https://github.com/THZoria/NX_Firmware +2. Firmware: Ryujinx → Tools → Install Firmware +3. ROM DKC Tropical Freeze (.nsp/.xci) — через qBittorrent + +→ Подробно: [[switch-emulation-rom-infra]] + +--- + +## Геймпады — общая информация + +| Тип | Подключение | Драйвер | Статус | +|-----|------------|---------|--------| +| 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" +``` diff --git a/family/how-to/htpc-gaming-plans.md b/family/how-to/htpc-gaming-plans.md index 79dabe7e..b37383b8 100644 --- a/family/how-to/htpc-gaming-plans.md +++ b/family/how-to/htpc-gaming-plans.md @@ -32,9 +32,17 @@ - Бэкап оригинального (пустого) сейва: `saveData.bin.backup_20260516_1233` - Shovel Campaign должна отображаться как пройденная — проверить запуском -## Статус системы +## Установленные эмуляторы -- [x] Bazzite установлен, автологин в Gaming Mode +→ Полная настройка геймпадов, путей, игр: [[htpc-emulators-setup]] + +| Эмулятор | Flatpak ID | Версия | Статус | +|----------|-----------|--------|--------| +| **Dolphin** (Wii/GC) | `org.DolphinEmu.dolphin-emu` | 2603a | ✅ настроен | +| **RetroArch** | `org.libretro.RetroArch` | 1.22.2 | ✅ cores есть | +| **Ryujinx** (Switch) | `io.github.ryubing.Ryujinx` | 1.3.3 | ✅ ждёт ключей | +| **melonDS** (DS) | `net.kuribo64.melonDS` | 1.1 | установлен | +| **PPSSPP** (PSP) | `org.ppsspp.PPSSPP` | 1.20.3 | установлен | - [x] 1080p@60Hz, аудио LPCM работает - [x] LG Magic Remote работает (magic4pc) - [x] Без пароля при входе diff --git a/wiki/tech/media-pipeline-pitfalls.md b/wiki/tech/media-pipeline-pitfalls.md index d6fb11a6..468dfe60 100644 --- a/wiki/tech/media-pipeline-pitfalls.md +++ b/wiki/tech/media-pipeline-pitfalls.md @@ -42,6 +42,33 @@ confidence: high - Лимит исчерпывается только после очистки кеша когда весь TMDb идёт заново - Проблема не в архитектуре — это нормально +## Docker Deploy — Kraken (обязательный порядок) + +После каждого деплоя **обязательно** чистить dangling images, иначе диск забивается (~1-2GB за прогон): + +```bash +# Mac (после docker build) +docker image prune -f + +# Kraken (после docker load) +ssh kraken-ssh "docker image prune -f" +``` + +Полная последовательность деплоя: +```bash +# 1. Собрать +docker build -f Dockerfile.kraken -t media-pipeline:kraken . + +# 2. Перенести +docker save media-pipeline:kraken -o /tmp/mp.tar +scp /tmp/mp.tar kraken-ssh:/tmp/ +ssh kraken-ssh "docker load -i /tmp/mp.tar && rm /tmp/mp.tar && docker image prune -f" +rm /tmp/mp.tar + +# 3. Почистить локально +docker image prune -f +``` + ## Docker Run — Kraken Всегда монтировать `unresolved.json` явно: