Homebrew svdt: save data explorer/manager

QCLasky

Pro cat lover
Member
Joined
May 21, 2009
Messages
777
Trophies
1
XP
1,035
Country
Portugal
Can I set as a target and edit its save on nintendo id, mii plaza, eshop, etc.. I cant backup them using save data manager
 

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
Can I set as a target and edit its save on nintendo id, mii plaza, eshop, etc.. I cant backup them using save data manager
You can set it as a target, but I don't think you'll have much luck getting access to it.

Rule of thumb: if it doesn't work on save_manager, it probably doesn't work on svdt. Ultimately they rely on the same kind of access.
 

SomeGamer

Well-Known Member
Member
Joined
Dec 19, 2014
Messages
6,827
Trophies
1
XP
4,912
Country
Hungary
The problem with making it optional is that we don't know out-of-the-box which games glitch svdt out. So if you were trying to restore an older save for SSB, for whatever reason, then you wouldn't even get the prompt dialogue.

I was looking at your fixer page for offsets and games, but didn't realise you actually had the source somewhere as well. I'll take a look at some point.

Conversations were disabled on my profile. They should be enabled now.



You don't actually need to put it anywhere for the time being. In theory it's supposed to go in the same folder as svdt, and you could update it for future games without having to update svdt. I haven't actually tested using that file, though.
Thanks! But why did you put Smash to the problematic games? I've never had any problems with it.
 

dedChar

(ノಠ益ಠ)ノ彡┻━┻
Member
Joined
May 5, 2015
Messages
260
Trophies
0
XP
178
Country
Gambia, The
I tried svdt on The Binding of Isaac: Rebirth in emuNAND on 9.5. The version of the game I have is cryptofixed and I don't have updates installed.
Some people on 9.9 reported, that for this game, they only get a red screen. Their version is obviously not cryptofixed and updates are most likely installed.
Any help?
 

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
Thanks! But why did you put Smash to the problematic games? I've never had any problems with it.

Some people seem to. Same with ACNL—I can't get past the glitchy screen on my N3DS, but other people seem to be able to. This business is just really flaky with certain games.

I tried svdt on The Binding of Isaac: Rebirth in emuNAND on 9.5. The version of the game I have is cryptofixed and I don't have updates installed.
Some people on 9.9 reported, that for this game, they only get a red screen. Their version is obviously not cryptofixed and updates are most likely installed.
Any help?

Sorry, no plans to support games that use SEEDDB.

In fact, I think I'm going to freeze features pretty soon, and focus on making sure all the features that made it in work okay. However, if anyone would like to submit pull requests with new features, I wouldn't necessarily be averse to it.
 

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
tumblr_nue6kyv68R1tre0pho2_540.png

tumblr_nue6kyv68R1tre0pho1_540.png

Well, I think I've finally got Rumble World secure value handling right. (I was too lazy to dump all the files back after reinitialising save data, and just got the message above, which I thought was interesting. Then I deleted /00slot00/, copied over my backup 00slot00/, and Rumble World didn't complain about corrupt data at all.) The relevant changes are relatively minor, and we are now at v0.3.
 

ryuragnas

3DS FC: 0173-2593-8777
Newcomer
Joined
Jun 2, 2007
Messages
53
Trophies
1
XP
334
Country
I have a question: I have tried (unsuccessfully) to back up Little Battlers eXperience (AUS Ver.) with both this and Save Manager by profi200. They both fail to load, with a black upper screen, and a red lower screen. Using IronHax on O3DS 9.9.0-26E, with the game being bought from the eshop. Is there any chance of SVDT being updated to support this game? I would hope so, but if its not possible, then I will just have to play it normally. Was really hoping to be able to edit money, if I could find the offsets...
 

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
866
Country
Have you tried the emergency mode?
Also, sometimes when loading a homebrew it will freeze, did you try it more than once?
 

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
Someone can compile the latest version ? I tried by myself but i failed
Make sure you have 3ds_portlibs installed. zlib is now a dependency because of Rumble World save data.

