How to Transfer a Citra Save File to a Real 3DS

If you've been playing a game on the Citra emulator and want to continue your progress on an actual Nintendo 3DS console, you're dealing with a genuine compatibility challenge. Save files from emulators and physical hardware aren't plug-and-play interchangeable — but with the right steps and tools, the transfer is possible. Here's what you need to understand before you start.

Why Citra and 3DS Save Files Aren't Automatically Compatible

Citra emulates the 3DS hardware on a PC, Mac, or Android device, but it stores save data in its own file structure on your computer. A real 3DS, on the other hand, stores save data either on the game cartridge itself or in the console's internal NAND memory (for digital titles).

The core issue is format. Citra save files are typically stored as raw .sav files or within a virtual SD card folder structure. Your physical 3DS can't simply read these — the data needs to be converted and injected into the correct location on the cartridge or SD card using third-party tools.

This process requires your 3DS to be running custom firmware (CFW), most commonly Luma3DS. Without CFW, there is no practical way to inject external save data onto a real 3DS.

What You'll Need Before Starting 🛠️

  • A 3DS with custom firmware (Luma3DS is the standard)
  • Checkpoint or JKSM — save manager homebrew apps for 3DS
  • FGSE (FlagBrew's Save Game Editor) or similar tools for conversion (if needed)
  • The Citra save file from your PC
  • A microSD card for your 3DS and a way to connect it to your computer
  • The same game on your 3DS (cartridge or digital)

Step 1: Locate Your Citra Save File

On Citra, save files are stored in different locations depending on your operating system:

  • Windows:C:Users[YourName]AppDataRoamingCitrasdmcNintendo 3DS00000000000000000000000000000000000000000000000000000000000000 itle
  • Linux/macOS:~/.local/share/citra-emu/sdmc/ or similar paths depending on your Citra build

The save data you want will typically be inside a folder path following the game's Title ID. For most games, the save file itself is named main (with no extension) and sits inside a data subfolder.

Make a backup copy of this file before doing anything else.

Step 2: Convert the Save File Format (If Required)

Not all games store saves identically. Some 3DS titles use save formats that need no conversion — the raw save from Citra can be used directly. Others require format adjustments.

Game TypeSave LocationConversion Needed?
Cartridge-based (retail)Stored on cartridge chipSometimes
Digital (eShop)Stored on SD cardRarely
CFW-managed (CIA installs)Stored on SD cardRarely

Tools like Checkpoint manage saves in a standardized way and can help smooth over format differences. When in doubt, extract the save from your physical 3DS first using Checkpoint — this gives you a reference file to compare size and structure against your Citra save.

Step 3: Back Up the Existing Save on Your 3DS

Before injecting anything, use Checkpoint or JKSM to back up your current save on the 3DS. Open the homebrew app, select your game, and export the save to your SD card. This creates a safety net if the transfer doesn't go as expected.

Step 4: Inject the Citra Save File

  1. Copy your Citra save file (usually named main) to your computer.
  2. Open your 3DS's SD card on your computer.
  3. Navigate to the save backup folder that Checkpoint created — typically under 3ds/Checkpoint/saves/[Game Name]/.
  4. Replace the existing main file in that backup folder with your Citra save file. Make sure the filename matches exactly.
  5. Safely eject the SD card and reinsert it into your 3DS.
  6. Open Checkpoint, select the game, and restore from the modified backup.

If the save data loads correctly in-game, the transfer worked. ✅

Variables That Affect Whether This Works

Several factors determine whether your specific transfer succeeds cleanly:

  • Game title: Some games use encrypted saves, non-standard formats, or have region locks that complicate transfers.
  • Citra build version: Older or unofficial Citra builds may store saves differently than the current release.
  • Save file size: The Citra save and the physical game's expected save size must match. A mismatch often causes the game to reject or corrupt the file.
  • CFW version and homebrew app version: Outdated homebrew tools can behave unpredictably with newer game titles.
  • Digital vs. cartridge: Digital installs (CIA format) on CFW are generally more straightforward than cartridge saves, which may involve additional encryption layers.

When It Doesn't Work 🔧

If the game crashes, shows a corrupted save warning, or simply doesn't recognize the file:

  • Check that the save file size matches what Checkpoint extracted originally.
  • Try using JKSM instead of Checkpoint — different tools handle edge cases differently.
  • Look up your specific game's save format in community resources like GBAtemp, where users often document game-specific quirks.
  • Some games use anti-tampering checks that detect save modifications — this is less common but does exist.

The Part Only Your Setup Can Answer

The process described here covers the standard approach, and it works reliably for a wide range of games. But whether it works smoothly for your game depends on the specific title, which version of Citra you used, your 3DS region, and whether your CFW setup is current and configured correctly. Those variables sit entirely on your side — which is exactly why two people following the same steps can end up with different results.