"Brownie points to whoever can tell me what's truly bizarre about the way I get to the credits. No, it's not the direction I approach the ship, nor is it the way I enter it."
"In truth, the way to end the game is to finish off all 47 metroids and recharge your missiles. Any missile recharge will do, it's just that ordinarily you're limited to the ship at the end when you do so. You see, when you touch a recharge station, it first checks to see if D089, the memory location for the number of metroids left, is zero; if so, end the game, if not, fill missiles." -Ferret Warlord
This note from the submission thread of #2049: Ferret Warlord's GB Metroid 2 - Return of Samus "any%, glitched" in 23:40.92 made me wonder if there is something can be done to take further advantage of this fact now that subframe input is possible for GB. As it turned out, there is.
Can't blame YouTube when this sequence is played 8 times throughout this 19 minutes run.
  • Emulator Used: BizHawk 2.8
  • Genre: Platformer
  • Heavy glitch abuse
  • Uses sub-frame resets
  • Corrupts save data
Note: Early parts of the movie contain inputs copied from Ferret Warlord's movie. I'm not sure whether they are considered lengthy enough to warrant co-authorship so I'll leave it to the site staff to decide.
Note on branch name: I suppose this one should be branched as "save glitch", but it also uses the select glitch that is currently titular to #2049: Ferret Warlord's GB Metroid 2 - Return of Samus "any%, glitched" in 23:40.92. If this ends up being accepted, it might be reasonable to make that movie branchless while labeling the other 2 movies as "inbounds" instead.

The glitch and SR-388

Detailed explanation can be found on the game resource page.

The save file

Detailed explanation of the save file structure of this game can be found here here. The most relevant addresses are the following:
  • 000F: X coordinate of the room
  • 000D: Y coordinate of the room
  • 0019: Map bank of the room
  • 0019: Equipment status
  • 0029: Actual Metroid count, not the one being displayed
  • 1143: The flag for the event where the displayed Metroid count is increased by 8.
There is apparently no checksum mechanism whatsoever, so the save data can be corrupted by simply resetting with sub-frame precision right after the desired data is written while the rest of the file still has the old values. Note that because of how save file writing works, it's impossible to write values for higher addresses without values in lower addresses being overwritten first. For example, to have the real Metroid count updated in the save file, map coordinates must be overwritten first.
This is the watch file used to observe these values during the making of the movie: https://tasvideos.org/UserFiles/Info/638142827147555872

The route

As mentioned earlier, the real credit triggering condition for this game is to reach a missile refill station after the real Metroid counter, which starts at 47, reaches 0. While there isn't a known way to corrupt the value to be 0 right away (unless the emulator fills uninitiated (S)RAM addresses with 00 instead of FF), it is possible to take advantage of this by repeatedly killing the same Metroids and resetting mid-frame while saving after the counter is updated but before the flags that mark those Metroids as killed are written.
The 8 "regular" Metroids at the end of the game are clustered together and faster to kill than any other Metroid variants and it is intuitive to consider them the best choice for grinding. Each of them require Ice Beam and 5 missiles to be killed. For this reason, Ice Beam and a missile tank, which adds 10 to the default total missile count of 30, are acquired along with Spider Ball and Space Jump, which are used to maneuver.
Breakdown of the 8 times the game is started:
1. Go for Spider Ball, missile tank, and Ice Bream. The game is saved properly here which means this movie does not rely on uninitiated RAM values.
2. Start a new game on the same save slot and save at the first save station while resetting right after the location values are overwritten to have a save file at the starting area with Spider Ball, Ice Beam, and missile cap of 40.
3. Head to the end game area via secret worlds, which is conveniently close to the starting area.
Grab Space Jump via secret worlds before killing the 8 Metroids.
Refill missiles and save the game at the save station outside the final area while resetting right after the Metroid counter is updated. Note that I tried overwriting the flag for the event where the displayed Metroid count is increased by 8 so that it's not played again later but unfortunately the flags for 7 of the 8 Metroids would be overwritten as well by the time that flag is written so this can't be done.
4-7. Grind the 8 Metroids repeatedly. The inputs for each round are near identical aside from the one-time energy refill.
8. Kill 7 more Metroids. It's no longer possible to return to the final big room via Queen Metroid's room because it would lead to a secret world (that can't be maneuvered with the tile set of the room) when the Metroid counter has reached 0, so instead a secret world is used to warp to a big room from earlier part of the game with a missile recharge station in order to trigger the credits.

Special Thanks

  • Ferret Warlord, for the research on the game in general, which inspired this movie to be made.
  • liamnajor, for ROSE, which made it significantly easier to check the inner-working of the game map and come up with a route.
  • Anyone who contributed to making subframe input possible for GameBoy on BizHawk.
  • YOU, for reading the submission text and watching the movie.

feos: Claiming for judging.
feos: I don't know the game at all, but after having watched "100%" and "select glitch", even I can clearly tell the route taken in this movie is very different from the other branches, even if it goes through some of the same areas. [1175] GB Metroid II: Return of Samus "select glitch" by Ferret Warlord in 23:47.40, while confusing to a layperson indeed, has a decent rating, so it can go to Alternative while this becomes the Standard fastest completion. Accepting as a new branch.
Spikestuff: Publishing.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15580
Location: 127.0.0.1
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3822)
Joined: 11/30/2014
Posts: 2831
Location: US
Really cool run, nice job figuring out a good route here. I'm surprised just how much faster this is than the old select glitch route. Also I think this game looks way better in color. I think this run can obsolete the current select glitch run.
Player (150)
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
This was neat, but a bit less entertaining than the existing select glitch run. I'm not up-to-date on current TASVideos policy (sorry, it's been a while), but if possible I feel like this should be a new branch. I would say that this run might benefit from a more thorough knowledge of where particular warps are and such, but the route appears to be direct enough that it seems reasonably optimal (unless there is somehow a way to move the final save point closer to the metroids). Anyhow, I'm going to use this post as an excuse to plug my full disassembly of the game, for anybody who is interested.
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.
Skilled player (1416)
Joined: 10/27/2004
Posts: 1978
Location: Making an escape
You might want to double check your URL there, RT. Oh hey, 15 years later, and someone decides to follow up on my efforts! I am genuinely happy to see this. It's exciting to see that you found a use for the missile reload quirk. Unfortunately - and I will be the first to admit that this is probably raging, out of control ego speaking here - I find that killing the same group of 8 metroids, with not-insignificant downtime between each go-around, is kind of dull. But this really isn't my community anymore. The future is now, and y'all can decide what to do with this movie. And yes, since some of my input is copied, I'd like to request coauthorship. Thank you.
A hundred years from now, they will gaze upon my work and marvel at my skills but never know my name. And that will be good enough for me.
Memory
She/Her
Site Admin, Skilled player (1556)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
I completely agree that this should be a separate branch as somebody who wants to work on an improvement to the select glitch run without killing the same metroids over and over.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Banned User
Joined: 1/6/2023
Posts: 263
I agree with the above.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Fortranm
He/Him
Editor, Experienced player (878)
Joined: 10/19/2013
Posts: 1121
101 frames improvement at the very end: https://tasvideos.org/UserFiles/Info/638146463325927155
Player (150)
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
Ferret Warlord wrote:
You might want to double check your URL there, RT.
Thanks. I dunno how I messed up that link lol.
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.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15580
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. ---- [5218] GB Metroid II: Return of Samus "save glitch" by Fortranm & Ferret Warlord in 19:09.72