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,

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
First off thanks N7Kopper for putting this together. Of all the Internets this seems to be the only guide that addresses this. Good work, and thanks!


Couldn't get it to work yet, but no errors. Game just loads as if there was no save; 2 specific questions before I start trying to test things:

[A9lh+CFW on SysNand (via Plailect's guide) o3DS] trying this with Pokemon leaf Green, and a .sav file verified with VBA

  • Running the specified python script in Version 1 of the inject folder (and I used N7Kopper's .zip folder as well to test), creates savegame .cia fine. However for the Python script "save type" I used 0 (sram) as the picture, but am thinking I should; try 2 (eeprom) as well. Pleading ignorance here, but how would I know what to use there?

  • Installed the output .cia, run it and get the "agb_inject" on screen fine. I just hold the power button for the 10/15 seconds for it to turn off. Is that what is supposed to be done there?

After that shutdown I navigate to the title folder (the only one with that tile ID) and copy the Data folder (containing a 000000001.sav). I place the SD card back in the console, boot, install the game's .cia, and shutdown again. Copy the previously mentioned "data folder" over the same title's data folder. Place card back in, boot and run game. Loads with no save at all.
For the save type, you can discover by using GBATA if you have the .gba file or using AGBSave to dump the old save before(It will show the type, the title ID, etc).

Yes, you are supposed to turn it off after it's done, because it won't reboot by itself. About the lack of save... Maybe it didn't work because of the wrong save type, if the save type is actually right, try to turn the 3DS on after shutting it down. Then you can copy the data folder.
 
  • Like
Reactions: nomadwrangler

nomadwrangler

New Member
Newbie
Joined
Jul 28, 2016
Messages
3
Trophies
0
Age
47
XP
42
Country
United States
For the save type, you can discover by using GBATA if you have the .gba file or using AGBSave to dump the old save before(It will show the type, the title ID, etc).

Yes, you are supposed to turn it off after it's done, because it won't reboot by itself. About the lack of save... Maybe it didn't work because of the wrong save type, if the save type is actually right, try to turn the 3DS on after shutting it down. Then you can copy the data folder.

You mean after doing the agb_inject shutdown, before removing the SD card to boot it back up first? Stupid question: Can I remove the SD card while the 3ds is running?





GBATA header info of the .gba:


The header information of file Pokemon - LeafGreen.gba
-----------------------------------------
Software Title: POKEMON LEAF
Game Serial: AGB-BPGE-USA
Maker Code: 01
Publisher: Nintendo
Version: 1.0
Logo Code: OK
Complement: 81h
Save Type: FLASH1M_V103 (1024Kbit)
File Size: 128 mbit (16777216 bytes)
CRC32: 1C12FD39



Not being to compare it to anything; Does that tell me that I should select Option 1 for Flash?
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
You mean after doing the agb_inject shutdown, before removing the SD card to boot it back up first? Stupid question: Can I remove the SD card while the 3ds is running?





GBATA header info of the .gba:


The header information of file Pokemon - LeafGreen.gba
-----------------------------------------
Software Title: POKEMON LEAF
Game Serial: AGB-BPGE-USA
Maker Code: 01
Publisher: Nintendo
Version: 1.0
Logo Code: OK
Complement: 81h
Save Type: FLASH1M_V103 (1024Kbit)
File Size: 128 mbit (16777216 bytes)
CRC32: 1C12FD39



Not being to compare it to anything; Does that tell me that I should select Option 1 for Flash?
Yes, after running agb_inject but before inserting the SD back to the PC. And yeah, the Flash/1 option should work if I got it right, you can double check with AGBSave9 if you wish so.
 
  • Like
Reactions: nomadwrangler

nomadwrangler

New Member
Newbie
Joined
Jul 28, 2016
Messages
3
Trophies
0
Age
47
XP
42
Country
United States
That seemed to do it! I didn't think to try separating both (changing save type, and the extra restart) until I was done to report what affect the extra restart had, but my save game is now loaded. Granted I get a "save is corrupted loading previous save", but I think that is the fault of that particular .cia. It loads fine, and I can resume my age old save-game.

Thanks!
 
  • Like
Reactions: matpower

Frezgle

Well-Known Member
Member
Joined
Aug 4, 2016
Messages
168
Trophies
0
Age
30
XP
275
Country
United States
Hi, I have a problem and another question which might make that problem a moot point depending on the answer.
So, I'm trying to run the A9lh-compatible payload using Luma (I'm on CFW SysNAND), and it won't open at all. I named it to open with the R button, then the A button, then the X button (which something was already using, so I moved it temporarily) and all just boot me into my home menu. The Homebrew version closes immediately as well. What might I be missing?
And my question is: Do I NEED the save dump utility to put an existing save back in over a new install of a CIA with the same ID, or can I just grab it from the titleID/data folder like in the injector part of the guide? What I'm doing is playing a personal hack of Emerald I'm making, and basically whenever I want to update it I plan on making a new cia with the same ID. So I have no plans to use the save with VBA or any of that. I just want to make sure I still have it after an update.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
Hi, I have a problem and another question which might make that problem a moot point depending on the answer.
So, I'm trying to run the A9lh-compatible payload using Luma (I'm on CFW SysNAND), and it won't open at all. I named it to open with the R button, then the A button, then the X button (which something was already using, so I moved it temporarily) and all just boot me into my home menu. The Homebrew version closes immediately as well. What might I be missing?
And my question is: Do I NEED the save dump utility to put an existing save back in over a new install of a CIA with the same ID, or can I just grab it from the titleID/data folder like in the injector part of the guide? What I'm doing is playing a personal hack of Emerald I'm making, and basically whenever I want to update it I plan on making a new cia with the same ID. So I have no plans to use the save with VBA or any of that. I just want to make sure I still have it after an update.
If I got it right, you are going to make different CIAs of the same game with the same ID. Well, as long as you backup the data folder, I think you should be fine since that's how injection works.

As for that payload issue, it's a bit weird, sometimes it works, sometimes it doesn't. Try opening a GBA game before running it.

Good news for anyone with issues: Decrypt9 will allow GBA injection and dumping soon, and it's way easier than using AGBSave9.
 

Blyton

Active Member
Newcomer
Joined
Feb 23, 2016
Messages
29
Trophies
0
XP
107
Country
Germany
Okay.. I want to inject the CIA, but when i run the gen_rom.py and i enter all the things it wants the windows show me a long message and disappears, i cannot see whats written in there and theres also no cia :/
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
Okay.. I want to inject the CIA, but when i run the gen_rom.py and i enter all the things it wants the windows show me a long message and disappears, i cannot see whats written in there and theres also no cia :/
Did you use the edited scripted file + the old version of the injector? Try this prepacked injector that I made and see if it works.
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
Alright, the save dumping and injecting feature on Decrypt9 is out and stable now! I recommend everyone to use it instead of AGBSave9 since it is way more reliable and easy to use.

I'll be keeping the old guide around if someone needs it, but that's it. :P Hopefully this will solve everyone's issues with saves.
 

MushGuy

Well-Known Member
Member
Joined
Feb 11, 2010
Messages
1,280
Trophies
1
XP
2,576
Country
United States
Alright, the save dumping and injecting feature on Decrypt9 is out and stable now! I recommend everyone to use it instead of AGBSave9 since it is way more reliable and easy to use.

I'll be keeping the old guide around if someone needs it, but that's it. :P Hopefully this will solve everyone's issues with saves.
Any chance for a D9 tutorial, too?
 

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
Any chance for a D9 tutorial, too?
I can write one this weekend if people have trouble with it, but you basically get the slot0x24keyY.bin file(you'll find it if you google "slot0x24keyY pastebin"), put it in the root of your SD card and run a game. After that, just go to Decrypt9 and pick "GBA VC Save Dump" to dump it, or rename your save file to savefilehere.bin(since it doesn't recognize .sav/.srm files) and pick "GBA VC Save Inject". According to my friend who tested this feature while it was on beta, it's a bit stingy with some certain file types, but it should work well on most stuff.
 

MushGuy

Well-Known Member
Member
Joined
Feb 11, 2010
Messages
1,280
Trophies
1
XP
2,576
Country
United States
I can write one this weekend if people have trouble with it, but you basically get the slot0x24keyY.bin file(you'll find it if you google "slot0x24keyY pastebin"), put it in the root of your SD card and run a game. After that, just go to Decrypt9 and pick "GBA VC Save Dump" to dump it, or rename your save file to savefilehere.bin(since it doesn't recognize .sav/.srm files) and pick "GBA VC Save Inject". According to my friend who tested this feature while it was on beta, it's a bit stingy with some certain file types, but it should work well on most stuff.
Great. I'll be waiting then, especially because I've been having trouble trying with Super Mario Advance 3. Maybe because of the same EEPROM problem that AGBSave9 used to have?
 

Yamanoko

Well-Known Member
Newcomer
Joined
Oct 27, 2015
Messages
92
Trophies
0
Age
31
XP
114
Country
Italy
Can you tell me if this is only my problem or is a common issue instead:
I injected my gba Emerald cartridge's save into GBA VC with Decrypt9. It injects perfectly, but the game says that the save is damaged and a previous save is being loaded (or something like that), but there's no problem since the save works perfect ... suggestions on how to avoid this message?
 
Last edited by Yamanoko,

matpower

Messenger from Zero
OP
Member
Joined
May 5, 2012
Messages
1,103
Trophies
2
Age
24
Location
Best state in Brazil
XP
2,585
Country
Brazil
Can you tell me if this is only my problem or is a common issue instead:
I injected my gba Emerald cartridge's save into GBA VC with Decrypt9. It injects perfectly, but the game says that the save is damaged and a previous save is being loaded (or something like that), but there's no problem since the save works perfect ... suggestions on how to avoid this message?
Your CIA probably uses SRAM instead of Flash, or actually it's the opposite? I haven't played the GBA Pokémon games on GBA VC yet, so I can't help. I would ask where you got your CIA or in a GBA CIA Generator thread like the Ultimate GBA Injector one.

But taking a guess here, it's probably the different save types, try exporting it as SRAM on an emulator and injecting it or export it as Flash and see if it doesn't glitch.
 

Yamanoko

Well-Known Member
Newcomer
Joined
Oct 27, 2015
Messages
92
Trophies
0
Age
31
XP
114
Country
Italy
Your CIA probably uses SRAM instead of Flash, or actually it's the opposite? I haven't played the GBA Pokémon games on GBA VC yet, so I can't help. I would ask where you got your CIA or in a GBA CIA Generator thread like the Ultimate GBA Injector one.

But taking a guess here, it's probably the different save types, try exporting it as SRAM on an emulator and injecting it or export it as Flash and see if it doesn't glitch.

The rom is ripped from my personal cartridge using Gba Backup Tool on my dstwo in a DSlite, also is the save.
The weird thing is that on VBA it says that the battery has run dry but no error about saves, but on GBA VC it says as written above.
Is not a big problem since it keeps saving normally, but read everytime that messag is so annying ...
I also tried to do the whole save thing trough agb_inject but it's the same ...
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan @ BakerMan:
    Have you ever been beaten by a wet spaghetti noodle by your girlfriend because she has a twin sister, and you got confused and fucked her dad?
  • Psionic Roshambo @ Psionic Roshambo:
    I had a girlfriend who had a twin sister and they would mess with me constantly.... Until one chipped a tooth then finally I could tell them apart.... Lol
  • Psionic Roshambo @ Psionic Roshambo:
    They would have the same hair style the same clothes everything... Really messed with my head lol
  • Psionic Roshambo @ Psionic Roshambo:
    @The Real Jdbye, I could see AMD trying to pull off the CPU GPU tandem thing, would be a way to maybe close the gap a bit with Nvidia. Plus it would kinda put Nvidia at a future disadvantage since Nvidia can't make X86/64 CPUs? Intel and AMD licensing issues... I wonder how much that has held back innovation.
  • The Real Jdbye @ The Real Jdbye:
    i don't think nvidia wants to get in the x64 cpu market anyways
  • The Real Jdbye @ The Real Jdbye:
    you've seen how much intel is struggling getting into the gpu market
  • The Real Jdbye @ The Real Jdbye:
    and nvidia is already doing ARM
  • The Real Jdbye @ The Real Jdbye:
    i don't think they want to take more focus away from their gpus
  • Psionic Roshambo @ Psionic Roshambo:
    Yeah I think Nvidia s future lays in AI GPU acceleration stuff if they can get that going it's going to be super interesting in the long term
  • Psionic Roshambo @ Psionic Roshambo:
    AI assisted game creation might become a thing
  • Psionic Roshambo @ Psionic Roshambo:
    At least that's something I think would be pretty cool.
  • Psionic Roshambo @ Psionic Roshambo:
    Don some VR glasses and gloves and talk to the computer and paint entire worlds
  • Psionic Roshambo @ Psionic Roshambo:
    "OK Cortana I want that mountain a little taller and more snow on top, and I would like some random ancient pine forest around the bottom"
  • Psionic Roshambo @ Psionic Roshambo:
    "Now we need a spring fed river flowing down the north side and add some wild life appropriate for the biome"
  • Psionic Roshambo @ Psionic Roshambo:
    Many TBs of assets and the programming of something like that is going to be tough but I think it's something we might see in 20 years maybe sooner
  • The Real Jdbye @ The Real Jdbye:
    @Psionic Roshambo AI assisted game creation is kinda already here, there was recently that AI that can turn any 2D image into a fully modeled 3D object, it's not perfect, but it's a starting point, beats starting from zero
    +1
  • The Real Jdbye @ The Real Jdbye:
    before that there was one to generate a fully modeled scene from a 2D image
    +1
  • The Real Jdbye @ The Real Jdbye:
    but most recently, there was one that actually generates a working unity scene with terrain and textures already set up that you can import right into unity, that's a huge time saver right there
    +1
  • The Real Jdbye @ The Real Jdbye:
    and using LLMs to generate NPC dialogue and even dynamically generated quests is something i'm sure is already happening
    +1
  • The Real Jdbye @ The Real Jdbye:
    will just take some time for games made using those things to be completed and released
    +1
  • K3Nv2 @ K3Nv2:
    @The Real Jdbye, it's bed bath and beyond you nitwit
  • The Real Jdbye @ The Real Jdbye:
    @K3Nv2 you said instructions with pictures, same difference
    The Real Jdbye @ The Real Jdbye: @K3Nv2 you said instructions with pictures, same difference