Posts for primorial_soup

1 2
13 14
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
hanzou wrote:
You could also use the memory viewer to instantly view the DVs.
I apologize for the double post. Is there a way to determine in memory exactly where these values are?
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
I now have progress through nugget bridge. I'm currently 1949 frames ahead of my previous run. Saved frames result from the following: ~900 frames, not picking up the Rare Candy ~300 frames, one less attack (first trainer after Pewter Gym) ~66x7 frames, talking with trainers ~30x3 frames, talking with trainers (and going one step out of the way to do so) This leaves about 200 frames that I can't directly account for. I can only speculate that this is my new battle strategy coming into play, as in this run I've never paused more than 20 frames for any event (as opposed to the last run, which was often 40 or more). But even with damage manipulation for critical hits, at this point I've already been left with three battles which resulted in 'one-pixel crits', which is quite disappointing. Were it possible to obtain a Squirtle with higher stats (I'm not convinced it is), these could probably be done it one hit. Nonetheless, I'm still rather satisfied. I've also mapped a route which will avoid healing in Fuschia, which will save a good amount of time. Key observations that allow for this are the fact that Celedon Gym can be done before Pokémon Tower (thus replenishing four Ice Beams, thanks goes to Tilus for this), and that Strength has the exact same power as Mega Punch. I intend to abuse this by depleating Mega Punch, and then teaching Strength to Mew (instead of Squirtle). My goal is to save 10000 frames over my previous run, which should have a game clock of 1:47. I think I'm on my way.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Bag of Magic Food wrote:
Does pressing buttons that don't do anything at other times help?
Like I say, it was an accidental discovery. But since the random number generator seems to be heavily dependent on on user input, I wouldn't be surprised if other events with a random component were affected by 'dummy' button presses as well. Two possibilities that come to mind are walking through grassy areas, and perhaps tossing a Poké Ball. This is pure speculation, of course. When I need to catch an Abra I'll test it out.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
I made an accidental discovery which turned out to be very useful. In Pokémon R/B, as in many other games I'm sure, the moment when an attack is issued determines how much damage it does, whether it is a Critical, which attack the opponent does, whether the opponent misses, etc. No big surprises there. The discovery I made is that how long the button is held also plays a role into how much damage the attack does. This is particularly useful for getting maximum damage on a critical hit. Once a Critical hit is found, you can play around with the duration of the button press until you get one that's max damage. It doesn't work all the time (in fact, some durations even 'uncrit' the attack), but I would estimate that about one in three times it does. It saves a lot of time as far as manipulation goes, and also framewise (I've managed to get two-hit KOs on a few battles that were previously three hits). I figured I'd share the knowledge for anyone who might be doing a(nother) run.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Nsm wrote:
you can try getting another mew instead of getting two pokemons for HM, it would be faster, poké centers would be faster too ;)
The crazy thing about this is that it's actually very doable. But it would mean walking Nugget Bridge another time, fighting the Youngster instead of the Lass on Route 25 (the one that has the slowpoke), and then backtracking a little on Route 25. The time it would save would be not having to catch Oddish or a flying pokémon, a few frames at the heal centers in Fuschia and Indigo Plateau, and 500 frames in the Hall of Fame. Oh, and another 400 frames from Squirtle's 'can't learn more than 4 moves...' dialog. I think I'd probably be losing on the trade, but I'll do a time trial just to be sure ;) But something you have brought to my attention: the Hall of Fame credits take a really long time. I'd be willing to bet that depositing 4 pokémon requires less than 2000 frames, so that might be a good optimization. It could also be done before healing to save a little more. EDIT: Actually, the Lass on Route 25 is unavoidable, even if the Youngster is fought first. This means that catching another Mew would result in having to fight an extra trainer battle, which considering the gains were questionable at best, would most definately be slower than the current approach. EDIT2: I found a few hours, so I've restarted. Coming out of Mt. Moon I'm 177 frames ahead of my first run, and the only difference is that I've talked with three trainers instead of allowing them to 'notice' me. I actually picked up after the first Gym, meaning I decided not redo the first Weedle battle (in order to talk with the trainer first). A 5 turn battle would take forever to reproduce, and I don't think it's worth it for a one time minimal gain.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
I've determined I will be doing another run. There were two things that concerned me, but I've convinced myself that they won't be an issue. First, the loss of exp from skipping those two trainer battles. The total experience loss sums to 2829, which is actually just fine, because I had a 4080 point buffer in my original run (which I took advantage of by burning a Rare Candy early). My second cercern was whether a level 48 Mew could stand as well against the Elite Four as a level 50 (without requiring too many more attacks). I did a short trial run from my current run, sending him (at level 47) in without feeding him the candy. It looks like the first Dewgong will become two hits (this was the only one hit battle I actually had to manipulate), but the rest of Lorelei's remain as they were. The other three trainers I rarely even needed to Crit, so I'm not worried about them. I'm now questioning whether the Rare Candy in Cinnibar is even worth getting (it's 300 frames out of the way). And if I choose not to get that one, then accessing the item menu to feed him the first one may not really be worthwhile either. This would mean sending him in at level 46, but it looks like that won't be a problem. I think this is my current plan of action. So, other than the mistakes I listed in my original post, and optimizations I listed in my second, If anyone knows of anything I may have missed please let me know.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Bisqwit wrote:
Since it's finished, why don't you submit it?
Honestly, I'm a noob here, and didn't know where. Tilus: I just finished viewing your run, and I have a few suggestions (you may already know about some/most of these): -Squirtle starting stats. I played for a long time before I got a Squirtle with stats I liked. I'm not sure of the numbers offhand, but I think the max might be something like this: Atk:12; Def:13; Spd:10; Spl:12. At any rate, I eventually got with with max Atk and Spl, which I think helped a lot; looking at many of your beginning battles, you tend to use a lot more attacks than I do. Also, make sure his speed is at least that of Gary's Bulbasaur, or he'll be getting an extra attack in the first battle. -First Weedle. It is possible to kill him in 5 attacks, although it does take a while. Starting stats may also play a role. -Route between Cerulean/Vermillion. The trip to Vermillion isn't short, if you can avoid doing it twice (by fighting the Cerulean Gym beforehand), that'd help quite a bit. -Route through Rock Tunnel. You fight an unnecessary Hiker. See my run for details. -Route in Celedon Gym. I know this one has been mentioned, but there's a trainer with only one pokémon instead of three. Improvements I could make to my own: -Talking with trainers. -Route from Cerulean to Rock Tunnel (not going through the house a second time). -Route through Pokémon Tower. One less trainer and a faster route on the 3rd level. -Route through Silph Co. Once again, one less trainer. -Route in Saffron Gym. I used 5 jumps to get to Sabrina instead of (I'm guessing optimal) three. Questionables: -Celedon Gym before Pokémon Tower. I'm really not sure which route is faster. From my rough sketches, I think the difference boils down to this: (PokéCenter_to_Store + Store_to_Gym) vs. (PokéCenter_to_Gym). My gut feeling is that the second of these is shorter, but I'd have to do a time trial to confirm it. You may have other reasons for this switch as well. -Route in Veridian Gym. I'm quite sure that it's faster to get to Giovanni without stepping outside (I recall measuring this), but what I didn't take into account was the route back afterwards. Once again I'd have to measure this. I *was* quite sure that I wasn't going to do another run... now I think I just might ;) EDIT:
hanzou wrote:
Unlike Tilus' movie it seems you take damage in a few places. Were each of these hits taken to save time (when the waiting required to manipulate randomness outweighs the time lost in damage animation), or just accepted out of laziness?
This is the first assisted speedrun I've ever done. You'll notice most of these happen early on. I was just being a noob. That, and I didn't realize that "Takes no damage" was a goal to be obtained.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Hi. Omni pointed me towards this thread when I told him that I was interested in doing a Pokémon red speedrun. That being said, I haven't looked at it since about July. Anyway, I've recently finished, with an end time of 1:50. I deviate from the 'typical' red/blue speedrun in that I use Mew as my main character starting at Cerulean, with a starting move set of Water Gun/Mega Punch and ending move set of Ice Beam/Psychic/Mega Punch/Thunderbolt. Video and save games Timesavers: -Mew. Mew takes a hella long time to catch and is only level 7. However, teaching him Water Gun (short detour in Mt. Moon) enables him at level 7 to defeat a level 17 Onix without difficultly (gaining 3 levels in the process). By the time you get to Bill's, he's stronger than your Squirtle was. The time used to catch him is saved later by not having to catch an electric pokémon (most likely Zapdos), and by not having to use switch mode (thus avoiding the 'Trainer is about to use...' dialog 21 times for the elite four, which adds up). -Escape Ropes. Since I'm not using Dig as a main attack, I purchased these in Pewter at the same time I bought the Poké Balls. This saves time by not having to teach the TM, and also every time it is used (since the Item menu is considerably faster than the Pokémon menu). -Bubble. When used effectively, Bubble can save a lot of time. By slowing the opponent on the first turn, it makes would-be two turn battles into '1.5 turn' battles (i.e. the opponent only gets to attack once). Of course, this only works if the opponent is faster, but it comes up often enough. -Critical Hits. By this, I mean not getting a Critical unless necessary. It is often the case that one Critical hit will not kill an opponent, but two Normal hits will. By not Critting the first hit, you save ~20 frames every time. -The very first Weedle. He has exactly 22hp. Squirtle's Normal hit will do 3, and rarely 4 damage. A Critical will do 4, and very, very rarely 5 damage. The moral of the story is, he can be killed in 5 turns instead of 6, saving ~300 frames. But this means you need to get two 5 damage Crits, which takes a lot of manipulation. Throw in 4 point normal hits and save yourself 20 more frames. Mistakes: -Rare Candy in Cerulean. I went 900 frames out of my way to pick this up, and wasted another 250 frames to use it. I thought I'd need it, but I really don't think I did, considering half the time during the Elite Four I didn't even need to Critical. -First trainer in Cerulean Gym (the one that triggers Mew). I'm really not sure what I was thinking. Not only am I hit every attack, but it also shows the 'not very effective...' message every time. I could easilly save 200-300 frames there. -Doduo west of Celedon. Catching a Doduo saves time over a Spearow, because it saves the 'can't learn more than 4 moves...' message. However, they seem to be pretty rare, and I end up standing around for about 100 frames waiting for one. I think the best bet is probably to catch a Pidgey on the way to Vermillion, as they are very common, and the next time I heal is in Fuschia, where I had the Doduo anyway. -Rare Candy in Warden's House. Another wasted 750 frames. There's probably only one pokémon (the very first Dewgong) in the entire Elite Four that would become two hits instead at two levels lower. -Various Battles. There's several battles which I'm sure could be done in one move should I have played with the manipulation long enough. The question becomes, "Is 300 frames worth 10 minutes of my time?" A lot of times I said no. So in total, were I to do this run again (which I doubt I will), I could probably manage to spare another minute or so. Other than the affore mentioned, I think the route and execution are as compact as possible. I'll be viewing Tilus' run to see if it gives me any other ideas. EDIT:
Tilus wrote:
However, I'm going to need to find the closest Ether of any sort to the main path
There happens to be an Ether right before Bill's house. If you look at the fence just to the right of the Lass with with the two Oddishes, you should find it.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
1 2
13 14