We just reached 30,000 articles on this wiki! 🥳
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Bugs:Pokémon Yellow

From The Cutting Room Floor
Jump to navigation Jump to search

This page details bugs of Pokémon Yellow.

Hmmm...
To do:
More; identify which are specific to Yellow (except for bugs from Yellow but not Red/(Green)/Blue re-introduced in Generation II). The Counter glitches for instance are not Yellow specific.

Since Yellow is basically a souped-up version of Red and Blue, all bugs that existed in the original games apply here as well unless specifically noted on that page. Also almost all of the bugs here pertain to the starter/walking Pikachu (at present).

Battle Transition Bug

This bug only occurs in a battle without any Pokémon. The core bug was also carried forward to Pokémon Crystal. The only intended example is Professor Oak finding the Level 5 starter Pikachu and catching it, unique to Pokémon Yellow. In order to determine the battle transition, the game checks:

  • Is the battle not a Trainer battle or from a dungeon map?
  • After concluding that it isn't, the game checks the player's lead (non-fainted) Pokémon's level in comparison with the opposing Pokémon's level (5) in order to decide a "single circle" or "double circle" transition. A double circle is chosen if the Pokémon's level is +3 of the enemy's level, else it will be a single circle.

Due to a bug, the game will check beyond slot 6 of the party (with the player having no Pokémon at the time), while looking for the first non-fainted Pokémon. The first Pokémon beyond slot 6 will be Pokémon 12 if the rival name is greater than 5 characters long ($D34F; rival name character 6), where at least the end terminator (0x50) byte of the rival name is read as the HP (higher byte) for a Pokémon beyond slot 6. A non-00 value will mean it has remaining HP, so is not fainted. The level of Pokémon 12 is determined by the map's north connection byte, which will also be a value of 12 (0x0C; meaning the north connection is map 0x0C; Route 1. 12+3 (15) is greater than the opposing Level 5 Pikachu).

Therefore, in a nutshell; a rival name (internally ignoring terminators) greater than 5 characters long will ensure under a double circle in normal play (values 01 and above, because the map connection value of 12 is greater than the Level 5 Pikachu).

A Rival name can meet this crtieria if:

  • A pre-set name is chosen. Note pre-set names have hidden characters beyond the terminator.
  • A custom name was chosen for the rival, consisting of at least 5 characters (excluding the terminator, which might count as the sixth).
  • On the input screen, the player entered at least 5 characters, but erased them with B, leaving stray 0x50 bytes in place after confirming the name.

For this reason, speedrunners who know about this bug may consider it as a reason (depending on the category) to choose a pre-set name/longer rival name/rival name with characters erased with B; because the 'double circle' battle transition is ~30 frame faster.


(Source: Crystal_ (documentation for Pokémon Crystal), TiKevin83 et al)

Boulder Switch Bug

This bug only applies to the Japanese versions of Yellow, and specifically for all of its revisions below Rev 3. It applies to a Pikachu that follows the player around (normally the starter Pikachu, but any with the same trainer ID and OT name as the player). Having Pikachu stand on one of the boulder switches in Victory Road will remove its corresponding wall tiles (as if the player pushed a boulder on to the switch) for all boulder switches but the one found in 1F. For an image guide, see here


(Source: Legendary Starblob, ChickasaurusGL (Rev 3 detail))

Design Flaw for Bulbasaur Gift Happiness

