Submission #7298: RangerSquid's GBC Pokemon Yellow "Butterfree main" in 1:56:22.03

(Link to video)
Console Game Boy Color Emulator Bizhawk 2.6.2
Game Version USA/Europe Frame Count 417576
ROM Filename Pokemon - Yellow Version (UE) [C][!].gbc Frame Rate 59.80722157802054
Branch Butterfree main Rerecord Count 166162
PowerOn Authors RangerSquid
Game Pokémon: Yellow Version
Submitted by RangerSquid on 1/18/2022 3:23:37 AM

Submission Comments
The emulator used was Bizhawk 2.6.1 along with TASStudios and Lua Console. The main settings of the emulator were not changed except the autosave feature, which was disabled.
For the BIOS, the GBA variant of the GBC BIOS was used.
Console Verification of the TAS will be occurring the following weekend after this submission, but once it is done it will be uploaded to Youtube and submitted with this.
The goal of the run is to beat the Pokémon League as fast as possible without glitches using a Butterfree. Previously, I created a version of this TAS that was significantly slower, and the timesaves will be listed and explained below.


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.
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.
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. This oversight is used extensively in this TAS.
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 PokeDoll on the Marowak ghost in Lavender Tower. This ruleset is uncontroversial in the RTA community at this point.


This run is intended to be a fun TAS, rather than the fastest possible TAS for Pokemon Yellow. I had a blast with making this project.

Route improvements:

Route 3:

On Route 3, there were timesaves in each of the fights due to not being able to find more optimal fight patterns originally. This reroute of the early game allows a timesave of 218 frames when entering Mt. Moon

Mt. Moon + Rare Candies:

In the original TAS, we collected 2 rare candies early on, one in Mt. Moon and one in Cerulean City. These are to gain early levels for Misty and for the Nugget Bridge + Route 25 fights. However, after rearranging the order of Misty and Nugget Bridge, it was found that you can skip both of these candies early on in order to save extra time. If you moved Misty to after going to Bill’s house, you would also save time with your steps as well, as you would at a much higher level post Bill. After exiting Mt. Moon and not picking up the Rare Candy in there, the TAS saves 967 frames in Mt. Moon alone.

Route 25 and Cerulean City:

In the original TAS, the choice to battle an optional hiker was made because the elixir was important for PP Management later in the game. However, after having rerouted the beginning of the game and incorporating the use of Psybeam once acquired, it was determined that it was not needed and thus, the optional trainer fight is not needed either. After completing the Bill section, we then travel back to Cerulean City, Heal up at the center, and then proceed to beat Misty. The other timesave in this section was completing Misty after the Bill section. This is due to having no benefit from the Bubblebeam TM except for inventory filling. This reroute in total saved another 5,032 frames, making a total of 6,217 frames already being saved.

S.S Anne through Rock Tunnel:

Due to the reroute of PP management in the previous section, some of the time lost in this section was the result of having to complete some fights slower than the original version of the TAS. While 194 frames were saved in the walking from Cerulean to Vermillion, by the time it entered Celadon City the timesave had dropped down to being 5,762 frames ahead. This was a net loss of 455 frames, but this was to be expected in order to save major chunks of time in the actual run.

Game Corner:

In the original TAS and submission, this was not discussed but is a vital part of the TAS itself. The manipulation of the game corner was very specific to the TAS in order to obtain Hyper Beam, the most powerful Normal-type move in the original games. Butterfree is able to learn it, but at the cost of 5,500 coins. While you could sell items in order to achieve this number of coins and not go through the Slot Machine manipulation, you are only able to buy the coins in batches of 50 coins for 1,000 Pokedollars. There is a total of 280 you can obtain from NPC’s and pickup, but you would still need to buy 5,220 coins. This would require in total 104,400 Pokedollars just to buy the coins. This would be a significant amount of time wasted, and there are not enough items on the ground or able to be acquired at this point in the run in order to obtain that amount of money. Thus, manipulation of the Game Corner Slot Machines was required for the TAS.
When entering the Game Corner, a number is generated between 0-31 and is saved as the lucky number. If the random number drawn is 0, the lucky number becomes 1 instead. Each slot machine in the game corner has an identifier, which is a number between 0 and 35. The slot machine with the ID matching the lucky number - 1 is the “lucky slot machine”. When you play at a slot machine, you have 3 different modes that you can be in when you play. The first is mode bad, which is losing yourself no matter how hard you try. The second is mode good, which is when you can win any of the mple prizes, aka any amount between 8-15 coins. The last mode is mode super, which allows you to be able to win the BAR and seven prizes, 100 and 300 coins respectively.
The lucky slot machine has a slightly higher chance of playing in mode super. A regular slot machine has:
2/256 chance to spin the reels in mode super 53/256 chance to spin the reels in mode good
In short, you have a 55/256 chance of ever winning in the slot machines in generation 1, a 21.4% chance.
With the lucky slot machine, you have:
5/256 chance to spin the reels in mode super 50/256 chance to spin the reels in mode good
You still have the same odds to win on this machine, but you have a slightly better chance of winning a bigger prize, roughly a 2% chance. Mode super continues to give you wins if you hit this mode, but this only has a 50% chance of continuing after each play.
In order to manipulate the TAS to win every single play, a lua script was used in order to correctly identify the lucky slot machine, and then manipulation of the initial A press at the start of each play to guarantee we were in mode super to win the biggest possible prize.
In the original TAS, there were many times where mode super failed to continue, and searching with input delays in order to locate it again were the main timeloss of this section. In the RTA runs of this speedrun, timing around this section involves going to the fly house and splitting once the player has acquired fly or left the house. For consistency, I recorded my frame as I left the fly house, which was immediately following the slot machines section. At this point, the TAS was ahead by a total of 6,288 frames, a gain of 508 frames in just this section alone.

