1 2
6 7 8 9 10 11
Experienced player (647)
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.
Masterjun
He/Him
Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
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...
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
ALAKTORN
He/Him
Player (99)
Joined: 10/19/2009
Posts: 2527
Location: Italy
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
Experienced player (647)
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.
Active player (416)
Joined: 3/30/2012
Posts: 405
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?
Experienced player (647)
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
Active player (416)
Joined: 3/30/2012
Posts: 405
It's really cool how you cut down the number of encounters to only 2 on the way to Pewter city. I can't wait to watch the full run!
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Looks good, mkdasher. The any% all yours then. (Unless someone else wants to join in.)
Experienced player (647)
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.
Joined: 12/29/2007
Posts: 489
Great job, keep it up!
Noxxa
They/Them
Moderator, Expert player (4140)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Nice. I'm eagerly waiting to see the full run done.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Active player (434)
Joined: 2/5/2012
Posts: 1693
Location: Brasil
Take your time and good luck!
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Experienced player (647)
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 player (647)
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.
Active player (416)
Joined: 3/30/2012
Posts: 405
How much slower is using dig instead of an escape rope, and why?
Joined: 2/28/2012
Posts: 159
Location: Philadelphia
The animation on moves such as Dig used outside of battle is like 10 excruciating seconds long.
Experienced player (647)
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
N._Harmonik
She/Her
Joined: 8/27/2006
Posts: 502
Location: Canada
What about finding Escape Ropes on the ground?
Why, oh, why do I even <i>try</i> to understand my own species?
Experienced player (647)
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 player (647)
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.
Editor, Player (44)
Joined: 7/11/2010
Posts: 1022
"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.
Experienced player (647)
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.
Masterjun
He/Him
Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
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.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Experienced player (647)
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.
Active player (416)
Joined: 3/30/2012
Posts: 405
1 2
6 7 8 9 10 11