TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #5291: Sniq's SNES Super Metroid "low% no major glitches (13%)" in 46:32.02

Console: Super NES
Game name: Super Metroid
Game version: JPN/USA
ROM filename: Super Metroid (Japan, USA) (En,Ja).sfc
Branch: low% no major glitches (13%)
Emulator: lsnes-rr2-beta23
Movie length: 46:32.02
FrameCount: 167797
Re-record count: 362076
Author's real name:
Author's nickname: Sniq
Submitter: Sniq
Submitted at: 2016-11-13 20:17:14
Text last edited at: 2016-12-26 18:15:19
Text last edited by: Overfiendvip
Download: Download (60632 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

(Link to video)

Attributes

  • Lowest possible percentage
  • Forgoes major game breaking glitches
  • Forgoes out of bounds
  • Forgoes underflow
  • Aims for lowest real time / frame count
  • Heavy luck manipulation
  • Abuses minor glitches and exploits

Terminology

  • Energy Tank = E-Tank
  • Reserve Tank = R-Tank
  • Power Bomb = PB
  • Gravity Suit = Grav
  • Speed Booster = Speed
  • Hi-Jump Boots = HJB
  • Mother Brain = MB
  • Continuous Wall Jump = CWJ
  • Damage Boost = D-Boost
  • Shinespark = Spark
  • Random Number Generator = RNG

The list of rooms and names/nicknames for those rooms can be found here.

Tools Used

The Birth of 13%

This is the first submission of 13%, which is 1% lower than both currently-published in-bounds low% runs by Saturn and Namespoofer.

The TAS achieves a real time of 46:32.019 and an in-game time of 00:32.

Thanks to the research put forth primarily by EternisedDragon (ED) and myself, skipping Grav in low% was made a reality. In the summer of last year, ED discovered that if Samus unmorphs after being knocked back from a spike, and initiates a spark on the same frame the knockback timer ends, a spark suit will be created. This immediately gave me hope that 14% could be reduced, so I began researching that possibility.

Not long after, I had the thought that since it's possible with spikes, it should be possible with enemies too. This turned out to be true in various situations involving a d-boost. D-boosting into a frozen enemy, into a slope, and into quicksand can all produce a spark suit, so long as the spark is started on the same frame the knockback timer ends. Even something as simple as being 2 pixels deep inside the ground so that the d-boost makes Samus land immediately can produce one as well. It's worth noting that the reason why this is easier to perform with spikes is that they provide 10 knockback frames, whereas enemies only provide 5.

Even with these discoveries, there were still two rooms preventing being able to complete the game with 13% of items while staying in-bounds - the Maridian mountain (also known in the community as "Mt. Everest") on the way to Draygon, and the room before Draygon upon her death.

I noticed that, without Grav, all of Samus's animations occur at half of their normal speed underwater (including landing after a d-boost), and Samus is simply much slower in general. For this reason, the method of our discovery involving d-boosting into a slope did not initially work at Mt. Everest; however, I discovered that Samus could be given double the normal amount of knockback frames by utilizing the R-Tank's automatic refill, to compensate for the reduced animation speed underwater. I thereby successfully managed to overcome Mt. Everest with a spark while still maintaining a spark suit. The spark suit would later be used to break through the pipes blocking access to Botwoon.

Then, only the room before Draygon remained. The idea was to somehow obtain another spark suit before fighting Draygon so that the room before Draygon could be escaped after disposing of her. This was achieved by doing an incredibly complex spark charge, using advanced "speed-keep" techniques, in the room known as the Colosseum (two rooms before Draygon). It turns out you can prevent the speed counter from resetting with careful enough movement, even if the counter has not reached "4" yet (which is when blue echoes would appear). In this case, the first two increments of the counter are achieved by the time I jump from the door of the save station, and the last two are achieved upon reaching the floating spiked platform. This platform gives just enough distance to increase the counter from 2 to 4, finally producing the spark that is then used to produce yet another spark suit.


Why 13%?

13% is the minimum amount of items required to beat the game while staying within the game's boundaries. As mentioned earlier, until 2015, this amount used to be 14%.

This run uses a branch of 13% I refer to as "Speed-Charge". The items of that branch and the reason for acquiring them are as follows:

  • Morphing Ball - This and the first Missile pack of the game awakens the planet. Required for using Bombs/PBs and traversing one-tile-wide areas. (i.e tunnels)
  • Bombs - Required for in-bounds runs.
  • Charge - Required for damaging Ridley and MB's second phase, as not enough ammo is collected otherwise to defeat them, and uncharged beam shots do not deal damage to bosses.
  • Speed - Required for skipping Zebetites, which would otherwise require me to obtain many more Missile or Super Missile packs, which would defeat the purpose of this low% category. Also required for traversing Maridia.
  • Varia - Required for surviving MB's rainbow beam attack, which would otherwise require me to acquire double the amount of tanks to survive it, which would defeat the purpose of this low% category. Also required for surviving heated areas since Grav is not acquired.
  • 10 Missiles / 10 Super Missiles - Required to force MB to change from her first phase into her second phase. MB's first phase does not take damage from anything other than Missiles and Super Missiles, and requires a certain amount of damage and hits to be dealt to her before she can change phases.
  • PBs - Required for in-bounds runs.
  • 2 E-Tanks / 1 R-Tank - Required for surviving MB's rainbow beam attack. Currently, the R-Tank is required for the strategy in Mt. Everest that was mentioned earlier.

There are different combinations of items that make up 13% that can be used to beat the game without utilizing out of bounds; however, every one of these different combinations foregoes Charge in place of a PB pack (and may trade Speed for a different item, such as Ice), and involves what is known as "Draygon underflow." Draygon underflow is a method of underflowing Samus's ammo count by activating a Crystal Flash while Draygon has grabbed Samus, and then using the directional inputs used to free Samus from Draygon's grasp to cause ammo values to underflow. You can read more about this here.

Even though all branches of 13% that use underflow would be faster to use because of how much time the ammo would save on bosses such as Ridley and MB, there were various reasons why I opted against using it:

  • Underflow was discovered in March 2016, after I had already, through the "test run" Total and I crafted, planned out the route for this branch of 13%.
  • Attempting to obsolete Saturn and Namespoofer's runs with a run that contains underflow would have felt less "fair", and I did not want to give a reason for such a debate to occur.
  • At the time of planning, some people felt that incorporating underflow would trivialize the category.

In terms of the combination of items I used in this run, the only differences that could be made to them is to obtain a second R-Tank in place of an E-Tank, or a third Super Missile pack in place of a Missile pack. There would be no benefit to the former, and although the latter is possible, it may not be faster for various reasons, but it is technically an option. Otherwise, all items that I have listed are mandatory given the constraints and given that I do not use underflow.


Route Outline

Due to skipping Grav, a lot of backtracking is reduced by not being forced to encounter Phantoon before other bosses, making Kraid -> Ridley -> Draygon -> Phantoon the best boss order. Although collecting a third Super Missile pack is less viable with this order, the route still turned out to be significantly faster than the alternatives. Just like in Taco's unfinished Any% TAS, moonwalk is activated due to its various benefits - benefits that will be greatly obvious during Ridley and Maridia.

The run has a similar beginning to other in-bounds runs until the first Super Missile pack is collected. I grab the nearby R-Tank primarily for its previously-mentioned use at Mt. Everest. Since Phantoon is being handled last, the Super Missile pack behind Spore Spawn becomes the fastest option as my second Super Missile pack, and the Missile pack on top of Charge Beam's location becomes the fastest option as my second Missile pack.

For the purpose of surviving MB's rainbow beam, the R-Tank is a substitute to one E-Tank. Since the E-Tank after Botwoon cannot be reasonably skipped without Grav, it is collected as the third tank (second E-Tank).

After Draygon's demise, I traverse the "forgotton highway" and enter the Wrecked Ship from the back just like the Reverse Boss Order run.

After Phantoon's demise, it is time for Tourian, where the Metroids are handled with Power Bombs just like the 14% Speed run.


Details & Improvements Per Area

Most of the inputs in this run are not directly comparable to previous runs due to 13% being dramatically different. Additionally, due to using a more-accurate Lsnes emulator, the magnitude of lag and length of door transitions are inherently greater than before, and I had to deal with these factors accordingly due to optimizing the run for real time.

Taco was kind enough to provide me with the inputs of his incomplete Any% run. I used these as a starting point and also tried to find improvements over them.

Beginning --> Green Brinstar

From Ceres Station -> Bomb Torizo, no improvements were found.

The lengthy diagonal room containing the first E-Tank, known as the Terminator room, was traversed at a much faster speed due to the discovery of the soft unmorph or "slopekiller" exploit, which Taco's WIP showcased.

Green & Pink Brinstar

In the Dachora hallway, one of the bombs used on the wall was placed 1 frame earlier by manipulating subpixels.

The Spore Spawn Super Missile pack collection has never been attempted before in these conditions, but I developed a clever d-boost for it.

For the remaining rooms towards Red Brinstar, no improvements were found.

Red Brinstar

Before reaching the PB pack, no improvements were found.

When leaving the PB pack's room, I noticed that it's faster to not jump right in front of the door. Performing certain actions right before entering doors can cause extra processing time to be added to the transition. This is usually due to the sound effects associated with the actions performed. For this reason, I wait until transitioning into the next room before jumping.

In the elevator room, I reduced PB lag by a few frames.

Taco's updated method of using a bomb spread in Red Tower is a few frames faster than the one the currently-published runs used. I was not able to improve upon it.

To save time later in the run, the glass tube needs to be destroyed upon visiting it for the first time.

Kraid's Lair

PB lag in the first room was reduced by 1 frame.

Minikraid's hallway was improved by 3 frames at the cost of some energy due to Minikraid's stone attack pushing Samus forward. It was a bit of a lottery win since previous runs had been pushed back by Minikraid's spikes instead.

The highlight of this area is certainly Kraid himself. ED theorized that destroying Kraid's stones might be able to reduce lag, which indeed it did. Then, I accidentally noticed that having Samus take damage while Kraid is rising would reduce it even further, due to the game only having to draw Samus every other frame during her invulnerability period.

All in all, the Kraid fight was improved by an enormous 53 frames over Taco's WIP.

While collecting Kraid's drops, I discovered something neat - if Samus's energy drops to zero on the same frame an energy drop is collected, Samus will not perish, regardless of how much damage was dealt. I utilized this to not only d-boost 1 frame earlier to collect the drops, but also save 15 energy. (01 -> 00 -> 20 instead of 01 -> 21 -> 05)

A few frames were saved by exiting the lair with a d-boost.

Norfair

The descent from the elevator into the first heated room was improved by about 5 frames by better centering of the door, and shooting it open earlier by performing a downback instead of morphing and unmorphing towards the door.

Rising Tide showcases yet another major change to real time optimization strategy, which I touched on briefly earlier. Rooms that include the quaking sound effect (with rising lava/acid accompanying the sound) will cause a transition to take 18-42 frames longer than normal to load. This is because the game is programmed to wait for everything to clear out of the sound queue before the door will load. Amusingly, I discovered that the sound of a PB explosion will clear the sound queue out entirely, causing doors to load instantly, and saving around 20 frames in this room.

I entered Bubble Mountain with slightly more speed than Namespoofer did, which saved 2-3 frames for the midair CWJ sequence. The d-boost towards the next room was improved by a few frames as well.

If the top of the Bat Cave is reached with perfect movement, the screen will be at an extremely low position. I fixed this issue by staying in the air for a bit after walljumping up and then jumping towards the transition to perfectly center the screen. I followed this up with a perfect unmorph (slopekiller) to save over 10 frames in the next room.

I used a PB in Speed's room for the same reason explained previously, saving 10-15 frames.

The hallway before/after Speed is not a simple mad dash like in prior runs. Instead, I charge a spark and cleverly apply it to obtain a spark suit in the Bat Cave while farming the respawning Gamets. Here, I also disable Speed due to the upcoming lava dive, which will be explained later. I specifically disable it in front of the door to the Bat Cave because unfortunately, this is yet another room that contains the quaking sound effect, but thankfully, pausing the game will stop the game from producing such sounds, and after unpausing, I can leave the room before the game has time to restart the quaking sound.

The spark suit is created by clipping inside the slope next to the Gamet well, and then d-boosting to land and activate the spark immediately. This also allows me to farm two Gamet waves while waiting for the spark suit to be created. A third and final wave is farmed afterward due to upcoming energy/ammo requirements.

Back at Bubble Mountain, I reduced PB lag by killing another Waver, as otherwise, it would continue moving while off-screen. In general, entities that continue moving while off-screen cause additional lag because the game continues to calculate their position every frame. I center the door to the room below perfectly during my descent.

In the purple shaft below Bubble Mountain, I gained additional speed for the CWJ in the next room, saving around 12 frames.

The room before the lava dive was improved by farming one more Viola to acquire one more PB and reduce PB lag, saving a few frames.

To understand what happens during lava dive requires understanding how lava functions. When Speed is not present, lava will not reset Samus's dash speed upon making contact with it. When it is present, having any dash speed will result in it resetting. A spark automatically sets the speed counter to 4 even if Speed is disabled. Normally, this makes sparking diagonally impossible in lava, and although sparking horizontally is possible, the speed of the spark will be tremendously reduced.

ED discovered earlier that pausing and unpausing the game while Speed is not present will reset the speed counter but not dash speed. From there, I found out that there's exactly one frame in lava where if you pause while initiating a spark, the horizontal speed component of the spark will not reset. While unpausing, the game removes the speed counter but maintains horizontal speed, thus allowing a spark to be performed diagonally in lava.

Even with having to pause, this saved around 3 frames compared to doing a vertical spark, and conserved 26 energy.

Speed is re-enabled while initiating the Lower Norfair elevator. It is specifically re-enabled here because pausing and unpausing while activating an elevator that travels downwards will cause the transition to occur 48 frames earlier than normal. Instead of scrolling Samus all the way off the screen before transitioning, the game will transition as soon as Samus touches the bottom of the screen.

Lower Norfair

The elevator room uses the same strategy that both Namespoofer's 14% and T&K's Any% used; however, I left the room while in midair. Doing this triggers the grounded pirate to fire at Samus while the room is brightening, causing the room to load 10-20 frames faster than usual.

The pillars room also uses a shared strategy involving performing a CWJ while maintaining blue echoes, which happened to have much more lag on Lsnes compared to snes9x v1.43. For an unknown reason, holding UP and RIGHT near the end of the speedkeep reduced 16 frames of lag.

Thanks to Reeve, a spark suit is obtained in the worst room in the game, and the spark that produces the spark suit here is used to spark up through the platform and through the middle ceiling. I managed to better center the screen while entering the next room, saving around 13 frames.

The spark suit is used in the Amphitheater, followed by yet another PB to clear out the quaking sound, saving around 15 frames.

While departing the Amphitheater, a spark is charged to slay and farm two of the three Kihunters in the next room. This also reduced lag from the two PB explosions by 150-180 frames.

In Wasteland, there's an important detail regarding the Kzans (spiked platforms) that doesn't appear to have ever been explained, despite being present in runs for nearly the past decade. If you d-boost off of a spike and turn around immediately while facing downwards, Samus will be pushed 10 pixels downwards due to the turnaround ending on the same frame that the knockback timer ends. This technique was performed on the first Kzan and saves 1-3 frames compared to not using it. It could have been used for the second Kzan, but the screen would end up in an awkward position, making it useless for realtime optimization.

Because I enter the steel pirates' room with low E-Tank energy, I can perform a faster strategy by having a vertical spark 'crash' right above the floor, saving 40-50 frames combined between their room and the room after. Although I may appear to have low energy, I still have enough energy in the R-Tank to ensure I receive more than just energy from the first pirate's drops.

Ridley

Personally, the Ridley fight is one of my favorite parts of this run. I was able to greatly reduce PB lag and completely eliminate all other lag from the battle. The inclusion of moonwalking allowed me to prevent all turnarounds that would have otherwise affected beam-charging time.

During the encounter, I realized that, compared to morphing while in the air, each PB can be used 2 frames faster if Samus instead morphs on the ground from an already-crouched position. This occurred four times, thus saving 8 frames.

Additionally, I was able to reduce the lag and shot delay after each PB, saving 140-150 frames over Namespoofer's Ridley during the PB explosions.

If I had the same ammo as Namespoofer (5/15/5 instead of 10/10/5), this Ridley fight would be ~4.5 realtime seconds faster than his due to the reduction of lag, elimination of unnecessary turnarounds, and less delay between shots.

Norfair Escape

I was able to collect Ridley's drops and leave slightly faster, and throughout many of the rooms leading up to Wasteland, I was able to save frames over prior runs.

Upon entering Wasteland, I use the spark charged before leaving the steel pirates' room to create another spark suit and spark through the first Kzan. This spark suit is maintained until Maridia, and this location provided the best opportunity to obtain it.

2-5 frames were saved while leaving the boulder room as I was able to open the door to the next room earlier while maintaining more speed.

The Three Musketeers room is very laggy and did not go exactly the way I wanted it to as I was unable to, given the circumstances, manipulate the Kihunters to be completely out of the way. At the very least, I managed to reduce the amount of lag frames to 7.

Upon escaping Lower Norfair, using only bombs to break away the pillars is 11 frames faster than using a PB due to 90 less lag frames.

Again, at Bubble Mountain, I killed the additional Waver to reduce PB lag.

Maridia

I'll begin this chapter by explaining why moonwalking is incredibly useful in Maridia. Taco discovered that momentum is stored if Samus moonwalks and then begins to move forward on the next frame. Not only does this allow Samus to both gain more dash in a shorter distance and charge a spark in a shorter distance, but also allows her to immediately obtain 0.32768 momentum right when she starts to move forward underwater. Without Grav, momentum only increases by 1024 subpixels per frame underwater, which is quite slow, so it saves many frames by being able to start moving with 0.32768 momentum instead of 0.

Outside of the test run, there aren't really any comparisons to other runs available for a lot of rooms in Maridia. Mt. Everest, Colosseum, and Draygon are perhaps by far the most interesting aspects of this run in this area of the game.

By careful manipulation of Samus's speed and height, I was able to perform a gravitation jump from the broken tube up to the closest platform in the room above.

Four door jumps were performed in Maridia, and they all saved a bunch of time since it means not having to perform as many awkwardly-slow walljumps. The one at the start of Fish Tank is actually mandatory for scaling the room. Similarly, dispatching the Skultera is also mandatory, as it would otherwise swim into me during the peak of the climb.

At the start of Mt. Everest, the walljumps were performed in such a way to keep one of the Scisers off-screen long enough so it wouldn't path into me during my ascent up the hill, but would reach the top of the hill soon after me. With that Sciser in position, I allow the Sciser on the far right to scale the mountain so that the large energy drop will be placed in my spark's path, then I pop the Powamp so that its projectile, which luckily deals very little damage, will grant me invulnerability so I can position myself inside the Sciser.

I pause the game on the frame that the knockback counter hits 1, then set the R-Tank back to auto. ED discovered that during the unpause, the R-Tank activates automatically due to being at 0 energy, and invulnerability frames continue to deplete during the R-Tank's 1-energy-per-frame refill. The invulnerability period from enemies lasts 95 frames, so 100 energy is just enough to consume all of the invulnerability frames.

After the refill completes, 5 new knockback frames are immediately provided due to still being inside the Sciser and due to the previous knockback timer not having time to expire before the R-Tank activated. Additionally, I pause and unpause the game again because otherwise, the screen would remain black until the next pause, which wouldn't occur until Colosseum (and would displease most viewers). The additional knockback frames provide me enough time to activate a spark on the slope, thus forming another spark suit. I pick up a large energy drop from both the Sciser on the hill and the Sciser that was on the mountain. Obviously, I wouldn't have made it up the mountain without those, given the energy I had.

Importantly, I was kept above 29 energy upon the spark crashing. Being placed below 30 total energy causes an 'energy bomb' effect where every item drop would become energy until 49+ energy is reached again, which, because of my ammo, would hinder me greatly with Botwoon coming up.

In the Aqueduct, RNG or something similar seems to control the time it takes for the Yards (snails) to 'wake up.' I manipulated this time to be the shortest amount possible for each jump during the climb.

Taco created a useful drop prediction LUA script, which helped me manipulate the correct RNG to generate the best set of drops from Botwoon.

In the Colosseum, the first two increments of the speed counter are gained by the time Samus jumps out from the save station. Unfortunately, the distance in the save station is necessary to obtain the second speed counter for the initial spark, so skipping it is currently impossible.

A bomb is used to reach the nearby ledge. Unmorphing is the only way to remain still while maintaining the speed counter value. Unmorphing places Samus in the 'fall state', and morphing from there without resetting the speed counter is normally impossible; however, ED discovered that this isn't the case if you hold down, pause, release down, unpause, and start holding down while the game is unpausing. This causes the game to perform two down inputs in a row without space between them, allowing Samus to morph without resetting the speed counter.

Upon reaching the ledge, the next step is to reach the floating spiked platform with a bomb jump. I bounce just before the bomb explodes which allows me to unmorph on the edge of the spikes without rising. Speedkeep is performed during the unmorph, and there's barely enough space for a third increment of speed to be obtained.

With the speed counter now at 3, I immediately crouch and hold an angle to prevent falling and resetting the speed counter. Then, I d-boost to shift back while maintaining the speed counter. The next bounce doesn't need to be stored with a bomb thanks to moonwalking - I simply bounce on the spike and unmorph. The unmorph occurs further left, so I have to moonwalk a bit before I'm finally able to switch direction and gain the fourth and final speed increment with which to charge a spark and create yet another spark suit. It was worth the effort.

During this entire procedure, I was able to burst both Mochtroids while receiving the intended drops from them and without spending any additional time to do it.

Draygon

Draygon's movement is interrupted by 5 frames every time she takes damage, so I strike her with multiple projectiles on the same frame during her swoops to condense these interruptions and begin her next round sooner.

I end the first mucus cycle by activating the spark suit that I created in the Colosseum and have Draygon immediately grab me, which creates a blue suit. There are a few reasons for having blue suit at this point in the fight:

  • Prevents me from taking damage while mobile (relevant in the third round)
  • Allows me to aim upwards while in midair to continue farming during the last round (if I aimed upwards in midair with the spark suit, it would activate the spark)
  • Allows me to come into contact with a mucus particle to force Draygon to swim upwards in the final round (otherwise, I would have to use a PB, which would cause a massive amount of lag and reduce my PB count)
    • Because I am not using a PB anymore, I can farm much more in the final round while I wait for Draygon to float far enough left to be able to spark into her without taking damage

In the final round, I was able to farm a dozen drops and deal the remaining damage necessary for the escape spark to finish Draygon off. Draygon's death interrupts the spark by forcing Samus into a standing pose, creating another blue suit with which to escape the next room.

Maridia Escape

Abusing the fact that the top of Draygon's entry chamber is not submerged while the bottom of the Colosseum is, I perform a gravitation jump followed by a few bomb jumps, saving a lot of time compared to the test run's strategy.

The next large timesave worth mentioning takes place within Cacatac Alley. I manipulated RNG so that the last Cacatac would fire its spike and allow me to boost upwards and ledgegrab roughly a second earlier than if no spike were present.

The Sciser maze was improved by 1 frame due to an unexpected discovery by Nymx. If you attempt to unmorph while midair inside of a tunnel, the game will set your subpixel value to 65535, which can push yourself downward by 1 pixel per frame and can let you land much earlier in some situations. Landing is important because while morphed, Samus moves much faster on the ground than in the air.

Wrecked Ship

This area begins similarly to Saturn's RBO run. I sparked through the bottom door of the first room with just enough energy to reach the door, and saved time by perfectly centering the door.

In the room after the spikes, I did not jump right before entering the Wrecked Ship's main shaft. As mentioned earlier, jumping right in front of a door adds extra processing time.

In the room before Phantoon, I used a speedball to break away the block which saved both a frame and a PB.

Phantoon

This is yet another boss battle that has changed significantly. Overfiend noticed an odd glitch involving a spark's echoes that can cause one of its echoes to respawn indefinitely.

There weren't any known uses for this glitch until I made it to Phantoon, and it turns out that it's actually helpful during the battle. Spark echoes are considered Plasma/Wave-type projectiles and do not put the beam on cooldown, allowing me to extinguish four of Phantoon's flames in an instant without using the beam, while still encountering Phantoon's fastest one-round pattern of "left fast". Nine out of ten of the flames that Phantoon spawned were farmed, and I am very satisfied with the result.

To Tourian

The interesting stuff is not over yet!

After re-entering the Wrecked Ship's main shaft, I found another new trick - if you release forward for 1 frame while holding dash, and jump 1 frame later while still holding dash, you will automatically receive 1 frame of dash speed (0.04096), which automatically gives the highest jump speed. This saved 1 frame on one of the staircases, a frame I am very proud about.

Besides that, more frames were saved before leaving the Wrecked Ship by perfectly centering the door.

I use the same underwater bounceball strategy as Saturn's RBO run at the ocean; however, Saturn's bounce was not perfect. Midair morph ball momentum oscillates between 1 and 1.49152, but when Samus enters water while morphed and without Grav, this value does not oscillate up to 1.49152 anymore and, upon touching the water, does one of the following:

  • If the value was 1, it will start increasing by 1024 subpixels per frame until 1.32768 is reached.
  • If the value was 1.49152, it will change to 1.32768 immediately.

Saturn morphed on a bad frame which resulted in him touching the water with a momentum value of 1, so he lost 1 frame there.

In the room after the moat, I shot the door to the connector tube open with a very precise diagonal shot over the Kihunter, allowing me to run the entire time without stopping or slowing down, and killing the Kihunter with blue echoes.

At the Landing Site, I shot the magical Namespoofer-style charge shot to open the next door without stopping, but I did so while having 6.36864 dash instead of 6.28672, which probably saved 1-2 frames.

Similar to the above, I entered Terminator with 3.08192 dash instead of 2.49152, which probably saved 2-5 frames.

Terminator had to be executed carefully, as armpumping on wrong frames will produce lag.

In the pirate shaft, I was able to open the red door leading to the statues 1 frame earlier by shooting the last pirate instead of d-boosting from it.

Tourian

Not to sound like a broken record, but this is another interesting area of the run, as I managed to save around a whopping 13 seconds over Namespoofer's 14% in the Metroid rooms combined, due to a better understanding of how to strike all of the Metroids in a room with PBs, and better understanding of RNG to receive the appropriate drops with minimal delay. Lag was also massively reduced.

Overfiend noticed that a spark can be used to avoid the forced kneeling pose that occurs at the end of the Super Metroid's drain, as well as MB's rainbow beam drain, allowing Samus to stand up and move immediately. This saved over 2 seconds compared to Namespoofer's style of skip.

Mother Brain

MB's first phase was improved by reducing lag in a manner similar to Kraid - by abusing the spot on the lower part of MB that deals zero damage and grants Samus invulnerability, reducing the time she's drawn to the screen. I reduced lag further by destroying Rinkas with Missiles that would also strike MB, due to being at point-blank range, and was able to fire without any delays. Being at point-blank range is inherently less laggy due to Samus's projectiles disappearing from the screen immediately.

The first shot on MB2's second phase was fired 6 frames earlier by performing a spinjump and unspinning with angle up right before landing on the ground, making the shot travel slightly slower than normal.

Other than the above, the battle is similar to previous runs, except I tried to have Samus perform entertaining movement and exciting dodges. Moonwalking certainly helped in this department.

Lag during MB's redbeam phase was reduced through careful movement and by attempting to fire most of the shots as close to MB as possible. Too many sprites existing on the screen at once often causes lag here.

Before rainbow beam occurs, there is a timer MB uses which counts from 240 to 0 before each redbeam. Having it as close to 0 when MB's second phase hits 0 health would yield the least amount of downtime before rainbow beam, but I unfortunately only managed to lower it to 77, thus costing 77 frames. I would've had to have redone most if not all of the fight to have potentially improved the outcome.

MB's third phase is handled with the same attention to lag reduction - firing as many shots as possible from as close to MB as possible. MB's death has a weird counter that can make her die faster or slower. I did not compare this to every other run out there, but I noticed that MB died about 20 frames faster than Namespoofer's 14% and Saturn's Any%.

Lastly, I spark while MB is fading away to set my energy to the proper amount for a certain room in the escape.

Escape

The first room had to be executed slightly differently than runs performed on snes9x v1.43 - I had to sacrifice 1 frame of movement in order to reduce about 10 frames of lag.

I improved the fourth room by 3 frames by incorporating my new "forwards-release" technique that I used in Wrecked Ship to gain 0.04096 dash, resulting in more distance while still being able to jump with ideal height.

I improved the climb room by 5-8 frames by being able to land earlier after the spark due to reduced energy.

Due to better understanding of RNG, I was able to find decent steam patterns for both the Parlor and the Landing Site by changing the frames that pirates perished on in the fourth room and the climb room.

Overall, this section was improved by 30-50 frames over Namespoofer's 14% and T&K's Any%.

The final jump to the ship may look suboptimal, but it actually reduced over 10 lag frames, making it the fastest option.

Additional

There were many other small improvements that occurred throughout this run that I chose not to list because it would have made these notes way more lengthy than they already are.


New and forgotten techniques used in this TAS

Boomerang ledgegrab

This has been used in previous runs, but has never been properly explained or mentioned.

If the ledgegrab direction is left, the inputs are as follows:

  • 1: <
  • 2: >
  • 3: <
  • 4: > v

If the ledgegrab direction is right, the inputs are as follows:

  • 1: >
  • 2: <
  • 3: >
  • 4: < v

This will allow you to gain 1 extra pixel during the ledgegrab. The uses for this are limited to places where you are not able to gain any dash before ledgegrabbing, as stopping to perform this would only slow you down otherwise. I used this in several occasions and I estimate it saved a total of 10 frames.

Underwater left-direction walljump check movement boost

I discovered this late into Maridia. Since a spinjump's deceleration is so slow underwater, it ends up being possible to, while next to a wall on the left, switch direction to the right while spinjumping left to trigger a walljump check. The walljump check forces the subpixel value to be the best possible amount every frame - 0 while moving left and 65535 while moving right. This causes Samus to travel 2 pixels per frame instead of the standard 1.24576 that spinjumping gives.

I saved 2 frames with this technique - 1 in Cacatac Alley right before the spike d-boost, and 1 in Plasma Spark room near the left wall with the angled slope ground. As long as your momentum is above 1, you will receive 2 pixels per frame speed with this every frame. This trick is useless while your movement direction is right, since you can just hold both left and right to force the same effect to occur without turning around.

Getting more dash speed in shorter distance with moonwalk

Taco discovered that by executing the following inputs with moonwalk enabled, you can gain more dash speed in shorter distance than the game normally allows you to:

  • 1: X >
  • 2: < B
  • 3: < B
  • 4: B
  • 5: < B (hold)

The above example assumes you will be moving to the left.

I used this in various places to save frames.

Releasing forward before jumping with Speed equipped

I discovered this while in the Wrecked Ship. The previous run, which also did not have HJB, pressed dash for only 1 frame (0.04096) and then walked forward for a few frames before jumping, because anything above 0.04096 would result in an awkwardly slow jump speed.

This has now changed. You can hold dash for, let's say, 6 frames, while armpumping forward, then release forward for 1 frame while holding dash, then jump on the next frame. The game will give you the magical amount of 0.04096 dash and a good jump speed as a result.

In the Zebes escape, this saved 2-3 frames in the fourth room, and 1 frame in the Parlor (room before Landing Site).

Optimal walljump intervals

While above water (or in liquid with Grav equipped), without HJB or Speed equipped: holding jump for 12 frames before releasing for 1 frame

While underwater without Grav or HJB equipped: holding jump for 5 frames before releasing for 1 frame

Spike d-boost-turnaround downwards shift

By instantly cancelling a d-boost off of a spike, aiming down on the next frame, and starting a turnaround on the frame after, Samus will shift downward 10 pixels due to the knockback timer ending on the same frame as the turnaround ends. I used this technique on the first Kzan during the first visit of the Wasteland in Lower Norfair, saving 1-2 frames.

Previous runs have used this technique, but never mentioned that it was used, and never explained how it works.

Ball pump

Yes, you read correctly. Ball pump, not arm pump?! It is a unique discovery by the one and only Nymx.

If you try to unmorph in a morph tunnel while you are still in midair and falling, your Y subpixel value will be normalized to 65535 instantly. What this is able to do is effectively push you 1 pixel downward per frame if you are alternating inputs of A and UP every frame for a few frames.

Diagonal lava spark without losing dash

I discovered this while working on this run. There are only two requirements to prevent lava from resetting a spark's 8 dash speed.

  • Speed must not be equipped

  • Resetting the speed counter before it resets the dash speed of the spark (a frame-perfect pause makes this possible)

Spark force-stand

Overfiend noticed that a spark's crash is able to overrule the kneeling pose that occurs to Samus after the Super Metroid's drain and MB's rainbow beam's drain.

Respawning echoes

Overfiend noticed this one as well, while I was still working on Maridia (great timing). It seems that if a spark's echo exits the screen quickly enough, and the other echo remains on-screen by the time the first echo would be able to respawn, the other echo will continue to respawn forever (unless Samus moves in a manner that causes it to disappear).

I immediately started searching for potential uses for this technique, and Phantoon turned out to be the perfect place for using it, allowing me to farm flames without having to involve the beam.

ED created a map that lists every location in the game where this glitch will occur.

Slopekiller

By storing vertical speed, you can make the game forget to do certain things, including things related to the functionality of slopes, quicksand, and treadmills (Wrecked Ship).

This technique was discovered long ago with treadmills, but in 2015, I discovered this is able to prevent slopes from slowing down Samus. Storing vertical speed requires a pixel-perfect unmorph towards the ground, in such a manner that the ground does not reset vertical speed.

Used in several occasions during this run, including Terminator room and Speed hallway.

Knockback spark

ED discovered this in June 2015, and is the main reason this run exists. I was able to make this work underwater with enemies instead of just spikes.

If you are able initiate a spark on the same frame the knockback timer runs out, the game will never finish the spark properly. Instead, Samus will hover in the air forever until the spark is triggered. If you trigger the spark after the spark timer has already expired, you will receive a spark suit (free, stored spark) that can be used whenever, wherever.

Clearing sound queue for instant door loads

I discovered this when I made it to the PB door before lava dive. This game is programmed to wait until sounds have completely ended before the transition into another room will begin. I accidentally noticed that a PB explosion will clear out all of the sounds, allowing the transition to begin immediately. Pausing the game will also interrupt sounds as well.

I put this to use four times in this run - three of those times with a PB, one of those times with a pause - to clear out the quaking sound that occurs in those rooms, saving a total of 80-90 frames.

Therefore, there's two known methods for performing this in a time-saving manner:

  • Use a PB
  • Pause (if you need to turn off an item at some point, it's better to do it in such a situation to save frames)

Moonwalk momentum storage

Taco discovered this around the same time he discovered how to gain more dash speed in shorter distance. If you switch direction to forward while moonwalking, your momentum will start increasing from the moonwalk's momentum value of 0.32768, instead of 0. Moonwalk's speed is still 0.32768 underwater, so this allowed me to start moving with 0.32768 momentum instead of 0.

I estimate this saved 500-1000 frames in this run.

Moonwalking to shift screen's X position into opposite direction

This was used in a few places, the most notable and obvious being to destroy the Gadora (eye door) in Tourian to gain some distance away from the door while still having the Missile strike the eye.

Lag reduction methods

In general, minimizing Samus's hitbox/movement, the amount of enemies on the screen or off-screen (especially if they are capable of off-screen movement), and the number of projectiles on the screen will reduce lag. Sometimes, random inputs and making enemies move slower will also help.

Having Samus take damage and become invulnerable, so that the game only has to draw her sprite every other frame, can help as well. (see Kraid and MB1 for examples)

During Ridley, I noticed that having Samus crouch while holding both angle buttons greatly reduces PB lag, and saved 30-50 frames.

A creative way to reduce lag is to fire all shots as close to the target as possible to reduce the time in which the projectile exists. (see MB for examples throughout the phases)


Known & Potential Improvements

Ceres -> Green Brinstar

  • 1 frame by exchanging 1 Ceres elevator room lag frame (preventing it) into slower gameplay to make blue Brinstar elevator frame rule sync.
  • 1 frame while exiting first Missile pack by holding shot during door transition. This clears Samus' sound queue which morphing/spinjump causes.
    • Unfortunately, another frame would need to be saved on top of this one to make use of this due to elevator frame rule.
  • 2 frames by using ball pump in the Alcatraz escape tunnel.
  • 1 frame by shooting door towards Terminator room 1 frame earlier with careful screen manipulation that I found later.
    • Unfortunately, another frame would need to be saved on top of this one to make use of this due to elevator frame rule.

Green Brinstar

  • Maybe 1 frame while collecting the first Super Missile pack by getting the screen a bit higher earlier during ledgegrabs.

Pink Brinstar

  • Nothing =(

Red Brinstar

  • 1 frame by holding shot while transitioning into the glass tube.
    • This would have cost me 3 frames later in this run because Mini-Kraid would not hit me with a stone due to different RNG. =(

Kraid's Lair

  • Further Kraid lag reduction?

Upper Norfair

  • Few frames in Bubble Mountain by using the Cacatac for a d-boost instead of farming it.
    • 1 more drop would need to be farmed elsewhere (in a faster manner) to use this.
  • Possibly farming the Gamet waves with less delay by finding better RNG through the manipulation done in RNG-XBA rooms.
    • I think this run delayed actions by a total of 10 frames there in order to receive 15 perfect drops.
  • Skipping third Gamet wave by doing something else earlier in the run to farm 5 drops in less than ~80 frames?

Lower Norfair

  • 1 frame by implementing my new forwards-release technique on the return trip through Red Kihunter Shaft.
  • Further PB lag reduction in the room before the pillars?
  • Further centering of the screen before entering Amphitheater? This run contained the best result of my attempts at it.
  • Further Ridley PB lag reduction?

Norfair Escape

  • Better manipulation of Kihunter positions?
  • Further PB lag reduction in Bubble Mountain again?

Maridia

  • 1-2 frames in Fish Tank by implementing new leftwards walljump check trick near sloped ground left walls?
  • Further optimization of Mt. Everest strategy?
  • More Super Missiles in Botwoon's drops?
  • ~10 frames in the room after Botwoon by implementing ball pump.
  • Using more Super Missiles against Draygon, while still trying to obtain more large energy drops (~12% chance)?
    • A Super Missile will deal the same amount of damage as three Missiles but interrupt Draygon for 10 less frames.
  • Shortening short charge inputs somehow, to make charging spark possible in Colosseum without visiting the save room?
    • This would save at least 10 seconds but there doesn't seem to be any hope of this happening.

Maridia Escape

  • Implementing one more d-boost in the Thread The Needle room?
    • It would cost 30 or 40 energy depending on which damage source is used, requiring adjusting prior energy/ammo management.

Wrecked Ship

  • It may be possible to improve Phantoon by 8-10 frames, if some of the flames could be extinguished a bit further to the left.
    • Farming nine flames would still be required to keep up with the equipment requirements for the remainder of the game.

Road to Tourian

  • Performing a shinespark to cross the ocean instead of bouncing through it.
    • Although this would save ~63 frames, it would leave Samus with very little energy, and would require more energy than I had at that time in this run to perform.

Tourian

  • Further PB lag reduction in Metroid rooms and improving their death positions while still receiving the appropriate drops.
  • Further lag reduction of all phases of MB?
  • Up to 75-77 frames by reducing MB2 rainbow beam timer as much as possible.
    • Manipulation for this would have to begin at some point before redbeam phase.
  • Up to 20-23 frames by reducing MB3 death timer as much as possible.
    • Altering the frames she gets hit by Hyper will change her AI RNG.

Escape

  • 10-20 frames in the last two rooms by receiving even better steam patterns?
    • I spent around 10 hours cycling through ~500 different RNG values via RNG-XBA effect applied in the fourth escape room and climb room, and was unable to find an improvement.

Additional

  • Acquiring a third Super Missile pack in place of a Missile pack?


Special Thanks

  • Overfiend for discovering spark force-stand and respawning echoes. He also reworked these submission notes to be more comprehensive and understandable.

  • Total for assisting with the route planning and research of this category (mainly, testing Colosseum spark) when it had yet to be confirmed as possible, and debugging several glitches whenever I needed him to. He also provided me with useful LUA scripts such as an "uber-small" hitbox script, which I used for visualizing how the Kihunters in Lower Norfair move.

  • EternisedDragon for being the major reason why this category is possible due to this knockback spark discovery, and checking my work every so often to think up potential improvements.

  • Taco for providing me with the inputs from his high-quality Any% WIP, which assisted up to Ridley and which I was only occasionally able to improve upon. He also debugged several glitches and provided me with his drop prediction LUA script. He was really helpful during this project and even coached me during my time as a noob.

  • Nymx for discovering ball pump! I genuinely thought all of the tricks for this game had been discovered by then, but that's apparently not yet true.

  • WildAnaconda69 for fixing some of my grammar in the submission notes.

  • The rest of the community for keeping me from abandoning this project when things got rough, and helping me push it all the way to the end.


Suggested screenshot: https://puu.sh/rZyIZ/2d7affd222.png


Mothrayas: Judging.

Mothrayas: The technical quality of this submission is top notch, and it is great to see another percent lopped off and to see all the creative movement techniques required with this restriction. However, its entertainment value is held back a bit by some of the very long boss battles and occasional slow movement parts. Accepting to Moons as low% as an improvement to the two currently published low% movies.

Spikestuff: Publishing


Similar submissions (by title and categories where applicable):