Ftp Sync 3DS

From GameBrew

Ftp Sync
Last Updated2021/07/22
TypeSave and Game Managers

This is a ftp syncing python package that can sync file pairs over ftp and apply patches to them. Useful for using ftpd to transfer ROM save files to and from your DS if you also play on an emulator. Setup a cron job to check for your DS's ftp server periodically to setup automatic syncing.


Clone this repo, cd into it, run pip3 install.

User guide

Config file format

Default config file location:

  • Windows: Documents\ftp_sync\ftp_sync.yaml
  • Linux/MacOS: ~/.config/ftp_sync/ftp_sync.yaml

Use either yaml or json. An example yaml file is provided with all of the currently supported options.

If the patcher option is not specified, files will be transfered unmodified.

Automatic sync behavior

On your first run, you'll likely have to specify one of the to/from commands if both remote and local files exist.

  • Will sync if either remote or local file do not exist.
  • Will sync if either local or remote files change, not both.
  • Will not sync if both files change.


python -m ftp_sync [OPTIONS] COMMAND [ARGS]...

-c, --config-file TEXT Yaml or json config file defining connection and sync pair settings
-d, --debug
--help Show this message and exit.

sync Automatically sync a specified sync pair.
sync-all Automatically sync all sync pairs.
sync-all-from Sync all sync pairs remote to local.
sync-all-to Sync all sync pairs local to remote.
sync-from Sync a pair remote to local.
sync-to Sync a pair local to remote.

The singular sync commands (the ones that aren't sync-all\*) take a -n/--name argument which specifies the sync pair to use.

Ex: python3 -m ftp_sync sync -n pokemon_pearl will sync the pokemon_pearl sync pair in the example yaml file.

External links