kwsch / PKHeX

Pokémon Save File Editor
https://projectpokemon.org/pkhex/
Other
3.73k stars 700 forks source link

Gender Shiny and Held Items in Gen 1 #247

Closed javierhimura closed 8 years ago

javierhimura commented 8 years ago

Gender Shiny and Hel Items was included for first time in Gen 2 but it was included using IVs and Catch rate from the binary pokemon data maken it retrocompatible with Gen 1

Thats mean gender and shiny can be calculated in any Gen 1 PKM using the same formulas from Gen 2. Also Gen 2 Held Item can be known from any Gen 1 PKM, including those tranfered from Gen 2 to Gen 1, the catch rate keep the last item held by the pokemon in a gen 2 game. The only different between Gen 1 and Gen 2 held item is some hex values from Catch Rates in Gen 1 that are changed when transfered to Gen 2 because they are invalid items (Terusama). Those values are invalid in Gen 2 and valid in Gen 1 but the held item description should be the final Gen 2 item

Improvement: Allow to view and edit Gender, Shiny and Held Item in Gen 1 using Gen 2 formulas from IV and Catch Rate

kwsch commented 8 years ago

I'd rather not, as it is unknown how pk1->pk7 will set gender.

A pokemon may exhibit one gender if transferred to GSC (which is no longer contiguous canon), and may exhibit a random gender in Sun/Moon, as it never had a chance to have a gender (no official GSC VC game).

By leaving it as invisible/undefined, only actual pk1 properties are shown.

A similar argument can be made for held items. Probably won't transfer anything to S/M.

kwsch commented 8 years ago

Same argument for shiny status. Highly doubt the official pk1->pk7 will yield any shinies.

Can always re-open this issue after the official method is documented.

javierhimura commented 8 years ago

Well, good point, i was only thinking about pk1 <-> pk2, not pk1->pk7, of course we dont know if shiny and gender will use the same formula But after all PKHex have also PK2 save editing, It can be used to edit both VC saves and GB/GBC emulator/carts and that include pk1 <-> pk2 transfer. Maybe the data can be shown in tab named "Gen 2 Values" or something like that to avoid confussion

suloku commented 8 years ago

I agree that this needs further revision when SM are released, but does it really hurt to show gen2 gender/shininess/held item? Not doing so kinda limits editing features as a gen 1 save editor for gb usage. Gen 2 gender is determined by DVs, so it's not like it can't be edited, but rather not shown in gen 1 editor. Same goes for shininess.

I don't know if there's currently pk1-pk2 interconversion support in pkhex, but it is easy and documented. Pk1 and pk2 files should have different file size I think, so detection shouldn't be an issue.

Maybe best solution would be a gen 2 tab that shows gen 2 features like gender, gen 2 item (and button to set gen 1 default?) and shininess?

On another topic, therr are 4 pokemon in yellow that have different catch rate by default. I think someone made the call in pp that rhydon wasn't taking this into account and fixed catch ratios to the RB defaults. I think the editor ahould respect current value and just have a button to put it to default, with maybe a label notifying a mismatch with the game's catch ratio (i.e. using a original gb save to transfer to sun and moon that has pokemon with gen 2 items)

SciresM commented 8 years ago

@suloku It's true that Rhydon alters the catch rate. This is because it is explicitly a RBY editor and not more general. PKHeX is, unlike rhydon, general, and so it respects catch rate in a way that Rhydon doesn't.

You can see this here: PKHeX will set the catch rate to the new species' default only if it is the current species default. This means you can convert a PK2 with a held item to a PK1, save it, then convert it back to a PK2 and it will still be holding its item. Preserving that functionality was important, and I was careful to do so.

And, for the record, PK1 <-> PK2 conversion is fully implemented and supported. I tried to do it as authentically as possible -- even dug out the asm table for item transferring.

Re: Showing Gen II features -- I'm in the "don't show" camp. While it's true that these features are present in Gen II, the only reason to show them is to allow editing them, in which case you're already in a Gen II environment...

I do think that when Sun/Moon releases and I implement convertToPK7 in PK1.cs that we should display information prior to transferring in accordance with whatever system Pokebank uses.

suloku commented 8 years ago

Well, I'm in the "if it doesn't hurt to have it, put it", but we could always just have to instances of pkhex and edit it in a gen 2 environmeny the trade back to gen 1, so it's not like it can't be done with pkhex (just seems a little redundant, as gender/shininess are a display feature, and catch rate is gen 1 data, regardless of it being fixed in gen 1). Let's see what SM does.

By the way, as a side note, in pokemon stadium 1, a gen 1 game, you can get pokemon with different catch rate than the game defaults (gen 2 normal box and gorgeous box items). These are legit gen 1 pokemon, generated as gen 1, that pkhex won't allow to visualize/edit/create unless transfered to gen 2. Not saying pkhex should show gen 2 data, but rather that catch rate should be an (advanced?) editable feature (0-254 + set default for current save button?)

Just stating my view, I'm fine with the current status.

JHorbach commented 8 years ago

I agree with Scires and Kaphotics, we can't mix things, because it opens precedent to do the same in other generations , but I think possibly the Pokémon will have the same gender in Gen 7 and Gen 2 , as probably the Gen 2 will be released for VC , and it would be strange a Pokémon that is male in Gen 2 be female in Gen 7 .

javierhimura commented 8 years ago

What other precedent can it have? The only generations that allow move pokemon backwards including being consistent with new data is generation 2 with generation 1. The exception that can be made with gen 1 and gen 2 is because of that backwards compatibility. Is not only gen 1 pokemon appears with a held item in gen 2, those same pokemon when transported back to gen 1 keep the item when returning to gen 2.

JHorbach commented 8 years ago

You made your point, but I was referring to show things that appears in other generations, like second ability on Gen 3 > 4, Kaphotics is thinking in Gen 7, If the gender and shiny change between Gen 2 and 7 it'll look weird, if doesn't, it will be okay, since you'll can view that things before export to both Gen 2 and 7.

kwsch commented 8 years ago

Issue shall be re-opened after the official pk1->pk7 is documented.