(Link to video)
EDIT: The rerecord count should be 40365 according to the lsnes message window when the movie is loaded, but shows up as just 1 for some reason.

Details

  • Emulator used: lsnes rr2-β17
  • Aims for fastest time
  • Manipulates luck
  • Takes damage to save time
  • Abuses programming errors
  • Finishes with suspiciously high item collection percentage
  • Saves the animals?

cpadolf's comments

Recently a set of discoveries in the Super Metroid speedrunning community involving the fabled Space/Time beam led some runners to beat the current any% TAS, obviously something had to be done about that. This new TAS beats the current any% TAS by 23446 frames, or about 6.5 minutes (thereby turning it into a low% run instead of an any% run), and finishes with an ingame time of about 06:15 (although it's displayed as 00:05, more on that later). This substantial improvement comes from using an entirely new route and a new way of finishing the game involving arbitrary code execution, a phenomenon that seems to become more and more common in the TAS communtiy. As an aside, with the timing used for runs in the real time speedrunning community this run is about 12:30.
The point of the route is to get to Gold Torizo as fast as possible and use the so called "GT Code" which instantly gives Samus most of her upgrades and a lot of ammo, enabling the glitching that takes place afterwards. There are basically two routes for doing this, both of which were fully run through and optimized. The first one is to go to Kraid in order to receive the Varia Suit that will take you through norfair and LN without having to collect a bunch of energy tanks. This is the one that was used by Saturn in his GT code run, and is used by the real time speedrunners (minus the hi-jump boots which can be skipped with some tricky kago balling and walljumping during the lava dive before LN). The second one is to skip out on Kraid and instead use the somewhat unknown and never before (to my knowledge) constructively used pause glitch that keeps Samus from dying as long as the game is constantly being paused. The second option turned out to be faster by about 30 seconds despite the game only being able to run for about 1 second per 2 seconds of paused time.
In order to make it all the way to GT with the pause abuse a reserve tank had to be collected as Samus has to have at least 1 energy when riding on an elevator to keep from dying, and to refill on energy before using the PB in the Gold Pirate room in LN as the game can't be paused after a PB has been placed. Because of the time saved by avoiding an extra pause a lot of extra drops were farmed and damage avoided throughout the run in order to minimize the amount of pauses. An interesting side effect of the pause glitch is that the game clock stops running while Samus health is 0, which makes the ingame clock about 20 seconds lower than it should be by the point that GT is reached, therefore displaying a 00:05 at the end instead of 00:06.
With that I'll leave it over to amaurea and total to get into the more technical stuff of the glitching in the run.

amaureas comments

Some of the first TASes of Super Metroid made use of a glitched beam combination called the "Murder beam", which was activated by shooting a charged shot to the left with all the beams equipped, even the incompatible Plasma and Spazer beams. That combination results in a sort of area-of-effect damage that keeps damaging nearby enemies forever, and was used in the Mother Brain fight until it was discovered that it was faster to just shoot optimally charged normal beams.
Since then, no glitched beams have been used in TASes here, though two other non-crashing beam combinations were known: The zero range, zero-damage, rapid-fire "chainsaw beam", and the seriously glitched space-time beam (uncharged plasma, spazer and ice), which could bring the bosses back to life, retile the rooms, reset items, or trigger the escape sequence. But despite the known potential of the space-time beam it was not used here, possibly due to it being emulated differently by the previous generation of snes emulators. Its most powerful effects may have been thought to be emulation errors.
This TAS uses not only the space-time beam, but also another beam previously thought to be useless: The charged space-time beam. After performing a trace log while firing the various glitched beam combinations, I found that out of the 8 possible glitched beams, the three known beams (murder, chainsaw and space-time) jumped to ROM data, while the remaining 5 all jump to RAM. That is why the former beams were reliable enough to use, and why the latter beams would always lead to a crash: RAM contents are variable, but rarely contain sequences of bytes that when interpreted as machine code do anything safe. In particular, more than half of all RAM values are 0, which when interpreted as an instruction means BRK, aka "hang forever".
But on the other side, while ROM is unchangable, the player can to some extent control the content of RAM. Many of the glitched beams jump to interesting RAM locations, but the one used in this TAS (but not the only potentially useful one) is the charged space-time beam, which jumps to ram location 0x900a0a, where we can find Samus' super missile count, followed by her power bomb count and selected item etc. These are all under the player's control, and have a large enough range that it is possible to perform some interesting operations.
For example, a super missile count of 32 corresponds to the instruction JSR (jump to subroutine), which lets us jump to a location of our choice based on the power bomb count. The most promising targets are the gamepad auto-read registers at location 0x4218 to 0x421f, which contain the current button presses of four gamepads, effectively giving us 8 consecutive bytes which we can freely choose, and which we can update every frame. Reaching these registers would be enough to let us execute arbitrary code, and take total control over the game.
However, both the super missile and power bomb counts are 2-byte variables, and what forms the address to jump to is the second byte of the super missile count and the first byte of the power bomb count. Jumping to 0x4218 using JSR would require 0x18 in the second byte of super missiles, and 0x42 in the first byte of power bombs, for a total of 6176 super missiles and 66 power bombs. Which would take a while to get. So we can't jump there directly. With reasonable ammunition counts, we can hope to jump to addresses 0x0000, 0x0100, 0x0200, 0x0300, ..., 0x3200. That's a lot to choose from, but most of them are hard to influence and contain large stretches of repetetive bytes, such as tile maps etc. But at least two of these are suitable: 0x0400 (OAM data), and 0x0b00 (position and scroll-related variables). The former is what I used in this demonstration video, but it is quite fickle, and requires the right enemies at the right position in the room. The second one I had given up on after almost making it work, because I thought Samus' relative screen position could never get much larger than 256, which would not get me the bytes I needed:
     b00 height       stand=(15,ORA,A),jump=(13,ORA,A),aimdown (0a,bad),crouch=(10,BPL,nop)
     b01 00
     b02 coltype      L=BRK, R=ORA, U=COP, D=ORA, so R or D are OK,  though both modify A.
     b03 00
     b04 x_screenrel low  practially any value
     b05 x_screenrel high nonzero only if Samus is off-screen
     b06 y_screenrel low  typically between 2c and c0
     b07 y_screenrel high
The first 4 bytes here are not useable, but can be made equivalent to harmless operations that bring us to 0x0b04. There we have 4 bytes in a row related to the Samus' screen-relative x and y position. If these could take any value, then we could use this to perform a jump to 0x4218. But when I first investigated this, I thought both these scroll values would be between 0 and 255 (i.e. Samus inside the screen) or at least not values much higher than that. That would make 0x0b05 and 0x0b06 zero, as indicated in the excerpt from my notes above, and would limit us to the same kind of restricted jump that brought us here in the first place.
But total pointed out that I had forgotten out-of-bounds travel (OOB), where it is possible to get almost arbitrarily far outside the screen. That made this method an easy and reliable (to a TASer anyway) method: Position Samus such that her screen-relative position is (x,y) = (0x1182,0x??37), where the ??-part is irrelevant. This corresponds to the machine code
     $90/0B04 82 11 37    BRL $3711
Which finally brings us to the gamepad auto-read registers! At that point we have total control over the game: We could for example set up a jump from the last register to the first one, trapping the game inside this 8-byte register range (this is what I did in my OAM example). But total found a more efficient setup, as he will explain.
See the Super Metroid game resources page for a more detailed analysis of the glitched beams.
Potential improvements: While we investigated the other glitched beams, we were not exhaustive, and they may be usable for gaining control earlier. This includes the standard murder beam, if fired in another direction than left. It might also be possible to gain control without the use of glitched beams at all, by triggering a glitched door transition while out of bounds (for example using the X-ray gltich). I've discussed this with PJBoy, but we didn't find a concrete way of realizing this. To execute larger amounts of arbitrary code, it will be useful to use the manual gamepad registers instead, as the current method only lets us execute about 2-3 instructions per frame.

total's comments

Now that we've finally managed to direct the game to execute code from controller registers using the methods explained by amaurea we need to make sure that we can stay in control for long enough to change the game state and do any other modifications that might be needed to keep the game from crashing. This can be done as explained earlier by crafting a loop that keeps code execution within the controller registers but in this case there's a slightly more efficient method using the games own programming against it.
So what we can do now is to overwrite the function pointer in memory for the charged space-time beam (the one that right now points to 0x0a0a where our first entry point is) with 0x4218. This has the effect that for the following frames as long as the space-time beam projectile still exists, when the game runs code to update it, it will no longer be using the chain of super missile and power bomb count and positional requirements but instead helpfully enter the controller registers as a subroutine. This gives us plenty of controllable bytes each frame since we only need one byte to return control back to the game.
Below is the final five frames of meaningful input using four controllers and some quick notes on what they do (the 0-3 buttons are extra bits that can be set, but does not represent a button on the controller):
   ...Su...A.L.0..3|....ud...XL.0...|B...ud.r.X....2.|.Ys......XLR0.2. 
   LDA #$4218
   STA $0C68
   PLY
   RTS
As explained above, this is our first chance to run our own code and we'll use it right away to overwrite the function pointer so the game will keep calling into the controller registers no matter our ammo or position. Before returning back to the game we'll also have to clean up the stack so we return back to the right place.
   ..s..dl.A.L.0..3|....u..rA..R0...|B...ud.r........|.........XL..... 
   LDA #$26
   STA $0998
   RTS
This sets 0x0998 in RAM to 0x26 which changes the gamestate and tells the game that we've just finished it, and it will now start a fadeout into the ending.
   B.......A.L.0..3|BY.Su.....L....3|B...udlr........|.Ys......XLR012.
   LDA #$80
   STA $7ED821
   RTS
Since we still have a few frames to work with while the game is fading out, there's some small details we can do while we're waiting for the ending to start. So why not be nice and make sure our animal friends make it out safely.
   BY..udlrA.L.0..3|....u..rAX..0...|B...ud.r...R..2.|.........XL..... 
   LDA #$12CF
   STA $09C8
   RTS
And this increases our missile count to get a nice item completion percent.
   .Y......A..R01..|................|.Ys.........01..|................ 
   STZ $0C40
   RTS
Before returning full control to the game, we delete the charged space-time beam projectile to make sure the game does not try to call into the controller registers again.
It should be noted that instead of overwriting the function for the beam handling code, there are a few other pointers that can be overwritten to keep in control of the game that will persist through door transitions and does not need an active fired beam projectile. It is not used in this case since it would require quite a bit more code to setup and was not needed in this case where we just need to end the game.
As mentioned before this run also uses the uncharged space-time beam a few times. First to exit Golden Torizo's room without fighting him and also resetting the super missile in the room, and finally to create a door transition block that will place us out-of-bounds in the next room which is needed to be able to manipulate the screen-relative position enough to be able to execute code.
The way this works is that when you fire the uncharged space-time beam, the game jumps into the middle of a routine in ROM that does a memory copy into RAM. But since we're entering that routine from the wrong place and with non-intended values in the X and Y registers, this routine will copy a whole lot more data than it is supposed to. It will end up overwriting data for events, items collected, bosses defeated and so on which is what makes it possible to collect the same super missile pack three times. An even more destructive thing happens as well though, it will also overwrite room data with "garbage" blocks where some of these will be valid door transition blocks. We abuse this by using these to first escape GT's room and fight, and last to quickly get out-of-bounds in the room left of GT's room where we can finally get into position to fire the charged space-time beam and ending the game.

Thanks to

Big thanks to all of the Super Metroid speedrunning community for their recent efforts in glitching the game, as well as all the people actively contributing to the TASvideos forum thread. Special thanks to hero of the day for suggesting the use of the pause glitch to skip going to kraid.

Noxxa: Judging.
Noxxa: This is a quite unique run. It uses a debug code to aid in reaching its end goal faster, which is arbitrary code execution. We have had varying precedents on runs using cheat codes that were accepted, and that were rejected. These cases all differ in multiple fields, including whether the debug code or cheat code is conventionally accessible in gameplay, whether they are intentionally put in the game for the player to use, and how much of an impact they have on gameplay. But in the end, this just turns out to be an entirely unique case. This is because the run does not just clear the game like a normal playthrough - it takes over control of the game code to trigger the ending.
The movie rules contain a rule against cheat codes, so if the rules are to be followed, this run would be rejected. However, we need to look at the spirit of the rule here. Normally, cheat codes are used to make gameplay easier - make it simpler to finish the game. However, in this case, the run is not ordinarily "finishing the game". It does not actually make "gameplay" easier, because what it actually affects here can barely be called "gameplay". In odd instances such as these, where the game is not being conventionally played or finished, we can make an exception to this rule.
So putting aside the use of the debug code, we are met with a nice, entertaining and well-received run which finishes the game fast. Accepting for Moons. This run will not obsolete any previous run - the current any% ("X-Ray glitch") seems to hold enough merit on its own to keep publication, as it is a more "true" run which completes the game without arbitrary code execution or use of debug codes.
Ilari: Processing.

BigBoct
He/Him
Editor, Former player
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
As far as Plasma Beam before Draygon, I thought Kejardon said back when he was first testing the OOB glitch/X-Ray Climbing that the Plasma Beam doesn't spawn until Draygon is dead. Am I misremembering?
Previous Name: boct1584
ALAKTORN
He/Him
Player (99)
Joined: 10/19/2009
Posts: 2527
Location: Italy
I don’t like this “screw the rules, it’s entertaining” mentality. that’s completely arbitrary and is bound to bite us back in the future if the run is possible even without the use of the code, why even use it in the first place? sure it’s faster, but that’s a given considering the fact that you’re using a cheatcode
Former player
Joined: 2/19/2007
Posts: 424
Location: UK
ALKATORN: This is a debug code, not a cheat code. It is like discovering a debug room filled with powerups that you weren't supposed to be able to access, but which had been left open by mistake. It's also not a obvious that the GT code would always be faster. For example, collecting the morphing ball is faster without the GT code. In fact, most items can be collected faster without executing the GT code. You're making it sound like the GT code is some sort of action replay that you can use to get anything you want. It actually only gives you items you were supposed to have by that point. The fact that you can get there without items like varia, gravity suit or grapple beam was probably not anticipated by the developers in the first place.
Skilled player (1431)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
boct1584 wrote:
As far as Plasma Beam before Draygon, I thought Kejardon said back when he was first testing the OOB glitch/X-Ray Climbing that the Plasma Beam doesn't spawn until Draygon is dead. Am I misremembering?
No, it's there. I think that the items in WS are the only ones are despawned until an even has happened.
ALAKTORN wrote:
if the run is possible even without the use of the code, why even use it in the first place?
Basically because I was more interested in this than the alternative, and I don't think I would have had the motivation to do the non GT-Code version of this run. I knew there was a good chance it wouldn't be published and I understand the reasoning behind that but I still wanted to make it.
Agare Bagare Kopparslagare
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Cpadolf wrote:
I don't think I would have had the motivation to do the non GT-Code version of this run. I knew there was a good chance it wouldn't be published and I understand the reasoning behind that but I still wanted to make it.
How about turning it into a rickroll within the "arbitrary code" branch if this version isn't accepted?
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.
Skilled player (1431)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
Well if anyone (amaurea, total or whoever) would want to do that and use this run as a starting point to reach the arbitrary execution stage and then doing something interesting I'd certainly be all for it but it's well beyond my own personal capabilities.
Agare Bagare Kopparslagare
BigBoct
He/Him
Editor, Former player
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
Here's my thought on this debate.
  • The arbitrary code execution glitch is not made possible solely because of the GT Code™.
  • The route required to perform arbitrary code execution without using the GT Code™ includes some content overlap with other branches.
  • Said route also takes longer to accomplish its' goal, and because of the content overlap, would likely be deemed less entertaining.
  • The GT Code™ route involves many things that exemplify the essence of a TAS: frame-perfect tricks (pause screen abuse,) high level of luck manipulation (drops in Norfair,) fast-paced action (most of the run,) and so on.
Consequently, I think that using the GT Code™ as a shortcut here makes this run worthy of being an exception to the rule. EDIT: TASVideos policy has always stated (somewhere) that past exceptions/mistakes having been made is not to be considered justification for doing it again. So I say, let this run stand on its' own and make it clear that there is no precedent being established.
Previous Name: boct1584
PJ
He/Him
Joined: 2/1/2011
Posts: 181
Location: Western NY
This run was incredibly entertaining and I am all for accepting it. The use of GT code did not take anything away from the run for me. In fact, part of what made this run so ridiculous was the 0-health gauntlet. I wouldn't have enjoyed the run nearly as much if it collected everything the long way or with X-ray climbing and then executed arbitrary code to reach the ending. Honestly, I probably would have not even bothered watching a TAS that did that because "arbitrary code" endings are generally really anti-climactic and boring to me. In my mind, using the GT code *added* to the difficulty of the run (as already mentioned), removed a lot of trivial sections , and added a significant amount of entertainment value to the run. I am also of the perspective that debug code != cheat code. I'm giving it a strong yes vote, and hope I see this make it on the site.
Joined: 4/3/2005
Posts: 575
Location: Spain
Usage of codes should automatically disqualify this run by this site rules. In my opinion, the players should act as if the code of cheats and debug features wasn't inside the ROM, as using them artificially lowers the game's difficulty AND also allows you to finish a game sooner than if you played it straight. Once you use one of these codes, you are no longer competing on the same ground as the other people, and you are not doing what you are supposed to do, which is beating a game in its most difficult form (as intended by the game creators) in the fastest "legal" way. There's an exception to this rule, and it's when the run is done for entertainment purposes or as a proof of concept. In that case, it no longer aims for fastest time, and shouldn't obsolete the current %any run. I enjoyed this run, but I can't call it a "legit" %any run.
No.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
I bring it up again - the Earthbound 'glitched' TAS before the one currently on the site glitchily accessed the debug menu by checking a tile that was out of bounds on the map and letting the text pointer fall through until it entered the debug menu. The case is similar here - the GT Code is a debug tool left in the game's code, and it's only useful if you use lots of glitches and sequence breaks to get to the room backwards. (If you got to the room forwards, it won't give you much you didn't already have.) In both games, a hypothetical 'hard mode' ROM where all the debug features were stripped out would prevent either route from working. Please answer this: Why is an Earthbound TAS that accesses the debug menu unexpectedly OK, but a Super Metroid TAS that accesses a debug feature unexpectly NOT OK?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Patashu wrote:
Please answer this: Why is an Earthbound TAS that accesses the debug menu unexpectedly OK, but a Super Metroid TAS that accesses a debug feature unexpectly NOT OK?
Please read my first post on page 3.
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.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Patashu wrote:
Please answer this: Why is an Earthbound TAS that accesses the debug menu unexpectedly OK, but a Super Metroid TAS that accesses a debug feature unexpectly NOT OK?
For what it's worth, IIRC I opposed and voted against the idea. I also remember there having been a discussion (although I don't remember if it was within that thread or somewhere else) that using a cheat code (like the konami code) directly is not ok, but triggering the exact same cheat routine via glitching is ok. I found that argument nonsensical back then, and I still find it nonsensical today.
Tub
Joined: 6/25/2005
Posts: 1377
DrJones wrote:
In my opinion, the players should act as if the code of cheats and debug features wasn't inside the ROM, as using them artificially lowers the game's difficulty
Usually yes. In this case, the resulting route is anything but easier. The code opens up a different route that's a lot shorter, but also very difficult. At least two new tricks were employed in this run just to make the route work. And that's not counting any of the crazyness after GT. And isn't it usually the goal of TASes to find routes that are short, but tricky to pull off in a TAS and impossible to do realtime?
DrJones wrote:
Once you use one of these codes, you are no longer competing on the same ground as the other people
Which is what "glitched" categories are for, to separate runs like these from the "normal" runs.
DrJones wrote:
and you are not doing what you are supposed to do, which is beating a game in its most difficult form (as intended by the game creators) in the fastest "legal" way.
I don't think any super metroid speedrun has completed the game in an intended, "legal" way for over ten years. Where we draw the line between acceptable and inacceptable game abuse is a matter of opinion, but drawing it at the intentions of the developers is not only impossible to verify, it would also disqualify most of the movies on this site.
m00
P.JBoy
Any
Editor
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
boct1584 wrote:
As far as Plasma Beam before Draygon, I thought Kejardon said back when he was first testing the OOB glitch/X-Ray Climbing that the Plasma Beam doesn't spawn until Draygon is dead. Am I misremembering?
No, it's possible. Indeed it's the majority of the items in the Wrecked Ship, including the Gravity Suit, that don't even exist until Phantoon is dead.
Joined: 11/16/2009
Posts: 68
"This movie improves on its predecessor by 45.28 seconds, primarily by using a debug code to get 75 Kremkoins early" http://tasvideos.org/2027M.html That movie has a star and not only uses the above "debug code" but also uses a code at the beginning while on "Cheat Mode" to reconfigure the layout of the levels. Interestingly, that run had no controversy about acceptance. It was faster than the existing run of the given criteria, and so it was accepted. Why would this run be any different? The reasons for using the code are the same: the run is more fluid, it has less traversal time to "get to the point". This run is a beautiful and unique piece of work that opens the doors to a lot of possibilities. While I wasn't a fan of the pause abuse when it was announced that it would be used, I think it works out quite nicely and makes for an intense run with tricks that you'll see nowhere else. I also think that it should obsolete the any% run, partly for entertainment reasons, and partly because using the GT code shouldn't matter. If you can use a "cheat" to obsolete a branch in one game, why not another? Nevermind you're still circumventing the intended challenge of the game by playing one frame at a time. Yes vote.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Dessyreqt wrote:
http://tasvideos.org/2027M.html That movie has a star and not only uses the above "debug code" but also uses a code at the beginning while on "Cheat Mode" to reconfigure the layout of the levels. Interestingly, that run had no controversy about acceptance. It was faster than the existing run of the given criteria, and so it was accepted. Why would this run be any different?
As the old adage goes, past mistakes don't justify repeating them. (I'm not saying accepting that run was a mistake. I'm just saying that arguing that this should be accepted because that one was too is not valid. In general, runs don't set precedents.)
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
I don't think there's a meaningful difference between a "debug code" and a "cheat code". Both are basically there to make testing the game easier in development, and neither is a part of normal gameplay.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Well, if this gets rejected, I'm wondering how fast would this compare with the X ray route if you get the beams without the code? Edit: Btw, I support the notion of a playaround with this.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
jlun2 wrote:
Well, if this gets rejected, I'm wondering how fast would this compare with the X ray route if you get the beams without the code?
Slower in TAS, faster in RTA (because RTA doesn't know of a way to get an x-ray climb started without the speed booster yet)
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Glitcher
He/Him
Joined: 3/24/2007
Posts: 216
Location: London, U.K.
IT'S OVER 900!!!!!!!!!!!! A solid yes vote.
Editor
Joined: 11/3/2013
Posts: 506
Radiant wrote:
I don't think there's a meaningful difference between a "debug code" and a "cheat code". Both are basically there to make testing the game easier in development, and neither is a part of normal gameplay.
There's little difference in terms of what you can do with a debug code and a cheat code; there's a vast difference in how you access them. Cheat codes are put in by the developers to make your life easier, which goes against everything TASing stands for. Debug codes are left unintentionally beneath mounds of other code and reaching them through controller input alone is non-trivial. It's just another way of executing code - once you've reached the point of code execution, it's (relatively) easy, but getting there is what makes the TAS interesting.
Joined: 3/10/2014
Posts: 1
Warp wrote:
Dessyreqt wrote:
http://tasvideos.org/2027M.html That movie has a star and not only uses the above "debug code" but also uses a code at the beginning while on "Cheat Mode" to reconfigure the layout of the levels. Interestingly, that run had no controversy about acceptance. It was faster than the existing run of the given criteria, and so it was accepted. Why would this run be any different?
As the old adage goes, past mistakes don't justify repeating them. (I'm not saying accepting that run was a mistake. I'm just saying that arguing that this should be accepted because that one was too is not valid. In general, runs don't set precedents.)
In that case I would argue it's worth making an exception for this run on it's own merits. As has been pointed out before, the GT Code doesn't make the game easier. It makes the run much harder and allows the creators to demonstrate more skill and even new tricks. It does make the run shorter though. So I do think this shouldn't obsolete any%. But I don't think it should be out-right rejected as it seems to me that the run does not violate the spirit of the rule.
Player (147)
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
It wouldn't be a Super Metroid submission without a twelve page long categorization/acceptance debate! Voting yes for awesome.
Nach wrote:
I also used to wake up every morning, open my curtains, and see the twin towers. And then one day, wasn't able to anymore, I'll never forget that.
Player (12)
Joined: 6/17/2006
Posts: 501
This whole debate about the GT Code is ridiculous. Some people will consider it OK and some other people won't and there's no way to convince everybody to go on the same side since the whole debate is based on imprecise definitions and opinions. The only way to go that makes sense is to publish this run in a separate category in order to please both groups.
Patashu wrote:
The TASer can decide if they think 'real time elapsed in run' or 'frame count of input' or 'in game time' is the more important metric for speed.
There's been a lot of debate about allowing 'real time elapsed in run' goals. Correct me if I'm wrong, but I don't think any of them has been published because of the arbitrary nature of when exactly is a game considered beaten.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
SmashManiac wrote:
There's been a lot of debate about allowing 'real time elapsed in run' goals. Correct me if I'm wrong, but I don't think any of them has been published because of the arbitrary nature of when exactly is a game considered beaten.
Then you've missed a ton of TASes where the goal went back and forth between 'earliest input end' and 'earliest reaching of game has ended state', even between successive TASes, and it's considered OK to do so (Symphony of the Night, River City Ransom are two examples coming to mind)
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu