This run improves Hero of the Day's NES "any %" Metroid by 1972 frames (32.87s) for a time of 8:19.32. I use the same route as the existing run, with many technical improvements in the various door glitches (especially in Kraid's lair), boss fights, and platforming. I also aggressively conserve and replenish missiles throughout the run so that when I get to Tourian I only need to kill one metroid, instead of two.

Objectives

  • Emulator Used: FCEU 0.98.16
  • Aims for fastest time
  • Abuses programming errors
  • Takes damage to save time
  • Manipulates luck
  • My first game not previously run by Walker Boh

Improvements Summary

WhereFrames SavedCumulative Frames Saved
to Kraid's Elevator138138
Kraid's Lair10521190
Kraid281218
Ice Beam1571375
To Tourian2031578
Tourian1591737
Zebetites571794
Mother Brain1521946
Escape261972

Start to Kraid's Elevator

The savings here relates entirely to action that occurs offscreen during the door glitch. As soon as Samus goes off the top of the screen, the game puts her at the bottom of the next map segment down. Once there, it is possible to come out of the wall and jump from platform to platform until Samus comes back onscreen, at which point normal progress can continue.

Kraid's Lair

Wrong-way Door Glitch

This is done by entering a door to the left of the scroll trigger, causing the screen to scroll right when Samus exits left. Better geometric technique saves a bunch of frames falling in the 1st corridor; note that I don't unmorph until I fire to open the door. Bouncing into the door as the morphball saves about 10 frames by starting the door glitch half a block higher; this technique is used again twice later in the run. The wrong-way door glitch itself is done faster by shooting the door oren from beneath, allowing Samus to jump through it sooner.

The Long Drop Door Glitch

