Merge pull request #124 from outis1one/claude/happy-euler-co0mgo
wolf: persist RetroArch shaders & overlays; back up bios + shaders/ov…
This commit is contained in:
@@ -120,6 +120,9 @@ if [ -n "${MC_BASE_DIR:-}" ]; then
|
||||
done
|
||||
fi
|
||||
[ "${BACKUP_SAVES:-no}" = yes ] && snap "emulator-saves" "$GAME_STORAGE_DIR/saves"
|
||||
[ "${BACKUP_BIOS:-no}" = yes ] && snap "emulator-bios" "$GAME_STORAGE_DIR/bios"
|
||||
[ "${BACKUP_RA_SHADERS:-no}" = yes ] && snap "retroarch-shaders" "$GAME_STORAGE_DIR/retroarch/shaders"
|
||||
[ "${BACKUP_RA_SHADERS:-no}" = yes ] && snap "retroarch-overlays" "$GAME_STORAGE_DIR/retroarch/overlays"
|
||||
[ "${BACKUP_STEAM:-no}" = yes ] && snap "steam-userdata" "$GAME_STORAGE_DIR/steam"
|
||||
[ "${BACKUP_MEDIA:-no}" = yes ] && snap "es-de-media" "$GAME_STORAGE_DIR/media"
|
||||
[ "${BACKUP_WOLF:-no}" = yes ] && snap "wolf-state" "$WOLF_STATE_DIR"
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
# Backs up the things you can't re-download — progress, saved games, user data:
|
||||
# • Minecraft worlds / player data (every <id>/data instance under $DOCKER_DIR)
|
||||
# • Emulator saves & save states ($GAME_STORAGE_DIR/saves) [gaming box]
|
||||
# • Emulator BIOS / firmware ($GAME_STORAGE_DIR/bios) [gaming box]
|
||||
# • RetroArch shaders & overlays ($GAME_STORAGE_DIR/retroarch) [gaming box]
|
||||
# • ES-DE scraped artwork ($GAME_STORAGE_DIR/media) [gaming box]
|
||||
# • Steam user data & game saves ($GAME_STORAGE_DIR/steam) [gaming box]
|
||||
# • Wolf state (/etc/wolf — config + profile_data) [gaming box]
|
||||
@@ -190,6 +192,10 @@ install_gaming_backup() {
|
||||
local _a=""
|
||||
prompt_yn " Back up emulator saves ($GAME_STORAGE_DIR/saves)? (y/N):" "n" _a
|
||||
local BACKUP_SAVES; BACKUP_SAVES=$([[ "$_a" =~ ^[Yy]$ ]] && echo yes || echo no)
|
||||
prompt_yn " Back up emulator BIOS/firmware ($GAME_STORAGE_DIR/bios)? (y/N):" "n" _a
|
||||
local BACKUP_BIOS; BACKUP_BIOS=$([[ "$_a" =~ ^[Yy]$ ]] && echo yes || echo no)
|
||||
prompt_yn " Back up RetroArch shaders & overlays ($GAME_STORAGE_DIR/retroarch)? (y/N):" "n" _a
|
||||
local BACKUP_RA_SHADERS; BACKUP_RA_SHADERS=$([[ "$_a" =~ ^[Yy]$ ]] && echo yes || echo no)
|
||||
prompt_yn " Back up Steam user data/saves (game installs excluded)? (y/N):" "n" _a
|
||||
local BACKUP_STEAM; BACKUP_STEAM=$([[ "$_a" =~ ^[Yy]$ ]] && echo yes || echo no)
|
||||
prompt_yn " Back up ES-DE scraped artwork ($GAME_STORAGE_DIR/media)? (y/N):" "n" _a
|
||||
@@ -293,6 +299,8 @@ MC_BASE_DIR="$MC_BASE_DIR"
|
||||
GAME_STORAGE_DIR="$GAME_STORAGE_DIR"
|
||||
WOLF_STATE_DIR="$WOLF_STATE_DIR"
|
||||
BACKUP_SAVES="$BACKUP_SAVES" # \$GAME_STORAGE_DIR/saves
|
||||
BACKUP_BIOS="$BACKUP_BIOS" # \$GAME_STORAGE_DIR/bios (emulator BIOS/firmware — user-provided)
|
||||
BACKUP_RA_SHADERS="$BACKUP_RA_SHADERS" # \$GAME_STORAGE_DIR/retroarch/{shaders,overlays} (cores excluded — re-downloadable)
|
||||
BACKUP_STEAM="$BACKUP_STEAM" # \$GAME_STORAGE_DIR/steam (game installs excluded by policy)
|
||||
BACKUP_MEDIA="$BACKUP_MEDIA" # \$GAME_STORAGE_DIR/media (ES-DE scraped artwork)
|
||||
BACKUP_WOLF="$BACKUP_WOLF" # /etc/wolf — config + profile_data
|
||||
@@ -459,6 +467,8 @@ UNITEOF
|
||||
echo " Backing up :"
|
||||
[ -n "$MC_BASE_DIR" ] && echo " • Minecraft worlds $MC_BASE_DIR/*/data (all instances)"
|
||||
[ "$BACKUP_SAVES" = yes ] && echo " • Emulator saves $GAME_STORAGE_DIR/saves"
|
||||
[ "$BACKUP_BIOS" = yes ] && echo " • Emulator BIOS $GAME_STORAGE_DIR/bios"
|
||||
[ "$BACKUP_RA_SHADERS" = yes ] && echo " • RA shaders/overlays $GAME_STORAGE_DIR/retroarch/{shaders,overlays}"
|
||||
[ "$BACKUP_STEAM" = yes ] && echo " • Steam user data $GAME_STORAGE_DIR/steam (game installs excluded)"
|
||||
[ "$BACKUP_MEDIA" = yes ] && echo " • ES-DE scraped art $GAME_STORAGE_DIR/media"
|
||||
[ "$BACKUP_WOLF" = yes ] && echo " • Wolf state $WOLF_STATE_DIR (config + profile_data)"
|
||||
|
||||
+27
-5
@@ -231,7 +231,7 @@ EOF
|
||||
echo " - Write $WOLF_DIR/docker-compose.yml and $WOLF_DIR/manage.sh"
|
||||
echo " - Open Moonlight UFW ports: TCP ${WOLF_PORTS_TCP[*]} / UDP ${WOLF_PORTS_UDP[*]}"
|
||||
echo " - Start Wolf and inject Steam + EmulationStation app profiles"
|
||||
echo " - Create bios/ + retroarch/cores/ on the game drive and pre-download RetroArch cores (~1.5 GB)"
|
||||
echo " - Create bios/ + retroarch/{cores,shaders,overlays}/ on the game drive and pre-download RetroArch cores (~1.5 GB)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
@@ -702,7 +702,8 @@ UDEV
|
||||
"$GAME_STORAGE_DIR/firefox" "$GAME_STORAGE_DIR/minecraft" \
|
||||
"$GAME_STORAGE_DIR/kodi" "$GAME_STORAGE_DIR/emulators" \
|
||||
"$GAME_STORAGE_DIR/steam-cache" \
|
||||
"$GAME_STORAGE_DIR/bios" "$GAME_STORAGE_DIR/retroarch/cores"
|
||||
"$GAME_STORAGE_DIR/bios" "$GAME_STORAGE_DIR/retroarch/cores" \
|
||||
"$GAME_STORAGE_DIR/retroarch/shaders" "$GAME_STORAGE_DIR/retroarch/overlays"
|
||||
|
||||
# ── Wolf state folder on the game drive ───────────────────────────────────
|
||||
# This is the clean way to keep Steam (and everything else) off the OS
|
||||
@@ -1303,6 +1304,8 @@ CATALOG = {
|
||||
f'{games}/media:/media:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retroarch/cores:/home/retro/.config/retroarch/cores:rw',
|
||||
f'{games}/retroarch/shaders:/home/retro/.config/retroarch/shaders:rw',
|
||||
f'{games}/retroarch/overlays:/home/retro/.config/retroarch/overlays:rw',
|
||||
f'{games}/emulators:/mnt/games/emulators:rw',
|
||||
f'{games}/emulators:/home/retro/Applications:rw'],
|
||||
env=STD_ENV, cap_add=STD_CAP, security_opt=[], ipc_mode='host',
|
||||
@@ -1326,7 +1329,9 @@ CATALOG = {
|
||||
mounts=[f'{games}/roms:/ROMs:rw',
|
||||
f'{games}/saves:/mnt/games/saves:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retroarch/cores:/home/retro/.config/retroarch/cores:rw'],
|
||||
f'{games}/retroarch/cores:/home/retro/.config/retroarch/cores:rw',
|
||||
f'{games}/retroarch/shaders:/home/retro/.config/retroarch/shaders:rw',
|
||||
f'{games}/retroarch/overlays:/home/retro/.config/retroarch/overlays:rw'],
|
||||
env=STD_ENV, cap_add=STD_CAP, security_opt=[], ipc_mode='host',
|
||||
ulimits=[], privileged=False,
|
||||
),
|
||||
@@ -2587,6 +2592,8 @@ CATALOG = {
|
||||
f'{games}/media:/media:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retroarch/cores:/home/retro/.config/retroarch/cores:rw',
|
||||
f'{games}/retroarch/shaders:/home/retro/.config/retroarch/shaders:rw',
|
||||
f'{games}/retroarch/overlays:/home/retro/.config/retroarch/overlays:rw',
|
||||
f'{games}/emulators:/mnt/games/emulators:rw',
|
||||
f'{games}/emulators:/home/retro/Applications:rw'],
|
||||
env=STD_ENV, cap_add=STD_CAP, security_opt=[], ipc_mode='host',
|
||||
@@ -2610,7 +2617,9 @@ CATALOG = {
|
||||
mounts=[f'{games}/roms:/ROMs:rw',
|
||||
f'{games}/saves:/mnt/games/saves:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retroarch/cores:/home/retro/.config/retroarch/cores:rw'],
|
||||
f'{games}/retroarch/cores:/home/retro/.config/retroarch/cores:rw',
|
||||
f'{games}/retroarch/shaders:/home/retro/.config/retroarch/shaders:rw',
|
||||
f'{games}/retroarch/overlays:/home/retro/.config/retroarch/overlays:rw'],
|
||||
env=STD_ENV, cap_add=STD_CAP, security_opt=[], ipc_mode='host',
|
||||
ulimits=[], privileged=False,
|
||||
),
|
||||
@@ -2837,7 +2846,9 @@ PYEOF
|
||||
echo " ${GAME_STORAGE_DIR}/"
|
||||
echo " roms/ → /ROMs (EmulationStation)"
|
||||
echo " bios/ → /home/retro/bioses (emulator BIOS/firmware)"
|
||||
echo " retroarch/cores/ → ~/.config/retroarch/cores (libretro cores)"
|
||||
echo " retroarch/cores/ → ~/.config/retroarch/cores (libretro cores)"
|
||||
echo " retroarch/shaders/ → ~/.config/retroarch/shaders (shaders/CRT filters — persist)"
|
||||
echo " retroarch/overlays/ → ~/.config/retroarch/overlays (bezels/overlays — persist)"
|
||||
echo " saves/ → /home/retro/.config/retroarch/saves (RetroArch saves)"
|
||||
echo " media/ → /media (ES-DE scraped artwork)"
|
||||
echo " wolf-state/ → Wolf state: Steam install, games, Proton prefixes,"
|
||||
@@ -2848,6 +2859,8 @@ PYEOF
|
||||
echo " • Drop ROMs in roms/<system>/ (e.g. roms/snes/, roms/genesis/)"
|
||||
echo " • Drop BIOS files in bios/ (PSX/Saturn/Dreamcast/Neo-Geo need them)"
|
||||
echo " • RetroArch cores are pre-downloaded — retro games launch immediately"
|
||||
echo " • Shaders & overlays persist on the game drive — set up a CRT shader or"
|
||||
echo " bezels once and they survive new sessions and reinstalls"
|
||||
echo " • Controllers auto-configure: ES-DE & RetroArch map Wolf's virtual pad"
|
||||
echo " via SDL, no manual input setup needed"
|
||||
echo " • Exit a game → ES-DE: Start+Select opens RetroArch menu → Quit,"
|
||||
@@ -2995,6 +3008,8 @@ Two things live on the game drive (\`$GAME_STORAGE_DIR\`):
|
||||
- \`roms/<system>/\` → /ROMs (EmulationStation — drop ROMs here)
|
||||
- \`bios/\` → /home/retro/bioses (emulator BIOS/firmware — drop BIOS here)
|
||||
- \`retroarch/cores/\` → ~/.config/retroarch/cores (libretro cores, pre-downloaded)
|
||||
- \`retroarch/shaders/\` → ~/.config/retroarch/shaders (shaders/CRT filters — persist)
|
||||
- \`retroarch/overlays/\` → ~/.config/retroarch/overlays (bezels/overlays — persist)
|
||||
- \`saves/\` → /mnt/games/saves (RetroArch saves & states)
|
||||
- \`emulators/\` → /mnt/games/emulators + ~/Applications (Azahar 3DS AppImage, etc.)
|
||||
|
||||
@@ -3023,6 +3038,13 @@ ES-DE is usable the moment you launch it; only ROMs and BIOS are yours to add.
|
||||
\`~/.config/retroarch/cores\`, so libretro games launch right away. Refresh or
|
||||
expand the set with \`./manage.sh cores\` (\`all\` = full buildbot set,
|
||||
\`common\` = mainstream systems, add \`force\` to re-download).
|
||||
- **Shaders & overlays**: \`retroarch/shaders/\` and \`retroarch/overlays/\` are
|
||||
mounted at \`~/.config/retroarch/{shaders,overlays}\` and live on the game
|
||||
drive, so anything you pull from the Online Updater or set in the Quick Menu
|
||||
(Shaders / On-Screen Overlay) persists across sessions and survives a Wolf
|
||||
reinstall — configure your CRT shader or bezels once. If RetroArch ever writes
|
||||
them elsewhere, point Settings → Directory → Video Shader / Overlay at
|
||||
\`~/.config/retroarch/shaders\` and \`~/.config/retroarch/overlays\`.
|
||||
- **Controllers**: auto-configured. ES-DE and RetroArch map Wolf's virtual pad
|
||||
through SDL with no manual input setup. RPCS3 ships Wolf-specific bindings.
|
||||
To remap inside ES-DE: Main menu → Input device settings → Configure
|
||||
|
||||
Reference in New Issue
Block a user