Skilled player (1099)
Joined: 8/26/2006
Posts: 1139
Location: United Kingdom
Opposing trainer Pokémon attacks are determined when the battle menu appears. It can be luck-manipulated before then, when it says “Trainer sent out ...”. Wild Pokémon attacks are determined when you select the attack. Note that in GSC, some Pokémon will only use set moves against you, especially if your Pokémon is weak to the attack. A small extract from the FAQ that got me thinking.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Mukki wrote:
I'm thinking this run can be improved, Primo's that is. I reckon there could be a big time saver (a minute or so maybe...) in manipulating the enemy's moves so that it always uses the move with the shortest name, this could usually save several frames per battle over Primo's run. This sounds extremely tedious to TAS however....
For the majority of the run, I chose attacks which had a miss ratio better than 1:256. The were a few battles where this wasn't possible, for example Lt. Surge's Raichu, which refused to do anything except Thunderbolt or Thundershock. I spent somewhere in the neighborhood of ~2000 rerecords on this single attack alone. Short synopsis, this could potentially save a few hundred frames over the course of the run. Whether the run would be able to be completed in a single lifetime is another question.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Post subject: Pokemon red speedrun to beat Primo's record
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
The discussion for this used to be at the recordholder's thread but now there is a thread. The recordholding video can be seen here. Here's how I plan to change the run, in order of significance: 1. Use Gyarados as main battler, like in other movie, but glitch a Snorlax at level 130 when I get to Cinnabar Island. This will blow through the rest of the game, as there are many 2HKOs against the Elite 4. I plan to teach it the move Rock Slide to help against the Elite Four's Ghosts, as well as Strength instead of Gyarados. 2. Name rival "A" and take name "ACE". The name "ACE" allows me to glitch a level 130 Snorlax, and makes more sense that EEE or BDE. This is estimated to save about 11 seconds on the run. 3. Fix some minor route mistakes (as any run improvement should do). I hope to beat the run by 1 minute, but I will not pride in a movie if it does not win by at least, oh, 1073 frames. Why? Because that means I could have done better taking the name "A", naming the rival "A", and having an otherwise identical run. If the improvement is less than 643 frames, I will not submit this run. Why? That much improvement will come from simply taking the name "ACE" and naming the rival "A". Wish me luck, give me comments and hints, vote for pedro.
Editor, Expert player (2079)
Joined: 6/15/2005
Posts: 3282
There's already a thread about general Pokemon R/B. I recommend that you post there: http://tasvideos.org/forum/viewtopic.php?t=2352 And the link that you posted doesn't work, because it should be forum/ and not forums/. Otherwise, good luck on your run. Did you get the emulator to work?
Joined: 6/6/2004
Posts: 223
One thing to consider is that a 95-speed Snorlax isn't going to get the jump on much at that point in the game, so you'll end up going through a lot of failed enemy attack messages. The problem is that there isn't much to replace it. Golduck has the advantage of the fastest name to enter (AAA) but that's only worth a few frames, and Golduck is completely unspectacular. Confusion helps against the ghosts, even though it's weak, but you'd have to spend time teaching Blizzard to do much against Lance, and you're even more out of luck against Lorelei. Alakazam could just attempt to brute-force with Psybeam and Psychic, but can't do anything else if that doesn't work. I gave consideration to putting Sabrina's TM 46 (Psywave) to use, but most of the E5 Pokemon have more than 150 HP. What I see as the most interesting possibility is going with a lowercase y. From what I've heard, this yields a "copycat Ghost Missingno." Catch it, swap it with Gyarados right away, view your menu, and suddenly you have a level 185 Gyarados at your disposal (and if you ever decide to give your opponent a turn, you can make it change from Gyarados into that Pokemon). You might want to see what you can do with the shapeshifter, because it makes for a more interesting finish to the run in my eyes. (On a side note, it's too bad there's no special character that leads to a fight against Rival #8 and instantly ends the game.)
Post subject: Sequence breaks
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Here's an idea on sequence breaking: Use trainer/fly to skip stuff. I see no points where this is applicable. I had a thought on the place north of Vermillion, where I know stuff can be skipped. However, this would save 5-10 seconds with fly, and wastes time if you must catch an Abra. If there are points where this is big before you get fly, it might be worth catching Abra. If not before Fly, I won't catch Abra. But I have a feeling it could be worth it somewhere. Another idea, this one very CRAZY, involves glitching past the Elite Four guard people. I know there is a glitch that allows you to get onto cycling road without a bike. Of course, you need to get the strength and surf HMs to skip victory road. Despite repeated attempts, however, I couldn't glitch past any other "roadblock" NPCs, so this idea bites the dust. Last idea: Glitch 128 rare candies, and use them to raise Gyarados's level. In fact, this might work better than glitching Snorlax. It would take the same amount of time to glitch Missingno, I could take a name like "CML", and probably be faster than using X speeds on Snorlax. It depends on how much Gyarados must be levelled up to do this. Primo, can you tell me what battle Gyarados had the most trouble with, and what % increase in damage it would take to get a KO? The biggest issue is using X speed for Snorlax. I'm still not sure if Gyarados is worth it, but you might shift my opinion about how good it is. Remember how you get 10 seconds of cry advantages with Snorlax, so Gyarados is a fairly close call. The difference is in teaching Snorlax Rock Slide/Surf, which could take a while.
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
The problem with Missigno is that the game lags for a couple seconds when you send him out. If not for this lag, though, Missingno would be better than Snorlax as it has a tiny, glitchy cry shorter than that of Snorlax. But the lag cancels out that benefit. I have given thought to the problem of speed. One solution might be to just buy X speeds. I'm not sure how many pokemon they would give me an advantage against.
Post subject: DV memory address
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Sorry for the double post (is that even a rule here, no double posting? I've never seen it enforced). My question is, what memory address contains info on DVs? I've looked in a lot of places, and I can't find it. I won't be able to do this run without that info. FYI, I'm currently 95 frames behind Primo's run because of a move expected to save 150 frames overall. So the net gain is around 55 frames. There's a route mistake where I can save 19 seconds, so it looks like I will beat this by a minimum of 20 seconds. Wheeee.... I'm still up in the air about Missingno. The only real way to find out is to test it. But I can't test because I don't know the memory address for DVs!
Editor, Expert player (2079)
Joined: 6/15/2005
Posts: 3282
This page has some information on Pokemon R/B that might help you. Specifically, the DVs of the current opponent is CFF1 and the DVs of the first Pokemon in your party is D186. There is no rule against double posting, although it is generally discouraged when the posts are less than a few hours apart. Your posts are a month apart, so it is all right; in fact it is encouraged because anyone who isn't using IRC at the moment will not know that you edited the last post. You should know though that it is better to find existing topics to post in, rather than making new topics. This is in reference to 3 of 4 topics you created in this forum.
Post subject: Re: DV memory address
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Chamale wrote:
FYI, I'm currently 95 frames behind Primo's run because of a move expected to save 150 frames overall. So the net gain is around 55 frames.
This confuses me. Perhaps you could post a WIP? It would make it a lot easier to give meaningful feedback.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Er, sorry, but how do you post WIPs? I'm such a n00b on this site. I need to give a LOT more thought to use of Snorlax or rare candies. I'm currently making a run off your. It's identical up to around frame 272 000, at which point I use the Missingno glitch. I think I might submit the result as a "dual effort" between me and Primo (If that's okay with him).
Editor, Expert player (2079)
Joined: 6/15/2005
Posts: 3282
Chamale wrote:
Er, sorry, but how do you post WIPs?
Microstorage There are also general file upload services that everyone should know, such as Savefile and Rapidshare. If you search before asking, you will do everyone a favor.
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Here's another possibillity: Raticate. His cry is as short as Snorlax's, and he has more speed and almost as much attack. However, when glitched at level 100, he'll only know 1 decent attack: Hyper fang. However, hyper fang alone can be a deadly weapon. I found that against the last 2 gyms, hyper fang can 1HKO every pokemon except Goivanni's Rhydon, which it can 2HKO. Since Gyarados has an advantage against these last 2 gyms, it could be a lot more effective to simply use Gyarados against these gyms, THEN use Raticate. However, I'm saying "Could". I don't think that's really the case. One defectiveness of Gyarados is that he levels up nearly every other KO. So Raticate is best, quite probably better than Snorlax. Hyper fang has 15 PP, a respectable amount, but not enough. Against Giovanni's gym and the rival, Raticate can use it 14 times, minimum. But against Blaine, there's a problem. Solution? Quick attack. The attack sucks, but with critical hits it can actually get 1HKOs. Using quick attack wherever possible, Raticate can just make it to the Elite 4. Once you're at the elite 4, Raticate has to use Hyper fang a minimum of 21 times. Against Ghosts, I plan to use Gyarados. It takes some time, but it works... ish. For those extra PP, I plan to pick up a max Ether. Where? There's a little place en route with a hidden max ether. With this many variables, there's only one thing to do: A test run! Confident Raticate can beat Snorlax, I plan to see if it can beat Gyarados.
Joined: 8/1/2006
Posts: 428
Would it be quicker to teach Raticate Thunderbolt or Bubblebeam and use those on the ghosts than to switch for Gyarados? How much of a PP crunch does it cause earlier? EDIT:Here's also a cool PP-related glitch; I got this off Bulbapedia. Directions: 1)Learn Hyper Beam. Use all but 1 PP. 2)Use Hyper Beam in battle. It must hit, but cannot faint the opponent 3)The opponent must move first the next turn. It must use Bind, Wrap or Fire Spin and miss. 4)Use Hyper Beam again. (there will be no recharge period.) This will result in the PP counter wrapping, giving Gyarados 63 PP for Hyper Beam.
Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused telnet: Unable to connect to remote host
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
I think I've discovered something which should save a couple of minutes. By having the male symbol (♂) as the third or fifth character of the hero's name, one should be able to glitch an Encounter with Blaine using the Cinnibar Surf glitch. Because the Volcano Badge is rewarded during the fight sequence (and not in the dialog with Blaine afterwards), this should allow being able to skip both the Pokémon Mansion as well as the Cinnibar Gym*. This is a nice result, because the Cinnibar Gym is annoyingly long (all those trivia questions), and the Pokémon Mansion requires using an Escape Rope which could be put to better use (namely after Sabrina instead of taking the teleporters back out). How much time this saves exactly is hard to calculate, but I estimate somewhere in the 3:20 neighborhood (I measured from entering Cinnibar to encountering Blaine). Considering the glitch takes about one minute or so to do, this should result in a net gain of around 2:20. Since we're going to be performing the glitch anyway, there's no reason not to grab a L100+ Pokémon while we're there, such as Snorlax as Chamale suggested. The improvements from catching Snorlax alone are minimal, but in conjunction with the above, it should save another 1:20-1:30 (I'm not convinced about time 'saved' from critical hits and super effective messages... I think most will still be necessary, but level up music and 2HKOs will definitely save time). Overall time saved should be in the order of about four minutes; an improvement large enough to warrant another run imo :) *NOTE: I am not certain that fighting Blaine in this manner will reward the Volcano Badge. But, for reasons stated (it is awarded during the battle sequence, not afterwards), I have good reason to believe it will. One could test this by GameSharking the hero's name and then performing the glitch. I'll be doing this later and posting results, if nobody beats me to it.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Joined: 5/3/2004
Posts: 1203
Keep up the good work, guys. I've never owned a GB in any form but I've always been inordinately entertained by this run and its various improvements.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
I've got good news, and I've got bad news. Bad news first. In Pokémon Red, Blaine's first pokémon is a glitch pokémon that completely crashes the game. Changing the letter directly before the male symbol has a mild effect on how the game crashes, but it crashes universally (admittedly, I only went through half the alphabet, so I'm just extrapolating). There is good news, however. In Pokémon Blue, Blaine's first pokémon is a normal Drowzee... L111 that is. I was unable to defeat it, so I don't know if his subsequent pokémon (he has six in all) might also cause a game crash. So, now we need a way to defeat 'Ultra-Blaine'. One thing that comes to mind is OHKO moves. Of the L100+ pokémon we can glitch, 2 of them would start with a OHKO move, namely Kingler (Guillotine) and Seaking (Horn Drill) (unfortunately, both of these attacks are normal type, and can't be used against ghosts). Kingler has an outrageous attack, and very good speed. He also starts with a good arsenal of attacks (Guillotine, Stomp, and Crabhammer). His only weekness is that he has a low special, which means he wouldn't be very effective against the ghosts. Seaking is more of an all-round pokémon (decent attack, decent speed, decent special), but only starts with two useful attacks, Waterfall and Horn Drill. Even so, I still lean towards Seaking, because it would have a much better chance against Agatha. An alternative might be Aerodactyl, which knows Hyper Beam from the start (as well as Bite, which isn't bad). Excellent speed and attack, but once again a low special. The low special doesn't even really matter, becuase he can't learn any special attacks any way, other than Fire Blast (which we won't be getting!). His only chance against the ghosts would be Fly, but it's a two turn move, which isn't so appealing. I'll be testing the Seaking route and posting results later.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Joined: 4/29/2005
Posts: 1212
Well, you do come across very few Ghost Types in this game as far as battling, so I don't think Aerodactyl would be a bad choice. Even if you have to use Fly, it shouldn't take too horribly long, right? Whichever you choose, I'm sure you'll do a great job. :3
Joined: 6/6/2004
Posts: 223
I had a file once where the character's name had a symbol. It said they had 6 Pokemon, but scoring a KO didn't decrease that number. Eventually there was a bad Pokemon that froze the game. This might not work. In Blue, where you can observe the results better, does the letter for level affect what Blaine has at all? There must be some way to figure out just what kind of garbage the game is drawing from to get this Pokemon data, and preferably there would be a way to manipulate it. The "Pokemon count fails to decrease from 6" observation is probably a result of having to look forward more than 6 Pokemon increments before the game finds a NULL reference. If you can get Blaine's data to be looked up from elsewhere somehow, you may be able to get a 1-Pokemon fight (and hopefully not one that crashes the game). I'm not sure what would happen if you fight a trainer that holds 0 Pokemon.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
It's time for another Good News, Bad News. Good News: Ultra-Blaine can be defeated. I actually decided to go with Kingler instead of Seaking (with an attack called Guillotine, can you blame me?). Blaine's lineup looks something like this: L111 Drowzee, L111 Rhydon, L111 Grimer, L111 Pidgey, L111 MisingNo., L111 (No Name) Rhydon went down with a single Crab Hammer, and the rest fell victim to the guillotine block. His sixth pokémon is a strange glitch pokémon of sorts, but fortunately not one that crashes the game. It has a silent cry that lasts for about 5 seconds, and the graphic looks kinda like spaghetti sauce flung at a white wall. Pretty cool, actually. Changing the character before the male symbol didn't seem to have any effect on the lineup. Bad News: Ultra-Blaine is just a normal trainer. He doesn't say anything after the battle, nor does he award the Volcano Badge. I'm not sure if there's a way to initiate the actual gym battle, but it doesn't seem likely. Quite a bummer, but it was worth a shot.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Skilled player (1099)
Joined: 8/26/2006
Posts: 1139
Location: United Kingdom
primorial#soup wrote:
An alternative might be Aerodactyl, which knows Hyper Beam from the start (as well as Bite, which isn't bad).
Aerodactyl sounds like a good option imo. The speed and attack is great, but my main reason lies in its speed, which would allow us to take full use of this. For example, this is the fastest battle message in the game (if I remember correctly) -- XXX used bite. XXX flinched. For us it would be -- Aerodactyl used bite. Critical Hit! XXX flinched. Which is faster than -- Snorlax used lazy bastard beam. Critical Hit! XXX used blindfolded tackle. XXX's attack missed. Then again we can use Gyrados' bite for the same purpose. This would cut out the need for glitching high-level pokemon, of which I am still in doubt over how much time it would save.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Mukki wrote:
Then again we can use Gyrados' bite for the same purpose.
I think you have a good point here. In retrospect, switching Bite for Strength was a bad decision. Although it would have caused more 2HKOs (most notably in Fushia and Saffron gyms), it would have saved half of the battle dialog (about 150 frames or so) for all of the 2HKOs afterwards, of which there were twelve iirc. Add in the fact that Strength has an animation which is 55 frames slower than Bite (nearly a second!), and I think you've got a pretty solid case. Gains would probably be in the 40-60 second range.
Mukki wrote:
This would cut out the need for glitching high-level pokemon, of which I am still in doubt over how much time it would save.
I don't think this will save as much time as Chamale suggested, but I do think it would save at least a little. The level up music is 161 frames, and Gyarados levels up 14 times Cinnibar on. Add in the fact that we can skip the Office building beforehand, and you've got another 3. Then there's 12 2HKOs times 300 frames each, and 150 frames or so for every battle in which Gyarados had second attack (I have no idea how many, but it was quite a few). After subtracting the minute or so to perform the glitch, this once again puts you in the 40-60 second range. I have no clue which would be faster. I might end up doing two runs, one each way, and submitting whichever wins. Another quick note about selecting attacks with the shortest name... this is usually not the best policy. Take our Caterpie friend for example. He only knows two moves: Tackle and String Shot. Choosing a Tackle miss is the wrong choice, even though it's five characters shorter. Here's why: Caterpie used Tackle! Enemy Caterpie's attack missed! Caterpie used String Shot! But it failed! Tackle ends up being 12 frames longer. This is not always the case though. Disable also has the 'but it failed' failure message, but for some reason, there is a very long delay before it is displayed (something around 30 frames). I guess it has to go through a different logic check or something. This is why I opted for a Pound miss from Grimer in previous runs. Anyway, I'm just rambling now. I had really hoped to be able to make a large improvement before submitting a new run, but I don't think there's too much room left.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Skilled player (1099)
Joined: 8/26/2006
Posts: 1139
Location: United Kingdom
Chamale, where are you in this run? You said you were going to post a WIP, but never did. What I'm more concerned about is the fact that you have said that your run is identical to Primo's, which has mistakes. Could I take a look at your WIP, please? Just to see if you're on the right track.
Joined: 3/5/2005
Posts: 7
It's identical because he took primo's run, stopped it at a certain point, and started playing from there.
Post subject: eh heh heh...
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Actually, I've been a lazy bastard lately. I've been really discouraged by the many route options, so I've made 2 speedruns which are on more action-oriented games. With no games I really want to run now, I think I will work on test runs for these games. I will try a test run with Raticate and see if it is faster than the current Gyarados mode. I know Raticate can pwnx0r everything except the Ghosts, even without crits (ghosts, of course, take Gyarados or maybe the Dig attack). From this, I have concluded that this is the fastest turn dialogue: Raticate used Hyper Fang! XXX fainted! You'll see that alot (actually, probably more like R or - used Hyper Fang). @Jsmith with the PP-wrap thing: Interesting, but I don't think Gyarados even reaches the level to use Hyper Beam before catching the Raticate. I hereby vow to do at least SOMETHING in the run soon, which has been at standstill for a while. Edit: BTW, when I post a WIP, it will start from a state because I need to use a Gameshark code to get Raticate from a Wigglytuff encounter (I'll keep the name Primo in the test run, so as to not distort the speed measuring. The final run will have a name like Swg.)