Tutorial  Updated

Dumping and injecting GBA VC saves with AGBSave9

WARNING: GodMode9 added a native save dumping and injecting tool that works way better than AGBSave9, you can download it here. Here's how to use it.
I'll be keeping this guide around for historical purposes, but you should use GodMode9 instead.
Dumping GBA VC saves:
What you will need:
  • AGBSave9 v.1.0 "EEPROM support" (A9LH-compatible version here)
1) Run the game that you want to dump the save and close it.
2) Load AGBSave9 from sysNAND 9.2/A9LH and select "Save Dump".
3) This should give you a screen with this info:
  • Title ID: xxxxxxxx
  • Use save type 0/1/2: SRAM/Flash/EEPROM
  • Creating agb_dump.sav ...
4) Write down the Title ID and Save Type, you'll need it if you want to inject the save back later.
5) Plug your SD card into your computer and copy the agb_dump.sav on the root of the SD to somewhere safe, this is your save file.

Injecting saves into the GBA VC:
What you will need:

1) Install Python 3, else you won't be able to run the gen_run.py.
2) Copy your save file into the agb_inject folder.
3) Run gen_run.py and follow the on screen instructions, this should generate a .cia file inside the agb_inject folder.
43f380I.png

4) Copy the output CIA file to your 3DS' SD card.
5) Install it on sysNAND using your favorite CIA installer, I recommend FBI. (if it asks to overwrite the previous install, allow it.)
If you only have them on sysNAND:
6a) Run the CIA that you just installed. (It should show up as Fire Emblem on the top screen)
If you have them on both NANDs:
6b) Run the game that you want to inject the save on emuNAND.
7) When "AGB_FIRM save injector" appears, turn off your 3DS.
8) Insert your SD card on your computer and go to "/Nintendo3DS/(YourSysNANDHere)/(RandomStuff)/title/00040000/(TitleID)/" and copy the data folder.
9) Reinstall the game that you want to inject the save on sysNAND. (if it asks to overwrite the previous install, allow it.)
10) Reinsert the SD card on your computer and copy the data folder back into "/Nintendo3DS/(YourSysNANDHere)/(RandomStuff)/title/00040000/(TitleID)/"
11) Run the game, if everything worked properly, your injected save should appear on the game.

Credits:
@alex34567 7 for AGBSave9.
@redunka for the fixed "gen_run.py".
@Frelia a for the A9LH-compatible version.
 
