Posts for mkdasher

1 2
5 6 7 8 9 10
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Osmi wrote:
Unfortunately I'm too late to point this out before the run was published, but I noticed a place where a tiny bit of time could be saved by better movement. It's the room at the top of the tower in Lavender Town, with all the Rocket Grunts. Since the grunts walk off the bottom of the screen when you win against them, it's faster to go up the middle and eat some [!]s than to talk to each one, as both you and the grunts have to walk fewer tiles. I haven't actually measured it to make sure, but here's a comparison. The TAS: http://www.youtube.com/watch?v=d4p-YN1FXEo&t=1h04m08s Speedrun that goes up the middle: http://www.youtube.com/watch?v=XuFfLtX4rWA&t=1h16m04s
I'm afraid you're right, what you say saves around 1, 1.5 seconds.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
ais523 wrote:
I believe each area has its own encounter rate. I'm not linking to databases of it for the same reason we don't link to ROMs, but you should be able to find dumps of it if you look around.
yeah I found those encounter rates. But still I can't determine what is the exact formula for wild encounters (rate- depending). I know how it is approximately, and I know some RNG values which always would work, and some of them which would never work, but there are still some of them I'm not sure how they work. For grass for example, it's as if RNG mod 1600 is lower than 336, then you get wild encounter, if it's higher than 343, you don't, but if it's between 336 and 343, you could get them or not.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
I don't understand what is going on, but I liked the run, so voting yes.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
jlun2 wrote:
Oh, and btw, in 18:49 of MKDasher's encode, "TM case" is misspelled as "MT case". :P
lol, sorry, that was me mixing spanish and english ("TM case" in english, "tubo MT" in spanish)
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
ALAKTORN wrote:
Mastania wrote:
Woo, finally gen 3.5 is done. I did notice one thing: Near the end, it would be possible to 2-hit Lorelei's Cloyster with Surf,
Dasher said Cloyster’d use Hail which loses a lot of time
Exactly. Cloyster always uses Hail as first attack. If not, the fastest strategy would have been 2 Mega Kicks (better than 2 Surfs because of not getting the "Not effective" message)
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
FractalFusion wrote:
If top half of RNG 2 mod 1600 is less than 344, you get an encounter.
It's just a small difference but, I'm pretty sure RNG 2 mod 1600 has to be less than 343, not 344. (Found a value which mod 1600 was 343, and didnt get an encounter, then I found one with 342, and I did). Actually, In cave / water it's different. I had an estimation done, but didn't exactly calculate the formula. I'll probably do this soon. Also, in MT Moon, depending, if you're on B2, wild encounter rate is even lower. Anyway, I made a modified version of FractalFusion's RNG viewer that has some extra functionalities that helped me a lot during the TAS. I hope he doesn't mind if I release this: http://www.mediafire.com/download/k0948frvuv13wka/pokemon3rdgenscript_RNG.lua Right now it only tells you when your next encounter will be if you're on the grass (I'll try to include caves, water later). Edit: this is weird, I have been finding some RNG values that sometimes give you a wild encounter, and sometimes they don't. I can't really understand how the game determines wild encounters. Seems like for grass, if RNG mod 1600 is really low, its always a wild encounter, if it's really high, then it never is a wild encounter, but if it's around 340-350, a wild encounter can happen or not.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Stevmay09 wrote:
Well that's pretty good. It would be good to use a different version for the other run. Would this run have been slower with leaf green?
As far as I know there wouldn't have been any difference.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Stevmay09 wrote:
This TAS is really cool! Have you considered doing the E4 run?
Yeah I think I will in the future. I think that category should be done of Leaf Green by the way, because Sandshrew and Vulpix don't have Intimidate ability (unlike Ekans and Growlithe, that would be the Pokemon you would catch on Fire Red). Intimidate ability makes a battle slower due to the animation. Edit: well, both Ekans and Growlithe have 2 different abilites, so I could just encounter an Ekans /Growlithe that doesnt have intimidate ability. Still, it would be better to use Leaf Green just to have a TAS of this version too.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
jlun2 wrote:
mkdasher wrote:
Yes, that would be a separate category I think, because you need to catch 60 Pokémon during the run, so I guess it's different enough. I'll probably try to do that one in the future.
Would LeafGreen be used?
I compared both versions. There didn't seem to be any difference for any% run (Elite Four pokemon natures and stats were the same also). For "2nd round" TAS I think Leaf Green should be used, this way we could have a TAS of both versions.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
jlun2 wrote:
I haven't played Firered in a while, but I remember the E4 being much more difficult after exploring the sevii islands and unlocking the ability to trade with Ruby/Sapphire/Emerald. Would you ever make a run that does the post game content and defeat the upgraded E4?
Yes, that would be a separate category I think, because you need to catch 60 Pokémon during the run, so I guess it's different enough. I'll probably try to do that one in the future.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Patashu wrote:
I have a question, when a repel is active and you step in grass, is the 'will I get an encounter RNG' advanced or not?
Yes it does advance. It's actually the only possible way to make de RNG advance and avoid the encounter, meaning that Repels are needed. That let me do it small manipulations after, like encountering Abra on first grass step. By the way, I'll try to have an encode ready for tomorrow. (Encode with some anotations).
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Masterjun wrote:
mkdasher wrote:
- Getting an encounter on first grass step: I'm unsure about this. I know RNG mod 100 < 5 works for like the 5th step, but it's something lower for first step.
Masterjun wrote:
The game uses the upper 16 bits of the normal RNG, modulo 100 and gives an encounter when under 60.
You are talking about a different thing though. You get a RNG advance when modulo 100 is under 60 when you do a non-grass to grass step. But when you enter on a new area, you get that extra 6 steps you can do without advancing the RNG. Except for a few exceptions, which is the modulo 100 under 5 I'm talking about. Gonna add that to the post though. Thanks for reminding.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
ais523 wrote:
"Miss attack: RNG mod 100 >= miss attack probability (if probablility is 70%, RNG mod 100 has to be 70 or higher for that attack to miss)." Are you sure? That would mean that a 0% miss move would miss if the RNG rolled a value that's divisible by 100. I suspect you probably mean > rather than >=, but don't know for certain. EDIT: Oh, you mean that it misses if RNG mod 100 is greater than or equal to the hit probability. That makes more sense.
Yeah exactly. Actually Side effect and attack probability is calculated the same way, but since I usually want to manipulate a miss, and a side effect to happen, I wrote it that way.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
I'll now write how RNG determines stuff I found useful during this run (FractalFusion found many of this, if not all of them, but I think I'll just write it down here). - Critical hit: RNG mod 16 = 0. - Damage Range (%): 100 - RNG mod 16 (variates from 85% to 100%) - Miss attack: RNG mod 100 >= miss attack probability (if probablility is 70%, RNG mod 100 has to be 70 or higher for that attack to miss). - Paralysis (unable to move): RNG mod 4 = 0 - Avoiding encounter on first grass step: RNG mod 100 >= 60 (Found by Masterjun). - Side effect: RNG mod 100 < side effect probability. - Quick Claw: RNG < 13107 Since FractalFusion's script was already good enough, what I did was extending it to have all of these functions. I'm now done with the run. Working on submission. I also want to render a video (commented) before I submit it.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
I'm actually testing that right now. There are very few Escape Ropes in the game, and not sure if I can get any of them fast enough. When I'm done testing I'll tell what it ended up being the fastest. Edit: Okay so these are the Escape Ropes that you can find on the floor on this game: Route 11 (not going to that route in the run). Mt. Moon (escape rope is far) Rock Tunnel (not getting there) Pokemon Tower (escape rope is far) Rocket Hideout (escape rope is not close enough) Silph Co (escape rope is far) Pokemon Mansion (escape rope is far). The closest escape rope would be in Rocket Hideour, taking around 580 frames. Since it takes 271 frames to teach dig (+ around 100-150 as much to use it comparing to escape rope), teaching Dig is still faster. By the way, I'm on Celadon City again, probably one of the hardest parts of the run. (Giovanni's Kangaskhan is hard and Erika's gym). I'd say the hardest parts of the run are from Route 3 to Gary on Cerulean City, Celadon + Pokemon Tower, and probably Lorelei.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Stevmay09 wrote:
How much slower is using dig instead of an escape rope, and why?
I cant exactly say how much since it also depends how much does it take you to choose escape rope in your bag, but I can say it saves around 90-100 frames in the worst case. When chosing dig the game asks you if you wanna escape, then you get the pokemon animation. With escape rope you only get the "I used escape rope" message. Since buying 3 escape ropes takes less than 200 frames, its faster
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
I have been testing the differences between using Dig and Escape Rope. Escape Rope is faster, but you don't have enough money to buy enough Escape Ropes in Pewter City (I need 4). Selling items, or anything to save money there would be slower, and getting Escape Ropes in other market would be as well, so Dig is neccesary. However, it's still faster to buy 3 Escape Ropes, and teach Rattata Dig and use it just once, so that's what I'll do in the final run.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Okay so I'll try to explain more or less how to luck manipulate the wild encounter seed. (Or at least how I do it). I don't know how the seed is exactly generated, but I know how to get different seeds: The seed you can get is between 00000000 and 0000FFFF, so there's 65536 possible seeds you can get. As I said, only one of them works the best for the any% run (more seeds may work fine for "2 round" strat since you need to capture more Pokemon). I made an estimation with a program of the results the seeds would give me (it's not 100% accurate, but it's accurate enough): Number of wild encounters until Pewter City (assuming you take the lowest possible number of grass steps): 2 encounters: 23 seeds 3: 339 seeds 4: 2461 seeds 5: 9150 seeds 6: 19871 seeds 7: 21941 seeds 8: 10348 seeds 9: 1382 seeds 10: 20 seeds Only 1 of those 23 seeds with 2 encounters works for this run, since I need to get the 2 encounters on Route 1 the second time I go through it. Getting 2nd encounter in Viridian Forest or getting an encounter before getting Oak's Parcel would not work. Also, there are 3472 seeds that will give you no encounters until Viridian City. I'll quote what FractalFusion said about it:
FractalFusion wrote:
RNG 2 is seeded in a strange way. This occurs right after the Charizard screen clears in the intro. First, RNG 1 is seeded with the 16-bit entropy address 0x4000104. Then RNG 1 is advanced twice. Then the top half of RNG 1 is used to seed RNG 2, which is thereafter used in the game.
Exactly, that 0x4000104 starts doing cycles right after skipping the intro, and then the seed is generated when Charizard screen clears in the intro. So the 2 important things will be when you skip the intro, and when you press Start or A to clear Charizard's screen. Any other button you press may change the seed a very little bit, but not much. So let's say you skip the intro at a certain frame, and then press A on Charizard's screen at another frame, and you get a seed of 00001234. If you do the same thing, but pressing random buttons while Charizad's screen is fading (for example), maybe you can get something like 00001236, but not very different. The only exception is that you can get a different seed if you press L before skipping the intro (this way help menu doesnt appear, but you get the help menu sound). You don't have may options to luck manipulate this way though, since pressing L twice may also get you a different seed, but pressing three times may be the same seed as if you pressed L twice. I run a lua script to try to get the good seed as fast as possible. However, lua makes savestates to desync, so I had to try every seed that was close to the one I was looking for, so this method probably didn't get me the optimal way to get it (because of desyncs), but I couldn't think of anything better. Having said that, I run a new lua script yesterday, improved, and found the seed much faster. I only had to wait 8 frames, so I'm quite happy about the result. (On my previous attempt I had to wait 222 frames). So now I'll have to restart the TAS again! And I have a good run to compare with.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Thanks for the comments! I have advanced a lot on the TAS already, I'm on Celadon City and I pretty much know the strat I'm going to use until the end of the run. And now I can say that fast text is definitely faster. It was a bit closer at the beginning because luck manipulation is harder at the beginning of the run. But now it's clearly faster. Also I managed to encounter Abra on the first grass step.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Stevmay09 wrote:
Wow! I didn't know it would actually be possible to only get two encounters! even though you have to wait at the intro for ~200 frames is it still a lot faster or just a little bit faster?
An encounter is about 600 frames, so it's still faster. So I should be saving around 1000 frames comparing to my test run, which is about 16.6 secs. It's not an enourmous cut, but it's still a good cut. Edit: Saved 1330 frames. FAST text is going to be faster definitely. The only problem is that luck manipulation is going to look a bit worse. But it's faster, I can do a comparison video later. Edit: 1409 frames saved until Pewter City Mart (after Brock's battle). Here's the file: http://dehacked.2y.net/microstorage.php/info/1161358345/PokemonFireRed%20-%20Brock.vbm Used the help menu 3 times already. It's pretty useful when neccesary. Also you can see by comparing runs that fast text is better. Comparison vid: Link to video
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Masterjun wrote:
Just looked into the code and wanted to say what I found is that if you walk from not-grass to grass, it is always (I think) possible to avoid an encounter. The game uses the upper 16 bits of the normal RNG, modulo 100 and gives an encounter when under 60. And since normal RNG advances once every frame (and 2 times when it checks for an encounter, and like 87 times when it calculates a wild pokemon) it is possible to manipulate. The second step however (and probably every other) is different. I might look into that soon...
Thanks, I knew you could do that, but I didn't know exactly why that was happening. Didn't care too much anyway because it's pretty easy to avoid a RNG advance when going from non-grass to grass. And what you say about "87 times", thats random I think, I mean, there might be a formula, but it's not 87 all the time, it can around 10 times, or even > 100.
ALAKTORN wrote:
that sounds like you could advance the RNG by going back and forth into the grass, until it’s a value that gives 0 encounters? or am I wrong? would be awesome
No, what he meant is that it's possible to delay the next encounter for one step, not that it's possible to avoid the encounter. You can avoid a RNG advance on the first step into the grass, so that means you still would get the encounter on the next step (if you were about to get an encounter). And finally, some GOOD news, I found the good seed already, so I guess I can now restart the TAS finally. It was on my last attempt at searching with lua savestating (since it desyncs). Savestate was done on the very first frame because I noticed that desyncs would be smaller if done like that. Then I searched for seeds that would be close to the one I was looking for, and then testing them all by inserting the inputs manually. Luckily, one of those was the correct one. I had to wait for about 200 frames during the intro. I guess not skipping the intro as fast as possible (or fast enough) makes the intro look a bit worse, but well, this is the best thing I've got, and it's better than what I'd have thought I could get.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
FractalFusion wrote:
mkdasher, I suppose you were planning to do the any% as well? I was planning to do it at one point but I've been delaying so much, so you can do the any% if you like.
Yeah, actually that is what I have planning to do in about the last 2 months. However the wild encounter manipulation is stopping me at the moment. Probably if I found a seed that gave me 3 encounters I'd be trying it as well.
FractalFusion wrote:
If you ever need to manipulate things like max critical hit in battle, you can abuse the help screen (L or R). You can even use it to split the critical determination from the max damage determination if you call the help screen right between them..
Didn't think about that. Then, I'm now thinking that Fast Text should be faster than Mid Text. On Fire Red, Mid Text is 1 frame slower than Fast text if scrolled as fast as possible. I just checked that opening / closing help menu as fast as possible takes 18 frames. I dont think it'd be neccesary to use the help menu too many times, but still useful for critical max, or critical + side effects.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Zowayix wrote:
Didn't you mention that if you couldn't pull off 2 encounters, you'd try for 3? I might have misinterpreted something, but I think you said that the 2-encounter seed was the 1/65536 brute force search. A 3-encounter seed might be easier to find, so you won't have to resort to 4 encounters.
Actually I don't think I'll try redoing the run for now, I would really want to get that 2 encounters, but there's no way I can do it myself at the moment. Getting 3 encounters is quite hard as well. Easier than finding the other one, but still would take a while to find it manually (I can't search it with another way). I guess that doing a 2nd round TAS would avoid this problem, so I could try doing this category. In fact I've started trying to manipulate wild encounters, and some route ideas. I was trying to figure out how the game determines if a pokemon is holding an item, since maybe it'd be a good idea to catch a Chansey that has a lucky egg. The item holded is determined when the screen is fully black, after the pokemon has been determined. There's a frame that has 6 RNG cycles, the RNG of that frame determines the item (if RNG mod 100 is between 44 and 94, you get the 50% chance item, and if RNG mod 100 >= 95, you get the rare item). Now the problem is, before that, there's a frame that has a high random of RNG cycles (the frame where the pokemon is determined), so at the moment I can't really know if a pokemon is holding an item until the screen is black. Not sure if the number of RNG cycles can be determined as well.
Experienced Forum User, Published Author, Experienced player (648)
Joined: 5/16/2009
Posts: 235
Okay, I think I'm not getting anywhere, so I will probably redo the run by using the same seed I used for the test run (4 wild encounters). Trying to figure out how the seed is generated is very complex for me. Also, because of lua savestating not working, I can't really do any kind of test, and it's impossible that I can find a 1/65536 RNG manually. If someone knows any other way to do it I'd gladly listen to it.
1 2
5 6 7 8 9 10