Super Mario World Speedrun World Record Explained

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
on July 12 2022 Super Mario World was beaten in 9 minutes and 42.983 seconds by tsurake this is the current world record beating a three-year-old Mark by less than a second when you see Yoshi turning a coin into whatever this is a few questions might arise let's find out how this speedrun is possible this is the Super Mario World speedrun world record explained this video is sponsored by manscaped you might know them as the kings of smooth kiwis but you might not know that they're also in the beard market with the beard heads or Pro kit they sent me one and I have to say it's a straight upgrade over what I had before the beard hedger is cordless and rechargeable an absolute game changer for me it's also waterproof so you can even shave time off your shower PB another one of my favorite aspects is its single guard Zoom wheel with a selection of 20 different cutting lengths I can't overstate how much of an improvement this is over what I used to have the beard hedger Pro kit also comes with a set of dermatologist tested care products to help you get a Pixel Perfect beard beard oil beard shampoo conditioner and beard balm that smells amazing on top of that each product has its own cool perks as you may know manscaped is my first ever sponsor and I'm really grateful for the support they're giving me by going to manscape.com and using the promo code bismuth at checkout you can get 20 off and free international shipping and it directly supports my channel throughout this video look out for number notes in this corner to find additional context and clarifications in a document Linked In the video description this speedrun is the record in a category called 11 exit Super Mario World tracks how many different level exits are completed out of the 72 levels within exit 24 have a second see credit exit that opens up a different path on the Overworld most of the main categories are named after the number of exits a typical run completes 0 11 and 96 zero exit is a credit swap using arbitrary code execution that triggers the ending after just over 20 seconds of messing around in Yoshi's Island too 96 exit obviously clears all the levels and their secret exits 11 exit can be Loosely described as any percent no credit swarp the goal is to reach the ending as fast as possible while still progressing through the game mostly As intended therefore jike takes the shortest path that reaches Bowser's Castle he completes world 1 normally then takes a secret exit in every single stage onwards this takes some through the star world a Warp Zone that leads directly to Bowser [Music] [Music] thank you [Music] right off the bat Yoshi performs active black magic before our eyes the core technique used here is item swap which is an example of a use after free exploit it's also used to bust open Zelda games or it's known as tail reference manipulation and for cloning in Super Mario 64. in short the game does an operation on a part of memory supposed to hold one object but it has been replaced with another object that doesn't support that operation in this case with Yoshi's intended to eat a coin has been replaced with an inedible object a charging Chuck this sends the game code for a bit of a spin that results in obtaining lactose cloud in the item Reserve box although it's not visually obvious given that this bright looks corrupted to better understand this though we need to take a deep dive first how does a charging Chuck appear on Yoshi's tongue when Yoshi touches the coin with his tongue he gains a reference to the Sprite slot that contains the queen then when the animation is complete that reference points back to the coin to complete the eating process unload the coin increase the points and coin counter and so on how however here Mario gets in the way by collecting the coin while Yoshi is in the middle of eating it therefore the coin is unloaded early in the reference Yoshi has is now pointing to an empty Sprite slot while the animation is still ongoing Mario moves to the right and loads the next part of the level the charge and Chuck found here is loaded into memory and happens to be placed in this bright slot that the coin was in a moment ago so when Yoshi looks at the reference to determine what item he's eating he finds an unexpected charge of Chuck whenever Yoshi eats an object the game checks a bit that states if the object is a power-up or not this bit is defined for every Sprite in the game but for those that Yoshi can't eat the value doesn't normally matter the developers weren't particularly careful with the value given to inedible objects so some of them including the charge and Chuck have that bit set to one as a result the code for collecting a power up is run this code uses the Sprite ID of the power up in the lookup table to find two crucial pieces of information first which items should be placed in the reserve box and second where the subroutine for collecting this power rub is located the problem with the charging Chuck is that it's not a power rope so the tables have no information for him the game looks past the bounds of the table and into unrelated values meant for other purposes in that garbage data it finds that the item to place in the reserve box is value 87 lakitus Cloud finally it finds that the code to handle eating the charging Chuck is at address 4a13 which is entirely outside of the game code itself that's typically not good basically the game is about to crash and some miracle has to be pulled off to keep it from crashing what happens next is by far the most technical part of the video so if you feel overwhelmed and you'd prefer to move on feel free to skip ahead to 910 the SNES address space is divided into many different sections for ROM Ram CPU PPU and a few others because the address space is larger than the actual memory available there are gaps where some memory addresses aren't mapped to anything the address 4a13 is in the new space it's also called open bus because the circuits to and from the processor are open so signals don't go anywhere when the processor is attempting to write or read values in unmapped space it's like it's talking to a wall write instructions send a signal to nowhere and read instructions are unable to actually receive data the processor uses a memory data register or MDR to store an 8-bit value to be written to memory or that was read from memory so when it fails to read from unmapped space the processor reads whatever value is left in the MDR or in other words the last value written to or read from memory therefore while the processor is trying to execute code in unmapped space what it tries to do when what it ends up doing can be wildly different the first thing it tries to do is to read a basic processor instruction but since it can't read it uses the value already in the MDR I'm going to skip over the details and boil it down to the one thing we care about which variables from Ram are used in the instruction because changing their values influences the result the first instruction reads the Sprite slot that the charging Chuck was in and the high bytes of Yoshi's X and Y position the X position High byte changes right there so tuakia needs to move Yoshi to the left while performing this trick to get the right value the result of this operation is meaningless but the last value you placed in the MDR becomes the code for the next instruction the processor executes this second instruction is influenced by Mario's power-up State and by what buttons are currently being pressed Zaki is holding a carefully chosen combination XL and R then the game reads the low byte of the x coordinate of the Sprite in slot 0 which happens to be this Koopa by stomping on it exactly like that so I can ensured that this Koopa would be unloaded while it's excoded it was B5 this gets stored in the MDR for the next instruction again skipping the details it reads the X speed of the spriton slot 8 which was this Koopa when tracking grabbed the green shell and killed the Koopa it fell off screen with the speed of 1 0 which is what gets stored into the MDR one zero is interesting because it corresponds to a brand shift plus instruction which effectively jumps ahead by a few instructions this operation also doesn't change the value in the MDR so it gets repeated over and over skipping ahead over 700 times until execution finally returns to ROM the intended place for code to be run in the code being read isn't intended to be executed in this context but thankfully it doesn't cause any Mayhem the processor eventually runs into a return from subroutine instruction and the nightmare is finally over return from subroutine signals that the current task is complete and execution can return to where it was the game considers that the charge and Chuck has been successfully eaten and it's ready to keep going a crash was very narrowly avoided all because of the side effect from eating an inedible enemy to recap this strategy requires stomping on this Koopa while it's at a pixel perfect position unloading this Koopa while it's moving at the right speed moving Yoshi to the left here holding XL and R at the right time and making sure all this Sprites loaded in specific slots so that everything would line up correctly in memory any deviation from this would result in an almost certain crash and this is how tsuki managed to turn a coin into a charging Chuck then into a cloud what he does with that cloud will be explained later there is one more detail to this level here tsaka hits the block with a shell and jumps into it on the same frame this causes the block to open twice spawning two Yoshi's instead of one the second Yoshi is invisible but its presence is still significant the timer used to control the animation of Yoshi coming out of an egg is a global timer in other words it's not tied to the Sprite itself but tied to the game as a whole as a result both Yoshi Sprites Advanced a timer at once causing it to last half the time this saves up to 32 frames which is about half a second [Music] this level contains a lot of moving platforms that rotate clockwise as they start turning they move Mario forward slightly soaki wants to maximize the time Mario spends on those platforms because each of them can move Mario by up to 8 pixels forward if he spends to full duration on it this saves about two or three frames per platform for a total of up to 16 frames in the whole level about a quarter of a second at 60 frames per second what's up [Music] [Music] foreign avoids hitting the checkpoints this is actually important because checkpoints give Mario a mushroom if he's small when Mario receives a power rep that supersedes a mushroom the mushroom is sent to the item Reserve box soakay doesn't want that to happen because that would overwrite the cloud already in there so he needs to stay small Mario until he can upgrade straight to a cape later in this run [Music] boom [Music] foreign to avoid having to enter water and slow down the way this trick works is pretty simple when Mario kicks the shell he can't interact with that same shell for 16 frames because the Shell's speed is always a bit faster than Mario's by that time the shell is usually far enough ahead of Mario that he can no longer touch it however when turning around Mario slows down a bit and moves the shell behind him when he turns back to face to the right he quickly kicks the shell while it's still behind him he accelerates back to top speed and after the 16th frame interaction cooldown has passed he's still just close enough to the Shell to bounce on it note that the shell has to be kicked just before the Apex of Mario's jump otherwise he would get hit by it or miss it entirely the left and right inputs and the Y release also have a pretty tight timing to make this trick work foreign [Music] since Mario moves slower on fences soaky's goal is to minimize the time he spends holding onto them while Mario's normal running speed is 36 and his fastest running speed or P speed is 48 his speed on defense is only 16. even though his momentum stops when he jumps off them it's still worth jumping whenever possible because it lets him go faster for a short time as a side note the unit of speed is subpixels per frame a sub pixel is a subdivision of position that the game uses to create smoother movement despite its limited visual Precision in other words speed is calculated in 16ths of a pixel per 60th of a second a speed of 48 is therefore 3 pixels per frame with a speed of 36 Mario moves 2 pixels per frame most of the time and 3 pixels every 4 frames it's actually possible to make it under this bootable although that's a very tight window and it saves less than a quarter of a second so AKA went for a slightly safer approach also here it's actually faster to stay on the fence rather than to jump because of the P meter just like Super Mario Brothers 3 Super Mario World has a p meter although in this game you can't actually see the meter itself when Mario is on the ground at full speed the P meter builds up when it's full Mario's top speed goes up from 36 to 48 and he can take flight if he has a cape while Mario is on a fence his speed meter is frozen therefore it's more beneficial to keep the meter full and have a slightly lower speed for a while rather than jumping off and moving faster but depleting the P meter and delaying p-speed finally when entering a door the up press can't be buffered when running at full speed entering a door is usually only a two-frame window soaki entered the door on the second frame this time this screen is an auto scroller without much going on let's move on the Iggy fight is quite straightforward each time Mario jumps on him he moves in the direction the platform is tilting hitting him three times quickly is the fastest way to beat him the first jump looks more precise than it actually is there's actually a six Frame Window to hit it [Music] three three three three three three finally gets the cape once Mario takes flight his top speed increases slightly sort of it's actually a bit more complex than that top speed in this game is not a simple fixed number when Mario reaches his top speed he still tries to accelerate but gets slowed down when he meets the cap this results in his speed oscillating between values around the cap rather than staying exactly on it running follows this pattern and flight with its higher acceleration follows this pattern so while the speed limit is set to 48 in both cases his actual speed will max out at 51 instead of 49. however if Mario is in the air and releases right he will not only stop accelerating but also decelerating essentially freezing his speed to whatever current value he was at this can be used while flying to keep a speed of 51 for the entire duration of the flight of course that's kind of impossible to get consistently but there's a trick to it at exactly 48 speed the screen is scrolling by a smooth 3 pixels per frame at 47 or 49 the screen will have a slightly different scroll every 16 frames either slower or faster at 50 the scroll will be different every 8 frames instead than at 51 and will scroll down evenly players can use that information to recognize what speed they're currently moving at and try to adjust by tapping right accordingly technically the same trick could also be used without the cape to get 49 speed during jumps but that would be quite impractical to try the actual flying part is also tricky while Mario is gliding down he can catch some air and gain height by pressing left every second this needs to be done with good timing if you tap left late you won't gain any height and if you tap it early Mario will keep gliding and you won't be able to immediately tap left again causing you to lose height you can also press right to have Mario dive bomb and press left to cancel that and bounce Mario higher but this is typically not used unless it's actually required mastering the flight mechanics to control Mario's hype is crucial top level Runners like track a have it down to pinpoint precision [Music] foreign [Music] foreign levels tracking can control how fast Mario moves up while swimming using the up and down arrows since Mario moves twice as fast while holding an object it's much quicker to go in this pipe to get a shell than it is to swim normally about one second here Mario can swim up much faster when he's not holding the shell so tsuki kicks the shell swims up and quickly re-grabs it to keep moving forwards foreign [Music] [Music] this level has a lot going on let's break it down step by step first is clipping through stairs how does that work it happens because stairs are one-way platforms made up of tiles that are lined up diagonally Mario runs at around 36 subpixels per frame which comes out to be 2 pixels on most frames and 3 pixels sometimes if Mario lines up on the edge between two tiles on the same frame that he moves by 3 pixels this style will left him through only if the jump button is being held the exact reason is unclear but it seems to be because the game incorrectly assumes Mario is Jumping Up From Below for these precise conditions to happen so Ikea needed to set up his subfacial position correctly by crouching for exactly two frames seven frames into the level Mario slows down in just the right way to set things up nicely the timing has one frame of leeway on either side in fact soak it crouched after only 6 frames but the Crouch has to be exactly two frames long or 1 30th of a second when Mario came out of that door he instantly started flying again this is because Taking Flight is controlled by a takeoff timer when Mario jumps with p-speed in a cape a timer is set to 80 frames during which he gains height then he starts properly flying if Mario quickly lands and jumps again this timer remains active so he gets a much shorter takeoff on his second jump crucially this timer is frozen and preserved between door transitions which means Mario can acquire PSP to make a short jump to start the takeoff timer then enter a door and immediately jump out of it in the next room because a takeoff timer is still ongoing he can enter flight from his stand still here traffic cleverly uses the block to stop Mario's upwards momentum and push him down to fly below this blue ring after some precisely timed Cape pumps he gains just enough height to touch ground again he doesn't take damage there for a very simple reason Mario has damage and vulnerability while he's flying instead of taking damage he loses his flying license until he falls back down to the ground since he's actually very slightly below the ground he snaps up to it instead the boo fight is quite straightforward big boo can't even hurt Mario wow [Music] yeah okay so what is this this is known as zipping and is caused by a chain of reaction every block is a simple background tile which is very easy and efficient for the game to handle however when Mario hits a block and sends it spinning it temporarily generates a Sprite Which is a much more resource intensive and limited that Sprite stays loaded for as long as the block is spinning therefore the game only allows for four blocks to be spinning at any one time if a fifth block is hit the first one stops spinning to make room in the Sprite slots Mario's Cape is hitting blocks on each side this block starts spinning first and that one second when the spinning blocks exceed four the left one stops first then the right one but because Mario is currently partially inside the block he's pushed out downwards this activates new blocks pushes Mario down and so on every framework do as a result Mario is pushed down through the Sea of blocks at crazy speeds so fast in fact that if you're not careful you can even fall below the screen this way foreign [Music] [Music] [Music] gets his score to a nice even 100 000 points how satisfying it's actually part of an elaborate scheme to save time because arithmetic is done in binary at the processor level operations and decimal numbers are actually fairly inefficient to perform displaying the score is more complex than it seems and it's increasingly difficult not based on how big the score is but on the sum of its digits therefore a score of 990 points is much worse than a score of one hundred thousand a bad score can add up to a millisecond of processing time which doesn't seem like much until you realize it's doing this every single frame remember one frame is only 16 milliseconds long if the game can't render the frame in time it has to take up another frame to finish causing a delay called a lag frame fortunately there are only a few places where a high sum of digits can be problematic during most level Transitions and in the dark room of Bowser's Castle a bad score can cause multiple light frames to occur during each of them though so the time really does add up over the course of the run up to about one second between the absolute best and worst cases this is why tsuki arranged to get a score of 100 thousand since secret exits don't count down the timer he can avoid getting more points to keep his score at 100 000 for the rest of the run his goal was to be at exactly a hundred thousand points after Star World 1 but he was a hundred points short Landing instead on the laggy 99 900 and losing six frames he corrected course by hitting his sleeping Rip Van fish for 100 points the rest of the star world is pretty straightforward and simply boils down to good swimming and flying thank you pleasure [Music] yes [Music] Bowser's Castle is divided into three sections first you pick one from doors one through four that each leads to a different challenge then you pick from doors 5 through 8 in a different set of challenges finally you go through the dark room and you meet Bowser you would think the shortest path would be to take doors one and five but two and seven lead to faster rooms that end up saving time over closer doors flight preservation through doors is the key to clear each room faster thank you [Music] thank you [Music] Sunday thank you and now the moment you've all been waiting for it's finally time to use the cloud so how much faster is the cloud and why well incredibly it saves an entire minute over fighting Bowser normally the reason is not just that you can hit Bowser Faster by jumping on him from high up on the screen since lakitu's cloud is not meant to ever appear at the same time as Bowser to save some space the same byte is used for both the Cloud's Exposition and the timer Bowser uses between each attack so I can't Waits at the left edge of the screen and jumps off the cloud while moving left sending the cloud to x-coordinate zero this sets Bowser's animation timer to zero which triggers the next attack instantly soak it does this for the entire fight ultimately saving a lot of time foreign [Music] ly the vertical position of the cloud is also reused by Bowser in the transition between each phase of the fight with the Pixel Perfect position it's possible to skip the animation of Bowser flying out it can also be chained into throwing the cloud to X position 0 to also skip the Fireballs falling from the top of the screen unfortunately tsaka made two crucial mistakes being a few frames late on the perfect timing and being extremely unlucky a fireball appeared near the earliest possible time right on top of him that's roughly a two percent chance this hit cost him 0.9 seconds and is by far the worst time loss in the whole run Monty there [Music] one title call here Jackie skips the second Cannonball he used the Cloud's exposition to reduce the animation timer to zero and Trigger the attack and hit Bowser before he could take the Cannonball out this fight is all about skipping animations by throwing the cloud to Exposition 0 where y position 2 hitting Bowser as early as possible keeping the cloud and avoiding getting hit it's one of the most technical and intense moments of the Run country through timing stops on the frame pitch appears and with that soakke had set the new world record with a time of 9 minutes and 42.983 seconds getting the cloud without the game melting down clipping through stairs optimizing flight and swimming meteor shell jumping zipping through blocks controlling Bowser with the Cloud's position and most importantly combining all of those tricks with near perfect accuracy in a single run is a feat Beyond impressive but how much can it be improved first this run does have a few mistakes the major mistakes are few and far between when getting the cloud track is stomped on the charging Chuck delaying his speed a bit the missed score adjustment lost him a handful of frames to lag here he accidentally threw Yoshi causing him to slow down for a bit this Fireball which is random appeared at the bad time and forced him to run into the wall to dodge it and to lose all of his momentum in the process finally taking damage in the Bowser fight cost him 0.9 seconds the total time loss is on the order of one and a half to two seconds from those mistakes there were some missed micro optimizations that could each amount to a handful of frames or less there are more ways time could be saved though there's an even faster setup for the cloud glitch named late spit that doesn't need to wait for the fireball to catch up and saves about 0.7 seconds you can do a frame perfect jump on this super Koopa to save a bit over half a second when swimming up with the shell you can kick it and swim up twice to save a bit under half a second in Star World 1 it's possible to zip even fast Faster by making the block that pushes you down the first one that you hit but this is a finicky trick in getting both Zips this fast is already quite hard there's a faster key grab in star world 3. that sake didn't go for which could save a third of a second while it's much easier to take off with twirl jumps in this room it's actually possible to fly with the cape instead which allows the possibility of moving at 51 speed shaving off a few more frames finally it's possible to speed up the Bowser fight animations slightly more combining all of these time saves could potentially lead to a time in the 937 range sometimes I compare the world record with the task for the category but this category doesn't actually have a proper task in short while the intention is simply to avoid crashing the game the manipulation during the cloud glitch does technically constitute arbitrary code execution the real-time speedrunning Community decided to accept the cloud glitches legitimate in 11 exits but task videos groups it with credit swarp as a result no one has ever made a fully optimized task of 11 exit with the cloud glitch the best comparison was a human Theory task made by Seth bling in 2014 that clocks in at 939.1 it attempts to mimic a perfect run a human would be physically capable of doing if they went for all the hard tricks and made zero mistakes but it uses outdated strategies at the time it was 10 seconds faster than the world record but the difference has gone down to less than four I said this was the best comparison I was annoyed at the lack of a task for this run so I made one myself the final time is 928.331 you can find it on my secondary Channel bismuth speedruns track is time comes within a second of this task in most levels a difference mostly explained by the constant frame perfect inputs to maximize the speed and save a few frames his donut secret house is particularly impressive it's quite likely we see a time under 9 40 at some point in the future but unless a major Discovery is made it seems that that would be the last 10 second barrier ever in this category if you have more questions about the cloud glitch such as why the cloud looks like this in the reserve box or what instructions are being run while the processor is executing unmapped memory please check out this excellent video by Retro Game mechanics explained the link is in the end screen and the video description thanks for watching [Music] thank you [Music]
Info
Channel: Bismuth
Views: 545,660
Rating: undefined out of 5
Keywords:
Id: OnfZgk3QL5U
Channel Id: undefined
Length: 33min 55sec (2035 seconds)
Published: Fri Mar 17 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.