Checkpoint changelog
v5.3.0 · Oct 13, 2026
3DS: What's new
- Added: WarioWare: D.I.Y. save backup and restore. Its 16 MB save lives in NAND inside the cartridge instead of on a save chip, where no 3DS save interface can reach it. Checkpoint now talks to the cartridge directly, so you back it up and restore it from the title list like any other DS cart: no GodMode9i, no rebooting into DS mode.
- This is particularly exciting because the strategy used to allow this functionality without rebooting in DS mode is brand new and this was thought to be impossible to achieve in the past.
- A backup takes about a minute. A restore only rewrites the pages that differ from what is already on the cartridge, and reads every page it writes back to verify it. Restoring the backup you just made writes nothing at all; the worst case, where every page differs, takes about 6.5 minutes.
- Checkpoint's dumps were checked byte for byte against GodMode9i's dumps of the same cartridge.
- The CIA build is required. The 3DSX build can't reach the cartridge controller, so it refuses instead of reading.
- So far this has been tested on one European cartridge. Other regions, and the other carts that save the same way, are recognised but not verified yet: please report back.
- Don't remove the cartridge or turn off the console during a restore. Pages that were already written stay written, so an interrupted restore leaves the save half old and half new until you run it again.
- Fixed: DS cart backups no longer fail at random while writing to the SD card.
- Fixed: backing up the extdata of the theme entries no longer fails.
- General system stability improvements to enhance the user's experience.
Switch: What's new
- Fixed: restoring a save no longer inflates it to over 64 MB. Since 5.1.0, every restore extended the save data area by its safety margin even when the backup already fit, so a 2 MB save came back at 65 MB. The area is now extended only when the backup actually needs more room than it has.
- Fixed: Checkpoint now opens on the profile it was launched under, instead of always starting on the first user. A title override uses the profile you picked at launch; applet mode uses the profile that last opened a game.
- Fixed: the account picker can now be reached with the controller. The avatar at the bottom of the sidebar is part of the sidebar cursor now: press Down past the settings gear. ZL still opens it too.
- General system stability improvements to enhance the user's experience.
Wireless transfer: What's new
- Added: a configurable server port, in Settings > Network (3DS) / Connectivity (Switch), under Server port.
- 8000 is still the default. Change it when another program already holds that port.
- The port is shared by the wireless receiver and the log server, and takes effect the next time Checkpoint starts. Anything from 1024 to 65535 is accepted.
- The Receive screen shows the port, as before. chlink takes it with
--port, or as--to <ip>:<port>.
Scripting: What's new
- Fixed: webdav now works with Synology's WebDAV Server. Synology accepted the login and then answered the folder check with a 403, because the request named the folder without its trailing
/. Folders are now always requested with the slash, which is the form the WebDAV spec tells clients to use.
If you wish to contribute, pull requests are highly appreciated.
<img width="200" height="200" alt="qr" src="https://github.com/user-attachments/assets/ad244d64-c211-43d7-802f-d734e2c06ce8" />
v5.2.0 · Aug 26, 2026
Updates: What's new
- Added: autoupdater (#106).
- The check runs in the background, so the title list still loads while it happens. Nothing is ever installed without you agreeing to it first.
- Automatic updates are on by default and can be turned off in Settings.
- Fun fact: this was the oldest open feature request on the repository. It was filed in June 2018. Eight years is a long time to wait, but here it is.
Switch: What's new
- Added: MTP USB transfers. Plug the console into your PC with the charging cable and Checkpoint shows up as a portable device, exactly like a phone or a camera does.
- Turn it on in Settings > Connectivity, under USB (MTP). It's off by default, and the line underneath tells you its status: waiting for a PC, connected, or USB unavailable.
- USB unavailable usually means the console is docked or something else has already claimed the port. Checkpoint keeps trying in the background, so undocking is enough: no restart needed.
- General system stability improvements to enhance the user's experience.
3DS: What's new
- Added: the Internet Browser is back in the title list (#579), so its save data can be backed up and restored like any other title's. It used to be hidden away with the manuals and the update titles.
- Added: an empty title list now says so, and tells you how to load it again, instead of showing you a blank screen with no explanation (#580).
- Fixed: Backup and Restore now fill the row properly when wireless transfer is turned off. The Send button's slot used to stay behind as an empty gap. The two buttons now split the space between them, which also leaves room for the full "Backup" and "Restore" wording instead of the shortened labels.
- Added: notifications, a script that backs up and restores everything behind the Notifications applet (3DS, #579).
- The SpotPass content and the notification list don't belong to a title, so nothing in Checkpoint could reach it before.
- Added: citrahold, a script that syncs your save and extdata backups with a 3rd party service called Citrahold (3DS, #585, thanks @solitonmedic), which we are not affiliated with.
- Setup is in `scripts/citrahold.md`.
- Added:
sav_open_system, a new API call that lets a script reach the console's own system save data (3DS). - Removed: holding B to reload the title list. Refresh title list is a normal entry in the SELECT menu now.
- General system stability improvements to enhance the user's experience.
If you wish to contribute, pull requests are highly appreciated.
<img width="178" height="176" alt="immagine" src="https://github.com/user-attachments/assets/090a15f2-c434-4ecd-92e2-59f44778f99a" />
v5.1.0 · Aug 12, 2026
FTP: What's new
- Fixed: the FTP server is a new implementation. The old core is gone, replaced with the latest source code from mtheall's ftpd, which has been adapted to properly fit in Checkpoint.
- Fixed: 3DS transfers are roughly 4x faster on upload and 2x on download. The bottleneck was synchronous socket calls stalling the transfer thread, so the console now overlaps disk and network work instead of alternating between them.
- You'll notice the UI being a bit less responsive on the 3DS when FTP transfers are running: this is completely normal.
- Fixed: the Switch server no longer exhausts the system's socket buffers during a folder upload, which left it unable to accept new data connections until it timed out.
- Fixed: turning FTP off in Settings now closes the listening socket and drops the sessions, instead of leaving the port open.
Scripting: What's new
- Added: browser, a file browser for the SD card and for a title's live save archive.
- It supports copy, move, rename, delete, make folders, read properties, zip and unzip, one item or a batch at a time.
- It is the practical way to reach into a save without a PC: pull one file out of an archive onto the card, drop an edited one back in, or move a folder between two titles.
- Added: extdata (3DS), to create the extdata archive a title never made (#576).
- This script solves an issue where game mods use extdata for a title that never creates them. The script allows to artificially create a new extdata archive for that title.
- It also inspects any extdata id, including one a mod wrote under an id Checkpoint does not derive from the title id, and deletes an archive when you mean to.
- Added: new API calls, all documented in `scripts/README.md`.
sav_mkdir,sav_rmdirandsav_rename: scripts can now shape the folder structure inside a save archive, not just read and write files in it.sav_open_extdata, to open a per-title extdata archive by its raw id.extdata_default_id,extdata_createandextdata_delete(3DS; they return-1on Switch).extdata_createrefuses to touch an archive that already exists, so a mistyped id cannot erase a save.- Fixed: the 3DS title catalog handed to scripts now also holds the titles that appear in the Extdata list alone.
- Fixed:
strdupallocates on the same run-scoped heap asmalloc, sofree()releases it and an aborted run reclaims it.
Wireless transfer: What's new
- Added: a fixed Receive PIN, in Settings > Network (3DS) / Connectivity (Switch).
- The PIN is still random per receive by default. Pin one and a
chlink send --pin 1234baked into a script keeps working run after run, which is what makes unattended batch transfers from the PC possible. - Fixed:
chlink sendfailing with "receiver rejected the PIN (403): Invalid token" (#561). Go canonicalises header names before writing them, so the console's case-sensitive lookup never found the token header and rejected every upload. - Fixed: a backup received from a sender that identifies no installed title no longer lands in an "Unknown title" folder (#572). It goes to the title whose backup list you opened Receive from, which is the one you pointed at.
- Fixed: the receiver no longer logs a connection in progress as an error, and no longer floods the log during a transfer.
3DS: What's new
- Fixed: a restore that cannot fit the console's path limit is refused before anything is deleted. It used to wipe the save archive first and die afterwards, on a backup folder the filesystem was never going to accept. Both the copy roots and every entry under them are checked up front, and the message names the offending path.
- Fixed: files a desktop OS left next to your backup no longer break a restore (#577). macOS stores a file's extended attributes in a
._sidecar next to it on FAT/exFAT, and drops.DS_Storein every folder Finder opens; a restore hit one after it had already cleared the console-side save. Those, and the equivalents Windows leaves behind, are now filtered out of the copy. - Fixed: carts whose save lives in on-cart NAND are now identified (#553, WarioWare: D.I.Y. and friends). They have no SPI save chip, so the probe used to report a bogus capacity and back up whatever the bus returned. Checkpoint now says what the cart is and points at GodMode9i in DS mode, rather than failing with a save archive error.
- Fixed: the progress modal no longer looks frozen while a restore clears the destination (#559). Clearing an extdata archive of thousands of files is now its own progress stage, and the stage labels (Backup, Restore, Clearing, Sending...) are translated.
- Fixed: buttons no longer do anything while the title list is still loading (#565). You could back up or restore a title you could not see yet, against a selection that was about to move.
- Added: Simplified Chinese is selectable in Settings (#566, thanks @dragonflylee). The translation shipped in 5.0.0 but the 3DS language list never offered it.
- Added: New 3DS consoles also run their application cores at 804 MHz now. This is a no-op on Old 3DS and 2DS.
- General system stability improvements to enhance the user's experience.
Switch: What's new
- Fixed: restoring a save of tens of thousands of small files no longer stalls near the end.
- The save data area is extended when the backup needs more room than it has.
- Files are preallocated instead of being grown block by block, and the free space is checked against the cluster-rounded requirement after the wipe, so the restore refuses up front instead of dying at 95%.
- The copy is counted against the pre-flight scan: a restore that reports success but moved fewer files than the backup holds is now reported as the failure it is.
- Save partition space is logged at every step, so a restore that still fails can be diagnosed from the log.
- Fixed: restore verification is about twice as fast. The CRC of each file is taken from the bytes already in the copy buffer, so the verify pass re-reads only the committed save instead of both sides.
- Fixed: the console no longer goes to sleep in the middle of a backup, restore or transfer (#574). Sleeping suspended the process mid-copy, on the save filesystem, with a journal half committed. Only auto-sleep is held off: the screen still dims on its usual idle delay.
- Added: the selection ring and the grid now animate between tiles instead of jumping, and snap when what is underneath changes (a different save type filter, a different account).
- Fixed: the same progress and stage-label work as the 3DS side (#559).
- General system stability improvements to enhance the user's experience.
Translations
- Added: Russian translation (thanks @Waleri228)
- Current language support includes English, Italian, French, German, Portuguese, Spanish, Dutch, Japanese, Simplified Chinese and Russian.
- If you're a native speaker and think that text wording and appearance in the UI can be improved, please submit a pull request or open an issue on this repository.
If you wish to contribute, pull requests are highly appreciated.
<img width="190" height="195" alt="qr" src="https://github.com/user-attachments/assets/45e2f983-428f-46eb-aeba-109ee8ca2f86" />
v5.0.0 · Jul 26, 2026
Checkpoint 4.0.0 was the largest update the app ever had. Version 5.0.0 redefines what the app is.
Checkpoint is now a save management framework: everything it can do to a save is also reachable from scripts you write yourself and drop on the SD card, so your console can do things no release of Checkpoint ever shipped with. The cheat manager is back as one of those scripts, and so is cloud save sync, to Google Drive, or to any WebDAV server you already run.
Enjoy!
Scripting: What's new
- Added: a scripting engine. Checkpoint runs C scripts, interpreted on the console. A script is a single
.cfile on the SD card: no compiler, no rebuild, no reflash. - Scripts live in
sdmc:/<3ds|switch>/Checkpoint/scripts/universalto be offered for every title, or inscripts/<title id>to be offered for that title only. - Added: a new Scripts menu, reachable with SELECT on 3DS and Minus on Switch.
- Scripts get a native API through
#include <checkpoint.h>, reaching the same functions the app itself uses: the title catalog, save archives (3DS extdata and shared extdata included) to read, write, delete, list and commit files into, SD card I/O, zip pack and unpack, HTTP requests and streamed file uploads, JSON parsing, and UI dialogs rendered by Checkpoint itself. - Added: a console UI for scripts. A running script owns the screen: its output streams into a scrollable log pane, while its messages, confirmations, pickers, keyboards and nested progress bars take the other screen on 3DS, or a card over the transcript on Switch.
- Added: script cancellation. Holding B aborts any script, even one stuck in an infinite loop, without rebooting the console.
- Added: a sealing API, to let scripts store secrets like tokens and passwords on the SD card encrypted with a console-bound key, and optionally with a passphrase of your choice.
- Scripts also get picoc's C standard library:
stdio,stdlib,string,unistd,ctype,mathandtime. - Added: full scripting documentation, in `scripts/README.md`: the API reference, the interpreter's limits, recipes, and a checklist for both human and AI script authors.
- `scripts/examples/example.c` is a runnable guided tour of the API, one menu entry per area.
tools/scriptlint.shparse-checks your scripts on your PC, before you copy them onto the SD card.- Fixed: exceptions thrown while a script runs are caught and reported to you, instead of terminating the app non-deterministically.
Bundled scripts
- Added: sharkive, and with it the cheat manager is back.
- It downloads the latest Sharkive database, lets you pick cheats per title, and writes the cheat files Luma3DS (3DS) and Atmosphere (Switch) expect.
- Because it is a script now, the cheat database follows Sharkive instead of waiting for a Checkpoint release. This solves one of the maintenance problems that made the feature go away in 4.0.0.
- Note: if you're not satisfied with the cheats distributed in Sharkive, you can submit issues and patches to the repo itself, or contribute by writing a script that downloads cheats from another provider. Checkpoint is really open to contributions.
- Added: googledrive, to sync your save backups to your own Google Drive.
- Sign-in happens through Google's device flow: the console shows a code, you type it on your phone or PC.
- Sync everything, a single title, or a single backup. Each backup is uploaded as a zip, and already uploaded backups are skipped.
- Your credentials are sealed with the new encryption API, so they never sit on the SD card in the clear. Setup instructions are in `scripts/googledrive.md`.
- Added: webdav, to sync those same backups to any WebDAV server you already run: Nextcloud, ownCloud, Synology, Apache
mod_dav,rclone serve webdav, most NAS "personal cloud" apps. - Upload every title, one title, or a single backup, skipping what is already on the server. It can also pull a backup back down onto the console, where Checkpoint's usual Restore takes over.
- Credentials are sealed with the encryption API, like Drive's. Setup, with the right base URL for each common server, is in `scripts/webdav.md`;
tools/webdav-testserver.pygives you a throwaway server on your PC to try the whole round trip against first. - Added: playcoins, to set the console's Play Coins (3DS).
- Note: the play coins management feature is now available via scripts only.
3DS: What's new
- Added: a menu overlay to reach Settings and Scripts.
- Fixed: GBA Virtual Console saves now move between consoles (#557). A backup used to be the whole console-side container, signed for the console that made it, so restoring it anywhere else failed, or reported success and left the game's own save untouched.
- A backup is now the bare save file, the same 512 B to 128 KB
.savan emulator or GodMode9 reads, and restoring writes it back into the container and re-signs it for the console doing the restoring. - Backups taken by older versions of Checkpoint still restore.
- Fixed: Checkpoint now runs on emulators. The Rosalina
hb:ldrcheck is skipped when an emulator is detected, instead of refusing to boot. - Fixed: modal dialogs now measure and lay out their text properly, so larger text and translated strings are not clipped anymore.
- Fixed: a memory corruption in the choice overlay's callback.
- General system stability improvements to enhance the user's experience.
Switch: What's new
- Added: a Scripts entry in the sidebar, and a menu overlay to reach Settings and Scripts.
- Fixed: the app doesn't hang anymore when the account selector is opened while backup sizes are still being computed. The size worker now pauses while the applet is up.
- Fixed: truncated backup names in the backup list.
- Fixed: modal dialogs now measure and lay out their text properly, so larger text and translated strings are not clipped anymore.
- Fixed: threads are torn down properly when the app is forced to exit.
- Fixed: unhandled exceptions are logged with far more detail, so crashes can actually be diagnosed from the log.
- General system stability improvements to enhance the user's experience.
chlink: What's new
- Fixed: a backup that travels as a single file instead of a zip -- a DS cart save, a GBA VC save -- arrived with the dot stripped out of its name (
00000001 sav), and nothing could restore it afterwards. The receiving side keeps the extension now, on both consoles and in chlink. - Backups already received with a mangled name are not lost: a raw backup folder holding a single file is restored whatever that file is called.
- Added: the receiver logs each stored file with its size and destination, and says how far it got when a transfer fails.
Translations
- Added: Simplified Chinese translation (thanks @JeanPhoenixWong)
- Current language support includes English, Italian, French, German, Portuguese, Spanish, Dutch, Japanese and Simplified Chinese.
- If you're a native speaker and think that text wording and appearance in the UI can be improved, please submit a pull request or open an issue on this repository.
<img width="194" height="190" alt="qr" src="https://github.com/user-attachments/assets/b41a4bcd-a995-4f50-8a15-e8d0b73fdcb4" />
If you wish to contribute, pull requests are highly appreciated.
v4.0.0 · Jul 11, 2026
This is genuinely the largest Checkpoint update since its original release 9 years ago.
Working on it was fun and rewarding. Enjoy!
3DS: What's new
- Added: GBA Virtual Console save backup and restore (thanks @LiquidFenrir)
- Added: DSiWare save backup and restore (thanks @SNBeast for the feature PoC)
- Added: complete UI/UX redesign
- Added: background FTP server. Access your save backups from the PC directly through Checkpoint
- Added: a brand new Settings section: it is now possible to edit Checkpoint's config.json file directly from the console with a nice settings interface.
- Added: light and dark mode theming
- Added: a folder browser to navigate the SD card and choose additional save folders on device
- Added: quick backup toggle to use the default backup name without any prompt
- Added: confirm restore toggle to avoid being asked for confirmation for save restore operations
- Added: it is now possible to configure additional save folders for DS titles.
- Added: internazionalization support.
- Translations have been done through the use of LLMs. If you're a native speaker and think that text wording and appearance in the UI can be improved, please submit a pull request or open an issue on this repository.
- Current language support includes English, Italian, French, German, Portuguese, Spanish, Dutch, Japanese and Chinese
- Added: backup cancellation by holding B during backup
- Fixed: backup list navigation is now massively more intuitive
- Fixed: async IO makes file operations faster and more efficient by running them in a worker thread, separated from the main UI thread
- Fixed: greatly improved cached and uncached title loading times
- Fixed: cached text storage now allows faster rendering for all the text in the interface
- Fixed: the project's code architecture has been greatly improved.
- The codebase is now 9 years old and has never seen an architecture overhaul like this before.
- Dozens of performance, security and safety bugfixes have been pushed to the project, making the app more secure and efficient.
- Fixed: an issue where swapping DS carts would crash Checkpoint because of a stack-smashing bug
- Removed: cheats feature.
- The cheat database required constant updates to stay in sync with game updates, and its maintenance wasn't sustainable.
- General system stability improvements to enhance the user's experience.
Switch: What's new
- Added: complete UI/UX redesign
- Added: internazionalization support.
- Translations have been done through the use of LLMs. If you're a native speaker and think that text wording and appearance in the UI can be improved, please submit a pull request or open an issue on this repository.
- Current language support includes English, Italian, French, German, Portuguese, Spanish, Dutch, Japanese and Chinese
- Added: a brand new Settings section: it is now possible to edit Checkpoint's config.json file directly from the console with a nice settings interface.
- Added: light and dark mode theming
- Added: a folder browser to navigate the SD card and choose additional save folders on device
- Added: quick backup toggle to use the default backup name without any prompt
- Added: confirm restore toggle to avoid being asked for confirmation for save restore operations
- Added: file-by-file verification after restore
- Added: complete graphics backend migration from SDL2 to deko3d
- Among all the benefits that the rewrite brought to the software, the application size is now ~70% smaller
- Added: HTTP log server on port 8000 — view logs in real-time from any browser on your network.
- Logs can now be accessed from the application directly via Settings > Connectivity > Logs.
- Added: 1080p docked mode support (alongside 720p handheld).
- Fixed: async IO makes file operations faster and more efficient by running them in a worker thread, separated from the main UI thread
- Fixed: backup list navigation is now massively more intuitive
- Added: large save restore with journal pre-extend and mid-file commits, preventing out-of-space failures (fixes #541).
- Fixed: avoid restoring files after a corruption error occurred during copy.
- Fixed: the project's code architecture has been greatly improved.
- The codebase is now 9 years old and has never seen an architecture overhaul like this before.
- Dozens of performance, security and safety bugfixes have been pushed to the project, making the app more secure and efficient.
- Removed: pksmbridge save transfer feature
- Removed: cheats feature.
- The cheat database required constant updates to stay in sync with game updates, and its maintenance wasn't sustainable.
- Removed: the HTML settings page accessible through local network, and all its dependencies
- Removed: unneeded dependencies like the SDL2 suite and libpng.
- General system stability improvements to enhance the user's experience.
chlink: a new companion app
- Added: chlink, a companion command line app for your PC that works together with Checkpoint's wireless save transfer feature.
- Send save backups from your PC to the console, or receive them from the console to your PC, over your local network.
- Transfers are protected by a 4-digit PIN displayed on the console.
- chlink automatically recognizes backups stored in a Checkpoint SD card layout, so title and backup information are inferred for you.
- It ships as a single, dependency-free executable for Windows, macOS and Linux, attached to this release.
<img width="181" height="183" alt="qr" src="https://github.com/user-attachments/assets/b261080b-ef0d-4a2f-a711-207a4554d311" />
If you wish to contribute, pull requests are highly appreciated.
v3.13.0 · Jun 21, 2026
What's new
- Added: support for 8MB DS cartridges.
- Added: wireless save transfer between 3DS consoles (thanks! @edu1010)
- The feature needs to be enabled via a flag in Checkpoint's configuration file.
- Added: show progress bars for DS cartridge backup and restore operations.
- The previous behaviour made Checkpoint look like it froze. The UX is more interactive now.
- Added: show an additional progress bar for multi-backup operations.
- Added: cheat database updated to latest Sharkive release.
- Fixed: support for latest toolchains and libraries versions.
- General system stability improvements to enhance the user's experience.
If you wish to contribute, pull requests are highly appreciated.
<img width="187" height="187" alt="Schermata del 2026-06-21 10-48-12" src="https://github.com/user-attachments/assets/911684c5-50cf-4dbf-b87b-971cbf29fc68" />
v3.12.0 · Mar 12, 2026
This release adds support for previously unsupported save types on the Switch. I didn't have any need to support them at the time because I didn't play any of these kind of games. After all these years, I still don't play them, but I felt it was time to properly support them into Checkpoint.
Important notice: I wasn't able to test backup and/or restore these new save types first-hand. Use the new features carefully and please report back! That's why this new version is currently in pre-release.
2026-04-26 update: I haven't heard about any regression or issue feedbacks, so I'm changing the status of this version from pre-release to release.
What's new
- Added: support BCAT saves on the Switch version of the app.
- Added: support device saves on the Switch version of the app.
- Added: support system saves on the Switch version of the app.
- The UI of the app has been slightly upgraded to account for these new save types.
- Added: per-file progress bar.
- The UI will now display two progress bars, one for the overall save progress and one for each file in the save archive.
- Fixed: occasional crash when loading NAND saves on the 3DS version of the app.
- Fixed: Checkpoint should not freeze anymore when performing backup or restore operations.
- Fixed: support asian system fonts in the Switch version of the app.
- This solves an issue where special characters were not rendered in the UI.
- Fixed: add not-empty validation for backup names.
- Fixed: file paths could contain multiple
/characters one after the other, causing folder deletion issues. - Fixed: undefined behaviour when trying to close directories that were not opened.
- Fixed: undefined behaviour could occur when reading a file's size.
- Fixed: log directory read errors.
- General system stability improvements to enhance the user's experience.
If you wish to contribute, pull requests are highly appreciated.
<img width="218" height="217" alt="Screenshot From 2026-03-12 20-58-51" src="https://github.com/user-attachments/assets/79d23fc1-e0f4-4171-aaf9-30a219a64006" />
v3.11.0 · Feb 24, 2026
What's new
- Added: backup and restore modal UI has been greatly improved with a proper progress bar.
- Fixed: an issue with title cache persistence preventing new title installations from being recognized from Checkpoint.
- Fixed: occasional crashes when moving the buttons too fast on the 3DS version of the app.
- Fixed: an issue with the app freezing when holding B to refresh the title cache.
- Fixed: crash when no titles available on the Switch version of the app.
- Fixed: occasional crash when quitting the Switch version of the app.
- Fixed: name and icon of the selected account not updating on certain conditions.
- Fixed: various memory leaks here and there when disposing the application on quit.
- Fixed: properly print strings with percent characters in the logfile.
- Fixed: compiled with latest version of the needed dependencies.
- Added: cheat database updated to latest Sharkive release.
- General system stability improvements to enhance the user's experience.
If you wish to contribute, pull requests are highly appreciated.
<img width="222" height="224" alt="Schermata del 2026-02-24 22-17-20" src="https://github.com/user-attachments/assets/56727b63-fe5a-4aa2-abd3-45575f7d5ce4" />
v3.10.2 · Nov 22, 2025
I intended to add more value to this release by trying to enhance few things here and there, but I didn't manage to do it in the short time I had to get this build ready. I hope to bring something new and fresh to Checkpoint soon to keep the spark of this project alive.
Sometimes I wish I could write this software from scratch again to incorporate into it all the cool things and concepts I learned in the last 10 years of being a Software Engineer. But focus switches from one thing to another, interests change and, most importantly, time and energy are very limited in this moment in time.
But there will be another moment again, in which the spark will burn at full power.
What's new
- Fixed: breaking compatibility issue with latest Switch OS version.
- Fixed: compiled with latest version of the needed dependencies.
- Added: cheat database updated to latest Sharkive release.
- General system stability improvements to enhance the user's experience.
If you wish to contribute, pull requests are highly appreciated.
<img width="300" height="300" alt="frame(10)" src="https://github.com/user-attachments/assets/8d43383f-c4c8-4d3c-b5ff-05e82e03c1d9" />
v3.10.1 · Jun 22, 2025
What's new
- Fixed: add support for archived, hidden and readonly 3ds save backup folders.
- This bug has been in the codebase from the very beginning. Eventually, we fixed it.
- Fixed: a bug where some text could not be rendered on screen properly.
- Added: cheat database updated to latest Sharkive release.
- General system stability improvements to enhance the user's experience.
If you wish to contribute, pull requests are highly appreciated.
v3.10.0 · Apr 19, 2025
This release focuses on adding performance improvements to the 3DS version of the software.
What's new
- Fixed: startup time has been drastically improved: ~50% speedup on uncached boot, ~90% speedup on cached boot.
- This has been achieved by profiling the application boot process, and realizing that title cache persistence on the SD card took majority of the loading time. Now this operation is lazily done in a separate thread. It's funny to realize that a badly implemented optimization can become a bottleneck of its own, so take my mistake as a lesson.
- Here's the improvements I had on my console (improvements may vary since they depend on how many games you have on your console):
- Uncached startup went down from 9.8s to 5.7s
- Cached startup went down from 5.7s to 0.6s
- Added: due to requests from multiple users, Checkpoint can now be updated from Universal Updater.
- Fixed: cartridge loading now runs immediately rather than waiting for the title cache to be persisted on the SD card.
- Fixed: properly quit the application gracefully when an handled exception occurs.
- Fixed: initial code refactoring.
- Removed: some redundant logs in the title loader.
- General system stability improvements to enhance the user's experience.
Thank you for your patience and support.
If you wish to contribute, pull requests are highly appreciated.
v3.9.0 · Apr 13, 2025
This release mostly contains changes and patches related to the infamous 3.8.x startup crash issue affecting the 3DS version of the software. General improvements have been added to the Switch version as well.
What's new
- Fixed: the startup crash issue affecting all version since 3.8.0 has been identified and patched.
- Huge shoutout to achinech on Discord who volunteered to debug the issue on their console.
- If you still encounter startup crash issues, please notify the team immediately on Discord and on GitHub issues.
- Fixed: cartridge scanning has been refactored to be way more efficient.
- Previously, the software used to poll the cartridge synchronously for every frame of the UI thread. Cartridge scanning is now happening on a separate thread which only runs twice per second.
- Added: a more advanced threading framework ported from PKSM.
- Added: networking support and an integrated HTTP server. This is currently used to provide real-time online access to the application logs, but this code will be useful for future features like self-updating.
- Added: more robust logging ported from PKSM. Logs are stored in the
/3ds/Checkpoint/logsfolder and are split by date. - Logs are also accessible at runtime through the integrated HTTP server at the following addresses:
http://3ds-ip-address:8000/logs/memoryfor the logs of Checkpoint's current runhttp://3ds-ip-address:8000/logs/filefor all the logs for the current date- Added: compiler optimizations are back. This includes link-time optimization and an upgrade from
O2toO3compared to v.3.7.4. - Fixed: better configuration file handling ported from PKSM.
- Fixed: better thread synchronization between UI thread and title loading thread.
- Fixed: wrap the entire program into try-catch blocks to prevent crashes caused by other unhandled exceptions in the future.
- Fixed: few graphics improvements.
- Fixed: readme has been updated with latest screenshots.
- General system stability improvements to enhance the user's experience.
The source code has started to become a little bit messy, but this patch needed to be released as soon as possible. Future improvements to the software will surely focus on code and program cleanup and performance improvements.
Thank you for your patience and support.
If you wish to contribute, pull requests are highly appreciated.
](https://github.com/BernardoGiordano/Checkpoint/releases/download/v3.9.0/Checkpoint.cia)
v3.8.2 · Apr 1, 2025
Another Checkpoint release! I haven't got any crash report after v3.8.1 went live, so this will be considered the latest stable release for now. In case you experience major issues, crashes or other nasty behaviours, please let us know on FlagBrew's discord server.
Important notice: in the remote case that this version causes issues, please notify the team immediately, then install the following version as a temporary backup:
- Checkpoint 3.8.0 for the Switch
- Checkpoint 3.7.4 for the 3DS
For those who missed the pre-release, here's the full changelog since v3.8.0.
What's new
- Added: Initial upgrade from C++17 to C++20
- Added: Built with latest Sharkive's cheats repository
- Fixed: UI has been improved and rendering has been simplified in order to make the screen render faster
- Fixed: the color scheme has been improved (to my liking)
- Fixed: a crash when playing certain games and then going directly into checkpoint afterwards
- Fixed: logs on the Switch version are now split by day. This avoids keeping a huge
checkpoint.logfile after years of use. - You can safely remove
/switch/Checkpoint/checkpoint.log. - You can find the new logs under
/switch/Checkpoint/logsfolder. - Logs for the 3DS version will be added in the next releases.
- Fixed: dependencies have been updated to their latest version
- Fixed: displayed play time is now rendered correctly
- Fixed: L/R buttons double binding (thanks @Noxor11)
- Fixed: source compilation (thanks @mrhappyasthma and @l-austenfeld)
- Removed: link time optimizations have been disabled.
- These were originally introduced to strip down some weight off the compiled executable, but the difference is too small to consider this feature useful. LTO has caused some trouble in v3.8.0 on the 3DS version.
Thank you for your patience and support.
If you wish to contribute, pull requests are highly appreciated.
v3.7.4 · Dec 9, 2019
Switch - What's new
- Added compatibility for Atmosphere 0.10.0+. This changes the cheats path from
/atmosphere/titlesto/atmosphere/contents, so that means this version won't be able to put cheats in place for older Atmosphere versions. - Fixed: the
Aborted by userissue occurring when trying to perform a backup in Applet mode. - This means that if you're running Checkpoint in Applet mode, you won't be prompted to decide a name for your backup and the default name will be used instead.
- This also solves incompatibilities for CFWs that don't properly support title takeover.
- Fixed: the Account Selection applet won't cause Checkpoint to hang anymore if using Applet mode, if you're running Atmosphere 0.10.0+.
Scan the QR Code for the 3DS version with FBI.
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon or through PayPal!
v3.7.3 · Oct 26, 2019
Before I list all the changes that made into this version, please note Checkpoint for the Switch is finally getting rewritten from scratch to gain a new, better, beautiful UI and tons of features that I didn't have chance to build into Checkpoint yet.
- Please stay updated by following the Projects section of this repository.
- If you have suggestions or want to get involved into the development of Checkpoint, please get in touch with us by joining FlagBrew's Discord server (link at the bottom).
3DS: What's new
- 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.
Switch: What's new
- Fixed: built in FTP server is now able to open the Checkpoint folder, finally letting this feature to be useful for easy and fast save retrieval.
- Fixed: removed red watermark if Checkpoint was launched in applet mode.
- Pro Tip: you shouldn't launch Checkpoint or homebrew in general in applet mode anyways. Please don't.
- 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.
Scan the QR Code for the 3DS version with FBI.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon or through PayPal!
v3.7.2 · Sep 14, 2019
Switch: What's new
- Fixed: build compiled with support for system version 9.0.0. Please update to Checkpoint 3.7.2+ in order to be able to run this software on system versions 9.0.0 or superior.
- Fixed: graphics fixes and routine dependancies updates.
Scan the QR Code for the 3DS version with FBI.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon or through PayPal!
v3.7.1 · Sep 11, 2019
3DS: What's new
- 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.
Switch: What's new
- Added: Checkpoint can now run again under applet mode, but:
- it will be very annoying.
- functionalities may not work properly and memory corruption may happen. Occasionally, the application could hang when trying to access one of the system applets. Watch this video for an example.
- Please do not run Checkpoint in applet mode.
- Fixed: changed port of built in FTP server to 50000.
Scan the QR Code for the 3DS version with FBI.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon or through PayPal!
v3.7.0 · Sep 8, 2019
A little bit of premise is mandatory for this release.
Originally in my plans this should have been version 4.0.0. I definitely put the most effort I could to make this release happen, compared to all the old versions that preceeded this one.
I worked really hard for this. ~80kloc changed, most of the codebase redesigned, a brand new interface.
I'm writing this shortly before releasing this new update, and shortly after realizing this is not yet what I've always tried to accomplish during the design and realization, with little to no gains, of this piece of software.
That's the reason the version number has been reduced compared to the one I was planning to release today.
What does this mean? Well, basically nothing for the end user. You'll still get all the features that have been worked on in the ~9 months that passed between this one and the last stable releases.
Another set of features, that were originally planned to get developed for this release, will be delayed for the next major version, that will be carefully designed from scratch.
While the User Interface of the 3DS version still rocks, the attempts to adapt it for the Switch the best I could have kinda failed for me. It is now time to put together a proper UX that will fully take advantage of the Switch form factor, while keeping alive all the concepts and ideas that have made Checkpoint what it is today.
It'll be worth it.
3DS: What's new
- 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...
Switch: What's new
- Added: Sharkive feature for the Switch as well. A brand new Cheat menu has been implemented inside Checkpoint to be able to manage cheats for Atmosphere.
- The entire cheat database is offline and bundled inside of Checkpoint.
- You're able to select and enable just the cheats you really want to have. This is an alternative approach to cheat toggles.
- 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.
- Added: Online configurations. You can now configure Checkpoint from your internet browser. Checkpoint will behave as an HTTP server while running.
- Connect to
SWITCH_IP_ADDRESS:8000from any device connected to the same network as your Switch to be able to access configurations. - Added: FTP server. You probably want to be able to get your saves out of the switch once they have been backed up. While I come up with handier solutions, enjoy this non blocking FTP server. You can access connecting to
SWITCH_IP_ADDRESS:5000(As of v3.7.1,SWITCH_IP_ADDRESS:50000) with empty username and password. - Added: redesigned UI. Enjoy it while it's fresh.
- Added: system keyboard support. The custom keyboard originally setup has been removed from Checkpoint to fully take advantage of the system keyboard applet.
- Added: switch pages with L/R.
- Added: logging. Logs will be written to
/switch/Checkpoint/checkpoint.log. - Fixed: favorite sorting now works properly again.
- Fixed: cut down size of the executable. It now stores an entire cheat database inside and still manages to be ~1MB lighter than the previous stable release.
- Fixed: Checkpoint doesn't run anymore if nx-hbmenu is launched over a system applet (like Album).
- Refactoring, refactoring, refactoring...
Cheat management
From this release, Checkpoint also handles cheat management. Source cheat files are provided by Sharkive which is another project that have been going on from a while now.
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.
User ikeb0mb#2998 made a really useful video tutorial to show you how to use the Cheat Engine. Please have a look!
Roadmap
Features that didn't make into this version (I'm sorry):
- A better UI
- BCAT save management
- A better web interface
- Manual integrated with the web interface
- Auto updater
- Cheat updater
It'll make more sense to implement those when the whole application is better designed to integrate this much feature while keeping the user experience as clean as possible. Software that matters is all about quality, not quantity.
Scan the QR Code for the 3DS version with FBI.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon or through PayPal!
v3.6.0 · Dec 31, 2018
3DS: What's new
- 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.
Switch: What's new
- Added: a bridge functionality between Checkpoint for Switch and PKSM (for 3DS, v6.0.0 and above) has been implemented.
- It allows to send (and then receive back) a save file over the network, to allow manipulations without having to browse your save backups manually on your PC.
- It also needs to be manually enabled by editing your configuration file. Once it's enabled, you can access the bridge by pressing
L+Ron a valid game. - This feature currently works only with LGPE.
- Fixed: buttons are now responsive as before while navigating the UI.
- Fixed: titles with black background are now displayed properly.
- Fixed: checkmark color doesn't confuse with title icons anymore.
- Fixed: text doesn't bleed textboxes like before anymore.
Scan the QR Code for the 3DS version with QRaken.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon!
v3.5.0 · Oct 28, 2018
3DS: What's new
- Added option to set a title as Favorite. You can now edit your configuration file to set a title id to be a favorite title, so this will always appear at the top of the title list.
- Key behaviour changed. ( thanks @IBNobody )
- You can now select rows in the backup list, creating backups and restoring a backup just with the button
A. - Pressing Y will select the current title but deactivate/reset the backup list. It will also enable the backup touch button only. Creating a backup will then disable the backup touch button. This makes it more clear to the user what buttons / UI elements are relevant to multi-backup.
- Checkpoint is now compiled using C++17.
Switch: What's new
- Added support for Hardware Acceleration. Checkpoint now relies on the GPU to render graphics and text, removing load from the CPU.
- The interface now relies on SDL2 to render images and text.
- Text rendering is optimized by using a customized version of SDL_FontCache which caches glyphs in memory rather than creating textures every frame. This also allows to use the system font already available in the console.
- Checkpoint caches from
PlSharedFontType_StandardandPlSharedFontType_NintendoExtfonts, so both regular characters and symbols are now supported to be rendered on screen. - Added option to set a title as Favorite. You can now edit your configuration file to set a title id to be a favorite title, so this will always appear at the top of the title list.
- Fixed crashes caused by too many file descriptors opened.
- Key behaviour changed. ( thanks @IBNobody )
- You can now select rows in the backup list, creating backups and restoring a backup just with the button
A. - Pressing Y will select the current title but deactivate/reset the backup list. It will also enable the backup touch button only. Creating a backup will then disable the backup touch button. This makes it more clear to the user what buttons / UI elements are relevant to multi-backup.
- Fixed occasional crashes while changing account.
- Checkpoint now uses latest libnx 1.5.0, which supports timezone and fixes wrong default backup names if your console never connected to internet.
- Checkpoint is now compiled using C++17.
Scan the QR Code for the 3DS version with QRaken.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like the work FlagBrew puts into this project and more others, support FlagBrew on Patreon!
v3.4.2 · Sep 3, 2018
3DS: What's new
- Fixed configuration override after updating Checkpoint version.
Switch: What's new
- Fix compatibility with certain games and CFWs. Now Checkpoint is fully compatible with custom firmwares using
fs_mitm,layeredfsand other modules massively relying on file operations. - Confirmed working on both hekate, Atmosphere and ReiNX using said modules.
- Other CFWs may be compatible as well, even if not directly tested.
- The issue was caused by a poorly optimized function to recursively delete folders, which has been now replaced by the one available on JKSV, too.
- Fixed configuration override after updating Checkpoint version.
- Avoid using a separate thread to populate titles.
- Default selected button for the homebrew keyboard is now
OK(thanks @fennectech).
Scan the QR Code for the 3DS version with QRaken.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like my work, please support me on Patreon or with a coffee :)
v3.4.1 · Aug 16, 2018
3DS: What's new
- Fixed compatibility with lots of games. Titles that caused troubles like Scribblenauts, Shin Megami Tensei or Paper Mario are now fully supported by Checkpoint.
- Fixed compatibility with "counterfeit" DS cartridges.
- Turned out they just were undocumented cartridges, which now are fully compatible with Checkpoint.
- Fixed issue causing Checkpoint to error when loading garbage titles installed into your nand.
- Fixed crashes happening when the cursor was moved to a location without titles.
- Fixed crashes happening when exiting target title after backup navigation.
- Fixed crashes caused by text rendering issues (thanks @pcbeard).
- Code cleanup and multiple minor fixes.
Switch: What's new
- Fixed corrupted save backup folders if your Account name contains non-ascii characters.
- You can now properly cancel a backup if you press B from the keyboard screen.
- Fixed parallel building.
- Code cleanup and multiple minor fixes.
Scan the QR Code for the 3DS version with QRaken.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like my work, please support me on Patreon or with a coffee :)
v3.4.0 · Jul 22, 2018
3DS: What's new
- Fixed: Loading is now instantaneous! This has been a problem for lots of people, but it's now fixed. If you kept away from Checkpoint due to its loading times, it's now time to check it out.
- After the cache being created, title loading has been reported to be ~0.5 seconds on a system with ~200 titles installed.
- This has been achieved by enhancing the way the cache is created and the titles are loaded from it: the dedicated thread doing this cool stuff now does less I/O operations, which really enhances performances a lot.
- As in the previous releases, cache is automatically invalidated when you install or delete titles from your system.
- Fixed: the selector now matches the one from the Switch version.
- Fixed: bug causing Checkpoint to crash if refreshing the title list while in the extdata section.
- Fixed: The homebrew keyboard has been enhanced.
- Fixed: some strings in the UI don't bleed from containers anymore.
- Added: new wonderful icon and banner by rakujira!
Switch: What's new
- Added: custom configuration manager like the one in the 3DS version. You can now:
- Filter arbitrary titles from their title ID
- Have multiple additional folders to choose save backups from
- For informations and usage, please refer to the README.
- Fixed: bug preventing to create new save backups after deleting a save backup.
- Fixed: bug causing Checkpoint to occasionally crash when changing account.
- Fixed: now you can move from title selection to save backup selection using the touchscreen, just by touching the section you want to operate with.
- Fixed: decreased multiselection cooldown.
- ~~Fixed: now save backup folders won't have their title ID repeated twice.~~
- ~~Note: I don't really know how this would behave with titles having completely not-ascii names.~~
- ~~Note: If you don't see save backups you created with older versions of Checkpoint, that's because they're in different folders. You need to manually move them to the updated ones.~~
- Fixed: The homebrew keyboard has been enhanced.
- Added: new wonderful icon by rakujira!
Scan the QR Code for the 3DS version with QRaken.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like my work, please support me on Patreon or with a coffee :)
v3.3.0 · Jun 12, 2018
Notice: This is a Switch-only release.
What's new
- General Checkpoint improvements to enhance the user's experience.
- The whole UI has been completely redesigned. This affects many things in the user experience.
- Titles are now displayed by icons. You can display up to 20 titles at the same time. If you have more , you'll find them in the next pages.
- Saves for the users are now listed separately and sorted for user.
- You can change the selected title or the current user by using the dedicated buttons or using the touchscreen.
- Detailed informations are now displayed on screen.
- Space has been really optimized to be fully occupied with useful informations.
- Selector animations. You all love them right?
- Memory leaks related to the title icons have been fixed. Also, icons are now stored more efficiently to take less space and reduce the initial loading time.
Even though the User Interface will be this one pretty much forever, the code underneath will be redesigned as well. It's been refactored too much times and it's too messy for my taste. It'll be rewritten to be cleaner soon™.
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like my work, please support me on Patreon or with a coffee :)
v3.2.0 · Jun 3, 2018
Switch
- Added: touch-less backup and restore by using
LandR. - Fixed: occasional crashes on various firmware versions are now fixed.
- Fixed: now the user interface uses the Shared Font: this means you're now allowed to see the correct name for games with non-ascii characters in their name.
- Fixed: now you can backup a save using the default backup name (datetime + username) if you have accented characters in your username.
- Fixed: control speed is now slower.
- Refactoring and tons of small fixes to enhance the user experience.
3DS
- Fixed: Checkpoint now doesn't restore, deletes or backups to the wrong save backups. The built release has been updated to reflect the changes you can see in the commits made before this release. I'm sorry if this caused troubles in this few days.
- Added: custom configurations. This means you can now:
- Hide arbitrary titles by passing their title ID inside of the configuration file.
- Backup system titles savedata.
- Add more custom folders to look for saves and extdata throughout the entire SD Card, for each title.
- For more informations about how to setup your custom
config.jsonfile, check out the README. - Added: touch-less backup and restore by using
LandR. - Added: fast scroll in the UI by holding the arrows.
- Fixed: some graphic elements overlapped in the wrong way because of bad depth value.
- Fixed: page count is now fixed when the UI has specific amounts of titles.
- Fixed: cursor now wraps properly in the UI when scrolling the title list with the directional arrows.
- Refactoring and tons of small fixes to enhance the user experience.
Scan the QR Code for the 3DS version with QRaken.
qr
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like my work, please support me on Patreon or with a coffee :)
v3.1.0 · May 14, 2018
Release time! I worked really hard on Checkpoint in the last months and lots of progresses have been made.
3DS
- Checkpoint has been completely refactored and now uses citro2d as 2D library.
- A release so early has only been possible to early access to citro2d. That's why I want to thank all the mantainers for the library and the toolchain.
- The application shouldn't now crash anymore if choosing a long name for a save backup (untested).
- Report back if it's solved here.
- Lots of general improvements.
- Icon, banner and UI colors changed.
- Built with latest devkitARM r48.
- Further improvements to overall Checkpoint stability and other minor adjustments have been made to enhance the user experience.
Switch
Since save dump and restore operations have been possible with different entrypoints for a while, I decided to release my code as well. Checkpoint for Switch is adapted from the latest source code for the 3DS version.
Checkpoint is designed with great user experience as main focus. Because of that, it comes with a beautiful and intuitive UI that allows you to perform all the operations with just a couple clicks.
- Initial release. Compatibility goes from > 1.0.0 to <= 5.0.2.
- Newer firmwares may or not may be compatible with this.
- If you have problems, please submit an issue on this repository.
- Checkpoint can now be used in both docked and handheld mode. You can now control buttons previously accessible through touchscreen with Joycons.
- Added fast scrolling to navigate through the UI and the keyboard more quickly.
- Even more improvements to overall Checkpoint stability and other minor adjustments have been made to enhance the user experience.
For more details, instructions, informations and credits check out the readme.
If you wish to contribute, pull requests are highly appreciated.
If you like my work, please support me on Patreon or with a coffee :)
v3.0.0 · Dec 31, 2017
Happy new year!
- Fixed: Severe bug where backups bigger than
0x100000bytes were corrupted when stored to the SD Card. - Luckily, most of the games use savefiles that are smaller than that, but I'm really sorry for anyone who lost their progresses in game due to this problem.
- You're strongly suggested to delete all the backups that may have fallen into this problem and make new backups with this build.
- Fixed: Extdata backup and restore now finally works.
- Fixed: Flashcards don't cause issues anymore if inserted when Checkpoint is running.
- Fixed: Loading time is now reduced by 50% due to caching.
- Checkpoint will create a local cache to load faster. The cache is rebuilt when you install a title/delete a title/remove a cartirdge/insert a cartridge. To understand what's going on, you can see the mechanism here.
- Added: Progress bar. In this way, you can see the progress for every file that you're backing up or restoring.
- Added: Ability to delete backups. While you entered a title, press X to delete an entry.
- Fixed: Now Checkpoint doesn't crash anymore when you have more than 100 titles installed on your device.
- Added: custom splash logo (thanks FrozenFire).
- Fixed: backup folders now use ISO 8601 for date format. In this way, it will be easier to track your saves from the most recent to the last.
- Added: now interface displays product code for a title. This lets you know which region is the game you're dealing with, in case you have games for multiple regions installed at the same time.
- Fixed: From now, backup list is refreshed every time you do a backup for all the titles sharing the same title id.
- This means you'll finally be able to export a save from a cartridge and import it into a digital copy in the same Checkpoint session.
- Added: Ask for confirmation when backupping or restoring a save.
- Further improvements to overall Checkpoint stability and other minor adjustments have been made to enhance the user experience.

If you appreciate my work, I appreciate a coffee :)
v2.0.2 · Oct 16, 2017
What's new?
- Added: Files being copied are now shown progressively.
- Added: Now you can hold SELECT to display all the possible button inputs and actions.
- Added: Possibility to refresh the title list (this allows you to switch cartridge and recognize it without exiting and launching Checkpoint another time). Thanks @tryton-vanmeer !
- Fixed: Big size savedatas don't crash the application anymore trying to allocate more heap memory than the maximum amount available for the application.
- Fixed: Removed redundant portions in multiple-backup folder names.
Notice: You mustn't have a flashcard inserted when launching Checkpoint, due to possible incompatibilities that could cause some threads to not end, possibly causing crashes.
If you appreciate my work, I appreciate a coffee!
v2.0.1 · Oct 5, 2017
This patch fixes a pretty dangerous edge case where two automatic save backups are overwritten if having both cartridge and installed title at the same time on your console.
v2.0.0 · Oct 4, 2017
Major release! What's new?
- Added: DS Cartridges support. This couldn't be possible without TuxSH's TWLSaveTool, so huge thanks to him!
- Note: Save restore takes a good minute to complete, for DS cartridges.
- Added: Multiselection. This allows you to select multiple titles at once and backup them with a single tap.
- Press
Yto select a single title. - Held
Yfor a second and a half to select all the titles you have. - This will store your backups in a
<titlename> - Autobackupfolder, by default, inside the folder containing all the save backups for the selected title. - Fixed: Potential crashes during the title retrieving has been fixed. This was achieved by sorting the list just once, to prevent stack overflows. This also implies that the title loading is now faster than before.
- Fixed: A critical bug with backup folder names has been fixed. This caused FAT drivers to go mad if folders weren't named correctly by Checkpoint.
- The illegal characters list has been changed a bit, so some folders may not be compatible anymore with the first version.
- FIxed: Extdata backup is now working correctly (kinda). Restore could still crash in some cases, though.
- Fixed: now backup folders are deleted if a backup fails (this means you'll not have potentially empty backups anymore).
- Fixed: now the working path for a title is
0x<uniqueID> <titlename>. This prevents edge cases where two games have the same title name, causing the save file to conflict in the same folder. - Fixed: Button
Adoesn't close the target anymore. - Changed: now the working path has been moved into
sdmc:/3ds/Checkpoint/ - You can safely remove/copy&paste backups manually from a backup folder to another, of course.
- Changed: slight changes in the default save backup name.
- Changed: cosmetic changes, we all love them.
- Further improvements to overall Checkpoint stability and other minor adjustments have been made to enhance the user experience.
v1.0.0 · Oct 1, 2017
Checkpoint
A fast and simple save manager for cfw/rosalina written in C++.
Why using Checkpoint?
Checkpoint is created with the idea of simplicity and efficiency. The UI has been designed to condense more option as possible but keeping it simple to do operations with.
Moreover, Checkpoint is really lightweight and it's built using very few (and up-to-date) libraries. It also doesn't have any assets in it, while being packaged with a nice graphic user interface.
Checkpoint supports normal titles and demos. It also automatically checks and filters homebrew titles which may not have any save archive to backup or restore: this is done without the need of external lists of titles to filter needing to be updated periodically with new titles. For this reason, Checkpoint doesn't need the user maintenance to always be fully functional.
Working path
Checkpoint uses 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:/Checkpoint: root pathsdmc:/Checkpoint/saves/<game title>: root path for all the save backups for a generic gamesdmc:/CHeckpoint/extdata/<game title>: root path for all the extdata backups for a generic game
Usage
You can use Checkpoint with both cfw and rosalina-based Homebrew Launcher. *hax-based Homebrew Launcher entrypoint is not supported by Checkpoint.
The first launch will take a long amount of time (usually 2-3 minutes depending on how many titles you have installed), due to the working directories being created. The next time you launch Checkpoint it will be significatively faster.
You can scroll between the title list with the DPAD/LR and target a title with A when the selector is on it. Now, you can use the DPAD or the touchscreen to select a target backup to restore/overwrite.
Issues
Checkpoint displays error codes when something weird happens or operations fail. Report back the error code and a summary of your operations to reproduce it if the issue hasn't been discussed in the past ones yet.
Building
Checkpoint uses latest libctru, latest citro3d and latest pp2d.
License
This project is licensed under the GNU GPLv3. See LICENSE.md for details.
Credits
Even though this is the result of independent research and work, this couldn't be possible without J-D-K's JKSM, which is an incredible piece of software and you all should be using it. Best regards JK, hope you're fine.