Last edited by matpower,

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
385
Country
United States
Ran a gba game that had a save successfully in sysnand. Immediately quit and attempted to load agbsave9.bin. Froze again. At this point, I think it's pretty safe to assume it's either bootctr (which loads my other bins/dats just fine, such as decrypt9, emunand9, cakes, or luma), luma (my version of cakes can't load gba), or it's the agbsave9.bin itself. FYI, I'm using Agbsave9-20160208-200546.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,599
Country
Brazil
Ran a gba game that had a save successfully in sysnand. Immediately quit and attempted to load agbsave9.bin. Froze again. At this point, I think it's pretty safe to assume it's either bootctr (which loads my other bins/dats just fine, such as decrypt9, emunand9, cakes, or luma), luma (my version of cakes can't load gba), or it's the agbsave9.bin itself. FYI, I'm using Agbsave9-20160208-200546.
I'm running the A9LH-compatible agbsave9.bin from latest Luma's chainloader, it's fine here. :unsure:
 

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
385
Country
United States
I'm running the A9LH-compatible agbsave9.bin from latest Luma's chainloader, it's fine here.

I just ran the a9lh-compatible agbsave9.bin from the latest luma's chainloader. It froze for me.

So this time I reconfigured my sd files so that a9lh loaded luma, completely cutting bootctr out of the loop. I set agbsave9.bin as a payload in the luma/payloads folder with the name y_agbsave9.bin. I also set it as the default payload because payloads don't seem to load at all without some default (def_agbsave9.bin). I loaded up the gba game in sysnand, then restarted the console. No payload would load right after the gba game had run (it just booted to sysnand like normal). Restarting the console without running the game allowed me to attempt to load the payload, but it froze.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,599
Country
Brazil
I just ran the a9lh-compatible agbsave9.bin from the latest luma's chainloader. It froze for me.

So this time I reconfigured my sd files so that a9lh loaded luma, completely cutting bootctr out of the loop. I set agbsave9.bin as a payload in the luma/payloads folder with the name y_agbsave9.bin. I also set it as the default payload because payloads don't seem to load at all without some default (def_agbsave9.bin). I loaded up the gba game in sysnand, then restarted the console. No payload would load right after the gba game had run (it just booted to sysnand like normal). Restarting the console without running the game allowed me to attempt to load the payload, but it froze.
This is weird, I just tried here(Heck, without loading a game before) and I was able to boot the payload and dump my save without any major issue directly from Luma3DS. Are you using this payload?
 

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
385
Country
United States
Yes, I just confirmed I'm using the exact payload you linked to by doing a byte-for-byte comparison in my hex editor.
 

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
385
Country
United States
try asking on the official thread

I don't know what you mean by that. I thought this was the official thread for agbsave9.

I'm pretty confused about why this won't work on my 3DS when it does on others'. It would be nice to put my old saves in these injected titles, but my motivation for solving this issue is mostly because I like solving problems. But I don't know where any point of failure could be at this point. It's not bootctr. We're both using the latest luma, A9LH, and agbsave9. It's probably got nothing to do with the gba games I'm using because the app won't turn on whether one has been run or not. So I'm going to be as specific as possible about my setup, in the hopes anyone has any suggestions as to why this app won't run.

I'm on an O3DS XL. I run a 9.2 sysnand and a 10.7 emunand (I still run an emunand for easy backup purposes). I got A9LH installed with no problems and have run many apps through it. I use Luma3DS 5.2 as my primary CFW, Cakes 138 as my alternate (though this can't load GBA games). I usually use the arm9loaderhax.bin from the A9LH-compatible bootctr9 boot loader, with the boot config set to load agbsave9.bin on the press of 'L' (though I've tried other buttons). If I choose to bypass bootctr, I'll change the arm9loaderhax to the latest luma version, then set agbsave9 as the payload for the 'y' button and the default. I test two different gba games: one that has a save already on my system (LoZ:LTTP) and one that has no save that I would like to inject from my computer (Advance Wars). These games were acquired from 'davhuit' on that iso site.

If there's any more info I can give, let me know.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,599
Country
Brazil
I don't know what you mean by that. I thought this was the official thread for agbsave9.

I'm pretty confused about why this won't work on my 3DS when it does on others'. It would be nice to put my old saves in these injected titles, but my motivation for solving this issue is mostly because I like solving problems. But I don't know where any point of failure could be at this point. It's not bootctr. We're both using the latest luma, A9LH, and agbsave9. It's probably got nothing to do with the gba games I'm using because the app won't turn on whether one has been run or not. So I'm going to be as specific as possible about my setup, in the hopes anyone has any suggestions as to why this app won't run.

I'm on an O3DS XL. I run a 9.2 sysnand and a 10.7 emunand (I still run an emunand for easy backup purposes). I got A9LH installed with no problems and have run many apps through it. I use Luma3DS 5.2 as my primary CFW, Cakes 138 as my alternate (though this can't load GBA games). I usually use the arm9loaderhax.bin from the A9LH-compatible bootctr9 boot loader, with the boot config set to load agbsave9.bin on the press of 'L' (though I've tried other buttons). If I choose to bypass bootctr, I'll change the arm9loaderhax to the latest luma version, then set agbsave9 as the payload for the 'y' button and the default. I test two different gba games: one that has a save already on my system (LoZ:LTTP) and one that has no save that I would like to inject from my computer (Advance Wars). These games were acquired from 'davhuit' on that iso site.

If there's any more info I can give, let me know.
This is just a tutorial that I wrote for it, the official thread would be this one.
The only difference between my setup and yours is that you have an emuNAND while I run CFW sysNAND. Well, for the injection itself, you don't need AGBSave9, it's only for dumping the saves. If you know the Title ID and save type, just run the script to make the injected save CIA.
Still, I really want to know why it won't run in your 3DS, and I think that you can make GBA games work on Cakes if you disable reboot patches and patch AGB_FIRM/get the .cakes patch for AGB_FIRM.

Quick question, if you load a GBA game directly from sysNAND, do you ever boot back into emuNAND? If yes, try avoid going into emuNAND while you are attempting to dump it.
 

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
385
Country
United States
The only difference between my setup and yours is that you have an emuNAND while I run CFW sysNAND. Well, for the injection itself, you don't need AGBSave9, it's only for dumping the saves. If you know the Title ID and save type, just run the script to make the injected save CIA.

Yeah, I just wanted to be able to dump the saves eventually.

Quick question, if you load a GBA game directly from sysNAND, do you ever boot back into emuNAND? If yes, try avoid going into emuNAND while you are attempting to dump it.

I set the config for Luma to autoboot sysnand during my sysnand-only tests.

This is just a tutorial that I wrote for it, the official thread would be this one.

I'll check it out. Thanks for your help.
 
  • Like
Reactions: matpower

EddieEddie90

Well-Known Member
Member
Joined
Apr 24, 2016
Messages
232
Trophies
0
Age
30
XP
954
Country
Mexico
Hi, I'm currently trying to get this to work on latest rxTools, everytime I load the app from the homebrew launcher (on sysNAND) it kicks me back to HB. Is there a fix to this? (And yes, I'm running a gba vc game before using the app from HB)
 

SD_DS

Well-Known Member
Newcomer
Joined
Feb 12, 2016
Messages
59
Trophies
0
XP
79
Country
United States
Everytime I try to run gen_rom.py, it just closes as soon as I put in all the information. It doesn't generate the CIA, it just closes.

I'm using version 1.0, and the gen_rom that you provided.
 
Last edited by SD_DS,

SD_DS

Well-Known Member
Newcomer
Joined
Feb 12, 2016
Messages
59
Trophies
0
XP
79
Country
United States
I did all the steps, but wehn I run Sapphire, it resets the save. I have to make a new game. Do you know what the problem s>
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • SylverReZ @ SylverReZ:
    @Sonic Angel Knight, Is that SAK I see. :ninja:
  • BigOnYa @ BigOnYa:
    What a weird game
  • K3Nv2 @ K3Nv2:
    Yeah I wanted to see shards of the titanic
  • BigOnYa @ BigOnYa:
    I kept thinking jaws was gonna come up and attack
  • K3Nv2 @ K3Nv2:
    Jaws is on a diet
  • K3Nv2 @ K3Nv2:
    Damn power went out
  • BigOnYa @ BigOnYa:
    Ok xdqwerty, your little bro prob tripped On the cord and unplugged you
  • K3Nv2 @ K3Nv2:
    Ya I'm afraid of the dark hug me
  • BigOnYa @ BigOnYa:
    Grab and hold close your AncientBoi doll.
  • K3Nv2 @ K3Nv2:
    Damn didn't charge my external battery either
  • BigOnYa @ BigOnYa:
    Take the batteries out of your SuperStabber3000... Or is it gas powered?
  • K3Nv2 @ K3Nv2:
    I stole batteries from your black mamba
    +1
  • K3Nv2 @ K3Nv2:
    My frozen food better hold up for an hour I know that
  • BigOnYa @ BigOnYa:
    Or else gonna be a big lunch and dinner tomorrow.
  • BigOnYa @ BigOnYa:
    Did you pay your power bill? Or give all yo money to my wife, again.
  • K3Nv2 @ K3Nv2:
    Oh good the estimated time is the same exact time they just said
    +1
  • BigOnYa @ BigOnYa:
    Load up your pc and monitor, and head to a McDonalds dining room, they have free WiFi
  • K3Nv2 @ K3Nv2:
    Sir please watch your porn in the bathroom
    +2
  • BigOnYa @ BigOnYa:
    No sir we can not sell you anymore apple pies, after what you did with the last one.
  • K3Nv2 @ K3Nv2:
    We ran out
  • HiradeGirl @ HiradeGirl:
    for your life
    +1
  • K3Nv2 @ K3Nv2:
    My life has no value my fat ass is staying right here
    K3Nv2 @ K3Nv2: My life has no value my fat ass is staying right here