1) First, for any Pokemon you want, you need to find them on this list. The number next to them on the list is a stat. You need a Pokemon with this number as their special stat.
2) Find a long-range trainer. This is a trainer where there is nothing that interrupts their line of sight for at least the distance from the middle of the screen to past the edge of the screen. An example of one of these trainers is a trainer North of Cerulean city. Go past nugget bridge, go left, then go down along that bit of land that leads to Cerulean cave. The trainer there is a long-range trainer. You need one of these left over that you can still battle. (If you don't, you will either have to do this or make a new save file).
3) Make sure you have these things on you:
- A strong Pokemon that you can keep at the front of your party
- The Pokemon with the special stat you need
- A Pokemon knowing fly (or with teleport, but you have to have been to the right place earlier)
- Some repels
- An escape rope
- Whatever else you need to catch a level 7 version of what you want
- Conditional: A Pokemon knowing strength if you have no other trainers left in your game you can battle (not including any in the route or area of the long-range trainer)
Now go up to where the long-range trainer is. Make it so that they are off-screen from you, but so that if you walked one tile towards them they would see you. Save right on that spot.
4) Walk one tile towards the trainer so that they see you. At the same time, hold start. If you do it right, the menu will pop up. (If the trainer battles you, soft reset and go again from where you saved. Also, make sure you have actually walked towards them and haven't just opened the menu). In the menu, go to Pokemon, select the one with fly and fly to where another trainer you can battle is. (If you have done it right, an exclamation mark will appear above the trainer when the fly animation happens).
5) Now your menu will be disabled temporarily. Battle the trainer you have left that you can battle. Make sure that they have to walk at least one tile to get to you, or the game will crash. (If there are no trainers you can battle, when in front of the long-range trainer, fly to the Pokemon league, go on the pc, switch to a different box (re-enabling your menu), go into victory road, use strength on a boulder, push it, then battle a wild Pokemon).
6) After this, your menu should be working again. Now fly to Cinnabar island. Go to the mansion, and go to the big room where you can find Ditto (Cinnabar mansion help). The repels come in handy here. Once you find a Ditto (there is a 10% chance of finding them in the right area), immediately switch out to the Pokemon with the specific special stat, so that the Ditto transforms into that. Then run from that battle, and without moving any more, use an escape rope (so that the Ditto after undergoing transformation was the last thing you battled).
7) Fly to a route or area adjacent to the route or area where you flew from the long-range trainer. Then walk onto that route. If you have done everything right, the menu will spontaneously pop up. Close it, and a wild battle will start with a level 7 version of the Pokemon you want. After catching it (I think this only applies to Yellow version) there might be some overworld graphical glitches going on (that are very funny to watch). Just fly to any other area and they will be fixed.