Checkpoint 3DS

From GameBrew

Last Updated2021/11/13
TypeSave Managers and Editors

Checkpoint is a fast and simple homebrew save manager for 3DS and Switch written in C++. The UI has been designed to condense as many options as possible, while keeping it simple to work with.

Checkpoint for 3DS natively supports 3DS and DS cartridges, digital standard titles and demo titles. It also automatically checks and filters homebrew titles which may not have a save archive to backup or restore, which is done without an external title list and filters. For this reason, Checkpoint doesn't need constant user maintenance to retain full functionality.

Checkpoint for Switch natively supports NAND saves for the titles you have played. Title information are loaded automatically.


  • Focus on simplicity and efficiency.
  • Lightweight, while being packaged with a nice GUI and built using most recent libraries available.
  • Supports 3DS and DS cartridges, digital standard titles and demo titles.
  • Automatically checks and filters homebrew titles which may not have a save archive to backup or restore.
  • Cheat management.



  • 3DS version is available in 3DSX and CIA (QR code).
  • Works for both CFW ​and Rosalina-based Homebrew Launchers (hax-based Homebrew Launchers are not supported by Checkpoint).


devkitARM and devkitA64 are required to compile Checkpoint for 3DS and Switch, respectively. Learn more at Install or update dependencies as follows.

  • dkp-pacman -S libctru citro3d citro2d

User guide

The first launch of the 3DS version will take considerably longer than usual (usually 1-2 minutes depending on how many titles you have installed), due to the working directories being created. Checkpoint will be significatively faster upon launch from then on.

To use, scroll between the title list and target a title with the selector. Then select a target backup to restore/overwrite.

Working path

Checkpoint relies on the following folders to store the files it generates. Note that all the working directories are automatically generated on first launch (or when Checkpoint finds a new title that doesn't have a working directory yet).

  • sdmc:/3ds/Checkpoint Root path.
  • sdmc:/3ds/Checkpoint/config.json Custom configuration file.
  • sdmc:/3ds/Checkpoint/saves/<unique id> <game title> Root path for all the save backups for a generic game.
  • sdmc:/3ds/Checkpoint/extdata/<unique id> <game title> Root path for all the extdata backups for a generic game.

Configuration file

You can add and toggle features to Checkpoint for 3DS by editing the config.json configuration file. Example:

"filter": [
"favorites": [
"additional_save_folders": {
"0x00040000001B5000": {
"folders": [
"0x00040000001B5100": {
"folders": [
"additional_extdata_folders": {

"nand_saves": true,
"version": 2


From 3.7.0, Checkpoint also handles cheat management. Source cheat files are provided by Sharkive (another on-going project by Flagbrew).

Originally, Sharkive was a 3DS homebrew capable of managing cheats. Since its functionalities have been now integrated into Checkpoint, the app itself has been deprecated and discontinued. If you try to run Sharkive, it'll just close itself now.

To learn more about cheat codes, how to submit them and how to get involved into the project, Sharkive's repo is a good place to start.

You can see the video tutorial which gives you an idea of how to use the Cheat Engine.


Q. Checkpoint displays error codes.

You may see error codes when something weird happens or operations fail. If you have any issues:

  • Please ensure if they haven't already been addressed (Reported List).
  • Report the error code and a summary of your operations to reproduce it.

Additionally, you can receive real-time support by joining FlagBrew's Discord server.


D-Pad/L/R - Scroll between the title list

A - Target a title

D-Pad or Touchscreen - Choose a target backup to restore/overwrite




Checkpoint cheats tutorial (Ikeb0mb)


3.8.0 2021/11/13


  • Added: embedded Sharkive's cheat database has been updated.
    • This counts ~2 years of cheat updates.
  • Fixed: optional 3DS cartridge polling.
  • Fixed: documentation.
  • Stability improvements and tons of minor code improvements.

3.7.3 2019/10/26


  • Added: Checkpoint now shows the original icon for DS cartridges.
  • Fixed: a very annoying crash during startup if you had a very little amount of games has been fixed.
  • Fixed: latest cheats submissions are built in this release through Sharkive.
    • If you have cheat codes that are not already available in this release, please submit them to Sharkive's databases here.
  • Fixed: unused folders in the SD card are not created anymore.

3.7.1 2019/09/12


  • Fixed: hard crash on startup has been fixed.
    • Card scanning has been permanently shut down for this release to mitigate the error.
    • If you still encounter this issue, please file an issue on this repo so that we can research about it more.

3.7.0 2019/09/09


  • Added: Sharkive is now merged into Checkpoint. A brand new Cheat menu has been implemented inside Checkpoint to be able to manage cheats for Luma3DS.
    • The entire cheat database is offline and bundled inside of Checkpoint. No more internet required, no more molasses slow loading times caused by cheat downloads.
    • You're able to select and enable just the cheats you really want to have. This solves issues caused by cheat files too big to be fully displayed in Luma3DS' cheat engine.
    • Cheat updates will happen when:
      • Checkpoint updates.
      • You build Checkpoint from source.
      • You build the cheat database and place it into the sd card in the expected location, so that it'll be loaded instead of the bundled one.
    • This feature deprecates Sharkive.
  • Added: ability to change play coins. Lots of you kept requesting this all the time. I don't know why you want this feature so much, but here it is. You can access it by hovering the Activity Log NAND title or by pressing SELECT + tapping the top-right corner.
  • Added: redesigned UI. Enjoy it while it's fresh.
  • Added: optional cartridge hotswap. You can now choose from the configuration if you want to be able to hotswap the cartridge while Checkpoint is running.
    • This is disabled by default. Downside of this feature being enabled is that the UI slows down for a couple seconds before being responsive during boot time.
  • Added: logging. Logs will be written to /3ds/Checkpoint/checkpoint.log.
    • This feature deprecates JEDECheck.
  • Fixed: cart is not cached anymore. This means cache won't be rebuilt every time you swap cartridges before running Checkpoint.
  • Fixed: favorite sorting now works properly again.
  • Fixed: cut down size of the executable. It now stores an entire cheat database inside of it (~1.6MB json), functionalities from other two different applications and still manages to be basically equal in size compared to the old stable release.
  • Refactoring, refactoring, refactoring.

3.6.0 2019/01/01


  • Added: a check for *hax environment has been introduced to avoid Checkpoint loading without CFW.
  • Fixed: buttons are now responsive as before while navigating the UI.
  • Fixed: Extdata is now restored properly even when files change size.

Revision history.


Even though this is the result of independent research and work, Checkpoint for 3DS couldn't be possible without J-D-K's original JKSM version.

TuxSH for TWLSaveTool, from which SPI code has been taken.

WinterMute, fincs and devkitPro contributors for devkitARM, devkitA64 and dkp-pacman.

Yellows8 and all the mantainers for switch-examples.

rakujira for the Checkpoint logo.

Fellow testers and troubleshooters for the help.

External links