Player (36)
Joined: 9/11/2004
Posts: 2630
Actually, for OHKO moves your speed must be faster than your enemy's speed or it has a 0% chance of landing, iirc.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
antimatter wrote:
If you still plan to catch Snorlax, you could give him Fissure, which wouldn't be out of the way since Giovanni gives it to you. Of course, that would require you to manipulate her Gengar to miss his first attack, since a Gengar is going to be faster than a Snorlax at virtually any level, and certainly an L60 versus an L30. And going back to earlier discussion on the Mew glitch, I believe an L8 Abra can have a 21 special, but it'd be just about the lowest possible value.
Fissure only hits if you go first on a turn. That means Snorlax has to go faster. X Speed, perhaps. I think the best way is to Surf the ghost Pokemon.
Joined: 4/21/2005
Posts: 32
Location: Georgia, USA
Dagnabbit, you're right. I forgot that the OHKO-using Pokemon had to go first in order for the move to hit. Disregard my suggestion, then :)
Joined: 4/21/2005
Posts: 32
Location: Georgia, USA
FractalFusion wrote:
I think the best way is to Surf the ghost Pokemon.
Surf is only 95 power, while Gyarados starts with Hydro Pump, which is 120 power. Anyway, Snorlax could also learn Earthquake, or Psychic, though I doubt either would be more successful than Hydro Pump, given the low level and lack of STAB.
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
antimatter wrote:
FractalFusion wrote:
I think the best way is to Surf the ghost Pokemon.
Surf is only 95 power, while Gyarados starts with Hydro Pump, which is 120 power. Anyway, Snorlax could also learn Earthquake, or Psychic, though I doubt either would be more successful than Hydro Pump, given the low level and lack of STAB.
Sorry about that. I just assumed Gyarados should learn Surf over Hydro Pump. There's only 5 Hydro Pump to use.
Joined: 4/21/2005
Posts: 32
Location: Georgia, USA
FractalFusion wrote:
Sorry about that. I just assumed Gyarados should learn Surf over Hydro Pump. There's only 5 Hydro Pump to use.
Hmm, that's true, although I suppose you could just bring an Ether or two along. If you give him Ice Beam and Thunderbolt, along with Hydro Pump, what would the fourth slot be? Surf, which could render capturing Snorlax worthless, since Charmander could learn Strength? Hyper Beam, since the lose-a-turn is disregarded if the attack kills the opponent?
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Move progression for a Gyarados would probably be something like this: Start: Bite, Dragon Rage, Leer, Hydro Pump -Bubblebeam replaces Leer. No brainer. -Thunderbolt replaces Dragon Rage. Against pokémon level < 20, Dragon Rage will typically be a OHKO. But at this point in the game, it's outlived its usefulness. -Ice Beam replaces Bubblebeam. Also not much to think about. Just about everything Bubblebeam would have been effective against, Ice Beam is as well. -Surf replaces Hydro Pump. This would be happening directly before Blaine. It's a shame to see it go, but I see it as a necessity. -Strength replaces Bite. This is certainly questionable. A strong normal attack is needed to fight Sabrina, and I don't think Bite would cut it. There are certainly a lot of other options, but this one is particularly appealing, because it saves having to teach Strength to Charmander. Elite Four battles would be something like this: Lorelei: Strength against Jynx, Thunderbolt against all others. Bruno: Surf against Onixi, anything else against the fighters (this should be fine, since they have such a low special). Agatha: Thunderbolt/Ice Beam against Golbat, and the rest, I'm not sure really. Most likely a single Ice Beam to freeze them, and finish off with Thunderbolt or Surf. The 60 Gengar would probably be a three hit battle. Lance: Thunderbolt for Gyarados, Ice Beam for the rest. The big question becomes whether in fact Gyarados would be faster than Mew overall. Gyarados will save a lot of time in the first half of the game, with one hit battles that even a level 20 Squirtle/Charmander couldn't manage. The third quarter would be about the same (as Mew OHKO'd the entire way), but the Elite Four would be quite a bit slower. My gut feeling is that Gyarados would in fact be faster, but since the routes become so different, the only way to test this would be to do a complete run.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Joined: 1/3/2006
Posts: 334
is there actualy a list of which pokemon on which level has which special? and is there a list of which special is needed to catch thatandthat pokemon?
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Phallosvogel wrote:
is there actualy a list of which pokemon on which level has which special? and is there a list of which special is needed to catch thatandthat pokemon?
I have an online database of Pokémon. http://bisqbot.stc.cx/pokedex.php?q=azumarill+full
Former player
Joined: 9/24/2004
Posts: 177
The problem with that database, though, is that it's updated to Gold/Silver stats, which split Special into two categories (Special Attack and Special Defense). A much better resource is the Azure Heights Pokemon Laboratory[/url], which hasn't updated its' stats since Pokemon Yellow came out.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Tilus: once again I must thank you for providing invaluable information. I hadn't realized that different pokémon have different experience curves. Mew happens to have one of the fastest (at least up to level 50), and Gyarados has the absolute slowest. From the equations provided on the site, I calculated that a level 47 mew has earned approximately 96000 experience points. When this same experience is given to a Gyarados, he'd only be level 42. This level discrepancy is so high, that I think it rules Gyarados out as a valid option.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
So I'm through Nugget Bridge again, and it's time to catch an Abra. I'm currently 1425 frames ahead of my Charmander test run, and 4155 frames ahead of my initial run. But as far as catching an Abra goes, I've found either I find one right away, or I can't find one at all. For this run, the latter is the case. I tried everything I could think of; waiting to end the last battle, redoing the last battle completely, but nothing seemed to work. Then I began to notice a trend. All of the pokémon I was encountering were either lv12 Pidgeys or lv8 Kakunas. They both have high occurance rates, but together they only make up 30% of the probability space. I figured something was up, so I decided to do some research. Entering the grass at different frame counts, walking until a random battle occured, and then recording the frame at which the pokémon appeared. I repeated this for the two cases mentioned above, both waiting a few frames to end the battle (at the got cash for winning screen), and redoing the battle entirely. The results are as follows, sorted by time of appearance:
winning...88277     winning...88279     different battle
-----------------   -----------------   -----------------
88815 - pidgey 12   88837 - pidgey 12   88835 - pidgey 12
88840 - kakuna 8    88839 - kakuna 8    88841 - kakuna 8
88862 - kakuna 8    88846 - kakuna 8    88852 - kakuna 8
88867 - kakuna 8    88865 - kakuna 8    88855 - pidgey 12
88887 - kakuna 8    88866 - kakuna 8    88856 - kakuna 8
88892 - kakuna 8    88866 - kakuna 8    88868 - kakuna 8
88893 - kakuna 8    88870 - kakuna 8    88879 - kakuna 8
88903 - kakuna 8    88927 - weedle 7    88898 - kakuna 8
88916 - weedle 7    88946 - weedle 7    88901 - kakuna 8
88929 - weedle 7    88954 - weedle 7    88916 - kakuna 8
88933 - weedle 7    88976 - weedle 7    88922 - kakuna 8
88934 - weedle 7    89028 - pidgey 13   88940 - weedle 7
88978 - abra 8      89029 - oddish 14   88964 - weedle 7
88986 - abra 8      89036 - oddish 14   89018 - abra 8
88994 - abra 8      89052 - oddish 14   89026 - oddish 14
89030 - abra 10     89062 - abra 10     89040 - oddish 14
89043 - abra 10     89072 - abra 10     89051 - abra 10
89055 - abra 10     89073 - abra 10     89067 - abra 10
89059 - abra 10     89165 - pidgey 12   89071 - abra 10
89082 - oddish 13   89260 - weedle 7    89121 - oddish 12
You'll notice that each pokémon type (species and level) has a specific range that it appears in. There is admittedly a bit of overlap between the ranges, but this is both explainable and expected. There are actually two rolls for random encounters: once when you first enter a tile, and once when you are about to leave (to confirm the second of these, you'll notice that leaving a square in a different direction often produces an encounter where you are still in the old square, but facing the new direction). Taking this into mind, all of these values could be plus or minus 18 frames, which puts things back into their respective ranges. Also notice that changing random factors in the game did not affect these ranges at all. Additionally, they seem to repeat every ~320 frames or so. I currently have two theories: Theory 1: The z80 processor has a register known as the r register. Every clock cycle, this register is incremented by one. If not accessed too often, this register can be used as a simple (albeit very bad) RNG. My theory is that the code takes this value, and if it is within a certain range, produces the corresponding pokémon. This would mean that in effect, which pokémon you see at a specific frame count is set in stone. Theory 2: When the player first enters a zone (i.e. changes from one geographical area to another), the distribution is seeded randomly, and then continues on it's normal 320 frame cycle. If theory 1 is correct, then I only have two options. Either wait 160 frames for an Abra, or go back and try to save ~120 frames previously, which will indeed prove difficult. If theory 2 is correct, then I can perhaps solve this problem by waiting a certain number of frames before entering the Nugget Bridge area. Although truthfully, I really have no reason to believe this theory, I'm just being hopeful.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Through experimentation, I have determined theory 1 to be correct (or at very least, theory 2 to be incorrect). With no other options, I decided to go back and save a few frames. I estimated 80 to be the bare minimum I needed, but was aiming for 120 to have a buffer for manipulation. I actually saved 160 frames, but end up waiting 72 frames for my abra (by having to walk three steps into the grass instead of one). Saved frames result from many small improvements: using the Ember saved from the gym battle in a smarter location, avoiding unnecessary critical hits through better damage manipulation, and a better battle strategy overall. The user Truncated suggested that perhaps non-critical hits could be manipulated to crit. I experiemented a little bit at the time, but found it didn't work too often. But in fact, it works quite often, allowing for even faster battles. The current video file, now 4334 frames (well over a minute!) faster than my original run.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Player (36)
Joined: 9/11/2004
Posts: 2630
Were the 72 frames to get back into the Abra part of the rotation? And for some reason Disco Inferno was going through my head as I watched that. >_> Keep at it primo. Looks very good.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
OmnipotentEntity wrote:
Were the 72 frames to get back into the Abra part of the rotation?
Indeed. I overshot my target area, and had to wait as a result. But even so, the ranges weren't quite where I expected them to be. I really don't have enough datapoints to conclude anything, but it seems that there are in fact random factors which affect the cycles. Although I certainly should have passed up the Abra 10 region, I should have been dead on for the Abra 8s, for which I was once again about 80 frames too early. I have no idea what these factors are however, and have even less of an idea of how to manipulate them. But as the run is, this was the soonest an Abra could be possibly be caught, within 5 or so frames.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
This update took a little longer than I expected. Due to insanely bad luck, I was stuck on a single attack (Gary's Pidgeotto on S.S. Anne) for over a week. I ended up going through well over 4000 attacks before I finally got the "one in thirty-two" max crit that I needed. The current video file, with progress through Vermillion Gym, now 5914 frames faster than the original. During this segment I began using the memory viewer a lot more heavily. I located the DVs for random encounters (and actually trainer battles as well, but it's always constant), and was able to roll a Mew with 14/15 attack, 14/15 speed, and 13/15 special. The location in the Ram (0xFF80) is CFF0. The actual stats for the pokémon are just after, which is useful for knowing exactly how many HP it has. I also located the damage your attack is going to do, which saved a lot of time. A really handy thing about this is, one frame before the actual damage is calculated, it flashes the maximum damage posible, which allowed for better planning of attacks. This is at location D0D8. I've also refined my battle strategy a bit. I've found a way to generate 1320 unique attacks waiting no more than 10 frames. The strategy is this: when you come to an attack, go through the first eleven possibilities (waiting 0 to 10 frames), and for each of those manipulate the duration of the press (5-25 frames is the operable range). If you didn't get what you needed, go back to the previous button press and wait one frame. Once again, go through 10 possibilities (waiting 0 to 9 frames). If you allow two levels of recursion (which I ended up doing for the Pidgeotto), the number of possible attacks jumps to 5720. Certain factors, such as which attack you opponent does, and whether or not they miss, are not quite so easy to generate possibilities for. I do end up waiting for more than 10 frames in a few places, most notably when manipulating 1/256 misses. From here on out though, it should be smooth sailing, with OHKOs basically the entire way.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Run completed and submitted (I told you that would go fast). Ending in-game clock was 1:45. I appreciate everyone's feedback and suggestions, with special thanks to Tilus for suggesting the majority of the optimizations with cut five minutes off my original run.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Joined: 3/7/2006
Posts: 720
Location: UK
Very nicely done! One thing that did make me laugh was when you chose not to learn Metronome... surely that could kill anything of your choice? Or would the waiting time to luck manipulate be too high? Or just not enough PP?
Voted NO for NO reason
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
LagDotCom wrote:
Very nicely done! One thing that did make me laugh was when you chose not to learn Metronome... surely that could kill anything of your choice? Or would the waiting time to luck manipulate be too high? Or just not enough PP?
Metronome does seem like it would be a pretty nice ace up the sleeve. I know there were a few points near the end when I really wished I would have had Thunder. But, with the move set I have, there really aren't any trouble battles at all. At the point when Mew tries to learn it, I could replace Water Gun, but when Mew tries to learn Psychic, I'd be forced to replace something... if I decided to keep Metronome, most likely Thunderbolt. I use Thunderbolt 13 times between Poke Tower and learning Psychic, so it's nearly depleated anyway. During the Elite Four I used it 7 times, so Metronome certainly has enough PP for that as well. It might also help with the Koga battle, as two of his were two hit battles, which would have been one hit with Earthquake or Psychic, or a number of attacks really... the more I think about this, the more it seems like this might be a viable option. I do need Water Gun 4 times though, but this could probably be handled with the two Ice Beams I'd be saving from koga, and with Mega Punch, of which I had three left over. My main concern is, of course, how easy it would be to manipulate which move Metronome does, and how much extra time it would take to manipulate the correct attack. I'm fairly certain that manipulating the duration of the button press won't affect it, which means one would be limited to one attack per frame. Assuming a 1/256 chance of getting the move you need, and allowing recursion of one button press, the expected wait would be about 21 frames. Still, this certainly warrants investigation, as it could potentially elliminate all of the battles that weren't OHKOs after Poke Tower. This was a total of 12 cases, times (a minimum of) 300 frames... this might very well save a minute or so if Metronome is in fact manipulatable (which seems likely).
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
I've made a few discoveries that eliminate the need to catch an Abra (at least in a run that doesn't use Mew). First discovery: Escape Rope can be used from Bill's house. Even if you have an Abra, it's still faster, because you don't have to walk outside, and the item menu is faster than the pokémon menu (I really should have done this in my Mew run). Second discovery: Escape rope (or Dig) can be used to return from Vermillion. Although it can't be used from inside the gym, it can be used from inside the pokémon fan club building (where you get the Bike Voucher). It's hard to say exactly how much time not catching an Abra would save (Cut needs to be used a second time, but there is less backtracking), but I would estimate in the neighborhood of 1500 to 2000 frames; not a small chunk by any standards. This brings me back to thinking about a Gyarados run. Although my Mew run isn't perfect (30-45 seconds could potentially be saved by rolling better stats, and by using Metronome in a few places), I think a Gyarados run could be even faster. I did a test run (without TAS) and found that the Elite Four wasn't as big of a problem as I had thought. The STAB on Surf makes up for the his lower level pretty well. The amount of time saved from earlier battles easily offsets the few extra attacks needed here. Also, Snorlax doesn't need to be caught either making this a three pokémon run (which is the theoretical minimum, if you don't allow backtracking through Diglett Cave to glitch a Mew slave). I'll be posting a WIP soon (probably after Cerulean gym).
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
Just wondering, but was Dragon Rage able to OHKO most of the Pokemon around Nugget Bridge and beyond? How about rival battle? At levels 12-16, most Pokemon would be close to 40HP. Or maybe I'm missing something.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
FractalFusion wrote:
Just wondering, but was Dragon Rage able to OHKO most of the Pokemon around Nugget Bridge and beyond? How about rival battle? At levels 12-16, most Pokemon would be close to 40HP. Or maybe I'm missing something.
This is exactly where the saved time from early battles (as mentioned above) is coming from. That, and having Hydro Pump. I went through my previous run with a memory viewer, and it turns out that almost all of the pokémon up through Vermillion have 40 HP or less. Dragon Rage only has 10 PP however, so I'll need to use Bite as often as possible. I'm also going to change things up a bit by doing the gym immediately as I enter Cerulean, which will give me Bubblebeam before I even enter Nugget Bridge. I'm fairly confident that I can get away with only healing once in Cerulean (and not again until Indigo Plateau), directly after the gym battle, considering that I have four useful attacks at this point, instead of only two. This will counter the time use to heal before Mt. Moon (necessary for Gyarados glitching).
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Joined: 5/27/2005
Posts: 465
Location: Turku, Finland
Oh goodie. I can't wait to see a Gyarados run. Plus primorial#soup's runs are usually (infact always :P) so carefully but unbelievable fast made that they are always worth watching. Good luck with it! I'm not saying that Tilus is a bad Pokemon TASer, in fact he's also very good, but somethow I like primo just a little bit more ;)
Which run should I encode next? :)
Joined: 3/7/2006
Posts: 720
Location: UK
I'm glad you're researching it so much; it reminds me of the Diablo II runs up at SDA for which changing class has resulted in a better time. What TMs are you feeding to Gyarados when he is caught? As mentioned Dragon Rage is a bit low on PPs.
Voted NO for NO reason
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
The current WIP, as promised. If you've seen my other runs, this is nothing too impressive, although it may be interesting to watch exactly how the Gyarados is obtained (very similar to Mew, but different setting). At the last point when I could get a valid comparison (the last trainer before Mt. Moon), I was 922 frames ahead of the published run. I won't really be able to compare again until after I finish with Bill's, but by then, I hope to have increased this mark by several thousand.
LagDotCom wrote:
What TMs are you feeding to Gyarados when he is caught? As mentioned Dragon Rage is a bit low on PPs.
Immediately when he is caught? None. He starts with a full set of moves. If you mean TMs throughout the course of the game, probably something like this:
primorial#soup wrote:
Start: Bite, Dragon Rage, Leer, Hydro Pump -Bubblebeam replaces Leer. No brainer. -Thunderbolt replaces Dragon Rage. Against pokémon level < 20, Dragon Rage will typically be a OHKO. But at this point in the game, it's outlived its usefulness. -Ice Beam replaces Bubblebeam. Also not much to think about. Just about everything Bubblebeam would have been effective against, Ice Beam is as well. -Surf replaces Hydro Pump. This would be happening directly before Blaine. It's a shame to see it go, but I see it as a necessity. -Strength replaces Bite. This is certainly questionable. A strong normal attack is needed to fight Sabrina, and I don't think Bite would cut it. There are certainly a lot of other options, but this one is particularly appealing, because it saves having to teach Strength to Charmander.
I'm still debating the order of Fuschia/Saffron/Cinnibar. I'd like to still have Hydro Pump while doing Koga, but I don't want to have to teach Strength without teaching Surf. My thought is that Bite may not be powerful enough to take out all the Drowzees in one hit if I choose to do Fuschia first. I'm thinking that perhaps I could do the Saffron office building first, then Koga, learn Surf and Strength, then Blaine, then Sabrina. I'll most likely have to do a lot of experimenting to see what is best.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))