I reply the same that I put in gbatemp:
I made a bit of researcher in the save files and this is what I found:
- The size of 1 "save state" is 0x24000.
- In the file (512 KB) there are 2 "save state" (just like before), however, the second "save state" does not begins in the offset 0x40000, but 0x24000.
- This seems that in the "save state" is only one block/footer, it is in the offset 0x23F8C with 16 byte of
size.
- The footer structure is (little endian):
--- 0x0: Current number of save count (uint).
--- 0x4: Size of the block (it is 0x23F9C) (uint)
--- 0x8: Constant of the game (in White is 0x31053527) (uint).
--- 0xC: Padding = 00 00 (ushort)
--- 0xE: Cheksum (unknow to me).
Well, the checksum, the most important thing, seems to be changed, I don't know if this is still CRC16, but maybe (I thinks so) GF just changed the initial value or the final XOR value, but I don't know how to find this.
However, the pokemon structure DON'T changed, and fact, anybody can manualy put a pokemon of 4 generation (.bin extension) in the save with the correct offset (but ofcourse too, fixed the checksum), except the size of the pokemon in the party, now is 220 bytes.
This is another usefull offsets:
- Party pokemons: 0x18E08
- Box pokemons: 0x400
- Trainer name: 0x19404
-
PD: I hope that my english can be understand ^ _ ^ U.