New Japanese Pokémon Crystal speedrun route (test: 43 minutes in game time)
Posted by: Torchickens
Date: 2015-07-14 12:47:48
The most important glitch here other than the bad clone glitch is "Missingning", found by Paco81, in which you view a hex:FF's status and corrupt data.
In Japanese Crystal, Spanish Crystal (possibly others) but not English Crystal (at least not in the same place), when you step three steps right or more from the Goldenrod Pokémon Center and view the status of an FF ?????, you will be warped to the Bug Catching Contest building.
Your items and TM/HMs will become corrupted.
If you used a spot more than three steps east away, your balls, key items, TM/HMs, some of your PC items become corrupted too (the number of items get corrupted to a large value too). The large number of PC items means you cannot deposit the items you need in the PC for this route without a workaround (the game will state storage is full).
The workaround is that you can buy some items to introduce an FF in the PC items before Missingning (this means items appear properly in the PC and you do not need too many unique items, maybe 5), and then keep swapping "?" items with themselves to get a reasonable amount of items.
However, this takes time, so it seems to be better to use the spot exactly three steps away and corrupt the key items and balls pocket manually; because the only thing you have to do for this is swap items around/make the Lure Ball the first ball/make a higher ID item like TM01 the first ball (doesn't really take time at all).
Assuming that the Missingning corruption effects work on cartridge, I want to see if this route is really faster (it seems to be), so I would like a Pokémon speedrunner to run it, but there is one problem:
Sadly the route requires lots of counting to know where you are in the Balls pocket. However, if we are able to set the number of items to a specific amount that is not too high (when we byte shift the balls pocket a second time so that item 1 e.g TM01 becomes the number of items), this may mean you could scroll to the bottom of the balls pocket and count just a few times.
Potential problem 2:
Due to a glitch (I assume the save file $A800=FF glitch), simply entering the PokéCom Center may freeze the game.
This happened to me when I tried the run from power on. However, after I tried the run from power on again but used the reset save data function, the PokéCom Center no longer froze. Perhaps using the reset save data function fixes it, but I don't know for sure.
Potential problem 3:
One time after Missingning the game froze after I closed the Bug-Catching Contest results. The second time I tried this it worked. I wasn't really paying attention to what I was doing sadly, but maybe you have to only press B to avoid it.
Steps:
1) Do route as normal up to Goldenrod City. Pick up Kurt's Lure Ball and make it your only Poké Ball after catching a second Pokémon.
The second Pokémon should be Abra if possible, so you can Teleport to the PCC Center to avoid Trainers north of Goldenrod after Missingning takes us into the north-east Bug-Catching Contest building.
2) Get a Bad Clone (hex:00) then turn it into a hex:FF using move w/o mail. Make sure you put Abra in the PC so you don't corrupt it (I need to elaborate on these steps)
If party refuses to work, somehow fix it. Name boxes here or at Bug Catching Contest.
3) Enter Goldenrod PCC Center, do Missingning three steps right of Goldenrod PCC Center to warp to the north-east Bug Catching Contest building.
4) Step out of the contest building and back in to avoid a possible freeze when you open the bag and close it.
5) Deposit a TM01 into PC from glitched TM/HM pocket inventory as well as TM15 x195.
6) In regular items pocket, swap TM38 into ? x0 (corrupts key items pocket) (note: other swaps may work too)
7) In Key Items pocket, swap first ? x0 with ? x1 (above Kurt's ball) (note: other swaps may work too).
Ball ID becomes number of balls and you will receive Master Ball x255.
8) Move the TM01 up to the first balls slot.
9) In Key Items pocket do step 7 again to get 191 (TM01's index number) balls.
10) Deposit 251 Star Pieces from the items pocket into the PC.
11) The TM15 x195 and Star Piece x251 will appear in the glitched balls pocket. Swap them into the right place (Pokégear may disappear). (the hardest part because it's hard to know what item quantity represents DA10)
12) Teleport back to Goldenrod with Abra (otherwise you'll probably have to walk it)
13) Enter Goldenrod Department Store. Go up to the second floor. Use balls pocket TM15. It should execute the code you wrote in box names. Enter the lift. Go out to warp to Mt. Silver summit.
14) Talk to Red to beat the game.
Execution details:
When TM/HMs are outside of their relevant pocket, they can execute arbitrary code. Using Missingning, we obtain all TM and HMs and can store them in the PC. With an expanded balls pocket, PC items will appear beyond the balls pocket, allowing us to use the TM/HM's glitch effect.
TM15 is most useful and jumps to FA10 (DA10), which is somewhere in the glitched balls inventory (what item quantity exactly is it?). I think it is slightly better than glitch Pokédex mode 09 for this run because you don't need to place 09 into D94C (the glitch Pokédex mode) and FA20 (glitch Pokédex mode 09) is the earliest glitch balls inventory Pokédex mode pointer.
List of execution pointers (TM/HMs):
here
List of execution pointers (glitch Pokédex modes):
here
At DA10 (in the middle of glitched balls inventory) we need:
(item) x195, Star Piece x 252 (represents C3 84 FB - a jump to FB84, box 4 name character 2)
We place them into glitched balls pocket by putting it into the items PC, then swap them into DA10+.
For (item) x 195 I used TM15; the item that executes FA10. Star Piece x0 is found somewhere in the glitched regular items pocket (luckily) and you can deposit 195 of them.
Now, if you name your boxes from box 4 the following, you can use TM15, then make Red appear, change your number of Pokémon to 0 (allowing instant victory by challenging any Trainer), change the map to Mt. Silver and warp there if were at Goldenrod Department Store 2F, entered the lift and exited.
づづ
ぶぶぶ
づ
きづきみ
Final box name @DB83 code (actual execution at DB84):
Bytes:
AF AF AF 26 DB 2E 50 00 00 2C 32 26 DC 2E 9D 32 50 00 3C 3C 3C 26 DC 2E 80 2D 50 2D 2D 2D 2D 32 2E 7F 2D 50
2D 2D D6 B7 32 B7 D0 50
ASM:
xor a
xor a
xor a
ld h,DB
ld l,50
nop
nop
inc l
ldd (hl),a
ld h,DC
ld l,8D
ldd (hl),a
ld d,b
nop
inc a
inc a
inc a
ld h,DC
ld l,80
dec l
ld d,b
dec l
dec l
dec l
dec l
ldd (hl),a
ld l,7F
dec l
ld d,b
dec l
dec l
sub a,B7
ldd (hl),a
or a
ret nc
ld d,b
nop
How to improve:
1) Try to remove the element of counting too much in order to find the DA10 quantity more easily.
2) The code could be optimized, and perhaps it would be better if you could make it change your Teleport location to Mt. Silver.
3) My menuing wasn't very good, so a speedrunner who is more experienced with menuing should be able to save time in that respect.
Video (click to load): https://www.youtube.com/watch?v=D0VVZY5s_ac
BizHawk-1.9.1 movie: https://mega.co.nz/#!cos3hDAQ!nuv99WzlbuYeKN7onI-jiTx-SojQ942uHiuvhaSJtIA