Skip to content
Permalink
master
Switch branches/tags
Go to file
Latest commit e34a3f3 Jun 2, 2021 History
2 contributors

Users who have contributed to this file

@J-D-K @ca1e

JKSV

Data Dump/Restore tool for Switch.

Info

JKSV on Switch started as a small project/port to test some things and get familiar with libnx. A list of what it currently can do:

  1. Dump and restore save data.
    • This includes the ability to dump and restore to/from any location on SD by pressing minus and using the Advanced Mode.
    • Save Data can be dumped and restored directly to and from ZIP archives by enabling Export To ZIP in the options menus. Folders will still be detected and usable even with this enabled.
  2. Dump system save data
    • Dumping this data is always enabled, but writing back needs to be enabled from the options menu. Writing to this can be very dangerous.
  3. Open and explore bis storage partitions via the Extras menu
    • BIS Storage is opened inside a basic filebrowser. The partition's listing is on the left. Your SD is on the right.
    • Only copying to SD and file properties work on BIS partitions. Writing to and deleting are disabled unless enabled like system save data.
  4. Misc Extras:
    • Ability to remove downloaded firmware updates from NAND. This is located in the extras menu (ZR on User selection)
    • Terminating processes by ID. Allowing you to dump normally unopenable system archives.
    • Mount by System Save ID. Normally used when the terminated process makes JKSV unable to rescan titles without the Switch crashing.
    • Mount and open RomFS of process the homebrew menu takes over (if launched as NRO).
      • Hold R while opening a game or applet with Atmosphere so the homebrew menu loads. Open JKSV and press minus and select Mount Process RomFS. The romfs of the app should appear in the browser along with your SD on the right.

Quick Guide

A custom path can be defined by creating "sdmc:/switch/jksv_dir.txt" and typing the path you want to use. For example, sdmc:/switch/JKSV/ will force JKSV to create its folder in the switch homebrew folder.

Custom "safe titles" can be set by creating a file named titleDefs.txt in your JKSV directory. These are the folders on SD in which game saves are stored. For example, creating this file and adding the line 0100BFE00E9CA000 = "The Witcher 3 CE" will set The Witcher 3 to use [pathto]/JKSV/The Witcher 3 CE/ directory instead of its title id. These need to be ASCII or they will fail to work.

  1. User Select

    • A opens the selected user's save files.
    • Y Dumps all save data from all users, device save data, and BCAT save data. System save data is not included in this.
    • X Changes the UI mode to a text menu based one for people that prefer 3DS JKSM style text menus instead.
    • Minus Opens the Options menu.
    • ZR opens a small menu of extras.
  2. Title Select

    • A Opens the title for backup and restore.
    • L and R change the current user.
    • Y Dumps all saves for the currently selected user.
    • X adds the selected title to a list of favorites that are pushed to the top of the title list/icons.
    • Minus adds the selected title to a list of ignored titles.
    • ZR ERASES The selected title's save from the system. This is the same as going into settings and deleting via data management. THIS DOES NOT DELETE JKSV's SAVE FOLDERS.
  3. Backup/Folder Menu

    • Minus opens file mode. File mode is a basic file browser for moving individual files and folders. This also adds the ability to restore saves from any location on your SD card.
    • Holding L or R while selecting new with A will automatically name the backup for you without opening the keyboard.
    • A creates a new backup
      • JKSV adds some suggestions to the keyboard's dictionary such as: date strings, the current user's name if it's safe, and the current title or a generated abbreviation.
    • Y Restores save data from the selected folder.
    • X Deletes the selected folder.
    • ZR ERASES the current save data for the title from your system, but leaves the archive on NAND.
  4. File Mode

    • A opens directories.
    • B goes back up a folder if possible.
    • X opens a small menu of options for files and directories:
      • Copy to [X] - Copies the currently selected item to the location opened on the other panel. Selecting the first . will use the directory opened as root to copy.
      • Delete deletes the currently selected item.
      • Rename renames the currently selected item.
      • Make Dir creates a folder.
      • Properties gets file size and directory size.
    • ZL or ZR Change the controlled menu.
  5. Extras

    • SD To SD Browser opens the filebrowser with your SD open in both panels
    • BIS: [X] opens partition [X] in the filebrowser.
    • Remove Update deletes system updates downloaded from Nintendo and asks to reboot the system to get rid of the update nag.
    • Terminate Process asks for a title ID to terminate.
    • Mount System Save asks for the save ID to mount. This is for when JKSV is unable to rescan with a process terminated.
    • Rescan Titles reloads save data information. This can be used to reload after a process is terminated or when options are changed.
    • Mount Process RomFS opens the title's romfs that is taken over to launch the homebrew menu. This only works as an NRO. The NSP will only open JKSV's own RomFS.
    • Backup JKSV folder writes the entire JKSV folder to a ZIP archive and places it in your JKSV folder.
  6. Options

    • Include Dev Sv will add Device Save games such as Animal Crossing to your user account saves for easier access.
    • AutoBackup will create a backup of your current save before restoring just in case.
    • Overclock will clock your Switch's CPU to 1224MHz on boot.
    • Hold to [X] will disable needing to hold down A to confirm an action
    • Force Mount will only allow JKSV to list titles it can open. Disabling will give a complete list of all saves on your system
    • Account Sys. Saves will allow you to see and open system saves associated with user accounts
    • Write to Sys. Saves will allow you to write data to system save archives. This can be dangerous.
    • Text UI mode enables a simplified UI that only uses text menus
    • Direct FS Commands uses a simple wrapper instead of libnx's stdio.
    • Skip User Select jumps directly to the first user found instead of requiring a user to be selected.
    • Export to ZIP uses minizip to compress your save data to a ZIP archive instead of a folder full of files. This saves space and makes moving saves more convienient.
    • Sort changes the way titles are sorted. Alphabetically, Most time played, or by last title played.

IMPORTANT: Press Plus to Exit JKSV. JKSV saves all config, favorites, and the blacklist when exited. Pressing the home button and closing that way will not allow this to take place.

Building:

  1. Requires devkitPro and libnx
  2. Requires switch-
    • freetype
    • libpng
    • zlib
    • libjpeg-turbo
    • curl
    • libjson-c
    • sdl2
    • sdl2_image
    • libwebp

Credits and Thanks:

  • shared-font example by yellows8
  • Authors of switch-examples for account and save mounting code.
  • Iguniisu for the icon.
  • Leo For the Traditional Chinese translation
  • JamePeng For the Simplified Chinese translation.