Pokémon Emulator Save Backup: 13 Steps, 45 Min [2026]

A Pokémon save file is not like a save in most other games. Some players have been building the same Pokémon Emerald file for fifteen years, breeding perfect natures, hunting shinies one encounter at a time, filling out a Living Dex across five console generations. Lose that file to a corrupted SD card, an emulator update that renames a folder, or a laptop that dies mid-transfer, and there is no customer support line to call. The save is gone.

That risk has grown, not shrunk, as the pokemon emulator scene has fragmented across more devices than ever. A typical player in 2026 might run mGBA on a gaming PC, melonDS on a Steam Deck, Azahar on an Android tablet, and Eden on a laptop for the Switch-era games — four separate save folders, four separate risk points, and zero built-in system tying them together. This tutorial walks through building a real backup and sync pipeline for your pokemon emulator saves: local versioning with Syncthing, a Git-based history for save states, native cloud sync where the emulator supports it, and a tested disaster-recovery drill so you actually know the backup works before you need it.

Every step below was tested against current 2026 builds: mGBA 0.10.5, melonDS 1.1, Azahar 2126.1.2, and Eden’s September 2026 release channel. None of this requires downloading ROMs, firmware, or keys from third-party sites — you should only ever back up saves and dumps you created yourself from games and hardware you own.

Google · Preferred Sources

Don't miss new tech stories on Google

Add Tech Insider once in the Google app and our stories appear in your news suggestions.

Add Now

Why Pokémon save files need a real backup strategy

Most emulator tutorials treat the save file as an afterthought — a single line near the bottom that says “remember to back up your saves.” That undersells the problem. A pokemon emulator save is a small file, usually a .sav or .srm a few kilobytes to a few hundred kilobytes in size, but it represents something that cannot be regenerated by reinstalling software. Unlike a Steam library or a phone’s app data, there is no re-download button for four hundred hours of breeding IVs into a competitive team.

The failure modes are also more varied than people expect. A save can get corrupted mid-write if the emulator crashes or the device loses power during a save operation. It can get silently overwritten if two devices sync the same folder and one has stale data. It can get lost entirely when a phone is replaced, an SD card fails, or a cloud folder gets deleted by mistake. And because Pokémon games write saves in generation-specific formats — Game Boy Advance .sav files are structurally different from Nintendo DS .sav files, which are different again from 3DS extdata and Switch save archives — a one-size-fits-all backup script does not exist. Each emulator generation needs to be handled on its own terms, then tied together under one consistent backup habit.

The good news is that the fix is mostly a one-time setup. Once Syncthing, a version-controlled save archive, and a cloud mirror are running, backups happen automatically in the background every time a game session ends. The steps below build that system from the ground up, emulator by emulator.

Prerequisites and versions used in this tutorial

This guide assumes you already have at least one PokĂ©mon emulator installed and a legally dumped ROM or cartridge save to protect. If you have not set up an emulator yet, install the appropriate one for your generation first (mGBA for Game Boy/GBA, melonDS for Nintendo DS, Azahar for 3DS, Eden for Switch), then come back and lock down your backup pipeline. Emulation itself sits on well-established legal ground when you dump your own games from hardware you own — the Electronic Frontier Foundation’s guidance on reverse engineering and interoperability is a useful primer if you want the background. Here is what this tutorial was built and tested against:

  • Windows 11 24H2, macOS Sequoia 15.5, or a current Linux distribution (Ubuntu 24.04 or newer) as the desktop hub
  • Syncthing 1.29.x (cross-platform, open source, free)
  • Git 2.47 or newer for save-state version history
  • mGBA 0.10.5 for Game Boy, Game Boy Color, and Game Boy Advance saves
  • melonDS 1.1 for Nintendo DS saves
  • Azahar 2126.1.2 for 3DS saves and extdata
  • Eden’s September 2026 build for Switch-era save archives
  • An Android device running Android 9.0+ if you sync mobile saves, with ADB installed on your desktop
  • A free Google Drive, Dropbox, or self-hosted Nextcloud account for the offsite mirror
  • Roughly 500MB of free space — PokĂ©mon saves are tiny, but save states and version history add up over time

None of this software costs anything. Syncthing, Git, and every emulator listed here are free and open source. The only optional cost is if you choose a paid tier of cloud storage once your save-state archive grows past a free plan’s limit, which is unlikely for years of normal use given how small PokĂ©mon saves are.

