Jump to content
  • Extracting and Injecting Save for Bootleg GBA Pokémon Carts

    Preface

    Recently, it has been getting harder and harder to find legitimate affordable copies of Generation 3 Pokémon games online. For one reason or another, regardless if it is due to sheer ignorance or nonchalance, people have been acquiring bootleg Pokémon carts. Together with other sites, such as emulator support sites, we have noticed an influx of requests relating to reading and editing saves of such games.

    Frankly, I would much recommend that if you own such a cart, to nab the save and use it on a legitimate retail cart instead, as those are way way more reliable. But in any case:
    This tutorial isn't to judge why people get bootleg carts.
    This tutorial would not work for every bootleg cart; this tutorial is aimed at the carts that store the save files as part of the ROM.

    As a disclaimer, I would like to:
    1. Remind everyone that ROM files are not to be uploaded to our site
    2. Warn people to not do this many times, as I am not sure how many flash read/write cycles these carts can take
    (basically, do too many times, and risk breaking your cart)
    3. This method will not work for every GBA repro in existence. You run the risk of bricking your GBA repro cart.
    4. A minor issue, but due to how these carts handle saves, Hall of Fame  data would not be intact.


    Necessary programs and files

    1. Loads of patience, and also the ability to read and follow steps
    2. A NDS or NDS Lite. (Neither DSi nor DSi XL nor any 3DS/2DS model.)
    3. NDS flashcart of some kind
    4. gbabf_1.2.7z (Source: https://gbatemp.net/download/gbabf.37005/)(https://gitlab.com/Fexean/gbabf)
    5. Bootleg Pokémon GBA Extractor and Injector

    Must-do for first timers

    YOU MUST MAKE A BACKUP OF YOUR ENTIRE BOOTLEG GBA ROM, IN CASE ANYTHING GOES WRONG!

    Spoiler

    1. Run the gbabf.nds on your NDS/NDS Lite, via the NDS flashcart. Have the GBA cart inserted into Slot-2 (the GBA slot)

    2. Select Detect Flash and take a photograph of the entire detected configuration that the screen shows you. This may be useful later on when trying to restore the cart, if you somehow bricked it. Not everyone has the same configuration and you shouldn’t try to use someone else’s on your cart.

    3. Now, select Dump Data
    gbabf_1.2__2835.png

    4. Select 00 as the Dump Offset
    gbabf_1.2__29710.png

    5. Select 32 Mbytes as the Dump Size
    gbabf_1.2__20203.png
    (Yes, I'm aware that this is bigger than the standard size of Pokémon ROMs. Just matching the size of GBA Backup Tool)

    6. Wait for the dumping to complete. You'll see a progress bar at the bottom screen of your NDS, not dissimilar to this
    IMG_E8613.JPG

    7. Once the dumping is complete, it'll appear on your top screen, not dissimilar to this:
    IMG_E8612.JPG

    8. Once done, turn off the NDS. Remove the flashcart. Read the flashcart's SD card on your computer. Go into GBA_Backup
    image.png

    9. The file that you just dumped would be in the folder. In this case, this is the file I just dumped.
    image.png
     

    10. Please keep a copy unedited and in a safe location on your computer.
     


    Make sure you keep this file as a safe unedited backup somewhere on your computer. If anything goes wrong, this is the file you'll restore to your cart.


    Regular steps

    Spoiler

    -1. Seriously, if you do not have a safe unedited backup of the entire bootleg cart, perform the Must-do for first timers first

    0. You must already have played the cart, received a starter, checked your boxes in the PC, and saved the game at least twice.

    1. Run the gbabf.nds on your NDS/NDS Lite, via the NDS flashcart. Have the GBA cart inserted into Slot-2 (the GBA slot)
    [Your screens would likely look different]
    image.pngimage.png

    2. Select Dump Data
    gbabf_1.2__2835.png

    3. Select 00 as the Dump Offset
    gbabf_1.2__29710.png

    4. Select 16 Mbytes as the Dump Size
    gbabf_1.2__9179.png

    5. Wait for the dumping to complete. You'll see a progress bar at the bottom screen of your NDS, not dissimilar to this
    image.png

    6. Once the dumping is complete, it'll appear on your top screen, not dissimilar to this:
    image.png

    7. Once done, turn off the NDS. Remove the flashcart. Read the flashcart's SD card on your computer. Go into GBA_Backup
    image.png

    8. You will see the file. You must move this file to somewhere else on your computer
    image.png -> image.png

    9. Launch the Bootleg GBA Save Extractor and Injector program.
    image.png

    10. Open the file
    image.png

    11. Wait for progress to complete.
    https://pporg-cdn.nullcontent.net/monthly_2023_05/Capture2.PNG.929c31bd3f1ddc3f37defe23d6d3214e.PNG

    12. Once the saves are found, select Extract
    image.png

    13. The save would appear in directory that the game is stored in.
    image.png

    14. You may now edit the save as you like on PKHeX. (look here if you've never edited a save)

    15. To now inject the save back into the game, select Inject
    image.png

    16. Select the save. I'll be selecting a different save.
    image.png

    17. Once done, you would hear a ping, and the text here would update to show that injection is done
    image.png

    18. Copy the edited game back to your SD card
    image.png

    19. Now place the SD card back into your flashcart, run the gbabf.nds on your NDS/NDS Lite, while the Bootleg GBA cart is inserted into Slot-2 (the GBA slot).

    20. Select Flash ROM
    gbabf_1.2__25557.png

    21. Select the game to flash
    image.png

    22. Select Auto Detect
    image.png

    23. Wait as it proceeds to flash the game. The status will show up on your bottom screen.
    image.png

    24. Once it is done, it'll show the status in the top screen
    image.png

    25. Now play the game. If it's all went well, it should show the progress of the save you injected!
    image.pngimage.png


    I cannot stress this enough. I am not sure how many flash read/write cycles these carts can take, so constantly reflashing your cart is likely to shorten its lifespan. If you can, grab the save and transfer it to a retail legitimate cart and carry on playing from there.

    Also, I am aware there is a Flash data option, which you can specify size of save and location to flash to. But that doesn't seem to work for Pokémon games, as their saves are too far into the ROM, in terms of offset.

    In any case, congratulations on your quest to edit your save on your bootleg cart!


     

    • Like 3



    User Feedback

    Recommended Comments



    6 hours ago, Yuya said:

    Hiya, just want to check if anybody has experience this one, i followed the instructions here, it worked for a while, then suddenly the injector tool does not work anymore. It can still extract the save file but injecting it back does not work. There's no error message, the message that it injects successfully is still there. however if you extract the save file again, the save file was not really injected back. if that makes sense

    And how would you know the save file wasn’t injected back?

    also, don’t rename the extracted save.

    Share this comment


    Link to comment
    Share on other sites

    14 hours ago, theSLAYER said:

    And how would you know the save file wasn’t injected back?

    also, don’t rename the extracted save.

    didnt rename the save file. here's photos of what i've recently done. as you can see, the deoxys ive placed in box 1 using pkhex was not carried over to the save file as seen on the last screenshot

    extraction.jpg

    Default save.jpg

    modified save.jpg

    Overwrite.jpg

    injection complete.jpg

    20250322_153336.jpg

    20250322_153342.jpg

    20250322_155059.jpg

    another thing i used to quickly verify, is on the same gba extractor, after injecting the save file, i extract it again and run on pkhex to see if there are any changes on the extracted save file.

     

    previously the injector works fine. dont know what happened.

    Edited by Yuya

    Share this comment


    Link to comment
    Share on other sites

    7 hours ago, Yuya said:

    didnt rename the save file. here's photos of what i've recently done. as you can see, the deoxys ive placed in box 1 using pkhex was not carried over to the save file as seen on the last screenshot

    extraction.jpg

    Default save.jpg

    modified save.jpg

    Overwrite.jpg

    injection complete.jpg

    20250322_153336.jpg

    20250322_153342.jpg

    20250322_155059.jpg

    another thing i used to quickly verify, is on the same gba extractor, after injecting the save file, i extract it again and run on pkhex to see if there are any changes on the extracted save file.

     

    previously the injector works fine. dont know what happened.

    Can you try making a copy of the save bin to your desktop, rename the file (maybe to ruby edited.bin), then try to use the tool, then afterwards send the save back to your cart?

    If that doesn't work, may need to get files from you (we will need to trim it and take the part after the ROM, to make sure I don't get the ROM)

    Share this comment


    Link to comment
    Share on other sites

    On 3/22/2025 at 11:20 PM, theSLAYER said:

    Can you try making a copy of the save bin to your desktop, rename the file (maybe to ruby edited.bin), then try to use the tool, then afterwards send the save back to your cart?

    If that doesn't work, may need to get files from you (we will need to trim it and take the part after the ROM, to make sure I don't get the ROM)

    yeah it didnt work either, whats the next step how do i trim it/

    Share this comment


    Link to comment
    Share on other sites

    This tool is really good, but it doesn't work on gb and gbc file, are there any tool that work like this for the gb and gbc file ? i got a bootleg pokemon blue and gold that work the same way as these gba rom, i don't know how to get the save out or flash new save back in, i do have access to a gbflash to dump the rom and write the modified rom back in

    Share this comment


    Link to comment
    Share on other sites

    1 hour ago, squall1989 said:

    This tool is really good, but it doesn't work on gb and gbc file, are there any tool that work like this for the gb and gbc file ? i got a bootleg pokemon blue and gold that work the same way as these gba rom, i don't know how to get the save out or flash new save back in, i do have access to a gbflash to dump the rom and write the modified rom back in

    not that I know of.

    Share this comment


    Link to comment
    Share on other sites

    On 1/5/2025 at 11:56 PM, 7_Erik_7 said:

    EDIT: SOLVED MY ISSUE

    I recently focused on setting my R4 firmware right, so I tried out different alternatives. In the end I installed one with the Twilight Menu and decided to solve this bootlegs' issue. To my surprise GBABF now works.

    So this is my advice for anyone having trouble: set your R4 like this guy here https://youtu.be/PCtKQXIWbbM?si=uRyigsKB80j5XmSm.

    Just wanted to share that the likely cause of my issue appears to be the R4 firmware setup rather than a new wave of bootleg cartridges. @Leif6174 this might work for you too.

    Edited by 7_Erik_7
    Added more context to my answer

    Share this comment


    Link to comment
    Share on other sites

    On 3/22/2025 at 7:20 PM, theSLAYER said:

    Can you try making a copy of the save bin to your desktop, rename the file (maybe to ruby edited.bin), then try to use the tool, then afterwards send the save back to your cart?

    If that doesn't work, may need to get files from you (we will need to trim it and take the part after the ROM, to make sure I don't get the ROM)

    I am also having this issue, for some reason the injector tool can't inject the save data back into the bin file

    Share this comment


    Link to comment
    Share on other sites

    8 hours ago, Thoran said:

    I am also having this issue, for some reason the injector tool can't inject the save data back into the bin file

    Try this: 

    On 4/26/2025 at 6:57 AM, theSLAYER said:

    Someone on the main page of the repro cart program mentioned GBABF worked after they changed their R4 cart setup, maybe give that a try (do backup the original setup that worked for you. When I get time I shall upload my setup..)

     

    Share this comment


    Link to comment
    Share on other sites

    3 hours ago, theSLAYER said:

    Try this: 

     

    Getting the same result, can dump and extract just fine no matter the software used, it just seems for whatever reason the injecting isn't working

    Share this comment


    Link to comment
    Share on other sites

    On 6/24/2025 at 3:28 AM, Thoran said:

    Getting the same result, can dump and extract just fine no matter the software used, it just seems for whatever reason the injecting isn't working

    Out of the few repros I tested, one seemed like it couldn’t be injected—just like yours.

    At one point, I accidentally reflashed it with an empty file. The cart was bricked and wouldn’t load anymore. Simply reflashing it with its original ROM made it work again.

    This confirms -> flashing works.

    The issue might be either:

    1. Injection doesn’t actually happen—the ROM isn’t overwritten (though I’d expect some kind of error message in that case), OR
    2. The save data being read is stored elsewhere in the ROM, and the injector targets the wrong section.

    Try comparing the two ROM versions (before and after injection) to check if the injector is making any changes, by checking file size or using another method.

    Share this comment


    Link to comment
    Share on other sites

    3 hours ago, 7_Erik_7 said:

    Out of the few repros I tested, one seemed like it couldn’t be injected—just like yours.

    At one point, I accidentally reflashed it with an empty file. The cart was bricked and wouldn’t load anymore. Simply reflashing it with its original ROM made it work again.

    This confirms -> flashing works.

    The issue might be either:

    1. Injection doesn’t actually happen—the ROM isn’t overwritten (though I’d expect some kind of error message in that case), OR
    2. The save data being read is stored elsewhere in the ROM, and the injector targets the wrong section.

    Try comparing the two ROM versions (before and after injection) to check if the injector is making any changes, by checking file size or using another method.

    Another way is to play the modified ROM on an emulator. See what game is loaded and what save is being shown. After all, maybe for a particular type of cart with a particular type of ROM, it’s possible that there more than one save. I mean, you evidently *could* reflash, but maybe the save is stored differently then expected.

    For that game, what is the name of the save extracted using the program, and how many saves do you get? (I want to determine the hex address of the save and then ask you to use a hex editor to extract everything after that point; I don’t want any ROM data to be accidentally extracted and sent)

    Share this comment


    Link to comment
    Share on other sites

    On 6/25/2025 at 1:27 PM, 7_Erik_7 said:

    Out of the few repros I tested, one seemed like it couldn’t be injected—just like yours.

    At one point, I accidentally reflashed it with an empty file. The cart was bricked and wouldn’t load anymore. Simply reflashing it with its original ROM made it work again.

    This confirms -> flashing works.

    The issue might be either:

    1. Injection doesn’t actually happen—the ROM isn’t overwritten (though I’d expect some kind of error message in that case), OR
    2. The save data being read is stored elsewhere in the ROM, and the injector targets the wrong section.

    Try comparing the two ROM versions (before and after injection) to check if the injector is making any changes, by checking file size or using another method.

    funnily enough, when I first started on this Emerald repro I wanted to make a small change, couldn't inject it, I accidentally flashed it with something that wasn't the rom and bricked it. When I flashed with the injected rom it worked. I attempted the steps I took last time and the results aren't replicating this time. I am new to this so how would I go about comparing the roms?

    Share this comment


    Link to comment
    Share on other sites

    On 6/25/2025 at 5:03 PM, theSLAYER said:

    Another way is to play the modified ROM on an emulator. See what game is loaded and what save is being shown. After all, maybe for a particular type of cart with a particular type of ROM, it’s possible that there more than one save. I mean, you evidently *could* reflash, but maybe the save is stored differently then expected.

    For that game, what is the name of the save extracted using the program, and how many saves do you get? (I want to determine the hex address of the save and then ask you to use a hex editor to extract everything after that point; I don’t want any ROM data to be accidentally extracted and sent)

    I tried a couple of different dumps from this guide and the guide you linked in your previous reply, with this guide it was extracting 2, and with gba backup tool it is extracting 2. The name of the save is "save0-2025-06-23 20-53-51-0xFC0000-halfpatched" and if it had 2 saves it would have one that would be the same but have a 1 so "save1-2025-06-23 20-53-51-0xFC0000-halfpatched".

    Share this comment


    Link to comment
    Share on other sites

    Hey ive gotten to the point of successfully extracting the save from my repro ruby, I want to be able to play my save on my emulator but when I load my save i get the save corruption message and while everything seems to work I can no longer save the game anymore. I ran the checksum with PKHex which turned out fine and exported the save but that didnt fix the issue. Is this an expected behavior? Is the only way i can use my save to simply reinject it into my repro copy?

    Share this comment


    Link to comment
    Share on other sites

    1 hour ago, jokerbokerpalala said:

    Hey ive gotten to the point of successfully extracting the save from my repro ruby, I want to be able to play my save on my emulator but when I load my save i get the save corruption message and while everything seems to work I can no longer save the game anymore. I ran the checksum with PKHex which turned out fine and exported the save but that didnt fix the issue. Is this an expected behavior? Is the only way i can use my save to simply reinject it into my repro copy?

    might be an issue with the settings of the emulator, or settings related to importing the save. It probably is importing the save in the wrong size (given PKHeX can read it..)

    Share this comment


    Link to comment
    Share on other sites

    16 hours ago, theSLAYER said:

    might be an issue with the settings of the emulator, or settings related to importing the save. It probably is importing the save in the wrong size (given PKHeX can read it..)

    I tried mGBA and VBA same result from both, what size should a ruby save be? the size i have is 128 KB (131,072 bytes) 

     

    Share this comment


    Link to comment
    Share on other sites

    5 hours ago, jokerbokerpalala said:

    I tried mGBA and VBA same result from both, what size should a ruby save be? the size i have is 128 KB (131,072 bytes) 

     

    I think the size you're looking at should be right, to problem may be what save size the emulator expects.

    For VBA, it should be something similar to this
    image.png
    (I'm saying similar because I'm aware there's different versions people use)


    Once you're done, launch the game. Even if the save doesn't launch right, select "Import Battery File" (it is currently greyed out for me as I am not playing anything) then soft reset the emulator.
    image.png

    I don't use mGBA so can't help there, but the options should be something similar I reckon.

    Share this comment


    Link to comment
    Share on other sites

    I downloaded the same version of VBA you have and set the flash and file size and then imported the save but it still hangs when i try to save the game. 

    Share this comment


    Link to comment
    Share on other sites

    1 hour ago, jokerbokerpalala said:

    I downloaded the same version of VBA you have and set the flash and file size and then imported the save but it still hangs when i try to save the game. 

    I’m assuming you’re using the ROM of your bootleg card, and maybe there’s issues relating to saving for the bootleg ROM. You’re gonna have to check that out yourself :/

    Share this comment


    Link to comment
    Share on other sites

    Whenever I try to inject a save file, it doesn't work. If I try to load it in VBA it either completely freaks out and just doesn't read my save or it loads a previous save. Whenever I open up my bin file, it states that there's currently four saves on it. Is there any way to inject a save onto a blank .bin file? Whenever I try, it just doesn't let me do anything in the program.

    Share this comment


    Link to comment
    Share on other sites




    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...