Files
obsidian-vault/family/how-to/htpc-emulators-setup.md
T

16 KiB
Raw Blame History

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.14:/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 ~/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 паков:

Кооп игры на 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

Статус: 65 игр добавлено в Steam (10.06.2026), запускаются из Gaming Mode.

Как добавлено

Прямая запись в ~/.steam/steam/userdata/<uid>/config/shortcuts.vdf через Python + vdf библиотека.
Скрипт: /tmp/add_shortcuts.py (можно восстановить при необходимости).

Формат записи:

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:

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

Запуск:

python3 /run/media/system/Data/scripts/update-steam-artwork.py

Перезапуск Steam после смены арта:

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.vdfCompatToolMapping

Скрипты:

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) — пока недоступен в магазине

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 на диске 4 игры /run/media/system/Data/Switch Roms/
Symlinks (плоские, без пробелов) ~/Emulation/roms/switch/donkey_kong.nsp и т.д.
В Steam (shortcuts.vdf) 4 игры launchoptions → плоские симлинки
Постеры (SteamGridDB) wide + poster + hero + logo для всех 4 ~/.steam/steam/userdata/147839491/config/grid/

Игры:

Игра ROM AppID unsigned
Donkey Kong Country Tropical Freeze donkey_kong.nsp 2800279671
Super Mario Odyssey mario_odyssey.nsp 3080178152
Mario Kart 8 Deluxe mario_kart_8.nsp 3132329181
The Legend of Zelda: Breath of the Wild zelda_botw.nsp 2850930313

Symlink схема: плоские симлинки без пробелов в ~/Emulation/roms/switch/ (например donkey_kong.nsp) → /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


Геймпады — общая информация

Тип Подключение Драйвер Статус
Xbox 360 (×2) USB xpad (в ядре) автоматически
8BitDo (×2) USB/Bluetooth, Xbox режим xpad-совместимый в Xbox режиме

8BitDo Xbox режим: удерживать X при включении контроллера → определяется как Xbox-совместимый через xpad.

Проверить подключение:

ls /dev/input/js*   # должно быть js0, js1, ...
cat /proc/bus/input/devices | grep -A4 "Xbox\|8BitDo"