I have a question: I have tried (unsuccessfully) to back up Little Battlers eXperience (AUS Ver.) with both this and Save Manager by profi200. They both fail to load, with a black upper screen, and a red lower screen. Using IronHax on O3DS 9.9.0-26E, with the game being bought from the eshop. Is there any chance of SVDT being updated to support this game? I would hope so, but if its not possible, then I will just have to play it normally. Was really hoping to be able to edit money, if I could find the offsets...
I'm not overly familiar with this, but since it's an incredibly new game, it's incredibly unlikely to be supported anytime soon. (Seems like you're not even getting to a glitched screen, which isn't promising.) I don't have games that new to mess around with, so unfortunately it's very unlikely I'll be able to really support anything past June or so. The main problem is that I don't think the ninjhax2 backend for accessing the save data can support it anytime soon, and that's entirely out of my hands.

Even if it were possible to load svdt or save_manager with LBX as the target, it's possible the data is encrypted, since, again, this is a newer game.
 
Last edited by meladroit,

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
Could you make it so the program sorts the files/directories by name rather than in the order that it reads them? It would make it easier to find everything.

Sorting files alphabetically may come, but it's not a priority at the moment.

Since I'm not sure where svdt can go from here feature-wise, it turns out this suddenly became the highest priority of the moment. v0.3a is now on GitHub, and gives you the option of sorting files by name. Press SELECT to switch between sorting by date (or at least filesystem load order) and sorting by name. Directories are always listed before files.

The feature freeze is near, though. svdt was always meant to go only marginally beyond a proof of concept, and I think at this point it's proven whatever concept it was trying to prove.
 

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
Easily the best save manager for homebrew. Other than the issues with certain games (ninjhax issue) it does pretty much everything you could want it to do. Thanks!
 
  • Like
Reactions: SomeGamer

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
866
Country
Great! I'm gonna look at the source right now, after 3 days trying to add sorting without look I'm very curious about how you did it. I implemented a bubble sort, not even separating by filename yet, and for some reason couldn't make it wor, so frustating.

I have a request though: MORE confirmation PROMPTS. I've used this yesterday and found that deleting/overwritting things is pretty easy. Several sugestions:
- Doble X to delete: that's a nope for me, the second press should be something counter-intuitive imho, like START.
- Confirmation before restoring a savegame: just the same as before, this time a bad press can make you loss your progress.

For those confirmations, some kind of popup dialog. For this I would use scape codes to create a black rectange in top screen, with the confirmation text, then reprint top screen after user makes a selection.

I think this will make the app more user friendly and dumb-safe (and anyone can make a mistake). Also, I've read the wiki, but I didn't get it clearly how secure value autodetection is made, it asumed to me that it makes much assumptions. Does svdt use those assumptioms to prompt for applying ASR patch?

EDIT: I'm reading that svdt prompts when copying and overwriting, but not for directories. That may be a problem for savegames that use direcotries like PRW and SSB and my request confirmation suggestion was referring to that.

BTW, SSB. demo also has antisavegame restore and uses the same files as SSB for the savegame. I'll use that to confirm the secure value location, seems to be exactly at the same place.

EDIT: maybe a good safe measure would be not allowing direct savegame manipulation wihtout prompting the user, just be able to restore/backup the whole savefile

UPDATE: I made a pull request on the repository, I made sorting case insensitive (like sorting in modern OS) and changed default sorting to alphabetic.
 
Last edited by suloku,
  • Like
Reactions: QCLasky

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
I have a request though: MORE confirmation PROMPTS. I've used this yesterday and found that deleting/overwritting things is pretty easy. Several sugestions:
- Doble X to delete: that's a nope for me, the second press should be something counter-intuitive imho, like START.
- Confirmation before restoring a savegame: just the same as before, this time a bad press can make you loss your progress.

For those confirmations, some kind of popup dialog. For this I would use scape codes to create a black rectange in top screen, with the confirmation text, then reprint top screen after user makes a selection.

