Homebrew RELEASE JKSV (save manager) for Switch

  • Thread starter Thread starter JK_
  • Start date Start date
  • Views Views 202,073
  • Replies Replies 633
  • Likes Likes 27
Hi!
I want to backup saves in emunand and restore them in sysnand.
How safe is it to do this via JKSV? Does anyone have any experience? I don't want to be banned.
You should be fine. I've actually been writing the rewrite on an always online system that doesn't even have an emunand, crashes, bugs, borked saves uploaded to NSO and everything else in between. Still fine. No ban. They might be able to tell, but I don't think they care. Been like this for months. My OG dev Switch is starting to eat its battery alive in sleep mode so I kind of have to use the spare.
 
Ah gotchu! Well Im in no rush so I'll wait for the rewrite to finish! But just want to know, does that feature suppose to work on the latest version or is my problem common? So just to be clear, emuNand has a game installed were sysNad doesn't. So when I export SVI of a game thats not on my sysNand and then try to import that SVI on the sysNand, the ? icon appears. Is this not the intended feature? Does the save file have to already been created for me to import any save, or is it possible to create a save file of a game thats not in the sysNand if i have it already on the emuNand?
Any ideas @JK_ ? Im mainly just talking about the latest release, I know that the rewrite will handle things differently.
 
Any ideas @JK_ ? Im mainly just talking about the latest release, I know that the rewrite will handle things differently.
The reason for that is exactly what you said in the original post: Your sysnand doesn't have the game installed. It doesn't exist in the console's application records there, so the system defaults to the ? icon. The only way to really fix it would be to import the title to the application records if it doesn't exist there already, but that's where stuff starts getting messy and I wouldn't want to risk it, if that makes sense? Even if the game isn't pirated, just it showing up there like it was might raise red flags is what I'm getting at.

I did a test run, and the crash you described is actually caused by the rewrite code trying to read SVI files of the master branch by the way. I need to make some changes to how some of this stuff works. Writing that save meta reader and reading the values from some of this stuff is getting interesting to say the least. Most account saves should be fine, but other types... That's where it starts getting interesting.
 
The reason for that is exactly what you said in the original post: Your sysnand doesn't have the game installed. It doesn't exist in the console's application records there, so the system defaults to the ? icon. The only way to really fix it would be to import the title to the application records if it doesn't exist there already, but that's where stuff starts getting messy and I wouldn't want to risk it, if that makes sense? Even if the game isn't pirated, just it showing up there like it was might raise red flags is what I'm getting at.

I did a test run, and the crash you described is actually caused by the rewrite code trying to read SVI files of the master branch by the way. I need to make some changes to how some of this stuff works. Writing that save meta reader and reading the values from some of this stuff is getting interesting to say the least. Most account saves should be fine, but other types... That's where it starts getting interesting.
oh interesting! I was just confused on how that feature was explained cause in your github page you said "These are to create save data for games not currently on the system." But in reality the game has to be loaded at least once in the system for it to work properly. I can see why it could be risky to update the applications records. So at the end of it all that save file still needs to be created once by the system and then you can use jksv without issues.

Im glad I shared that issue with you! Yeah it really caught me offguard cause when doing my test for importing the SVI to sysNand, I got that crashed on the sysNand side.... I hope i dont get banned but I've connected to the shop and been online for a few days without issues so i think im good? :unsure:
 
  • Like
Reactions: impeeza
@Commercial-Magician
It was a while back, but I had a buddy run a small program that just whipped through his system and exported everything he had for me to test it. I remember using it to get some of the Pokemon in Brilliant Diamond, because I never bothered with Let's Go Eevee and Pikachu, and it worked for that without me having either of the games. I've never tried it with Pokemon Home or anything like that though. I'm not sure what the limitations of it are if I had to be honest. It was just something people were asking for here and there and I did it best I could at the time?
 
Oh gotchu @JK_ ! Yeah it would be interesting to see if thats could be looked at for the rewrite your working on! If you need help with testing let me know! I would assume that if it worked for Diamond, then it would probably work for home. Thats if, the time when it was working, that save file was viewable in Data Management. I can't think of a reason not to work.
 
  • Like
Reactions: impeeza
Hey there!
I have configured the Remote Instructions exactly as the document suggests for google drive. Now, when I open the app, it says system update required. I have deleted and rewritten with the latest nro on github several times; but it keeps saying it. I am on Firm 19.0.1 system.
Also, I grabbed the nro on this thread from 5/31/25 and it doesnt have the update pester anymore; but it doesnt prompt to login either. Not sure what to do.
Post automatically merged:

Hey there!
I have configured the Remote Instructions exactly as the document suggests for google drive. Now, when I open the app, it says system update required. I have deleted and rewritten with the latest nro on github several times; but it keeps saying it. I am on Firm 19.0.1 system.
Also, I grabbed the nro on this thread from 5/31/25 and it doesnt have the update pester anymore; but it doesnt prompt to login either. Not sure what to do.
 
@pitchdrk
That's because it's trying to open the web browser to let you log in. That's actually what I'm working on now. Once webdav is out of the way, I'm hoping things speed up a bit. I didn't write WebDav to begin with and if I had, it would probably work better if I had to be honest. Rewrite code doesn't login through the browser so this won't be an issue.
 
