This is a thorough explanation of the strategy behind my Pokemon Yellow Any% Glitchless TAS in 1:36:41 (346,519 VBlank frames), which you can watch at the following link.

Setup:

The TAS was originally done in BizHawk on a development branch of 2.2.1 that has patches which make its emulation accurate enough to be verifiable on the Game Boy Player console. I have since finalized it in 2.2.2 and confirmed that the TAS runs identically in the official 2.2.2 release. The choice to use specifically GBA as the emulated platform instead of GBC is due to the use of the Game Boy Player by the RTA Pokemon Speedrunning community, which has the same manip behavior as the GBA and GBA SP. The TAS community would typically recommend running a GBC game on original GBC hardware emulation, but the ability to do a console verification of an input file made on GBA/GBP emulation combined with the standard in the RTA community tipped my hand towards building the input file for GBA/GBP. Because BizHawk 2.2.2 is verified to have exact console accuracy in GBA mode, this TAS should be playable on any newer versions as long as there are no regressions with accurate emulation.
I used a gbc_bios.bin for the GBC firmware and set CGB in GBA to True for GBP verification purposes.

Legend:

Frame = The smallest unit of time that can be observed realistically in emulation. The game accepts some inputs on every frame (for example in nickname menus), some (in the overworld) every other frame, and some (primarily in textboxes) every 3 frames. GB/GBC games play back at approximately 59.7275 Frames Per Second.
FAF = First Actionable Frame (the first frame where an input is useful for advancing gameplay)
PrintLetterDelay = The use of mashing during textboxes to cause differences in frame and CPU cycle counts and in turn advance the RNG or manipulate the timing of an input window.
Red Bar = The sound effect and HP bar color change caused if ((Current HP * 48 / Max HP) < 10). Being in red bar cancels level up jingles when in trainer battles (worth 2.5 seconds per level up) cancels death cries (40 frames per death) and cancels text box clear jingles (timesave unknown, around a frame per clear).
Also, notably being in Red Bar removes lag from a different jingle that plays when a move is super effective or not very effective. At face value, using a move with a shake animation is ~55 frames faster than a move with a flash animation. This drops to 27 frames for super effective shakes vs normal flashes and 10 frames faster for not very effective shakes vs normal flashes. However, the lag reduction from red bar makes a red bar NVE shake 26 frames faster than a normal flash animation, and a red bar super effective shake 34 frames faster. On top of this, the act of changing moves typically loses 7 frames, making shake animation moves of any kind at least 12 frames faster than flash animation moves for the purpose of this TAS (19 frames if you don't have to swap back to using the flash move). You also have to account for the length of a move name for exact timings, but that is not relevant to the decision making process. Good examples of the use of this optimization are Double Kick shakes on the Route 3 Ekans and the 2nd Route 3 Metapod.
Color lag = The lag caused changes by colors in Pokemon Yellow. Likely due to some flaw in the way that colors were hacked into the Pokemon Red engine to make Pokemon Yellow, color changes often cause lag. This can be seen most clearly in a stutter that occurs on map transitions (for instance between Route 1 and Viridian City). It also happens when the HP bars change color in battle and when a Pokemon is sent into battle in Red or Yellow bar, because the HP bar color is assumed to be green and then updated to Red or Yellow when the game notices that the poke is at lower HP. The value of Red Bar jingle skips far outweighs the time lost to the color lag from the HP bar. A good example of how we optimize for this is as Brock, where we intentionally low roll our first Double Kick on Onix in order to prevent hitting it into Red Bar with the 2nd use of Double Kick.
Gen 1 Miss = An oversight in the code for the accuracy check causes moves with 100% accuracy to still have a 1 in 256 chance to miss/fail. This means that we can cause an enemy to miss even if they're locked into using a theoretically deadly move, or miss our own moves if we need to.
DSUM = A label for the predictable outcomes caused by deterministic behavior of the random number generator. This behavior leads to an encounter cycle which constantly loops through the ten encounter slots in order.
Consecutive Input Delay = In Pokemon Yellow, if you press a button it needs to be released for a frame in order for it to be pressed again, otherwise the game will just see the button as being held the whole time. This can be counteracted via a trick to reapply the relevant button press. The key is to press a different button (typically a directional button) on the same frame that you want to press the initial button again, it will register a 2nd press of the initial button and not a hold of the initial button. This is done when a directional input is used to reapply B while exiting shops (which can be done in RTA) and to reapply up/down in the fly menu and item bag. The trick is also useful when B reapplies A to get on the Bike (also used in RTA), to deposit Pikachu (not useful in RTA), and to throw a poke ball from slot 1 (used in RTA). In general it could be used to select any slot 1 bag item in the overworld or in battle, but the relevant ones are the poke ball throws and the bike.
Ranges = The damage formula in Pokemon Gen 1 is modified by a random number, rerolled until it lands between 217 and 255 inclusive. The move is multiplied by this number and divided by 255 to obtain a range of possible damage between ~85% and 100%. Because we manipulate random number generation, we can manipulate these damage ranges to our liking. Also, because of the way much of the 8 bit math rounds down calculations, the full calculated damage is only a 1/39 chance (217 to 255 inclusive is 39 possible rolls).
Glitchless = the category this TAS was written for. I followed the RTA Pokemon Speedrunning community's ruleset for Glitchless, so while arbitrary code execution glitches like Brock Through Walls and Trainer Fly are disallowed, certain glitches that are not avoidable in RTA such as Gen 1 Misses are allowed, as well as oversights such as using Poke Doll on the Marowak ghost in Lavender Tower. This ruleset is uncontroversial in the RTA community at this point.
Note: This TAS is a rewrite of my previous TAS in 1:37:21, which succeeded in saving 40 seconds from that TAS. There are no known previous TASes of Yellow ENG Glitchless in any ruleset. There is a somewhat improvable TAS of the JPN release, whose times are not easily comparable due to the text differences and (more importantly) the game does not have colors like the ENG release, meaning that it has no color lag. As there were no TASes of the ENG game prior to these two, the main goal was to establish a very competitive baseline for TASes of this game and category.
Here's a link to the old JPN cart TAS: https://www.youtube.com/watch?v=l01wqxsPHB4

Route:

Intro Sequence

The TAS begins by pressing Start, A, and Start on FAF for 2 segments of the intro cutscene and the title screen with Pikachu. This strategy is borrowed from RTA manips; each input can be buffered for several seconds but the TAS can just press the relevant button on FAF. We then press down and then Left+A when opening the options menu. This executes "fast options," a trick where all of the options are set simultaneously because the Left press from opening the options menu is reapplied repeatedly as the game loops to display each of the options. This trick also works with right instead of left, but left sets the options we need for the run. Because the options are set instantly, you can press B on FAF once the options open and proceed to starting a new game. In general in the run I use the B button to clear text boxes so that I don't forget to use it to clear end of paragraph text boxes, which can be cleared faster with B. The end of paragraph text boxes are notable by their lack of a jingle when cleared. The key with the intro sequence is to then use A to choose to set your own name and then pick a single character name and press start on the following frame. The same is done for the rival.

Rival 1

Technically, we could save a few frames by setting the options in a separate menu once the game loads, but not doing so led to some extremely fortunate early RNG with Gen 1 Misses and the NidoranM encounter timing and DVs. After obtaining Pikachu (whose stats can be manipulated by changing the walk path to the catch grass or delaying frames before talking to oak to receive it), we lose to rival 1 in 2 turns. The fight involves an 18 HP Pikachu gen 1 missing growl and Eevee critting tackle for 9, then Pikachu gen 1 missing growl again and Eevee critting tackle again. We choose to gen 1 miss Growl instead of Thundershock because the "but it failed" text is so much faster than the "Pikachu's thundershock missed" text. The necessary RNG for this rare fight can be found with relatively little delay because of the number of combinations of delay possible. You can vary walk paths that obtain 18 HP pikachus, vary delays before opening the fight menu, delay the down or up press to get to growl, and delay selecting growl. You can also introduce PrintLetterDelay, most crucially on the "Pikachu used Growl" box to look for gen 1 misses and independently on the "Eevee used Tackle" box to look for 9 damage crits.

Route 1

We manipulate no encounters by varying the walk path and if necessary using an A press to cause the game to delay 2 frames checking if there's something to pick up or an NPC to talk to. We also use these tricks to manipulate the goalie NPC leaving room for us to walk up to viridian optimally. We get the parcel and walk back down the right side through the grass because we know we can manipulate away the encounters and this reduces ledge hops, which lose 8 frames. We talk to oak from behind to move Pikachu out of the Rival's way and manipulate route 1 encounters again.

Viridian Shop

We buy 4 poke balls in Viridian in the TAS: 1 for Nido, 1 for a flyer, 1 for L8 sandshrew on route 3 in red bar (which we end up not getting, but the 2 frames lost for the 4th ball is nearly irrelevant in comparison to the value of being able to catch one if in red bar at that time), and 1 for bag space (the extra for bag space is extremely crucial). After buying the balls, we press B and then reapply it with a direction+B to begin leaving the shop, then press B 2 more times to finish leaving. After exiting the shop we advance through the catch tutorial.

Nido catch

We use a series of specific walk paths into a pause in the route 3 grass to manipulate an L6 Male Nido with stats F6EE (in hexadecimal). F attack is necessary for ranges, low+even defense is helpful for red bar in the forest and after Misty, E speed is necessary, and E/F special is necessary for damage ranges (both give fine HP but E is even so slightly lower HP which is better). After encountering the Nido, the catch is done optimally with down->A to open items->B+A to reapply A and throw the ball.
It is one of the great miracles of this TAS that the DSUM cycle happens to allow for an L6 NidoranM with such a short wait and with an optimal walk path from Viridian. It is pure coincidence that losing the Rival 1 fight with 2 growl gen 1 misses and 2 tackle crits leads to the DSUM cycle being set up perfectly, when we could theoretically have needed to waste as much as 10 seconds just to shift the encounter cycle or find a way to shift the cycle without losing time.

Viridian Forest

We manipulate encountering a Pidgeotto with specific stats in the forest and take extra Yolo grass which is only viable in a TAS. The stats we get are E2E3, mostly even for low HP DV and with high attack to give Nido red bar immediately and low special to help pikachu's crit damage. The optimal fight to find is a Sand Attack fail from Pidgeotto, a T-shock crit for 14, another sand attack fail, a t-shock crit for 13, Pidgeotto gust crit to kill Pikachu, swap in Nidoran, Pidgeotto gust max roll crit for 21 to put Nido to 1 HP, then Nido Tackle hit. In the current TAS I was not able to find a 1/39 14 damage crit from one of the pikachu hits into a sand attack miss or a 1/39 tackle, so I crit the Nido Tackle to finish the kill.
On Bug Catcher 2 we swap Horn Attack to slot 1 immediately because Leer is useless in the TAS and then Horn Attack into a 4 damage tackle to set up perfect HP for Red Bar L9 and L10 and to survive Diglett's scratch in Brock's gym. We intentionally avoid critting Caterpie on turn 1 to avoid color lag and the 2nd Horn Attack crits for a kill. on Metapod we crit Horn Attack into String Shot Fail (maintaining Green bar on Metapod). On any of the early fights where we can't kill a Metapod or Caterpie, String Shot fails are the fastest thing that the opponent can do, and they're pretty easy to find because enemies have a 1 in 4 chance to miss stat/stage modifying moves against you. We then crit Horn Attack again putting Metapod into red bar and get string shot fail again and finish with non-crit Tackle to save a Horn Attack, which is useful in Mt Moon.
After Bug Catcher 2 we're in Red Bar so we can catch a pidgey if we see one using the same tricks as with the Nido catch, either here or after bug catcher 3 works.
On Bug Catcher 3, we crit Horn Attack twice and get String Shot fail from Caterpie.

Brock's Gym

On Light Year guy we take Scratch to 1 HP from Diglett, then get a high roll Horn Attack crit into Sandshrew gen 1 missing Scratch into a 1/39 horn attack crit. This is probably the hardest series of RNG to set up, as those three events alone are about a 1 in 400,000 chance to happen together.
At Brock, we 1/39 non-crit the Geodude with Double Kick into a tackle Miss, allowing us to finish with a single Double Kick non-crit shake (Double Kick is much slower if both shakes hit). On Onix we manipulate Bide into a Double Kick min roll crit. The min roll is necessary to avoid hitting Onix into red bar and causing extra color lag.

Route 3:

We 1/39 crit the first Caterpie and skip red barring L14 because it's slightly faster to not lose a full turn taking Caterpie damage and instead get quick attacked by the next Rattata, additionally this lets us not get crit by Grimer's Pound in Mt Moon. We also crit Horn Attack to kill Weedle and the 2nd Caterpie.
At Shorts guy we get quick attacked back to 1 HP and high roll crit Double Kick on Rattata for the 1 shake. On Ekans we high roll crit Horn Attack into a Leer fail (same 1/4 to fail as String Shot earlier on the Metapod and Caterpie) into finishing with a Double Kick.
We fight the bottom Bug Catcher instead of Lass because we can guarantee Kakuna crit, Caterpie 1/39 roll, and Metapod Crit, making the 4 poke fight faster than exiting the route and resetting the trainer positions to be able to fight the 2 poke trainer. On the last Bug Catcher, we crit the first Caterpie with Horn Attack and then get a 1/39 critical on the Metapod. It would technically be faster here if we would also manip Metapod gen 1 missing Harden. We then finish with Double Kick.
After evolving to Nidorino, we barely are not in Red Bar. This means that there is no way to catch an L8 Sandshrew in red bar without losing a turn to one of the fights in order to take damage, and therefore getting Charmander as our slave for Dig, Cut, and Strength is faster even though you have to overwrite moves on Charmander. Coincidentally, the DSUM also is in a reasonable part of the cycle to get an L8 Sandshrew somewhere along route 3 if in the future one were to find a way to get red bar for the catch without losing too much time.

Mt Moon

We manipulate no encounters through Mt Moon and skip getting the usual Rare Candy that RTA gets because the experience does not save enough time. Another rewrite might evolve to Nidoking before the Super Nerd, but the fight improvements are offset by Nidoking's much longer cry for 2 fights and the difficulty of regaining Red Bar.
At Super Nerd, we hit Grimer with a tackle on the first turn to avoid color lag, then kill it with a crit Horn Attack. We then crit Voltorb with Horn Attack and crit Koffing turn 1, because the color lag is faster than swapping to Tackle and back (you have to switch back to Horn Attack anyway when you Tackle Grimer).
At Jessie and James, we crit Ekans with Horn Attack and crit Meowth with Double Kick, then we hit Koffing with our Horn Attack that we saved from Tackling Metapod and don't crit it the first turn to avoid color lag. On turn 2 we crit Horn Attack to kill while still avoiding the color lag.

Cerulean City

In Cerulean we deposit Pikachu and center before Misty to set up a warp point for Dig in Cerulean and maximize red bar potential. We fight Misty before going to Nugget Bridge so that we can use Bubblebeam, which has a shake animation and makes our fights much faster as a result, and all those hits can be in red bar since we can regain it from the Misty battle. It also lets us kill Sandshrew and Onix in 1 turn without crits. On the way to Cerulean we walk in a specific path to manipulate good movement from the NPCs so that we can get to the PC efficiently, then we deposit Pikachu and use A->B+A to avoid consecutive input lag on the deposit. When leaving the PC we use B to leave because it lets us cancel some PC jingles. We hold B during textboxes when using the center to speed up their display.

Misty Gym

Immediately upon entering Misty's Gym, we evolve to Nidoking so that we aren't prompted to learn Poison Sting.
We hit Goldeen with a non-crit Horn Attack to avoid color lag, get Tail Whip fail from Goldeen, then crit Horn Attack on turn 2. On Misty we crit Staryu and get hit by Water Gun to set up our HP for Starmie, then Double Kick Staryu to finish the kill. On Starmie, we get hit by Bubblebeam turn 1 to 1 HP to set up red bar for Nugget Bridge, then we crit Horn Attack, then we get a Water Gun gen 1 miss, then we crit Horn Attack again, then we get Harden (easier to find than a 2nd gen 1 miss) into a final Horn Attack crit. If you get multiple nearly perfect HA crit ranges you can finish Starmie with a Double Kick critical (even through Harden because the crit ignores the Harden).
After Misty we menu immediately to eliminate any extra turn frames while leaving the gym and teach Bubblebeam to Nidoking over Horn Attack. To get to Bubblebeam you can use a sequence of left and right presses to repeatedly eliminate consecutive input lag when pressing down to get to bubblebeam. This technique is extremely useful for slots 3-4 (to the point that very experienced runners could benefit from it in RTA) and the TAS can continue to do it perfectly for any slot, eliminating the item menu windup time.

Nugget Bridge

We skip the Cerulean Rare Candy because its experience is nearly useless then head to Nugget Bridge. We crit Spearow with Bubblebeam at Bridge Rival, then a normal Bubblebeam on Sandshrew and Rattata, then a 1/39 crit Double Kick on Eevee for a single shake animation.
Nugget 1's Caterpie and Weedle both die to non-crit Bubblebeam
Nugget 2's Pidgey and NidoranF both die to crit Bubblebeam
On Nugget 3 we get Quick Attack crit back to 1 HP to set up optimal HP for Raticate hitting us to guaranteed Red Bar through the heal pad, then we hit Rattata with a non-crit bubblebeam to kill. Ekans and Zubat both die to crit Bubblebeam.
Nugget 4: Pidgey and NidoranF both die to crit Bubblebeam
Nugget 5: Mankey dies to crit Bubblebeam, then we teach Thrash over Tackle in slot 2
Rocket: Thrash

Route before Bill

We get Charmander and nickname him a 1 character name to save about 1.5 seconds, primarily because of the Strength uses in Victory Road.
Hiker: Bubblebeam
Girlfriend+Boyfriend: We would use Bubblebeam to kill these pokes and avoid the Thrash windup, but Bubblebeam PP is too tight so we just use Thrash.
Lass: Thrash
Get the Ether after the Lass to help fill the bag and to restore Horn Drill PP later
Bill: clear the cutscene textboxes with Bill to get the SS Ticket

Surge Split

Non-crit Thrash kills Machop and Drowzee so we can get Dig. We get the fast Full Restore in the underground to help fill the bag. Then we Thrash the 3 Pidgeys and the Spearow+Raticate fight. At Raticate we manip getting hit to exactly 2 HP to maintain perfect red bar through the heal pad in Lavender Tower. At the SS Anne Rival we manip a 4 turn thrash that only crits the Sandshrew and clears an Eevee range naturally. We then get Cut and leave the boat. We exit the boat on a frame that sets the first can in Surge's gym to be can 4, which is up the middle cans and can have a 2nd can also in the middle row. We then walk to the bush in front of Surge's gym and menu to teach Cut to Charmander and then teach Dig over his first move, using left and right again to reapply up and down inputs when moving around the item bag. Because we've already started picking up extraneous items to fill the bag, it's faster to teach cut before dig and take the timeloss from using cut in slot 2.
In Surge's gym we pick can 4 which we know is the first can from manipping it while exiting the boat. We pick the can on a frame which also manips can 7 to be the 2nd can, conveniently right next to where we're standing.
Surge: An optimal fight would be Growl Fail->Thrash non-crit->Growl Fail->Thrash non-crit, but we took a thunderbolt miss on the 2nd Raichu turn because the delay I was finding to manip the 2nd Growl fail was taking longer than just accepting a Thunderbolt whiff. After Surge we get the Bike Voucher and Dig back to Cerulean.
At Surge during this TAS I discovered that causing PrintLetterDelay during end of paragraph text boxes can lead to clearing them sooner. I do not know why, but it likely has something to do with aligning the end of the text box with an earlier 3 frame clear window.

Fly Split:

We manip good RNG from the NPC in the bike shop and get the bicycle. Then outside the shop we swap up the bike and teach Thunderbolt in Slot 4. We hold B through the cut animations to clear their text boxes frame perfectly.
4 Turn Thrash: We manip a 4 Turn Thrash fight that actually lasts 4 turns and has no useless crits. We then manipulate no useless crits on the Venonat trainer including a good Thrash range on Venonat. In Rock Tunnel we have to manipulate away encounters while progressing through to each fight. We swap bubblebeam to slot 1 on Cubone because we want to teach Horn Drill in Slot 1 and not overwrite Thrash, then we use Bubblebeam on cubone and Thunderbolt on Slowpoke. We Thunderbolt the lone Slowpoke again and then get good Thrash ranges on Oddish and Bulbasaur. At the hiker, we previously copied a strat from an old JPN TAS which manipulated the Geodudes and the Graveler into gen 1 missing Selfdestruct, which eliminates animating their HP Bar as it drops. It turned out the amount of text this strat involves in ENG, combined with the problem of manipulating 3 gen 1 misses in quick succession, made the strat much slower than just using 3 Bubblebeams, to the extent that it was more valuable to use them here than to cancel Thrash windups in other places. After the hiker we Thrash the final Lass, avoiding Quick Attacks since our HP is already set up for red bar through the heal pad. After rock tunnel, we get the Max Ether hidden in a tree to fill up bag space and fill up PP while dropping an item before Giovanni. At the Gambler, we use Bubblebeam on the Growlithe and Thunderbolt Crit on the Vulpix to avoid a Thrash windup.
In the underground, we get the Elixer while facing it from the top in order to avoid turning in the following building. In the Underground we also have the first example of reapplying A to get on the Bicycle a frame faster by avoiding consecutive input lag.

Shopping

In the Celadon shop: 2x TM07, 2x Poke Doll, Fresh Water, 7 X Speed (all shops using a direction to reapply B while leaving and using a direction to reapply down presses getting to the items)
Bike everywhere up to the Fly house
Outside the fly house, swap slot 2 with Poke Doll, teach fly, teach HD over BB, use Fly (in the Fly menu, you can reapply down presses a frame faster by using left or right presses on alternating FAF down presses).
HD, Thrash, Leer, TB moves at tower

Lavender tower: Don't forget to manip away encounters here

Rival: HD x5
Gastlies: TB
J&J: HD x3
Fly to Celadon, Center, go to the Safari Zone (center is fine because we just lost red bar from the heal pad anyway)
Swap Poke Doll in slot 2 with X Speeds in front of Snorlax, then use Poke Flute
Manip away encounters in the Safari Zone while getting HM03 and the Gold Teeth. This should fill the last bag slots so that we do not receive unnecessary TMs from gym leaders.

Koga Gym:

Dig out of the Safari Zone and then fly to Koga.
Juggler: Thrash crit->crit->non-crit->crit
Juggler 2: Thrash non-crit->Confusion crit->Thrashcrit (get 3 HP redbar off hypno confusion crit)
Koga: X Speed->4x Horn Drill
Get strength after Koga's gym

Cinnabar Mansion:

Fly to Pallet, manip the NPC to walk out of your way while you go to the water (you really have to manip this before the Fly to make it work right), Use Ether on Horn Drill, then teach Surf over Nidoking's Leer in slot 3 since it will be used only once. We can go to the mansion this early because we can manip away encounters regardless of Nidoking's level, whereas RTA needs to outlevel encounters in order to avoid them with Super Repels.
Mansion: Blizz over Thrash (HD, Blizz, Surf, TB), use this menu as part of encounterless manip. After getting the Secret Key, dig out of the Mansion and bike to Erika's gym.

Erika's Gym:

Exeggcute: Blizz
Erika: Blizz, Blizz, Blizz
After Erika, cut the bush below Erika, leave the gym, and fly to Blaine.

Blaine's Gym:

Answer the questions ABBBAB
Blaine: X Speed, Tail Whip fail, HD x3
Dig out of Blaine's Gym and bike to Silph

Silph:

Walk to floor 5 and get the hidden Elixer there (this one is faster to get than the Lavender Tower hidden Elixer, also walking to floor 5 is faster than taking the elevator)
Arbok: HD
Rival: Blizz, HD, Elixer->Ember to 1 HP->Surf, HD, HD
J&J: Blizz Crit, TB Crit, TB
Giovanni: TB Crit x2->Blizz x2
Dig out, bike to Sabrina, X Speed->HD x3
Dig out of Sabrina, then Fly to Viridian

Giovanni Gym:

Use Ether on Horn Drill then bike to the Giovanni gym
Cooltrainer: Blizz
Blackbelt: TB crit x3
Exit and re-enter the building to reset the Blackbelt's location
Giovanni: X Speed, Guard Spec, HD x5

Viridian Rival

Teach strength to Charmander, teach fissure over tbolt, bike to Viridian Rival
Rival: Blizz, Fissure, X Speed->QA->Fissure x4
We set up X Speed on Ninetales to let it damage us slightly and maintain red bar through the first Gengar at Agatha and also outspeed Viridian Rival's Kadabra

Victory road:

Use Charmander's Strength to execute the boulder puzzles, but do swag boulders instead of A presses to manipulate encounters away because it looks cooler and loses the same amount of time
When you get back on the bike after falling through the boulder hole, use Elixer then get back on the bike
- Should have only 1 Elixer at this point

E4

Moves: Drill, Blizz, Surf, Fissure
At the E4, deposit Pidgey and Charmander
- Lorelei: drill, drill, drill, fissure, fissure
- Bruno: blizz, blizz crit, blizz crit, blizz, drill
- Agatha: x speed -> lick no para, fissure, blizz crit, fissure, drill, fissure
After Agatha, we menu immediately and use the last Elixer. This lets us leave Agatha's room faster because the gates open as we exit the menu. Then, we do not have to give Gyarados a turn while he misses Hydro Pump
- Lance: drill, fissure, fissure, hyper miss -> blizz, blizz crit
- Champ: drill, x speed -> Kinesis fail, drill, drill, drill, fissure, fissure.

ThunderAxe31: Judging.
ThunderAxe31: Welcome to TASVideos, TiKevin83!
It's been more than ten years from the last time a similar movie has been submitted to the site. Since then, many runs that make use of game-breaking glitches were published, overshadowing runs that don't. As a result, there is currently no active branch applicable for this movie. However, this doesn't mean that the branch is dead: providing that all the required conditions are met, the branch can be restored and this movie can be published.
The first requirement is clear goals. While this movie appears to follow an arbitrary ruleset at the first glance, it must be noted that it fits nicely into the "Forgoes memory corruption" category, which is a sensible condition that excludes possible controversy.
The second requirement is featuring unique TAS content compared to the other branches. Counting all Pokémon Gen I games, we currently have 5 active branches: "SRAM glitch", "warp glitch", "Gotta Catch 'Em All!", "arbitrary code execution", and "Coop Diploma". Despite the amount, none of these feature much redaundant content compared to the submitted movie. Also, the goal for this movie counts as the trunk, that is the basic branch from which all other branches are derived, hence the decision to leave a blank label.
Apart from the branch matter, the movie also has to adhere to the Moons tier standards. For what concerns technical quality, there are no doubt that there has been put a lot of thought behind its making, resulting in more than enough route planning and fights optimization needed for typical Pokémon TASes. And on the other hand the entertaining quality is also high; the red bar has been appreciated since it adds more challenge to the optimization and breaks the audio funnily.
With all that said, accepting for Moons as a new branch.
Spikestuff: Publishing.

Chamale
He/Him
Player (177)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Voting yes. I found the use of redbar very impressive, and considering that it saves several minutes, definitely worthwhile. RTAs use it, and I don't think sacrificing several minutes for better audio is worthwhile.
TiKevin83 wrote:
Gifvex's timings: https://pastebin.com/cTAUc5aS Corresponding list of moves: https://glitchcity.info/biglist.htm
These numbers say that non-redbar Tackle is 10 frames faster with animations turned on. Is it possible that a future run could save 20 frames by fighting the first Rival with animations on, and only enter the options menu afterwards? Or would this cause problems with the good RNG you found in this run?
TiKevin83
He/Him
Ambassador, Moderator, Player, Site Developer (119)
Joined: 3/17/2018
Posts: 348
Location: Holland, MI
Hi Chamale, Thanks! Yes, there may be a way to optimize the options and tackle animations by a few frames, and you are spot on that it might not mean anything because the RNG for getting Nido's stats with very little delay is so precise in this run.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I went through our Yellow/Red/Blue branches. They seem to historically be interchangeable, as they use to obsolete one another, though Yellow is only obsoleted by Red in the SRAM glitch branch, it's ACE branch is active. Blank branch of Red feels like a warp glitch to me, in any case it contains a major skip glitch, so despite of being "no ACE, no SRAM corruption", it's still substantially different from this submission, which at the first glance has the same restrictions. What I'm getting at, this submission would be a blank branch by our standards. Note that blank branch not equal to our definition of any%. We do not explicitly highlight any% in any way, because it doesn't help with organizing the branches. So when labeling runs, we rely on statistics instead. If a run sets unique goals that other runs don't, we put them in a label if such goals are actually rare overall. "ACE" is a rare category, hence we call it out. "No ACE" is not a rare category, it is overwhelmingly common through the whole speedrunning community. Hence in the case of this submission, we don't need to say "no ACE" in the branch: it's so common that it's implied. Same about SRAM or memory corruption. They are rare, avoiding them is common, no branch label needed. But what about "glitchless". If we look at it stupidly, sure, overwhelming majority of all runs of all games uses glitches, avoiding glitches is rare. But as it was pointed out, the term "glitch" itself is undefined. Firstly, because it's unofficial, secondly, because there's barely any way to know the actual developer's intention: we can only speculate in most cases. Thirdly, because there can't be clear cut: despite of the very meaning of the word "glitchless", which means "no glitches", the actual runs under these RTA categories still allow some glitches. "No some glitches" - doesn't sound like a sensible category label anymore, does it? RTA community is more lenient regarding having arbitrary amount of arbitrarily defined branches, it mostly serves as an archive storing all the categories that people speedrun. We can't operate in that way, because it'd cause a lot of clutter, confusion, and tons of extra work on behalf of the site staff, with little benefit. The only benefit would be satisfying people that want ALL branches to be published, regardless of how pointless they are. Doesn't look justifying. For that reason, we limit the amount of branches published at the same time. We try to only have ones that are clearly defined and not redundant compared to others in terms of unique superplay they showcase. And in order to manage this, we've developed a set of rules that we follow.
JudgeGuidelines#SumUp wrote:
Quantity is not quality.
  • Keep the number of different branches per game minimal. A run for a proposed new branch for a game should offer compelling differences relative to previously published runs of that game.
  • Avoid making decisions that undermine this guideline (or other guidelines) now or in the future. For example, don't publish an arbitrarily rule-restricted movie just because there are too few movies for that game; doing so may lead to impossible-to-solve "why A but not B" debates later.
What I'm trying to say with this, we can't use the term "glitchless" if it's not objectively glitchless, even if RTA community thinks it's fine to have glitches in a glitchless branch. However, this doesn't mean that the actual goals of this movie are arbitrary. In no way they are. They are quite common, and they were what the overwhelming majority of the runs were for games where no memory or SRAM corruption techniques were known. But then they were discovered. Does that mean the whole branch that avoids them is effectively dead? Of course not. As long as people keep competing in it, and as long as it features unique TAS content, it's alive. So yeah, we should publish this as just GBC Pokemon Yellow in 1:36:41.68 by TiKevin83, noting in the publication description that it avoids all those memory and SRAM corruption techniques. Whether it has sequence breaks at all, or glitches at all, is irrelevant, and the ambiguity of both is resolved by this.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 12/29/2007
Posts: 489
TiKevin83 wrote:
I disagree with the assumption of difficulty in defining glitch. The "glitchless" category used in the RTA community is based on a very straightforward definition of "no arbitrary code execution."
"No ACE" isn't sufficient, because loads of inarguable glitches don't cause ACE. To demonstrate, ACE wasn't discovered until 2012, but the first RBY movie here that uses glitches was published in 2006. But as ThunderAxe31 says, "no memory corruption" should be sufficient on its own. If you define it as "no reading or writing unintended memory", then: - Mew glitch is banned, because the game (at least) reads Attack & Special stages as level and species. - Old Man glitch is banned, because the game reads your name as wild Pokemon data. - Missingno. is triple-banned, because the game reads (and writes) an item quantity as a Pokedex flag, reads (and writes) Hall of Fame data as sprite pixels, and reads Biker party data as base stats. - Fight Safari Zone Pokemon glitch is arguably not banned, because "the game doesn't clear wild Pokemon data" isn't reading or writing anything, and "the game reads the wrong subtile when generating encounters" happens on literally every step of the game. This is useless in a speedrun though. - Poke Doll on Marowak is not banned, because running from a battle and ending it is intended behavior. "The developers forgetting that there's a way to run without pressing Run" doesn't read or write anything. - Bike Shop keep-instant-text is not banned, because the game turns instant text on and off all the time (whenever the Start menu is opened/closed, for example). "Forgetting to turn it off" doesn't read or write anything.
TiKevin83
He/Him
Ambassador, Moderator, Player, Site Developer (119)
Joined: 3/17/2018
Posts: 348
Location: Holland, MI
Hi Feos, Thanks for your jnput. I think I'm following what you're saying, we could drop "glitchless" to avoid confusion. My primary purpose using the term here was it's familiarity to the RTA community. Zowayix, You could go down a rabbit trail with that as well because you have to infer the intended use of memory addresses from what the code actually uses them for, but yes I agree that those intentions are more clearly defined than story progression. The use of the word "glitchless" is certainly strange from the TAS community's perspective because RTA abuses so many glitches that don't result in ACE or memory corruption, so I can definitely see a need to be careful with terminology here.
Judge, Skilled player (1275)
Joined: 9/12/2016
Posts: 1645
Location: Italy
feos wrote:
What I'm getting at, this submission would be a blank branch by our standards. Note that blank branch not equal to our definition of any%. We do not explicitly highlight any% in any way, because it doesn't help with organizing the branches. So when labeling runs, we rely on statistics instead. If a run sets unique goals that other runs don't, we put them in a label if such goals are actually rare overall. "ACE" is a rare category, hence we call it out. "No ACE" is not a rare category, it is overwhelmingly common through the whole speedrunning community. Hence in the case of this submission, we don't need to say "no ACE" in the branch: it's so common that it's implied. Same about SRAM or memory corruption. They are rare, avoiding them is common, no branch label needed.
While there are no doubts that "SRAM glitch" is a very rare category, there isn't much difference in spread if we compare the RTA branches "Any% Glitchless" and "Any% No Save Corruption". Take a look at the current amount of RTA runs on speedrun.com: Pokémon Red/Blue ( https://www.speedrun.com/pkmnredblue ) (ENG) "Any% Glitchless" has 288 runs; (ENG) "Any% No Save Corruption" has 197 runs; all other branches have less than 30 runs for each. Pokémon Yellow ( https://www.speedrun.com/pkmnyellow ) (ENG) "Any% Glitchless" has 64 runs; (ENG) "Any% No Save Corruption" has 40 runs; all other branches have 4-6 runs for each. I'm not sure if this difference is sufficent to require a blank label. Also, I'm taking in account the fact that there are numerous possible goals for Pokémon games, even some not present on speedrun.com nor TASVideos, so an appropriate label would also help to avoid confusion for this reason.
feos wrote:
However, this doesn't mean that the actual goals of this movie are arbitrary. In no way they are. They are quite common, and they were what the overwhelming majority of the runs were for games where no memory or SRAM corruption techniques were known. But then they were discovered. Does that mean the whole branch that avoids them is effectively dead? Of course not. As long as people keep competing in it, and as long as it features unique TAS content, it's alive.
I agree that the goals for this movie are not arbitrary, differently from what I initially thought. However, I think that not only because of how common are the runs made under the relative ruleset, but also because the ruleset itself happens to follow a clear logic: no memory corruption (thanks again to Zowayix). In my opinion, both reasons are necessary in order to warrant the new branch, and thankfully both are met. Additionally, I find there are also entertaining and technical merits for this run. So this is my idea for the label names: TASes that use the equivalent of the RTA ruleset for "Any% No Save Corruption" should be published with label "no SRAM glitch" or "no save/reset"; TASes that use the equivalent of the RTA ruleset for "Any% Glitchless" should be published with label "no memory corruption".
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
First, the point about statistics doesn't mean that we need to use RTA statistics at all. If it's confusing, we need to clarify this, I just never thought it would be used that way. We might include RTA, we might not, neither is critical, because they're not using our branching rules. Second, it was never the rule's intent to count how many runs each branch has. The key was counting branches themselves, because only that way you can determine what is unique and what is common. For example, if you take current Battletoads branches, it's clear that not using memory corruption is common, and using it is unique. Since we don't need to prevent confusion with obsoleted branches, we don't give each of them unique label. Quite the opposite, we want runs within the same branch be considered the same thing, and only the current one we actually showcase, because it tells us what is the current situation with this game's TASing. 10 years ago we might have had a branch that was called X, but it was still obsoleted by branch Y. It's not confusing, as they only obsoleted one another because they were similar in a lot of ways. Sure, you can count obsoleted branches as an additional way to figure something out, but we don't have categorization problems with them anymore, hence this info won't help us with the main problem: categorizing the current runs.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
ThunderAxe31 wrote:
TASes that use the equivalent of the RTA ruleset for "Any% Glitchless" should be published with label "no memory corruption".
That doesn't sound like a good idea. I'm pretty sure there are tons of glitches that don't fall under the definition of memory corruption, but would still very obviously be banned in any glitchless ruleset. Like, for example, Brock skip: Is that glitch using memory corruption?
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Joined: 5/23/2014
Posts: 162
How about using the term "Bug Limit" instead of "Glitchless"?
Memory
She/Her
Site Admin, Skilled player (1514)
Joined: 3/20/2014
Posts: 1762
Location: Dumpster
Branchless is the best idea.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Experienced player (670)
Joined: 11/23/2013
Posts: 2206
Location: Guatemala
Memory wrote:
Branchless is the best idea.
YES.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Joined: 12/29/2007
Posts: 489
andypanther wrote:
ThunderAxe31 wrote:
TASes that use the equivalent of the RTA ruleset for "Any% Glitchless" should be published with label "no memory corruption".
That doesn't sound like a good idea. I'm pretty sure there are tons of glitches that don't fall under the definition of memory corruption, but would still very obviously be banned in any glitchless ruleset. Like, for example, Brock skip: Is that glitch using memory corruption?
Ah, thanks. That tears a pretty big hole in my "no memory corruption" idea, because I can't think of anything during Brock skip that reads or writes unintended data. The root cause of that is "the game disables the directional buttons but forgets to disable the other 4 buttons for a couple of frames".
TiKevin83
He/Him
Ambassador, Moderator, Player, Site Developer (119)
Joined: 3/17/2018
Posts: 348
Location: Holland, MI
Isn't Brock through Walls an Arbitrary/Undefined Code Execution setup? Since the walk path for the player is not defined for the case where you are to the NPC's right.
Joined: 12/29/2007
Posts: 489
Brock Through Walls is memory corruption (game reads a ton of unrelated values as cutscene walk data). The precursor, Brock skip, is not.
Judge, Skilled player (1275)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Zowayix wrote:
Brock Through Walls is memory corruption (game reads a ton of unrelated values as cutscene walk data). The precursor, Brock skip, is not.
However Brock skip in unnecessary for Glitchless route.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Judge, Skilled player (1275)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Sorry for the late reply, feos. Indeed, while the ruleset for this movie fits nicely in the "no memory corruption" description, it must be noted that it wouldn't point out to anything in particular about the uniqueness of this movie. Also, the goal for this movie reflects the way the game is normally played. So in the end I agree that labelless is the best solution.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Active player, Editor (296)
Joined: 3/8/2004
Posts: 7468
Location: Arzareth
I would love it if more TASers did that sort of explanation streams, especially of runs that are not obvious to people not in the know. Watched and liked.
Chamale
He/Him
Player (177)
Joined: 10/20/2006
Posts: 1352
Location: Canada
The definition of a glitchless run in Pokémon Gen 1 is tricky. I'm going to compare the 1/256 miss chance, the Poké Doll Marowak skip, Trainer-Fly, and Brock Through Walls. The 1/256 miss chance is a glitch or programming oversight, but it's commonly encountered during normal gameplay. For RTA runners, it would be impossible to avoid. For a TAS to use 1/256 misses seems perfectly appropriate, because it's taking an event that sometimes helps RTA runners and manipulates luck in order to encounter it as often as possible. So, it's allowed in glitchless RTA for obvious reasons and it has always been used in Pokémon TASes. The Poké Doll Marowak skip is also a glitch or programming oversight. It was discovered in the early days of the original Pokémon games, and Nintendo made no effort to patch it in Yellow version. Anecdotally, some players used the Poké Doll on Marowak instead of the Silph Scope on their first playthrough of the game. The RTA community allows it because it has been known for so long, and because it makes narrative sense - it doesn't skip any of the cutscenes related to the Marowak battle, and it doesn't cause graphics distortions or strange teleportations. Trainer-Fly and Brock Through Walls both involve the player clearly doing something that shouldn't be possible. Trainer-Fly causes two unrelated animations to play at the same time, followed by an out-of-place wild Pokémon appearing some time afterwards. Brock Through Walls can let the player walk through any wall and go anywhere on the map. Each of these glitches is unlikely to be discovered during normal gameplay. So, why allow programming oversights like 1/256 Miss and Poké Doll Marowak Skip and call it a glitchless category? I think these oversights are distinguished from glitches because they only affect the game for a moment. Unlike glitches which fundamentally affect how the game is played, 1/256 Miss simply causes an attack to miss, and then the battle continues, and nothing appears out of the ordinary to a casual player. Poké Doll Marowak Skip requires the player to use a Poké Doll instead of a Silph Scope for a single encounter, and then the game proceeds normally. For these reasons, I think it's justified to publish this run in its own branch as a glitchless TAS of Pokémon Yellow. Edit: I had written about the Instant Text glitch as well, but apparently I was not up to date on the RTA community's rules.
TiKevin83
He/Him
Ambassador, Moderator, Player, Site Developer (119)
Joined: 3/17/2018
Posts: 348
Location: Holland, MI
Chamale, The RTA community recently re-allowed instant text for Red glitchless, if I were to TAS Red under the same ruleset that I did for Yellow I would use instant text. The glitchless term is a good label for RTA runs using this ruleset, but I could understand why it would make less sense to call the branch glitchless here.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Chamale, thanks for the explanation. If you disagree with leaving this TAS without branch label, feel free to argue with my post.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced player (670)
Joined: 11/23/2013
Posts: 2206
Location: Guatemala
Can we also please, PLEASE leave the Pokemon Gold and Pokemon Diamond glitchless runs branchless too? For the sake of consistency, I'm tired of those 2 runs having branches that are so out there compared to the other branches of other games we have on the site.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
We're currently working on making all pokemon branches fully compliant to the rules.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Judge, Skilled player (1275)
Joined: 9/12/2016
Posts: 1645
Location: Italy
I apologize if I was too much pedantic. I consider this movie category very important and in need to be carefully managed with the appropriate rules in order to shine to the fullest. I thank everyone for the contribute to the discussion, because it helped me in being able to appreciate the ruleset as is, to the point to tempting me to join the challenge and making a faster TAS. I just want to point out one last thing: while movies done on Blue and Red can obsolete each other in any case due to their similarity, Yellow Version instead features many little differences, and thus I think this branch should be kept separated from them. Also, future submissions should also use the English version, unless there is the introduction of major technical and entertaining meritis. However, this can't be said for sure unless we get an actual new submission to see and judge, so don't take my words as a rule.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
GoddessMaria
She/Her
Experienced player, Reviewer (837)
Joined: 5/29/2009
Posts: 514
Location: Hell...
TiKevin, I must say, I am quite surprised that both you and gifvex made the jump into the TAS world! For your first TAS, I'm impressed! I was originally going to consider working on this myself, but due to other projects and lately more emulation advancements that I can't utilize, I had to leave it be. Good on you for taking it on! After taking a look at the encode, I was sufficiently entertained. The changes in route from RTA was neat and caught me off guard! Good job! Voting Yes! ----- Also my little two-cents on this matter... As much as it shouldn't/doesn't need explaining due to it having already been said a few times, it seems that it still hasn't been made clear. The Poké Doll skip, while could be seen as a glitch, is NOT a glitch. The Ghost encounters are treated as Wild Battle encounters and due to that, the effect of the Poké Doll ends the battle as intended. The Marowak Ghost encounter is one of those encounters like the others in Pokémon Tower. Due to the battle itself being ended, the game continues on like normal.
Current projects: failing at life
TiKevin83
He/Him
Ambassador, Moderator, Player, Site Developer (119)
Joined: 3/17/2018
Posts: 348
Location: Holland, MI
Thanks again for everyone's input and thank you GoddessMaria for your encouragement! Thunderaxe, there are a few vectors I can think of to improve on this TAS. One would be to do 3 Pidgeotto fights in the forest instead of fighting the 2nd bug catcher, but this requires some extremely precise RNG and I'm not even sure if it ends up being faster. Another would be to use a proper bot to find more efficient RNG setups (I found everything in this movie by hand). Lastly, there might be a way to handle bag management slightly better. If you skip getting the early Ether it makes several menus more efficient and then you don't have to choose to use it on Horn Drill. You can instead get the Max Elixer on cycling road after biking down the far left side. This might end up being worse though because of the increased time to scroll down when you need to use it.