Comparing the backup methods before you commit to one

Not every player needs the full pipeline described in this tutorial. Someone with a single emulator on a single device has very different needs than someone juggling four generations across four devices. The table below breaks down what each layer of the pipeline actually buys you, so you can decide how much of it is worth setting up for your own situation.

MethodProtects againstSetup timeOngoing effortCost
Manual copy to a USB driveDevice loss, if you remember to do it0 minutesHigh — easy to forgetFree
Syncthing between devicesSingle device failure, accidental overwrites (with versioning on)15-20 minutesNone after setupFree
Git version historyBad edits, wanting a searchable timeline of saves10 minutes per folderLow, can be automatedFree
Cloud mirror (Drive/Dropbox/Nextcloud)Total local loss — fire, theft, flood10 minutesNone after setupFree tier usually enough
Native emulator cloud sync (Azahar, melonDS, Delta)Cross-device continuity for one specific emulator5 minutesNone, but can break silently after updatesFree

For most players, Syncthing plus one cloud mirror covers the realistic risk without much ongoing effort. The Git layer is worth adding specifically if you are chasing something with a long timeline — a shiny hunt that could take hundreds of hours, or a Nuzlocke run where you want to be able to prove exactly what your team looked like before a specific fight.

Step 1: Audit which emulators and devices you actually use

Before touching any sync tool, write down every device and emulator combination that currently holds a Pokémon save you care about. This sounds trivial, but it is the step people skip, and it is why backups fail later — you cannot protect a save folder you forgot exists.

Make a simple list: device name, emulator, and the game or games saved on it. A typical setup might look like: desktop PC running mGBA with Emerald and FireRed; Steam Deck running melonDS with Platinum; Android tablet running Azahar with Omega Ruby; laptop running Eden with Legends Z-A. Four devices, four emulators, four save locations. Each one needs to be added to the sync pipeline individually in the steps that follow.

Step 2: Locate each emulator’s save folder

Every emulator stores saves in a different default location, and several let you change it, so confirm the actual path rather than assuming. Open each emulator’s settings menu and check the configured save directory before proceeding — do not guess based on another emulator’s convention.

EmulatorDefault save location (Windows)Default save location (Android)
mGBA 0.10.5Same folder as the ROM, or a custom path set under Settings > Paths/storage/emulated/0/Android/data/io.mgba/files
melonDS 1.1%APPDATA%\melonDS\savesNot officially supported on Android as of September 2026
Azahar 2126.1.2%APPDATA%\Citra\sdmc\Nintendo 3DS (legacy path retained for compatibility)Android/data/org.azahar.emu/files
Eden (Sept. 2026 build)%APPDATA%\eden\nand\user\saveAndroid/data/dev.eden.eden_emulator/files
DeSmuMESame folder as the ROM by defaultNot applicable, desktop-focused build

Copy each path into your audit list from Step 1. On macOS and Linux the equivalent folders live under ~/Library/Application Support/ and ~/.local/share/ respectively, following the same per-emulator naming pattern.

Step 3: Install and configure Syncthing as the sync backbone

Syncthing is the tool most of the emulation community has settled on for cross-device save syncing, and for good reason: it is free, open source, does not route your saves through a third-party server, and syncs directly between your own devices over your local network or the internet. Download it from the official site for your platform and install it on every device from your Step 1 audit.

# Linux install via the official Syncthing repo
sudo curl -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update && sudo apt install syncthing

# macOS via Homebrew
brew install syncthing

# Windows: download the .zip from syncthing.net and run syncthing.exe,
# or install the SyncTrayzor wrapper for a system tray icon

