[Tutorial] Bring your WiiU GBA Saves to 3DS GBA VC

Discussion in '3DS - Tutorials' started by Sonlen1414, Mar 18, 2017.

  1. Sonlen1414
    OP

    Newcomer Sonlen1414 Newbie

    Joined:
    Feb 24, 2017
    Messages:
    5
    Country:
    United States
    EDIT 4: Down below has data on N64 extraction, not quite 3DS relevant, but it was in the same process.

    So this guide is here after a good chunk of research and trial and error, I have successfully converted a few WiiU GBA VC saves to run on the 3DS GBA VC Injects, it may not be something many of you will use, but I wanted to continue my saves and not start over, and I am sure there are many other who do as well, so I figured I would post a guide on how I did it. Please keep in mind this is my first guide I have ever put together so I apologize for any formatting, I can try and work in smoothing it out later a well.

    Now before we get started, you are going to need a few things.

    • A WiiU with CFW on it to be able to access the saves with a FTP client such as FTPiiU. (Saviine may work, but due to having a NAND memory error, I cannot test it without help from someone else)
    • An emulator on PC, I reccommend using VBA as that is what I used the entire time.
    • A hex editor, my program of choice is HxD, but as long as you can view hex offsets and edit the files you will be fine.
    • And of course, the matching GBA VC Inject on your 3DS, with Decrypt9 as a payload.

    Step 1.
    Now to get started, you will be accessing your WiiUs file system with a FTP client, I won't go into details on how since there are probably many guides on that already. You will also need to find your games TitleID, a quick google will get you that, and if you are using a GBA Inject on WiiU, I really don't know what to say there, and I have yet to test anything like that, but I am sure the process works if you can find the TitleID.
    Once you have full access to the WiiUs file system you will need to navigate to
    storage_mlc/usr/sav/00050000/(gameTitleID)/user/80000002/
    In this folder, you will see 3 files (2 if you never booted the game), data_008_0000.bin is the file you are looking for, also note it is the smallest of the files in this directory, extract that to a safe place you can find easily.

    Step 2.
    Now, this step might be redundant in some cases, but I found it was the only way I had 100% import rate on Megaman Battle Network games after about 25 hours of messing around. So you need to use VBA to open your backup used to create your VC Inject and just really load it, go to title screen, do whatever it takes to get a .sav to appear in the same folder, then you are done with VBA for the time being.

    Step 3.
    Now the real fun begins, time to open up that .bin we just obtained as well as the VBA .sav we just made in your Hex Editor of choice. You really just want to highlight the entire vba.sav and find out its exact size, in HxD at the bottome you will see Length, make note of this.

    Now on the .bin you will see a whole bunch of, well, hex characters, you will need to go to the offset 00004080 (This was tested using a handful of games from different series, so I assume it is the same all around, but there may be a change) and highlight DOWN until your highlighted portion matches that of the length of the vba .sav, once you match it, copy it all, then paste it OVER the save made with vba, if you did this right, you will 100% overwrite what already exists, leaving a basically new save, of the same exact size. You can save the overwritten save and test launching it in VBA, if you did it right, it will load where your WiiU does as well.

    Step 4.
    Now we are going to be working on injecting to the GBA VC on your 3DS, so now you might want to just make a copy backup of the save we just edited, and then name it (or the original) gbavc.sav. Now on your 3DS SD card, put the now named gbavc.sav inside the files9 folder, reinsert the SD or close FTP, however you got it there, and then go launch your 3DS GBA game. Now if you already have a save there, you WILL lose it, we can back it up using Decrypt9 before we inject the one we just converted from WiiU use, make sure there is some sort of save there, make a new file, make sure Continue is there, this way if the inject works but fails to load, it will just show a blank new game, no continues or anything, and if it fails to inject, then we will see what we left there in the first place. (common using Decrypt9 Injection unfortunately)

    Skip to Godmode9 if you have that instead of Decrypt9 v


    Now if you already have a save there, you WILL lose it, we can back it up using Decrypt9 before we inject the one we just converted from WiiU use, make sure there is some sort of save there, make a new file, make sure Continue is there, this way if the inject works but fails to load, it will just show a blank new game, no continues or anything, and if it fails to inject, then we will see what we left there in the first place. (common using Decrypt9 Injection unfortunately)

    So first thing is first, load the game, get to title screen, then close the game and power off and then boot into Decrypt9. Once it boots up, choose SysNAND Options>Misc>GBA VC Save Inject, put in the button combination, then select gbavc.sav, once that is done, press Start to reboot and test out the game. (If you want to save your current GBA save, just select dump and choose a different name, then inject after)

    Godmode9 ONLY, skip this if you already injected using Decrypt9

    This is actually quite a bit easier. First thing is first, boot up Godmode9, if you want to backup the save currently on the 3DS go to S:/ and find the gbavc.sav, hit Y and then B, scroll up to SD, and press Y to paste it to the root. Now go into the Files9 folder where your gbavc.sav is (it HAS to be named that for this method) and press Y to copy it, go back to the S:/ drive and press Y again to paste, and A to overwrite. when it is done just press start to reboot!


    If all went well, you should now have your WiiU games save playing on your 3DS! Enjoy that!

    Now there are some cases it seems that doesn't appear to work very well, The Legend of Zelda - The Minish Cap has been giving me no end of issues trying to import it, I will be continuing to work on figuring out a bit more and see why that game, and probably others, aren't being friendly, and it might just have to do with a save header I managed to miss, or something small.

    Thanks for reading! And enjoy your (hopefully working) saves where you left off!

    Edit 1: After thinking for a minute, you can probably reverse the process and copy the 3ds save into the WiiU 140-something-kb file at the 00004080 offset and continue back on WiiU.

    Edit 2: So I discovered why Minish Cap was not working, and most likely it won't be the only game to do it, not sure if editing the VC Inject itself would make a difference on how it saves, I have no clue why it would, as the same backup was used on VBA as was used in the actual GBA Inject, and the VBA loads the WiiU save just fine. Anyways, the point is, the WiiU GBA VC seems to scramble the data, probably in sets of 16 hex values (I forget the exact size, 32bytes maybe?) and the 3DS GBA VC doesn't, as seen in [this](http://imgur.com/a/8EkpQ) image. So without a lot of manually moving pieces around, it definitely won't be easy to do unfortunately.

    Edit 3: So after talking with u/TiredKorok on Reddit, he managed to get a program together that will actually flip all the bytes to where they need so the GBA VC save for The Legend of Zelda - The Minish Cap to work! And assuming other games nay have the same "encryption" this SHOULD work for them as well, if you have a game that keeps injecting corrupted feel free to let me know in a PM or something.

    Anyways, the program is super simple, put it in the same directory as your save from the Emulator, type in the name of the save inside the program (For example, Minish Cap.sav) and press enter and BAM, you now have a file called flipped\_gbavc.sav. Just remove the flipped_ part so it is JUST gbavc.sav (we did that in case you had a gba.vc save in the same location so it doesn't interfere) and just inject it using Decrypt9!


    Edit 4: So this isn't quite 3DS related, but going through Step 1 to get to a N64 save, it appears that you can just copy the save to your emulator of choice (hopefully), I used PJ64, and just rename the smallest file from the WiiU to whatever the name of the save is in the Saves folder of you N64 emulator, including file extensions. I ONLY was able to test with 2 games as those are all I had atm, but they both worked with a copy/paste/rename, I have heard about a couple Injects not working, but as far as actual eShop N64 VC games I haven't heard anything different.

    Edit 5: Removed part of a step I discovered was not needed, should speed the process up just slightly on the 3DS side.

    Edit 6: Another small update, since 3ds.guide was updated to use Godmode9 instead of Decrypt9, I figured I would update the guide to how to use it as well.
     
    Last edited by Sonlen1414, Mar 23, 2017
    driverdis likes this.
  2. driverdis

    Member driverdis I am Justice

    Joined:
    Sep 21, 2011
    Messages:
    2,202
    Location:
    1.048596β
    Country:
    United States
    Nice tutorial

    Someone will probably complain about there being a lack of screenshots stuff but I don't care, I have been following text only tutorials for years now.
     
    Last edited by driverdis, Mar 18, 2017
  3. Sonlen1414
    OP

    Newcomer Sonlen1414 Newbie

    Joined:
    Feb 24, 2017
    Messages:
    5
    Country:
    United States
    Thanks! Screenshots weren't even something that crossed my mind honestly, it really is just a bunch of options that I don't feel would be any clearer with images.
     
    Last edited by Sonlen1414, Mar 18, 2017
  4. bootmonster

    Member bootmonster GBAtemp Regular

    Joined:
    Oct 26, 2002
    Messages:
    196
    Country:
    United Kingdom
    You may need to byteswap the save file in some cases. To get Medabots to work for example I had to byteswap the save file.
     
  5. Sonlen1414
    OP

    Newcomer Sonlen1414 Newbie

    Joined:
    Feb 24, 2017
    Messages:
    5
    Country:
    United States
    I actually need to update this guide here, I got Minish Cap working a few days ago and updated my Reddit post, totally forgot about over here, you are right about byte swapping as well.
     

Share This Page