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.

Banned User, Former player
Joined: 12/23/2004
Posts: 1850
This movie was boring/annoying. The parts where you use the door glitch to go all over the place is neat, but the annoying beeps of death and other factors made it a pain to watch without finding something else to focus on. Voted no.
Perma-banned
Player (70)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
That run was awesome. Thanks alot for making it. :)
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3599)
Joined: 11/3/2004
Posts: 4739
Location: Tennessee
Very big yes vote here. This run is loaded with new tricks. Many I would have never thought of. I am very impressed.
It's hard to look this good. My TAS projects
Banned User
Joined: 12/5/2007
Posts: 742
Location: Gone
I give another yes vote! Next time, try to manipulate into getting more energy cells so we won't have to hear the death beeps. Even SM does that, too.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14905
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [1144] NES Metroid by Lord Tom in 08:19.32
Player (120)
Joined: 2/11/2007
Posts: 1522
symbolic X wrote:
Next time, try to manipulate into getting more energy cells so we won't have to hear the death beeps. Even SM does that, too.
But if he had more energy, he could have saved more time by running into things or whatnot... seeing him win with little energy left is one of the best parts of the movie to me :)
I make a comic with no image files and you should read it. While there is a lower class, I am in it, and while there is a criminal element I am of it, and while there is a soul in prison, I am not free. -Eugene Debs
Banned User
Joined: 12/5/2007
Posts: 742
Location: Gone
I guess same thing with all the Total Recall runs and WIP's I had; that game doesn't beep on low energy compared to this, Zelda, and other games; there are differences between such games which I assume. No big deal, I hope. =)
alden wrote:
symbolic x wrote:
Next time, try to manipulate into getting more energy cells so we won't have to hear the death beeps. Even SM does that, too.
But if he had more energy, he could have saved more time by running into things or whatnot... seeing him win with little energy left is one of the best parts of the movie to me :)
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Yeah, it would be fairly difficult to avoid the danger beep by manipulating energy because I use every available opportunity to manipulate missiles. The one place it would be possible that I can think of is by killing bugs just in front of the statue room. However, I freeze the bugs to cut lag, so it would may well cost time to do so. That said, it could be tried if someone makes an improvement, since having the beeping on all through Tourian is a bit annoying...
Banned User
Joined: 12/5/2007
Posts: 742
Location: Gone
There was an old run by Zoizite where Samus didn't receive the low-energy beeps until she stepped into the hall of Zebetites.
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Right. But in this case, the question is whether it's possible in this run without losing *any* time. Or, if one decided to do a time/entertainment trade-off, how much time would be worth losing? It is more difficult for this particular run because it is the 1st (that I know of) to operate under such stringent missile requirements. Also, the trick of freezing the zoomers to jump on them means that they can't be killed for missiles or energy without losing time. So...absolutely it could be done. It would probably (not definitely) be slower, though.
Joined: 7/2/2007
Posts: 3960
Honestly, for an 8-minute run, I'm willing to suffer a little beeping. It's not like Metroid's music is especially gripping, anyway. If it's really a problem, I think the appropriate solution here would be to use a Game Genie code to turn the beeping off, like the modification suggested for the FF2 run to keep the volume constant during combat.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Banned User
Joined: 12/5/2007
Posts: 742
Location: Gone
I rest my case. No matter what you have on you, strategy is the only way to get through.
Experienced player (822)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
symbolic X wrote:
I rest my case. No matter what you have on you, strategy is the only way to get through.
What exactly does this even mean?
Living Well Is The Best Revenge My Personal Page
Banned User
Joined: 12/5/2007
Posts: 742
Location: Gone
Managing energy/health, is what I meant. Sorry about any confusion.
Player (67)
Joined: 3/11/2004
Posts: 1058
Location: Reykjaví­k, Ísland
Awesome movie! I'm sorry to nitpick (couldn't help it) but I only noticed some tiny little things. Actually I noticed 4 things, but when I tried it out, it turns out only 2 might actually be valid. Frame 19793 (~5:30). Here you stop moving forwards for one frame. It might be enemy manipulation but I just had to point it out. Frame 26215 (~7:16). I thought it might be faster to not drop into the pit here, so I checked and it looks to me like I could save some frames by doing the morph-unmorph-jump trick (measured by the frame when the blue door ahead pops up on the screen). Of course I suck at the game, so it's possible a few more frames could be saved. Anyway, don't get me wrong, these are tiny nitpicks and hardly worth it, the run is super well done and looks insanely optimized. Nice job!
Player (88)
Joined: 11/14/2005
Posts: 1057
Location: United States
#1 Was done in all previous movies so that the crawler enemy starts heading to the right instead of the left. It would be impossible to jump over otherwise. #2 I agree with you on this one, but haven't spent the time to test it.
They're off to find the hero of the day...
Player (67)
Joined: 3/11/2004
Posts: 1058
Location: Reykjaví­k, Ísland
hero of the day wrote:
#1 Was done in all previous movies so that the crawler enemy starts heading to the right instead of the left. It would be impossible to jump over otherwise.
Ah OK, cool then, I thought it must have been something like that. I just never noticed it in any previous run.
hero of the day wrote:
#2 I agree with you on this one, but haven't spent the time to test it.
I did test it and it almost definitely saves some frames. The last pair of screenshots I posted compares the original movie (above) and my quick test-edit, both screenshots are taken on the same frame. But really, we're talking about less than 5 frames, so, you know....
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Blublu: Don't worry about nit-picking, that's the name of the game! I thought of using the morph jump at that point in Tourian and tested it looking at Hero's run, but found it faster to drop into the pit. BUT...I really thought it should be faster to use the morph jump, so perhaps I was just not executing it optimally. I can't test it now (at work overnight), but will look at it once I get a chance. A question and a caveat... 1st, as I recall, in my run I freeze that 3rd Metroid while falling, which requires being unmorphed, which prohibits the morph jump. Did you freeze the metroid so you were stuck inside it, but still able to roll off once you morphed? The caveat is that I timed this section out according to the frame on which the blue door opened after the screen transition. I found this technique the most reliable after finding many discrepancies (i.e. 1 method was faster at point x, but slower at point y, after a door transition, for no apparent reason). Most likely, though, is that you're right and I screwed it up somehow. If so, good catch!
Player (67)
Joined: 3/11/2004
Posts: 1058
Location: Reykjaví­k, Ísland
If you want to see, here it is: http://dehacked.2y.net/microstorage.php/info/152270338/lordtom-metroid-any-nitpicked.fcm The first 26100 frames or so are obviously unchanged. I don't know how it happens, but because of some ridiculous luck, I freeze the third metroid and somehow walk right through it. I didn't even have to manipulate them at all, your movie already set it all up. This actually saves a suprisingly tiny amount of time though, since Samus goes into slow motion while airborne. I timed it with your method and this is precisely 6 frames faster.
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Interesting. I would normally have expected Samus to be stuck by freezing the metroid that early; perhaps a bug in collision detection due to so many metroids so close together... Good stuff!
Joined: 6/19/2009
Posts: 6
Location: Nice Try :P
Would it be alright if I uploaded on Youtube Video that shows this video, only I added a commentary?
I'm also on Youtube! The link to my channel is: http://www.youtube.com/user/gabecounts112594
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Fine by me as long as it's labeled as a TAS and attributed, but pls post the link here so we can watch it!
Joined: 6/19/2009
Posts: 6
Location: Nice Try :P
Okay, after 2 days of trying to upload it, Lord Tom's Metroid NES Metroid Tool Assisted Speed-run (with my commentary) is now on Youtube! Part 1: http://www.youtube.com/watch?v=LIZflSLT-Zg Part 2: http://www.youtube.com/watch?v=fqwtJh0znbQ If your on Youtube, and you like it, please give me some feedback!
I'm also on Youtube! The link to my channel is: http://www.youtube.com/user/gabecounts112594
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
FIY, the intro is very long, and completely unnecessary (read: serves no clear informational nor entertainment purpose) at the same time. If not for that, you would be able to cram the entire video into YouTube's standard 10:59 limit.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Active player (278)
Joined: 5/29/2004
Posts: 5712
Thanks Moozooh, you've brought up a pet peeve of mine. Why do so many YouTube videos have personalized intros when we can learn all about the video and its author in the sidebar? Are we supposed to be impressed by a lousy montage with someone else's music played over it? Because no one is; we're just annoyed that we have to load another minute of video before we can see the ACTUAL CONTENT.
put yourself in my rocketpack if that poochie is one outrageous dude