Steam Deck
Play on your Steam Deck, pick up on your Android handheld or PC. RetroArch's Cloud Sync and SaveSync keep your saves and states the same on all of them.
There are three common ways to run RetroArch on a Steam Deck, and Cloud Sync works in each:
~/.var/app/org.libretro.RetroArch/config/retroarch/.~/Emulation/saves/retroarch/. Leave EmuDeck's own cloud sync off for RetroArch if you use SaveSync.EmuDeck turns off RetroArch's Sort Saves into Folders by Core Name, and RetroDECK sorts by the ROM's folder instead. Whichever you use, set the same sorting on your other devices (see below), or they won't find each other's saves.
https://savesync.fastwater.app/saves/, with the slash at the end, then enter the Username and Password from SaveSync.cloud_backups folder before it overwrites or deletes it.The settings are quickest to fill in from desktop mode with a keyboard: open RetroArch there, enter the URL and password, and quit RetroArch to save them. Game mode then uses the same settings. Or press Steam + X for the on-screen keyboard in game mode.
RetroArch syncs saves by their path inside its saves folder. Two devices only share a save when the path matches, so check these settings in Settings, Saving on every device:
The game's file name matters too: Pokemon Emerald (USA).srm only matches a ROM with the same name. Rename the ROM on one device if they differ. Use the same core for a game on each device as well, since a core's saves sit in its own folder when sorting by core name is on.
RetroArch syncs when it starts and when you close a game, not while you play. Close the game before you put a device down, and let RetroArch start on the next one before you load the game there.
If two devices change the same save between syncs, RetroArch skips that file and says "Cloud Sync finished with conflicts". To keep the copy in the cloud, delete the save on the device and sync again (in Settings, Saving, Cloud Sync, Sync Now). SaveSync keeps the 20 newest versions of every save either way, so you can restore one from the dashboard.
Typing a URL and a long password with a controller is slow. Instead, with RetroArch closed (it rewrites its config when it quits), open retroarch.cfg (~/.var/app/org.libretro.RetroArch/config/retroarch/ for the Flatpak and EmuDeck, or the Steam version's folder) and set:
cloud_sync_enable = "true" cloud_sync_driver = "webdav" webdav_url = "https://savesync.fastwater.app/saves/" webdav_username = "savesync" webdav_password = "<your SaveSync password>" cloud_sync_sync_saves = "true" cloud_sync_destructive = "false"
Not sure where the file is? In RetroArch, Main Menu, Configuration File, Save Current Configuration shows its path.