l'excellent gestionnaire de sauvegarde, JKSV, fait peau neuve, grâce au travail acharné de son développeur J-D-K. Celui-ci l'a en effet totalement réécrit de manière à en simplifier la maintenance et/ou l'ajout de nouvelles fonctionnalités/services. Un gros effort a été également fourni sur le support de webdav, permettant de synchroniser les sauvegardes sur un cloud (google drive, koofr, etc.). Enfin, un système de mise en cache améliore grandement le démarrage de l'application (sauf le tout premier).
↓ Nouveautés / Corrections (cliquer pour voir) ↓'
This version of JKSV has been rewritten from the ground up. It shares none of original version's code. The goal of this was to make JKSV more stable, navigable, and maintainable.
This is effectively a completely different program. It looks like JKSV, runs like JKSV, but it's a completely different beast.
Support
I don’t expect it, and it’s absolutely not required, but rewriting JKSV to be the best it can be has, and still is, taking a lot of time and hard work. If you’d like to show your appreciation, you can now, and I truly do appreciate it.
- As mentioned, JKSV has been completely overhauled and rewritten.
- C++ features: JKSV now makes proper use of polymorphism, RAII, STL containers, and smart pointers throughout.
- State system: Replaces the old mess of global variables to track state. This alone makes the code far easier to follow and maintain.
- Resource management: No more manual memory management. No more memory leaks.
- C APIs: All C library APIs are wrapped in classes and smart pointers. This ensures proper cleanup and makes the code easier to work with.
- Error logging: Errors are logged with file, function, and line number, making issues far easier to track down.
- Code structure and quality: Overall readability and maintainability have been drastically improved.
- C++ features: JKSV now makes proper use of polymorphism, RAII, STL containers, and smart pointers throughout.
- Cached boot.
- Faster startup: JKSV now caches title data to improve boot times. On recent firmwares, Nintendo’s changes have slowed down NsGetApplicationControlData. Caching title information resolves this issue.
- Automatic invalidation: JKSV detects and rebuilds the cache itself whenever new titles are detected. Unlike JKSM on 3DS, there’s no need to manually refresh this yourself.
- Faster startup: JKSV now caches title data to improve boot times. On recent firmwares, Nintendo’s changes have slowed down NsGetApplicationControlData. Caching title information resolves this issue.
- Remote storage heavily reworked.
- System overhaul: The entire remote storage system has been reworked from the ground up.
- Expansion: The new design makes it simpler to add support for additional services in the future.
- Important note: Adding support depends on the information a service requires. I’m not handing over all of my personal info just so JKSV can support it.
- System overhaul: The entire remote storage system has been reworked from the ground up.
- Overhauled WebDav code.
- Completely reworked: The WebDav code has been rewritten from the ground up.
- Namespace agnostic: Instead of slicing and splicing namespaces to find XML tags, the new code ignores them entirely. This eliminates unnecessary string allocations and improves compatibility.
- Recursive fetching: Your entire WebDav listing is now fetched and processed recursively on boot, rather than on-demand. This eliminates UI pauses when servers respond slowly.
- Consistency: Changing the output path for a title on your Switch now also updates the folder on your WebDav server automatically. This should have been like this in the first place...
- Instructions for setting up WebDav can be found here.
- Completely reworked: The WebDav code has been rewritten from the ground up.
- Reworked Google Drive code.
- Major cleanup: The Google Drive integration has been heavily reworked, fixing various issues and inconsistencies.
- Full title support: Folder names once again use full UTF-8 titles. This was changed with the previous WebDav implementation and has been reverted.
- New login method: Instead of relying on the Switch’s built-in web browser, JKSV now uses the Limited Input method. You can now log in with your phone or another device instead.
- Instructions for setting up Google Drive can be found here.
- Major cleanup: The Google Drive integration has been heavily reworked, fixing various issues and inconsistencies.
- Reworked file handling logic.
- Complete overhaul: All file handling logic has been rewritten from the ground up.
- Bug fix: This addresses a rare issue where JKSV could get stuck at the end of a file transfer.
- Complete overhaul: All file handling logic has been rewritten from the ground up.
- Reworked UI Code.
- Complete overhaul: All UI code and elements have been rewritten and fine-tuned.
- Familiar Layout: The interface remains familiar, but everything underneath is completely different.
- Better translation support: The UI was designed from the ground up with translations in mind. In the original, this was just tacked on later.
- Text Menu (JKSM 2016) Mode Returns: For fans of the original JKSM on 3DS, JKSV now supports JKSM Mode where titles are listed using text menus instead of an icon grid array.
- Complete overhaul: All UI code and elements have been rewritten and fine-tuned.
- Additions.
- Auto-Upload: JKSV can now automatically upload backups to your selected service and remove them from the SD card.
- Controllable compression level: You can set the compression level used when creating zipped backups.
- Text Menu (JKSM) mode: Toggle between icon grids and text menus for displaying titles.
- Toggleable System Saves: You can now toggle whether scanning, loading, and display Device, BCAT, Cache, and System is desired. Disabling all of them also improves boot times.
- JKSV now includes a metadata file in backups containing information about the save. This improves accuracy and reliability when restoring saves.
- Auto-Upload: JKSV can now automatically upload backups to your selected service and remove them from the SD card.
- Notes concerning missing features.
- Include Device Saves with Users hasn't been implemented yet. It requires some careful consideration and planning.
- File Mode is not available yet.
- Filtering paths from backup and deletion is not yet implemented.
- Include Device Saves with Users hasn't been implemented yet. It requires some careful consideration and planning.
- Additional Notes.
- Most backups from the original JKSV are compatible. Exceptions include titles that extend save data, which are now handled correctly in the rewrite.
- The SVI format has been revised. SVI files from the original JKSV are not compatible with this rewrite.
- The translations provided are all completed by AI. If you have revisions or would like to fix them, feel free to do so!
- Some work may still be needed regarding cache type saves and handling them.
- JKSV's rewrite does not use the same configuration file as the original. You will need to reconfigure it.
- Most backups from the original JKSV are compatible. Exceptions include titles that extend save data, which are now handled correctly in the rewrite.
- Uses FsLib, a C++ wrapper library I wrote around 3DS and Switch FS calls.
- More control: FsLib allows me finer control over file operations.
- For example, if the final size of a file is known ahead of time, FsLib can skip redundant calls to extend the file during writes. This speeds up file transfers.
- For example, if the final size of a file is known ahead of time, FsLib can skip redundant calls to extend the file during writes. This speeds up file transfers.
- Paths are standardized upon construction to ensure compatibility with the Switch's FS.
- Improved error handling and logging: Every operation returns whether it succeeded. If not, FsLib records an internal error string with the location and error code for easier debugging.
- Because of this, the option Use FS Commands Directly has been removed as it serves no purpose anymore.
- More control: FsLib allows me finer control over file operations.
- Uses SDLLib, a C++ wrapper library I wrote containing reusable functions all of my projects share.
- Central Texture Manager: All textures are now loaded, tracked, and freed by a single manager, eliminating duplicate handling.
- Surfaces & Textures wrapped: SDL Surfaces and Textures are wrapped in smart pointers or classes, ensuring proper cleanup.
- Improved text handling: Text handling has been reworked and improved compared to the original JKSV implementation.
- Central Texture Manager: All textures are now loaded, tracked, and freed by a single manager, eliminating duplicate handling.
This is effectively a completely different program. It looks like JKSV, runs like JKSV, but it's a completely different beast.
Support
I don’t expect it, and it’s absolutely not required, but rewriting JKSV to be the best it can be has, and still is, taking a lot of time and hard work. If you’d like to show your appreciation, you can now, and I truly do appreciate it.
Github
Source : https://hackintendo.com/jksv-25-08-2025/

