Stadium 2's Move Reminder

The Humble Beginnings of a Staple Feature

If you've ever played a Pokémon game before, you're probably aware of an NPC called the "move reminder", which does exactly as you'd expect from the title - reminds a Pokémon of moves from their level-up learnset that they have forgotten, allowing them to acquire those moves once more. The move reminder has been a staple feature in some form since Pokémon Ruby and Sapphire for the Game Boy Advance, but what's less well known is that the feature actually has its roots in generations 1 and 2.

The message displayed after beating the Gym Leader Castle's Elite Four and Champion fights. First it reads 'CONGRATULATIONS!' in big rainbow lettering, and then 'A previously forgotten TM can be learned once again. Here's your chance!' in smaller white lettering.
The message displayed after beating the Gym Leader Castle's Elite Four and Champion fights.

The move reminder feature was actually introduced in Pokémon Stadium 2 as a reward for beating a challenge instead of a commonplace feature. By connecting Pokémon Red, Blue, Yellow, Gold, Silver, or Crystal to Stadium 2 via the Transfer Pak accessory, it is possible to bring Pokémon from the Game Boy to battle in all the various battle challenges the game offers. In return for beating the Elite Four and Champion fights in the Gym Leader Castle with a team of Game Boy Pokémon (without using the registration feature) in one sitting without suspending the challenge, the player will be given the chance to reteach a move to their Pokémon from their level-up learnset belonging to whichever Game Boy game they are playing from. This is infinitely repeatable for as many times as the Elite Four and Champion are defeated.

Amusingly, the message stated to the player refers to these moves as TMs (Technical Machines) even though they are explicitly not TM moves. This feature only works for moves learned by level-up. When a TM move, egg move, or otherwise is erased from a Pokémon, RBY and GSC do not store what moves the Pokémon previously knew at some point, and so they are gone forever until a fresh TM is used, or in the case of egg moves, a new Pokémon would have to be bred entirely.

The Elite Four in Stadium 2The menu to start choosing Pokémon to battle with in Stadium 2. A Yellow game cart is plugged in.

Niche Uses

Other than reminding a Pokémon of a move that was deleted on accident or that the player regrets deleting, the Stadium 2 move reminder is also useful for teaching moves to Pokémon obtained at high levels from much earlier in their learnsets. In particular this applies to Legendary Pokémon. For instance, the only way that Mewtwo can learn Disable, which is coded as a level 1 move in both RBY and GSC, is through the Stadium 2 move reminder since Mewtwo can only be caught at level 70 in RBY's Cerulean Cave area. Additionally, Ho-Oh and Lugia can both be acquired in all three generation 2 games, but unless Ho-Oh is caught in Gold or Lugia is caught in Silver, they are found at levels too high to know their signature moves, Sacred Fire and Aeroblast respectively. The move reminder can give these two their signature moves properly.

Here's a handful of interesting moves that can taught to these level 70 Legendary encounters this way (not a complete list):

Mewtwo

Psychic

Mewtwo Sprite

70

None

  • Disable
  • Future Sight (GSC)

Lugia

Psychic/Flying

Lugia Sprite

70

None

  • Aeroblast
  • Safeguard

Ho-Oh

Fire/Flying

Ho-Oh Sprite

70

None

  • Sacred Fire
  • Safeguard

The move reminder may be useful to teach level-up moves to beloved high-leveled wild encounters from playthroughs or wild shiny Pokémon, too!

How It Works

A Magikarp in a Stadium 2 battle that has its illegal move Thunderbolt highlighted in purple. Erroneously, Dragon Rage is not highlighted.
A Magikarp in a Stadium 2 battle that has its illegal move Thunderbolt highlighted in purple. Erroneously, Dragon Rage is not highlighted.

Unlike what might be first assumed, Stadium 2 actually keeps an internal table of Pokémon learnset data that it references when pulling up moves for the move reminder instead of reading data from the Game Boy game present in the Transfer Pak. Learnset information has to be present within Stadium 2 itself since Stadium 2 also has very rudimentary legality checking and will highlight a Pokémon's move and the player using it with a purple color if the move isn't present within their learnset data, regardless of what game the Pokémon comes from or if they are registered or not. You can see this in action by playing with a Magikarp with Dragon Rage and some other illegal move - since Stadium 2 keeps some Japanese event moves in its learnset data (likely copy/pasted over from the Japanese version and forgotten about considering Japanese Pokémon are incompatible with English copies of the Game Boy and Stadium games), Dragon Rage is not highlighted in purple because of the famous Japanese University Magikarp event, but a move like Thunderbolt will be highlighted in purple because Thunderbolt isn't a valid move that Magikarp can get.

The Technical Explanation

Starting at 0x9AB00 in the Stadium 2 ROM, Pokémon learnsets starting with Bulbasaur's are stored as entries of three bytes per move, with 00 terminators separating each species. All move data exists in this location except for TMs which are stored within the general Pokémon data block at 0x98F20, which is just a stripped back version of the way Pokémon species data is stored in GS. Each entry consists of three big endian values - level, move ID, and move origin in that order. Every move is assigned a level even if the move isn't a level-up move and the move IDs are the same as in the Game Boy games. Move origin is stored by the bit, and in little-endian order, consists of the following flags, more than one of which can potentially be flipped at a time:

  1. Red/Blue Level-Up
  2. Yellow Level-Up
  3. Gold/Silver Level-Up
  4. Crystal Level-Up
  5. Crystal Move Tutor
  6. Crystal Egg
  7. Gold/Silver Egg (Since all egg moves in GS are also in Crystal, all moves with this flag will also get the Crystal Egg flag)
  8. Event (Includes a few real-life Japanese event Pokémon but also includes in-game unique moves such as ExtremeSpeed Dratini)

