Just out of genuine curiosity, how can a checksum provide protection to external corruption?
it provides detection, not protection.
write out the entire savegame file, adding up the bytes as you go, or write it out then read in and add up the bytes. this gives you a checksum. the sum of all the bytes in the file added together. you then store the checksum someplace like the end of the file. when you read the file in, you add up the bytes again, and check the result vs the stored checksum. if they don't match, you know the file has been corrupted.
crc checks are similar, but reduce the chance that two erroneous bytes might cancel each other out and leave a simple checksum thinking everything was ok.
there are also methods of error correction coding where all stored values differ by at least 3 bits. so an off by one bit error can be error corrected to the closest legit value. as i recall, EBDIC is an example of this. such codes are commonly used in telecom and networking protocalls, where transmission errors are a concern.