Manipulating a 1 in 46,000 Chance - When Luck Just Isn't Enough

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Really cool video. A bit long winded, but ultimately a cool process for understanding what went into this improvement

👍︎︎ 10 👤︎︎ u/gsomega 📅︎︎ Jun 24 2019 🗫︎ replies
Captions
hey everyone before the video starts I'd like to mention that I will be helping commentate for a Mario Kart Wii tool-assisted speedrun segment during summer games done 'quick 2019 our segment will occur on Friday June 28th at around 8:15 Eastern though this is subject to change you can view schedule changes at games done 'quick calm /schedule and be sure to tune in live at twitch.tv slash games done quick in order to watch I've made passes for Mario Kart Wii since 2012 so it's always been a huge passion of mine and I'm very grateful that I'll be able to represent the community at such a big event like this and with that out of the way on to the rest of the video well progress on the new paper mario the thousand-year door TAS has been amazing so far it's very difficult to gauge just how far ahead I am due to the significantly different routes between this TAS and the previous tasks however I'm very satisfied with the run this far I have to say around the time of this video I'm now working on chapter 3 afterwards all I have left is chapter 7 and chapter 8 again you can watch the development of this task live over on my twitch channel at twitch.tv slash TAS maleo I said progress has been great but I forgot to mention one important roadblock I faced on this task and that's manipulating mega rush badge drops from two fights in the road port sewers in this game you have a small chance at getting badges to randomly appear in fights but in this scenario I had to manipulate two mega rushes to appear at the same time which is unimaginably unlikely what if I told you that we found a way to effectively remove the perceive of luck of getting this to occur and instead we're able to guarantee that it happens I can only explain the scenario well enough by creating this video so in this video I'm going to explain the calculations behind finding the likelihood of these badge drops as well as the processes that went into successfully getting this one in 46-thousand scenario to occur by only wasting 2/10 of a second this video will completely break down what exactly RNG or random number generator is as well as what can happen when you reverse engineer the G algorithm this is what happens when luck just isn't good enough for this all to make sense let's first take a step back so I can explain the route for this tool-assisted speedrun the route as it stands is as follows prologue chapter 1 chapter 2 up until obtaining flurry advance to a post chapter 2 state to unlock the superboots room and skip the rest of the great tree go to chapter 6 and obtain the garnet star with a super jump complete the intermission perform bloom tickets skip with a super jump from the post chapter 6 email get Yoshi from chapter 3 complete chapter 7 and complete chapter 8 one of the biggest issues I face with this route is the fact that ignoring the chapter 3 fights since they don't give much experience points I am pretty much going from a chapter 2 to a chapter 7 boss fight trying to fight a boss such as Magnus von grapple 2.0 without leveling up much can be quite difficult to deal with in order to complete these boss fights significantly faster the saving grace for speedrunners is usually the mega rush badge when Mario's at 1 hp his attacks will deal 5 more damage with this badge equipped in doing so Mario can deal more damage to enemies within the same amount of time which can significantly speed up fights by reducing the number of required turns what's even more powerful is the fact that mega rushes can be stacked meaning if you acquire multiple mega rushes you can equip them all 2 mega rushes will allow Mario to deal 10 more damage than usual and 3 will allow him to deal 15 more damage than usual and so on so from this we can clearly see the benefit of obtaining multiple mega rushes for this new task we found that we will benefit the most from obtaining 3 mega rushes total now here's where things get a little complicated I could get one mega rush from charlatan but there's a small issue with that we found that we can actually save nearly half a minute by never talking to zesty in the prologue normally we walk over to her accidentally break her contact lens order one from the shop and then pick it up a few chapters later and give it to her the main reasoning for this mini quest is so that we can access West's rogue port without it we can't get to the west part of town right as it turns out we which called hazard respawn glitch to make our way westward from the sewers jumping first frame when entering a room causes the game to not properly set Mario's respawn position as such after jumping into the water the game will instead respawn you in the center of the room we can use this tactic to make our way through the warp pipe rooms even though the giant blocks are in the way normally the route would go as follows obtain flurry from chapter 2 return back to rogue port sewers go up the east sewers towards the surface perform ultra hammer early by a mega rush from Charlie 10 by zestes contact-lens from the shop and give it to her then enter west rogue port and go down the sewers to get to chapter 7 the main concern we have with this route was that after we gives st her contact lens we don't ever return to central rope port and we never re-enter west rogue port from this loading zone if we avoided her and all her cutscenes and somehow dealt with the lack of ultra hammer and mega rush badges from charlatan and the bad shop then maybe we could save some additional time what we found is that the following route is actually around half a minute faster get flurry from chapter 2 and return back to the sewers use Hazard respawn glitch to make our way westward go up to the highest west sewers level and somehow get up to the right room so we can perform teleporter room early initially we thought about going up the pipe here and then back down to reach the higher level platform then we thought about performing a double jump both of these methods were pretty close with the double jump being just a bit faster but these were still pretty lengthy though the entire process of entering and leaving a battle is around 13 seconds what we managed to find was that you could go into paper mode along this pipe to get a little bit higher up on the pipe slope and jump directly on top of the save block effectively saving around 11 seconds no way oh my god oh so then the question becomes how do we account for the lack of ultra hammer and maker Russia's regarding the ultra hammer the only reason we needed it in the first place was for Palace skip if he recall though the first-ever method of Palace skip only required goombella coops and Yoshi well as it turns out we've gone full circle because this palace skip method is now the fastest method again when taking into account of voiding zesty there are a few added strats however to make this version even faster than when I first pulled it off so I think the optimized version of this method will look really cool when it's finished also there's something really satisfying with the fact that the first version of Palace skip is somehow now the actual fastest method it's a nice trip down memory lane I suppose however there's still one issue here I didn't get the mega rushes so what's the plan now well if you've recall from my few past asses in this game I can actually make use of the game's random badge hold and drop mechanics however this time due to avoiding zesty and Central Road port as a whole I actually need to manipulate 2 mega rushes in order to reach Magnus von grapple 2.0 in chapter 7 with an optimal amount of attack power anyway in this game every enemy has a set list of items and badges that they can either hold in battle or randomly drop for both of these scenarios there are certain weights attached to each item and badge that are used to calculate the likelihood of getting them to either be held or to drop you can find every item and badges associated weight value through a post made by JD a stirrer I'll have it linked in the description below if you'd like to check it out let's first talk about holding items and badges for an enemy to hold a badge in battle you first take the items hold weight divided by 200 plus the sum of all item hold weights for example crazy daisies can only hold super mushrooms and thunderstorms to calculate the chance of a held super mushroom we take the items hold weight of 10 and divide by 200 plus 10 plus 10 or 220 this gives us 10 over 220 or a chance of 1 over 22 when an enemy holds an item or badge in battle there is then a 25% chance for that item to randomly drop after leaving the battle if an enemy is not holding the item or badge in battle you can still get a random drop to occur after the battle though the chances become slimmer for a random drop we first begin with a 25% probability to just have a chance at getting a random drop when the item or badge is not held again this doesn't guarantee anything this simply means that 25% of the time we will have an opportunity to maybe get an item drop on top of that we also have to take into account the items drop weight the formula is similar to that from the holding calculation however instead of 200 in the start of the denominator we start with 300 for a crazy Daisy if we want to find the probability of a fright mask to randomly drop we have to take its drop weight of 10 and divide by 300 plus 10 plus 10 plus 10 plus 15 plus 10 plus 2 plus 1 plus 1 or 359 which is roughly 1 out of 36 again the issue at hand is mega rushes so what enemies drop these our only options are hammer bros and conveniently when we're in or passed a chapter 60 hammer bros can appear in the sewers specifically in the first West sewers room and the second East sewers room if you recall I said we can skip most of the great tree in chapter 2 by leaving after getting flurry going to chapter 7 to advance the game sequence and then coming back to get the super boots in the great tree well after returning from chapter 7 we can make our way over to the east sewers using a very cool use of the super jump mechanic after going a floor down we can encounter the hammer bros they can show up in either of these two fights and this enemy placement is a very convenient way to make up for the lost mega rushes while still making our way towards the great tree now here comes another issue the only time I've really passed by these hammer bros between now and when I reenter chapter 7 to fight the boss is now you may think that after getting the super boots I could just walk to the right again and fight one of them to get one mega rush however obtaining the super boots causes our sequence position in the game to revert back to a chapter 2 state in other words the super boots causes the game to start treating Mario as if he's in chapter 2 as a result the hammer bros no longer appear in the sewers this means that in order to get both mega rushes before Magnus von grapple to point out without going incredibly out of my way to reload the enemies in this room I would have to manipulate both mega rushes to occur in this room and this is where I now have to explain the absurdity of this situation first let's talk about the probabilities of getting mega rushes to appear or be held in battle the game randomly determines whether or not an enemy is holding a badge when the room loads so to get a hammer bro to hold a mega rush in battle we take its hold weight of two for mega rush divided by 200 plus 5 plus 15 plus 20 plus 5 plus 2 plus 2 to get 2 over to 49 again this is for 1 hammer bro however we need to take into account some other factors for the different possible battle compositions upon loading the room the game randomly determines what the second enemy and battle will be for both fights and in both cases the enemies can be either hammer bros goombas or magikoopas due to XP routing constraints I need the first fight to contain either 2 hammer bros or a hammer bro and a magic koopa a Goomba doesn't give any XP really and that'll cause some major problems later in the route the second enemy in these battles is determined with an equal distribution meaning there is exactly a 1/3 chance of any particular enemy being chosen because of that only 2/3 of the enemy scenarios for this first fight are usable so we have one scenario with a hammer bro and a magic koopa where we have a 2 out of 249 chance of getting a mega rush from the hammer bro however we have a second scenario where we have to hammer bros in this scenario the badge can be held by either enemy or held by both we just want to calculate the probability of having at least one mega rush appear within these two enemies to find the probability of at least one mega rush in two different enemies we can take 1 minus the probability of mega rush not occurring squared in other words 1 minus 1 minus 2 over 2 49 squared or 1 minus 247 over 249 squared and that gives around 1.6 percent one thing to clarify as well you can only get one item or batch to drop from a fight at any given time meaning if two mega Rush's show up in battle I can only get one to drop after battle in summary for the first fight overall the hammer bro and magikoopas scenario happens a third of the time and holds mega rush two out of 249 times so overall this situation and outcome happens two out of seven hundred forty seven times and the two hammer bros scenario happens one third of the time and holds mega rush 992 out of 62001 times for a total of nine hundred ninety two out of one hundred eighty six thousand three times for the first fight as a whole we can sum these two probabilities and we get fourteen ninety over a hundred eighty-six thousand and three which is roughly 0.8 percent for the second fight the fight is always a magic koopa and one other enemy a third of the time it's a hammer bro which will hold a mega rush two out of 249 times overall this means the second fight yields a held mega rush two out of seven hundred forty-seven times or about 0.26 seven percent one important point to reiterate is that the game determines whether or not enemies are holding items or badges in battle upon loading the room this means that the held items for both battles are actually determined at the same time in order to accurately calculate the likelihood of getting both fights to hold mega rushes we have to multiply the chance from the first fight with the chance from the second fight to get this gigantic fraction or roughly point zero zero to one for five percent to put this into easier to understand terms this means that I have about a 1 in 46,000 625 chance of getting both fights to hold a mega rush under optimal conditions that likelihood is unfathomably low when you also take into account the fact I'm also trying to go fast I want the waste as little time as possible to get these mega rushes and a 1 in 46,000 625 chance isn't going to happen within a reasonable amount of time so I decided to take a different route I was going to try to get one battle to hold a mega rush and then get a random drop from the other battle however there is one constraint for random drops when attempting to get a random drop to occur the items that drop are only the ones found with the left most enemies item pool in the scenario with the magic coupe of flight which can sometimes have a hammer bro we will never be able to get a random mega rush drop as the only items that can drop are those from the magic koopa this means if I wanted to get one held mega rush and one randomly dropped 2 mega rush I would have to get the random drop in the first fight and the held mega rush from the second fight the probabilities are as follows for the second fight it's about a point to 67% chance to get a held mega rush when factoring in hammer bros appearing only 1/3 of the time however at the same time that the held band is determined I also need to manipulate a hammer bro or a magic koopa to appear in the first fight so that the first fight also has an optimal battle loadout this means that the probability of getting a suitable loadout for the first fight and a held mega rush in the second fight I need to do point 2 6 7% times 2/3 to get 4 over 2241 or about point 1 7 8 % this comes out to about 1 in 562 so relatively speaking this isn't bad at all for the first fight random drops remember that I need to take the drop weight divided by 300 plus a sum of all drop weights this yields 2 out of 351 so this is our chance of getting a random mega rush drop however if you recall me saying a lot earlier the game only allows you to have a chance at a random drop 25% of the time so to accurately calculate the chance of getting a random mega rush drop we have to cut our calculation in a quarter to get 1 out of 700 - or 0.1 for 2% that's a pretty small chance but remember this is 66 times as likely as having both fights hold mega rushes you may think I need to multiply this calculation with the chance of a held mega rush appearing in the second battle but random drops are determined when the enemies die in battle not upon the room loading this means that upon loading the room I can guarantee the mega rush being held in the second fight get that mega rush to drop easily and then separately try to get a random drop from the first fight these chances seemed monumentally better than before so I started to work with this strategy in mind this brings me to my next point random number generator a lot of video games have certain events that are quote randomly determined and I say that in quotes because nothing in video games is truly random you just can't program randomness besides Hardware of random number generators but that's besides the point anytime a perceived random event occurs in a video game it's all thanks to math an algorithm called the random number generator given a starting seed specifies a new seed and this seed can be used to determine whether or not specific events should occur such as random item drops or enemy movement or Mario's jumping sound effect those are a few examples of what calls RNG or in other words those are events that prompt RNG to recalculate so for example every single time I jump in Paper Mario the thousand-year door RNG updates to try to get different RNG outcomes I can jump a different number of times in a given room and RNG will advance a different number of times by the time I'm done with the room jumping only calls the RNG formula once and I can't do many jumps in a row that fast so in order to advance RNG as fast as possible we can utilize text boxes and the Start menu I'm still not quite sure why but the RNG formula will update twice per frame for every character of text on screen so if you have a text box with 50 characters RNG will update 100 times per frame by displaying different amounts of text on-screen for different amounts of time I can effectively get different RNG values and this is usually the strategy I use to get different RNG outcomes obviously brute-forcing perceived randomness can take a while so I created a script to automate the process first I created a script that will waste one frame and a pause menu before entering the room enter the room and then check to see if the enemy is holding mega rush if they're not holding mega rush then rewind waste an additional frame and repeat indefinitely until I get a mega rush obviously I don't want to waste a lot of time in the pause menu so I would let the script run until I wasted about three seconds or 180 frames from there I would Traverse to a different part of the pause menu so that the number of RNG calls per frame is different I didn't have to repeat this particular brute-force for long since it was only a point two six 7% chance then came the hard part I now had a mega rush appear in the second fight however I still needed to get a random mega rush drop from the first fight so I wrote another script to brute force wasting frames in the battle until I got a random mega rush drop I did end up getting something that worked but it was pretty slow my brute-forcing method wasn't the best at finding the earliest possible outcome and in retrospect I definitely could have made it a little bit more efficient I now had a scenario that worked I got both mega rushes it was over it was done but I didn't feel too happy I didn't feel content with this outcome I wanted to go back and play around some more with the idea of getting held mega rushes in both fights pretty soon a lot of people suggested working backwards instead of getting an RNG value and then testing to see if it works what if we found RNG values that worked ahead of time and is focused on getting to that correct RNG value in game this is where trivial won 7-1 and JD a stir come into the scene trivial created a script that very clearly lays out the underlying principles behind the RNG algorithm first and foremost the RNG algorithm is as follows given an RNG value of r-n G of X multiply that number by hexadecimal form one c64 e60 and then add 3 0 3 9 the RNG value is stored is a 4 byte big-endian so it can only have a maximum value of about four point two nine four billion to avoid an overflow if RNG is greater than this value then just keep the remainder after dividing by this max value the game initializes with an RNG value of 1 and every subsequent call is calculated starting from that value of 1 now another way to look at all the possible values of RNG is just as an ordered list in index number 0 we have the starting RNG value of 1 when the game next calculates RNG we do that 1 times for 1 C 6 for 16 plus 3 0 3 9 to get 4 1 C 6 7 E six this is now the RNG value stored at index number one as you can see as the RNG formula continues to be called we can associate each value as being at a certain index in the list of RNG values the more complicated part occurs when we want to work backwards given a specific RNG value how can we determine its index in the list trivial 171 created a brilliant Lua script that calculates the index value for a given RNG value so to really show you the absurdity of the math you used to make this indexing happen I'm going to hopefully do it enough justice and explaining how it works the first part of being able to index RNG values is to actually be able to calculate RNG values based off of the given index let's remove the nasty hexadecimal numbers in the RNG formula and let's just say that the RNG formula is a times the previous RNG value plus B the game initializes with an RNG value of 1 and index 0 but for simplicity sake we're just going to change it to 0 here the RNG value at index 1 again would just be a times the previous RNG value plus B but if we substitute the starting value of 0 we can write index 1 as a times 0 plus B or just b4 index 2 this becomes a times a times 0 plus B plus B or a B plus B this is what it is for index 3 for index 4 and so on you can see how we have a repeating quantity for the previous RNG value as we go to a larger index this pattern can be rewritten as to sum of a geometric series if you notice after we multiply everything together a pattern starts to appear look at index 4 we end with 8 to the third a to the second B 8 to the first be and a to the 0th faith using this pattern you can generate a geometric series of X terms here the first term is a to the 0 B or just B and that makes sense before we deal with any of this crazy nested multiplying and adding we just have a very simple value B as our RNG value in index 1 if we assume that the index 0 value is just 0 the common ratio here is a because that's where the exponent is changing as our index increases the number of terms we want to sum is just our index value so after all that we generate an equation B times 1 minus 8 to the X all divided by 1 over a with this we can plug in any index X and produce The Associated RNG value at that index now we want to focus on reversing this process if we have a given RNG value how can we find its index let's say we have an RNG value of three zero five zero seven seven six nine six five and we want to find its index we first want to start by writing this number in binary doing so results in this string of binary digits to avoid going too in-depth in number theory I'll just say that the next few steps use something called the lifting the exponent lemma to reach conclusions about the index of an orangy value we can actually determine the index of this given value by comparing it with RNG values at known indices we now need to determine the index bit by bit starting from the smallest binary digit or the least significant bit binary digits can be either a 0 or a 1 let's look at oranjee into c 0 and 1 with the goal to determine if the current orangy index is smallest bit should be 0 or 1 well we know that the R&G value at index 0 when the game boots up is just 1 or 0 0 0 0 0 0 0 1 in this scenario the least significant bit is just 1 and it also appears as the least significant bit in our current RNG value by the lifting the exponent lemma we can conclude that the smallest bit for the index of our current RNG value must match the smallest bit from the R&G index of 0 this means that the smallest bit of our index for the current RNG value must be 0 now we want to find the second bit when we already know that the first bit is just a 0 so this means that we now must check for indices 0 0 and 1 0 well the RNG at index 0 0 is just index 0 which has a value of 0 0 0 0 0 0 0 1 index 1 0 in binary is just index 2 so that's the third rng value in order now keep in mind we will have to run through many many calculations to find all 32 bits that make up an index value so this is where we can make use of the previously-mentioned formula to go from an index to an RNG value we can simply plug index 2 into the aforementioned equation and it spits out this string of binary digits as you can see that second-to-last bit does not match up with the bit in our current RNG value so instead of looking at index 1 0 let's look again at index 0 0 or just 0 again the value at index 0 is just a bunch of zeros followed by 1 but as you can see the second-to-last bit in this value matches the second-to-last bit in our current RNG value and therefore the second bit of our index is also a 0 because of this we now know that the last 2 bits of the index value are 0 0 since RNG is a 4 byte or 32-bit value we have to do this calculation 30 more times to determine all 32 bits obviously that's a lot of math for a human to do but we have scripts for that trivial put together an amazingly compact and efficient lua script that is able to churn through these calculations every frame this way for any RNG value we get we can instantly know the index value associated with it what's even more interesting is this advance number on screen this represents how many indices we've jumped forward in a given frame if you remember a little bit ago I mentioned that RNG can change a different number of times per frame RNG goes to the next index when Mario jumps for every character of text on screen RNG will jump to two indices forward so now you can see how I can make my way through the list of RNG values at different speeds by interacting with menus and my environment differently so this finally brings me to the next key piece to reverse engineering the Mega Rush look I spent a good hour or so talking with JD a stirrer who is well known in our community for his work in reverse engineering various different mechanics and TTY DS code there's a chance you may have glanced over a game facts post he made detailing the item and badge hold and drop weights alternatively you may have seen his site at some point at Super Mario files wordpress.com which contains everything you could ever want to know about various details of the near door anyway jda sir decided to investigate the inner workings of the fights in question having already been familiar with the goombah fights that appear in this room in an earlier statement building upon that knowledge JD a stir created a script and simply asked me on discord for the RNG value I have when I enter the pipe to get to the room in question what he replied with stunned me his script output a list of different RNG values or states as well as the number of RNG calls that it takes to get from my current RNG state to this listed RNG state and supposedly the RNG values in this list would give me two held mega brushes this seemed too good to be true before I go into how I used this new knowledge to my advantage I want to explain the technical side of how he was able to determine what values of rng supposedly worked so Paper Mario the thousand-year door has two different ways it can access and call the RNG formula and only one pertains to the specific scenario this is just AC language function that it's the next RNG state based off of the current RNG state and then interprets the result and determines whether a random event should occur so this is a recreation of the game c function to make it easier to see what's going on first off the function does something like this we have parameters state and modulus we first calculate a new RNG state by just calling the RNG formula this function then outputs this new RNG state or value but it also calculates what we'll call a week we saw weights before with item and badge hold and drop weights and that's exactly what this is first let's run through what this function does starting with the first scenario it checks for we first want to determine the enemy loadout for the first fight to make sure that it doesn't have a Goomba when the game has to randomly determine enemy loadouts there's an assigned weight for each loadout and the outcome is determined with these weights in mind in this scenario all loadouts have an equal chance because they all have an equal weight of 20 so we call this increment and mod function with the current RNG value and the sum of all the load out weights which is 60 as the modulus value and then we find the next RNG value to calculate the second term in our return statement we have to do a few operations first these double greater-than symbols mean shift all the bits of our RNG value to the right 16 bits adding zeros to the left this way the largest 16 bits of the number are now the lower 16 bits of the number this result is then bitwise ended with hexadecimal 7f FF the and operation looks at a specific bit and each number and produces a 0 or 1 bit and a new number based on whether or not the same index bit between both numbers is the same for the case of and the outputs bit at a given position will be 1 if the bit in that position in both of the numbers is 1 otherwise it'll be 0 but as you can see 7 FFF represents 0 followed by 15 ones which means that all the game is doing is effectively removing the top bit next it takes the results and modulus with the sum of the load-out weights 60 for those that don't know a modulus is where you take a number and divide by 60 in this case but we only keep the remainder afterwards what we're left with is a value between 0 and 59 from there this result can be interpreted as different battle loadouts in this scenario if the value we get is between 0 and 19 the load-out is a hammer bro and a Goomba which we don't want so as long as this value is between 20 and 59 we have a fight that works the script will stop calculating the rest of the details if we didn't get a viable loadout if we did however then we can move on to the next part calculating whether an item is held again we can call the increment and mod function this time we'll pass in our current RNG value and the sum of all the item hold weights possible for a hammer grow which is 249 in this case so we calculate a new RNG value extract bits number 2 to 16 modulo by 249 and get a number between 0 and 248 we can then associate this result with an item or you can think of each item and badges hold weight as X numbers of position and a list that goes from top to bottom here so if a held band has a weight of two it will have two respective index values in this list in the case of the hammer bros this list starts with a super shroom and ends with a hammer throw however it's also important to consider adding that 200 number that I mentioned when calculating hole probabilities you can think of nothing as having a hold weight of 200 and that must come before anything else in the list so the position of mega rush in this list would be 200 plus 5 plus 5 plus 10 plus 20 plus 5 or 245 and also the number after that since mega rush has a hold weight of 2 so 246 is also viable so now we take a result from the increment and mod function and compare it against 245 and 246 if the output of the function is equal to 245 or 246 then we know that we have a held mega rush we can repeat the same sequence of calculation for the magic of a fight except the only loadout we care about is the one where the second enemy is a hammer growl most of the time a given RNG value will fail one of these conditions between the two fights but on the off chance that it doesn't this script outputs the RNG value that's succeeded to a list the output list of values represents some of the RNG values I can have when entering the room to give me two held mega rushes since that's when battle RNG is determined in addition this list also keeps track of the number of RNG calls it takes to obtain these viable RNG values based off of our starting RNG values so the question becomes how can we get from our current RNG value to a calculated RNG value with two held mega rushes return back to the idea of indices the number of calls and jda stirs output simply refers to how many indices we need to jump forward we can use trivial script to determine what our current RNG indexes add to that the number of RNG calls needed from JT a strip strip and we can effectively find the index of the RNG value with two held mega rushes in this example I enter the pipe with an RNG value of hexadecimal 9 f7 for B for e 3 and that corresponds to an index value of 320 2470 jda stirs script tells me I need to make 6813 RNG calls to reach the desired RNG value of CF six nine five seven five four to find the index I have to reach I can just do the index of my current RNG value plus the number of RNG calls I need and I end up with an index of three hundred twenty nine thousand two hundred eighty three so all I need to do to get to held mega rushes is enter the room on this index of orangy I started playing around in the pause menu by making use of trivial script which again shows how many times RNG advances on every frame by navigating to different parts of the pause menu I was able to get RNG to change faster or slower but the most important part is to have RNG change a certain number of times such that when I unpause I reach or get close to this index of three hundred twenty-nine thousand two hundred eighty-three and I happen to get something that works well pretty early on mega rush I was got [Music] JTA sir Yuri oh my god [Music] and I was ecstatic I couldn't believe that something like this was successfully done we successfully took the perception of luck for this scenario and flipped it completely on its head it was over I had a 1 in 46,000 625 chance by only wasting 5 seconds through the pause menu I was able to get 5 RNG calls away from the necessary index which means all I had to do afterwards was just jumped five times after closing out of the pause menu so between the pause menu and these five jumps I probably only wasted five seconds total however I still wasn't satisfied it was immediately suggested that if we could just do a few extra jumps in the previous room I wouldn't have to stand still on the pipe and jump here after the pause menu in order to advance RNG further jumping a few extra times in the previous room would work it would increase our index value by a few calls to eliminate a few jumps ultimately I ended up spending the next couple of days trying to get the same RNG value by wasting even less time I played around with other spots in the previous room where we could get close to the desired index I found that we could get decently close by making use of the pause menu that we already have open when switching to coops for a super jump in this room this was still a substantial number of calls away but nothing too crazy I then thought of places where I could advance RNG more without wasting time I immediately thought of gum free before we did teleporter room early we have to wait around to catch the next platform cycle here in the meantime I can talk to goofy here and his text box will advance RNG a decent amount I made some calculations for how much text should be on screen and for how long based off of how far away I was from getting the desired index after closing the pause menu when switching the coupe's I also had to go back and modify the number of jumps throughout the X naught fortress while I set the game to a chapter 7 state after leaving chapter 7 and beginning to make my way towards the superboots I wasted a few frames on Flurry's text box after leaving the teleporter room and finally for the pause menu we found that RNG can advance the fastest when scrolling between the different tabs in the pause menu when you scroll between tabs the game temporarily has both loaded meaning the number of characters on screen which all advance RNG skyrockets at one point I was able to advance RNG more than a thousand times in one frame from having three tabs open at the same time after messing around with these three tabs I go back into the partner menu select coops and close out of the menu what I'm left with is an index value such that after I make it into the next room and go down the pipe I have the exact index three hundred twenty-nine thousand two hundred eighty three because of all these shenanigans I was able to obtain this index value by only wasting a total of twelve frames or two-tenths of a second I think the main takeaway from this is that no chance however small is really impossible I absolutely dreaded getting these mega rushes because I slowly over time realize the absurdity of the probability for this to happen however trivial and jda stirrer completely tore this process apart and enabled us to work backwards it's thanks to them that this TAS is that much faster this process is so subtle since it all happened in the background that many people won't even realize that this much effort had to be put into getting these drops to occur but at least now you know and hopefully you can appreciate the effort that these two put into making this happen so if you'd like to check out either trivial or JTA store social media to support them for the tremendous work please check out their links on screen and in the description below other than that thank you for watching and have a good one
Info
Channel: Malleo
Views: 199,935
Rating: 4.903429 out of 5
Keywords: mk8, mario, kart, nintendo, gaming, professional, clan, war, tas, tool, assisted, speedrun, mkw, mkwii, wii, shwam, shwamtrollin, malleo, malleoz, shwamalleomk, online, world, record, time, trials
Id: -9YLCoK5K6o
Channel Id: undefined
Length: 39min 18sec (2358 seconds)
Published: Mon Jun 24 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.