Jump to content

A couple of odd things I noticed, possible bug?


NekoSabrina

Recommended Posts

Alright, while playing around with PKHeX lately, I've come across some odd things with the legality checker, and I don't know if it's just a matter of incomplete cross-generational support or what, but I've got two cases here where a legal Pokémon is getting flagged.

 

With this Gen 2 Raichu, it's getting flagged for what seems to be an illegal encounter and for an illegal move. The thing is, I hatched this Raichu (as a Pichu, of course), so why it's checking for an encounter, I'm not sure. If it follows this rule with everything, then pretty much anything hatched will get this false flag. As for the illegal move, the attack in question is a move Raichu could legally learn via a Gen 1 TM (so it's entirely possible for it to have been traded to Gen 1, taught the move, and traded back), but yet it's flagged as illegal likely because there was no way Raichu could learn the move in Gen 2 on its own.

 

With the Latios, I edited it to be Shiny, but beyond that it's a legal Pokémon straight from a cartridge (transferred from Gen 3 -> 4 -> 5 and traded from a cart to one of my roms), and even completely unedited it was getting flagged for that encounter PID error. Now as for the Fateful Encounter flag, the previous version of PKHex seemed to think it was mandatory to have on Latios and Latias, while this version seems to think they should not have it. For the record, this Latios originally did have the Fateful Encounter flag as a result of it being caught on Southern Island (in other words, obtained via the Eon Ticket and thus as an event encounter). The matching Latias, caught as a random roaming encounter, did not have that flag for obvious reasons, so it should not be an automatic yes or no for that flag.

 

Obviously the Fateful Encounter and Illegal Move problems are outside my ability to control, but is there maybe something I can do to fix the other errors, or are those pretty much out of my hands too?

weirderror.png

Link to comment
Share on other sites

Well the thing about the Latios, it was getting those errors before I made it Shiny (so even before I messed with it, as a legit cart Pokémon, it was getting flagged), so editing it Shiny has nothing to do with the problem on that (also I'm surprised this got moved to legality, since at least what I was pointing out about Raichu were actually possible flaws in PKHeX's Gen 2 support).

 