These are not really bugs, but the author decided to publish this for the sake of including design flaws. The Cerulean City Bulbasaur happiness gift does not check if starter/walking Pikachu exists, so (Pikachu's) happiness can be maniulated using the SRAM glitch/255 Pokémon glitch (swap Pokémon 1 with Pokémon 18 to obtain a happiness of 255, then wrong warp to Cerulean City (item 36 quantity swap, via expanded inventory acquisition from Pokémon 2 with Pokémon 10 swap) at the beginning of the game; for meeting the happiness criteria of 147 for obtaining it without ever receiving Pikachu.


(Source: Bulbapedia, ChickasaurusGL (method))

Design Flaws For Multiple Walking Pikachu

Since the only requirements for the starter (walking) Pikachu to spawn (after the initial rival battle) are for it to have the same Trainer ID and OT name as the player, a player with the same name and Trainer ID (via luck manipulation) can send over another walking Pikachu via Link Trade.

Details are as such:

  • Only one walking Pikachu can spawn at a time.
  • If the original walking Pikachu was traded away or disappeared using a glitch (such as a Trainer ID change expanded inventory manipulation), the new walking Pikachu will replace it.
  • The happiness value and special emotes are shared between the two Pikachu; as is the asleep and unresponsive state by interacting with Jigglypuff in Pewter City Pokémon Center. So for instance, if the player uses a Potion on the walking Pikachu which hasn't spawned, it will raise the shared happiness value; applying it to the walking Pikachu which has spawned.


(Source: Bulbapedia)

Design Flaw For Disappearing Sleeping Pikachu At Pewter Pokémon Center

This requires another glitch to see, but is also a design flaw. Specific steps on how to do this are here. If the walking Pikachu is put to sleep from the Jigglypuff at Pewter Pokémon Center (but the Pikachu was the result of an unstable hybrid Pokémon obtained with the Pokémon merge bug), it is still possible to remove it from the party using a Thunder Stone; evolving it into Raichu; as the game only checks species byte 2 (which will be a Pokémon other than Pikachu) for the stone check. This leaves however a 'ghost' Pikachu, which responds to the Poké Flute with a sleepy sound, the "Z.....Z" speech bubble and the sleeping Pikachu box. The Pokémon Center Nurse will also say "It looks very content asleep.", even though Pikachu is gone. This is also be possible with the previously mentioned expanded inventory Trainer ID change manipulation.

It is not normally possible to place a normal sleeping Pikachu in the PC, or even view its summary from the party due to the message "There isn't any response..." but not so for a Pikachu/other Pokémon hybrid, which doesn't have these restrictions nor the omission of its menu sprite.

(Source: Paco81 (discovery), ChickasaurusGL (further information, additional video))

Freezing Pikachu's Sprite Bug

This bug causes the walking Pikachu's sprite to freeze. The player must jump off a ledge with Pikachu active. The player must keep the d-pad held down while Pikachu is turning by itself. If the glitch is performed correctly, Pikachu's sprite will not animate.

(Source: LanceAndMissingNo.)

Happiness Oversight

Using a HP recovery item, a status condition restoring item other than a Full Heal, or a vitamin will increase Pikachu's happiness, but the developers did not add a check preventing happiness from increasing if the item was unsuccessful, making it easy to max out Pikachu's happiness using an unusable item over and over again. This can be done as early as first receiving the Pikachu, using the Potion as withdrawed from the player's PC.

Initial Rival Battle Starter Pikachu Oversight

During the first Rival battle with Blue, Pikachu comes outside of its Poké Ball even though it was contained within it at the time. Though this really might have just been a design flaw and/or the developers may not have really been thinking about it, and it would be more efficient to not check and have any walking Pikachu (i.e. the same Trainer ID and OT as the player) come out from its Poké Ball all the time.

(Source: Bulbapedia)

Pikachu Link Battle Animation Oversight

Similar to above, this is probably just a design flaw for efficiency. Between two Pokémon Yellow Link Battles, the opponent's Pikachu will come out of a Poké Ball even if it is a starter/walking Pikachu, while on the user's side, it will enter battle horizontally without its Poké Ball, as usual.

(Source: Bulbapedia)

Pikachu Off-Screen Bug

This is yet another bug pertaining to the walking Pikachu. It has also referred to as Pikawalk in the English speedrunning community, or Pikachu's glitch for the user who documented the trainer corruption application, and was later adapted for arbitrary code execution. Although it is potentially a very powerful bug (like the left-facing shore tiles on Cinnabar Coast), it is lesser known and was first documented much later. Originally this bug was found as a derivative of glitch items and Glitch Cities as a means of putting Pikachu off the screen, before it was discovered it can occur in ordinary gameplay anyway.

It involves performing actions which leaves Pikachu off the screen, and known events without relying on other glitches such as glitch items, or Glitch Cities are as follows:

  • Talk to the Pewter City Pokémon Center Jigglypuff to put Pikachu to sleep, then walk so Pikachu is off screen.
  • Two interactions in Bill's House (before the player turns him back into a human from a Pokémon) will cause Pikachu to stay, and there is a small amount of space to put Pikachu off screen.
  • There is an event in the Pokémon Fan Club where Pikachu falls in love with Clefairy, again allowing it to stay to put it off screen. This event can also be repeated, though the chances of it occurring are down to luck every time the player enters this map.

While Pikachu is off-screen memory buffer D437 (wPikachuFollowCommandBuffer) is used to store backup Pikachu follow commands which are applied when Pikachu appears back on screen again (such as 01 meaning "Pikachu walks south", 02 meaning "Pikachu walks north" and so on). The player can write to this buffer for Pikachu to take the same steps the player does after he reappears (ignoring complex commands, where the complex commands corresponding to Pikachu will be applied). However, the developers set no limit to the number of stored follow commands. Even though the written address will wrap around for D437+(x modulo 256), this is still a large enough buffer overflow to break the game.

By walking around enough, it is possible to corrupt memory in ways such as setting Pikachu's happiness, manipulating a 255:59 play time, causing a Glitch City with a glitch tileset (Super Glitch City), setting a special emote for Pikachu, corrupting trainers on the map (and turning them into Pokémon/other Trainer encounters); though this application requires a glitch item as of present, and placing "glitch signs" on the map, corresponding with a specific text box ID.

(Some other videos: Trainer/Pokémon encounters, another video for glitch item method applications)

Arbitrary Code Execution Potential

Originally for the purpose of speedrunning, two "walk south" commands are used to manipulate coordinates x=1, y=1 for a glitch sign at Vermilion Fan Club, with a "walk east" (04) command as the sign ID. In Generation I signs are not technically paired with objects like signboards, so the player can talk to these glitch signs regardless of what they're facing (and if they're not facing anything); as long they press A at the correct coordinates.

