Game Objectives
- Emulator: lsnes rr2-β23
- Aims for fastest time
- Takes damage to save time
- Abuses programming errors
- Executes arbitrary code
About the TAS
This is a TAS of Super Metroid that uses out-of-bounds glitches and arbitrary code execution to end the game in just over 7 minutes. It improves the currently published TAS of this category by 72 frames. Since this is a relatively small improvement compared to most new Super Metroid TASes, I have listed all of the improvements here in the submission text.
Although I (Taco) created all of the input of this TAS except for the last frame (by Total), I've listed Total and Sniq as coauthors again for the same reason as the currently published TAS: it's because of their hard work that this category is even possible in the first place. Improvements being found in no way diminishes that fact. Plus, some of the ideas that Sniq shared with me along with his thorough explanation of the out-of-bounds section saved 10 frames, and Total totally (heh) saved me when I mistakenly made most of this TAS on Bizhawk instead of lsnes. Oops. >_>
Breakdown of Improvements
Note that "realtime" refers to the overall frame count of the movie and "ingame time" refers to the game's built-in frame counter. Unless otherwise stated, all improvements are in both realtime and ingame time.
Ceres
This submission finishes Ceres 20 realtime frames faster than the published movie, but that is because of a difference in goals; this submission aims for the fastest realtime, but the published movie spends more time on luck manipulation to achieve the best known escape timer. As a result, this can't be considered a true improvement.
Crateria (First Visit)
Landing Site -- One realtime frame. Apparently this occurs during the door transition to the next room. I have no idea why; this game is just weird like that sometimes.
Crateria Mainstreet -- two frames. All recent Super Metroid TASes have fallen down the left side of the old Tourian escape shaft, but with some careful manipulation of Samus's y position, it turns out it is possible to take the right side instead. All of the manipulation required for this to work occurs in the room before the shaft, hence why I've attributed the frames to that room instead.
Old Motherbrain Room -- nine frames. This is because of a trick that I'm calling an "inverse CWJ." A CWJ is essentially a walljump where Samus keeps all of the speed that she had prior to walljumping, and an inverse walljump is a walljump performed by pressing left+right which removes the need for Samus to turn around; this is a combination of those two tricks. This has been used in past TASes in Blue and Green Brinstar, but it turns out there is a way to make it work against all blocks instead of just doors.
Usually, if you try to perform an inverse CWJ, Samus just isn't able to avoid colliding with the block the walljump was performed on. Four frames are required upon entering walljump range of the block: one for Samus to change into her walljump pose, one to walljump, one to unspin, and one to aim down to reduce her hitbox. Apparently, the first of these frames can be avoided by approaching the block while Samus is already in walljump pose. This provides just enough time for Samus to pass the block without losing speed. Unfortunately, the uses for this trick are likely still very limited, but thankfully one has found its way into this TAS. :)
Blue Brinstar
No improvements. Boo.
Crateria (Second Visit)
Old Motherbrain Room -- 3 realtime frames + 1 ingame frame. This is because of a new strategy for killing the space pirates. This saves one frame in the room itself, and then eliminates two lag frames during the transition to the next room. This might be because, in the currently published TAS, the last space pirate doesn't finish exploding before the door is touched.
Old Tourian Escape Shaft -- 7 realtime frames. All of these frames come from a shorter transition back to the next room; 6 because Samus enters with a different pose, and 1 because I kill a space pirate near the top of the room who apparently causes a lag frame otherwise.
Crateria Mainstreet -- 2 realtime frames. These come from improved screen positioning upon entering the save room. 4 ingame frames are lost in the setup.
Out-of-Bounds Madness -- 28 frames. 26 frames come from significantly more optimized out-of-bounds navigation, and two frames because we chose to not save the animals. :'(
Potential Future Improvements
For a complicated game like Super Metroid, there could still be many improvements waiting to be found, but there are three areas in particular that I would recommend taking a look at for anyone who might want to try to improve this TAS.
1. Ceres. I found three different damage boost options that are all equally fast in realtime. It would not surprise me if one can be optimized a little bit more to be faster than the others. In particular, using the same damage boost as in this TAS, it is possible to come within 8192 subpixels (1/8th of a pixel) of saving a frame, but I could not find any way to gain the needed distance. (This is, of course, assuming that I haven't overlooked an even better damage boost option)
2. Blue Brinstar. The door CWJ is extremely close to being obsoleted by an inverse CWJ against the blocks in the next room. I've come within, again, 8192 subpixels of succeeding. This would save one frame if successful. Unfortunately, if this is possible to do, another frame would need to be saved somewhere in Blue Brinstar or it would just be lost to the elevator frame rule. Perhaps reducing door scrolling in the post-missiles climb would be a good place to check.
3. The out-of-bounds section. What a mess! It may be possible to save more time here, but for now I have no ideas.
Nach: Not much to say here. Good improvement. Accepting.
sheela901: Processing...