Jump to content

I did some research on .sav and .pkm files yesterday


english09

Recommended Posts

Yesterday I did some research on the differences between a UT Save file and .pkm file and a Pokesav touched one.

It appears that when using Pokesav, if you simply load a Save file into pokesav and save it without making any changes, the coding does change to leave possible traces.

Though it seems that for .pkm files there is no difference in a normal game generated pokemon and a pokesav/pokegen generated one.

I have checked this by looking at the hex information and comparing it to edited information, for example:

I used a game generated legit starly and copied it. The copy was then loaded into Pokesav and saved (it is identical LOOKING in everyway to the original), then I took the two and compared them in hXd and they were identical. I did the same with loading it into Pokegen and then saving, it was still identical to the legit one in everyway possible.

I then took a legit save file and copied it 3 times, and loaded each one into either Pokesav, Pokegen, or PPSE and saved. However, when comparing them to the original one this time there were differences (small differences for Pokesav(easily fixable), larger for Pokegen, and VERY large hex difference with PPSE).

I have not tested ARDS yet but plan to soon.

Edited by english09
Link to comment
Share on other sites

I then took a legit save file and copied it 3 times, and loaded each one into either Pokesav, Pokegen, or PPSE and saved. However, when comparing them to the original one this time there were differences (small differences for Pokesav(easily fixable), larger for Pokegen, and VERY large hex difference with PPSE).

I'd like to see what you're talking about. I periodically go through and make sure nothing is being changed inappropriately, but it's possible that I may have missed something.

Link to comment
Share on other sites

I am using a non-beta version (2.312).

Though to my surprise today i loaded a legit .sav file into pokesav, saved, and compared it to a UT one and they were identical.

@Codr: To answer your question of what I was talking about, and btw I am using version 2.231 of Pokegen, I give you a save file. Copy it and load and save one of them into pokegen and compare the two through hXd. You will see around 20-30 differences.

Legit(HEX CHECK)Pokemon Platinum.sav

Legit(HEX CHECK)Pokemon Platinum.sav

Link to comment
Share on other sites

@Codr: To answer your question of what I was talking about, and btw I am using version 2.231 of Pokegen, I give you a save file. Copy it and load and save one of them into pokegen and compare the two through hXd. You will see around 20-30 differences.

There was no 2.231. I'll see what happens with the current public non-beta version though.

Edit: I see what you're referring to. It's PokeGen modifying the first party Pokemon's party data. I can't say for sure, but I'm fairly certian it does it in a way that the game does. It may erase status information (poison/burned/etc) and seal data. I think this was changed in the beta (maybe not the latest, but in the current code I have)... if not, I'll make sure it only modifies the stats.

Edit2: It is in fact erasing all the party-specific data when it writes the current stats. This really isn't a huge deal, considering the same thing happens when you put a Pokemon into the PC (Unless the game saves it elsewhere and restores it, but I doubt it.). If you're really that paranoid, you could always just generate only PC Pokemon or deposit a party Pokemon and withdraw it.

Edit3: Btw, the isolated 2 bytes that change are the save file checksum... that should be obvious.

Link to comment
Share on other sites

About edit3, are you talking about pokegen or pokesav?

Both.

BTW, what is exactly the point of the checksum changing/fixing, I am not very knowledgable about this

A checksum is a number representing all of the data in a block of the save file. It's an inaccurate, but effective enough, way of verifying that the data is what it was when the checksum was calculated.

Link to comment
Share on other sites

So when these programs recalculate the checksum, is it to make it so that it seems untouched and legit, or in a sense, correct and how the game would do it?

The game verifies that the data matches the checksum. If it doesn't, the save file is considered corrupted. It's that simple.

Link to comment
Share on other sites

there are. example:

in pokesav, edit a pokemon from no nickname to nicknamed. pick something random for the nick, then save the save file in pokesav. open the sav in pokegen. look at the trainer's nickname and the nicknamed poke's name. pokesav does funny things to them. you'll see bits of that nickname sometimes show up in both sets, not to mention that the nicknamed poke will have weird trash bytes beyond just bits of the name showing up in them. you don't always have to nickname it, either. sometimes, bits of the name will just show up. pokegen doesn't do that, and if you delete it with pokegen, it will fix the problem.

that doesn't mean that anything major has been changed in pokesav, but it's enough to start questioning where the poke actually came from, etc.

Link to comment
Share on other sites

in pokesav, edit a pokemon from no nickname to nicknamed. pick something random for the nick, then save the save file in pokesav. open the sav in pokegen. look at the trainer's nickname and the nicknamed poke's name. pokesav does funny things to them. you'll see bits of that nickname sometimes show up in both sets, not to mention that the nicknamed poke will have weird trash bytes beyond just bits of the name showing up in them. you don't always have to nickname it, either. sometimes, bits of the name will just show up. pokegen doesn't do that, and if you delete it with pokegen, it will fix the problem.

what do you mean by both sets?

Link to comment
Share on other sites

I just want to clear something up.

If the software you are using is accurate enough, and you know what you are doing for sure, there is no difference between a Pokémon created by a program and one encountered in the retail carts. There seems to be this notion that there are PHANTOM SPY BYTES or something in the data that give away that the Pokémon in question was hacked, and that honestly just doesn't exist.

As Codr mentioned, there is a checksum for every Pokémon, and there are obvious (and some less obvious) things that just don't jive in the data structure (incorrect trash bytes, invalid PID / IV combinations, invalid shininess, etc). But like I said, if the software is good and you know what you're doing, you won't have a problem.

Link to comment
Share on other sites

If the software you are using is accurate enough, and you know what you are doing for sure, there is no difference between a Pokémon created by a program and one encountered in the retail carts. There seems to be this notion that there are PHANTOM SPY BYTES or something in the data that give away that the Pokémon in question was hacked, and that honestly just doesn't exist.

This is exactly why the whole notion of "legality" being different from "legitimacy" is absolutely ridiculous. However, people won't change.

Also, I was referring to the save file checksum, but it's applicable to Pokemon too, so oh well.

Link to comment
Share on other sites

Ah, well, in the case of the save file... unfortunately we don't have a complete map of the save file structure(s), so it is technically possible that any save editing program does something (or doesn't do something) that isn't kosher. I believe Pokégen helps cover itself by allowing you to, for example, set the Pokédex to update for all of the Pokémon you currently own, thus fixing any continuity errors as far as having "caught" the Pokémon you hack into the game.

Other than that, though, if you're only editing Pokémon in the save file, there probably won't be any problems.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...