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

Submission #2429: Taco and Kriole's SNES Super Metroid "any%" in 38:41.52

Console: Super NES
Game name: Super Metroid
Game version: JPN/USA
ROM filename: Super Metroid (JU) [!].smc
Branch: any%
Emulator: (unknown)
Movie length: 38:41.52
FrameCount: 139291
Re-record count: (unknown)
Author's real name: Taco, Kriole
Author's nickname: Taco and Kriole
Submitter: Power Rangers
Submitted at: 2009-10-23 01:03:23
Text last edited at: 2010-08-08 05:56:02
Text last edited by: Nach
Download: Download (17457 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:
Emulator Information

This Run Aims For

About the run itself

This run is an improvement over Hero of the Day's run by 3077 realtime frames, and 2774 ingame frames, clocking in at a time of 23 minutes and 29 seconds (23:29). The reason for the improvement is because of the higher level of optimization, and the new route. It is also to be noted that this run is about 16 seconds faster than Cpadolf's ingame oriented run.

It might be interesting to know that this run started nearly 3 years ago. The first smv was created on the 18th of February 2007. Since then it has faced about 20 restarts, and a very long downtime, due to lack of motivation. Due to all the restarts, the rerecord count might be misleading. So we decided to hexedit it and add a funny number instead. While it is hard to calculate the exact number of rerecords of all the smv's, we estimated the rerecord count to be in the early 7 digits.

The Route

The fundamental differences between the new route and the old route are as following:

While the original idea was to skip Kraid's lair until after Ridley, we determined it slower, because of the lack of both the refills from Mini-Kraid, and the skipped Energy Tank. Also Ice Beam is skipped until after Ridley, to avoid a pause screen before him.

Other Major Improvements

All bosses but Draygon and Mother Brain were improved; on Draygon we picked up 6 more refills, and Mother Brain is slower to kill with Power Bomb shields than with the Spazer. The Bomb Torizo, Phantoon, Ridley and Kraid were improved quite a bit. At Torizo, the improved Torizo skip was applied, which saves nearly a full second over the old method. This is hard to measure, since individual skips may vary in time. Compared to Hero of the Day, 59 frames were saved. For Phantoon, we tried a different approach which proved to be very favorable. Compared to Hero of the Day, 106 frames were saved. At Kraid, a new strategy was used, which was published long ago; the idea is to shoot him while his mouth opens a tiny bit first. This makes him not close his mouth again, instead he opens it up completely. Roughly 60 frames were saved compared to Hero of the Day. Ridley was the whole reason for the new route; Power Bomb Shields do much more damage compared to the Spazer/Ice/Wave combo. Roughly 1300 frames were saved here.

Draygon and Mother Brain were the setbacks in this run; due to more refills from Draygon, we lost 76 frames. Also, Power Bomb Shields are not really designed for Mother Brain, since one of the shots is blocked by her body. Therefore, awkward jumping movement is needed for all 4 shots to hit. About 800 frames were lost here.

Other improvements are due to the higher level of optimization. Some framesaving tricks were found and used in this run. The first one is called the Subpixel Momentum Boost, short smb. The idea behind an smb is to spinjump towards a ledge and catch it while moving towards it. By doing this, you can get a little boost (half a pixel under perfect conditions, 1 pixel if using the turnaround trick Cpadolf found) which might save a frame in different places. It was used on all ledges where time could be saved, even if it did not. Later on, the perfect smb was found, which allowed smb's on all ledges, without having to optimize the starting position. The idea is to trigger a walljump at the same frame as you catch the ledge, where the walljump resets your subpixel to you highest, respectively, lowest value depending on where you are facing. Thus giving a perfect position everytime. As for Cpadolf's method, which included a little turnaround just before executing the smb, not a single application for this new smb was found. It was used once, but sadly it did not save any frames.

Another very fundamental trick is the x.04096 speed optimizations (assuming you have the Speedbooster, but no Hi-jump). This is one of the bigger framesavers as far as optimization goes. Every speed with a subpixel speed with 0.04096 gives the highest possible Y-jump speed possible. For example, jumping with a speed of 0.04096 gives a higher Y-jump speed than jumping with a speed of 1.00000. This is commonly used when you have to run for a few frames before you can jump; skipping dash for a 0.04096 speed will usually save time. Also, all other x.04096 speeds were used when climbing different shafts.

Left+Right walljumping was used in some places, where high speeds and awkward turns would ruin a normal walljump, but a inverse walljump would save time. An inverse walljump is a walljump on a ledge to the right of Samus, but the walljump is done from the left side. Sadly, this only works when facing right. This trick can also be used to trigger door-animations earlier, without adding any lag to the door transitions (it might at higher speeds).

Also, we discovered that unspinning before shinesparking gives Samus a full pixel of Y-position.

Door Transitions

This topic does indeed deserve its own header; many improvements had to be ignored due to random doorlag which made them end up either slower or equally fast (most likely changes the drops on future enemies aswell):

Door Transitions are very random. While they can be manipulated to an extent (such as positioning Samus to avoid scrolling doors), many improvements lead to differences in how long the door transition lasts. Now, the difference from this door might affect another door. This might work out in the favor of the player, but during the 2nd half of the game, all improvements worked against us (we kept one, since it gave us an ingame frame but no difference in realtime). We also have this theory that the droptables for most monsters (most pipebugs do not support this theory) are decided during the door transitions, which makes hex-editing much easier and gives it a higher successrate (assuming there is no differences in doorlag).

To create a perspective, a 4 frame improvement in the rising acid room in Lower Norfair ultimately gave us a 16 realtime frame lead. Sadly, the rising acid room was, since, reworked.

Special Thanks

We want to thank all the people from the Super Metroid community, such as:

If we forgot your name, we're really sorry :(. Just poke us and we'll add your name.

Nach: Amazing run, accepting.

Similar submissions (by title and categories where applicable):