pokecon Posted September 24, 2012 Posted September 24, 2012 (edited) Out of curiosity, how do you calculate/fix the save file checksum for B2W2? Edited September 24, 2012 by pokecon
RubenPikachu Posted September 24, 2012 Author Posted September 24, 2012 (edited) Out of curiosity, how do you calculate/fix the save file checksum for B2W2? For Black 2/White 2 save files the checksum is located at 0x25FA2-0x25FA3, to calculate the offset is 0x25F00-0x25F93 (length is 0x94), using CRC-16 CCITT Edit: I made a pdf with some images in HxD editor selecting the range for the checksum calculation and the same info and for BW http://dl.dropbox.com/u/87538979/Save%20File%20Checksum%20Calculation.pdf Also I will try to make a file where all the research I have done Edited September 25, 2012 by RubenPikachu
RubenPikachu Posted September 25, 2012 Author Posted September 25, 2012 I have updated the app with a moveset fix and with a new feature to allow new movesets updates without updating the app and will make the app load them and make them valid at legality analysis, however it is for event moves only
codemonkey85 Posted September 26, 2012 Posted September 26, 2012 I made a pdf with some images in HxD editor selecting the range for the checksum calculation and the same info and for BW http://dl.dropbox.com/u/87538979/Save%20File%20Checksum%20Calculation.pdfAlso I will try to make a file where all the research I have done I would absolutely worship you if you could keep all of your research notes on a service such as Google Drive, so that other software junkies (like myself) could peruse them and / or add our own notes.
RubenPikachu Posted September 26, 2012 Author Posted September 26, 2012 (edited) How is this possible? Through a file download that contains the new movesets, the app will save them so if you don't have an internet connection later on, you can still use them :smile: I would absolutely worship you if you could keep all of your research notes on a service such as Google Drive, so that other software junkies (like myself) could peruse them and / or add our own notes. Sure, I have uploaded it in Google Drive and made the folder where I will upload all my research notes https://docs.google.com/folder/d/0B8raCj5bAhUNTjN4a0JlOU01Y2M/edit Edited September 27, 2012 by RubenPikachu
Chompizard25 Posted September 26, 2012 Posted September 26, 2012 so, would this be an example of a black 2 checksum? (its mine): 71 0A 1A 4B CA CA 37 7D 14 06 39 F5 DB DA 5A 3F B5 A8 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB A5 D8 16 9B 80 14 E3 24 B6 FB CF 33 00 14 E1 A1 4A BE 72 10 EE 27 89 58 E0 93 7A 47 48 FE 3C D2 CF 43 F4 1A 1F 50 1B 49 65 98 6D AE 44 2E 74 D7 9D 6E 41 54 31 1E F0 BC CA A0 4D 3A E2 3C 45 A4 96 8B B4 A0 8E 0F A3 0D 85 D9 0A 6A 9E B5 AE 92 0A F0 31 7E D2 07 B1 B3 91 B4 20 21 E3 A2 1E 28 00 00
RubenPikachu Posted September 26, 2012 Author Posted September 26, 2012 so, would this be an example of a black 2 checksum? (its mine): 71 0A 1A 4B CA CA 37 7D 14 06 39 F5 DB DA 5A 3F B5 A8 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB 33 EB A5 D8 16 9B 80 14 E3 24 B6 FB CF 33 00 14 E1 A1 4A BE 72 10 EE 27 89 58 E0 93 7A 47 48 FE 3C D2 CF 43 F4 1A 1F 50 1B 49 65 98 6D AE 44 2E 74 D7 9D 6E 41 54 31 1E F0 BC CA A0 4D 3A E2 3C 45 A4 96 8B B4 A0 8E 0F A3 0D 85 D9 0A 6A 9E B5 AE 92 0A F0 31 7E D2 07 B1 B3 91 B4 20 21 E3 A2 1E 28 00 00 That's the offset to calculate the checksum, however it is not the checksum. Use HxD and select the offset, use Analysis->Checksums and select CRC-16 CCITT the result is 7728, since it is in little-endian the checksum is 28 77 in the offset 0x25FA2-0x25FA3
codemonkey85 Posted September 30, 2012 Posted September 30, 2012 That's awesome. If you like, I can dump some of my research / code in there or another shared folder as well. FYI, I still highly recommend you try out veekun's SQLite database, since it contains roughly all of the information you would ever need. There have been some slight differences in his index numbers (like with Abilities), but he also keeps it up to date, so there's that.
Chompizard25 Posted September 30, 2012 Posted September 30, 2012 Wouldn't a coded database be easier?
RubenPikachu Posted October 1, 2012 Author Posted October 1, 2012 That's awesome. If you like, I can dump some of my research / code in there or another shared folder as well.FYI, I still highly recommend you try out veekun's SQLite database, since it contains roughly all of the information you would ever need. There have been some slight differences in his index numbers (like with Abilities), but he also keeps it up to date, so there's that. I would appreciate it, I will try to upload more research. I would like to use it, however I don't know how I can use veekun's SQLite database in the app... Now I'm thinking how to expand the app usage, I would like to create a GTS system to allow DS users to send and receive their pkm, however I don't know how to do it, so I'm going to make a lot of research about it
pokecon Posted October 1, 2012 Posted October 1, 2012 There's a open source python program that does that. BTW, how does your program encrypt and insert PKM to sav?
RubenPikachu Posted October 1, 2012 Author Posted October 1, 2012 I have been checking that, I know I must add some data for the GTS structure, however I'm not sure how to use the DNS and how to spoof the GTS The app extracts the pkm into a 2D array, which stores each pkm bytes, the pkm are decrypted and encrypted with block shuffling http://projectpokemon.org/wiki/Pokemon_NDS_Structure I have updated the app, the app will check if the loaded pkm file is encrypted or not and will load it, also the save file editor doesn't need an internet connection to load pkm icons and will show some alternate forms (still missing female pkm and some forms like Shellos/Gastrodon, Unown, Burmy/Wormadam and Deerling/Sawsbuck)
RubenPikachu Posted October 2, 2012 Author Posted October 2, 2012 After some personal research I figured out about B2W2 Kyurem fusing with Zekrom/Reshiram, although not complete since I cannot find where does the save file knows if Kyurem is fused or not, I did some hex editing and figured out this Zekrom/Reshiram can be edited, I uploaded a video with the result changing Zekrom with a Pikachu, also note that the animation while defusing is for White Zekrom, not Black Zekrom http://www.youtube.com/watch?v=G2h2_LKgKns I will update the app to edit it, however I will need more research about how to set if Kyurem is fused or not since the pkm code remains the same... I will upload my research if you want to help
Chompizard25 Posted October 2, 2012 Posted October 2, 2012 I would like to create a GTS system to allow DS users to send and receive their pkm, however I don't know how to do it, so I'm going to make a lot of research about it I was going to add that to my program (copycat)
Chompizard25 Posted October 2, 2012 Posted October 2, 2012 Uploaded my special Musharna on Public PKM
RubenPikachu Posted October 2, 2012 Author Posted October 2, 2012 Uploaded the research of Kyurem forms in my research folder, you can also check it out here https://docs.google.com/folder/d/0B8raCj5bAhUNTjN4a0JlOU01Y2M/edit?docId=1BGr20uVnzM4ZbggwYnTMTJgsgI0pdOMPAQozKbuk-Pw The GTS system was an idea since v0.3, however since I had no idea to spoof GTS, I decided to make it later To access your save file, load it through the load option, drag it or use the system tray icon load option and select a save file, go to the save file tab and you can modify your save file, also I found out a bug that didn't insert the current pkm in slot 2, I have updated the app to v0.7.5
Chompizard25 Posted October 2, 2012 Posted October 2, 2012 How does this have an invalid PID? Tauros(bw)..pkm
RubenPikachu Posted October 2, 2012 Author Posted October 2, 2012 How does this have an invalid PID? First of all, did you manually edit it, since location is Poke Transfer Lab instead of Poketransfer, Poke Transfer Lab is the location in BW, Poketransfer are obtained from gen 4 games. Then it seems your PID is a Method 4 PID, gen 4 (Platinum) uses Method 1...
Chompizard25 Posted October 2, 2012 Posted October 2, 2012 yes, i did. i dont have two ds', so i used pokecheck and edited it Note: this is not my trainer name
Chompizard25 Posted October 2, 2012 Posted October 2, 2012 just changed my trainer name (and restarted the whole game)
codemonkey85 Posted October 2, 2012 Posted October 2, 2012 Wouldn't a coded database be easier? What do you mean by "coded database"? You mean hard-code all the data into your program? Because that would be insanely difficult to do, use, and localize.
RubenPikachu Posted October 3, 2012 Author Posted October 3, 2012 What do you mean by "coded database"? You mean hard-code all the data into your program? Because that would be insanely difficult to do, use, and localize. Well I hard-coded all the data into my program, however this makes the app slow when loading a pkm file after loading, I would like to use Veekun's SQLite Database to make it easier and make the app more faster but I don't know how to use it in .NET (VB.NET or C#)
Chompizard25 Posted October 3, 2012 Posted October 3, 2012 What do you mean by "coded database"? You mean hard-code all the data into your program? Because that would be insanely difficult to do, use, and localize. Yes.
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