Tutorial  Updated

Using your GBA savegames (.sav) on Wii U VC (.bin)

I was looking for a way to use emulator/cartridge-dumped GBA savegames on Wii U VC and ran into a whole lot of 3DS related and almost-what-I'm-looking-for guides with loose ends but to my surprise nothing that was specifically addressed to this scenario. After spending some time puzzling I eventually found a way that worked with most of my GB/GBA games (Golden Sun 1&2, Metroid, Pokemon Ruby/Emerald and also Zelda Oracle of Ages/Seasons, to name a few) and thought sharing it wouldn't hurt.

This Thread (/threads/tutorial-bring-your-wiiu-gba-saves-to-3ds-gba-vc.464919/) was very helpful, esp. step 1) & 3) of it and reading it before or alongside this won't hurt.

What's nice is that – aside from a Wii U running CFW, obviously – you don't need many tools/programs for the way I'm gonna describe (especially a relief when you're on Mac like me). All you need is FTPiiU everywhere on Wii U, a Hex editor on PC and a bit of knowledge on how to use these things; I hope you're familiar with FTPiiU and manually fiddling around in your Wii U & its savegame folders (/storage_mlc/usr/sav/00050000/10XXXXXX/user/8000000X/data_0XX_000X.bin) and that you're aware of the risks that come with doing so. As long as you don't touch any system folders or delete files like very_important_file_dont_delete_or_brick.dll you should be fine but most important is that you feel somewhat confident with what you do.

Simply put, you'll want to grab the internal GBA VC savegame file, (data_008_0000.bin) from your Wii U, feed it with data taken from your GBA .sav file and then copy it back.

Alright.
I'm assuming you've just installed your favourite GBA VC game/inject on Wii U and now want to use one of those 10+ years old .sav's you dumped from your original cartridges using an AR GBX back in the days when you were still young and life wasn't a friggin mess (or maybe you just want to continue that savegame you started on emulator earlier this week who knows):

1) Start the GBA VC game if you haven't yet (I'll be using Golden Sun as an example) to make the Wii U create the data_xxx_xxxx.bin files in its internal save folder. It's probably not necessary but depending on the game it might be helpful to play for a couple minutes until you're given the chance to save the game properly which will fill the savegame file with more and thus easier to find data.

2) Use FTPiiU everywhere and browse to Wii U's games save folder (In my case Golden Sun installed on USB: /storage_usb/usr/sav/00050000/[GAMEID]/user/8000000x/...) and grab the data_008_0000.bin to your Desktop; as mentioned above, a small part of this file contains the savegame. Ignore any other files such as data_012_0001.bin for now.

3) Now on your PC get a Hex editor and open the .sav file you plan to use (and make a copy of it before, just in case). The Golden Sun savegame looks like this (see Pic 1, all pictures at the bottom) – I don't know how other editors handle this but in my case, the info 10000 Bytes at the bottom is very important but any other form of information about the length of the file or the number of rows will also do I think.

4) Next open data_008_0000.bin on your PC also in a Hex editor. In the editor you now have to look for the section that "contains" the savegame. In most cases – apparently all GBA games – this section starts at offset 00004080. The best option is to have both the .sav and .bin file opened side by side and compare them if needed. It's helpful to know that offset 00004000 a few rows above will always say STATRAM0 (Pic 2) and that in some savegame files you can actually find readable stuff which makes finding it easier – in the case of Golden Sun I was able to see the names of my characters (I named them TEST#, ABCDE, BLAH~,... here) (Pic 3). This doesn't fully apply to GB/C games however, at least not to Oracle of Ages/Seasons where the section started at offset 00012090 for example.

5)
Now in the .sav file, select all, copy it, and then select the exact (!) same amount of data in the data_008_0000.bin file from offset 00004080 downwards (in the case of Golden Sun said 10000 Bytes from offset 00004080 to 00014070 (Pic 4)) and overwrite the whole section by pasting. Save and close the .bin file. Also duplicate it in case it gets messed up in one of the following steps so you don't have to do it all again. To double check, you could compare the file sizes of your new .bin file and the original one. It has to be exactly the same size, otherwise you did something wrong and it's most likely not gonna work.

6) Now comes what drove me crazy for hours; you can't simply put data_008_0000.bin back into it's folder because as soon as you launch the VC game, it'll restore an auto savestate (which has something to do with data_012_0001.bin I think) and overwrite your edited data_008_0000.bin. Deleting data_012_0001.bin right away isn't the solution either and will just lead to a black screen crash upon launching the game.. So here's what worked for me – don't ask why:
Leave the edited data_008_0000.bin on your PC for the time being, instead go to Wii U System Settings > Data Management and delete the save data for the game.

7) Go back to Wii U Home Menu, launch the game and as soon as the GameBoy Advance Logo comes in, press the Home Button and close the game again.

8) Time to return to the internal save folder (/storage_usb/usr/sav/00050000/[GAMEID]/user/8000000x/...) with FTPiiU everywhere. Now you may delete that cheeky data_012_0001.bin and overwrite data_008_0000.bin with your edited one. Close everything and reboot your Wii U.

9) Launch the game. It should now boot normally with the GameBoy Advance Logo and let you use your successfully imported savegame. Hooray!

Steps 6) 8) are more of a workaround since I'm not really sure what these steps do what deleting data_012_0001.bin right away wouldn't do. There might be a better solution.

