Game objectives

  • Emulator used: lsnes rr2-β20
  • Aims for fastest time
  • Takes damage to save time
  • Abuses programming errors
  • Executes arbitrary code
  • Surely the animals will die this time?

Comments

This is an improvement over the previous any% TAS of Super Metroid, it beats the old run by 20359 frames, or about 5.5 minutes, and brining the ingame clock down to 00:02 and the item collection to 2%
total's comments:
So this run is made possible by some more recent discoveries regarding OoB travel and new ways to get OoB without needing the X-ray scope, and I'll try to give a brief history about what was found. One of the major glitches that makes this all possible was something discovered by Cpadolf a while ago. He noticed that during the last frame of unpausing, when the game changes game mode, it will not trigger door transitions. This made it possible for example to pause and time a shinespark to fly through door transitions where there was no solid blocks behind. Later on Sniq found out that by pausing over and over and moving one frame at the time with the morph ball it is possible to slowly pass through door transitions without triggering them and then falling OoB. This made a lot of interesting things possible, like being able to skip bombs completely in favour of power bombs using OoB movement and a lot of other interesting things. After some more research it was also found that it is possible to jump up through doors if you can get close enough to the door without triggering it, for example by standing on an enemy close to the door. So finally me and Sniq figured that if it's possible to go up through doors, of course it has to be possible to also go down through doors. This turned out to be true and by using some precise hitbox manipulation it's possible to just fall right through.
The last discovery enabled us to get OoB without any items at all, and we looked for ways to exploit this to end the game quickly with 0%. Sadly we could not find any way to end the game under these conditions, there was simply not enough blocks with the right properties to make anything happen. After this we found out that by saving and restarting the game, it would leave a lot more interesting data which is translated into different blocks when going OoB. I should mention that in many cases what shows up OoB is leftover data from previous rooms visited that did not get overwritten when loading the current room. so essentially by going from a larger room to a smaller room there will be data still left from the bigger room. The problem with this was of course that when loading a save from the ship, anything left over from the intro will be overwritten since the landing site is a very large room, so this was solved by going down and getting morph ball so we could save at the early Crateria save room.
Finally this led us to be able to explore the OoB so we could find a block that would crash the game in just the right way so we could convince the game to run code from the controller registers and from there end the game. One type of blocks were found after me and Sniq had been looking for a while that looked promising, it would jump to the SNES Open Bus and almost get all the way to the controller registers but crash just before.
So I did some more research and found out that one way of affecting the execution through open bus was simply to connect two multitaps, this changes two bits in $4016 and that changed the opcode ran just enough to offset the program counter and making the execution get to $4216 which is only two bytes away from the controller registers. Interestingly enough $4216 is the result of the last multiplication made using the multiplication registers. By tracing the code to check where this multiplication was last used, it was found that it is the result of a multiplication using Samus Y-position.
By taking this into account we found a block that would jump to open bus at just the right Y-position to have the execution go straight into $4218 and from there on it was business as usual :)
The last three frames of input ends up executing the following code:
LDA #4216		STA $0A5C		RTS
LDA #0026		STA $0998		RTS
DEC A			STA $7ED821		JMP $D315
Cpadolf's comments:
Could this finally be the limit of Super Metoid? Maybe, maybe not but either way sniq and total definitely deserve medals for this run. Even with everything that has happened with this game in the last months, this goes so far beyond anything I could have imagined. Skipping things like bombs, super missiles and powerbombs always semed to be an absolute imposibilty, and then, even with being able to get out of bounds without having any particular items to help you (using a pause glitch I found curious but ultimately worthless when I first ran across it in my 100% run), breaking the game into a ACE-state by simply touching a block OoB seems like pure magic.
While I provided the opening input up until the point were this run started to deviate from the old ones, and helped with the final last stage of polish for the end leading up to the ACE, this run definitely belongs entirely to total and sniq. It's too bad that this run basically skips over almost anything interesting at this point, but I guess Super Metroid already has more than enough runs to show of the rest of the game!
sniq's comments:
This is a perfect example of when you want to make something happen no matter what it takes. My research of new methods to enter OoB with pause abuse combined with total's coding knowledge and cpadolf's tas optimization experience led to this awesome new tas, which makes Super Metroid look like a completely different game than it ever was before!