As for the Raichu, there REALLY isn't that much more I can tell or show you. I hatched it from an egg as a Pichu, evolved it all the way up to Raichu, gave it the move that's getting flagged (again, a Gen 1 TM, so perfectly legal even for a Gen 2 'mon). However, while poking around I did notice another possible flaw in Gen 2 support: when I checked my Togepi (something I know also hatched), it was showing that it was legal with a met level of 1, which should be 5 for a Gen 2 game. When I adjusted the level on my Raichu to match that (to see if it would remove that particular flag from Raichu and only leave the illegal move one), I got this:

error2.png

Yeah, this is a Pokémon Crystal save, where it's perfectly possible to have a female trainer (also, none of my other Pokémon in that save have that flag, go figure)

Edited by NekoSabrina
Link to comment
Share on other sites

About the encounters for PKHex a hatched egg is just another kind of encounter like any other wild pokemon encounter, if the program tells it cant find a valid encounters it means the pokemon seems illegal with every possible encounter, including a hatched egg, this not means any hatched egg will be illegal. For a legal hatched egg pokemon PkHex will tell the source is an egg encounter.

For more help you can upload the pkm files and we look why the are marked as illegal.

About the female trainer error the program is probably cheking first for crystal encounters and after that for gold/silver encounter where female trainer is illegal.

About the Togepi egg met level keep in mind just because the egg hatch at level 5 does not means Crystal stores level 5 as met level for eggs, i think met level in generation 2 is stored as 1 to differenciate hatched pokemon from wild pokemon

 

Also about your Raichu moves you are wrong in one thing, the Gen 1 TM move is illegal for your Raichu. Your Raichu was originated in Crystal, that means it have a met level and met location, but the met level and location data only exits on generation 2 games, when you trade a pokemon from generation 2 to generation 1 the met data is lost, and when the pokemon return from gen 1 to gen 2. Your Raichu have Crystal met data, that means it have never been traded to a gen 1 game and then it cant have any gen 1 tm moves. 

  • Ditto 1
Link to comment
Share on other sites

I see, so I kind of have to play the long game with some of these edits. Still, that Raichu was hatched from an egg so I'm surprised the met data doesn't at least reflect that (the weird thing, I've got some other things I've hatched that are marked as legal with a Met level of 5, so I have no idea how that's supposed to work).

 

I guess if I knew how to fake that Raichu's been traded back and forth between gens, that might help. Still, I'm not too worried about legality flags in Gens 1 and 2, it's just annoying to see them (especially when they seem to pop up for no apparent reason). It's Gen 3 onwards that they really need to be paid attention to. Speaking of, I also threw in the Latios just to see if anyone could figure out the Encounter PID Type flag (which, as I said before, I was getting before I ever edited this thing to be Shiny). I did reroll the PID after selecting Shiny to make sure I got one that matched, so it can't be an error there. And despite what PKHeX says, that Latios originally did have the Fateful Encounter flag checked, so that's a false illegal check there.

026 - RAICHU - 2736.pk2

381 ★ - Latios - 21BD2981C048.pk5

Link to comment
Share on other sites

No, it's not a false illegal check result; Emerald has two pairs of Lati@s encounters. One has a fateful encounter, while the other does not. The one without is checked first, which fails because the PIDIV is invalid for that encounter. It then checks the other encounter (with fateful), which also fails the PIDIV check. Since there are no more possible static encounters, the program will continue on assuming that the final encounter was hacked, then checks the ancillary attributes.

There is no correct encounter match, thus it keeps the last tested encounter to finish up with.

  • Like 2
Link to comment
Share on other sites

To fake the trade between gens for your Raichu you only need to export the PK2 file, open a generation 1 savefile and move Raichu to that save, then export Raichu from gen1 as PK1 and import the PK1 file into your gen 2 savefile. That will wipe out any data from gen  2 that does not exits in gen 1.

Link to comment
Share on other sites

Is there a way to fix the PID or whatever value is off to make that error go away, or is that impossible (at least at current)?

 

Also, I thought IVs had nothing to do with the PID (Nature and other factors, yes, but not IVs). At least, according to Bulbapedia they don't

Edited by NekoSabrina
Link to comment
Share on other sites

On 10 August 2017 at 5:56 AM, NekoSabrina said:

Is there a way to fix the PID or whatever value is off to make that error go away, or is that impossible (at least at current)?

 

Also, I thought IVs had nothing to do with the PID (Nature and other factors, yes, but not IVs). At least, according to Bulbapedia they don't

 

Pokemon from Gen 3 and 4 have their IVs and Nature (and possible encounter details) tied to their PID.

Specifically, PID doesn't dictate the IVs, but based on our thorough knowledge on how RNG works on those games, there's a direct correlation with what PID will have what IVs.

 

follow this guide:

https://projectpokemon.org/site/guides/save-editing/solving-pid-mismatch-r1507/

Link to comment
Share on other sites

Well then I would hope theoretically there would be a way to generate a PID that matches what it is I'm trying to do (though so far I haven't found it yet, even with RNG Reporter's help). I've really been pushing that program, but so far I've only managed to get some of the factors to align and not all... Probably would be much easier to do on a non-Shiny.

Link to comment
Share on other sites

3 minutes ago, NekoSabrina said:

Well then I would hope theoretically there would be a way to generate a PID that matches what it is I'm trying to do (though so far I haven't found it yet, even with RNG Reporter's help). I've really been pushing that program, but so far I've only managed to get some of the factors to align and not all... Probably would be much easier to do on a non-Shiny.

 

Upload the Pokemon you want to get. I can give it a try, but be prepared to sacrifice IVs and/or nature.

Link to comment
Share on other sites

Well, I figured I'd start with that Latios I posted earlier and work from there. I know it's a Method 1 Stationary Pokémon based on your little guide there. Using RNG Reporter and pushing the max results (boy, does that make that program lag hard) I've actually managed to preserve a good chunk of what I wanted for that Latios (nature and 3 IVs), but I figure more could still theoretically be possible...

 

What annoys me is that if I start messing around with Gen 3 or 4, I'm going to have to do this on everything I want to edit (thank goodness they separated IVs entirely from the PID in Gen 5, IVs are probably one of my least favorite things in Pokemon).

Edited by NekoSabrina
  • Like 1
Link to comment
Share on other sites

It would be easy if you make a Non-Shiny PID and after using this PID and IVs in your pokemon you make it shiny changing the Trainer SID, to do that you just need to control-click the shiny button, the program will change the SID to make the pokemon shiny instead of chaging the PID

  • Like 1
Link to comment
Share on other sites

Well, seeing as how what I'm trying to edit right now actually came from cartridge games, I would like to preserve the Secret IDs if at all possible.

 

Also I'm guessing the Max Results field basically is a measure of how many PIDs RNG Reporter actually looks through in one search (in which case, telling it to look at more than 4000000000 or so results is probably a waste of processing power since at some point it's looping back and checking the same PID results again)?

Link to comment
Share on other sites

Well, PID and IVs are also from cartridge games and you are changing that data, the differnt is that any SID changed would be legal (except for events, in game trades an other pokemon with fixed trainer data) but not any PID changed would be legal.

Because generation 3 and 4 have a correlation between PID and IVs, PID and Natures, etc, but there is no correlation betwen SID and any other data (excep for GameCube starters)

 

But in real games, with RNG Reporter, given the limitation of the RNG generation you must assume probably the PID you want that makes exactly the IVs Nature and Shiny of your pokemon...probably is impossible to generate, the  rng limitations make not every combination legal. T

This means is better to reduce the limitations searching for a PID in the range of non-shiny, that means there are more legal combinations for the values you want, and any legal non-shiny PID have 8 possible SID that make the pokemon shiny and legal.

If you still do not want to change the SID then you must sacriface other data, make the pokemon with not exactly the same IVs, or with another ability, gender, or nature, because all of this data is related to the PID and not every combination would be possible.

Changing the PID to make the pokemon shiny and legal without any other data except PID in most cases would be impossible.

 

Edited by javier_himura
Link to comment
Share on other sites

  • 3 weeks later...

So once again I seem to have stumbled on something that seems like an oversight in PKHeX's cross-gen support, and this time I might actually be right. I've been playing Pokémon Red (ah, good ol nostalgia...) and after getting sick and tired of having only Ember as my Charmeleon's Fire offense, I finally broke down and decided to give him Flamethrower early.....and then I get the message that it's an illegal move (likely because it's underlevelled for knowing the attack in Gen 1). However, I used the appropriate prompts for editing a Gen 1 save to allow Gen 2 learned moves (which Flamethrower could be, via Crystal's Move Tutor or possibly even breeding) and yet it's still triggering this flag.

Makes me wonder who forgot to make Flamethrower a TM in Gen 1. They got Thunderbolt and Ice Beam (and yet there's also crap like Water Gun, Take Down, SelfDestruct....)

flamethrower.png

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...