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,

SD_DS

Well-Known Member
Newcomer
Joined
Feb 12, 2016
Messages
59
Trophies
0
XP
79
Country
United States
Hmm, if you are injecting a save from an emulator, what's its file size? I have heard some issues with big saves.
My save file is from the Pokemon Sapphire GBA VC. It was 192 KB, and then when I extracted it, it was 64KB. I did some modifying, and when I saved it, it still was 64KB. Then I basically did the injection steps, and when I run Sapphire in Emunand, it has no save file.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,596
Country
Brazil
My save file is from the Pokemon Sapphire GBA VC. It was 192 KB, and then when I extracted it, it was 64KB. I did some modifying, and when I saved it, it still was 64KB. Then I basically did the injection steps, and when I run Sapphire in Emunand, it has no save file.
Hmm, so the original file was 192KB, then you injected it, the save stopped working and got 64KB?
 

SD_DS

Well-Known Member
Newcomer
Joined
Feb 12, 2016
Messages
59
Trophies
0
XP
79
Country
United States
Hmm, so the original file was 192KB, then you injected it, the save stopped working and got 64KB?
The original .sav was 192 KB, but when I extracted it using the AGBSave, the extracted file was 64KB.

The extracted sav file was the one I used to make the CIA. When I installed the CIA in Sysnand, I launched Sapphire in Emunand and had the AGB_Firm injection thing.

I copied the data folder like you said. The sav file in the data folder was 192 KB.

I installed Pokemon Sapphire into Sysnand, and pasted the data folder over the other data folder.

Then I launched Sapphire in Emunand, and I had no save. I did it multiple times seeing if I put the title ID right, and in all the times I had no save file.

I don't know what I'm doing wrong :/

--------------------- MERGED ---------------------------

Hmm, so the original file was 192KB, then you injected it, the save stopped working and got 64KB?
I think I found the problem.. I'm not sure though.

The program I used to edit the sav file apparently automatically saved it as an Emerald sav file rather than Ruby/Sapphire. I went ahead and saved it as Sapphire, so now I'll build the CIA using that and repeat the injection steps.
 
Last edited by SD_DS,

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,596
Country
Brazil
The original .sav was 192 KB, but when I extracted it using the AGBSave, the extracted file was 64KB.

The extracted sav file was the one I used to make the CIA. When I installed the CIA in Sysnand, I launched Sapphire in Emunand and had the AGB_Firm injection thing.

I copied the data folder like you said. The sav file in the data folder was 192 KB.

I installed Pokemon Sapphire into Sysnand, and pasted the data folder over the other data folder.

Then I launched Sapphire in Emunand, and I had no save. I did it multiple times seeing if I put the title ID right, and in all the times I had no save file.

I don't know what I'm doing wrong :/

--------------------- MERGED ---------------------------


I think I found the problem.. I'm not sure though.

The program I used to edit the sav file apparently automatically saved it as an Emerald sav file rather than Ruby/Sapphire. I went ahead and saved it as Sapphire, so now I'll build the CIA using that and repeat the injection steps.
Yeah, the steps are right AFAIK. Let's see if it works.
 

SD_DS

Well-Known Member
Newcomer
Joined
Feb 12, 2016
Messages
59
Trophies
0
XP
79
Country
United States
Hmm, so either the injection is broken or you are doing something wrong. I feel like it's the former. :unsure:
Which folder is the Emunand folder? Is it the one that is bigger? I installed a lot of games while on Emunand but I'm not sure. I already did the injetion using both folders, and it still had no save file.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,596
Country
Brazil
Which folder is the Emunand folder? Is it the one that is bigger? I installed a lot of games while on Emunand but I'm not sure. I already did the injetion using both folders, and it still had no save file.
Yeah, emuNAND is always bigger since games are on it. (I'm surprised that you still run emuNAND :P) But I'm pretty sure that GBA saves are on sysNAND.
 

SD_DS

Well-Known Member
Newcomer
Joined
Feb 12, 2016
Messages
59
Trophies
0
XP
79
Country
United States
Yeah, emuNAND is always bigger since games are on it. (I'm surprised that you still run emuNAND :P) But I'm pretty sure that GBA saves are on sysNAND.
Haha yeah. Honestly, I only did this to pirate 3DS Games :/ Arm9Loader doesn't really offer me that much if I just want to pirate lol

Anyway, this time it worked. No idea why. I did two things differently this time.

1. I made sure that Pokemon Sapphire had a save in it. The other times I just left it without the save.

2. The sav I injected was 128KB.

I don't know what made it work this time, but hey it works lol.
 
  • Like
Reactions: matpower

AlexRT07

New Member
Newbie
Joined
May 30, 2016
Messages
3
Trophies
0
Age
30
XP
43
Country
Mexico
Good guide! It worked for me.

I only want to say that the modified gen_rom.py was giving me a lot of troubles. Then I tried with the original gen_rom.py provided with the v1.0 release and it worked. I have to say that I'm using GNU/Linux elementary OS 0.3.2 with the official python3 released in the repositories of this OS. Maybe you had problems because you used Windows and this python script was written in Linux, I really don't know haha.

Skipping that, everything went OK when I transferred a GBA VC save from my old 3ds to my new one :toot::toot::toot:
 
Last edited by AlexRT07,

Ella879

Banned!
Banned
Joined
May 26, 2016
Messages
123
Trophies
0
Age
25
XP
99
Country
United States
with the python script

File "C:\Users\pornypanther7\Downloads\agb_inject\gen_rom.py", line 20, in <module>
with open("agb_inject_mb.gba", "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'agb_inject_mb.gba'
 

KunoichiZ

Well-Known Member
Member
Joined
Mar 16, 2012
Messages
8,830
Trophies
0
Age
28
XP
4,597
Country
United States
I did all of the steps but when I launch my games, I still get the "AGB_firm save injector" text. It's not loading the game. The steps I took:
1. I installed the games and made a save file for each.
2. Used AGBSave9 on A9LH Luma3DS boot (up_Agbsave9.bin) to get the Title ID and the save type for both games.
3. Used the Title ID and save type in the python script for both games
4. Moved the generated .CIAs to my SD card
5. Installed them and ran them
6. Turned my 2DS off at the save injector text
7. Copied the folders with the Title ID to my computer
8. Deleted the previously installed .CIAs
9. Re-installed the games
10. Copied the folders with the Title ID back to my SD card
11. Loaded the games but was presented with the "AGB_firm save injector" text instead of the game.

What did I do wrong? I used the modified gen_run.py script, and the v1.0 of AGBSave9. I'm using Pokemon FireRed and Pokemon Emerald as my games. The logos on the top screen were replaced with Fire Emblem: The Sacred Stones but the icons on the bottom screen were of FireRed and Emerald.
 
Last edited by KunoichiZ,

DrkBeam

Well-Known Member
Member
Joined
Jun 12, 2016
Messages
414
Trophies
0
Age
31
XP
397
Country
Spain
10) Reinsert the SD card on your computer and copy the data folder back into "/Nintendo3DS/(YourSysNANDHere)/(RandomStuff)/title/00040000/(TitleID)/"

10. Copied the folders with the Title ID back to my SD card
11. Loaded the games but was presented with the "AGB_firm save injector" text instead of the game.

I had the same mistake, it's only the data folder
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Veho @ Veho: Spring is in the air. +1