dragoonDorise / EmuDeck

Emulator configurator for Steam Deck
GNU General Public License v3.0
2.8k stars 204 forks source link

Not all saves are stored in the Emulation/saves folder #483

Open jcotton42 opened 1 year ago

jcotton42 commented 1 year ago

Running find . -type l from Emulation/saves on my SD card shows the following are symlinks

./Cemu/saves
./citra/saves
./citra/states
./dolphin/Wii
./dolphin/StateSaves
./dolphin/GC
./primehack/Wii
./primehack/StateSaves
./primehack/GC
./yuzu/saves
./rpcs3/saves
./retroarch/saves
./retroarch/states
./ppsspp/saves
./ppsspp/states

piping that to xargs readlink shows where they point to

/run/media/mmcblk0p1/Emulation/roms/wiiu/mlc01/usr/save
/home/deck/.var/app/org.citra_emu.citra/data/citra-emu/sdmc
/home/deck/.var/app/org.citra_emu.citra/data/citra-emu/states
/home/deck/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/Wii
/home/deck/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/StateSaves
/home/deck/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC
/home/deck/.var/app/io.github.shiiion.primehack/data/dolphin-emu/Wii
/home/deck/.var/app/io.github.shiiion.primehack/data/dolphin-emu/StateSaves/
/home/deck/.var/app/io.github.shiiion.primehack/data/dolphin-emu/GC
/run/media/mmcblk0p1/Emulation/storage/yuzu/nand/user/save/
/run/media/mmcblk0p1/Emulation/storage/rpcs3/dev_hdd0/home/00000001/savedata
/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/saves
/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/states
/home/deck/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/SAVEDATA
/home/deck/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/PPSSPP_STATE

Are there any plans to adjust these paths so all the save data is truly under Emulation/saves? Doing so would make syncing emulator saves with tools like SyncThing much easier.

And if I were to manually "flip" these symlinks for some of the emulators (say Dolphin), would EmuDeck break that change on its next update?

Godsbane commented 1 year ago

We include a tool to back these up now. ( Rclone) which can follow symlinks without an issue.

jcotton42 commented 1 year ago

@Godsbane While true, I had been planning to set up sync between my Windows rig and my Deck. SyncThing doesn't follow symlinks (and from what I can tell has no plans to), syncing them "as is."

There's also the issue that people backing up their saves by just copying the save folder will be missing data without realizing it.

Godsbane commented 1 year ago

It is something I want to do. Moving people's saves is scary.

It was on the list of things to do anyways though.

jcotton42 commented 1 year ago

It is something I want to do. Moving people's saves is scary.

It was on the list of things to do anyways though.

Ah ok, was there another issue already tracking this? Because if so then I missed it.

Godsbane commented 1 year ago

No there's no issue tracking it. For new emus we make sure they are moved if possible.

jcotton42 commented 1 year ago

I'd be willing to do some PRs. Is there already a setup for doing "migrations" on EmuDeck updates? Or does it not touch existing saves and such at all during an update?

jcotton42 commented 1 year ago

Just peeked and at least for Dolphin the setup saves function is called on update. I guess you could check if it's a symlink and do the swap then.

Actually it looks like moveSaveFolder just does that?

Godsbane commented 1 year ago

yes - i wrote moveSaveFolder a while ago for this very purpose.

saildot4k commented 1 year ago

It really does not matter where saves are. Some emulators do not allow saves/states/memcards to be moved, some like PCSX2 have been moved and folder title renamed, so I made a tutorial: This is for the 1.x version of emudeck, so if things were moved yet again, then I should update. I have yet to run the new 2.0 emudeck script. An addition I do want to make is to share saves between Yuzu and Ryujinx if that seems wise (needs testing) https://github.com/dragoonDorise/EmuDeck/wiki/community-creations#how-to-set-up-syncthing

Personally I would not have moved things around from default but rather just made symlinks to default location for consistency.

Godsbane commented 1 year ago

one of the most common and biggest requests we get is to move saves to the emulation folder in general.

People want them on the sd card, not as links. Over time they will all be moved if we can. It's not uncommon for someone to NOT check and do something like wipe their deck or change their ssd and then delete their saves.

Yes in general we try to make the folder title is consistent as saves or states

burdenc commented 1 year ago

Just adding my two cents. I recently removed Retroarch from Discover (and deleted the app's config) because I had got the config into a near unrecoverable state. I figured the saves/roms were under Emulation so it'd be fine. Unfortunately I didn't realize the saves were just a symlink.

Would love to see this fixed. IMO saves should never be tied to the emulator's config path, storing them under the app is just a recipe for data loss.

Godsbane commented 1 year ago

Sorry to hear that. :(

To mitigate such things for the future, there's a save backup tool you should look into. Will upload your saves to the cloud.

Also, there's a reconfigure button in Emudeck to correct issues without deleting non config things in Tools--> emu guides. It would reset your config for you, in case you get into such a state again.

burdenc commented 1 year ago

Not a huge loss since I only recently setup EmuDeck =) but it has motivated me to setup save backups as you suggest.

Little off topic, but it would be nice to have a quick and easy local save backup. I originally tried with GDrive, but looks like the default oauth client ID used by rclone is being rate limited by Google. Having a no config, one click backup method probably would have saved me here. (I'll file a separate issue for the GDrive oauth failure)

Godsbane commented 1 year ago

We can't do anything about rclones GDrive issue, so I wouldn't open an issue here on that.

dvonessen commented 1 year ago

+1 for me