xyzman Posted January 26, 2012 Share Posted January 26, 2012 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 Link to comment Share on other sites More sharing options...
xyzman Posted January 26, 2012 Author Share Posted January 26, 2012 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 Link to comment Share on other sites More sharing options...
Delta Blast Burn Posted January 26, 2012 Share Posted January 26, 2012 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 More sharing options...
xyzman Posted January 30, 2012 Author Share Posted January 30, 2012 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 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now