Super Glitch: the move with no name
Most glitches ask the game to read a number it should not. This one asks it to read a name that was never written, and the game keeps reading until something stops it.
Every move in Pokemon Red and Blue has a name, and the game prints it in battle with a simple copy: start at the move's name, copy letters until you reach the end marker, stop. There are 165 real moves, and the 165th, Struggle, is the last one with a name. The move IDs just past it point into empty space. Ask the game to announce one of those, and the copy starts reading where the names run out, taking whatever happens to be in memory as letters, and it does not stop until it stumbles onto an end marker somewhere in the machine. That runaway copy is Super Glitch.
Where the moves run out
The game keeps its move names in one long list, 165 of them, in order. Every real move points at a name in that list. Turn the dial and watch the list end: number 165 is Struggle, the last move with a name, and everything past it is the Super Glitch band, IDs that point at nothing.
Why a name with no name corrupts
To print a move's name, the game does not jump straight to it. It starts at the top of the name list and walks forward, counting end markers, until it has counted as many as the move's ID. Then it copies from there. For a real move that lands on a real name. For a nameless one, the count runs off the end of the list and keeps going into raw memory. Pick a move and watch the search.
Copy until you hit a marker
Once the game has a pointer to the "name", it prints it the only way it knows: copy one byte, then the next, and stop when you reach an end marker. A real name reaches its marker in a few letters and fits the box. A name made of raw memory might not have a marker for a long time, so the copy keeps writing, straight past the box and into whatever the game was keeping there. Roll a nameless move and watch how far the copy runs.
Steering the wreck
Left alone, Super Glitch is chaos. What turned it into a tool is that the runaway copy still stops at an end marker, and the marker can be a tile sitting on the screen. That is not a coincidence: the bytes Super Glitch writes are lifted from a full-screen snapshot the game keeps in memory, so what is on your screen literally becomes the corruption, and a "@" tile you position becomes its stop. Players learned to open a menu, the Pokedex, Pokemon, or Item list, at the moment a "@" tile lands in the right spot, so the redraw writes corruption only up to that tile and no further. Move the marker and choose how far the damage reaches.
The names it does give
So does a nameless move ever show a name? Sometimes, yes, and it exposes a second bug. The routine that fetches a move's name checks whether the ID is high enough to be a TM or HM item first, and because of a mistake in the code that check catches high move IDs too. So the deep end of the Super Glitch band does not read garbage at all: the game hands it a clean machine name. Slide across the whole range and watch a move go from having no name, to being called a TM.
Meet a specimen
A move is just six bytes: an animation, an effect, a power, a type, an accuracy, and its PP. A real move points at six real bytes in the move table. A Super Glitch move's ID lands past the end of that table, so those six bytes are whatever memory happens to sit there. Line a real one up next to a nameless one.
Does it still work
Super Glitch is a bug in the 1996 code, so wherever that code runs, the bug runs with it. The one thing to know: unlike catching a Mew, there is nothing here to keep. This is a memory hazard, not a collectible, and its favorite trick is eating your save.
From the ROM
The whole page rests on one line of the game's source: the last real move is number 165. Here is the end of the move list from constants/move_constants.asm. Tap a move to read its number, and watch the list stop at Struggle.
; constants/move_constants.asm const SUBSTITUTE ; a4 const STRUGGLE ; a5 DEF NUM_ATTACKS EQU const_value - 1 ; = 165 ; data/moves/names.asm ; in-battle "used <move name>!" text can only fit 12 characters
The family it belongs to
Super Glitch is one member of a family, and they all share a single idea: the game reads memory it was never meant to read, and treats whatever it finds as real. Move names here, species numbers next door, your own name down the hall. Pick a relative.
Go deeper: the Gen 1 battle engine | the Name Glitch tool | browse the Glitchhouse.
This page is being built section by section, each one an interactive piece decoded from the ROM. The byte-by-byte overflow, the controlled corruption, and the rest are on the way. The glitch is decades of documentation by the Pokemon glitch community; what we add is the view from the cartridge.
Go deeper: arbitrary code execution | the Mew glitch | browse the Glitchhouse.