X Items:

Due to Butterfree’s below-average stats and no access to any of the OHKO moves in any generation, Butterfree has to defeat Pokemon through sheer overpowering or through X item usage. In the original TAS, there were 11 X Specials, 9 X Speeds, and 17 X Attacks for the entire run. However, due to extra inputs, which was an error by myself, there were 2 additional X Attacks bought. Even in the reroute, I attempted to cut out more X Items in order to optimize the fights as best as possible. I was able to cut out an X item in Blaine’s gym and an X Speed in the Silph Co Rival fight.


In the original run, I opted out of teaching Psybeam to Butterfree, due to not realizing it was great for saving PP on Psychic in spots where we would normally run out with just Psychic. This allows us to use 1 less Elixir throughout the run, as well as save a menu in the Elite Four. The 1 less Elixir is also an optional Hiker that we chose to fight originally, but realized it was the most amount of time saved that could be saved from all of the Elixir grabs possible.
In the original TAS, the elite four required the TAS to menu after every single fight, whether for PP healing or HP healing. With a reroute of the entire game after Brock, the TAS is able to not menu after Bruno in order to save _ frames, since we will have enough Power Points due to using Psybeam in the run.

Order of events and the impact of that on the run:

Due to the changes to the early game, including the cut of Rare Candies, a drastic reroute of the entire run was required. This resulted in a slightly different route than the original, such as completing the Cerulean Rival before Misty as mentioned earlier. While this has a major impact in the early game, it has smaller but slightly more important impacts in the middle and end game menus and fights. For example, the timesave in the early game was a lot, but this was due to cutting out significant movement for rare candies and an optional trainer. This resulted in less power point items for the mid game, and thus required more planning of fights than the original TAS. Many of the split sections will, at times, save a couple hundred frames, then immediately lose those frames on the next section of the splits. This is because the timing of the menus was important to the run itself in order to optimize movement and the bag limit.
Another impact of this, as mentioned above briefly, was PP items collected in the run. In the run, we now collect 1 less Elixir that was blocked by a hiker, simply because we do not need it in the run. Psybeam benefits the run significantly to where the TAS can cut out an entire section costing roughly a minute, if not more of timesave. Throughout the rest of the run, PP items are more sporadically used until the final few gyms, where using them is extremely vital to finishing the penultimate section of the run.

Below is a table consisting of all the timesaves in the run at various points compared to the original run.

Section of the runFrames saved/lost
Beginning - Exit Mt. Moon1,185 Frames saved
Entering Cerulean - Beating the Rocket outside the house5,032 Frames saved
Entering Vermillion - Entering Route 9324 Frames lost
Entering Route 9 - Entering Celadon City131 Frames lost
Entering Celadon City - Entering Lavender Tower699 Frames saved
Entering Lavender Tower - Exiting the Pokeflute House58 Frames saved
Exiting the Pokeflute House - Digging out of the Safari Zone323 Frames saved
Digging out of the Safari Zone - Beating Erika + Koga292 Frames saved
Beating Koga - Beating Blaine105 Frames saved
Beating Blaine - Beating Sabrina (includes Silph Co. Rival fight)368 Frames lost
Beat Sabrina - Beat Viridian Rival Fight (includes Giovanni Gym Fight)106 Frames lost
Beating Viridian Rival fight - Entering Victory Road112 Frames lost
Entering Victory Road-Exiting Victory Road456 Frames saved
Exiting Victory Road - Beating Lorelei11 Frames lost
Beating Bruno247 Frames saved
Beating Agatha75 Frames saved
Beating Lance746 Frames saved
Beating the Champion1,081 Frames saved

Final comments and thoughts:

Overall, these timesaves helped improve the TAS itself by 9,145 frames, bringing the time from 1:58:45 to 1:56:31 TAS Timing. In the future, there could be a fourth version of this TAS where Hyper Beam is not acquired, and healing and HP management would have to be routed out extensively prior to the beginning of the TAS. However, despite this extensive routing, it is believed that there could still be a net positive timesave from not obtaining Hyper Beam due to 9 minutes of the TAS itself being the Game Corner.

feos: Replacing the movie file with one that trims 476 blank frames from the end.

slamo: Claiming for judging.
slamo: This is a cool idea for a run, and it's actually pretty well executed. There was a proof-of-concept of a faster route posted in the thread, but it's a pretty major change to the run and because the improvement is not due to overall sloppiness, this run should still be fine.
The main problem here is that this run is not eligible for Standard tier due to an unusual goal, and is not eligible for Moons because there is not really enough enthusiasm for it. Thankfully, I think this run should perfectly fit the proposed Playground section. It's not ready yet and the details haven't been ironed out, so I want to wait and see how this run will fit into it. Setting to Delayed for now.
slamo: The basic framework for Playground has been set up, and I believe this fits in perfectly as a suboptimal character run. We're still working out exactly how to handle these, but this should have a place to watch it on the main site at some point. Stay tuned, moving to Playground for now.

Last Edited by slamo 24 days ago
Page History Latest diff List Referrers