Jump to content

User:Bbbbbbbbba/Pokémon Blue "Catch 'em All" speedrun route: Difference between revisions

m
→‎Vermilion City: Grammar fix.
>Bbbbbbbbba
(→‎Celadon Mart: Added the last set of expanded item pack manipulations in Mart, and fixed a typo.)
m (→‎Vermilion City: Grammar fix.)
 
(6 intermediate revisions by 2 users not shown)
Line 1:
{{incomplete|A large portion of the route}}
 
The current [[bp:Pokémon Red and Blue Versions|Pokémon Blue]] "Catch 'em All" speedrun route obtains all 151 valid Pokémon using a variety of intended methods and glitches. The glitch used the most to obtain Pokémon is the [[LOL glitch]]. The run also performs the [[dry underflow glitch]] early on both the PC and the item pack, and uses the [[expanded item pack]] extensively to obtain Master Balls, Rare Candies and glitch items, warp around on the map, and do other memory corruptions.
 
The run also uses many [[luck manipulation]]s. Most of them are to encounter specific Pokémon in their intended habitat, either by [[Luck manipulation (Generation I)#DSum manipulation|DSum manipulation]] or by [[Luck manipulation (Generation I)#Hard-reset RNG manipulations|hard-reset manipulations]] (including a Pidgey at the beginning for [[Brock Through Walls]]). Two other manipulations are used near the beginning, to get a desired Trainer ID and to death-warp from a trainer twice for a x255 item stack.
Line 66:
** If the player died to the first MissingNo., repeat the Spearow manipulation above. If the player escaped, the leftmost trainer will not be usable, so [https://www.youtube.com/watch?v=HTG2Wu6euGU do a manipulation with another trainer] instead.
** Since the "13 ERROR." glitch text box points to the Route 11 trainer defeat flags, escaping from the first MissingNo. will set the first byte to 0x08 (TX_ASM), leading to a crash. '''Therefore, in this case the player should flash the Start menu instead of reading the Vermilion Harbor sign.''' (The guide states that reading the Harbor sign crashes even if the player died, but this is unconfirmed either way.)
** Don't bother running away this time. Since we want to be at the Pokémon Center anyway, selecting a weak attack and (hopefully) bebeing killed by MissingNo. first is faster.
 
==PC underflow==
Line 80:
** Swap slot 1 with slot 2 twice. (Item count = 255)
* Now use the [[expanded item pack]] to set up for the next segment of the route.
** Swap Escape Rope x0 with a stack of [[ItemDex/RB:000|#j.]] x0 between [[ItemDex/RB:000|#j.]] x129 and Master Ball x128.
** Swap the [[ItemDex/RB:000|#j.]] x129 with Master Ball x128.
** Swap the [[ItemDex/RB:000|#j.]] x129 stack again with Master Ball x5 a few slots below, then toss all but 6.
{|
|-
|
{| class="wikitable"
{| border=1 width="100%" align=left style="background:#f0f0f0; border:1px solid #000000; border-collapse:collapse;"
|-style="background: silver;"
! rowspan=2 | Item slot !! rowspan=2 | In-game meaning !! colspan=3 | Before !! colspan=3 | After
|-style="background: silver;"
! Hex !! Item stack !! In-game value !! Hex !! Item stack !! In-game value
|-
| 1st || Actual first item || 1D 00 || colspan=2 | Escape Rope x0 || 00 00 || colspan=2 | [[ItemDex/RB:000|#j.]] x0
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 28th || 11th character of rival's name (unused)<br/>Options || 00<br/>81 || [[ItemDex/RB:000|#j.]]<br/>x129 || <br/>Fast (1 frame per letter)/Off/Shift || 01<br/>80 || Master Ball<br/>x128 || <br/>'''Fastest (0 frame per letter)'''/Off/Shift
|-
| 29th || Obtained badges<br/>Unused || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || No badges obtained || 1D<br/>00|| Escape Rope<br/>x0 || Badges 1, '''3''', 4, 5 obtained (allowing Fly)
|-
| 30th || Letter printing delay flags<br/>Upper byte of Trainer ID || 01<br/>80 || Master Ball<br/>x128 || (default)<!-- TODO: Do we need to explain this? --><br/>0x80 || 01<br/>05 || Master Ball<br/>x5 || (unchanged)<br/>0x05
Line 104 ⟶ 103:
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 36th || X block coordinate<br/>"Outdoor" map (used by the exit warp) || 01<br/>05 || Master Ball<br/>x5 || 1<br/>Vermilion City || 00<br/>06 || [[ItemDex/RB:000|#j.]]<br/>x6 || ''0''<br/>'''Celadon City'''
|}
|}
Line 114 ⟶ 113:
** Swap slot 1 with slot 2 twice. (Item count = 255)
* Now use the [[expanded item pack|expanded PC item list]] to set other things up.
** Scroll down to find a stack of [[ItemDex/RB:000|#j.]] x163, select the stack of [[ItemDex/RB:000|#j.]] x0 '''above that''' and withdraw 1 from it.
** Scroll down to Full Restore x0, and swap them with the [[ItemDex/RB:000|#j.]] x128 stack 3 slots below.
** Withdraw 255 from the Master Ball x0 stack below.
** Withdraw 36 Full Restores. (They are withdrawn after the Master Ball x255 so that they will not be erased during the second item underflow.)
** Swap Master Ball x1 with a stack of Poké Ball x0 down below.
** Swap Master Ball x1 again with [[ItemDex/RB:000|#j.]] x0 below.
** Withdraw 255 from the [[ItemDex/RB:000|#j.]] x0 stack now above the Master Balls.
** Withdraw 255 from the [[ItemDex/RB:000|#j.]] x0 stack 5 below the Master Balls.
** Withdraw 255 from the [[ItemDex/RB:000|#j.]] x0 stack below the stack you just withdrawn from.
** Withdraw 255 from the [[ItemDex/RB:000|#j.]] x0 stack 8 below the Ultra Ball x0 stack.
** Withdraw 255 from the [[ItemDex/RB:000|#j.]] x0 stack 3 below the stack you just withdrawn from.
{|
|-
|
{| class="wikitable"
{| border=1 width="100%" align=left style="background:#f0f0f0; border:1px solid #000000; border-collapse:collapse;"
|-style="background: silver;"
! rowspan=2 | Item slot !! rowspan=2 | In-game meaning !! colspan=3 | Before !! colspan=3 | After
|-style="background: silver;"
! Hex !! Item stack !! In-game value !! Hex !! Item stack !! In-game value
|-
| 53rd || Unused<br/>Number of coins (BCD, first two digits) || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || <br/>00 || 00<br/>FF || [[ItemDex/RB:000|#j.]]<br/>x255 || <br/>'''FF (165)'''
|-
| 54th || Number of coins (BCD, last two digits)<br/>Hidden object flags, byte 0 || 00<br/>A3 || [[ItemDex/RB:000|#j.]]<br/>x163 || 00<br/>(default) || 00<br/>A3 || [[ItemDex/RB:000|#j.]]<br/>x163 || 00<br/>(unchanged)
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 59th || Hidden object flags, byte 9<br/>Hidden object flags, byte 10 || 10<br/>00 || Full Restore<br/>x0 || (default)<br/>(default) || 00<br/>80 || [[ItemDex/RB:000|#j.]]<br/>x128 || Silph Co. 1F receptionist shown<br/>Power plant HP Up hidden
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 62nd || Hidden object flags, byte 15<br/>Hidden object flags, byte 16 || 00<br/>80 || [[ItemDex/RB:000|#j.]]<br/>x128 || (default)<br/>(default) || 10<br/>DC || Full Restore<br/>x220 || Rocket Hideout B1F Hyper Potion hidden<br/>Rocket Hideout — multiple items and Giovanni hidden
|-
| 63rd || Hidden object flags, byte 17<br/>Hidden object flags, byte 18 || 01<br/>00 || Master Ball<br/>x0 || (default)<br/>(default) || 04<br/>00 || Poké Ball<br/>x0 || Lift Key shown; A scientist in Silph Co. 2F hidden<br/>(unchanged)
Line 150 ⟶ 148:
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 95th || Pewter City meta-map script ID<br/>Route 3 meta-map script ID || 04<br/>00 || Poké Ball<br/>x0 || Youngster script<br/>Normal || 00<br/>01 || [[ItemDex/RB:000|#j.]]<br/>x1 || ''Normal''<br/>'''Battle pending'''
|-
| 96th || Route 4 meta-map script ID<br/>Unused || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || Normal || 01<br/>01 || Master Ball<br/>x1 || '''Battle pending'''
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 101st || Route 25 meta-map script ID<br/>Route 9 meta-map script ID || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || Normal<br/>Normal || 00<br/>01 || [[ItemDex/RB:000|#j.]]<br/>x1 || Normal<br/>'''Battle pending'''
|-
| 102nd || Route 10 meta-map script ID<br/>Mt. Moon 1F meta-map script ID || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || Normal<br/>Normal || 00<br/>01 || [[ItemDex/RB:000|#j.]]<br/>x1 || Normal<br/>'''Battle pending'''
|-
| ... || ... || ... || ... || ... || ... || ... || ...
Line 166 ⟶ 164:
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 114th || Route 19 meta-map script ID<br/>Route 21 meta-map script ID || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || Normal<br/>Normal || 00<br/>01 || [[ItemDex/RB:000|#j.]]<br/>x1 || Normal<br/>'''Battle pending'''
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 117th || Route 11 meta-map script ID<br/>Route 12 meta-map script ID || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || Normal<br/>Normal || 00<br/>01 || [[ItemDex/RB:000|#j.]]<br/>x1 || Normal<br/>'''Battle pending'''
|}
|}
Line 180 ⟶ 178:
** Unimportant item (Potions or Poké Balls)
** Escape Rope x253
** [[ItemDex/RB:000|#j.]] x96 (First we withdrew 1, then a stack of 255 made it 0, the second stack of 255 put 99 here and 156 in another slot below, and the third, fourth, and fifth stacks of 255 each subtracts 1 from the quantity)
** Master Ball x255
** Full Restore x36
** [[ItemDex/RB:000|#j.]] x156
* Sell the stack of [[ItemDex/RB:000|#j.]] x96 in slot 3 for 499999 Pokédollars. (Item count = 5; Master Ball x255 [[Item stack duplication glitch|duplicated]])
** After dying 3 or 4 times on Route 11, the player should have either 33 or 16 Pokédollars left. This will give just enough money to buy everything needed for the route.
* Buy the following items (quantities close to 99 are faster to select by pressing Down instead of Up). (Item count = 20)
** Great Ball x1 (overwrites [[ItemDex/RB:000|#j.]] x156)
** Revive x93
** Super Potion x3
Line 210 ⟶ 208:
* Do things with the expanded item pack.
** Swap Master Ball x0 in the first slot with Calcium x1 in the 20th slot.
** Swap the first [[ItemDex/RB:000|#j.]] x0 stack with the first Soulbadge.
** Swap Bicycle 2 slots above with Calcium x1 now in the first slot.
{|
|-
|
{| class="wikitable"
{| border=1 width="100%" align=left style="background:#f0f0f0; border:1px solid #000000; border-collapse:collapse;"
|-style="background: silver;"
! rowspan=2 | Item slot !! rowspan=2 | In-game meaning !! colspan=3 | Before !! colspan=3 | After
|-style="background: silver;"
Line 223 ⟶ 220:
| 1st || Actual first item || 01 00 || colspan=2 | Master Ball x0 || 06 01 || colspan=2 | '''Bicycle (x1)'''
|-
| ... || ... || ... || ...colspan=2 || ... || ... || ...colspan=2 || ...
|-
| 20th || Actual twentieth item || 27 01 || colspan=2 | Calcium x1 || 01 00 || colspan=2 | Master Ball x0
Line 229 ⟶ 226:
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 27th || 9th character of rival's name (unused)<br/>10th character of rival's name (unused) || 00<br/>00 || [[ItemDex/RB:000|#j.]]<br/>x0 || || 19<br/>12 || SoulBadge<br/>(x18) ||
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 35th || X coordinate<br/>Y block coordinate || 06<br/>01 || Bicycle<br/>(x1) || 6<br/>1 || 27<br/>01 || Calcium <br/>x1 || '''39'''<br/>1
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 37th || Width of "outdoor" map (unused)<br/>Current map tileset || 19<br/>12 || SoulBadge<br/>(x18) || 25 blocks (i.e. 50 tiles)<br/>"Lobby" tileset || 00<br/>00|| [[ItemDex/RB:000|#j.]]<br/>x0 || (unimportant)<br/>'''"Overworld" tileset'''
|}
|}
* Although X = 39 is out of bounds, the player does not really go [[out of bounds]], because the map view pointer is not updated. Instead, the player has a "out-of-bound experience" where all NPCs and warps disappear (because they are shifted out of the screen), but the background tiles, including their collision properties, work as normal.
* Get on the bike (which is possible because the "Overworldoverworld" tileset allows cycling), and move down and right 1 tile each.
* Open the item pack again.
** Swap Revive x93 just bought with TM41 x80 a few slots below the normal item pack.
Line 253 ⟶ 250:
** Swap Super Repel x83 with the bottom Rare Candy x255 stack.
** Toss 27 from the second Rare Candy x255 stack.
** Swap Super Repel x83 with [[ItemDex/RB:094|9F]] x189.
** Swap Super Repel x83 again with Paralyze Heal x65 way below.
** Swap Super Repel x83 again with [[ItemDex/RB:000|#j.]] x255 above.
{|
|-
|
{| class="wikitable"
! rowspan=2 | Item slot !! rowspan=2 | In-game meaning !! colspan=3 | Before !! colspan=3 | After
|-style="background: silver;"
! Hex !! Item stack !! In-game value !! Hex !! Item stack !! In-game value
|-
| 6th || Actual sixth item || 03 01 || colspan=2 | Great Ball x1 || colspan=3 | (tossed)
|-
| 7th -> 6th || Actual seventh item || 35 5D || colspan=2 | Revive x93 || F1 50 || colspan=2 | '''TM41 x80'''
|-
| ... || ... || ... || colspan=2 | ... || ... || colspan=2 | ... (shifted up)
|-
| 9th -> 8th || Actual ninth item || 38 53 || colspan=2 | Super Repel x83 || 28 FF || colspan=2 | '''Rare Candy x255'''
|-
| ... || ... || ... || colspan=2 | ... || ... || colspan=2 | ... (shifted up)
|-
| 18th || Actual eighteenth item || 33 08 || colspan=2 | Poké Doll x8 || 28 E4 || colspan=2 | '''Rare Candy x255'''
|-
| 19th || Actual nineteenth item || 23 01 || colspan=2 | HP Up x1 || 28 FF || colspan=2 | '''Rare Candy x228'''
|-
| 20th || Actual twentieth item || 01 00 || colspan=2 | Master Ball x0 || 5E BD || colspan=2 | '''[[ItemDex/RB:094|9F]] x189'''
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 26th || 7th character of rival's name<br/>8th character of rival's name || F1<br/>50 || TM41<br/>x80 || ×<br/>(terminator) || 01<br/>05 || Master Ball<br/>x5 || (glitch character)<br/>(glitch character)
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 30th || Letter printing delay flags<br/>Upper byte of Trainer ID || 01<br/>05 || Master Ball<br/>x5 || (default)<br/>0x05 || 35<br/>5D || Revive<br/>x93 || (unimportant)<br/>0x5D
|-
| 31st || Lower byte of Trainer ID<br/>Map music ID || 5E<br/>BD || [[ItemDex/RB:094|9F]]<br/>x189 || 0x5E<br/>Pokémon Center/Mart music || 0F<br/>41 || Paralyze Heal<br/>x65 || 0x0F<br/>(unimportant)
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 33rd || Current map<br/>Map view pointer, low byte || 88<br/>2C || [[ItemDex/RB:136|#▶D#]]<br/>x44 || Celadon Mart 5F<br/>$2C || 88<br/>29 || [[ItemDex/RB:136|#▶D#]]<br/>x41 || Celadon Mart 5F<br/>''$29''
|-
| 34th || Map view pointer, high byte<br/>Y coordinate || C7<br/>06 || HM04<br/>(x06) || $C7<br/>6 || 01<br/>00 || Master Ball<br/>x0 || ''$01''<br/>'''0'''
|-
| 35th || X coordinate<br/>Y block coordinate || 28<br/>00 || Rare Candy<br/>x0 || 40<br/>0 || C7<br/>06 || HM04<br/>(x06) || '''199'''<br/>6
|-
| ... || ... || ... || ... || ... || ... || ... || ...
|-
| 43rd || Valid map connections<br/>North connection map || 00<br/>FF || [[ItemDex/RB:000|#j.]]<br/>x255|| None<br/>(invalid) || 38<br/>53 || Super Repel<br/>x83 || (unimportant)<br/>'''Power Plant'''
|-
| 44th || North connection preview data source || 0F 41 || Paralyze Heal x65 || $410F (from Vermilion City) || 00 FF || [[ItemDex/RB:000|#j.]] x255 || (unimportant)
|}
|}
* Note: "Map music ID" is only used when starting the music (e.g. after getting off the bike); "valid map connections" and "north connection preview data source" are only used when first loading the map.
* Walk up one step.
** Because the player is now at Y = 0, stepping up triggers the north map connection, sending the player to the Power Plant. Since the tileset has changed, the game thinks the player has taken a warp, and places the player at the entrance of the Power Plant.
 
<!-- [[Category:Speedrun routes]] -->
Cookies help us deliver our services. By using our services, you agree to our use of cookies.