So, I'm finally getting somewhere with the WebDav code. I'm figuring this time around since I'm doing it all myself from scratch it'll work better. Some of the major changes I've made:
  • Namespaces within the XML responses are ignored completely. In the old code, they were extracted and concatenated into strings to get tags and elements with tinyxml2? Not really sure why either? My way might be more work, but it should be able to handle any server type?
  • The file and folder listings are recursively loaded from the server at boot to avoid two issues. First is servers that block Depth: Infinity. Second is awkward pauses while using the UI. The old code fired off requests for everything? I don't like doing that.
  • Constantly allocating and duplicating curl handles has been removed.
  • No more memory leaks.
That's it so far. Another change I'm going to make is this: When I first wrote the Drive code, I used the full UTF-8 titles for it. The author of the WebDav code changed this so they both use the path safe version of the title. Drive is going back to full titles once I'm done. The author of the WebDav code just disappeared after writing it and making a few tiny fixes. It's being completely rewritten by me now. It'll probably work way, way better now. I didn't like his attitude when it came to git issues either if I had to be honest.

Once WebDav is done and I get the whole system figured out, I'll start considering prereleases of the rewrite code with some missing features like file browsing mode.
 
Thank you. It's taking a while, but I'm thinking a week, maybe a week and a half before the first prerelease version of the rewrite code. It's probably not going to be perfect by any means, but it'll work.

It's only after rewriting the project that I realized JKSV is a lot more complex than I give myself credit for. I also implemented the Auto Upload option (finally). Besides the initial backup and download when restoring, it can pretty much operate completely from Google Drive or WebDav at this point. I've also reimplemented the original way of logging into Drive just in case. It has both now, the TV/Device method and web browser. The reason for this is how weird Google has become and how limiting they are with methods and scopes. I find it really ironic too: Jigsaw puzzle app that wants to rob Grandma's account of all her information and her social security number? Sure! Guy wants to integrate Drive into an open source C++ Switch project? Must be a criminal trying to steal information.
 
Guy wants to integrate Drive into an open source C++ Switch project? Must be a criminal trying to steal information.

Bastards, there is no single reason not to trust you!
371350.jpg

Take your time and thanks for your work :D
 
Thank you. It's taking a while, but I'm thinking a week, maybe a week and a half before the first prerelease version of the rewrite code. It's probably not going to be perfect by any means, but it'll work.

It's only after rewriting the project that I realized JKSV is a lot more complex than I give myself credit for. I also implemented the Auto Upload option (finally). Besides the initial backup and download when restoring, it can pretty much operate completely from Google Drive or WebDav at this point. I've also reimplemented the original way of logging into Drive just in case. It has both now, the TV/Device method and web browser. The reason for this is how weird Google has become and how limiting they are with methods and scopes. I find it really ironic too: Jigsaw puzzle app that wants to rob Grandma's account of all her information and her social security number? Sure! Guy wants to integrate Drive into an open source C++ Switch project? Must be a criminal trying to steal information.
Knowing very little about it, is connectivity to an SMB based network share something that could be done?
 
@l7777
If I, or someone else for that matter, can figure out how to wrap it inside a derived class from the same base class Drive and WebDav inherit from, yes. It's actually easier with the rewrite code to do so. That was actually one of the goals with the rewrite. Make adding more options easier. I was looking at dropbox too to see if that was possible a few days ago.
 
Hey JK, what happened to your guitar riffs? Where's your priority? :rofl2:

View attachment 516141
I actually forgot I even put that there. I had a buddy that heard me get mad, yell, and how deep and metally my voice just naturally is. We were going to record stuff. He's actually an audio engineer, but if fell through. I hope Youtube doesn't mangle the audio. I forgot to save a lossless version, but here:

I take breaks from JKSV and fiddle with it. Nothing too serious. I also don't have the time or money like the cool kids on youtube to cut it up and make myself sound better than I am. I guess I'm pretty old school like that.
 
Good news everyone:
It was one hell of a headache getting it to work on Switch, but I did it. I think I should sleep now. Just really happy I pulled it off!
@JK_

Hi JK,

Where can we find the new release of JKSV if it is completed and available to the public.
Thank you for your work.
 
@JK_

Hi JK,

Where can we find the new release of JKSV if it is completed and available to the public.
Thank you for your work.
It's not available yet. It's close though. Auto upload needs some more debugging and tweaks. I'll post here as soon as it's ready to go(ish). I hit a snag with some refactoring and revisions and lost two days of work a week ago. Everything seems to be running smoothly right now, minus the new bugs introduced with implementing auto upload.

First rewrite code release will be missing some stuff like file mode, but most of the core is finished and air tight in most cases. Errors are logged with the exact file and line they occurred on, same with FsLib underneath to make my life easier.

Rewrite is understating what this is. It says JKSV and looks like JKSV, but it's a completely different beast underneath, for real. It's not even in the same ballpark as the original code. I might add loading screen in the beginning. A few people that have had the rewrite think it isn't starting while it builds its cache and that is a problem.

Here's a video for anyone wondering:

So, yeah, it's definitely getting there.
 
Last edited by JK_,

Site & Scene News

Popular threads in this forum