Homebrew RELEASE JKSV (save manager) for Switch

  • Thread starter Thread starter JK_
  • Start date Start date
  • Views Views 202,623
  • Replies Replies 633
  • Likes Likes 27
Probably prerelease later today or tomorrow. I'm trying to clean up some of the code. I've also added automatic cache invalidation and updating at boot. If it detects save data for a title not in the cache, it automatically rebuilds it. That's something I always wanted to do on 3DS but never did. I also added a really basic loading screen. All of the textures still need to be processed on the main thread, so there's a slight pause after the loading screen, but, at least you can see what's going on now.

Hi @JK_

i have this error on the new JKSV.nro from 08.08.2025 if i try to backup my savegame any help thanks and best regards from germany
How are you running it? Are you using title takeover? I've never, ever seen it throw errors on trying to block the home button from working before.

Edit: Update build for anyone interested:
 

Attachments

Last edited by JK_,
Is there a way to make auto backup of certain games? Like weekly or monthly?
I had a prototype sysmodule that could automatically back saves up once you quit the game years ago. Someone recently brought it up and I thought about revisiting it, but it's not going to be right around the corner. Normally, I wouldn't for a sysmodule, but if I use C++ instead of C this time, it should be easier. Part of why I never took it further was that: It was pure C.
 
I had a prototype sysmodule that could automatically back saves up once you quit the game years ago. Someone recently brought it up and I thought about revisiting it, but it's not going to be right around the corner. Normally, I wouldn't for a sysmodule, but if I use C++ instead of C this time, it should be easier. Part of why I never took it further was that: It was pure C.
awesome, something to look forward to. I forgot to backup one of my games for fantasy life and somehow resetting skill point lowered my lvl.
 
  • Like
Reactions: impeeza
Probably prerelease later today or tomorrow. I'm trying to clean up some of the code. I've also added automatic cache invalidation and updating at boot. If it detects save data for a title not in the cache, it automatically rebuilds it. That's something I always wanted to do on 3DS but never did. I also added a really basic loading screen. All of the textures still need to be processed on the main thread, so there's a slight pause after the loading screen, but, at least you can see what's going on now.


How are you running it? Are you using title takeover? I've never, ever seen it throw errors on trying to block the home button from working before.

