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.

1712202852837.png
1712202893568.png
1712202913118.png
1712202930713.png