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,

oFire

Well-Known Member
Member
Joined
Oct 6, 2015
Messages
119
Trophies
0
Age
33
XP
109
Country
United States
Ok, I realize this may be supposed to be apparent, but why would you dump a save and then inject that same save back into the 3ds? does that make it so the cia reads different size .sav files?
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,586
Country
Brazil
Ok, I realize this may be supposed to be apparent, but why would you dump a save and then inject that same save back into the 3ds? does that make it so the cia reads different size .sav files?
Well, you don't need to inject the dumped save from the "Dumping GBA VC saves" unless you want to restore them. If you just want to inject it, just follow the "Injecting" part, you just need to know the Title ID of the game's CIA and save type.
If you are talking about data folder backup, it's because it gets overwritten when you reinstall the game again.
 

oFire

Well-Known Member
Member
Joined
Oct 6, 2015
Messages
119
Trophies
0
Age
33
XP
109
Country
United States
Well, you don't need to inject the dumped save from the "Dumping GBA VC saves" unless you want to restore them. If you just want to inject it, just follow the "Injecting" part, you just need to know the Title ID of the game's CIA and save type.
If you are talking about data folder backup, it's because it gets overwritten when you reinstall the game again.
Ah, I understand now, Had to follow the whole process and think about what was happening on every step, now it makes sense, thanks for the step by step and the whole python part, I had never used the program so didnt have a clue about having it for this.
 
  • Like
Reactions: matpower

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,008
Trophies
2
Age
36
XP
4,570
Country
United States
Wanted to add, that at step 5, the CIA should be installed to and overwrite the one you have in sysNAND. After this, if you have emuNAND setup and normally launch your GBA games from there, you need to reboot into emuNAND to run the game in order to get the AGB_Firm save injector message otherwise it will just error. Then you can pick back up at step 8.
 
  • Like
Reactions: matpower

shinta3003

New Member
Newbie
Joined
Apr 8, 2016
Messages
1
Trophies
0
Age
39
XP
53
Country
Spain
Thank you Mat is exactly what I was looking for to be able to inject my saves from prev emulator progress you are the best for completely explain step by step
 

MushGuy

Well-Known Member
Member
Joined
Feb 11, 2010
Messages
1,280
Trophies
1
XP
2,576
Country
United States
For some reason, when I try to load the application via the homebrew launcher (with this loader), it kicks me back to the launcher menu. How do I load the a9lh version (I already have a9lh installed with AuReiNand)?
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,586
Country
Brazil
For some reason, when I try to load the application via the homebrew launcher (with this loader), it kicks me back to the launcher menu. How do I load the a9lh version (I already have a9lh installed with AuReiNand)?
Put it inside the /aurei/payloads folder and rename it to (button)_(name).bin (Replace the brackets with the button/name, example: left_agbsave.bin) and press the button that you chose during boot.
 

MushGuy

Well-Known Member
Member
Joined
Feb 11, 2010
Messages
1,280
Trophies
1
XP
2,576
Country
United States
Put it inside the /aurei/payloads folder and rename it to (button)_(name).bin (Replace the brackets with the button/name, example: left_agbsave.bin) and press the button that you chose during boot.
It won't work. I rename it to up_agbS9.bin, black screen. I rename it to left_agbS9.bin, still black screen. And I press the correct buttons during boot. Am I doing something wrong?
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,586
Country
Brazil
It won't work. I rename it to up_agbS9.bin, black screen. I rename it to left_agbS9.bin, still black screen. And I press the correct buttons during boot. Am I doing something wrong?
Hmm, I have heard that the latest version of AuReiNAND broke some payloads(dirty payloads or something like that), I guess AGBSave9 is one of those? Try running it with AuReiNAND 5.0(Name it just (button).bin instead) or with another boot manager. If it works, it means that this payload will need a fix later.
 

MushGuy

Well-Known Member
Member
Joined
Feb 11, 2010
Messages
1,280
Trophies
1
XP
2,576
Country
United States
Hmm, I have heard that the latest version of AuReiNAND broke some payloads(dirty payloads or something like that), I guess AGBSave9 is one of those? Try running it with AuReiNAND 5.0(Name it just (button).bin instead) or with another boot manager. If it works, it means that this payload will need a fix later.
What another boot manager?
 

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
383
Country
United States
A9LH-compatible version doesn't work. I tried booting it through the A9LH-compatible BootCTR (everything else I got runs just fine through that), but once I hit the key to load it, it freezes. Nothing happens. It also doesn't load the dat version (freezes). Nor can I run the 3dsx version through HBL (returns to HBL immediately).

O3DS XL | 9.2sys/10.7emu
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,586
Country
Brazil
A9LH-compatible version doesn't work. I tried booting it through the A9LH-compatible BootCTR (everything else I got runs just fine through that), but once I hit the key to load it, it freezes. Nothing happens. It also doesn't load the dat version (freezes). Nor can I run the 3dsx version through HBL (returns to HBL immediately).

O3DS XL | 9.2sys/10.7emu
If you are using the .3dsx version, you need to run it from sysNAND 9.2 even if your games are on emuNAND, also I have noticed that it freezes if you don't load a GBA game before running it.
 

Cecil_FF4

Active Member
Newcomer
Joined
Apr 25, 2016
Messages
40
Trophies
0
Age
43
XP
383
Country
United States
I have noticed that it freezes if you don't load a GBA game before running it.

It still froze, even after loading a GBA game and then immediately trying to load the bin through A9LH. I'm using an injected GBA, btw, through emunand on Luma3DS 5.2, but my injected games have no trouble creating and retaining saves.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,586
Country
Brazil
It still froze, even after loading a GBA game and then immediately trying to load the bin through A9LH. I'm using an injected GBA, btw, through emunand on Luma3DS 5.2, but my injected games have no trouble creating and retaining saves.
Could you try running the game from sysNAND? (I would make NAND and save backups just in case something happens with the save)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=pnRVIC7kS4s