Skip to content

Releases: djparentx/RetroArch-Manager-with-SaveSync

RetroArch Manager v1.1

Choose a tag to compare

@djparentx djparentx released this 01 Sep 02:59
c556ad8

ChatGPT Image Aug 12, 2026, 02_04_12 PM

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:

  1. Right-click the SaveSync folder.
  2. Select Show more options if necessary.
  3. Select Give access toSpecific people.
  4. Select the Windows user account that SaveSync will use.
  5. Give that account permission to read and modify the files.
  6. 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=false

With 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=true

With 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=false

For content-folder organization:

USECONTENTFOLDER=true

The 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:

  1. Install SaveSync
  2. Enter Credentials
  3. Synchronize Now
  4. 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

...

Read more