Gannio / Shiny2-and-a-Half

Shiny2 Fake GTS Server Fork with AltWFC capabilities
GNU Lesser General Public License v2.1
29 stars 10 forks source link

Receiving Pokemon with less than 6 in the party results in partly-garbage data being sent. #1

Open Gannio opened 5 years ago

Gannio commented 5 years ago

In Gen IV, this can lead to Pokemon with ball seals that cannot be removed due to said ball seals being on them, requiring cheats or save data modification to remove the Pokemon.

In Gen V, this is safer however the Pokemon will seemingly have bugged HP that will need to be fixed either by a Pokemon Center or putting them in the PC (I forget which of these fixes it).

As described here: https://projectpokemon.org/home/forums/topic/10628-competitive-pokemon-gts-distribution-thread/

There are 2 different "sizes" of pokemon(.pkm) file. 236 byte .pkms are party pokemon, while 136 byte .pkms are boxed pokemon, You can send party pokemon to either your party or a box, but you can't send boxed pokemon to your party. The download will happen, but you'll get a badly messed up pokemon. Unless you're very, VERY clear on what you're doing, just always enter the GTS with a full party to make things simple.

In other words the FakeGTS as it is is unable to add the missing bytes properly when receiving pokemon (it seems to attempt to as the resulting size is the same as sent by a party). resulting in garbage data filling in spots. pkmnclassic seems to be able to have a fix for this in its code, however I have trouble understanding the framework of it (as well as even the Pokemon data here), nor do I have much time currently to investigate this myself.

For now, make sure to only enter with a full party of 6 in Gen IV (Gen V too, but there's less consequences there for messing up).

Gannio commented 5 years ago

Investigating this more it seems that this is actually caused by human error: Pokemon generated outside the game environment (e.g. PokeGEN) will only have this truncated data. Pokemon received in-game will not. As such it is more fitting to apply prevention tactics on the server-side and consider this an enhancement.

Shinygati commented 4 years ago

If memory serves i believe this bug is actually caused by the type of pokemon file, back in the day i used to do this alot and there were 2 types of pokemon files, Party and PC, and if i remember i think sending a PC pokemon file into your game that gets redirected to your party instead is what actually causing the issue but the program i used at the time did get updated to handle it correctly when this occurs so it is a little strange that Shiny2 has this problem when it was just updated.

gleamingcobra commented 4 years ago

I stupidly forgot to fill my 6th slot and this happened to me. However, I was able to fix it in-game by putting the Pokemon in question in the daycare. Hope this helps anyone with this problem.

gleamingcobra commented 4 years ago

The ball seal can be removed by putting in the daycare and the Pokemon will be perfectly fine once you take it out.