Ayer estuve probando a jugar a roms de varios sistemas desde mi google drive usando rclone, hace tiempo había probado con las de 8-16 bits, n64 y psx en un tv box pero ya que la deck soporta sistemas más avanzados probé con mame, ps2, psp. gamecube, wii, nds, 3ds y todas perfectas, en gamecube algún juego sí que tardó unos 3s más en arrancar mientras creaba caché pero una vez arrancado parece que tenía velocidad suficiente. Me quedó por probar ps3 porque no tenía ningún disco descomprimido en mi nube.
Supogo que con un HDD de red conectado a la misma red funcionará incluso mejor, está bastante bien para cuando quieres hacer pruebas rápidas sin pasar las roms.
El comando que uso esm teniendo rclone en
/home/deck/binaries/ y las carpetas de roms en
/run/media/mmcblk0p1/Emulation/roms/ por ejemplo para gamecube:
/home/deck/binaries/rclone -P -vv mount --allow-other --allow-non-empty "remote:Carpeta_con_roms" "/run/media/mmcblk0p1/Emulation/roms/gamecube/.cloud" ---vfs-cache-mode full
Donde remote: es el origen que configuras en rclone.
Cuando lo metes por primera vez pedirá editar un archivo de fusermount para descomentar
user_allow_otherHacemos:
sudo nano /etc/fuse.conf
Cambiamos la línea
#user_allow_other
a
user_allow_other
Y para guardar el archivo presionamos "Control+O" y luego para salir "Control + X"
Con eso ya funciona el comando tal cuál lo pongo, de todas formas se puede probar con otras opciones en rclone:
https://rclone.org/commands/rclone_mount/La carpeta
.cloud es una sugerencia para que no oculte los juegos locales y por si quieres copiar una rom de la nube a la consola mediante explorador. Debería de funcionar con cualquier remote de rclone que soporte mount, incluso por ejemplo si estableces un servidor desde un pc a la deck. Si se monta encima de la carpeta de las roms ocultará temporalmente los archivos de esa carpeta mientras se ejecuta.
Si se hace scrape de imágenes videos, etc... de esas roms, las imágenes y videos se suben a la nube o al servidor personal que estais montando.
Una forma de implementarlo de forma que el comando de rclone se cierre al mismo tiempo es hacer un acceso por sistema que abra emudeck, junto a rclone mediante un script .sh, por ejemplo, que se cerrará al cerrar el juego. Otra es hacerlo por ssh pero ya necesitas un acceso a un segundo equipo.
Edito:
Ejemplo de script por sistemaDar permisos de ejecución al script primero, por ejemplo con
chmod 777 snes.shsnes.sh
#!/bin/sh
#variables comunes
rclone="/home/deck/binaries/rclone"
emulationstation="/run/media/mmcblk0p1/Emulation/tools/EmulationStation-DE-x64_SteamDeck.AppImage"
espera=5 #tiempo de espera para dar tiempo a rclone a cargar archivos (por defecto 5s)
destino="/run/media/mmcblk0p1/Emulation/roms"
TD="--drive-team-drive XXXXXXXXXXXXXX" #Si la ruta no es un Team Drive dejar como "" o eliminar
#variables específicas
origen="remote:snes"
sistema="snes"
carpeta_nube=".cloud" #crear antes para que rclone pueda montar archivos en la carpeta.
#script
konsole -e "$rclone" -P -vv mount --allow-other --allow-non-empty "$origen" "$destino/$sistema/$carpeta_nube" $TD --vfs-cache-mode full & sleep $espera
"$emulationstation"
Añadir a steam y lanzar desde gamemode.
Con esto monta los archivos de la nube del sistema específico antes de lanzar emulationstation, mediante una consola que aparece en una pestaña en paralelo, la cuál se cierra al cerrar emulationstation con el botón steam terminando la conexión.