After installing, open the Syncthing web UI (usually at http://localhost:8384) on your primary desktop. This becomes your hub device. On each other device, install Syncthing and add the hub as a remote device using its device ID, found under Actions > Show ID in the web UI. Accept the connection request on both ends, and you have a private, encrypted sync mesh with no cloud middleman required.

Step 4: Create sync folder pairs for each emulator

In the Syncthing web UI, click “Add Folder” once for each emulator save path you documented in Step 2. Give each folder a clear label — “mGBA Saves,” “melonDS Saves,” “Azahar Saves” — rather than syncing one giant Documents folder, which makes troubleshooting a sync conflict much harder later.

  • Point the folder path directly at each emulator’s save directory from the table in Step 2
  • Share each folder with the specific devices that need that emulator’s saves — your Steam Deck does not need your Azahar folder if it never runs 3DS games
  • Set the folder type to “Send & Receive” only on devices where you actively play; set it to “Receive Only” on a dedicated backup device to prevent a bad sync from propagating back out

Close the emulator completely before switching devices. Every emulator listed here writes its save file on game close or on an explicit in-game save, not continuously, so syncing while the emulator is still running risks catching a half-written file mid-sync.

Step 5: Enable Syncthing file versioning to survive accidental overwrites

Sync alone is not a backup — it is a mirror. If you overwrite a good save with a bad one, Syncthing will happily sync that mistake to every device unless versioning is turned on. Inside each folder’s settings, switch File Versioning from “None” to “Simple File Versioning” or “Staggered File Versioning.”

Staggered versioning is the better default for save files: it keeps recent versions densely (every change for the last day), then thins them out over time (one version per week going back a month, one per month after that). That gives you a rollback point close to the mistake without keeping hundreds of near-identical save copies forever. Set “Keep Versions” to at least 20 and the maximum age to 90 days as a starting point.

Step 6: Build a Git-based version history for save states

Syncthing’s built-in versioning covers accidental overwrites, but if you want a searchable, timestamped history of every save state across a shiny hunt or a Nuzlocke run, a local Git repository does that job better. This is optional but valuable for anyone tracking a long-running project, since Git lets you tag specific milestones (“before Elite Four attempt 3”) and diff exactly when a save changed.

# One-time setup: turn your save folder into a Git repository
cd "C:\Users\you\AppData\Roaming\melonDS\saves"
git init
git add .
git commit -m "Initial save state baseline"

# After each session, run this to snapshot the current save
git add .
git commit -m "Platinum - post Veilstone Gym, Lv.34 team"

# See the full history of a single save file over time
git log --oneline -- "Pokemon Platinum.sav"

# Roll back to an earlier commit if a save gets corrupted
git checkout  -- "Pokemon Platinum.sav"

To automate the commit step instead of remembering to run it manually, set up a small scheduled task (Windows Task Scheduler or a cron job on Linux/macOS) that runs a commit script every 30 minutes while the emulator process is active. This turns your save history into something closer to a real backup system than a single mirrored file.

Step 7: Add a cloud mirror as your offsite copy

Syncthing protects you from a single device failing, but if your house floods or every synced device is stolen at once, a purely local mesh will not help. Add one cloud folder — Google Drive, Dropbox, or a self-hosted Nextcloud instance — as a genuine offsite copy.

The simplest approach is to point your cloud provider’s desktop sync client at the same folder Syncthing already manages on your hub device, so the cloud copy updates automatically any time Syncthing pulls in a change from another device. Do not sync the cloud folder directly to every device — route everything through the hub, so there is one clear source of truth instead of three services all trying to reconcile the same files.

Some emulators also ship native cloud sync, which is worth enabling alongside your own pipeline rather than instead of it. Azahar and melonDS both expose cloud save options in their settings menus for players signed into a supported account, and Delta on iOS bakes iCloud sync in by default so progress follows a player between an iPhone and an iPad automatically. Native sync is convenient, but it is provider-specific and can break silently after an update, so treat it as a bonus layer, not your only backup.

Step 8: Handle Android saves that Syncthing can’t reach directly

Some Android emulator builds, particularly sideloaded APKs like John GBA Lite, do not expose their save folder to the standard Android file picker Syncthing-Fork uses, which means the app can’t see the save directory to sync it. For those, pull the save manually over ADB before syncing.

# Confirm your device is connected and authorized
adb devices

# Pull the save folder from the device to your PC's Syncthing folder
adb pull /storage/emulated/0/Android/data/com.johngbalite.app/files/saves "C:\PokemonSaves\JohnGBALite"

# After editing or restoring a save, push it back to the device
adb push "C:\PokemonSaves\JohnGBALite\pokemon_emerald.sav" /storage/emulated/0/Android/data/com.johngbalite.app/files/saves/

Run the pull command after every session where you made meaningful progress, or wrap it in a simple shell script tied to a keyboard shortcut so it is not something you have to remember to type out each time.

Step 9: Exclude cache and shader-compilation folders from sync

A common mistake is syncing an emulator’s entire application data folder instead of just the save subfolder. That drags in shader caches, log files, and temporary compilation artifacts that can be gigabytes in size, regenerate automatically on next launch, and sometimes cause conflicts if two devices with different GPUs sync the same shader cache. In Syncthing’s folder settings, add an ignore pattern to exclude these directories explicitly.

# Add to the folder's .stignore file in the Syncthing web UI
shadercache/
*.log
*.tmp
cache/
glcache/

This keeps each sync folder small, fast, and focused purely on the save data that actually matters, which also makes the Git commit step in Step 6 far cleaner to read through later.

Step 10: Set a consistent naming convention across devices

If you play the same game across two emulators — for example, an mGBA save on desktop and the same ROM loaded briefly on a phone — inconsistent file naming is one of the most common causes of duplicate or orphaned saves. Standardize on a naming pattern before you have dozens of files to untangle: game title, version, and device, separated clearly, such as Emerald_Main_Desktop.sav versus a stray pokemon (1).sav that nobody can identify six months later.

This matters more than it sounds like it should. Battery saves are portable between different emulators in many cases — a Pokémon Center save made in RetroArch will usually load fine in standalone mGBA — but only if you can actually find the right file among a folder full of ambiguous names.

Step 11: Test a full restore before you need one

A backup that has never been restored is a hypothesis, not a backup. Before trusting this pipeline with an irreplaceable save, deliberately simulate a loss and confirm recovery works end to end.

  • Rename your live save file so the emulator can no longer find it, simulating accidental deletion
  • Confirm your emulator either errors cleanly or creates a fresh save, proving the original file is truly gone from that location
  • Pull the backed-up copy from your Syncthing-synced folder, your cloud mirror, or a specific Git commit
  • Restore it to the emulator’s save path and load the game to confirm progress is intact — check the exact in-game location, party, and playtime counter
  • Restore your original renamed file once the test is confirmed working

Run this drill once when you first set up the pipeline, then again any time you change emulators or devices. It takes fifteen minutes and it is the single step most likely to save a save file that actually matters.

Step 12: Verify file integrity with checksums after major transfers

After any large transfer — a new device, a full re-sync, or restoring from a months-old backup — verify the file wasn’t silently truncated or corrupted in transit rather than assuming a completed copy is a good copy.

# Generate a checksum of the save before transfer
certutil -hashfile "Pokemon Emerald.sav" SHA256

# On macOS/Linux
shasum -a 256 "Pokemon Emerald.sav"

# Compare the output against the checksum of the copy on the other device.
# Matching hashes confirm a byte-for-byte identical file.

This is a thirty-second check, but it catches the specific failure mode where a sync appears to finish successfully while the file itself is subtly truncated, which is otherwise invisible until you load the game weeks later and find corrupted data.

Step 13: Automate the routine so it survives you forgetting about it

The entire point of this pipeline is that it should not depend on remembering to do anything after the initial setup. Syncthing already runs continuously in the background and syncs on file change, so once folders are configured it needs no further attention. For the Git commit step, schedule it rather than relying on memory.

# Windows Task Scheduler equivalent via schtasks
schtasks /create /tn "PokemonSaveCommit" /tr "C:\Scripts\commit_saves.bat" /sc onlogon /ru "%USERNAME%"

# Linux/macOS cron entry - runs every 30 minutes
*/30 * * * * cd ~/saves && git add -A && git commit -m "Auto-snapshot $(date)" --quiet || true

Once this is running, check back only occasionally — once a month is plenty — to confirm Syncthing shows all devices as connected and up to date, and that your cloud mirror’s last-modified timestamp is recent. A five-minute monthly glance is the entire ongoing maintenance cost of a system that protects years of accumulated progress.

Common pitfalls that break Pokémon save backups

Even with the pipeline above in place, a handful of mistakes account for most of the save-loss stories in emulation communities. Watch for these specifically.

  • Running the same game on two devices at once. If a save syncs while a second device still has the game open, whichever device saves last silently overwrites the other’s progress. Always fully close the emulator before switching devices, and give the sync a few seconds to finish before opening it elsewhere.
  • Syncing save states and battery saves as if they were the same thing. A save state is a full memory snapshot that only works reliably in the exact emulator version, build, and sometimes even the exact input mapping that created it. A battery save (.sav/.srm) is a proper in-game save that is portable across emulators and often to real hardware. Treat save states as a convenience, not a backup — always make an in-game save before switching devices or emulator versions.
  • Assuming cloud storage clients handle conflicts gracefully. Generic cloud sync tools like a basic Dropbox or Drive folder will sometimes create “conflicted copy” files instead of merging changes, and if you don’t notice, your game may silently load the wrong one. Syncthing’s versioning and conflict resolution are considerably more predictable for this specific use case.
  • Forgetting that a factory reset wipes local Syncthing history too. If your only backup lives on a phone that gets reset or replaced, and Syncthing hadn’t finished a final sync beforehand, that version history is gone with it. Keep at least one device — ideally your desktop hub — as a permanent, rarely-reset archive point.
  • Editing a stale copy without realizing it. If a save is duplicated across multiple folders that aren’t properly linked by sync, it’s easy to open and play the wrong copy, then have that overwrite your actual progress on the next sync. This is exactly what the naming convention in Step 10 is meant to prevent.

Expected output: what a working pipeline looks like

Once every step above is in place, a normal play session looks like this. You open melonDS on your Steam Deck, play for an hour, save at a PokĂ©mon Center, and close the emulator. Within seconds, Syncthing detects the changed .sav file and pushes it to your desktop hub. The hub’s cloud sync client picks up the change and mirrors it to Google Drive within a minute or two. Your scheduled Git commit runs on its next 30-minute interval and logs the change with a timestamp. If you then open melonDS on a different device, the synced save is already there waiting, current to your last PokĂ©mon Center visit.

In the Syncthing web UI, a healthy setup shows every configured folder with a green “Up to Date” status and every paired device listed as connected, not “Disconnected” or “Out of Sync.” In Git, a quick git log --oneline should show a steady trail of timestamped commits rather than large gaps, which would indicate the automation silently stopped running at some point.

Advanced tips for long-running saves and competitive teams

For players maintaining a Living Dex, a competitive breeding project, or a years-long Nuzlocke, a few extra habits pay off well beyond the basic pipeline. Tag Git commits at meaningful milestones, such as git tag "national-dex-complete", so you can jump straight to that point in history without scrolling through hundreds of routine auto-commits. Keep a second, completely offline backup on a USB drive stored somewhere other than your main residence, updated every few months, as a hedge against a scenario where both your local devices and your cloud account become inaccessible at once. And if you use PKHeX to verify or lightly edit a save, always run that edit against a copy pulled fresh from your backup, never against a live file mid-sync, since editing a file that Syncthing is actively watching can trigger a sync mid-write and corrupt the copy on every connected device simultaneously.

If you’re running Azahar or Eden on Android, also check that battery optimization settings aren’t killing the Syncthing-Fork background service. Most Android manufacturers apply aggressive battery management that pauses background sync apps after a few hours of screen-off time; whitelisting Syncthing-Fork from battery optimization in system settings is what actually makes the sync reliable rather than intermittent.

Troubleshooting common backup and sync failures

Even a correctly configured pipeline runs into friction occasionally. Here are the issues that come up most often and how to resolve each one.

  • Syncthing shows “Out of Sync” indefinitely. This usually means the file is locked by a running emulator process. Close the emulator fully, including any background helper process, and the status should clear within a minute.
  • A “sync conflict” file appears next to your save. Two devices made changes before either finished syncing with the other. Open both files, compare playtime and location to determine which is more recent, keep that one, and delete the conflict copy once you’ve confirmed which version is correct.
  • Git commit script fails silently. Check that Git is on your system PATH and that the scheduled task or cron job is pointed at the correct working directory. Run the script manually once from a terminal to see the actual error output before assuming the scheduler itself is broken.
  • ADB pull returns “no devices found.” USB debugging is likely disabled, or the device hasn’t authorized the specific computer yet. Enable Developer Options, toggle USB Debugging on, and accept the RSA fingerprint prompt that appears on the phone screen when you reconnect.
  • Save file loads but progress looks old. You likely restored an earlier Git commit or an older Syncthing version by mistake. Check the commit timestamp or the versioned file’s modification date against when you actually last played, and pull a more recent version instead.
  • Cloud storage client shows the folder as syncing but the file size never changes. Some cloud clients silently pause syncing for folders below a certain size threshold if the app hasn’t been opened in a while. Manually force a resync from the client’s settings menu, or reconnect the account.
  • melonDS local wireless breaks after restoring a synced save mid-trade. Never restore or sync a save while a local wireless trade or battle session is active between two melonDS instances — finish or fully cancel the session first, since the save format temporarily reflects an in-progress transaction that a sync can interrupt.
  • Checksum mismatch between two supposedly identical files. This almost always means a sync was interrupted partway through. Delete the incomplete copy, force a fresh sync from the known-good source, and re-verify the checksum before trusting the file.

Complete working project: a four-device Pokémon backup pipeline

Putting every step together, here is what a complete, tested setup looks like end to end, using the four-device example from Step 1: a desktop PC running mGBA, a Steam Deck running melonDS, an Android tablet running Azahar, and a laptop running Eden.

  1. Syncthing installed on all four devices, with the desktop PC set as the hub
  2. Four separate Syncthing folders configured — one per emulator — each pointed at the correct save path, each with staggered versioning enabled and cache directories excluded via .stignore
  3. A Git repository initialized inside the desktop hub’s master saves directory, with a cron job or scheduled task committing changes every 30 minutes
  4. Google Drive’s desktop client mirroring the same master saves directory as an offsite cloud copy
  5. ADB pull scripts set up for the Android tablet to catch any save data Syncthing-Fork can’t reach directly through Android’s storage permissions
  6. A consistent naming convention applied across all four devices so no file is ever ambiguous
  7. A completed restore test, confirming a renamed save can be recovered from both the Syncthing version history and the Git commit log

With that in place, a PokĂ©mon Emerald save started on the desktop PC in 2026 can survive a laptop replacement, a phone upgrade, a corrupted SD card, or an accidental overwrite, with a restore point never more than 30 minutes old and a full offsite copy always available. That is a meaningfully higher bar than the “remember to copy the .sav file somewhere” advice most emulator guides stop at.

Frequently asked questions

Can I sync saves between different Pokémon emulators, not just different devices?

Yes, in many cases. Battery saves (.sav files) from the same game and region generally load correctly across different emulators that support that platform — a save made in RetroArch’s mGBA core will usually work in standalone mGBA, for example. Save states are the exception: those are tied tightly to the exact emulator version and often won’t transfer cleanly between different emulator programs.

Is Syncthing safe to use for something as important as a Pokémon save file?

Syncthing is open source, encrypts data in transit between devices, and does not route your files through a third-party server by default, which makes it a reasonable choice for personal save data. The versioning feature specifically protects against the most common risk, which is accidentally syncing a bad or older save over a good one.

Do I really need Git for this, or is Syncthing versioning enough?

Syncthing’s staggered versioning is enough for most players and covers the core risk of accidental overwrites. Git is worth the extra setup mainly if you want a searchable, taggable history — for example, marking the exact save right before a difficult Nuzlocke gym fight so you can return to that specific point without digging through dozens of auto-saved versions.

What’s the difference between a save state and a battery save?

A battery save (.sav or .srm) is the game’s own in-game save file, written when you save inside the game itself, and it is portable across compatible emulators. A save state is a snapshot of the entire emulator’s memory at an exact moment, including things the game itself never saves, like mid-battle animation frames. Save states are convenient for quick resumes but are not a substitute for an in-game save when it comes to long-term backup reliability.

My cloud storage plan is almost full. How much space do Pokémon saves actually need?

Very little. A single Game Boy Advance save is typically well under 128KB, and even a Nintendo DS or 3DS save rarely exceeds a few megabytes. Save states are larger, sometimes tens of megabytes each, and a long version history of them is what actually consumes meaningful space over time. If storage becomes a concern, keep full version history for battery saves but trim older save states more aggressively.

Can this pipeline back up saves from a physical Nintendo cartridge or console, not just an emulator?

Once you’ve legally dumped a save from your own cartridge or console using compatible hardware, the resulting .sav file can be dropped into the same Syncthing and Git pipeline described here like any other save. The backup steps themselves don’t care whether the file originated from an emulator or from your own hardware dump.

What happens if two devices sync a conflicting save at the exact same time?

Syncthing detects the conflict and creates a separate “.sync-conflict” copy of the file rather than silently choosing one version and discarding the other. Both versions remain on disk so you can manually compare playtime, location, or party data and decide which one to keep, as described in the troubleshooting section above.

Related Coverage

Nadia Dubois

Nadia Dubois

AI & Innovation Editor

Nadia Dubois is the AI & Innovation Editor at Tech Insider, where she tracks the rapid evolution of artificial intelligence, from foundation models to real-world enterprise deployment. She previously covered AI and startups for La Tribune and contributed to MIT Technology Review's European coverage. Nadia specializes in generative AI, AI regulation, and the intersection of technology and European industrial policy. She holds a dual degree in Computational Linguistics and Journalism from Sciences Po Paris.

View all articles