Checkpoint 3DS

From GameBrew
Revision as of 15:47, 20 July 2021 by HydeWing (talk | contribs)

Template:Infobox 3DS homebrew

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.

Features

  • 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.

Installation

Installing

3DS:

  • Available as a CIA, 3DSX and also QR code.
  • Works for both CFW ​and Rosalina-based Homebrew Launchers (hax-based Homebrew Launchers are not supported by Checkpoint).

Switch:

  • Checkpoint for Switch runs on homebrew launcher. Make sure you're running up-to-date payloads.

Building

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

3DS:

  • dkp-pacman -S libctru citro3d citro2d

Switch:

  • dkp-pacman -S libnx switch-freetype switch-libpng switch-libjpeg-turbo switch-sdl2 switch-sdl2_image switch-sdl2_ttf

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).

3DS:

  • 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.

Switch:

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

Configuration file

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

Sample:

{
"filter": [
"0x000400000011C400",
"0x000400000014F100"
],
"favorites": [
"0x000400000011C400"
],
"additional_save_folders": {
"0x00040000001B5000": {
"folders": [
"/3ds/mySaves/1B50",
"/moreSaves"
]
},
"0x00040000001B5100": {
"folders": [
"/3ds/PKSM/backups"
]
}
},
"additional_extdata_folders": {

},
"nand_saves": true,
"version": 2
}


Cheats

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.

FAQ

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.

Controls

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

A - Target a title

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

Screenshots

checkpoint3ds2.jpg

Media

Checkpoint cheats tutorial (Ikeb0mb)

Chngelog

3.7.4 2019/12/09

Switch:

  • Added compatibility for Atmosphere 0.10.0+. This changes the cheats path from /atmosphere/titles to /atmosphere/contents, so that means this version won't be able to put cheats in place for older Atmosphere versions.
  • Fixed: the Aborted by user issue 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+.

3.7.3 2019/10/26

3DS:

  • 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:

  • 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.

3.7.2 2019/09/15

Switch:

  • 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.

3.7.1 2019/09/12

3DS:

  • 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:

  • 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.

3.7.0 2019/09/09

3DS:

  • 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:

  • 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:8000 from 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.

3.6.0 2019/01/01

3DS:

  • 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:

  • 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+R on 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.

Revision history.

Credits

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

Advertising: