Question about GBA saves

Discussion in 'R4 DS' started by anark-e, Nov 30, 2007.

  1. anark-e
    OP

    anark-e Member

    Newcomer
    32
    0
    Jun 8, 2007
    United States
    Okay, I have a DS Lite with an R4, and I just recently got an EZFlash 3-in-1 for my slot-2.

    So here's the problem. Being that FF6 is my favorite game, I bought FF6 Advance when it came out so I could have it with me at all times, then I got the 3-in-1 a few months later.

    What I need, and I don't even know if such a thing exists, is a method for getting my save off the original FF6A GBA cart so I can use it on my 3-in-1. Yes, I'm lazy and trying to avoid switching carts.

    It's my favorite game so I'll be starting from the beginning again eventually anyway. But I was over halfway through the game, and I'd like to finish that playthrough on my 3-in-1 if possible.

    Anyone have any ideas? Like I said, I'm not even sure it's possible, but I'd like to find out.
     
  2. Eyedunno

    Eyedunno GBAtemp Regular

    Member
    142
    0
    Oct 20, 2007
    It is possible, just that there isn't yet such a program for slot-1 cards. There's something called cart_save.gba that works with slot-2 cards that support DLDI (it involves swapping), but I seriously doubt it will work with the 3-in-1, as the 3-in-1 doesn't have a FAT filesystem. I too can't wait to see a program like this though.

    Actually, GBALDR allows you to copy saves, but only SRAM saves, and I would guess that FF6 is EEPROM.

    So yeah, hopefully some coder is listening.
     
  3. anark-e
    OP

    anark-e Member

    Newcomer
    32
    0
    Jun 8, 2007
    United States
    I actually checked because of what you said, and FF6A does use SRAM for saves. Of course this prompted me to go get GBALDR.

    Unfortunately, GBALDR recognized that my GBA cart was not a 3-in-1, and would not let me proceed. So for now it looks like I'll be either starting over or using my original cart when I want to play FF6A.

    As you said, hopefully some coder reads this and thinks it's a good idea.
     
  4. DanTheManMS

    DanTheManMS aka Ricochet Otter

    Member
    4,330
    107
    Jun 2, 2007
    United States
    Georgia
    Look into EEPINATOR. It can handle GBA SRAM saves from what I've heard.
     
  5. anark-e
    OP

    anark-e Member

    Newcomer
    32
    0
    Jun 8, 2007
    United States
    This is absolutely what I needed. It had no problem taking the save data from my FF6A cart and putting it on my microSD.

    The problem now is that the save from the cart is not recognized by the 3-in-1. Since the file from the cart is 64KB and all the GBA saves that were created by my 3-in-1 are 128KB, I'm guessing the format is different.

    As such, I'm currently looking for a converter that will turn a real GBA save file into a 3-in-1 compatible save file. That seems to be the last thing I need before I can play my cart save on my 3-in-1.
     
  6. Destructobot

    Destructobot Crave the Hammer

    Member
    5,005
    5
    Oct 15, 2006
    United States
    Portland, OR
    The save format is the same, only the file size is different. All you need to do is pad the file to 128KB. I wrote a Windows batch script that does that automatically. You can download it here: http://www.zshare.net/download/528669414b87dd/

    Just extract all of the files to a folder, then drag & drop the save onto the 'pad to 128KB.bat' file.

    If you don't want to use the script, or you aren't using Windows, you can use a hex editor to fix up the file. Open the 64KB file in the hex editor, select the entire file, paste it onto the end of itself, and save. That should give you a 128KB file that you can use with the 3-in-1.
     
  7. Lumstar

    Lumstar Princess

    Member
    3,641
    90
    Mar 6, 2006
    United States
    Darling
    So there ARE flash carts for GBA that supports 128KB save files!? I've been asking here, and can't get a straight anwser. Many internets go to whoever confirms the existance of one. [​IMG]
     
  8. Destructobot

    Destructobot Crave the Hammer

    Member
    5,005
    5
    Oct 15, 2006
    United States
    Portland, OR
    The 3-in-1 supports 128KB saves, but it has some limitations. The M3 and G6 slot 2 carts and the EZ4 all support 128KB saves.

    It doesn't matter all that much for the most part, because nearly every game that uses 128KB saves works just fine when you use GBATA to patch it to use 64KB saves. They may give save errors when they start, but the saves do work.
     
  9. anark-e
    OP

    anark-e Member

    Newcomer
    32
    0
    Jun 8, 2007
    United States
    Okay... First off, thank you Destructobot for the batch script.

    Now, unfortunately my problem seems to be a bit more complicated than I thought.

    Eepinator seems to have no trouble copying the SRAM data from my FF6A cart to my R4DS microSD. However, upon closer inspection it doesn't seem to actually be copying anything.

    I end up with a file that seems to have no actual data in it. It's just 64KB of whitespace.

    I'm not sure how to proceed from here, except to try to find a different program to pull the SRAM data from my GBA cart. There's really no information on Eepinator to tell me what the cause of this issue is.

    I've included the file being produced by Eepinator, if anyone wants to look at a bunch of nothing. You can find it here. It has been renamed for use as a 3-in-1 save file, but is otherwise untouched.

    If anyone knows of any other programs like Eepinator, or knows what I might be doing wrong with Eepinator (I'm using the "GBA SRAM --> FAT" option), I'd appreciate the help.
     
  10. Destructobot

    Destructobot Crave the Hammer

    Member
    5,005
    5
    Oct 15, 2006
    United States
    Portland, OR
    You should try GBALdr (again). To get into dumping mode you need to be holding R before it starts up. Otherwise, it will start normally and give you the '3-in-1 not detected' error. GBALdr may not work either, though. It can read the SRAM from some games, but not others. If it doesn't work it will give you a blank file just like eepinator did.

    Important edit: Make sure you have at least 33MB free on your microSD card before you try to dump the game with GBALdr. If you don't have enough free space, you may end up with a corrupted memory card.

    The SRAM file you get from GBALdr will be 512KB, so you'll need to trim it down to 128KB. My app of choice for this is File Trimmer, but a hex editor would also work.
     
  11. anark-e
    OP

    anark-e Member

    Newcomer
    32
    0
    Jun 8, 2007
    United States
    Sorry to waste your time Destructobot, no need for any of that.

    While I was looking for another program, and waiting for replies with potential solutions, frustration got the best of me.

    On a whim, I tried Eepinator one more time, but this time I did "GBA SRAM --> FAT" twice. Then I plugged my microSD into my PC to check the results.

    The first file was empty, as with my last attempt. The second, however, was full of actual data. I ran it through your script to pad the file to 128KB and put the newly padded file into my GBA save directory on my microSD. Then I started FF6A through my 3-in-1, and it showed my save data and allowed me to load my game. Works beautifully.

    Thanks so much to everyone who helped me, and for anyone who's trying to do this, here's a brief overview of what I did:

    1. Get Eepinator and Destructobot's padding script (which can be found in his first post in this thread).

    2. Put your original GBA cart in your DS, start Eepinator through your flash cart, and use the "GBA SRAM --> FAT" option. Note that you might want to do this multiple times, as it did not always succeed for me.

    3. Open up the resulting file in a text editor and see if it's blank. If it's not blank you're fine. If it is blank then repeat step two.

    4. Use Destructobot's 128K padding script on the file. This is done by simply dragging and dropping your save file onto the file named "Pad to 128KB.bat".

    5. Put the padded save file (the script puts it into a newly created directory) into the SAVE subdirectory of your GBA directory on your microSD card.

    6. Start your game through the 3-in-1. If you followed these steps (and nothing unforeseen went terribly wrong), your GBA cart's save should be present on your 3-in-1 now.
     
  12. Destructobot

    Destructobot Crave the Hammer

    Member
    5,005
    5
    Oct 15, 2006
    United States
    Portland, OR
    Interesting. I can confirm that using the "GBA SRAM --> FAT" option twice in a row will produce one blank file and another file with the save in it. I was able to get the save off of Metroid Fusion this way, which I had not been able to do with GBALdr.
     
  13. MadBob

    MadBob Nostalgia ain't what it used to be!

    Member
    1,532
    3
    Nov 6, 2002
    You tried one of Rudolph's Tools NDS Backup Tool Slot2 v0.31 (2007/8/16) sounds like GBA cart save backup, I could be wrong though [​IMG]
     
  14. Scytheandsickle

    Scytheandsickle GBAtemp Regular

    Member
    253
    0
    Jun 23, 2007
    What type of save is pokemon emerald?
     
  15. Destructobot

    Destructobot Crave the Hammer

    Member
    5,005
    5
    Oct 15, 2006
    United States
    Portland, OR
    FLASH1M_V103 (1024Kbit)


    Edit:
    I think that tool is for dumping DS games and backing up & restoring saves from DS games, using a slot 2 flashcart that supports DLDI (G6 Lite, Supercard, etc.).
     
  16. Scytheandsickle

    Scytheandsickle GBAtemp Regular

    Member
    253
    0
    Jun 23, 2007
    Does EEPINATOR work with FLASH1M_V103 (1024Kbit)?
     
  17. Destructobot

    Destructobot Crave the Hammer

    Member
    5,005
    5
    Oct 15, 2006
    United States
    Portland, OR
    Nope.


    Edit: The only app I know of that will work on a DS and read all GBA save types is cart_save. It's a GBA app, so it can't be run from a slot 1 cart. It requires DLDI support on the slot 2 cart to read saves, so you cannot read saves from a GBA cart with the 3-in-1 (you can write saves using the 3-in-1 and the Flashcart SRAM DLDI interface though).