Releases: djparentx/RetroArch-Manager-with-SaveSync
Release list
RetroArch Manager v1.1
RetroArch Manager with SaveSync
A script to manage gamesave locations and automatically synchronize them over a local samba network.
SaveSync
SaveSync is a built-in feature of RetroArch Manager that automatically synchronizes RetroArch game saves between your dArkOS device and a shared folder on a Windows PC over your local network.
It is designed to keep your saves synchronized without requiring you to manually copy them. Once configured, SaveSync can synchronize saves:
- Automatically when dArkOS starts
- Automatically when you exit a game
- Manually whenever you choose
- Between multiple dArkOS devices using the same PC share
SaveSync uses SMB/CIFS to connect to the Windows share and rsync to synchronize the files in both directions.
Important: SaveSync is a synchronization system, not simply a one-way backup. Changes are synchronized between the R36S and the PC share.
How SaveSync Works
The basic setup is:
Local Network
│
▼
┌──────────────────────────────────────┐
│ Windows PC │
│ │
│ Shared SaveSync folder │
│ ├── gb/ │
│ ├── gba/ │
│ ├── snes/ │
│ ├── psx/ │
│ └── savesync.cfg │
│ │
└──────────────────┬───────────────────┘
│ SMB
│
▼
┌──────────────────────────────────────┐
│ dArkOS / R36S │
│ │
│ RetroArch saves/states │
│ ↕ │
│ SaveSync │
│ │
└──────────────────────────────────────┘
Windows provides the shared folder through SMB. SaveSync mounts that share temporarily at:
/mnt/savesync
It then synchronizes the appropriate save directories and unmounts the share when finished.
The SaveSync script checks for a network connection before attempting synchronization and records its activity in:
/home/ark/.config/savesync.log
1. Prepare the Windows PC
Create the SaveSync Folder
Create a folder somewhere on your Windows PC to store the synchronized saves.
For example:
C:\SaveSync
You can use any location you prefer.
Do not create a separate folder for each R36S. A single shared SaveSync folder can be used by multiple dArkOS devices.
Share the Folder
Right-click the folder and share it over your local network.
In Windows 11:
- Right-click the
SaveSyncfolder. - Select Show more options if necessary.
- Select Give access to → Specific people.
- Select the Windows user account that SaveSync will use.
- Give that account permission to read and modify the files.
- Complete the sharing process.
Windows supports sharing folders over a local network using SMB.
Share Name
Pay attention to the share name.
For example, if Windows creates:
\\MY-PC\SaveSync
then:
MY-PC
is the computer name, and:
SaveSync
is the network path/share name that SaveSync needs.
SaveSync does not need the full Windows filesystem path such as:
C:\SaveSync
It needs the SMB share name:
SaveSync
Make Sure the Share Is Accessible
Before configuring the R36S, verify that the shared folder can be accessed from another device on your network.
Windows recommends enabling network discovery and file and printer sharing when sharing folders over a local network.
The Windows firewall must also allow file and printer sharing/SMB traffic. SMB normally uses TCP port 445 for direct SMB connections.
2. Choose Your Save Organization
SaveSync supports two different ways of organizing saves.
This setting is controlled by a file named:
savesync.cfg
The file must be placed in the root of the Windows SaveSync share.
For example:
C:\SaveSync\
├── savesync.cfg
├── gb\
├── gba\
├── snes\
└── psx\
There are two possible configurations.
Option A — Normal Save Folders
Use:
USECONTENTFOLDER=falseWith this configuration, the PC share is organized like this:
SaveSync/
├── savesync.cfg
├── gb/
│ ├── Game1.srm
│ └── Game2.srm
├── gba/
│ └── Game1.srm
├── snes/
│ └── Game1.srm
└── psx/
└── Game1.srm
This corresponds to RetroArch's normal centralized save directory structure:
retroarch/saves/<system>/
For example:
/home/ark/.config/retroarch/saves/gba/
The same system folder is used on the PC share:
SaveSync/gba/
SaveSync also handles RetroArch save states.
Option B — Content-Folder Organization
Use:
USECONTENTFOLDER=trueWith this configuration, SaveSync uses a nested system directory on the PC:
SaveSync/
├── savesync.cfg
├── gb/
│ └── gb/
│ ├── Game1.srm
│ └── Game2.srm
├── gba/
│ └── gba/
│ └── Game1.srm
└── snes/
└── snes/
└── Game1.srm
The extra directory level corresponds to the content-folder organization used by RetroArch Manager.
This option is useful when your RetroArch configuration stores save files alongside the game content rather than in RetroArch's centralized save directory.
The current SaveSync implementation reads USECONTENTFOLDER from the PC configuration and selects the corresponding destination structure.
3. Create savesync.cfg
Create a plain text file named:
savesync.cfg
Place it directly inside the Windows shared folder.
For normal save folders:
USECONTENTFOLDER=falseFor content-folder organization:
USECONTENTFOLDER=trueThe value must be exactly:
true
or:
false
SaveSync will reject the configuration if the value is missing or contains anything other than true or false.
4. Configure SaveSync on the Console
Open:
RetroArch Manager → SaveSync
The SaveSync menu contains:
- Install SaveSync
- Enter Credentials
- Synchronize Now
- View Log
After installation, the first menu item changes to:
Uninstall SaveSync
5. Install SaveSync
Select:
Install SaveSync
The installer automatically checks for the required CIFS support.
If mount.cifs is not installed, RetroArch Manager attempts to install the required cifs-utils package automatically.
SaveSync then installs:
/usr/local/bin/savesync.sh
and configures the automatic synchronization components.
6. Enter Network Credentials
Select:
SaveSync → Enter Credentials
You will be able to configure:
- NetBIOS or IP
- Username
- Password
- Network Path
NetBIOS or IP
You can enter either the Windows computer's network name:
MY-PC
or its IP address:
192.168.1.100
If an IP address is entered, SaveSync uses it directly.
If a computer name is entered, SaveSync uses NetBIOS name resolution to find the PC's IP address.
Recommended
For the most reliable setup, using the PC's IP address can avoid problems caused by name resolution.
If using an IP address, it is recommended to give the PC a DHCP reservation in your router so the address does not change.
Username
Enter the Windows account username that has permission to access the shared SaveSync folder.
For example:
John
Password
Enter the password for that Windows account.
SaveSync stores the credentials in:
/home/ark/.config/savesync.crd
The credentials file is created with restrictive permissions (600) so it is not publicly readable.
Network Path
Enter the SMB share name, not the Windows filesystem path.
If the Windows share is:
\\MY-PC\SaveSync
enter:
SaveSync
Do not enter:
C:\SaveSync
and do not enter:
\\MY-PC\SaveSync
The SaveSync script constructs the SMB path automatically:
//<PC>/<NETWORKPATH>
and mounts it using SMB 3.0.
7. Perform the First Synchronization
Once the Windows share and credentials are configured, select:
SaveSync → Synchronize Now
The first synchronization is important because it establishes the initial synchronized state between the R36S and the PC.
SaveSync checks both sides and synchronizes files in both directions.
The actual synchronization uses:
rsync -au
from the R36S to the PC and then again from the PC to the R36S.
When successful, RetroArch Manager displays:
Success!
If the synchronization fails, the most recent SaveSync error is displayed when available.
8. Automatic Synchronization
Once SaveSync is installed, synchronization happens automatically.
At Boot
SaveSync installs:
savesync.service
The service waits for NetworkManager's network-online service before starting the synchronization.
This allows the R36S to automatically synchronize its saves after connecting to the network during startup.
After Exiting a Game
...
