=== EARLY GAME === Intro - Clear save data before each attempt - No TID manip (just find cluster that avoids FF?) - Fast options - StartSecond 0 - Sunday 10:00am Take extra step leaving mom's house for glitchless manips to work. Standard (i.e. optimal) lab movement. No Toto manip. Reset females. Name Totodile "A " (with a space). Don't check stats (until L6). On r29 save tile - Take Berry - S&Q - r29 manip Get r30 Potion on the way down (until trying to murder the category?). .... {{{ Rival thru Mikey = ZZZzZzzZ }}} .... On Donnies save tile - Give Berry - Use Potion (if necessary) - Call Mom - S&Q - Don manip NOTE: Consider skipping Don manip (at least in some situations?). .... {{{ Donnies thru Falkner = ZZZzZzzZ }}} .... Extra steps to get to StepCount to 126 at PC. (Follow Violet movement pattern, or equivalent.) Save from menu. Decrement egg cycles. Clone 1 egg. Move egg in box to top of party. Move bottom egg to 2nd in party. Decrement egg cycles. Clone 2 eggs. (NOTE: You can skip moving the bottom egg to 2nd in party; just change the 5 -> 4 party swap later with 4 <> 4. This seems over a second faster, but doesn't match the current reference video, so for now it's a side note.) Withdraw top egg. Decrement egg cycles. Clone 3 eggs. (REPEAT x6) Withdraw bottom egg. Decrement egg cycles. Clone 3 eggs. Should have 16/20 in Box 1 after this, and the bottom egg in the box should be at 1 egg cycle remaining. === TIME FOR SOME DIRTY GLITCHING DEBAUCHERY IN THE VIOLET POKECENTER === Attempt bad clone (deposit top 2 eggs). Check "Change Box" after S&Q to see if clones were made. If so, check to make sure no nickname on cloned eggs. If no nickname, assume you have a real bad clone. (NOTE: Must be in Box 1 for the move menu swaps at the very end of the run to work. If Box 1 gets filled and you switch boxes, make sure to switch back.) Withdraw (in this order) - Last egg before the attempted bad clones (16th in box) - Bottom bad clone (last in box) - Top egg in box -- -- Decrement egg cycles to hatch eggs. Nickname Togepi "A " (with a space). Don't nickname bad clone. Move w/o mail (these swaps do lots of complicated things with HP/level/nicknames/species/etc.) - Egg in Box 1 to 2nd in party - 1 <> 1 in party - Egg in Box 1 to 1st in party - 5 -> 4 in party - 3 -> 1 in party - 3rd in party to top of Box 1 Party menu (pay attention to whether hexFF is poisoned, which is a 6/16 chance, depending on Togepi's speed stat) - 1 <> 5 - 7 <> 1 - Take Card Key off Togepi (7th) - 7 <> 1 - Take Card Key off hexFF (7th) - 6 <> 1 - 1 <> 7 - Take Card Key off bad clone (7th) - 1 <> 3 - 1 <> 7 - Take Card Key off Toto (7th) - If hexFF (3rd poke now) is PSN'd, swap 3 <> 7 (avoids PSN ticking in overworld) Pack - Left (or Right) 2 to Key Items - 3 <> 4 - 3 <> 2 - 3 <> 5 - 1 <> 4 - 2 <> 1 - 2 <> 4 - (NOTE: order matters on a few of these swaps; 3 <> 4 is different from 4 <> 3, for instance) Item PC - Deposit > Right 1 to Balls > Deposit 16 Poke Balls > Exit Menu - Withdraw > Withdraw 1 Poke Ball twice > Exit Menu - Deposit > Left (or Right) 2 to Key Items > Deposit all 4 key items > Exit Menu - Exit PC Pack (will be in Key Items to start) - Swap top ? x0 (in 2nd) with ? x0 below it (in 3rd) - Register Bicycle - Swap Poke Ball x43 with Max Repel x255 - Left 1 to Balls - Toss 16 from Poke Ball x255 - Right 1 to Key Items (to hold its place next time you menu) Exit Center. === IT IS NOW TIME TO CORRUPT THE METATILES OF THE OVERWORLD MAP === Sudowoodo :: (down 1) TM47 x1 Route 36 :: TM47 x1 Route 35 :: TM47 x1 Goldenrod :: TM47 x2 Magnet Train :: TM47 x1 Cerulean :: TM47 x1 On Pewter tile - TM47 x1 - (up 2) Max Repel On Kanto guard tile - (down 2) TM47 x1 - Open Party Menu, follow steps below === NOW DIG DEEPER THAN BALLS INTO WRAM TO SKIP THE E4 AND ANNIHILATE YOUR PARTY === Party Menu - Select MOVE on 7th poke (cursor should already be on 7th) - Right 158, Left 2, (swap 1 <> 3), Right 8, (swap 1 <> 2) - Other cues if counting is too hard: > Once you see a poke with Constrict as only move, you are close (145) > When you get to Voltorb shortly after that poke, you are at 155 > Right 3 from the Voltorb (155+3=158) is Swift/Lovely Kiss/Acid Armor > Left 2, swap 1 <> 3 (must load the poke with 3 moves first so you can swap moves) > Right 8 (Tail Whip 0/30, Tail Whip 7/30, Tail Whip 0/30), swap 1 <> 2 - (NOTE: Press Right as soon as you see each poke's sprite load) On Silver Cave guard tile (previous repel should exactly wear out on the tile) - (up 2) Max Repel - S&Q Navigate Silver Cave to Red (239 tiles on bike with perfect movement, i.e. 11 repel steps to spare). Defeat Red in an instantaneous victory to complete the speedrun of this video game. =~=~= MISCELLANEOUS NOTES =~=~= Future considerations for wasting steps efficiently > (NOTE: none of these seemed any better than marginal) - Walk back to mom's house to tell her not to save $$ - Buy Potions (skip r30 Potion); possibly Flower Mail as well for faster TM47? - Add steps to manips if it makes them simpler (or otherwise improves them) Mikey crit manip for 2 char Toto will be "necessary" in "future" for "serious" "attempts". "Optimal Strats" (i.e. "YOLO shit") - Skip cloning the Egg that's second in party in cloning rounds 2 thru 8 - Skip a cloning round by attempting bad clone in cloning round 8 (or earlier, but window will be smaller) > Deposit bottom Egg first (normal clone) > Deposit top two Eggs after (bad clone; extra deposit here is to make the success window less absurd) - Obvious stuff in the glitchless section up to Falkner =~=~= GLITCH EXPLANATIONS =~=~= (Note: Bad clone is not mentioned here, both for brevity and because it is more well-known.) Hatching multiple eggs - when step count = 128, loop through party and decrement egg cycle for each egg - if an egg hatches, lower eggs do not have their egg cycle decremented > lower eggs that have been glitched to have egg cycle = 0 still do hatch > if a prior egg hadn't hatched, the glitched egg cycles would underflow to 255 and take forever to hatch Move w/o mail & party swaps - move w/o mail moves memory around and allows getting 7+ pokemon in party if bad clone (species 0) or hexFF (255) is present - this setup accomplishes the following things > turns an egg into hexFF, which creates a 4th pokemon to take an item from (need to acquire 4 card keys) > nickname "A ": space character shares the index value with card key > avoids problematic nickname and HP data in party to avoid a softlock and allow party swaps to work - through a number of swaps with the 1st/7th pokemon, the 4 card keys can be collected > 7th pokemon overlaps with ot name data > 7th pokemon's ot name is the 1st pokemon's nickname data > 1st pokemon's ot data corresponds to a memory location that holds the 7th pokemon's item - ends with a pokemon first in party that is level 80 (from nickname data) > this ensures repels in the endgame work (even after setting party size to 0) Key item underflow - swapping card key 3 & 4 = quantity 127 + 255 = 126 = 99 (blk apricorn) + 27 (protein) > destroys key item terminator ($FF, where the 255 quantity comes from) - swapping card key 3 & 2 = quantity 127 + 27 = 154 = 99 (blk apricorn) + 55 (itemfinder) - swapping blk apricorn 3 & 5 = quantity 55 + 0 = 55 (itemfinder) > merging stacks reduces item count from 4 to 3, since quantity is less than 100 - remaining swaps are to get the card key with 99 quantity to 4th so blk apricorn is on bottom > can deposit top 4 items since they are key items, to underflow key item count from 3 to 255 - since balls pocket comes after key items and the terminator was destroyed, balls data has also been shifted > now 5 items w/poke ball x255 in the first slot - other background info > each item in key item pocket only takes up 1 byte of memory (2 bytes in items/balls), quantity is implied to be 1 > quantity logic from other pockets applies, so when merging 2 of the same item in key item pocket, weird behavior arises > only supports item stacks of 99, so if quantity is higher, multiple stacks are created > in other glitched routes, you only need 2 (or 3) itemfinders; merging itemfinder stacks at bottom creates a coin case > card key is needed here, as it's the only key item from nickname that can get another key item w/quantity shuffling Item farming - initial deposit poke ball x16 is so the resulting stacks have a max repel > 255-16+1+1 = 241 = Poke Ball x99 + Poke Ball x99 + Poke Ball x43 (43 = max repel) - withdrawing poke ball x1 twice increases ball pocket count to 7 (bicycle) - depositing 4 key items finishes underflow of key item pocket (also shifts ball pocket data, which is why it's done after) - swapping the two ? items changes key item count from 255 to 254 (avoids cursor jumping to top when selecting an item) - swapping pokeball from even slot to odd means it is now an item in the balls pocket menu instead of a quantity - tossing 16 balls creates a TM47 in the key item pocket (255-16 = 239 = TM47) Metatweaking - using TMs/HMs outside the TM/HM pocket jumps to code while an unintended section of the ROM (bank 3) is currently loaded > when player moves (among other things), a 6x5 section of blocks is saved, starting from the top left visible block address > TM47 calls the routine "UpdateOverworldMap.ScrollMapDataRight", which increments this address (aka "top left pointer") - metatweaking = using TM47 to corrupt the overworld map by shifting collision data, with or without shifting map tiles/graphics - 3 known methods to abuse (1) Save & Quit > screen buffer ("wScreenSave") is part of save data, but the top left pointer ("wOverworldMapAnchor") is not > map tiles are shifted left x2 on screen; collision data is realigned to map tiles upon reloading save (2) GB Printer (pokedex or mail) > overwrites the corrupted tilemap buffer (from TM47) and reloads the uncorrupted map tiles after exiting printer screen > graphics aren't corrupted, but collision data is effectively shifted right x2 (3) Map Connections (route transitions between 2 connected parts of the overworld map) > the shifted position of the "connection strip" is modified when you take a map connection after using TM47 > affects everything on screen on the border between two maps; tiles off the screen by 1 may not immediately update Pokemon move screen past slot 6 - when selecting "MOVE" on the 7th party poke, you can continue scrolling right to access/modify a lot of unintended memory > one pokemon's data is 48 bytes; only the 8 bytes (maximum) aligned with move and PP data in each block can be modified > by scrolling far enough, mirrored copies of earlier sections of memory can be reached - flag is set so Red appears in Mt Silver (skips fighting E4), and party size is set to 0 (triggers instant victory vs Red)