Specifically,

  1. Trigger the Clefairy event in the Vermilion Fan Club.
  2. Go to the bottom-left walkable tile (putting Pikachu off the screen), then walk up to the top and down to the bottom of the left-most column 11 times, but for the 11th time step one tile short on the final way back down.
  3. Step right, step left, then walk up to the top and down to the bottom of the left-most column 10 times.
  4. Step right, then go the top-left tile you can walk to, face right and press A.

As the location of this glitch sign is D221 in RAM (party Pokémon 5 catch rate/held item), the player can manipulate party data for a text box which causes a buffer overflow which overflows the item count of the bag, allowing for the manipulation of items past slot 20 (corresponding to memory address beyond D346); including addresses like wMapScriptPtr (D36D/D36E) for arbitrary code execution, or any of the powerful applications of manipulating them.

Technically, the player can set up arbitrary code execution directly using the text box with a catch rate/held item of 08, because 08 at the beginning of a text box marks TX_START_ASM for executing ASM after it (the contents of D222 onwards). However, while a number of these applications have been discovered (such as trading over a Pokémon from Gold/Silver/Crystal holding a Moon Stone (item 08)) most aren't efficient or legal for speedrunning.


(Source: Paco81 and Torchickens (original variants), Sally (in ordinary gameplay), stumpdotio (arbitrary code execution method with glitch signs), LanceAndMissingNo. (Trainer corruption application))

Pikachu Brightening Rock Tunnel Oversight

If Pikachu has just learned Thunderbolt or Thunder while in Rock Tunnel, talking to Pikachu will perform its special emote where it appears fierce and electrified. The flashing animation of the emote is enough to momentarily brighten up the area, without the need of HM05 Flash.

Pikachu Rock Tunnel Orange Box Oversight

Similarly, an orange box surrounds Pikachu within its emote box in Rock Tunnel when talking to it in Game Boy Color or Super Game Boy mode. Like the heading above, the developers might regard this oversight as not an issue but an emergent feature.

(Source: Neogeddon (video by ChickasaurusGL))

Pikachu Water Tile VRAM Corruption Bug

This bug was actually unearthed from the Nintendo of America bug reports from the 2020 source code leaks. Apparently thanks to those reports, it was fixed in the localisations. Chatting to Pikachu near the water many times will corrupt the water tiles. Doing this even more will corrupt them further.

Vaporeon Learnset Bug

In Yellow, Vaporeon learns both Haze and Mist at Level 42. However, the game's battle system does not allow a Pokémon to learn more than one move on levelup (via battle or Rare Candy), or evolution and as Haze comes before Mist in Vaporeon's learnset, it will not learn Mist unless it reaches Level 42 in the Day Care. Curiously, the level up box will briefly flash after learning Haze via evolution.