of the Pokémon series
Arbitrary code execution (template, remote, cart-swap, unintended ROM code execution) | 2x2 block encounter glitches (Left-facing shore tile glitch (in-game trade shore encounter trick, old man trick, Trade link up shore encounter trick, Fight Safari Zone Pokémon trick)) | 99 item stack glitch | Bad clone glitch (????? party overloading (Type 0xD0 move glitch, ????? map corruption, | Celebi trick, Celebi Egg trick, Shiny Celebi trick, glitch move map corruption, overloaded party map corruption, Glitch Unown (Glitch Unown map corruption) Duplicate key items glitch (infinite items and item creation, expanded Balls pocket (TM/HMs outside of the TM/HM pocket, Glitch Pokédex categories)) | Berry glitch | Bug-Catching Contest data copy glitch (Japan only) | Cloning | Ditto DV manipulation | Elite Four door glitch (Japan only) | Expanded party encounter table manipulation | Generation IV item cloning glitch (Japan only) | Glitch City (Safari Zone exit glitch, RAM manipulation) | Glitch meta-map script activation (Generation I) | Infinite Master Balls (Colosseum) | Large storage box byte shift glitch (storage box remaining HP glitch, maximum stat glitch) | Item duplication glitch | Item stack duplication glitch (Generation I expanded items pack (Glitch Rocket HQ maps, Map FE (English and non-English European Yellow), Map script pointer manipulation (arbitrary code execution, map script pointer item ball manipulation), Text pointer manipulation (arbitrary code execution, item ball manipulation, mart buffer overflow), Trainerless instant encounter glitch) | Mimic glitch (Japan only) | Out of bounds Glitch City (Generation II) (Slowpoke Well out of bounds corruption (French version)) Lumiose City save glitch | Pikachu off-screen glitch (Trainer corruption glitch) | Pokémon merge glitch | Pomeg glitch (Pomeg data corruption glitch) | Roaming Pokémon encounter glitch | (Mimic) Transform Rage glitch | Select glitches (Japan only) (Closed menu: Dokokashira door glitch (international), Fossil conversion glitch (international), Second type glitch, Skip to Level 100 glitch, Trainer mutation glitch, walk through walls (international) Special menu: Lift glitch, Badge describer glitch) | Sketch glitch | SRAM glitch (Generation I) (255 Pokémon glitch, send party Pokémon to a new game) | Surf down glitch (Grass/rock Surfing glitch (Spanish/Italian only) (English)) | Time Capsule exploit | SRAM glitches (Generation II) (Mailbox glitches, Mystery Gift item corruption, Trainer House glitches) | Tweaking | Trainer escape glitch (Death-warp, Mew Trick, Ditto Trick, Experience underflow glitch) | Buffer overflow techniques (Japanese unterminated name glitch item instant encounter glitch, LOL glitch, Rival LOL glitch, Instant LOL glitch, RAM LOL glitch, oobLG, blockoobLG, Instant encounter infinite chain glitch (LGFly)), Super Glitch (Generation I) (party remaining HP glitch), Super Glitch (Generation III), Text pointer manipulation mart buffer overflow glitch, CoolTrainer♀-type move, Double distort CoolTrainer♀ corruption, Yami Shop glitch) | Walk through walls (ledge method, museum guy method, Rival's effect, Select glitch method (international), Brock Through Walls) | ZZAZZ glitch (party Pokémon box data shift glitch)
(view, talk, edit)
Glitch meta-map script activation, previously known as walking lag glitch, and as 0 ERROR or Zero Error due to error codes that may appear during the text box matching method, refers to glitches in Pokémon Red, Blue, Yellow.
These glitches will modify the 'meta-map script' associated with a certain map, which is a special map script used to execute code on particular maps (one byte for each map). Unlike the temporary map scripts stored at D36E-D36F, meta-map scripts are usually permanent unless the script itself changes the meta-map script ID to a different value. They are also specific to each map, unlike the D36E-D36F address that is a pointer to anywhere in the current bank in the ROM, or RAM.
An example of a meta-map script is one that sets the event in Pallet Town where Professor Oak stops the player from walking into the grass. It is disabled later thanks to the game changing the ID of the meta-map script later.
If a meta-map script activation glitch is activated with the Trainer escape glitch, it will be activated on the location that the player escaped from the Trainer.
Exploiting this glitch may also cause lag before the player can take their next step (hence the name "walking lag glitch"). Sound effects may also be played with the lag or the game may freeze, depending on the player's coordinates and time spent on the map.
The glitch causes the route to become glitchy, and it will remain like that even when the player leaves the route and save and resets the game.
If the player loses, a text box may appear before the player is sent back to their black out location.
Certain glitch meta-map scripts may also allow for arbitrary code execution.
The glitch can be pulled off by three variations of the Trainer escape glitch.
The first one involves setting up a "death warp", returning to the original location to rematch the Trainer and defeating them without flashing the start menu.
The second one involves talking to an NPC on the original route while encounters are disabled and defeating them.
The third one involves forcing an encounter with an unbeaten Trainer on the original route through 'text box matching'. Text box matching basically forces the game to load the equivalent text box for the last text box in memory, and have that text box trigger a Trainer encounter.
The glitch map map 0xFE in English Yellow will set up glitch scripts on various maps, many of which will freeze the game.
A glitch script may also be activated by manipulating items in the expanded stored items pack. This is possible with the dry underflow glitch with storage box items.
Example procedure (death warp method)
- Encounter a Pokémon in the grass in the sight of the last Trainer in Viridian City (closest to Viridian City) in Viridian Forest.
- Black out in the wild encounter (e.g. by poison). The "!" will appear but you will return to the last Pokémon Center without battling the Trainer.
- Return to Viridian Forest without opening the start menu (it is also best to avoid any text box to make sure the upcoming battle begins).
- The battle with the Bug Catcher will start. Defeat them and the glitch script activation will occur.
Example procedure (fighting a Trainer on an encounter-disabled route method)
More research is needed for this article.
Reason given: Can battles be lost to trigger the glitch still?
- Perform any method of Trainer escape glitch that deactivates your START menu.
- Go to any Pokémon PC, change boxes to save the game.
- Reset. Your START menu will be active.
- Go to the map where the Trainer escape glitch was activated, but you shouldn't get any encounter.
- Fight any Trainer on the map. Since they can't notice you, you have to talk to them.
- Once the battle is finished, another battle may immediately start, with a glitched text box being displayed for a couple frames before being overwritten by the battle animation.
- Win all battles that may happen (up to 3 in a row have been reported to occur)
- Once the battles are over, the map will have the Walking lag glitch activated.
Example procedure (text box matching method)
1. Go to Vermillion City.
2. Walk up to the route north of Vermilion.
3. From here, perform a Trainer-Fly glitch by flying away from the trainer in the upper left hand corner of the route.
4. Choose to fly back to Vermilion City.
5. Walk to the route that is east of Vermilion.
6. Fight any trainer here. It does not matter who the player fights, as long as the trainer walks at least one step towards the player.
7. After the trainer battle, the player should go back to Vermilion and talk to the lady wandering about outside (her text box ID is 01) - see the image below for the lady:
8. The player should then walk up to the route north of Vermilion one last time and the player will battle the Trainer with a level 20 Squirtle (if the Trainer was unbeaten). The walking lag glitch will begin afterwards.
Manually setting up a glitch script
Setting up the dry underflow glitch with stored PC items allows the player to manipulate certain meta-map scripts by modifying the item past item 50.
For example, item 100's quantity controls the map script for Route 8 (address D601 in Red/Blue, D600 in Yellow). Though a quantity of 1 for this item will set up a Special-stat encounter (as if activating the Trainer escape glitch), out of bounds values are glitch scripts associated with this glitch.
Map 0xFE corruption
After the player enters map 0xFE without a freeze using a safe level-script pointer for DC0E, they will be warped to map 0x99 (a house in Fuchsia City).
After using the expanded items pack to escape this map (as the exit by default will link back to the house), the player will be able to access maps with invalid meta-map scripts.
Fixing the glitch
More research is needed for this article.
Reason given: Add methods with details for each map
The glitch comes from the game advancing the map script ID but triggering more battles due to reading invalid flags, and not setting the ID back to 0 (the intended way), or from a glitch with the side effect of corrupting the map script.
Using item PC expanded item pack or arbitrary code execution allows fixing the glitch, but the method depends on the map the glitch was triggered on.
List of meta-map script addresses
These are the maps that support meta-map scripts, listed with the addresses that store the ID (one byte, 256 values) of the meta-map script.
(Thanks to the Pokémon Red disassembly for these addresses)
- W_OAKSLABCURSCRIPT:: ; d5f0
- W_PALLETTOWNCURSCRIPT:: ; d5f1
- W_BLUESHOUSECURSCRIPT:: ; d5f3
- W_VIRIDIANCITYCURSCRIPT:: ; d5f4
- W_PEWTERCITYCURSCRIPT:: ; d5f7
- W_ROUTE3CURSCRIPT:: ; d5f8
- W_ROUTE4CURSCRIPT:: ; d5f9
- W_VIRIDIANGYMCURSCRIPT:: ; d5fb
- W_PEWTERGYMCURSCRIPT:: ; d5fc
- W_CERULEANGYMCURSCRIPT:: ; d5fd
- W_VERMILIONGYMCURSCRIPT:: ; d5fe
- W_CELADONGYMCURSCRIPT:: ; d5ff
- W_ROUTE6CURSCRIPT:: ; d600
- W_ROUTE8CURSCRIPT:: ; d601
- W_ROUTE24CURSCRIPT:: ; d602
- W_ROUTE25CURSCRIPT:: ; d603
- W_ROUTE9CURSCRIPT:: ; d604
- W_ROUTE10CURSCRIPT:: ; d605
- W_MTMOON1CURSCRIPT:: ; d606
- W_MTMOON3CURSCRIPT:: ; d607
- W_SSANNE8CURSCRIPT:: ; d608
- W_SSANNE9CURSCRIPT:: ; d609
- W_ROUTE22CURSCRIPT:: ; d60a
- W_REDSHOUSE2CURSCRIPT:: ; d60c
- W_VIRIDIANMARKETCURSCRIPT:: ; d60d
- W_ROUTE22GATECURSCRIPT:: ; d60e
- W_CERULEANCITYCURSCRIPT:: ; d60f
- W_SSANNE5CURSCRIPT:: ; d617
- W_VIRIDIANFORESTCURSCRIPT:: ; d618
- W_MUSEUM1FCURSCRIPT:: ; d619
- W_ROUTE13CURSCRIPT:: ; d61a
- W_ROUTE14CURSCRIPT:: ; d61b
- W_ROUTE17CURSCRIPT:: ; d61c
- W_ROUTE19CURSCRIPT:: ; d61d
- W_ROUTE21CURSCRIPT:: ; d61e
- W_SAFARIZONEENTRANCECURSCRIPT:: ; d61f
- W_ROCKTUNNEL2CURSCRIPT:: ; d620
- W_ROCKTUNNEL1CURSCRIPT:: ; d621
- W_ROUTE11CURSCRIPT:: ; d623
- W_ROUTE12CURSCRIPT:: ; d624
- W_ROUTE15CURSCRIPT:: ; d625
- W_ROUTE16CURSCRIPT:: ; d626
- W_ROUTE18CURSCRIPT:: ; d627
- W_ROUTE20CURSCRIPT:: ; d628
- W_SSANNE10CURSCRIPT:: ; d629
- W_VERMILIONCITYCURSCRIPT:: ; d62a
- W_POKEMONTOWER2CURSCRIPT:: ; d62b
- W_POKEMONTOWER3CURSCRIPT:: ; d62c
- W_POKEMONTOWER4CURSCRIPT:: ; d62d
- W_POKEMONTOWER5CURSCRIPT:: ; d62e
- W_POKEMONTOWER6CURSCRIPT:: ; d62f
- W_POKEMONTOWER7CURSCRIPT:: ; d630
- W_ROCKETHIDEOUT1CURSCRIPT:: ; d631
- W_ROCKETHIDEOUT2CURSCRIPT:: ; d632
- W_ROCKETHIDEOUT3CURSCRIPT:: ; d633
- W_ROCKETHIDEOUT4CURSCRIPT:: ; d634
- W_ROUTE6GATECURSCRIPT:: ; d636
- W_ROUTE8GATECURSCRIPT:: ; d637
- W_CINNABARISLANDCURSCRIPT:: ; d639
- W_MANSION1CURSCRIPT:: ; d63a
- W_MANSION2CURSCRIPT:: ; d63c
- W_MANSION3CURSCRIPT:: ; d63d
- W_MANSION4CURSCRIPT:: ; d63e
- W_VICTORYROAD2CURSCRIPT:: ; d63f
- W_VICTORYROAD3CURSCRIPT:: ; d640
- W_FIGHTINGDOJOCURSCRIPT:: ; d642
- W_SILPHCO2CURSCRIPT:: ; d643
- W_SILPHCO3CURSCRIPT:: ; d644
- W_SILPHCO4CURSCRIPT:: ; d645
- W_SILPHCO5CURSCRIPT:: ; d646
- W_SILPHCO6CURSCRIPT:: ; d647
- W_SILPHCO7CURSCRIPT:: ; d648
- W_SILPHCO8CURSCRIPT:: ; d649
- W_SILPHCO9CURSCRIPT:: ; d64a
- W_HALLOFFAMEROOMCURSCRIPT:: ; d64b
- W_GARYCURSCRIPT:: ; d64c
- W_LORELEICURSCRIPT:: ; d64d
- W_BRUNOCURSCRIPT:: ; d64e
- W_AGATHACURSCRIPT:: ; d64f
- W_UNKNOWNDUNGEON3CURSCRIPT:: ; d650
- W_VICTORYROAD1CURSCRIPT:: ; d651
- W_LANCECURSCRIPT:: ; d653
- W_SILPHCO10CURSCRIPT:: ; d658
- W_SILPHCO11CURSCRIPT:: ; d659
- W_FUCHSIAGYMCURSCRIPT:: ; d65b
- W_SAFFRONGYMCURSCRIPT:: ; d65c
- W_CINNABARGYMCURSCRIPT:: ; d65e
- W_CELADONGAMECORNERCURSCRIPT:: ; d65f
- W_ROUTE16GATECURSCRIPT:: ; d660
- W_BILLSHOUSECURSCRIPT:: ; d661
- W_ROUTE5GATECURSCRIPT:: ; d662
- W_POWERPLANTCURSCRIPT:: ; d663
- W_ROUTE7GATECURSCRIPT:: ; d663
- W_SSANNE2CURSCRIPT:: ; d665
- W_SEAFOAMISLANDS4CURSCRIPT:: ; d666
- W_ROUTE23CURSCRIPT:: ; d667
- W_SEAFOAMISLANDS5CURSCRIPT:: ; d668
- W_ROUTE18GATECURSCRIPT:: ; d669