Pokemon gba save file corrupted




















I plugged my Pokemon Silver cart into the Joebags and used the software to read the cart headers, which were all as I expected. I then dumped the ROM from the game. As expected, the game dumped perfectly, and was fully playable in an emulator. Despite being somewhat of a consolation prize I was happy to at least have a backup of my first ever video game.

I thought I may as well try to backup the save file also, expecting an error, but the software successfully wrote a file from my game cart. These are analogous to what stored is the game cart. The data inside is binary data — ones and zeroes.

The value of a byte is the value of the binary number base 2 that the eight bits represent, which ranges from 0 to in decimal base However, bytes are usually expressed in hexadecimal base 16 for simplicity and brevity, meaning the range of a byte is 00 to FF. For example, the range of a byte would be written as 0x00 to 0xFF. Hex values are also used to refer to the location of data the address in a binary file. The bytes in this file represent all of the information about your save, including your trainer name, Pokemon, game progression and such like although not all of the bytes are used.

The known parts of the save data structure are documented in various places online, with the most reliable documentation I found on Bulbapedia. On a whim, I decided to try and open the save file in a Pokemon Generation 2 save editor everyone has one of those laying around, right?

I was wondering what it meant by that until I remembered that the Pokemon save file contains a checksum; likely used by the game to verify that the file is not corrupt. A checksum is basically a value derived from related values in this case, adding up certain values in the save file and taking part of the result , which can then be checked when the save is loaded.

The game does the same checksum calculation on the same values in the save and compares the result with the checksum value in the save file.

If there is the mismatch, the save file is considered corrupted. I could still extract those bytes and put them into another save file if I wanted. Notice the graphical oddities? The next thing I did was try to see if the menu worked, and it did! Everything displayed correctly — my Pokedex, my Pokemon, my pack including some weird items , my trainer card, and my options. What if I managed to modify the save file and somehow fix the corruption?

Like, it was a long shot, but the save file format seemed to be documented, and save file editors exist, so I thought it might be worth an attempt. The save file must contain some information somewhere about the map location of the player, which seemed to be corrupt, so perhaps I could fix that. Thirty minutes later I was sitting back at my computer ready to start debugging the save.

It made a copy of my save with the desired name and moved it into a new directory with a copy of the game, fixed the checksums and opened it in an emulator.

Making copies of the save every time after I made some changes with a descriptive name allowed me to jump quickly back and forth between trying different things.

Unfortunately, initial progress was slow going. I guess this makes sense — if you want to edit your save file, you probably want to change your Pokemon levels or add items to your pack, not move your player location around which is something that is easy enough to do in game. The only references to map data for Pokemon Silver I could find was for map data in the game itself in the ROM , which was useful for people wanting to make ROM hacks custom player made Pokemon games based on the game files.

However, I got extremely lucky with an obscure forum post talking about accessing the map data in the ROM. The first four bytes are 0x18 0x07 0x03 0x03 which tell the starting position of the game as well. This tiny piece of information had so much potential.

I created a new fresh game of Pokemon Silver and saved as soon as I possibly good after the introduction sequence finished. One was at 0x, and the other a mirrored redundancy section of 0x to 0x so effectively it was only in one place.

Posted November 8, edited. You will need: A hex editor. I use Hex Workshop , which is currently free and, as far as I can tell, virus-free. If you're using Hex Workshop, you can download this character filter for it, which lets you read the hexadecimal garble as plaintext on the right side. Also, give the guy some love. To install it, put the. If you're using another hex editor, you can see what hex values correspond to each letter here.

I trust that you have a legitimate copy of the game that you used a ROM-ripper on, and didn't pirate it you cheaty cheater mccheaterson.

PKHex , a save file editing program. Unfortunately, it only comes in not-English, so I'll give the instructions for generating a CIA with it as well.

And please give the creator some love; the non-English programming community doesn't get nearly enough respect, and this is an awesome tool for the community. And yes, it is also virus-free.

It's in Spanish, I know. Just bear with me here. A new tab will open in the program. Click the tab name, then select "Cargar ROM Navigate to the. Since this ROM wasn't hex-edited, pretty much all of the data should autofill. All you need to do is set the icon and 3D banner images for the home screen. You should be able to figure out what the rest means. Also, you can click the "Virtual Console" nameplate thing to change the text displayed there.

Once you have it customized to your liking, right-click the tab again, click "Guardar" to save the project, then click "Exportar CIA Steps to Fix the Save: Follow this guide to dump your Emerald save using GodMode9, and open it in the hex editor of your choice. Scroll to the end of the file, click the blank value at the very very end, and add 65, bytes with the value " 00 ".

In Hex Workshop, you can right click and select "Insert". This is to make the file kb long. Go to offset 0x0FFC search bar at the top middle in Hex Workshop and copy that byte and the byte after it. Each byte is two numbers, e. This is your save index, AKA the number of times you've saved the game, which is how the game distinguishes between "main" and "backup" saves.

Go to offset 0xC , and replace the data from there to 0xC0B4 with Basically just the whole block until you hit the next wall of 00 s. Don't "delete" the data, since that will straight-up delete the bytes from existence instead of zeroing them out.

You'll likely have to do this by hand. If you're using the character filter I mentioned before, you should be seeing some familiar names here. This is the hall of fame data, just in the wrong place in the file.

Go to offset 0xBFF4 and remember the number it holds. Add 1 to the number you just got, and put the number in offset 0xCFF4. Then replace the next two bytes with For the addition: 01 would become 02, 09 would become 0A, 0A would become 0B, and specifically 0D would become Now, the number you just wrote down is the ID of the section that got overwritten.

GBA save data is stored in chunks, and depending on which chunk got overwritten, you'll have to do different things to recover it. NOTE: All but 02 are just theories right now. I'm currently working on testing each individual case. Log In Sign Up.

Keep me logged in on this device Forgot your username or password? Don't have an account? Sign up for free! Why does the game keep telling me corrupted save file? I save and go to bed. I wake up to play it and i try to load game,corrupted save file! Please help! Don't turn off the power. No,I did not do that. Accepted Answer. Ok, I remember one time it said corrupted save file, what does it mean?

It means this file is corrupted and you must start a new game. How to fix? What does it effect? Answered "Hm's slaves" for omega ruby or alpha sapphire? Answered Do pokemon have "Hidden Abilities" in poke'mon sapphire? Ask A Question. Keep me logged in on this device. Forgot your username or password?



0コメント

  • 1000 / 1000