Thanks to

  • amaurea for a lot of help with researching, tracing and debugging the game to make this all happen.
  • The Super Metroid speedrunning and TAS communities for pushing this game further and further.

Noxxa: Judging.
Noxxa: It is a bit of a shame that these runs are cut short so much, there is very little of the actual gameplay or creative routing left to appreciate. Nevertheless, accepting to Moons as an improvement to the current game end glitch publication of the game.
feos: Publication underwater.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15594
Location: 127.0.0.1
Skilled player (1444)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
Youtube link seems broken, probably missed the last few characters, so here it is until it's fixed: https://www.youtube.com/watch?v=30Lar33xD-g Also voted yes because it saves the animals. EDIT: Also the rerecord count isn't entirely accurate because the run was spliced together from several different parts, made on different emulators even and only the rerecords of one of them is there. But it's very hard to say what the actual count is and it doesn't really matter for much anyway.
Agare Bagare Kopparslagare
Noxxa
They/Them
Moderator, Expert player (4126)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
Another five minutes saved. Crazy. It's a bit of a shame that, as with other game end glitching runs, the shorter they become, the less of the game is left. Right now, most of the run is just the first handful of corridors/rooms of the game with not a whole lot of variation in abilities or routing visible in the gameplay. The run before this was much better in that regard. Such is the nature of game end glitch runs, I suppose. Not sure what to vote yet.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
sack_bot
He/Him
Player (112)
Joined: 11/27/2011
Posts: 394
Location: Massachusetts
Only one thing that might be able to be shaved off: why do you fire those shots that don't hit anything? Doesn't that lag the game?
Message me here for my discord. Current Project: Psycho Waluigi Project on wait list: None?
Editor, Skilled player (1440)
Joined: 3/31/2010
Posts: 2109
That was very unexpected. Also wasn't aware it was possible to trigger ACE like this. Yes vote, natch.
Skilled player (1444)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
sack_bot wrote:
Only one thing that might be able to be shaved off: why do you fire those shots that don't hit anything? Doesn't that lag the game?
Shots can cause lag sometimes but it's pretty rare. I think the shots that are fired OoB were necessary because of a quirk that forces you do shoot in order to be able to move forward while aiming down without stopping for a frame. If you're talking about other shots like in ceres that's just playing around. Basically no shots are fired if they cause lag except if you want them to cause lag (which you occasionally do but never in this run IIRC). EDIT:
Mothrayas wrote:
It's a bit of a shame that, as with other game end glitching runs, the shorter they become, the less of the game is left. Right now, most of the run is just the first handful of corridors/rooms of the game with not a whole lot of variation in abilities or routing visible in the gameplay. The run before this was much better in that regard. Such is the nature of game end glitch runs, I suppose.
Yeah, as game end glitches gets more and more figured out for the games where they are possible it'll generally just hit a point where nothing of the run remains. It's too bad when the less effectively glitched runs are a lot more entertaining (like Chrono Trigger especially) but as long as there are good non game-breaking any% or 100% runs I think it's fine.
Agare Bagare Kopparslagare
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Keep in mind: Open Bus glitches are likely exploiting an emulator deficiency, or maybe a bug. The bus is likely not implemented properly when open. If Masterjun doesn't finish his test, then I'll write one for SNES. (Having a flash cart or other dev thing would be nice but if I can't get a hold of one I do have an EEPROM I can use instead.) edit: total did some testing and it looks like open bus reads are working as expected on console. Maybe he can write details...
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Post subject: Re: #4352: total, sniq, cpadolf's SNES Super Metroid "game end glitch" in 07:15.95
Glitcher
He/Him
Joined: 3/24/2007
Posts: 216
Location: London, U.K.
TASVideoAgent wrote:
The last discovery enabled us to get OoB without any items at all, and we looked for ways to exploit this to end the game quickly with 0%. Sadly we could not find any way to end the game under these conditions, there was simply not enough blocks with the right properties to make anything happen.
Don't worry. If Super Mario 64 could be completed with zero stars, I'm sure you'll find a way to complete Super Metroid with 0% eventually. :)
Techokami
He/Him
Joined: 6/23/2008
Posts: 160
RIP Super Metroid, killed by out of bounds shenanigans. Obvious yes vote! I applaud the authors.
Joined: 7/2/2007
Posts: 3960
Whelp. That sure is a thing. It's an improvement over the old run, so why not? I mean, it's not like the old run made sense either. Great work, guys!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Reviewer, Experienced player (920)
Joined: 11/18/2011
Posts: 315
Location: Morocco
Wait!Wait!!Wait!!!.Another notable improvement for this super game.I surprised with this.Only 2% and 2min for in game time.Woow!!!.Of course,yes vote. To my mind,this run must obsolete the GT code run,because they are similar,also,it dosen't use the X-ray for ending the game unlike the current run that does,so this last,also must obsolete the previous X-ray glitch,in my opinion.
I still learn more about English. https://www.youtube.com/user/McBobX100
I wrote:
Working is the best way to achieve goals in speedruning. Hardworking is a pain.
Samsara
She/They
Senior Judge, Site Admin, Expert player (2239)
Joined: 11/13/2006
Posts: 2822
Location: Northern California
McBobX wrote:
To my mind,this run must obsolete the GT code run,because they are similar,also,it dosen't use the X-ray for ending the game unlike the current run that does,so this last,also must obsolete the previous X-ray glitch,in my opinion.
The last game end glitch run already obsoleted those.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
Post subject: Re: #4352: total, sniq, cpadolf's SNES Super Metroid "game end glitch" in 07:15.95
Skilled player (1444)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
Glitcher wrote:
TASVideoAgent wrote:
The last discovery enabled us to get OoB without any items at all, and we looked for ways to exploit this to end the game quickly with 0%. Sadly we could not find any way to end the game under these conditions, there was simply not enough blocks with the right properties to make anything happen.
Don't worry. If Super Mario 64 could be completed with zero stars, I'm sure you'll find a way to complete Super Metroid with 0% eventually. :)
There's a possibility that it could work, but it would be slower because you would have to do some very slow glitching to traverse through the game without any items to find a spot that would be suitable. Still if it was possible to do it it would definitely have to be done.
Agare Bagare Kopparslagare
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
True wrote:
Keep in mind: Open Bus glitches are likely exploiting an emulator deficiency, or maybe a bug. The bus is likely not implemented properly when open.
"The bus" is just an 8-bit register that is simply not updated when the CPU does a read request from an address that has no hardware mapped to it. This is well understood. (Actually, there are several MDR in the SNES (PPU and APU, iirc) but the CPU MDR is the most useful one.)
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
creaothceann wrote:
True wrote:
Keep in mind: Open Bus glitches are likely exploiting an emulator deficiency, or maybe a bug. The bus is likely not implemented properly when open.
"The bus" is just an 8-bit register that is simply not updated when the CPU does a read request from an address that has no hardware mapped to it. This is well understood. (Actually, there are several MDR in the SNES (PPU and APU, iirc) but the CPU MDR is the most useful one.)
I understand exactly what it is, and the address buses / data bus in use on the SNES, but did not know the actual hardware implementation of the data bus. While perhaps well understood it is far from well documented. I am trying to find out why SMW is behaving as it does and this was the potential low hanging fruit. As edited in my post well before your reply, this behavior seems to work as expected on console. (And while it may work somewhat like a register, or be implemented internally as one to the CPU, it is called a "bus" for a reason. Again, I understand the technology, but did not understand this specific implementation. After some tests with total confirming behavior and moving the focus of the specific problem, I understand it now.)
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Post subject: Re: #4352: total, sniq, cpadolf's SNES Super Metroid "game end glitch" in 07:15.95
Joined: 1/8/2014
Posts: 55
Cpadolf wrote:
Glitcher wrote:
TASVideoAgent wrote:
The last discovery enabled us to get OoB without any items at all, and we looked for ways to exploit this to end the game quickly with 0%. Sadly we could not find any way to end the game under these conditions, there was simply not enough blocks with the right properties to make anything happen.
Don't worry. If Super Mario 64 could be completed with zero stars, I'm sure you'll find a way to complete Super Metroid with 0% eventually. :)
There's a possibility that it could work, but it would be slower because you would have to do some very slow glitching to traverse through the game without any items to find a spot that would be suitable. Still if it was possible to do it it would definitely have to be done.
Seeing how this is ACE, couldn't you easily just write 0 to the addresses where time and completion ratio are saved? It might still be slower, but only by like two frames. (I know that's not actually 0%... but then, simply jumping to the ending sequence isn't actually beating the game either. :P)
LOAD TO SUNRISE
Post subject: Re: #4352: total, sniq, cpadolf's SNES Super Metroid "game end glitch" in 07:15.95
Skilled player (1742)
Joined: 9/17/2009
Posts: 4984
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
derula wrote:
Seeing how this is ACE, couldn't you easily just write 0 to the addresses where time and completion ratio are saved? It might still be slower, but only by like two frames.
Make the time 0 but the completion 999%
derula wrote:
(I know that's not actually 0%... but then, simply jumping to the ending sequence isn't actually beating the game either. :P)
I know. It's destroying the game. ;) Edit: Now that the setup for ACE can be done shortly after arrival to the planet, I'm hoping some kind of playaround with it that makes the other controllers do something akin to this would eventually be made.
MESHUGGAH
Other
Skilled player (1918)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Take my medal and my yes vote. Good job guys =)
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
This is ultimately what ACE does to TASes: end them before anything interesting happens. It was still good in the GT run, here you only need to watch the last 5 seconds if you've ever watched any SM TAS before. This shows nothing of entertainment value to me I'm afraid. But it still needs to be published for obvious reasons. Truly great research though! I hope it won't end up with something as destructive the next time. :)
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Skilled player (1444)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
Yeah, it's unfortunate that this happens sometimes when things are taken to their logical extreme. I think even the TAS that this one obsoletes had gotten to a point were there really wasn't much to be excited about but obviously this is a step even beyond that. It becomes something that you appreciate more for all the cumulative research that went into achieving it than from actually watching it. I think there's a ton of potential for a playaround ACE TAS though and I really hope that someone with sufficient knowledge can get motivated to undertake that task.
Agare Bagare Kopparslagare
Joined: 5/12/2009
Posts: 748
Location: Brazil
Yes vote. By what I saw in m2k2 I thought you would need X-ray to trigger the explosions in Zebes, but you just jumped straight to the end! Amazing! Congratulations!
Joined: 7/2/2007
Posts: 3960
Something missing from the run description is what the missiles are for. You don't need them to open up the save room. They seem to be switched to right before the ACE happens, but what exactly is that accomplishing?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Skilled player (1444)
Joined: 7/15/2007
Posts: 1468
Location: Sweden
If you don't grab the missiles the door in the old mother brain room will still be gray and there won't be any enemies. It might be possible to glitch past that gray door with the same kind of pause abuse that was used to fall through the door in crateria main shaft (never tried it though), but it would be slower because it takes a really long time to do that glitch with horizontal doors.
Agare Bagare Kopparslagare
Player (89)
Joined: 11/14/2005
Posts: 1058
Location: United States
This run represents an impressive cumulative effort of research and provides a milestone in the Super Metroid running community, for which reasons I give this a big yes vote. It is however quite sad that each run holds less and less entertainment value as each submission comes in. I think it is important to remember that we keep the traditional runs as glitch free as possible. Super Metroid runs are most entertaining when we see as much as possible. I would hate to see any type of xray climbing or out of bounds travel in the amazing any% and 100% runs we have today. I look at how badly the MegaMan and games have been destroyed on this site and it really bothers me how people prefer those runs over their predecessors.
They're off to find the hero of the day...
Joined: 3/17/2011
Posts: 24
What, we still have to land on Zebes to finish the game? Most impressively broken run I've seen in a while. Well done.