BlackShark Posted May 10, 2013 Posted May 10, 2013 Hello guys Does anyone of you now where I can find the checksums of the GBA save files (especially Ruby, Saphire, Emerald)? And how can I calculate it? I think it's located at 0x7042 but I'm not sure...
evandixon Posted May 10, 2013 Posted May 10, 2013 I don't see any checksums (or any data) there in Sapphire or Emerald. If it works like it does in 4th and 5th gen games, there's a block of data with a checksum at the end. Try looking there, or where ever a seemingly random 4 byte sequence follows or precedes data. Change things in game and look for that kind of change. If it's like in Black and White, the checksum may be a CRC16-CCITT. Other users may be able to help you more, but if not, post where you think the checksums are and I'll see chat I can do. For all I know, it could be like Mystery Dungeon Explorers of Sky (where data is split into 4 byte "words", added together, and part of the result is the checksum). [Edit] Oh, also look at Pokebox GBA (listed in this thread), because it should be able to fix the checksums for you, helping determine where they are.
BlackShark Posted May 10, 2013 Author Posted May 10, 2013 I already found some information about gen 3 checksum on Bulbapedia (here). I didn't look hard enough... Thank you anyway!
Kaphotics Posted May 10, 2013 Posted May 10, 2013 If you want something concrete, here's a program from 2004 that fixes the checksums for R/S https://dl.dropboxusercontent.com/u/12206225/PSavFixV2.zip included is a readme on how to use it, and the source code. How it calculates checksums: int Chksum(int length, int *Data) { int Chk,i,tmp; length = length>>2; Chk=0; for(i=0; i<length; i++) Chk += Data[i]; tmp = Chk>>16; tmp +=Chk; Chk = (tmp&0xFFFF); return Chk; }
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