Arbitrary learnset/evolution glitch Pokémon

From Glitch City Wiki
Jump to navigationJump to search

An arbitrary learnset/evolution glitch Pokémon is a glitch Pokémon in Pokémon Red, Blue, and Yellow which takes its level-up learnset and evolution data from a non-ROM location in the Game Boy bus, such as VRAM, WRAM or SRAM.

This means that technically the glitch Pokémon's evolution and/or learnset can be manipulated, although in practise it can still be difficult (if the source data always changes to the same values for a method of levelling up the glitch Pokémon).

Arbitrary learnset glitch Pokémon were originally documented by Crystal_ and researched further by Torchickens (ChickasaurusGL), later both ChainSwordCS and ChickasaurusGL.

List of arbitrary learnset glitch Pokémon


Beginning of pointer table=$3B05C


Beginning of pointer table= $3B1E5

Evolving a Pokémon into Mew

Both 94 h (0xF9) and ₽ (0xF9) are capable of evolving into Mew, if the player saves and resets the game in this spot in Pokémon Mansion, below and then uses a Rare Candy to level up the glitch Pokémon.

This works because "01 01 15" (corresponding to two floor tiles and part of a tree) is taken from the data in that region, telling the game to make the glitch Pokémon evolve into Mew at level 1. However, there is a significant chance that an evolution to the correct Pokémon (Mew) will not work due to VRAM inaccessibility, if not, the player can keep trying again until the glitch works.

These glitch Pokémon can be obtained with multiple glitches, such as Rival LOL glitch.


4 h 4 (0xEB) is able to evolve into Mew with a special setup routed by ChainSwordCS. Extra difficulty is presented for several of these glitch Pokémon due to their somewhat random pointers, and sometimes precise alignment is necessary.

YouTube video by ChickasaurusGL

YouTube video about A (EA)'s learnset

YouTube video by Crystal

Other evolutions

More evolutions are possible with a RAM Glitch City, although it depends on the available sub-tiles supported by the map block. Like the above example, the bottom-left corner of the screen after loading the save file should start with a sub-tile 01, followed by (level) (species ID). One use of this is to hybridise a Pokémon knowing Surf with 0xF9 (i.e. using the Pokémon merge glitch), and then evolve it into Pikachu to get a stable Pikachu knowing Surf compatible with the Pikachu's Beach minigame, provided that the OT/ID on the resulting Pokémon matches the player.

While it is possible not all map blocks give the indices, the player can instead use arbitrary code execution to write to VRAM directly, although this may defeat the point for some, as arbitrary code execution can directly be used to teach any move to any Pokémon.

Another theoretical option using an 0xF9 evolution may be to abuse one of the rare glitches that corrupt VRAM to get the desired sub-tile, specifically the NPC sprites where sub-tile data for some glitch blocks are sourced (this is also the reason why they can alternate between a sub-tile and 9; due to VRAM inaccessibility).

Another, now materialised method for 0xF9 is to use the box breaker glitch to corrupt D52C-D52D (see tile block definition modification) to somewhere in RAM, such as inventory (where the first blocks' sub-tiles can be defined to portray an evolution entry or learnset entry; via the total experience of Pokémon 8 and switching to box 115 (0x73). A glitch box exactly like this has not been found in Yellow.

YouTube video by ChickasaurusGL

Learn any moves

This can be done with either the method below [which will also work on Yellow, with 0xEB] (if name characters are unavailable, they will have to be obtained with another glitch), or the video by ChickasaurusGL previously embedded above.

YouTube video by ChainSwordCS

External links

This article or section is a stub. You can help Glitch City Wiki wiki by expanding it. RB 234 fs crop.png