(Link to video)
Submission Text Full Submission Page

Super Metroid - Any% "GT Code" TAS in 0:18 by Saturn

Recorded on Snes9x 1.43-improvement12 (but should work fine on future versions of the Snes9x 1.43 series as well)

Sync Settings

  • WIP 1 Timing: ON
  • Left+Right/Up+Down: ON
  • Volume Envelope Height Reading: OFF
  • Fake Mute desync workaround: ON
  • Sync samples with sound CPU: OFF

Attributes of this run

  • "GT code" any% mode (without game-breaking glitches)
  • aims for fastest ingame time (due to universal recognition, regardless of emulator)
  • takes damage to save time
  • manipulates luck
  • abuses minor non game-breaking glitches
  • Genre: Platformer
  • Total Frames: 115580

About the Game

Super Metroid is a classic platformer with many advanced techniques and a very fine, subpixel-based move engine. The story is about a bounty hunter called Samus who has the goal to explore a foreign planet called Zebes to find and destroy Mother Brain, the evil leader of the galaxy who is breeding a mighty species called Metroids to abuse them for her own benefits. During the journey you will find alot of items such as new ammo, energy tanks, special upgrades that speed you up or allow to pass certain areas you would normally not be able to, and making your character strong enough to be ready for the upcoming showdown against Mother Brain.
Despite being over 16 years old by now, it is considered as one of the best games ever made, and is still played by many people on a regular basis. Due to the many different move techniques, a high variety through the new upgrades, and alot of route possibilities, this game is a very common target for many types of speedruns and playthroughs.

Moviemaking & Comments

This is a different kind of any% run for Super Metroid, recorded between December 2, 2010 and February 23, 2011, demonstrating how to considerably shorten the completion time by using the "GT Code", a trick discovered in late 2010 by JAM. It's executed by holding the A, B, X, and Y buttons during a door transition to the Golden Torizo room (regardless from which side), which immediately gives you all items except of Screw Attack, 700 Energy, 300 Reserve Energy, 100 Missiles, 20 Super Missiles, and 20 Power Bombs. This allows to introduce many not in regular runs available speed tricks and rare boss strategies with the help of Plasma/X-Ray combination I specially developed for this run, to pace through the rest of the game very quickly.

Notable features of the run

Improved Maridia Tube Entrance

Already introduced in the PAL Any% run, the new strategy ultimately saves around a second over the commonly used entrance for runs that don't get the Maridia mainstreet Missile.

Reverse Kago Elevator Tech with Screw Attack

Since the Screw Attack cancels the invincibility time after a damage boost immediately, it's impossible to pass the 2nd platform without delay and taking additional 50 HP damage from it. The tech in this run solves the problem by providing a nearly same fast alternative with the help of the early Power Bomb placement / ghost through platforms combo, while also saving 35 HP by taking spike damage instead.

Mother Brain

This was one of the more time-consuming parts of the run, as I focused to show the full potential of the "Stand Up Glitch". Compared to that introduction demo, which more or less set the standard for later TASes so far, the MB battle in this run is more than 6,5 seconds faster.
Enjoy!

DarkKobold: Claimed.
feos: Emdedded YouTube HD encode.
Saturn: No need to delete the original, specially for YouTube optimized video from the submission.

DarkKobold: Alright, time to judge this.
First off, as a result of this discussion, it is pretty clear that this is an intentional debug code, and not the result of a memory glitch. Thus, it will be judged as such. Nitsuja came up with a good list of games that use passwords/input codes and the reasons why here. Note that, similar to that thread, none of the codes used power-up the character as the sole action. The closest is Biker Mice From Mars. However, it could easily be argued that a full movie of BMFM would not be acceptable, due to the length of time required to reach that power-up, and thus the code was used out of necessity. (Also note that none of those listed are actually in the Concept Demo Section. The concept demo section contains only 3 types of movies - hacked ROMs, movies that start from Savestates, and movies that start from non-blank SRAM.)
Super Metroid, however, is not like the movies listed in Nitsuja's post. In fact, collecting the power-ups is considered an interesting enough goal on its own, that a 100% collection of said power-ups movie is published. Since there is no justifiable reason with which to use this code, it goes against the type of movie we aim for here.
The reason for rules such as "Play at hardest difficulty" and "Don't use cheat codes" is that we want the TASer's character to be at the highest disadvantage, as opposed to an "Arm to the Teeth Code" which essentially removes the "difficulty" in collecting items. Thus, I am rejecting this for using a cheat code.
A final note: The only reason for which many people have given that this be published is that it is entertaining. However, Super Metroid is almost unique in its gameplay, as it is extremely non-linear, to the point that there are nearly infinite variations in the routes available to complete the game. In fact, this is so prevalent, that the SM community has created names for various routes that add challenge. (See RBO, suitless, 14% Ice Beam Route, 14% Speed Booster Route, this "GT code route," and more that I'm sure I'm not even aware of.) My point being, is that a highly optimized version of nearly any route through Super Metroid being called a new 'category' would garner a large amount of people saying "this run is very entertaining." SM makes for entertaining TASes. That much can't be argued. That doesn't mean that every route through the game should be published here.
We have 3 published movies of Super Metroid here, that cover the scope of rational TASes. One TAS breaks the game down, through SRAM corruption. Another TAS finds the fastest route through the game, without fundamentally breaking the game. A final TAS demonstrates the entire game by collecting all items, and defeating all bosses. I think it would take a pretty good reason beyond "it is entertaining" to have a different category published, or else we will be inundated with Super Metroid categories.

