Jump to content

Need help with transferring VBA save to Pokemon Emerald GBA cart.


xyzman

Recommended Posts

Yesterday, while reading this forum, I stumbled upon this thread. It was quite a discovery for me that GBA Backup Tool actually has capacity for restoring game saves back to original carts. I've decided to try it right away. After about 2 hours of trying, I've become frustrated - damn game doesn't want to properly recognize the save!

My hardware for the experiment:

1x DSL

1x DSTT

1x Pokemon Emerald cart, bought from Chinese ebay seller for 3 bucks some time ago.

Software:

VBA (original v.1.7.1)

GBA Backup Tool v.0.21

That's what I've done to reach the desired result.

Try 1:

1. Dumped ROM image from Emerald cart to DSTT card using GBA Backup tool

2. Opened this ROM (let's call it ROM1) in GBA.

3. D/led an SPS (Gameshark save) file from GameFAQs.

4. Imported SPS file to ROM1 Emerald game using Import->Gameshark Snapshot menu.

5. Saved twice using in-game menu (as some instruction found on Internet suggested).

6. Closed VBA

7. Copied resulting .sav file (let's call it SAV1) to DSTT card

8. Ran GBA Backup Tool with Emerald cart in second slot. R->(selected SAV1)->A. At this point I got a red message saying "The specified SAV file is a file that is smaller than the save area of ROM". Pressed A to "confirm", but nothing happened.

9. Here I've noticed that save type here is Flash 1Mbit, so I've decided to convert 64kb file containing SAV1 to 128kb one by duplicating information (i.e. write file contents starting from both 0x0 and 0x10000 offsets).

10. Copied resulting .sav file to DSTT card and ran GBA Backup Tool again. R->(selected new 128kb sav.)->A->A. Got a nice progress bar.

11. Rebooted the DS without slot 1 card, received in-game message: "The save file is erased due to corruption". D-oh

Try 2. I wondered if something is wrong with my ROM image and d/led a clean Emerald ROM off torrents.

1. Re-named the d/led ROM (ROM2) so there wouldn't be any previous save files.

2. Opened ROM2 in GBA.

3. Imported the SPS file from last attempt to the game using Import->Gameshark Snapshot menu.

4. Saved twice using in-game menu.

5. Closed VBA. At this point the save file was 128kb in size (let's call it SAV2)!

6. Copied resulting .sav file to DSTT card and ran GBA Backup Tool. R->(selected sav.)->A->A. Got a nice progress bar.

7. Rebooted the DS without slot 1 card, received THE SAME in-game message: "The save file is erased due to corruption".

Next I've tried to substitute saves between two ROMs. ROM1+SAV2 = no error in VBA, ROM2+SAV1 = the same.

I've decided to try and repeat the process for both tries 1 and 2, but saving once at step 5 and 4 respectively. ROM2+SAV1 = same result. But the interesting thing, using ROM1+SAV2 together resulted to loading the previous save point (Battle Frontier instead of Navel Rock)!

At this point I've tried to see if ROMs differ using GBATA.

My dumped ROM:

-----------------------------------------
Software Title: POKEMON EMER
Game Serial:    AGB-BPEE-USA
Maker Code:     01
Publisher:      Nintendo
Version:        1.0
Logo Code:      OK
Complement:     72h
Save Type:      FLASH1M_V103 (1024Kbit) (Patched)
File Size:      256 mbit (33554432 bytes)
CRC32:          35E46547
-----------------------------------------

"Clean" ROM off Internet

-----------------------------------------
Software Title: POKEMON EMER
Game Serial:    AGB-BPEE-USA
Maker Code:     01
Publisher:      Nintendo
Version:        1.0
Logo Code:      OK
Complement:     72h
Save Type:      FLASH1M_V103 (1024Kbit)
File Size:      128 mbit (16777216 bytes)
CRC32:          1F1C08FB
-----------------------------------------

Yes, the cart off ebay was not only a fake, but some patched fake. Anyway, I googled the CRC32 values, confirmed that my downloaded ROM is indeed clean, however, I found no mention of patched ROM checksum anywhere. I remembered that in the old Emerald days there were save problems because of non-standard battery file size (or type), which were solved by next VBA update. So I've tried to experiment with VBA.

After some time, I found that ROM1 uses SRAM save type (if you select other modes, then the ROM freezes on both save and load) and ROM2 uses FLASH save type.

My question is: except of throwing fake game cart away, is there any way for me to progress in making the GBA game see the imported save? While I cannot upload ROMs, I'm attaching both SAV1(trm_pmeu2.sav) and SAV2(trm_pmeu.sav).

trm-pmeu..sav

trm-pmeu2..sav

trm-pmeu..sav

trm-pmeu2..sav

Link to comment
Share on other sites

I've started new game and transferred the save from it to computer(attached).

Trainer name: XYZMAN

Trainer ID: 00003 (0x0003)

Found at offsets 0x8000 and 0x18000

First pokemon in party:

Mudkip, named KLMNOP

Found at offset 0x9238 and 0x19238.

When I try to use this file with ROM1 in VBA, I get the same "Save file erased due to corruption" message. I've turned my DS off, removed the GBA cart for a while, and dumped the save again => save file matches the previous one byte-by-byte.

POKEMON_EMER_BPEE00&.sav

POKEMON_EMER_BPEE00&.sav

Link to comment
Share on other sites

My guess as to why you got the corruption message is because of the fact that both halves of the save were identical, I would download a save off of gamespot, import it, and see if it recognizes it, then when if it does find out which half is the current half. After that copy your 64k save to the non current half, and then invalidate the current half so that it is forced to load the "previous" save.

Link to comment
Share on other sites

I've spent another bit of time on it, and got some interesting though negative results.

As a side note, I've tried actually playing the game this time. I've received the "Save file is corrupted" message the second time I booted up the game after poweroff. I just happened to browse Smogon forum and they reported the same problem with bootleg carts. The hardware used in these bootleg carts is fucking unreliable - it utilizes a battery (which is held into position by cart lid and a pair of flexible contacts!) and volatile memory, pretty much like in GB age... I've unscrewed the cart lid and soldered the battery in securely. After that, I was at least sure that I won't get save corruption message because of battery failure.

Anyway, I played the game up to the point I get some useful or interesting pokemon to utilize Pal Park, backed up a save file using DSTT, inserted HG into slot 1, went to transfer menu and the game hung. After that, I've accidentally loaded Emerald instead of HG and got the "save file is corrupted" message once again! Repeated like 10 times with the same result. Apparently, Gen 3 save formats recognized by Gen 4 and whatever one this bootleg cart peruses are incompatible. Not only that, but when I imported the save file from Emerald after this crash, I got the random mix of FF and 00 bytes with no pokemon info or trainer info whatsoever.

So it seems that this bootleg cart even less useful as a ROM+emulator pair... unless you want to play Gen 3 games on DS and don't have a slot 1 card that supports GBA emulation.

I'll have yet try DBB's advice (just for sake of it) but can anyone please look at the attached IPS (CRCs for original/modified ROMs are 1F1C08FB/35E46547) and tell me what the change does?

bootleg..zip

bootleg..zip

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...