Edit: Update build for anyone interested:
Hi i have delete the old JKSV.nro and only put the new one i have forget to put the JKSV.cfg are this because the error?`or i dont need more the JKSV.cfg? error are wenn i make a backup from pokemon lets go and by Zelda TOK :(

#JKSV config.
workDir = "sdmc:/JKSV/"

includeDeviceSaves = false
autoBackup = false
autoName = false
overclock = false
holdToDelete = false
holdToRestore = false
holdToOverwrite = false
forceMount = true
accountSystemSaves = false
allowSystemSaveWrite = false
directFSCommands = false
exportToZIP = true
languageOverride = false
enableTrashBin = false
titleSortType = ALPHA
animationScale = 3.000000
 
Hi i have delete the old JKSV.nro and only put the new one i have forget to put the JKSV.cfg are this because the error?`or i dont need more the JKSV.cfg? error are wenn i make a backup from pokemon lets go and by Zelda TOK :(

[config]
That config is no longer supported by the rewrite. You can delete it. It's now JKSV.json. My old file parser had its own "quirks" and I decided to ditch it. As for it failing, can you post the log file? If anything FS related fails, with the exception of checking if something exists, it's logged with the file, function, line, and column along with the same information from my FS library to make it easier to track down. Even the last few lines can give me a lot of insight into what's happening.
 
That config is no longer supported by the rewrite. You can delete it. It's now JKSV.json. My old file parser had its own "quirks" and I decided to ditch it. As for it failing, can you post the log file? If anything FS related fails, with the exception of checking if something exists, it's logged with the file, function, line, and column along with the same information from my FS library to make it easier to track down. Even the last few lines can give me a lot of insight into what's happening.
This are the logs error and cache from yesterday and where i can get a JKSV.json thanks
 

Attachments

  • Like
Reactions: impeeza and JK_
This are the logs error and cache from yesterday and where i can get a JKSV.json thanks
Thank you. I'll take a look and get back to you later. I'm currently trying to figure out an odd new bug with the JKSM/Text mode toggle too. It'll flip to text menus but crashes when toggling icons back on.

Some of these bugs are really inconsistent too. Even the text mode one...

@BadBoyXxX
All I'm seeing are errors from running it in applet mode and trying to block the home button. Do you mind describing exactly what is happening? Even if you need to use ChatGPT or something to translate. I've had a few people report bugs I can't reproduce no matter how hard I try. I even ran old JKSV and rewrite JKSV back to back and couldn't do it. Do you mind running this version and posting the log? I added a few more log calls to try to pinpoint what it could be.
 

Attachments

Last edited by JK_,
@JK_ The error with the restore not working, which was described here:
has apparently crept back in.

Tested with the current source code. I have attached the log file. I deleted the old log file before attempting to restore game saves in order to obtain a clean log file.
 

Attachments

Last edited by Muxi,
  • Like
Reactions: JK_ and impeeza
So, someone is helping out immensely by writing better guides for setting up Google Drive and WebDav. I started uploading short clips on Youtube last night with a crappy button overlay hacked in to help people. I've noticed a lot of people don't even realize how extensive JKSV is. I had to stop because Google wanted all my personal information to continue. I was gonna playlist it and add it to the readme to help people understand it better.

@JK_ The error with the restore not working, which was described here:
has apparently crept back in.

Tested with the current source code. I have attached the log file. I deleted the old log file before attempting to restore game saves in order to obtain a clean log file.
I'll try checking it out later. The only clue that gives is maybe the first line. The other two are because the remote storage isn't setup.
 
  • Love
  • Like
Reactions: impeeza and Muxi
I'll try checking it out later. The only clue that gives is maybe the first line. The other two are because the remote storage isn't setup.
Thank you for looking into this. However, the issue does not occur in version 08.18.2025, which you attached in post #548. Perhaps this will help to identify the cause. Something must have reactivated the issue in the current rewrite source code (445 commits).
 
  • Like
Reactions: impeeza
Thank you for looking into this. However, the issue does not occur in version 08.18.2025, which you attached in post #548. Perhaps this will help to identify the cause. Something must have reactivated the issue in the current rewrite source code (445 commits).
It is possible it's something else too. I made some changes to one of the libraries sitting underneath JKSV so I could do this instead of what I was doing:
C++:
for(const fslib::DirectoryEntry &entry : directory.list()) { }
Giving it a run through is probably the best idea too. Even just making those videos made me catch a few things I overlooked.

@Muxi
I ran a few small tests and I can't duplicate it. Can I ask what game specifically, or, is it all of them? I've tried it repeatedly with Super Mario Wonder and it works without fail for me every time. I also tried both backup modes too. Neither of them are giving me any trouble. There was a small bug I fixed in the library before that led to it not detecting directories correctly, but as of now, it's not doing it for me.
 
Last edited by JK_,
Can I ask what game specifically, or, is it all of them?
I always test with Dark Souls Remastered and only became aware of the problem through a member of my forum. However, I am happy to test with another game.

Edit:
I can confirm that it works with Super Mario Bros Wonder. But why not with Dark Souls Remastered? I will also find out which title did not work for my forum member. I have attached the log file from the last test here again.

Edit2:
I also tested it with Mario vs. Donkey Kong. Same problem as with Dark Souls Remastered, with the following difference. Right at the beginning, I created and dumped save 1, then continued playing and created and dumped save 2. Then I restored save 1, which worked. Then I restored save 2, but save 1 was loaded instead. I have also attached this log below as “JKSV2.rar”.

I created and dumped additional saves as I progressed through the game. Regardless of which save I restore, save 1 is always loaded.
 

Attachments

Last edited by Muxi,
I always test with Dark Souls Remastered and only became aware of the problem through a member of my forum. However, I am happy to test with another game.

Edit:
I can confirm that it works with Super Mario Bros Wonder. But why not with Dark Souls Remastered? I will also find out which title did not work for my forum member. I have attached the log file from the last test here again.

Edit2:
I also tested it with Mario vs. Donkey Kong. Same problem as with Dark Souls Remastered, with the following difference. Right at the beginning, I created and dumped save 1, then continued playing and created and dumped save 2. Then I restored save 1, which worked. Then I restored save 2, but save 1 was loaded instead. I have also attached this log below as “JKSV2.rar”.

I created and dumped additional saves as I progressed through the game. Regardless of which save I restore, save 1 is always loaded.
When did you build it? There was a typo I fixed a couple of days ago that would make something similar happen. I was trying to make sure Switch and 3DS were as 1:1 as they could be, but in my haste, I typed the wrong operator in the Switch code and that made it unable to detect directories correctly. I noticed it shortly afterwards and corrected it.
 
Do you mind running my latest build? I have a couple of other people that are going to try to duplicate it too, but I can't. I've tried both backup (directory and ZIP) back and forth and it just works for me.
 

Attachments

  • Like
Reactions: Muxi and Tyvar1
Do you mind running my latest build?
This is identical to the build I created. However, I tested it with your build anyway, but the problem persists. I tested it again with Dark Souls Remastered and also with Mario vs. Donkey Kong.

Can someone else please test this with the latest build from @JK_, preferably with the two titles I used for testing? It can't be that it only doesn't work for me. I'm on the latest commit build of Atmosphére v1.9.3 and my emuMMC partition is on FW 20.3.0.

Edit:
I back up and restore all game saves exclusively in zip format.
 
Last edited by Muxi,
This is identical to the build I created. However, I tested it with your build anyway, but the problem persists. I tested it again with Dark Souls Remastered and also with Mario vs. Donkey Kong.

Can someone else please test this with the latest build from @JK_, preferably with the two titles I used for testing? It can't be that it only doesn't work for me. I'm on the latest commit build of Atmosphére v1.9.3 and my emuMMC partition is on FW 20.3.0.

Edit:
I back up and restore all game saves exclusively in zip format.
I pulled a random Dark Souls save from here and tried restoring it. There is something flaky going on with it. I'm not sure what. I caught something else too. I'm looking into what it could be.

@Muxi
Run the build I'll attach. It has some extra logging lines in the code. I'm noticing something really odd, but I'm not sure what it could be...
 

Attachments

Last edited by JK_,
  • Like
Reactions: Blythe93 and Muxi
With this build (08.24.2025), the affected game saves (Dark Souls RM & Mario vs Donkey Kong) can now be restored properly again. What else did you change besides the extra logging lines to make it work again? Here is the log file:
 

Attachments

Last edited by Muxi,
  • Like
Reactions: Blythe93
With this build (08.24.2025), the affected game saves (Dark Souls RM & Mario vs Donkey Kong) can now be restored properly again. What else did you change besides the extra logging lines to make it work again? Here is the log file:
I tweaked the logic ever so slightly to use the FS library's Path.is_valid() function before counting it as a failure and bailing from the whole process. It wasn't the same bug as last time.

There was also something flaky going on. I downloaded a random Dark Souls save I found on this place and tried using that to test instead of actually playing the game (I don't have time). It kept hanging on the title screen with something like "Processing save data..." in the upper right corner. I couldn't figure out what the problem was though and just left it go. I don't know what the save was backed up with, so for all I know, they used something besides JKSV and that caused some kind of corruption to begin with.

Basically, as long as JKSV's rewrite works with backups it made itself and its old self, I think it's good to go. I'm getting tired of just sitting on it. File mode and path filtering isn't implemented yet, but I doubt a lot of people use that stuff anyway. I think the release is needed. Between the automatically invalidating cache and being able to toggle scanning system saves on and off, the boot time can literally take less than a second now.

I put all that effort into that load screen for the split second its there.
 

Site & Scene News

Popular threads in this forum