With all the attention Gen I glitchless is getting recently, I thought it would only be fair to look at Gen II glitchless as well, given that the current publication is almost 13 years old.
This run aims to complete Pokémon Crystal in the least amount of time without using any glitches.
Pokémon Crystal is similar in Gold and Silver overall, with many small differences throughout the games. In general, Gold/Silver has (~10) more mandatory fights, while Crystal has more required story elements (e.g. Burned Tower) and overworld movement (e.g. Squirtbottle). Crystal also got some visual upgrades compared to Gold and Silver. Good examples are Ice Path and Lance's Elite Four room.
I also believe Crystal to be the fastest version of the three. Note however that the time of this run is not directly comparable to the published run due to emulator differences, and it's very hard to make a fair comparison at this point.
This run uses Cyndaquil as a starter, and later switches to Raikou for the rest of the game.
Cyndaquil and Totodile are the realistic starter options, Chikorita is bad against literally everything in the first part of the game (Falkner, Bugsy, Rockets) and therefore not an option. Cyndaquil has a slower start due to Tackle being worse than Scratch and Rage, but makes up for it with Ember and its high base Special Attack, and comes out ~25s ahead up to Ecruteak.
Using one of the legendary beasts costs time to catch it, but is well worth it. Not only do they make fights faster due to their high base stats and level, but they also save time due to fewer level-ups. Each level-up costs ~2.7 seconds for the jingle and stat display alone, without factoring in any learned moves or experience bar movement animation. Skipping the level-ups between 21 and 40 alone saves more time than it costs to catch them. Entei is slightly better in fights than Raikou, but it struggles for PP more and has a longer cry sound, making it slower overall.
General overworld movement
The main and obvious rule is to take the least number of steps. Tall grass and spinning trainers can generally be ignored in any pathing decisions for this run, as I can just luck-manipulate my way around them.
One interesting aspect of Gen II movement are turn frames. They happen whenever the player changes direction while not moving, and allow the player to turn in place. They cost 8 frames, and are avoided whenever possible. That means that starting any movement by goings straight is always faster. Also, it doesn't matter which direction you turn in turn frames, afterwards you can walk in any direction. This is used in this run to show where turn frames are: whenever you see the character turn in a weird direction, it's a turn frame.
General battle strategy:
The most basic and obvious strategy is to minimize the number of turns needed in each battle. Critical hits cost extra time due to the additional text box, so are avoided if possible. Very or not effective moves cost about double the time that critical hits do, so they are even more to be avoided, but still way better than using an extra turn in the fight. For enemy moves, failing to hit is generally faster than using a stat-changing move, which itself is faster than failing a stat-changing move.
Each attack has a damage range from 217/255 to 255/255. Due to integer rounding, only 255 results in max damage, with a 1/39 chance. Max damage is only needed a few times throughout the run at the beginning where damage and HP are low and every point of damage matters.
Especially in the early fights, the amount of damage you do also matters for the HP drain animation. Depending on how your damage aligns with the enemy's max HP, it can take more or less time overall to fully drain over multiple turns.
Badges give two types of boosts, stat boosts and type boosts. The type boosts are a 1.125x damage multiplier for the corresponding Gym's type, and these are quite helpful throughout the run, without any quirky behavior. The stat boosts are a 1.125x stat multiplier, and are given by specific Johto Gyms. The two important one for this run are the Attack boost by Falkner and the Special Attack boost by Pryce.
One interesting discovery I made while making this run is that the Special Defense boost which is meant to be given by Clair does not actually work as intended, it is instead given whenver you have Pryce's badge and the boosted Special Attack stat of your Pokémon is in a certain range.
Another quirk with these boosts is that they don't always apply to crits. The way crits work in this game is that in addition to being a 2x damage multiplier, they ignore any stat boosts unless your attack stat level is higher than the opponent's defense stat level. That means that the Gym badge stat boosts are not applied to crits, unless you used a stat-changing move or an X item, effectively making the first use of those options stronger than normal.
The game options are changed using the known "fast-options" trick that already worked in Gen I to change all options at once.
Choosing Girl costs 9 frames over choosing Boy: 4 for selecting it, and 5 more on the SS Aqua because of longer text. The difference is not significant over the course of the run however, and Girl turned out to align better for early luck manipulation for me.
The time is set to 3:52. It's important to start at night in order to be able to catch Poliwag. The 52 minutes part is not necessary, but changes the game to the friendlier looking daytime palette quicker for better watchability.
The name is chosen to be "I". Setting a custom name costs some time, but shorter name are faster to display, so it saves time whenever they appear often enough.
Any other options like day of week and DST are irrelevant and left to the default (fastest) option.
DVs are not super important (it needs at least 15 Atk, 6 Def, 10 Spd, 14 Spc) since Cyndaquil will only be used in the beginning, so it's easy to get one that's good enough.
There's a small movement optimization when talking to Elm's aide to minimize the time he spends walking towards the player. Positioning yourself to minimize NPCs movement is a common theme that happens multiple times.
Rival fight 1
Scratch always hits, and the HP are important for later, so I can't allow Totodile to use it. Totodile hitting with Leer is faster than missing with Leer, and lowering Cyndaquil's Defense is irrelevant. Cyndaquil itself also uses Leer to lower Totodile's defense. This saves two crits and therefore time. Leer is generally a surprisingly useful move to save time in this run, unlike in Gen I where crits ignored stat changes making these moves completely useless.
I catch a Poliwag for HMs Surf, Whirlpool and Waterfall. Poliwag is the ideal choice since it can learn all three moves and only knows one move when caught so it can learn them without wasting time with overriding an existing move. The clock is set so that the night ends directly after catching Poliwag.
The forced mom call can be pre-empted by calling mom yourself, but it ends up being slower unless you need to use the menu anyway.
Abe's Spearow is always faster, always uses Peck and always hits. I'm spending a turn using Smokescreen just to not lose to it. Using Leer saves one crit, but it makes very little difference compared to 4-turn KO without it.
Ron's Pidgeys go down in two hits, whereas Falkner's Pidgey of the same level does not. This is because in Gen II, trainers have fixed DVs across all their Pokémon, and Falkner's are just better than a generic Bird Keeper. Falkner also has a different AI and his Pokémon have different move sets, causing his Pidgey to always use Mud-Slap instead of the much preferred Tackle.
While the 1/256 misses for moves that "always" hit which existed in Gen I were patched so Mud-Slap always hits, any secondary effects still have the same bug in Gen II, allowing Pidgey's Mud-Slap to not reduce the Accuracy in 1/256 of cases. Not reducing the Accuracy is desirable to save the time for the extra line of text that would show up.
Again Leer is used to speed up the fight, for Pidgeotto it even reduces the turns from 4 to 2, saving a whole turn.
This run only visits a Mart once, in Violet City, as it is the only Mart beside Goldenrod which sells both items of interest: Escape Rope and X Attack. I buy 6 Escape Ropes, which allow to save time exiting caves and dungeons. 6 is all the Escape Ropes you could possibly want to use during the run. I also buy 2 X Attacks, which will speed up fights later in the run. They will be used in situations were it saves at least one turn, of which there are only two, so it works out nicely. They would also save small amounts of time in other situations, but I don't have money to buy more, and it's not worth the additional time investment visiting another mart.
While it may look like it makes sense to talk to the Slowpoke Tail NPC from the side, it would incur an additional turn frame afterwards, while there are none when you run into his vision, since you never leave the moving state.
Unlike in Gold and Silver, all trainer battles are optional in Crystal.
Getting poisoned by Koffing in the Slowpoke Well is faster than it missing, and Kurt heals you right away so it doesn't cost any time afterwards.
Thanks to Cyndaquil evolving earlier and Ember being super effective, Azalea Gym is where Cyndaquil gains most of the time on Totodile.
Rival's Croconaw can be KO'd with exactly 3 max crit Embers plus two burn damage turns. The max crit + burn Ember on Croconaw is the single lowest probability event manipulated in this run, worse than both Cyndaquil's and Raikou's DVs.
The route to catch the Farfetch'd takes more steps than the obvious route, but ends up being faster due to fewer interactions with Farfetch'd.
Quilava learns Cut which will also help in the upcoming rival fight. It is taught in front of the bush so that it can be used directly from the menu and save a small amount of time.
First priority is getting the bike, to speed up any overworld movement. The bike is useful for any movement longer than 8 steps, so basically everywhere.
Unlike in Gold/Silver, it's required to talk to Floria in order to get the Squirtbottle, so it's necessary to make a detour before entering the gym.
I'm picking up Spearow to teach it HM Fly later. It's faster than catching a Pokémon ourselves.
The second gate house is also a good opportunity to deposit the Egg before it hatches and wastes time, since the PC is very close to our path.
Freeing the legendary beasts is mandatory in Crystal unlike in Gold/Silver, which makes it even more appealing to use one for this run.
Rival's Haunter only likes to use Lick and Spite, and Spite is faster. I'm running low on Ember PP though, so it can only reduce it by 2 or I'd run out in this fight. Also, just as in the second Rival fight, Ember is used to burn Croconaw and allow for a 3 turn KO.
After releasing the hounds, I Escape Rope out to avoid talking to Eusine again. I go right back to Route 37 to catch the Raikou I just released. Raikou will be the main battle Pokémon for the rest of the run.
The movement in the grass to catch Raikou may look weird, but is necessary since you can't encounter any Pokémon within the first few steps into a new area. The encounter is triggered on the turn frame, not while moving.
Raikou has perfect Attack and Special DVs, which are necessary for the later fights. Due to its high base speed, its Speed DV does not matter at all, it could be 0 and I'd still outspeed Red's Espeon.
Doing the menuing directly before the first Kimono fight saves two frames. A turn frame is necessary to face the right way, so it's necessary to wait two frames to stop moving before you're able to turn, and these can be used productively by menuing at that time.
With Raikou, the main focus of the battles has shifted from using as few turns as possible to managing PPs and avoiding crits and super effective moves whenever possible.
In Morty's Gym, you can skip the second trainer by just walking around it using a different path through the maze.
One of the trainers is spinning on a consistent cycle, which will always block our path and requires the player to wait for a short while.
Gentleman Alfred is the perfect example to show how much faster talking to trainers is compared to getting seen. While he looks far out of the way, it still saves a few frames talking to him.
When crossing to Cianwood, I minimize the steps taken in the water since surfing is slower than biking, so you want to start surfing as late as possible and land again as early as possible.
I teach Strength to Raikou as it is useful in battle, and Surf to Poliwag, and start surfing from the menu to save some frames.
When moving boulders using Strength, you retain control while the pushing animation is playing, which can be used to push multiple boulders at the same time, or just spin around while waiting.
Unlike the other special Pokémon encounters, the Red Gyarados has to be caught or KO'd, you cannot flee. Since I don't need it for anything and catching it is slower, I KO it.
More quirky movement tech: Whenever you use stairs, it counts as stopping moving, so you need to move forward for your first step to avoid a turn frame. Because of this, it matters which direction you enter stairs from to avoid wasting time.
The heal Lance gives also refreshes your PP. From this point on will be a long stretch without being able to fill up PP, so which move is used where is planned out so that I exactly have enough. At the end of this stretch, Raikou will have 0 PP for all its moves.
The order in which you defeat the Electrodes doesn't matter as long as you do the bottommost one first or last.
The bike shop calls after a fixed number of steps you took on a bike. It does not cause a turn frame.
The fight against Pryce shows how I'm going out of my way to avoid super effective moves, due to large amount of time they cost, even accepting critical hits over it.
Jasmine is done last due to the bad type matchup Raikou has. Every move Raikou has is ineffective. Steelix is the worst, with 200 base defense and only non-effective Strength to damage it. Using an X Attack brings the turn count down from 5 to 3. Even though this fight is slow, it's the only bad fight and not worth going out of our way to learn a different move (like Hidden Power) for.
The Radio Tower consists of lots of low level Rocket Grunts to chow through. On the forth floor is another consistently rotating trainer which requires some wait time to avoid.
Unfortunately you can't Escape Rope out of the Radio Tower, so you need to walk back down the whole way. Twice.
Before the forth Rival fight, I teach Iron Tail to Raikou, which will round out its type coverage a lot. I waited until now to get the most use out of Quick Attack before I overwrite it to conserve PP.
After defeating Team Rocket, I get the Radio Card. You could get it way earlier, but it's now on our way so it saves time to get it now.
The ability to push multiple Rocks at the same time is used to push the boulders more quickly. Only one boulder needs to be pushed down to solve it, as long as you fall down the right hole.
After Cooltrainer Darin, Raikou is completely out of PP for all its moves.
All test questions except the last have two right and one wrong answer. The mechanics are deliberately opaque, but it does not have any further significance other than answering correctly 5 times.
All trainers can be avoided by tactical surfing. One more consistent spinner requires some waiting. The heal house is used to finally refill all PP to prepare for the Elite Four.
One non-obvious small optimization is triggering the fifth Rival fight on the left tile instead of the right. While it adds two steps to the player's movement, it reduces the Rival's movement by two, and the player is faster using the bike.
Bruno's Hitmonchan always uses Mach Punch, it is a priority move and always hits, forcing Raikou to take some damage.
Karen's Umbreon is one of the very few Pokémon in this run which do not KO in one hit. I let Umbreon reduce Raikou's accuracy, but it doesn't affect the remainder of the fight.
Lance's Dragonites would also survive a hit, but using our second and last X Attack puts all of them in OHKO range.
All of Kanto is done without refreshing PP once, so it's again important to plan which move to use where, sometimes incurring avoidable crits in order to preserve PP.
On the SS Aqua, we encounter the only time the gender affects the gameplay in any way during this run, by prompting the rescued girl to emit 5 additional characters of dialog.
After landing in Kanto, it's faster to fly to Vermilion rather than biking from the pier.
Kanto is fairly open and allows for lots of different routes and possibilities. The general strategy is to do the Gyms whenever they are closest on our way through the main Kanto story line of bringing the Power Plant back online.
There are multiple different optimal paths through Sabrina's teleport maze. I use two different ones for in and out. It's also notable that there's a route with fewer teleports, but more walking time, which ends up slower.
After running into the Rocket in Misty's Gym, it's not actually necessary to collect it in order to enable the Misty cutscene in Route 25, and it turns out to be faster to do it later. Also, all trainer fights in Misty's Gym can be skipped by surfing around them.
Even though the player starts in Vermilion, the Gym is closest only on our second visit before clearing the Snorlax, so I slot it Surge there.
Brock is just a small detour after exiting Diglett's Cave. You need to at least visit Pewter City so that it's possible to fly back there later, but at that point it's faster to just do the Gym there and then.
Blue is the last Gym because Crunch is required to OHKO Exeggutor, and Arcanine can only be OHKO'd using Spark at level 61 or above.
Red has multiple Pokémon which won't KO in one turn, but using X items would not have reduced the total number of turns required, so it was not worth shopping for.
Red's Espeon gets fully paralyzed to avoid it using Psychic, which would cost even more time, partly due to the bugged Special Defense badge stat boost.
Red's Snorlax only is a two turn KO thanks to the side effect of Iron Tail, lowering its defense and enabling the badge stat boost on the second turn. Red's Venusaur is the same case as the Snorlax, but with Crunch and lowering the Special Defense instead.
A note on timing and console verification
While this page states this run's time is 2:48:50, the actual time it would take when played back on console is 2:48:39.703. The reason for this is that the concept of a "frame" is variable on a GB, and BizHawk's input frames don't align with them, yet it calculates time as if they were evenly spaced.
Unfortunately, this same discrepancy makes a console verification of this run rather unlikely, because of the real-time clock. Since BizHawk's frames are longer, and its emulated RTC is bound to the number of frames, its RTC ticks slightly faster than on an actual console, inevitably causing desyncs over time.
The correct solution to the RTC issue is probably to base BizHawk's RTC on the number of emitted audio samples instead, but I'm not sure it would solve all the problems with Gen II console verification.
Masterjun: Replaced movie with one that works on an updated core.
Masterjun: I think I don't need to talk about the technical quality of the run. The submission text and the thread replies describe the amount of thought and testing that went into making this run.
People mentioned they wanted this run to obsolete the current Pokémon Gold TAS because the games were similar and that TAS is very old. First off, the age of a TAS does not matter when deciding whether to obsolete similar games. It is an exception to let different games obsolete each other when they are very similar. However, the Cystal and Gold versions are quite different in a lot of ways. This is why I decided this run will be a new entry. If the goal is to obsolete the old Pokémon Gold TAS, it should be made on either the Gold or Silver version.
Accepted to Moons as a new entry.