Any alternatives to symlinks for organizing non-libretro savegames?
-
Hi all, my retropie (raspberry pi 4, using current image) has an SSD connected by USB with all of my roms and save games, but I boot off a micro sd card. All of my save games and save states are saved in platform-specific folders within a 'savegames' folder in my 'roms' folder (by editing each platform's retroarch.cfg to point to the respective folder). It keeps it all neat and tidy and easy to backup (just copy the main savegames folder!).
But, the non-libretro emulators (like Redream or PPSSPP) save their files elsewhere (such as in sub-folders in the 'configs' folder). I thought to symlink the, for example, Redream save directory to a folder within my USB-mounted savegames folder. But it just wouldn't work. After poking around on the internet (and on here), I'm guessing that might be because the SSD has a FAT32 file system? (And that symlinks to a FAT32 system don't work? As a test, I was able to get a symlink working where I sent my savegame folder to a sub-folder in the config folder. It wasn't useful but it was just a test to see if it would work, and it did. But I couldn't get the reverse to work). Assuming that's true, do I have any alternatives to symlinking that I can use to keep all my non-libretro save files in the same place as my libretro ones? I didn't (again using redream for example) see anything I could set in the redream.cfg file to do that. Has anyone else come up with a solution for this? Thanks.
-
You can have symlinks pointing towards a FAT32 file/folder, but you can't have it the other way around (source symlink on the FAT32). As for your query, it depends on each emulator, but symlink-ing a config sub-folder should work.
-
You could try bind mounts instead of symlinks. Both should work the same in most cases with only very few exceptions. Although a mount is sometimes said to be more transparent to the system than a symlink, I don't know if that's true (or helpful in your case).
Say, your FAT32 medium is mounted at
/media/usb0
and has the directoriesarcade
andsnes
on it. You could then mount those dirs to the resp. rom dirs like this:sudo mount --bind /media/usb0/arcade /home/pi/RetroPie/roms/arcade sudo mount --bind /media/usb0/snes /home/pi/RetroPie/roms/snes
Both dirs have to exist for
mount
to work, the latter will be blended over by the former, making any contents invisible to the system for the time of the mount. Apart from that, it's the same as makingarcade
andsnes
symlinks to/media/usb0
.The mounts above wouldn't survive a reboot, you'd have to add these lines to your
/etc/fstab
for permanent mounts at every system boot./media/usb0/arcade /home/pi/RetroPie/roms/arcade none bind,bg 0 0 /media/usb0/snes /home/pi/RetroPie/roms/snes none bind,bg 0 0
If the system complains at boot time that it can't find
/media/usb0/…
(yet), you may have to mount that viafstab
as well, like it is described in Manual Mount. But you should first test if temporary mounts make any difference to your problem. -
Thank you both for the replies.
@mitu I guess it is possible then that my symlink commands were wrong? I did try a few different variations in case my poor linux experience was butchering something. Most were similar to the below:
sudo ln -s /opt/retropie/configs/dreamcast/redream /home/pi/RetroPie/roms/savegames/dreamcast
I just get "Failed to create symbolic link" and "Operation not permitted"
@Clyde The temporary mount worked! Will look to add them to
/etc/fstab
as you described. Thank you! -
@BreadPie said in Any alternatives to symlinks for organizing non-libretro savegames?:
I just get "Failed to create symbolic link" and "Operation not permitted"
That's because the filesystem ( the roms folder ) doesn't understand symlinks.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.