Releases: J-D-K/JKSV
JKSV 12/02/2025
JKSV 12/02/2025
-
Fixed a crash caused by enabling both
Keep Local BackupsandAuto-backup on restore. -
Fixed an issue where trashed Google Drive files appeared in JKSVβs backup listings.
-
Added a new setting: English Safe Titles.
- When enabled, United States and British English titles are prioritized over the default system language when generating output folders.
-
Applet mode has been re-enabled. JKSV will now display a warning indicating that unexpected behavior may occur.
-
Keyboard dictionary and suggestions have been re-implemented, along with three new date formats.
-
Menu wrapping has been implemented to mirror the original master branch JKSV behavior.
-
Updated KO.json by @DDinghoya in #319
Thank you to:
Quas7. I really appreciate it! If you have a Github account you'd like referenced, let me know!
Bug reports are always welcome and will be reviewed.
JKSV 11/16/2025 Compatibility Update
JKSV 11/16/2025
- A fix for uploading to certain WebDAV servers and providers by @soarqin in #316
- Built with the latest libnx.
- Support for cache-type saves has been improved.
- When creating a cache save, you will now be prompted to specify an index and choose the location (NAND or SD).
- A thread-pooling system has been implemented to avoid repeatedly creating and destroying threads.
- A new queued buffering system has been added.
- Remote storage initialization and fetching are now threaded to help reduce boot times.
- A more comprehensive accent and Unicode-to-ASCII conversion table has been implemented.
- This will be the final revision of this code.
- Some output folder names may change again. I apologize for the inconvenience.
- Note: I originally planned to provide a conversion tool, but the release of system update 21.0.0 forced me to prioritize compatibility fixes.
- The Title Information view has been overhauled to display more detailed data.
- Running under applets has been disabled.
- JKSV can now check for and download updates for itself.
- All logic for animations and state transitions has been consolidated.
- Logic for various UI elements has been cleaned up and adjusted.
- FsLib has been updated to address directory listings not being sorted correctly.
Notes
- This is primarily a compatibility release for system update 21.0.0:
- I was in the middle of experimenting with sound-effect feedback. This work is incomplete and not final.
- Any and all bugs should be reported.
Thank you to:
@aklover00 and @Thundereus. I appreciate it!
JKSV 09/13/2025
JKSV 09/13/2025
This release addresses the following issues:
- A bug in string sanitation logic has been corrected that would result in the final character being replaced with a null terminator.
- Non-safe path characters are now ignored instead of replaced with spaces. This prevents duplicate spaces in safe titles and nicknames.
- As a result, some titles may not match their previous output directories. I understand this might be inconvenient, but the change helps keep paths cleaner and more consistent, and it may also improve compatibility with certain WebDAV implementations.
What's new:
- Korean language text has been updated thanks to @DDinghoya!
- State transition logic has been consolidated into a single class.
I know this may be inconvenient, and I truly appreciate everyoneβs patience. Iβm doing my best, but Iβm only human. If you notice anything wrong or off at all, don't hesitate to report it.
JKSV 09/08/2025
JKSV 09/08/2025:
This release addresses the following issues with the previous release:
- Empty directories in ZIP backups are now preserved correctly.
- Directory entries in ZIP backups are now handled properly.
- This resolves a bug where ZIPs created by other programs could fail to restore.
- Available journaling space is now fetched directly from save data before falling back to default NACP values.
- Path sanitation logic has been corrected so PokΓ©mon titles now use the same output path as in the original JKSV.
- Addresses a small oversight where icons would fail to shrink back to their original size.
What's new:
- File Mode has been implemented:
- Access it by highlighting a game, pressing X, and choosing Open in File Mode.
- Extra features such as browsing various filesystems on the Switch have been implemented now.
- NOTE: File Mode in the rewrite functions differently from the original JKSV in a few ways. It may take some adjusting.
- FsLib has been updated to be fully RAII-compliant.
- Various small tweaks and improvements across JKSV and its libraries.
Thanks to:
@qazrfv1234 for updating the Traditional Chinese translation!
Feedback:
If you encounter bugs, issues, or have feature requests, feel free to report them here.
Support
If you appreciate my work with JKSV and would like to show support, you can. It's never required, but I do appreciate it! Thank you so much Nick and Impeeza! I really appreciate it!
JKSV Rewrite First Release
JKSV 08/25/2025
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.
-
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.
-
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
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Notes concerning missing features.
Include Device Saves with Usershasn'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.
-
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.
Extra, extra notes:
-
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.
- 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.
TL;DR
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.
11/05/2024
NOTE: This build of JKSV is extremely outdated and obsolete. If you have been linked directly to it, the latest releases can found here instead.
JKSV 11/05/2024:
- JKSV's default configuration settings have been updated to use ZIP as the default backup option instead of JKSM's original unpacked folder format.
- This can be changed by scrolling down to the end of the user selection menu and opening the settings menu if you wish to use folders instead. Note that ZIP offers higher compatibility with games that use UTF-8 file paths and other oddities that the save containers allow that the SD card does not. Folders allow easier access to the files themselves.
- If you've been using JKSV for a while, chances are your current configuration file will override this change. If you would like the best compatibility possible, I recommend toggling the "Export Saves to ZIP" option to on from here on out.
- With this release, I've included a ZIP with my preferred configuration when I use JKSV. Simply unzip it to your SD card and you're good to go.
- JKSV's configuration file is now written upon toggling or changing an option instead of at exit or cleanup. Too many people aren't aware you should be exiting JKSV with plus instead of the home button to allow it to save your configuration and cleanup.
- Updated translations for:
- Traditional Chinese by @qazrfv1234.
- Italian by @Pf-16
- Korean by @DDinghoya
- Latin American Spanish (ES419) by @impeeza
- Updated WebDav instructions thanks to @impeeza
- I have written a guide to JKSV's settings menu and what the options do here.
With that, I would like to focus on FsLib and rewriting JKSV. I've learned a lot over the past few years and am aware of a lot of things I could have and should have done differently.
Thanks everyone. Take care of yourselves.
JK
08/06/2024
Oops, I lied: Extra release edition.
This release contains the following fixes and tweaks for Webdav:
- Fixes empty file names on certain Webdav servers.
- Uses path safe titles for Webdav servers.
NOTE: This will cause an issue where this release of JKSV will target a different parent folder than the previous one for Webdav.
As with the previous, everyone should thank @rado0x54 for the Webdav support and fixes.
Have a nice day everyone!
07/18/2024
JKSV version 07/18/2024:
- (Experimental?) WebDav support thanks to @rado0x54. Instructions for using and setting it up can be found in Remote Instructions.
I'd also like to take this time to actually sincerely thank and apologize to @rado0x54. I didn't mean to ignore you or ignore your work and I really do think it's cool and appreciate it.
This will be the final release of JKSV until my work cleaning up and rewriting the code is finished. I wish I could freeze time and have it done overnight, but I can't. Thanks for being patient everyone.
02.23.2023
This release contains a fix for the system font issues caused by the recent Switch update thanks to @SciresM.
It also forces me to post a release containing my in progress Google Drive code. Please note that while it works, I never had time to add and complete automatic upload/patching code. Uploading needs to be manually done for now. I promise I'll be back someday to finish it. You can read the instructions to set it up here.
There may be other changes I made in the past two years. If there are issues, report them and I'll do my best to figure them out when I can.
-JK
09.01.2021
- Adds Traditional Chinese support back thanks to @qazrfv1234
- Fixes output paths/title definitions not being read after initial import of old configurations
- Separates trash bin into sub folders so trashed backups aren't impossible to find.