I think this will make the app more user friendly and dumb-safe (and anyone can make a mistake). Also, I've read the wiki, but I didn't get it clearly how secure value autodetection is made, it asumed to me that it makes much assumptions. Does svdt use those assumptioms to prompt for applying ASR patch?

EDIT: I'm reading that svdt prompts when copying and overwriting, but not for directories. That may be a problem for savegames that use direcotries like PRW and SSB and my request confirmation suggestion was referring to that.

BTW, SSB. demo also has antisavegame restore and uses the same files as SSB for the savegame. I'll use that to confirm the secure value location, seems to be exactly at the same place.

EDIT: maybe a good safe measure would be not allowing direct savegame manipulation wihtout prompting the user, just be able to restore/backup the whole savefile
  • I think the request to use a different key for confirmation responses is reasonable. Since START is meant to be an unconditional quit, SELECT might work better. What I'm thinking, actually, is that we want to use touch input on the lower screen for confirmation ...
  • Throwing a multi-line popup on the upper screen would obstruct the user view of the directory listings, which I would personally argue is less user-friendly. We may as well use both screens when we have them. I wouldn't be averse to a little indicator like 'Selected action requires confirmation. See lower screen.' somewhere, though.
  • I absolutely agree that it's problematic not to prompt to confirm overwrites when a whole directory is being copied over. But for something like Rumble World, where you have 149 distinct files in /00slot00/, I think it would become quite the hassle to confirm every single overwrite. It may be necessary to run a quick checksum to check if a file was left unchanged, so that the user isn't prompted for such files (and it would save svdt some work too). That could just be thrown into detectOverwrite somehow.
  • I feel like we're running into an awful lot of prompts here. I'm personally in favour of a slicker user experience, and I think there are enough safeguards in place (although their implementation is debatable). Since svdt catches running out of space on the save file and prompts you before enabling anti-ASR, there isn't too much permanent damage that can be done.
  • One thing that should really be added is automatic backup once the target title is known. I think this would ameliorate a lot of these concerns. Wrong secure value used? Reset your save file, fetch the new secure value, and use that to restore from the last automatic backup. Accidentally overwrote a file you shouldn't have? Restore it from the last automatic backup. Accidentally overwrote the whole directory? Restore it from the last automatic backup.
  • Another problem is that svdt doesn't explicitly check for free space left on the target filesystem before attempting a copy or overwrite, which is mostly why that fatal error handling is in place. It should really be quite trivial to implement ...
I think this is a good time to go over some details of the anti-ASR implementation in svdt.
  • svdt does make a lot of assumptions to deduce the ASR game ... iniitially. These assumptions are listed on the wiki, but to reiterate:
    • ACNL is the only game with /garden.dat. Reasonable, I think—even AC:HHD doesn't have that, I believe.
    • SSB is the only game with /account_data.bin and /system_data.bin. Maybe tenuous, but SSB is also a game that needs emergency mode for some/many/most people.
    • Pokémon X/Y has a /main file smaller than the OR/AS ASR offset.
    • Pokémon OR/AS has a /main file larger than the OR/AS ASR offset. (These last two assumptions will certainly need to be altered for future Pokémon releases.)
    • Pokémon Rumble World has /00slot00/00main.dat with its cAVIAR4\x00 identifier in the header. I think this is quite safe, although even if I'm wrong, Rumble World requires special handling anyway.
    • (Note that Pokémon Shuffle is not guessed at in any way, since savedata.bin has an extremely generic filename, and the game cooperates well enough with svdt that an emergency restore is unnecessary.)
  • However, these assumptions do not take precedence over the user target title selection result, which is what svdt uses when it prompts to enable anti-ASR. In fact, the initial filesystem-based ASR guess is then replaced with a proper deduction from the product code (which can only be obtained when the user selects the target title with its associated title ID). With asr.dat you can specify any number of different files and offsets for a given product code, and these override the built-in information that svdt has, so svdt isn't even reliant on my continually updating the svdt codebase for new known offsets. Furthermore, even in emergency mode, you can put a /svdt_sv_data file at SD root, which will override any internal guesses svdt wants to make. There is an example asr.dat in the git repo, and svdt_sv_data simply omits the productCode column (it's meant to only describe the current target game).
  • I didn't realise the SSB demo actually had save data. It's probable that in emergency mode, it looks exactly the same to svdt as retail SSB. In interactive mode, however, it will fail to check out against any built-in product codes. Still, it'd be a matter of throwing asr.dat in /3ds/svdt, copying over the lines for SSB (CTR-P-NXC?) and altering the product code.
