I had read about this. I knew I had to add all data substructure values, but I knew the result would be greater than two bytes, so I had the doubt. But it is true, clearing the upper two bytes, both values match (my calculated value and the original value).
I am making a routine to edit the pokémon data. Really, I have already finished it, but I have always obtained a Bad Egg because I wasn't able to discover how checksum was made.
Thanks! ;D