There's something you have to watch out for here, which is that there are two different "shiny formulas" in play here. The original GB data structure only had room for 16 bits worth of IVs, and furthermore the IVs were overloaded with some of the functions that nowadays fall to a separate element called the "personality value". Anyway, the original GSC games required those IV bits to be in a certain pattern in order to create a shiny, where _ represents a bit that has no constraints and that can be either 0 or 1:

```
_ _ 1 _ | 1 0 1 0 | 1 0 1 0 | 1 0 1 0
( ATK ) | ( DEF ) | ( SPE ) | ( SPC )
```

Meanwhile, at least for the time being, when you try to transfer from VC RBY into Pokemon Bank, the transfer checks the bits for the following, slightly different pattern in order to detect a "shiny":

```
1 0 1 0 | _ _ 1 _ | 1 0 1 0 | 1 0 1 0
( ATK ) | ( DEF ) | ( SPE ) | ( SPC )
```

This means that there are eight different IV patterns that pass each respective shiny check, but for each one, seven of the successes end up failing the other check. In particular, the static Gyarados encounter in Lake of Rage is guaranteed to have exactly 1110|1010|1010|1010, which obviously passes the GSC shiny check but fails the Bank check by virtue of the second bit (and nothing else). VC Gold/Silver are due to be released soon, and to have that Gyarados lose its shiny status upon transfer would be quite an embarrassing flop from Game Freak's perspective, so it would be reasonable to expect Bank to patch up its formula soon, so that it looks for the exact same spreads that the GSC formula looks for and nothing else. But for now, this is the current state of affairs.

There is one further complication involved here: , which has to do with the way the games generate random encounters in the first place in RBY. First they determine if a given step is going to lead to a wild encounter, then they go through the process of figuring out what it is. Hence, based on the fact that an encounter is coming up at all, you can deduce that the current value of the random seeds is constrained to several possible ranges of values, and the process of generating the encounter takes a specific amount of time as well, so that if you could keep a watchful enough eye on those variables in real time, you could follow how every possible random value in the range would be updated over time, and in particular what it would be when comes time to generate the random IVs. As it turns out, those constraints on the random variable have an effect that lasts long enough to exclude certain IV combinations, and in particular, **any Pokemon you encounter in an RBY game through a tall grass, cave, or surfing encounter is guaranteed never to come with any of the IV spreads that will pass either version of the shiny check.** The only ways to get such "transferrable shinies" are either manipulating around with a Ditto that uses Transform multiple times in a battle, after-the-fact hacking of the IV bytes directly, or Pokemon that don't have to pass a stepwise random encounter check before they can be generated. Essentially, this means fishing encounters, gifts (such as the starter and Eevee), and static encounters (such as Snorlax and Mewtwo, as well as anything you spawn with the "fight storage" glitch). Obviously the odds of any of those passing either shiny check aren't good, and the odds of hitting the one unique spread that succeeds on both checks is even rarer still, but it's better than the actual zero odds of the other encounter types.