I don't know if this will always work for all games. As I said this worked for all of the games I tried, except Links Awakening DX. For some reason the savegame section in its .bin file is always empty and filling it with a proper .sav file does nothing so my guess is that this game (or at least the version that was injected) uses an other way to store saves. If anyone has an idea..

Anyways. That should do. Wall of text over.

uO7PyQD.png
VaDkEn2.png
wfOSCA2.png
6qbCfIO.png
 
Last edited by cxnxbdny,

brentendo14

New Member
Newbie
Joined
Sep 1, 2022
Messages
3
Trophies
0
Age
26
Location
Ontario
XP
34
Country
Canada
I stumbled across this today when getting Megaman Battle Network 3 from my Omega EZ Flash from my GBA to my WIi U VC title. It took a little reading between the lines, but I'd like to share here.


This script is great. I was able to inject my .sav file into the .bin with no issues.



I did not use FTP to modify saves in place. I actually used checkpoint to make a backup after opening the game and saving. It generated two files, the data_008_0000.bin and data_012_0001.bin.
The _008 is what you inject into. The _012 is your save state that it auto loads.

Loading ANY save state back in, including if it's the GBA title screen, won't recognize an existing save in SRAM. So you have to make sure you cold boot the game.

So the steps I took were
1. Launch title, save game immediately
2. Create save backup in SaveMii
3. Go to system settings, delete save data for title
4. Load save file on PC, use the python script above to inject .sav into data_008_0000.bin
5. DELETE (straight up delete) data_012_0001.bin
6. Move modified data_008_0000.bin back to the SD card using the same name it had when you took it off
7. Load up SaveMii, inject the save back in. It'll warn you that the _012 is missing (THIS IS FINE), inject anyway
8. Load your game. If it's MMB3 or similar with a continue screen, it'll cold boot up and detect data and let you continue.
what do you mean by load save file on pc, I have the script loaded up into Visual Studio but don't know where to go from there...
 

Gamemaster1379

Well-Known Member
Member
Joined
May 5, 2008
Messages
837
Trophies
1
Age
29
Location
United States
Website
1379tech.110mb.com
XP
2,256
Country
United States
what do you mean by load save file on pc, I have the script loaded up into Visual Studio but don't know where to go from there...
You shouldn't need to load up the source script in Visual Studio. Instead, you want to open a command line like PowerShell in the current working directory where the python script is (and your save file). Per the Github, you want to type a command like:

"python3 SAVE2VC.py extract data_008_0000.bin -o gba.sav" and then a file named gba.sav will show up in the same directory.
 
  • Like
Reactions: andreiarturo

Knight of Time

Well-Known Member
Member
Joined
Apr 19, 2015
Messages
135
Trophies
0
Age
41
XP
1,276
Country
Canada
I hate to bump this topic, yet I'm wondering if anyone attempted this using a save from Mario Kart Super Circuit? I tried to get my save of the game (gold in every cup at every difficulty level with a triple star rank for all of them) onto the Wii U VC while following the steps here, but to no avail. Is MKSC a trickier game to work with here?

Edit: I eventually was able to get my MKSC save copied over, but now I can't delete it from the Wii U (I made a backup of the new save, just in case), is this normal?
 
Last edited by Knight of Time,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Hey Kennyboy, have you found any decent mini Pc for around $200-250? Fast enough to play most Pc games.
  • K3Nv2 @ K3Nv2:
    I'd say save another $100 anythtwith 8core upgradeable ram I'm thinking about ordering the acemagic still
    +1
  • BigOnYa @ BigOnYa:
    Damn, I haven't turn on my OG Xbox one in ages, just did now and ofcourse, 32GB update required, gonna take forever.
  • BigOnYa @ BigOnYa:
    Edit: nevermind, I forgot I up-ed my internet speed, only 30 min remaining.
  • BigOnYa @ BigOnYa:
    Will a mobo with a M2ssd slot work without a M2ssd installed, using a sata ssd temporary?
  • K3Nv2 @ K3Nv2:
    As long as sata just point bios to boot to it as main drive
    +1
  • SylverReZ @ SylverReZ:
    @K3Nv2, Is that a compilation of you?
  • K3Nv2 @ K3Nv2:
    M.2 is more of a luxury you can still boot from Ide if you really wanted to
    +1
  • K3Nv2 @ K3Nv2:
    I mean as long as the motherboard still has sata ports unless you're still in celeron days
  • Xdqwerty @ Xdqwerty:
    wut
  • BigOnYa @ BigOnYa:
    Nuh it has Sata 3
  • K3Nv2 @ K3Nv2:
    It should still have a Bootable option in bios select drive
    +1
  • Xdqwerty @ Xdqwerty:
    whats sata?
  • K3Nv2 @ K3Nv2:
    How you were born
  • BigOnYa @ BigOnYa:
    Sata is the type of interface/cable connection of hard drives/disc drives for Pc.
    +1
  • K3Nv2 @ K3Nv2:
    Don't tell them about old bank drives may explode
  • BigOnYa @ BigOnYa:
    Mini pcs in the 70's
  • K3Nv2 @ K3Nv2:
    128kbs of storage
    +1
  • K3Nv2 @ K3Nv2:
    How do I connect this to my emachine
  • K3Nv2 @ K3Nv2:
    The Tattooist of Auschwitz is pretty good so far
    K3Nv2 @ K3Nv2: The Tattooist of Auschwitz is pretty good so far