24
edits
(Added section for checksums; added TO DO list to complete article.) |
(Removed my outdated discussion re: checksum.) |
||
Line 29: | Line 29: | ||
== Checksum == | == Checksum == | ||
* I found another way to calculate checksum. I analyzed a software, Legit.exe and it use another algorithm. It divides the 80 bytes that describe the pokemon in groups of two bytes (words). The groups are added to each other. You take the last word's bytes. Note: you must adjust the bytes of words (from little endian to big endian), sum it, adjust it again and then divide the result. XX YY ZZ AA BB CC (the 80 bytes) -> YY XX AA ZZ CC BB (adjusted words) -> YY XX + AA ZZ + CC BB (sum) -> MODULE 0x100 (take the last word) -> MM NN (checksum) -[[User:Whivel|Whivel]] 16:14, 9 July 2008 (UTC) | * I found another way to calculate checksum. I analyzed a software, Legit.exe and it use another algorithm. It divides the 80 bytes that describe the pokemon in groups of two bytes (words). The groups are added to each other. You take the last word's bytes. Note: you must adjust the bytes of words (from little endian to big endian), sum it, adjust it again and then divide the result. XX YY ZZ AA BB CC (the 80 bytes) -> YY XX AA ZZ CC BB (adjusted words) -> YY XX + AA ZZ + CC BB (sum) -> MODULE 0x100 (take the last word) -> MM NN (checksum) -[[User:Whivel|Whivel]] 16:14, 9 July 2008 (UTC) | ||
* I have a Python implementation of the pkm encryption code up [http://www.tsanth.com/pokemon/ here]. -[[User:Tsanth|Tsanth]] 06:41, 12 July 2008 (UTC) | * I have a Python implementation of the pkm encryption code up [http://www.tsanth.com/pokemon/ here]. -[[User:Tsanth|Tsanth]] 06:41, 12 July 2008 (UTC) | ||
== Data Block's order == | == Data Block's order == |
edits