sgrunt
He/Him
Emulator Coder, Former player
Joined: 10/28/2007
Posts: 1360
Location: The dark horror in the back of your mind
I haven't watched this as yet, but I do want to point out a couple of things in response to discussion that's taken place: 1) In the Earthbound run, the debug code isn't meant to be accessible (a glitch had to be used to activate it). Here, that isn't the case. 2) With respect to the aforementioned Gradius run by Morimoto, as adelikat has stated on several occasions previously, making what might now be considered a mistake at the time does not excuse making the same mistake now (not to mention the movie itself precedes the existence of the site).
Joined: 7/16/2006
Posts: 635
Warp wrote:
petrie911 wrote:
...You know, now I'm not entirely convinced I would reject the run if it used the code at the start. It'd be like a New Game+ for Super Metroid, and that might actually be pretty fun to watch.
The step from that to allowing gamegenie cheat codes is disturbingly small. I still endorse splitting the site into two: The purist side with strict "no hacking, no cheating" rules, and the free side with a "do whatever you want as long as it's funny" mentality (iow. a machinima site).
Yeah, a feature that is programmed into the game and can be accessed during normal gameplay, even without tool assistance. That sure sounds like cheating to me. It's certainly no different than using an external device to forcibly change RAM addresses. And good luck deciding on what the "purist" side actually means. Is save file corruption "impure"? What about New Game+ runs that start from SRAM? What about playarounds?
Joined: 7/2/2007
Posts: 3960
P.JBoy wrote:
Encodes of this run should have an annotation when Entering the Golden Torizo's room. There will never be a 100% run using the GT code. Starting a game from a completed save using the reset glitch wouldn't be interesting at all, it'd be the same as the last part of a 100% run but without the Mother Brain fight, Samus would just go straight to Tourain and straight back out
Presumably the run would involve not using X-ray glitching to skip the statue room, which means that Kraid, Phantoom, Draygon, and Ridley would all have to be killed, which means that their domains would have to be traversed. You can also do a few interesting things in Ceres; the last time I played with the reset glitch ISTR I managed to back out of the Ridley fight by destroying the door, for example. Perhaps this hypothetical run could be done as a playaround?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
BigBoct
He/Him
Editor, Former player
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
If memory serves, backing out of Ridley's room at Ceres by destroying the door does not trigger the Ceres destruction; I know I've done it before on console, but it's been a long time, so I could be remembering wrong.
Previous Name: boct1584
Experienced player (511)
Joined: 4/14/2009
Posts: 116
Looking at the original topic where this glitch was discovered: "7. Enter Golden Torizo room in ball form and keep holding buttons. Of course, you can enter this room while running, but the game will crash then." The fact that the game crashes when entering the room normally while holding the buttons may imply that the developers tried to prevent the player from using this trick. The glitch here is entering it in a special way so that it doesn't crash and the code activates like normal. Thus, if seen in this way, it is not a standard debug code and would fall under the Earthbound precedent. The ambiguity of whether or not the developers intended this leads me to give the benefit of the doubt (especially considering the run is entertaining), and vote yes. Hopefully it should not obsolete the current, faster any%.
Joined: 11/21/2006
Posts: 94
RingRush wrote:
The fact that the game crashes when entering the room normally while holding the buttons may imply that the developers tried to prevent the player from using this trick.
So... Basically, they didn't want people playing the game to use the debug code, but instead of removing it they decided to make the game crash if you attempt it. What? >_>
Site Admin, Skilled player (1235)
Joined: 4/17/2010
Posts: 11264
Location: RU
RingRush as i can undertand your idea, the developers have made a protection against ACTUAL USING this code (just like common protection against whatever, avoided by TASers, i.e. breaking the collision detection & entering walls), but didn't put one on entering the room as a ball (like they didn't expect that from the real-time player). Then it would be "entering a code + abusing programming errors".
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 7/2/2007
Posts: 3960
I think it more likely that the code doesn't properly update the player's state when handing out upgrades. Probably there's some subroutine run when the player gets speed booster or the like that ensures that certain values are set properly, which is not handled correctly when you use the code (but those values are set when you perform a state transition, e.g. going in and out of ball form). Given that the code was just for debugging anyway, it was simpler to tell the testers "Just go through the door in ball mode" than it was to fix the code.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced player (511)
Joined: 4/14/2009
Posts: 116
Miles wrote:
RingRush wrote:
So... Basically, they didn't want people playing the game to use the debug code, but instead of removing it they decided to make the game crash if you attempt it. What? >_>
A strange solution, I admit. Perhaps it was remembered very late in the game that they left it in and had to make a quick fix. Perhaps they tried to remove it normally, but did it the wrong way and that ended up with a crash. If this wasn't tested (as the ball workaround seems to point to), it is very possible that they simply have holes in the code that they forgot to splice at certain points. I'm just wondering, if this was intended, why did they let it crash? If they were using this code themselves and chose not to remove it, surely they would have fixed the crash for their own testing. The crash suggests that something changed between when developers were testing and when we are playing, and that is likely an attempted, and failed removal. Edit: Derakon was posting as I wrote this, and his theory makes sense too. But who knows what the right answer is? Until we have strong evidence this was an intended debug code for player use, we risk rejecting this submission unfairly. Edit 2: After thinking about it more, two quick points: - Since debugging is used during testing, it is presumably removed after the testing phase. That means they may never get to test whether their fix works, which could lead to the crash we currently see (some minor omission/missed correction is all that is needed to crash the game). - If the developers knew about the crash and said to the testers to just use morphball instead, why didn't they at least remove the crash for the final version? Miyamoto has said in an interview once that when designing a game, the main things to fix are bugs that may allow a player to get stuck or crash the game. If there was a known crash, it seems like they would have removed it. Now, they could have just forgot about it, so I think Derakon's theory still holds ground, but it is something to think about.
Joined: 10/20/2006
Posts: 1248
I don't think it's an intentionally left in debugging code either way. They simply forgot to remove it (properly). The theory that they'd make the game crash on porpuse instead of simply removing the code is quite silly imo.
Joined: 4/3/2007
Posts: 29
Miles wrote:
RingRush wrote:
The fact that the game crashes when entering the room normally while holding the buttons may imply that the developers tried to prevent the player from using this trick.
So... Basically, they didn't want people playing the game to use the debug code, but instead of removing it they decided to make the game crash if you attempt it. What? >_>
If they attempted to block access to the code late in the development cycle, removing the code may have caused more issues then it would have solved. So instead they attempted to hack the code to just make the game crash if it was used. The disassembly of the game's code shows it is in fact a code. So right now the debate is if it was left intentionally to be used by players. Based on the fact the game crashes, I would think not.
Joined: 7/2/2007
Posts: 3960
RingRush wrote:
- If the developers knew about the crash and said to the testers to just use morphball instead, why didn't they at least remove the crash for the final version? Miyamoto has said in an interview once that when designing a game, the main things to fix are bugs that may allow a player to get stuck or crash the game. If there was a known crash, it seems like they would have removed it. Now, they could have just forgot about it, so I think Derakon's theory still holds ground, but it is something to think about.
The severity of any bug is the product of the results of the bug triggering and the likelihood of the bug triggering. In this case, the results of the bug are a crash; that's very bad. But the likelihood of the bug is infinitesimal. It wasn't found until more than 15 years after the game was released, by someone who made a hobby of searching through the game's assembly code! Thus even if they did know about the bug, they probably were not very worried about it. It simply wasn't likely to be an issue. Remember also that development time is not infinite. Take a look at the credits sometime; by my count they had 7 programmers (out of a staff of 15) who wrote the game logic over the course of 2 years. That is not very much time. I can practically guarantee you that the game shipped with known bugs that didn't get fixed because they didn't pass the severity test. For example, I wouldn't be surprised if e.g. glitching through platforms with the ice beam or crystal flash were known about; they're pretty obvious results of animation transitions and changing hitboxes, but fixing them is a very hard problem fraught with edge cases. Lacking evidence to the contrary, the much simpler explanation is that the crash is a bug, no more, no less. This should be fairly easy to figure out for someone who can read the game's assembly; an intentional crash would probably look something like "jump to the instruction at address -1", while an unintentional crash would be more likely to be something like "load the memory at address 0xcc21ae and jump to it" and it just so happens that that memory holds an invalid value.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Yes vote, was entertained. :)
Warp wrote:
I still endorse splitting the site into two: The purist [...] and the free side
Isn't the split already done via the various movie categories?
Active player (370)
Joined: 6/5/2006
Posts: 188
Location: Malmö, Sweden
The crash is a result of the code equipping everything in the inventory simultaneously. This includes the Spazer and Plasma beams, which is a combination that is already known to crash the game when shot (with a few exceptions).
Even the best player is limited by the speed of his fingers, or his mind's ability to control them. But what happens when speed is not a factor, when theory becomes reality?
Joined: 7/2/2007
Posts: 3960
Doesn't that crash only kick in once you fire your beam, though?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 2/19/2010
Posts: 248
Derakon wrote:
Doesn't that crash only kick in once you fire your beam, though?
You'll fire your beam if you're holding all the buttons, unless you are in ball form. QED.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
petrie911 wrote:
Yeah, a feature that is programmed into the game and can be accessed during normal gameplay, even without tool assistance. That sure sounds like cheating to me. It's certainly no different than using an external device to forcibly change RAM addresses.
They are called "cheat codes" for a reason. Why is the konami code banned? Why are gamegenie codes banned? The answers to these questions are, in fact, pretty much the same. If you start allowing the former, it's only a small step to allowing the latter.
Joined: 8/7/2006
Posts: 344
Gamegenie codes are not cheat codes, they manually alter memory addresses instead of using game logic. Well, I suppose it's closer to redirecting the game to a different memory address than changing what is already there, but the effect is the same.
Joined: 7/2/2007
Posts: 3960
rhebus wrote:
Derakon wrote:
Doesn't that crash only kick in once you fire your beam, though?
You'll fire your beam if you're holding all the buttons, unless you are in ball form. QED.
Oh, dur. Thanks. That makes sense. (As for why the code then gives you all weapons instead of just not giving you spazer: the game testers would have had to verify that none of the beam combinations cause problems when used against GT)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 7/16/2006
Posts: 635
Warp wrote:
petrie911 wrote:
Yeah, a feature that is programmed into the game and can be accessed during normal gameplay, even without tool assistance. That sure sounds like cheating to me. It's certainly no different than using an external device to forcibly change RAM addresses.
They are called "cheat codes" for a reason. Why is the konami code banned? Why are gamegenie codes banned? The answers to these questions are, in fact, pretty much the same. If you start allowing the former, it's only a small step to allowing the latter.
You really don't see the difference? Fine then, let me spell it out for you. Konami code isn't used because it doesn't make for an interesting run. Action Replay codes are banned because they are not a part of the game. Using a cheat code to unlock hard mode would be perfectly acceptable, but using an Action Replay code to unlock it will never be. Even starting from a save file for a New Game + is essentially an in-game cheat code, and yet it still isn't anywhere close to an Action Replay code.
Joined: 7/2/2007
Posts: 3960
In other words, remember that TASes work with only the standard inputs available to any normal player of the game. Game genies, AR devices, and the like effectively add extra inputs that are not part of the standard game and therefore break that standard. They are in a completely different category from push-button codes, which anyone can input if they want to.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
petrie911 wrote:
You really don't see the difference?
I didn't say that the konami code (and similar game-supported cheat codes) are the same thing as modifying the game code with a cheating device. What I said is that the effects (from the perspective of the viewer) are pretty similar, and that allowing the first kind of cheat codes easily opens the path to allowing the second type of cheating. Read what I wrote again. I said: If we allow cheat codes to be used, it's only a small step to allowing gamegenie codes as well. This is what worries me. We are slowly progressing towards the "omg, this is so fake, they hacked the game" territory. (Not yet there, but the trend is worrying.)
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3584)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
Please stop with the pointless discussion of Game Genie cheats vs built in cheats. Only Warp doesn't get the difference, everybody else is on the same page. And more importantly it is a tangent, and obfuscates the current (& necessary) debate. The foundation of TASing is that it is only using input to accomplish its tasks. Cheat codes such as game genie modify the game with other means. As such, they will never be allowed. In-game cheats get accessed with only controller input. This is a different scenario because it doesn't break that foundation. However, it is still in the territory of don't do this. But it is a voluntary don't do this, it COULD be done just using a controller (or reset button, etc) but we restrain from doing it. Input based cheats are also against the rules. But because they fail to completely break the core concept of a TAS (using only user input) they have the opportunity to yield exceptions to the rules (and be in the concept demos section). The task at hand is to debate whether this rule breaking submission warrants an exemption, and why. Not to debate the merits of whether exemptions should be allowed (exemptions of this nature have already been allowed and published in the concept demos section).
It's hard to look this good. My TAS projects
BigBoct
He/Him
Editor, Former player
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
I think this exemption is worth making, because it brings something new to the table, in the form of the X-Ray/Plasma glitches and the new route facilitated by the GT code.
Previous Name: boct1584
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
adelikat wrote:
Please stop with the pointless discussion of Game Genie cheats vs built in cheats. Only Warp doesn't get the difference
Where the h*** is this suddenly coming from? You said that immediately after the post where I said that I never claimed they are the same thing. That's another way of saying that yes, there is a difference. Where exactly have I said that there is no difference? Nowhere. I was talking about something else.