Moves that can be learned at different levels in different games will simply get multiple entries with the different levels alongside different move origin flags for which games the move can be learned at that level in. For instance, in Bulbasaur's learnset data, both 0x0F4D0C (Lv15 PoisonPowder // GS & C Level-Up) and 0x144D03 (Lv20 PoisonPowder // RB & Y Level-Up) exist as separate move entries. Moves are also generally sorted by level, with lower level moves coming first in the data and higher level moves coming later.

When using the move reminder, Stadium 2 simply checks this data for level-up moves flagged with the correct game and prints the proper list of moves as a result.

As far as I am aware, I am the first person to datamine and publish this data, and you can access my full dump of the data here. (Warning, it's long!)

Oddities and Errors

Wrong information exists in the Stadium 2 learnset data, causing some Pokémon to learn moves they shouldn't at certain levels and causing some Pokémon to not learn moves they should at certain levels. The vast majority of these errors have to do with level 1 moves in Red, Blue, and Yellow, though there are a few exceptions. Though most of this information is useless, it's fun trivia, and it could also prevent wasted time trying to get a move through the move reminder that isn't present in Stadium 2's data!

Moves that are erroneously listed as valid in Stadium 2's data despite not being present in the Game Boy games:

  • Alakazam learning Confusion at level 1 in Yellow
  • Marowak learning Growl at level 1 in Yellow
  • Tangela learning Growth at level 48 in Red/Blue
  • Gyarados learning Bite at level 1 in Yellow
  • Gyarados learning Leer at level 1 in Yellow
  • Gyarados learning Hydro Pump at level 1 in Yellow
  • Kabuto learning Absorb at level 1 in Red/Blue/Yellow

Most of these aren't super notable, though Tangela's information being wrong here is because Growth is listed as being learned at level 49 in Red/Blue instead, which is the level it learns Growth at in Yellow. I speculate that they just combined the two entries since they were one level apart from each other.

Since Kabuto is erroneously listed as learning Absorb at level 1 in both Red/Blue and Yellow despite it only learning Absorb at level 34 in generation 1, this means it is possible to grab a fresh level 30 Kabuto from a revived Dome Fossil at the Lab on Cinnabar Island in RBY and run it to the Stadium 2 move reminder to get Absorb four levels earlier than it's supposed to have it. Useless, but cool, and this is the Pokémon I tested my research with.

A Kabuto about to learn Absorb in Stadium 2Kabuto learning Absorb in Stadium 2

Moves that are present in the Game Boy games but are erroneously missing in Stadium 2:

  • Nidorina learning Scratch at level 1 in Red/Blue/Yellow
  • Nidoqueen learning Body Slam at level 1 in Red/Blue/Yellow
  • Nidoking learning Thrash at level 1 in Red/Blue/Yellow
  • Nidoking learning Poison String at level 1 in Red/Blue
  • Nidoking learning Horn Attack at level 1 Red/Blue/Yellow
  • Venomoth learning Leech Life at level 1 in Red/Blue
  • Venomoth learning PoisonPowder at level 1 in Red/Blue
  • Persian learning Screech at level 1 in Red/Blue/Yellow
  • Primeape learning Fury Swipes at level 1 in Red/Blue
  • Primeape learning Karate Chop at level 1 in Red/Blue/Yellow
  • Primeape learning Low Kick at level 1 in Yellow
  • Kadabra learning Disable at level 1 in Red/Blue
  • Kadabra learning Confusion at level 1 in Red/Blue/Gold/Silver/Crystal
  • Alakazam learning Disable at level 1 in Red/Blue
  • Tentacruel learning Wrap at level 1 in Red/Blue/Yellow
  • Marowak learning Focus Energy at level 1 in Red/Blue
  • Marowak learning Leer at level 1 in Red/Blue
  • Marowak learning Tail Whip at level 1 in Yellow
  • Tangela learning Growth at level 49 in Red/Blue
  • Seaking learning Supersonic at level 1 in Yellow
  • Vaporeon learning Mist at level 42 in Yellow

The Growth error with Tangela is once again visible here. The only other notable entry is Vaporeon - in Pokémon Yellow, Vaporeon is coded to learn Mist at level 42, but since it is also coded to learn Haze at level 42 and two moves can't be learned at the same time while leveling up in generation 1, Mist is impossible to learn in Yellow unless it is learned by leveling in the Pokémon Day Care. It might be assumed that if one were to get to the Stadium 2 move reminder with a Vaporeon in Yellow version, it would be possible to get Mist that way, but the developers actually accounted for the error in the Yellow learnset and did not include the level 42 Mist in the Stadium 2 data.

All of the information here explains the issues presented in this GitHub report. (Thank you to MrPerson0 for presenting this mystery to my attention all the way back in 2023!)

Last updated 3/26/25. Page created.