Much of the savings here was inspired by SpiderWaffle's discovery of a "sweet spot" at which Samus can pop out of the wall during a door glitch and have the screen scroll down as fast as she falls. The spot is generally just as Samus leaves the top of the screen.
I save a ton of time getting down to Kraid by coming out of the wall on the door glitch, shooting the door again (offscreen), jumping to scroll the screen while the door times out, then re-using the door to get back in the wall (using the morphball bounce technique with Samus offscreen). This gets me halfway down to Kraid's level. I then repeat the same technique on the door on the green screen that's just a corridor; this time after I use the sweet spot and shoot the door, I found it fastest to morph-unmorph to scroll the screen (since there's no jumping room).
Apart from scrolling the screen quickly, a bunch of time is saved here by carefully lining things up. In particular, the point at which I start climbing again after using the 1st sweet spot was chosen so the 2nd sweet spot would be placed such that I could drop into the corridor on the green screen. Afterwards, I start climbing again so that I reach the red door just as the bug hits me.
Needless to say this was the most difficult part to TAS as I was still learning the game and very complicated action is occurring with Samus offscreen.

Kraid

First off, entering the screen as the morphball cuts lag; antime in the run where I morph for no apparent reason, well, that's probably the reason. Previous runs have used the fire-every-frame trick to stun Kraid; I found that it's only necessary to fire every 4th frame (lag frames excluded) to achieve the same effect. I thought this might decrease lag, but if it had any effect it was very minor.
The real savings here comes from manipulating how Kraid fires his projectiles. In exhaustive testing and memory adress and source-code searching, I believe I proved it impossible to kill Kraid without his firing...the counters that drive them just can't be manipulated that much. As a result, it's necessary to pause while shooting Kraid to jump over his spines. I saved almost half a second by pausing such that he fires the top and middle spines almost simultaneously, thus reducing the time Samus needs to be in the air above Kraid's hit box.

Ice Beam

Strangely, it's not until after Kraid is killed that there's any serious platforming in this route. Just after re-entering Brinstar, I use a new technique to get past the slow-flying creatures without curving out of the way around them. The trick here is that enemies only move when they are on the screen. By using the morph-jump to travel most of the horizontal distance to the low platform, I can reach the platform and jump again before the enemy gets close enough to hit me.
I use a bizarre new bug to save time in the room to the right of the shaft to Kraid's elevator. Previous runs have jumped to kill a diving creature, manipulating an annoying crawling creature (zoomer) into not appearing. The zoomers normally can't be killed with a missile while Samus is at their level, but with a little manipulation, they spawn for 1 frame with a taller hit box; hence when I shoot a missile that hits the edge of the screen just as the zoomer spawns, the zoomer is killed.
Another platforming technique that sees heavy use here is occasionally taking high jumps with a morph-jump. The reason is that morph-jumps can go several pixels higher than a normal jump. Since Samus' elevation slows way down at the top of her jumping range, a morph jump can be faster for really high jumps. However, it doesn't seem to be hard and fast that jumps above a certain distance are worth morph-jumping; I think how the screen scrolls also affects it, so I pretty much tried both ways and took the fastest for any high jump in this run.
In the long vertical corridors, I use two beams to kill zoomers in many places where the previous runs used missiles. This has several advantages: missiles often cause lag; fewer missiles required; and the death animation is much shorter if an enemy is killed with the normal beam vs the ice beam or missiles -- thus item drops show up sooner.
I save about a second on the Ice Beam door glitch by again coming out of the wall earlier and jumping on platforms. However, this time I can only use platforms part of the way because at some point Samus gets stuck in solid wall and has to morph-jump the rest of the way. Due to insane luck in monster placement (and not by my design), I also fall in such a way that I hit a zoomer on the way down, boosting me to the left side where I need to be much faster than would otherwise be possible. While I'm taking damage, I also hold the jump button down so Samus bounces a little higher, thus synching Samus on the screen. Failing to hold jump results in Samus getting stuck in mid-air down below and needing a morph-unmorph to get down to the door, thus breaking vertical momentum.
The horizontal screen just before the Ice Beam has more going on than is obvious. This is one of the few screens where manipulation of enemy locations is vital; entering the door single frames ahead or behind totally changes where those fuzzy flying things are. Lag is the major problem here; by entering as the morph-ball and taking a hit on entering the room, I cut lag almost to zero, saving over a second vs the existing run.
It also bears mentioning that the fastest way to get through a door is to enter at a dead run. Hence, when I blast open the red door to the ice beam, I back up while it's thinking about opening so I can save a few frames going in full throttle.

To Tourian

For the part that overlaps with earlier segments in the run, the ice beam changes a few things. 1st, killing zoomers with 2 beams is no longer useful because their death animation is much longer, leaving only a frame or 2 to manipulate the item drop, which is rarely sufficient. 2nd, the morph-ball trick is no longer needed to get past the slow flyers, because I just freeze them as in previous runs. Finally, a new platforming technique is possible where I freeze a zoomer and jump off it, reaching the higher platform in 2 jumps instead of 3 and saving maybe 10-15 frames.
At the top of the long vertical corridor, I seem to jump unnecessarily high to get to the door. This is done to scroll the screen up, saving time vs having it recenter after I enter the door.
On the horizontal corridor before the stature room, I save time by lag reduction and making sure the rio always takes the maximum horizontal traversal before returning to the ceiling.
In the stature room, I use a faster technique to freeze and morph-jump off the rio by jumping to manipulate its movement and freezing the rio while I'm jumping up through it.

Tourian

I enter Tourian with 69 missiles, which is one more than the minimum possible to beat the game killing only 1 metroid. I cart the extra missile along to kill a ring on the 2nd screen that is too low to kill with a beam and would cost 5 frames to avoid. For the accountants out there then: 10 (1st door) + 1 (ring) + 5 (2nd door) + 5 (3rd door) + 5 (to kill metroid) + 40 (for 5 zebetites, at 8 missiles apiece) + 1 (mother brain's glass) + 32 (to kill mother brain) = 99 missiles. With 69 missiles, plus 30 from the metroid, it comes out juuuuuuuuust right...
Almost 2 seconds are saved in the zig-zagging room by using a wide variety of techniques. It's difficult to summarize, but basically it revolves around reaching the edge of each ledge with as much downward momentum as possible. Thus, even though Samus moves at only 75% horizontal speed while jumping, it's faster to jump down than just drop. The biggest time savings, though, is when I am able to morph before reaching the edge of a ledge and then bounce all the way past the edge of the next one. Apart from saving time, I think it just looks cool. It merits noting here that I'm manipulating the position of the rings and the rings are really annoying to manipulate.
On the last horizontal corridor before the mother brain screen, I save a few frames with better geometric technique, but most of the 48 frames saved on this screen are from only killing one metroid. Because the current run kills two metroids at once, it may seem that it would take just as long to kill one as two, but it doesn't. The reason is that if only one is being killed, you can fire ahead to freeze it and start killing it while you're still running. Killing two at once requires standing still while all five missiles are fired, thus halting forward progress half a second or so longer. The single metroid kill could be even faster using a technique from the tricks page that lets Samus fire a missile while a beam is still on the screen (normally impossible). The trick requires firing an extra missile and should be about 5-10 frames faster but is slower in practice because firing a missile with an unfrozen metroid on the screen creates too much lag.

Zebetites

Oh, mighty pillars of obstruction! Most of the time saved here is by firing three missiles while falling off the platform before the last four zebetites, instead of two. Being able to fire three saves about 10-12 frames each time but requires almost perfect subpixel positioning; if you're just off, the 3rd will be too low and hit the wall. I didn't do this for the 1st zebetite because (for some reason) it was faster not to. More time was saved by better handling and luck with the projectiles and maybe a few frames decreased lag by freezing some rings. Overall I save about a second on the Zebetites.

Mother Brain

I was definitely surprised to find about 2.5 seconds improvement to the mother brain fight. Mother brain can be damaged every 17 frames, so it's really just a matter of freezing the rings to reduce lag and get a standing platform that's close enough to fire every 17 frames and go nuts. I do save some extra time dodging the bullets using a quick morph-unmorph; I think the bullets end up costing me only 1 frame total using this technique. I tried to be as entertaining as possible while MB is blowing up, but a lot of things I tried caused lag.

Escape

There is minor savings here by entering the door as low as possible, but most of the improvement is better platforming. The key really is on those platforms which require a horizontal jump; by pressing the arrow keys just so it is possible to jump from mid-air a pixel or two off the edge of the platform.

Future Improvements

I tested exhaustively for faster routes using door glitches, but none of them panned out. In particular, it is possible to door glitch directly to Kraid's room (rather than one screen to the right), but Kraid didn't appear, so he must be loaded via code connected to the door trigger. I also tried various things to get to the Ice Beam from behind, but didn't really find anyting promising. I used to think that getting to Tourian without the Ice Beam would be awesome, but even if it were possible it would be useless because you wouldn't have enough missiles.
So...I believe that this is the fastest route. More technical improvements are still possible, I'm sure, though I'd be (pleasantly) surprised if they amounted to more than a few seconds total for an any %.
Some of the new techniques here are applicable to all metroid runs; others only to some of them. I'd be delighted to see some of them used in the other runs, though it's not on my agenda for the near future. Metroid can be very time-consuming to TAS because it's random and laggy (no splicing!) and the platforming requires mind-numbing precision to maximize speed. Good luck!

Thanks

I read through almost all the forum posts on Metroid before starting this run, so lots of people contributed years ago without even knowing it. Of note, SpiderWaffle's discovery of the "sweet spot" for the door glitch, along with several useful observations and suggestions, saved a lot of time. Hero of the Day, Arc and Zoizite's runs were invaluable, of course. Adelikat and mmbossman provided encouragement and some memory addresses. Kent Hansen (SnowBro) published the partially commented source code, which was a GOLD MINE for memory addresses.
Finally, during the voting for Hero's submission, Arc needled Hero for ending with the self-destruct timer at 864 instead of 865 and voted meh. In this run, it ends at 867, so I'm afraid I'll have to retroactively vote meh on all existing metroid runs...;)

adelikat: Accepted and processing.


arflech
He/Him
Joined: 5/3/2008
Posts: 1120
IMO it would work better with subtitles or the Annotation feature, preserving the original audio, and without the intro.
i imgur com/QiCaaH8 png
Skilled player (1410)
Joined: 5/31/2004
Posts: 1821
Yeah... and intro was way too long... I like audio commentaries... but they always seem to be done by people who don't seem to know much about the game... or in any case, not by the TASer him/herself. This is really a shame, as the TASer should be able to give some actual relevant and interesting information... and shouldn't have to resort to naming which music is enjoyable or not, or what other games there are in the series and what consoles they are on. A couple of things mentioned in the commentary are just not true... or give the wrong idea at the very least. These included:
Tool assisted speedrun: "Basically played on a computer, and uses programming errors"
(This is not what a tool assisted speedrun is)
Here is a glitch that you can do on a computer...
(It can at the very least also theoretically be done on a console)
Frame glitch that allows Samus to fire frame by frame
(Glitch?) ...And it's FCEU
Joined: 7/2/2007
Posts: 3960
Ideally, audio commentary should be done by someone who a) has in-depth knowledge about the subject in question (you'd ask a director, producer, actor, or film critic to provide commentary on a film; you wouldn't ask a plumber) b) has some experience in speaking in public (e.g. speeches, debate, acting), and c) has prepared material ahead of time. Occasionally you have someone who's good at improvisational routines, but the vast majority of us aren't. This tends to result in people saying any old thing that comes to mind, which is frankly not very interesting. You need to know what you're going to say, when you're going to say it, and how it's going to be delivered. Otherwise it's liable to fall flat.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Active player (436)
Joined: 9/27/2004
Posts: 650
Location: Canada
I dunno, I sort of liked the intro because it had a lot of Zelda 2 in it and I made that run :)
Joined: 6/19/2009
Posts: 6
Location: Nice Try :P
The reason I added that intro is so that I can be able to introduce my series of making TAS Commentary's. Don't Worry, chances are that I'll remove the intro in my next commentary, or speed it up.
I'm also on Youtube! The link to my channel is: http://www.youtube.com/user/gabecounts112594
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
The main argument against it is that it doesn't tell us in any way the footage there is an excerpt from TASes, nor does it imply any commentary, nor show anything on your identity. It's just there to be skipped. A 5-second long splash screen would have done better.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 5/2/2009
Posts: 656
Yeah, just saw the commentary. Yeah, the intro is unnecessary is this case, and the voice is kinda... strange. I can't hear almost anything you say, and most of the time isn't that relevant. But it is a lovable try. It would be nice to have a "commentary team", selecting people able to talk about the games, and including a commentary track in the .mkv s. Of course, the author should have commentary priority, but if the author can't comment for some reason, he can write a "script".
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Joined: 6/19/2009
Posts: 6
Location: Nice Try :P
OmegaWatcher wrote:
Yeah, just saw the commentary. Yeah, the intro is unnecessary is this case, and the voice is kinda... strange. I can't hear almost anything you say, and most of the time isn't that relevant. But it is a lovable try. It would be nice to have a "commentary team", selecting people able to talk about the games, and including a commentary track in the .mkv s. Of course, the author should have commentary priority, but if the author can't comment for some reason, he can write a "script".
I know. I plan to put subtitles on the video.
I'm also on Youtube! The link to my channel is: http://www.youtube.com/user/gabecounts112594
Lord_Tom
He/Him
Expert player (3146)
Joined: 5/25/2007
Posts: 399
Location: New England
I would have to agree with most of the above. It's flattering to have my run be the inspiration for a 3rd party commentary, though the content could have been more accurate/insightful/relevant. I think both audio commentary and subtitles can be cool. I'd tend to favor subtitles since they can (usually) we watched the 1st time one watches a run, without detracting from it, whereas I think an audio commentator best serves motivated viewers who've already watched the movie and want more info/detail. ...and this is the 2nd YouTube modification of this run I've seen (the 1st was w/ subtitles) stating that I use a "frame glitch" to kill Kraid, which is not true as stated in the run comments. I just fire every 4th non-lag frame, corresponding to the length of Kraid's stun period; no glitch is required or used.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
peopledozer wrote:
I prefer this play through because Kraid and Ridley are still alive to appear in Super Metroid. I remember being super angry when I played Super Metroid and these two bozos were still alive. I punched my TV screen and broke my hand. Anyway, my only criticism of this otherwise incredible play through is that Mother Brain died and therefore would not be able to show up in Super Metroid. I'd love to see a new run where Samus skips Mother Brain altogether thus preserving continuity in the series.
LOL :)
Active player (407)
Joined: 3/22/2006
Posts: 708
Hate to rag on a guy for putting so much effort into making a commentary video, but after skipping the intro, I watched up until: "This is a tool-assisted speedrun. Nothing really... um, basic, it's just basically some kind of, like uh.... Tool-assisted speedruns are like... basically..." A pet peeve of mine is people using the same words repeatedly and basically just repeating a lot of repetitive words... basically being repetitive.
NESAtlas
He/Him
Player (57)
Joined: 7/4/2010
Posts: 115
Location: Gales Ferry, CT
I came across Lord Tom's Metroid speed run on YouTube and have combined it with an Atlas map. Watch it here! I'd love to know what you think :)
Tub
Joined: 6/25/2005
Posts: 1377
That's an awesome idea. Makes it a lot easier to put those warps into context. Thanks!
m00
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
AMAZING idea! I'd love to see all Metroid runs treated like that and linked to from the respective movie descriptions. :)
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3576)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
moozooh wrote:
AMAZING idea! I'd love to see all Metroid runs treated like that and linked to from the respective movie descriptions. :)
Seconded.
It's hard to look this good. My TAS projects
NESAtlas
He/Him
Player (57)
Joined: 7/4/2010
Posts: 115
Location: Gales Ferry, CT
This was picked up by Destructoid.
Joined: 7/2/2007
Posts: 3960
Misattributed as usual, but oh well. Congrats on the recognition, and congrats again to Lord Tom for the TAS.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Lord_Tom
He/Him
Expert player (3146)
Joined: 5/25/2007
Posts: 399
Location: New England
Thanks, Derakon. And thanks again to AndyDick - the atlas runs are such a great innovation. Not sure if he posted about it anywhere, but Bisqwit also made an interesting video using this TAS, combining the video with visualizations of the emulator's memory usage & sound: http://www.youtube.com/watch?v=c8uPdDT4mfQ
Joined: 7/2/2007
Posts: 3960
That's cool! You can see where in memory Samus's vertical position is tracked since it changes every time she jumps / falls. I'll have to show this to some of my programmer buddies.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.