Again, as I said before, svdt was only ever meant to go marginally beyond a proof of concept (where I suppose that concept was to reverse-engineer tdvs), and I regret not disclosing this clearly from the outset. In fact, here are my own requests for svdt:
  • Implement an interface that doesn't rely on console text. Managing all the consoleWindow instances is painful, and frankly text.c and text.h are extremely hackish. It would be better to have a proper typeface with proper icons and proper buttons (especially on the lower screen).
  • Always automatically fetch the target title ID. This is impossible at the moment, as far as I know. NS/APT thinks we're home menu (0x101) rather than an actual app (0x300), so it won't help us. (Isn't there some way for 3ds_hb_menu to pass the selected title ID to the 3dsx? I don't even care if it's as hackish as a text file at SD root.)
  • Create a framework for file and directory listings that's actually usable by other projects coded in pure C. The hacked-up expanses of code that svdt uses for filesystem stuff really aren't very readily maintainable.
But frankly, the chances of these requests ever being met are zero. Not even slim—actually nil. Implementation of the above would simply take far more energy that I am able to spend on this.
 

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
866
Country
Great explanatory post, I agree with all of it. Btw I guess you didn't see my edit about the pull request, because was editing at the same time you posted.
(Isn't there some way for 3ds_hb_menu to pass the selected title ID to the 3dsx? I don't even care if it's as hackish as a text file at SD root.)
That is definitely possible, hbl loads all files with argument support, I'm quite familiar with hbl now due to my work in modding it, it would be easy to detect that svdt is being launched (i.e. by using the smdh file) and pass the title as an argument when loading.

There was full argument support with netloader booting, but for some reason it is disabled in the latest source, but argv[0] is still the booted .3dsx file path.
 

meladroit

Active Member
OP
Newcomer
Joined
Sep 1, 2015
Messages
42
Trophies
0
XP
113
Country
United States
Great explanatory post, I agree with all of it. Btw I guess you didn't see my edit about the pull request, because was editing at the same time you posted.

That is definitely possible, hbl loads all files with argument support, I'm quite familiar with hbl now due to my work in modding it, it would be easy to detect that svdt is being launched (i.e. by using the smdh file) and pass the title as an argument when loading.

There was full argument support with netloader booting, but for some reason it is disabled in the latest source, but argv[0] is still the booted .3dsx file path.

I did see your pull request—I had a quick comment on it.

So you could just mod the homebrew launcher to throw titleID in argv? Makes sense.
 

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
866
Country
I did see your pull request—I had a quick comment on it.

So you could just mod the homebrew launcher to throw titleID in argv? Makes sense.
Didn't notice the github notification, sorry. I'm sending you a modified hbl that takes command line parameters from netloading, so you can test on your side.
 

ismanuel

New Member
Newbie
Joined
Sep 10, 2015
Messages
1
Trophies
0
Age
31
XP
41
Country
United States
so when i enter homebrew i try genning some pokemon for oras right so i go to the save manager to back up my save data but when i click on save manager all i get is a black screen saying could not access save data archive press x to exit what should i do?
 

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
866
Country
so when i enter homebrew i try genning some pokemon for oras right so i go to the save manager to back up my save data but when i click on save manager all i get is a black screen saying could not access save data archive press x to exit what should i do?
This thread is for a different homebrew.
But to restore you can only have in folder savedataBackup the savefile you want to restore. If you have more problems, ask in the save manager thread or try svdt.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=mA-vTRfE_x0