Posts for primorial_soup

1 2 3 4
13 14
Experienced Forum User, Published Author, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Chamale wrote:
About where to waste the extraneous steps (out of the 500) for WtW: I suggest Fuchsia city. You could do a tour of the whole "zoo" area, which is never looked at in a TAS. Afterwards, there's some jump-ledges under the gym, which could be used.
I like this plan. It actually saves me using Fly once, which is even better. So, update. I went back an redid the last segment, starting at Vermillion, using Thomaz's route. This saved about 2.7 seconds; not as much as I was expecting, but still a fair amount. I also managed to get a Meowth encounter, which saved a bit of time, and the D-sum was almost exactly where I needed it, so I saved a little time from not having to manipulate that as well. For the second Snorlax skip, hanzou suggested using an alternate glitch trainer, which saved around another 6 seconds. I also had a much better idea for saving time in Cerulean Gym than what I had been planning to do. I was able to get red on Erika's last two pokémon, instead of just her last, and I didn't need any additional HP. I'll be using a similar strategy in Cinnibar Gym. In total, I saved approximately 16.2 seconds on the segment I redid, which I think was more than worthwhile. I intend to finish the run within the next few days. I won't be posting any more WIPs before then, so you'll just have to wait~
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
This has already been published, but I've voted yes a well. Although the game is not too well know, this was a very entertaining 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
SpeedRun Lover wrote:
Why would that mean having to do the WTW glitch an extra time?
There's a guard who stands in front of Saffron Gym. If you don't do the Silph Co. building, you need to use WTW to get in. If you don't get the Secret Key from Cinnibar Mansion, you need to use WTW again to get in. To skip Victory Road (and Veridian Gym, necessary if you skip Silph Co.), you need to do it again. That would be three times.
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
SpeedRun Lover wrote:
With Fire Blast being 5 power points, it is only usable against 5 Pokémon. Who's going to be the last receiver of Fire Blast, or will the last one not be needed?
Exeggutor in the Rival battle. Thunderbolt is halved effectiveness, and I want to make sure to use Take Down a lot in the beginning, to get Mew in the red as soon as possible. Which means, using it here would faint myself, so Fire Blast is a very nice option.
SpeedRun Lover wrote:
Would it be possible to WTW and then be able to get into Blane's gym without the key, or would doing that make the run longer? This would save having to go through the entire mansion on foot.
Yes, this would be possible. But it would mean doing the glitch three times, which takes quite a while. Walking through the mansion (and Escape Roping out) is much faster.
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
Thomaz wrote:
I'll have to figure out how to skip the second Snorlax though, but that shouldn't be to hard I guess.
You can see how I did it in the last WIP I posted. It really isn't too much work at all.
Thomaz wrote:
Also, I decided to just Surf over to Blaine, because I'd have to WtW thrice, correct? One to reach Sabrina, one to reach Blaine and one to reach the E4.
Only twice. Before doing Sabrina, Fly to Pallet, and bike down to Cinnibar. Once you enter the city, Fly to do Sabrina. Afterwards, you can Fly back to Cinnibar at any time, because you've already been there.
Thomaz wrote:
I also wasn't aware that Pound was so slow (I was aware of the fact that Bubblebeam was faster though, but I didn't think it would make such a difference.
When you use Pound, watch your opponent. You will see that they flicker for a very long time (this is the 55 frames, nearly a full second, that I keep talking about). This means that every time you use Pound, it adds one second to the length of your run.
Thomaz wrote:
Again, I have to say I deeply appreciate your feedback. Thanks!
Not a problem. I'm very glad that I watched it.
SpeedRun Lover wrote:
If you can't get Mew to beat the two Onix's, try obtaining the Blizzard TM right by the switch in the mansion. Besides those, you may need to use an SE attack on Rival's Rhydon (too bad Blizzard's a long animation move). I would've suggested Water Gun, but then you'd have to redo more of your run.
I've played through to the end unassisted, and I found that Take Down is indeed not effective enough. Fire Blast on the otherhand, obtained from Blaine, works quite well. Not only on the Onixes, but also the Rhydon, and saves a critical hit on the L60 Gengar.
SpeedRun Lover wrote:
Why will Rival not be "nicknamed" this time? Is nicknaming him slower now just like Abra?
Because so many of the Rival battles are being skipped, it is a little faster. Had the name been 4 characters long, it would have been a little slower, one of the reasons why I choose to use Blue (I really dislike the idea of a nameless hero/rival. I did, however choose 'I', because it flows well in the text, and saves a lot of time).
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
primorial#soup wrote:
Thomaz wrote:
That said, route-wise, do you think my run was good enough. I feel I've should have gotten Mega Punch and stuff like that. Oh well.
I haven't actally reviewed it yet. I will, however, when I have time, and post feedback.
The first thing that made me wonder was teaching Bide, but it worked quite well for what you needed it for, and I think it was a better choice than going out of your way to pick up Mega Punch. It even shortens a few rounds of attacks, and doesn't miss, as Mega Punch does often. I also wondered why you didn't do Cerulean Gym directly after visiting Bill. I would have taught Mew Bubblebeam, and stopped using Pound immediately, due to its slow animation. Even if you get a 'critical hit' and 'not very effective' message at the same time, it's still faster than using Pound. I imagine this could have saved nearly a minute over the course of your run. The route you use in Vermillion is clearly superior to what I'm using. By Teleporting directly from SS. Anne, it saves the trip back across the dock, which isn't short at all. This is probably around 10 seconds faster or so, and I'll be redoing this in my run before I go back to reroll Mew's stats. You buy an extra Escape Rope in Lavender, although you had more than enough money to buy two (or even three) back in Pewter. Seems like a mistake in route planning? Before watching your run, I was quite sure than doing the Snorlax skip a second time was faster than taking the seaside route to Fuschia. After watching your run, I'm now confident of this. It worked out alright in your run though, because it allowed you to get poisoned earlier, and to take more damage because of it. The trainer you fight in Celedon Gym before fighting Erika has three pokémon. This battle can be replaced by a trainer with only one, which would also save a good deal of time. I wonder why you took the time to get Surf instead of just biking down to Cinnibar before doing Sabrina. Although you do use Surf towards the end of the run, if you had Bubblebeam, it would probably work just as well where you need it. Also, Escape Roping away from Sabrina and then Flying where you need to is a few seconds faster than walking out, and then Flying. Healing in Veridian before teaching Surf was a mistake. If you go into your house in Pallet and talk to your mother, it accomplishes the same thing, and is actually quite a bit faster. This would have also saved having to bike to Pallet directly afterwards. After watching your Elite Four battle, I'm even more worried about how well that's going to work out in my run. I plan to do a test run, to see if my current plan is even feasible. In general, it was a very good run; the fastest completed run that I currently know of. I do think it could be improved by a good bit though.
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
So. I have found that it is not possible to get poisoned by Sabrina's Venomoth while using Mew. The reason is that Venomoth knows Leech Life, which is a bug attack, and is super effective against psychic. It refuses to use anything else. The only other option is to get poisoned while in Cinnibar Mansion. This requires an extra random encounter, but it can't be avoided. By getting poisoned at the earliest possible moment, I found that I still had 124 hit points upon returning to the Safari Zone. The minimum number of Take Down uses to achieve this is 5, and the maximum damage achievable with 5 is 139. Obviously, I'd only need to do 123, so this gives me a 16 HP buffer. By carefully planning when the random encounter occurs, I can make sure that I have exactly one hit point without rerolling Mew. ...except that I had an idea. Mew was very close to red zone while fighting Erika's last pokémon. With a little gamesharkerei, I was able to determine that 324 was the minimum total HP to go red, thirteen more than I currently have. This corresponds to a DV of 7, which means the last three DVs should be odd. This will actually give me 325 HP, fourteen more. With a defense DV of one, Koga's weezing is still able to do 83 damage (I took 70 in the latest WIP), but, because I have crossed the 320 mark, poison damage is increased to 20 instead of 19. Long story short, I should be able to save a few seconds by rolling more HP, so that's what I'm going to do.
Thomaz wrote:
That said, route-wise, do you think my run was good enough. I feel I've should have gotten Mega Punch and stuff like that. Oh well.
I haven't actally reviewed it yet. I will, however, when I have time, and post feedback.
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
SpeedRun Lover wrote:
I meant from the point Mew was underflowed, not the end of your WIP which would count for the confusion. I see you realized that battles = trainers. How many trainers does Mew face after Experience Underflow is used anyway (discounting the league)?
I count ten. Two on the way to Celedon, one for second Snorlax skip, three in Fuschia Gym, two in Celedon Gym, Sabrina, and Blaine. Very few. I tried using Gyarados on the way to Celedon. The difference was small, but Gyarados lost; he happened to level up twice underway.
SpeedRun Lover wrote:
As long as Mew has less than 10 hit points by the time you're warped back to the Safari Zone entrance, it most likely won't be too bad.
Perhaps not terrible, but obviously sub-optimal, even to the casual viewer (they've already seen it executed perfectly once). In a TAS, this is not acceptable. To make the point more poignant, a single extra hit point takes 5 steps. Each step takes 18 frames, a total of 1.5 seconds per hit point. Ten hit points would add 15 seconds to the 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
SpeedRun Lover wrote:
With Mew now going through less than 30 battles before the league, Experience Underflow might no longer be a bad move (but rather more beneficial).
Thirty? More like two; Sabrina and Blaine.
SpeedRun Lover wrote:
Even though Abra is only used 2 or 3 times, would nicknaming it be any faster, or would it instead lose time?
Abra has a very short name. Renaming takes ~150 frames, and saves 3 frames every time Abra's name appears in scrolling text, which, without counting, is something less than 10.
SpeedRun Lover wrote:
How long do you think the run will be when finished?
Conservative estimate of 1:20. I'm reluctant to say anything less, because I'll have to do a lot of walking after Cinnibar Gym. EDIT: On that note, I'm open to suggestions about where. For the first time, I tried to do a complete city tour of Veridian, which worked out ok, because I didn't need to waste too many steps, and Veridian is relatively interesting in layout. However, I'll have about twice as many (or more?) steps to burn the next time. I won't mind crossing zone lines at all, even though it takes 11 frames. Biking around in a single zone for about a minute would be very dull. I would like to avoid going through buildings though. Feel free to make a request :) About the latest WIP: As stated above, the reason why the Snorlax skip had failed was not due to the random enounter, but rather because the last disappearable object I had encountered was back in Cerulean. The solution was to simply walk the few extra steps to visit Snorlax beforehand. A big thanks to hanzou for informing me of this before I redid half of the run unnecessarily. North of Vermillion, there are exactly two Pokémon which can possibly have a special of 21 (thus serving as Mew triggers): the L16 Meowth, and the L16 Pidgey. Although Pidgey's battle cry is shorter, Sand-Attack is seven characters longer that Growl, times 7 uses is 49 frames. Unfortunately, the Meowth is the area rare, with 1/256 probability. I was unable to find one with an adequate special value, but I made sure to find the earliest usable Pidgey. I rolled a Mew with DVs E08C, which is basically perfect. I needed to make sure to have the lowest HP posible, and having all even DVs accomplishes this. Also, I wanted to have a defense of zero, so that I could take more damage from Koga's Weezing. Not entirely necessary though; he could have done twelve more damage which I didn't need. It's nice to have a buffer though. I also wanted to have the highest possible attack, just in case. The L13 Spearow I encounter is the very last encounterable pokémon whose experience split two ways is less than 54, without going out of the way (it's 107. Good thing they rounded down, gäh?). I'm pretty sure the trainer I use for the second Snorlax skip is the best option. Although he has two pokémon, he's very close to a Poké Center, and getting to him doesn't involve entering a zone with a disappearable object. If anyone knows of a better option, please say so. I found a faster route on Cycling Road that I had been previously using. Although it involves moving laterally twice, it's still 32 frames faster than going down the left side. After experimenting with taking damage, It became clear to me that I was not going to be able to take enough. My original plan had been to get Toxic from Koga's Weezing, and then proceed to miss 3 times in a row, taking increased damage from poison each time, before being smacked by Self-Destruct. However, this would mean manipulating four 1/256 misses... in a row. I don't even want to think about how long that would take to manipulate. Plus, I won't have this option the second time around, which would mean taking damage from just about everyone of Sabrina's and Blaine's pokémon. Not only would this be slow to do, it would postpone the completion of the run by a few years. Then I had a great idea; recoil. The results speak for themselves, I think. I plan to progress unassisted, without using Take Down, to see how many hit points I have remaining when I get called back to the Safari Zone. I'll then try to plan which pokémonto use Take Down against (against a certain target, with a certain amount of HP, the recoil is invariable (25%)). Hopefully, I will find a combination which puts me at exactly one HP. If this is not the case, and I find that having more HP would be advantageous, I will be going back to roll a Mew with more HP. As I said, Weezing could have done more damage so this shouldn't be a problem. Hopefully this won't be necessary, but more likely than not, it will.
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
There seems that this thread has had quite a bit of activity in the past week or so. To address some of the questions that have been raised:
TheRandomPie_IV wrote:
Watching your WIP again I'm not convinced Gyarados is good at all, I suspect that, if you not going to use Mew straight away, a level 100 Gengar/Nidoqueen would probaly outperform a L7 Gyarados even though you'd still have to get Mew. Gyarados has five two hit battles, tons of level up music and has to take Bubblebeam insted of mew. That said I believe just using Mew straight up would probably be better still.
I was wrong about the reason why the Snorlax skip failed, as can be seen in the current WIP. However, to address this question, I can guarantee that using Mew straight away is the slowest option listed; by my analysis, at least 6000 frames slower. Note that at this point, Gyarados has already leveled up 10 (out of 15 total) times. Also, Gyarados only has four 2HKOs, both of Misty's, Rival's starter at Nugget Bridge, Rival's starter in SS. Anne. Glitching Gengar instead of Gyarados might actually be a viable option, though. Night Shade (100 points of damage at L100) would work quite nicely, but it has low PP. This would mean having to fall back on Lick, which has a slow animation (55 frames slower than every time it's used). Gengar also cannot learn Bubblebeam or Water Gun, and the only other available TM at this point is Mega Punch, which also has a slow animation.
SpeedRun Lover wrote:
Wait, what if you didn't have to Mew Glitch? Are there enough mandatory battles that if you were to entirely use Charmander, it would be able to reach a high enough level in which it would be able to 2 hit KO Misty's Pokémon?
If you're going to go all out with the main starter, now that Surf can be skipped entirely, Charmander might actually be a better choice than Squirtle. However, nowhere near as fast as switching to Gyarados and/or Mew.
SpeedRun Lover wrote:
How does the guard not ask about the Earth badge? I don't get it...
The exit to Victory Road happens to be at the Y-coordinate as the Guard who checks for Earthbadge. Thus, it was programmed so that it only checks on the left half of the map, which is rather convenient, to say the least.
Thomaz wrote:
I could have escape rope'd out of the building where I get the Bike Voucher but I counted that Teleporting when leaving SS Anne was faster.
Odd. I measured approximately 2.8 seconds faster to use Escape Rope back to Cerulean than to use Teleport. Unless you mean Pokémon Yellow, where this is not possible, and would result in having to Escape Rope from Diglett's Cave, as FractalFusion did in his run.
SpeedRun Lover wrote:
... 5. Tentacool for Cut and Surf (level 5 with Super Rod) ...
...except that Surf is no longer required.
SpeedRun Lover wrote:
Now that the Super Rod is obtainable, and with only Cut and Surf remaining (and finding a Pokémon who can learn both Cut and Surf other than Mew was tricky), I found the only 2 Pokémon other than Mew capable of doing this task are Krabby (who would have to be level 15) and Tentacool who works much better at level 5.
Once again with the Surf. Also, you seem to be neglecting that you need to go to Celedon. How do you intend to Fly without the HM?
SpeedRun Lover wrote:
Here is some things to consider though. 1. The Charmander line takes more experience to level up than Gyarados
This is incorrect. The Charmander line has a 'parabolic' experience curve, which is the fastest experience curve up to around L50, at which point the 'fast' experience curve overtakes it. Gyarados has the slowest experience curve possible.
SpeedRun Lover wrote:
2. And with more experience needed, less level up music will play saving almost 2 1/2 seconds for every level Charizard stalls behind Gyarados
Your own logic works against you.
SpeedRun Lover wrote:
3. Gyarados may be faster early, but requires more Ethers. Hydro Pump is 5 PP and Dragon Rage is 10 while Mega Punch is 20 and Ember is 25 (too bad Ember's weak except on grass and bug) With that, any Ethers found might be able to be saved 'till later
Gyarados requires zero ethers, not a single one. Note that in the published run, after healing in Cerulean, which was only necessary as a point to Escape Rope back to, Gyarados does not heal a single time until Indigo Plateau. Also, Mega Punch is a terrible move choice, because it takes an extra 55 frames to use, as I've stated dozens of times.
SpeedRun Lover wrote:
4. Without Fissure, Charizard could learn Submission for Lorelei while Gyarados still has Thunderbolt
Submission has recoil. After using it about 5 times, your Charizard will be dead.
SpeedRun Lover wrote:
5. With WTW, strength now becomes obsolete
As does Surf.
SpeedRun Lover wrote:
6. While Gyarados was fast, it starts at level 7 while Charmander had just enough experience to evolve into Charmeleon, and Charmeleon roughly at the same point has slightly larger stats than Gyarados (though Gyarados is able to play catch up quickly)
By the end of Nugget Bridge, he's already ahead.
SpeedRun Lover wrote:
7. While Charmeleon would not be able to fight off against Misty's Gym right away, not too much time is lost regardless.
Agreed. You can put that off until after you've visited Bill without wasting any time.
SpeedRun Lover wrote:
8. Experience Underflow is really a very debatable tactic.
And walking through walls isn't? Watch the WIP. It should answer any remaining questions you have
TheRandomPie_IV wrote:
That was awsome. I'd never have come up with that TM choice.
It'll save time in the Elite Four too. When your health bar is red, battle crys and battle animations are surpressed. The only thing that worries me a little bit are the Onixes. Being part Ground, the are immune to Thunderbolt, and being part Rock, the have a type advantage to Take Down. My hope is that a critical hit will still be sufficient, despite halved effectiveness.
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
Updated WIP, with progress to (but not through) Saffron Gym. Upon entering Cinnibar (which should be a relatively valid comparison point), I was 51,553 frames (14m 19.22s) ahead of the published run. I chose to stop here, because I still need figure out battles and such. I don't have a lot of time to type up a description at the moment, so for the time being, I'm just going to let the run speak for itself. I'll try to answer most of the questions when I have time.
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
In general, the run was very good. The death glitch was a good addition, and sped the run along nicely. One thing that wondered me though, was the vast amount of "friendly fire". Surely if one of your characters is stunned, or on the ground, they're not doing anything, and therefore not dealing any damage? Also, the concept for the ending is excellent, it just took way too long. If I counted correctly, he only needs to hit himself six times? And that takes three minutes? That's an average of once every 30 seconds, which is ridiculous. I guarantee you that nobody is going be entertained, nor enjoy watching that. I would like to see the ending manipulated in such a way, that he hits himself six times in a row, with very little in between. That, I would vote yes for. For this, I vote no.
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
While performing the WTW glitch, you can only have one pokémon in your party. After the glitch is activated, you can't enter a building, such as a Poké Center, to withdraw a flyer. This implies that the main battler needs to be able to use Fly, which is what made Mew so appealing.
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
TheRandomPie_IV wrote:
I'm again thinking that Cinibar coast might be better.
I had also thought about this. Unless I've missed something, the two options for a Cinnibar flyer are Pidgeot, and Aerodactyl, the latter being clearly a better choice. This would of course mean redoing the entirety of the run. However, I'm not convinced that this would actually be faster. I plan to continue with the run I have, glitching a Mew in Cerulean, and just schlepping him along for a while. Afterwards, I will try another run with the Cinnibar tactic, and submit whichever is faster. The reason for this, is that the rest of this run should be fairly enjoyable to make, and I think completing it will help me plan future runs better, as well as uncover any other flaws the route might have.
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 got some bad news. Although I have a new WIP, I'm going to need to redo quite a bit of it. The reason is that the planned route has a major flaw. If, while performing the Snorlax skip, you have a random encounter (such as the planned encounter to see a pokémon with a special of 21), it deactivates the glitch. I was aware that a trainer battle did this, which is why I fought the unavoidable Gambler beforehand, but I never thought to test random encounters. A rather disappointing result, considering how long it took me to manipulate that Meowth encounter, but I suppose that's the consequence of unthorough testing. So we need a new plan. Fortunately, I don't think I'll need to redo too much. I'm still convinced that using Gyarados for the first half is still the way to go, and Mew for the second. The best course of action I think of is to catch the Abra in the patch of grass west of Nugget Bridge, and then use the Youngster with the Slowpoke on the way to Bill's. This would mean doing this glitch a total of four times throughout the run, but I still think it would be faster than using Charmander across the bridge, and taking over with Mew from there. Of course, I could be wrong. If I find that my Mew run was in fact faster entering Vermillion, I'll probably go back and do that again.
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
Vatchern wrote:
I can compare my hatred for Hacks, in a sunglasses manner. People who buy Oakleys. They like them, they are real. And I can garentee they dislike the "fake" oakleys you can buy for $15.
People who spending their time caring about such things are foolish and trivial.
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
adelikat wrote:
klmz wrote:
It seems that I misunderstood what "shortcut" meant and made this run. Too bad. Maybe a speedrun for the (U) version next time.
Yes, it is generally agreed that title screen, screen transitions, and anything that doesn't constitute as "actual gameplay" don't count. Perhaps the rules could be clarified. EDIT: Is the ONLY difference between U and J the screen transition?
It's clear that this was a conspiracy to give Japanese speedrunners a 10 seconds advantage.
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
Understand that the judges can't possibly be familiar with every game in existance. This is particularly true when dealing with the differences between PAL and NTSC versions of a game. The fact that you had initially made no reference to the differences or even to the publication you were trying to obsolete didn't help matters either. I think this could have avoided a lot of the confusion. Also, it is not a given that PAL versions run faster than NTSC versions, many are adjusted, but many are not. With absolutely no information to work with, it was judged solely by frame count, and was found to be slower. Truncated should not have had to do the research he did; upon submitting a movie, the author should be well-informed and be able to state clearly why their submission is an improvement to an existing movie. Anyway, it seems that everything has been cleared up. I'll leave some comments about the actual submission after I have time to review both.
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
moozooh wrote:
klmz wrote:
Just open the Blue Shadow ROM with FCEU 0.98.16 and load the published movie, then look at the "Length: 00:11:15". Isn't it longer than 00:09:48?
It's longer just because it plays slower. If you discard the difference in playback speed, it's 9:22.
I think that's exactly the point here. One should not and cannot disregard the difference in playback speed. The current movie is PAL (E) and was recorded in NTSC (J U). Had it been recorded in PAL mode, as it should have been, it would have had a length of 11:15.
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
adelikat, in xipo's movie description wrote:
This movie uses an European rom but runs it at 60fps. This is unacceptable. But the previous movies were done & published this way too so it is unfair to the author to reject. I am accepting this run. But any future run that is done in this manner (including future Blue shadow submissions) way will be rejected. If using an E rom, it should run in PAL mode.
Had this run also been recorded in this manner, it would have a finishing time of 8:10.27, which clearly beats the existing movie.
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
Nitrodon wrote:
At the risk of boring everyone else reading this thread, the carry flag can be set or clear when that routine is called. This happens in the previous routine called, and the result depends on CFCB. If CFCB is anything other than 0 or 1 (usually 0xFF), the carry flag will be set, and the sum of FFD3 and FFD4 has a chance to increase. If CFCB is 1, the carry flag will be clear, and the sum of FFD3 and FFD4 has a chance to decrease. I haven't looked at the case when CFCB is 0, but it only lasts 1 frame anyway.
I can confirm this. During battles, the sum of FFD3 and FFD4 (I'm just going to call it the D-sum from now on, kk?) seems to steadily increase, and outside battles it steadily decreases. I was in fact able to increase the D-sum enough to catch an Abra on the first step by manipulating the dialogue presses of the last two battles on Nugget Bridge. I'm currently in Vermillion Gym, attempting to manipulate a 1/256 miss. As soon as I manage this, I'll post another WIP. Upon entering Vermillion, I was 2098 frames (34.97s) ahead of the currently published run. Once again though, I'm having no luck. I've already spent over 1800 re-records without success. Before I waste any more time, I'd like to understand this as well. I have a very strong suspicion that critical hits and battle damage are also dependent upon FFD3 and FFD4. It's likely that one determines a critical hit, and the other miss/damage. I believe this for the following reasons: If you observe these two values at a specific frame count, pressing the last button press on a different frame changes these values entirely. However, holding the button press longer has a very minor effect; the values are typically the same, although each may be as much as 4 higher or lower. This is consistent with previous findings, that pressing a button at a different time changes things completely, and that holding a button press longer will usually preserve a critical hit, but can affect damage and whether it misses. I wouldn't be surprised if these two values were responsible for every aspect of radomality in this game. My assumption is that if FFD4 (or perhaps FFD3) is zero, this will generate a 1/256 miss. Logically, this means that if the original roll was ouside the range of FC and 04, then holding the button press longer has basically no change to produce a miss. However, FFD3 and FFD4 change several times per frame, so there's really no way of knowing what the original roll was. My hope is that perhaps this value is temporarilly stored in a different location where it could be observed. I haven't had any luck finding this though. Nitrodon, perhaps you could give it a look as well? EDIT: Also, while calculating damage, the value seems to be temporarily stored in FF95 and FF96, if this helps your search any. EDIT2: How damage is calculated in this game is crazy, but it does depend upon FFD3. Basically it works like this. Load FFD3. rrca. If a > D9 (217), move on, otherwise update both FFD3 and FFD4, and try again. At the end we have a value greater than or equal to 217. So far so good. Unfortunately, this value is stored only temporarily in FF99, and is immediately destroyed by the algorithm that calculates the damage. I was also unable to locate the critical hit and miss conditions, but it's likely that they don't leave any residue either. It seems that I have no choice but to brute force in this case. EDIT3: Updated WIP, with progress through Vermillion Gym. I picked up another 4 seconds in Vermillion, and am now 2338 frames (38.97s) ahead. Now for the fun part :)
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
Ok, I think I've got this figured out. FF04 is not a static variable, but rather increases steadily at a rate much faster than once per frame. If between the calls to load this value, it happens to increase, then the sum of FFD3 and FFD4 decreases by one. On average, this seems to happen about once every 1.37 frames. This can be luck manipulated, however. It seems that everything else that has an effect on randomality (when a button is pressed, how long it is held, etc), can have an effect on the sum, probably because it moves the time when this procedure is called by a few clock cycles. I'm not yet certain to what extent this can be manipulated, but I've measured a difference of 9 after as little as 150 frames after a button press. In my current progress, this sum is C7 when I get to the patch of grass. I'd need it to be at least D7 though, and preferribly closer to E4. I'm going to redo nugget bridge another time to see if I can accomplish this.
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
You're right. I've picked apart the code a bit more, and I've come to a few conclusions. If FFD3 is less than or equal to D887, you will have a random encounter. This suggests the gamesharks codes 010087D8 to never have random encounters, and 01FF87D8 to always have random encounters. Useful for testing purposes. When the code I posted above is active, the current ROM page is always 04, which happens to have a nice table located at 7918:
32 00 65 02 8C 04 A5 06 BE 08 D7 0A E4 0C F1 0E FC 10 FF 12
If FFD4 is between 0 and 50, you will encounter the first pokémon in the table, between 51 and 101, the second, etc. Something I've also noticed is that pressing A on the frame when movement input is accepted has a noticeable effect on both FFD3 and FFD4. This must have been what I accidently did while experimenting earlier. Unfortunately, this seems to slow you down by two frames, but if it allows one to manipulate encounters, it's a fair trade-off.
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
So. I'm currently trying to manipulate an Abra encounter, and as could be expected, not having any luck whatsoever. Basically, which pokémon you see on what step is for the most part set in stone. Back when I was doing my original Mew run, I did a rather thorough analysis, and found that the only option I had was to go back and save time. In this run, I've already redone Nugget Bridge three times, saving a total of 14 frames, but it wassn't enough. On a happy note, Nugget Bridge is within 3 frames of optimal though. I was doing some experimentation to see if there was another way to manipulate this, and once I managed to shift the rotation by a significant margin. If I had been thinking clearly, I would have saved it immediately so that I could analyse what I had done, but I overwrote it because I thought I could reproduce it. I wasn't able to. I was testing the effects of holding down A while walking to the grassy area, but apparently, I must have done something else that I didn't realize. I decided to disassemble the ROM to see if I could find any clues. This is what I found:
...
78CA:F0 D4     ld   a,(FFD4)     ; FFD4 stores the number of valid pokémon for the area, times 2 minus 1
78CC:47        ld   b,a
78CD:21 18 79  ld   hl,7918
78D0:2A        ld   a,(hl)       ; load a with whatever happens to be in 7918
                                 ; NOTE! 7918 is a ROM address, not far from the code currently executing!
78D1:B8        cp   b
78D2:30 03     jr   nc,78D7      ; if a <= b, move on. if not, increment hl and try again
78D4:23        inc  hl
78D5:18 F9     jr   78D0
78D7:4E        ld   c,(hl)       ; load c with whatever hl points to (7918 + #iterations), now a value <= b
78D8:21 88 D8  ld   hl,D888      ; D888 is the current pokémon map; levels and types valid for the area
78DB:F1 5C C4  ld   a,(C45C)
78DE:FF 14     cp   14
78E0:20 03     jr   nz,78E5      ; if (C45C) == 20, use an alternate pokémon map at D845 (water?)
78E2:21 A5 D8  ld   hl,D8A5
78E5:06 00     ld   b,00
78E7:09        add  hl,bc        ; add c to hl, and use that to extract the pokémon level and type
78E8:2A        ldi  a,(hl)
78E9:EA 27 D1  ld   (D127),a     ; set pokémon level
78EC:7E        ld   a,(hl)
78ED:EA 91 CF  ld   (CF91),a     ; set pokémon type for graphics
78F0:EA D8 CF  ld   (CFD8),a     ; set pokémon type for everything else
...
So all we need to do is figure out a way to manipulate 7918, and we're set... which makes absolutely no sense, because 7918 is a ROM address and shouldn't change, right? If you want a real brainfuck, monitor this area of the ROM while walking through a grassy area. Not only does it change, but this whole region changes a lot, and frequently. It'd be nice if a way to manipulate this could be found. Feel free to experiment, or rather, please do. Here's a WIP with saves states that you can use, with progress through Nugget Bridge, now 1082 frames (18.0s) ahead of the currently publish 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
TheRandomPie_IV wrote:
Can you do the Mansion after Sabrina then initiate the second 500 steps then pick up TM whatever and do Blaine?
This is quite a bit better than the two suggestions I proposed. I would have to walk out of Cinnibar Gym, but from step count, that shouldn't be a problem. I would probably do Blaine first, and then pick up the Psychic TM, considering there aren't any ledges in Cinnibar though. This also means that I have too many Escape Ropes. Fortunately, Route 3 and Mt. Moon are relatively painless. I'll take this opportunity to see if I can shave off a few frames.
TheRandomPie_IV wrote:
You might want to check using dig in place of the escape rope, though that might be a bit hopeful.
Also not a bad suggestion. I'll be testing this tonight. EDIT: Confirmed. Using either Escape Rope or Dig cancels the Safari Zone glitch, so I indeed have one too many Escape Ropes. If I didn't need to access the item menu after using the last one, I wouldn't worry about it, and just continue on from where I am, but I do, to teach Mew her last TM. New course of action will be exactly as TheRandomPie_IV suggested, to do the Mansion directly after Sabrina, and to activate the second WTW glitch after that. EDIT2: Actually, I'm going to continue from the old run. I got very unlucky on the random encounters in Mt. Moon, and I'm already 15 frames behind myself at the Gyarados roll. Buying an item you don't use may look sloppy, but not having it would have only saved 10 frames in total.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
1 2 3 4
13 14