Super Mario World - Fabian (also called TAS) - by JXQ
Essentials:
This run satisfies the following criteria:
- Aims for fastest time
- Takes damage to save time
- Abuses programming errors
- Manipulates luck
- Emulator Used: SNES9x 1.43 +v9
- Use WIP1 Timing - on
- Allow Left+Right/Up+Down - off
- Volume Envelope Height Reading - off
- Fake Mute desync Workaround - off
- Sync samples with sound CPU - off
Overview
If you don't count the four runs I've done for Super Demo World, this is my first run of Super Mario World. I actually went back and forth on doing this project because the existing run was one of my favorites, even though it had a few places that could be improved.
This is the first time I've done a run to obsolete an existing run that wasn't mine, which made me play a bit differently. In addition to aiming for entertainment, I aimed to do things differently than the previous run where possible. I also had to tailor my actions to make sure that the score I was getting was optimal for fadeout lag (this is described in more detail below).
I'm going to go out on a limb and assume that if you're reading this, you've already watched the previous Super Mario World run by flagitious and VIPer7. This is probably a safe assumption since the AVI holds the record for most downloads. If you haven't, go watch it
here, because it's awesome.
The main sources of improvement came from a few new discoveries:
- Abuse of oscillating speeds
When Mario reaches a top speed and the direction is still being held, the variable that represents his speed actually oscillates between 3-5 different values, depending on the type of movement. When in the air, the directional button can be released and Mario's speed remains constant. This is heavily abused in the first four levels with continuous jumping (the hopping glitch), but also used in a few other places where there isn't enough space to get up to full running speed.
Another related technique that can be used is called 8/5. (Credit goes to jimsfriend for this idea.)
It's a way to partially abuse Mario's oscillating running speed, while still keeping the "P-meter" charged. In the air, releasing the direction for 8 frames, and then pressing it for 5 (together with X or Y) will bring Mario's P-meter back to full. During the first 8 frames, the speed can be manipulated to the highest value, and the 5 frames afterwards simply go through the cycle of values once, putting it back at its highest value.
- Better understanding of fadeout lag
There are three different types of "fadeout lag". The first is after a normal exit, when the black circle closes around Mario. The second is after a boss, when the screen fades before giving the time bonus. The third is during a key exit, while the keyhole is opening and closing. The first two types seem to be determined by Mario's score, while the third is a combination of the score and the current sprites that are on-screen. Although I don't understand completely how fadeout lag is determined, I believe I understand it well enough for the purpose of minimizing it.
Since score is a determining factor in fadeout lag, I would poke different values into the game's RAM to see what scores would help me the most. Although I was already planning on doing the levels in a different way than the previous run, this gave me another reason to do so.
There are still places with random lag that I do not understand - certain doors and map transitions sometimes cause different amounts of lag.
- Better overall control of flight
Using the "one frame on, one frame off" approach allows for more precise control of diving and catching air when flying.
Detailed comparison to previous run
- Gained 1 frame on the title screen by using the select button. (Thanks to Bablo for this tip.)
Yoshi's Island 2
The first thing you'll notice is that I don't get the extra lives that the previous run gets. This is to keep the shell and use it later for different antics and for a different final score. I avoid coins in ? blocks for an optimal score as well (each one adds 10 points).
- Gained 38 frames from the hopping glitch.
Yoshi's Island 3
Using the hopping glitch here is faster than running along the moving platforms, even when using 8/5, which is unfortunate because Mario spends part of the level above the screen. I try to avoid this as much as possible. You can also see Mario pass through some of the yellow blocks near the top of the screen. This happens because of the height they are at - Mario can fall through them, but not jump up through them.
- Gained 23 frames from the hopping glitch.
Yoshi's Island 4
Quite similar to the previous version, except with the hopping glitch. I also was able to enter the pipe in a different way that started Mario already partly inside the pipe, which saved some time.
- Gained 20 frames from the hopping glitch.
- Gained 7 frames from entering the pipe differently.
#1 Iggy's Castle
Here is where 8/5 is used. Since the P-switch must be dropped at a speed slower than Mario's running speed, the hopping glitch cannot be used directly. This was done in the previous run by turning around, but I do it here by manipulating the oscillating values to drop the P-switch on the slowest value, and then moving Mario to the fastest.
Fadeout lag was especially crucial in this level - differing scores caused as much as 30 extra frames of lag!
- Gained 13 frames using 8/5 in the first room.
- Gained 9 frames during fadeout lag.
Donut Plains 1
Using 8/5 before the first koopa caused problems when grabbing the cape, so it was avoided. This level is similar to the previous runs, although I do not stomp as many koopas in order to get a better amount of points for the next few levels.
- Gained 1 frame using more precise diving just before the key.
- Gained 2 frames during fadeout lag.
Donut Secret 1
Water randomness in this game has always been frustrating. However, I discovered that swimming up through a corner quickly (when you aren't holding an item) pushes Mario forward a bit and will gain a couple frames. I use this technique four times, and you can sometimes notice the screen "jerk" a bit from pushing me forward. (The previous run used this trick once, but I don't think it was realized at the time)
- Gained 1 frame from less lag on the map screen.
- Gained 6 frames using the forward water boost.
- Lost 1 frame from more lag after the second pipe.
- Lost 2 frames manipulating Mario's cape spin to hit a necessary fish.
- Gained 3 frames during fadeout lag.
Donut Secret House
This is the first level that really gains from more precise flight control, and from the ability to keep flight speed after flight has stopped by continuous jumping.
The Big Boo fight is different. It's not as jaw-dropping as the previous run's, but I didn't just want to copy that idea. Hopefully it still looks impressive. And to answer everyone's question: "Because you can only have seven active blocks at once."
- 26 frames gained from keeping flight speed and better flight control.
- 1 frame lost from more lag after first door.
- 1 frame gained during fadeout lag.
Star World 1
I delay entering this level by one frame because it changes the way Mario is pushed from the blocks and I was able to finish the level much faster this way.
- 3 frames lost from more lag on the map screen.
- 1 frame lost from intentional delay when entering the level.
- 8 frames gained from better use of the smashola technique.
Star World 2
Besides using the corner-swimming trick mentioned above at the beginning, this level is pretty similar to the previous run's. Not much to do in a water level.
- 1 frame lost from more lag on the map screen.
- 2 frames gained from forward water boost.
- 3 frames gained from picking up the key differently.
Star World 3
I was surprised by how much I was able to improve this short level. Also, keyjump.
- 1 frame lost from more lag on the map screen.
- 24 frames gained from more precise flying and keeping flight speed.
Star World 4
Mario doesn't take advantage of full speed flight until he "pops his collar", and by collar, I mean cape. So it's most beneficial to fly up as little as possible on initial takeoff. However, since I need to collect a reserve feather here, I couldn't take advantage of this as much as I hoped. I improved this level by collecting shells without slowing down and keeping flight speed after getting the key.
I believe the different position of the two koopas above the key is what causes the extra fadeout lag here.
- 19 frames gained from faster flight and keeping flight speed after getting the key.
- 7 frames lost from fadeout lag.
Front Door
Room #2 was improved by manipulating the oscillating values of the medium-speed run. I was almost able to squeeze under another spike in room #5, but after a lot of testing, I just don't think it's possible.
The last room (Back Door) was improved the most, by getting flight speed immediately and keeping it by bouncing off the enemies. This room has a bit of lag, caused by the transparency effects (even though the light is not activated).
As far as Bowser goes, we've all been there, done that. So hopefully this is at least somewhat fresh.
- 4 frames gained from less lag on the map screen.
- 1 frame gained by flying sooner before door #2.
- 3 frames gained in room #2 by abusing oscillating speeds.
- 1 frame gained from less lag after entering room #2's exit.
- 5 frames gained in room #5.
- 27 frames gained in "Back Door" from getting and keeping flight speed earlier.
- 12 frames gained on Bowser.
In total, I gained 242 frames on the previous run.
Suggested Description & Screenshot:
This is JXQ's minor improvement to the previous run done by flagitious & VIPer7. It uses the same route as before, tweaking levels with more precise flying, better manipulation of fadeout lag, and a couple other small tricks.
The existing screenshot seems fine to me, although it probably needs to be retaken because the area is done a little differently.
Thanks to...
- jimsfriend, for always giving me tons and tons of ideas for Super Mario World. Good luck with your unassisted small-only run!
- Fabian, for his continued help with SMW/SDW stuff. Good luck on your current Fabian, the improved 96-exit Fabian of this game.
- flagitious and VIPer7, for their work on the SMW series and all the discoveries they've made that helped lead up to this point. I don't know what either of you are working on currently, but good luck with it!