{"id":20651038,"url":"https://github.com/bernardogiordano/checkpoint","last_synced_at":"2025-05-14T02:05:56.201Z","repository":{"id":39351388,"uuid":"102637400","full_name":"BernardoGiordano/Checkpoint","owner":"BernardoGiordano","description":"Fast and simple homebrew save manager for 3DS and Switch.","archived":false,"fork":false,"pushed_at":"2025-04-22T06:49:03.000Z","size":2296,"stargazers_count":2683,"open_issues_count":53,"forks_count":157,"subscribers_count":134,"default_branch":"master","last_synced_at":"2025-04-22T07:48:27.925Z","etag":null,"topics":["backup","checkpoint","homebrew-launcher","restore","switch"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BernardoGiordano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-06T17:20:55.000Z","updated_at":"2025-04-22T06:49:06.000Z","dependencies_parsed_at":"2023-01-31T08:16:01.604Z","dependency_job_id":"ec6c90b1-5c3a-47d6-b04d-53721671033c","html_url":"https://github.com/BernardoGiordano/Checkpoint","commit_stats":{"total_commits":398,"total_committers":24,"mean_commits":"16.583333333333332","dds":"0.12562814070351758","last_synced_commit":"d34006d1145e2420f4278af36d7c22187748bad8"},"previous_names":["flagbrew/checkpoint"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernardoGiordano%2FCheckpoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernardoGiordano%2FCheckpoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernardoGiordano%2FCheckpoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernardoGiordano%2FCheckpoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BernardoGiordano","download_url":"https://codeload.github.com/BernardoGiordano/Checkpoint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254052692,"owners_count":22006716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","checkpoint","homebrew-launcher","restore","switch"],"created_at":"2024-11-16T17:25:20.722Z","updated_at":"2025-05-14T02:05:51.187Z","avatar_url":"https://github.com/BernardoGiordano.png","language":"C++","readme":"# Checkpoint \u003ca href=\"https://github.com/FlagBrew/Checkpoint/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/FlagBrew/Checkpoint/total.svg\"\u003e\u003c/a\u003e\n\nA fast and simple homebrew save manager for 3DS and Switch written in C++.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://i.imgur.com/adEdJWO.jpeg\" /\u003e\n\u003cimg src=\"https://i.imgur.com/7Z2S0gG.png\" /\u003e\u003c/p\u003e\n\n## Why use Checkpoint?\n\nCheckpoint is created following ideas of simplicity and efficiency. The UI has been designed to condense as many options as possible, while keeping it simple to work with.\n\nMoreover, Checkpoint is extremely lightweight - while being packaged with a nice graphic user interface - and is built using the most recent libraries available.\n\nCheckpoint 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.\n\nCheckpoint for Switch natively supports NAND saves for the titles you have played. Title information are loaded automatically.\n\n## Usage\n\nYou can use Checkpoint for 3DS with both cfw and Rosalina-based Homebrew Launchers. *hax-based Homebrew Launchers are not supported by Checkpoint. \n\nCheckpoint for Switch runs on homebrew launcher. Make sure you're running up-to-date payloads.\n\nThe 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.\n\nYou 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.\n\n## Working path\n\nCheckpoint 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).\n\n### 3DS\n\n* **`sdmc:/3ds/Checkpoint`**: root path\n* **`sdmc:/3ds/Checkpoint/config.json`**: custom configuration file\n* **`sdmc:/3ds/Checkpoint/logs`**: log files\n* **`sdmc:/3ds/Checkpoint/saves/\u003cunique id\u003e \u003cgame title\u003e`**: root path for all the save backups for a generic game\n* **`sdmc:/3ds/Checkpoint/extdata/\u003cunique id\u003e \u003cgame title\u003e`**: root path for all the extdata backups for a generic game\n\n### Switch\n\n* **`sdmc:/switch/Checkpoint`**: root path\n* **`sdmc:/switch/Checkpoint/logs`**: log files\n* **`sdmc:/switch/Checkpoint/config.json`**: custom configuration file\n* **`sdmc:/switch/Checkpoint/saves/\u003ctitle id\u003e \u003cgame title\u003e`**: root path for all the save backups for a generic game\n\n## Configuration file\n\nYou can add and toggle features to Checkpoint for 3DS by editing the **`config.json`** configuration file.\n\n### Sample configuration file:\n\n```\n{\n  \"filter\": [\n    \"0x000400000011C400\",\n    \"0x000400000014F100\"\n  ],\n  \"favorites\": [\n    \"0x000400000011C400\"\n  ],\n  \"additional_save_folders\": {\n    \"0x00040000001B5000\": {\n      \"folders\": [\n        \"/3ds/mySaves/1B50\",\n        \"/moreSaves\"\n      ]\n    },\n    \"0x00040000001B5100\": {\n      \"folders\": [\n        \"/3ds/PKSM/backups\"\n      ]\n    }\n  },\n  \"additional_extdata_folders\": {\n\n  },\n  \"nand_saves\": true,\n  \"version\": 3\n}\n```\n\n## Troubleshooting\n\nCheckpoint displays error codes when something weird happens or operations fail. If you have any issues, please ensure they haven't already been addressed, and report the error code and a summary of your operations to reproduce it.\n\nAdditionally, you can receive real-time support by joining FlagBrew's Discord server (link below).\n\n## Building\n\ndevkitARM and devkitA64 are required to compile Checkpoint for 3DS and Switch, respectively. Learn more at [devkitpro.org](https://devkitpro.org/wiki/Getting_Started). Install or update dependencies as follows.\n\n### 3DS version\n\n`dkp-pacman -S libctru citro3d citro2d tex3ds 3ds-bzip2`\n\n### Switch version\n\n`dkp-pacman -S libnx switch-pkg-config switch-freetype switch-libpng switch-libjpeg-turbo switch-sdl2 switch-sdl2_image switch-sdl2_ttf`\n\n## License\n\nThis project is licensed under the GNU GPLv3. Additional Terms 7.b and 7.c of GPLv3 apply to this. See [LICENSE.md](https://github.com/FlagBrew/Checkpoint/blob/master/LICENSE) for details.\n\n## Credits\n\n* [Bernardo](https://github.com/BernardoGiordano/) for creating Checkpoint.\n* [J-D-K](https://github.com/J-D-K) for the original [JKSM](https://github.com/J-D-K/JKSM) version.\n* [TuxSH](https://github.com/tuxsh) for [TWLSaveTool](https://github.com/TuxSH/TWLSaveTool), from which SPI code has been taken.\n* [piepie62](https://github.com/piepie62) and all other [PKSM](https://github.com/FlagBrew/PKSM) contributors for some code that has been ported to Checkpoint.\n* WinterMute, fincs and [devkitPro](https://devkitpro.org/) contributors for devkitARM, devkitA64 and [dkp-pacman](https://github.com/devkitPro/pacman/releases).\n* Yellows8 and all the mantainers for [switch-examples](https://github.com/switchbrew/switch-examples).\n* [rakujira](https://twitter.com/rakujira) for the awesome Checkpoint logo.\n* achinech for helping to debug the infamous 3.8.x crash issue.\n* Fellow testers and troubleshooters for their help.\n* The huge amount of supporters that this project has gained over the years.\n\nWithout you, this project wouldn't have existed. Thank you.\n\n[![Discord](https://discordapp.com/api/guilds/278222834633801728/widget.png?style=banner3\u0026time-)](https://discord.gg/bGKEyfY)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernardogiordano%2Fcheckpoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbernardogiordano%2Fcheckpoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernardogiordano%2Fcheckpoint/lists"}