View Page Source

Back to Page
Revision 14 (current)
Edited by adelikat on 9/8/2023 6:22 PM
[https://files.tasvideos.org/gameresources/gb/metroid2/metroid2selectglitch.png|right]
The select glitch in Metroid 2 is a fairly interesting one.  By mashing the select button, the player can cause blocks to appear and disappear, giving access to the game's "secret worlds".  In real time, it is very unpredictable and nearly impossible to control.  However, it is possible to get it to work reliably on a tool assisted level.  This page is to help you understand how to get it to work, and utilize some quirks in the map that result from it.

Some of this information is repeated from [http://m2sw.zophar.net/index.html|Zophar's Select Glitch Database].  It is recommended you visit there to start learning about the select glitch.

%%TOC%%

!!! The Select Glitch

This section covers some details about how to get the select glitch to work on a tool assisted level.

!! The Map Buffer

[https://files.tasvideos.org/gameresources/gb/metroid2/metroid2map.png|right]

Pictured to the right is an image of VBA's map viewer which allows you to see the game's map buffer, or part of the map that is in active memory.  To get to it, go to Tools -> Debug -> Map Viewer, and change the settings as pictured.  You may want to play around a bit after opening it to get a feel for how it works.

The picture was taken at the very beginning, so pretend that Samus is standing directly underneath the wing of her ship.  Now, if you were to start where Samus would be standing in the buffer, and draw a line to the right, eventually you will hit the other side of her ship.  In fact, if the game failed to update the buffer as she walks to the right, that is exactly what she would do!  Utilizing the select glitch involves forcing the game to do just that.

The way the game updates this buffer is one side at a time relative to Samus.  One frame it will update the bottom row of the map surrounding Samus; the next frame, the leftmost column; the next, the rightmost; and finally, the top row.  The pattern will start again the next frame.

!! The Select Button

This one is really simple: pressing select to change your weapon causes the game to freeze for exactly one frame.  [user:Ferret_Warlord|Ferret Warlord] has a few theories as to why this happens, but they are not relevant to this explanation.

!!The Select Glitch

Now here is where it comes together:  That frame of lag caused by pressing select forces the game to forget to update whatever side of the map it is trying to update before moving on to the next.  If you can force the game to forget to update that side enough times before it moves onto the next row/column, it will stay there for Samus to interact with.  What was once behind her is now in front of her!

Remember, the buffer has four sides to it.  As such, pressing select every fourth frame a few times while moving in the desired direction will cause the select glitch to occur.  Keep in mind that you need to make sure that the side of the buffer you are forcing the game to forget to update is in the same direction that you are moving in; otherwise it will not work until you change directions or try again.

A really easy way to get this to work in real time (using a turbo controller of some sort) is to simply use turbo select and hope it goes in the direction you want it too.  The frame of lag caused by changing causes the game to ignore every other press of the button, therefore causing the game to interpret it as being pressed every fourth frame.  Handy, no?

Similar effects can be produced using the start button.  However, this has not been researched very deeply, but it seems to be able to be used in two directions at the same time.

It should be mentioned that the buffer can extend at most four blocks into rooms that are offscreen.  This can be used to either manipulate them before entering, or use blocks from them without having to enter them.  The above picture of the map viewer has an example of this, where the top of the buffer has reached into a secret world lurking beneath Samus' ship.

!!! The Map: Secret Worlds and Warping

When using the select glitch, it is possible to create doorways where none existed before.  This allows you to gain access either to the game's secret worlds or other parts of the map (granted, the graphics may be garbled in varying degrees; see [#Shadows|Shadows]).  This section will answer a few questions, such as: How does this happen?  What is a secret world, exactly?  Why does it seem that when I sometimes try to backtrack while using the select glitch, the room I came from is not there anymore?

!! The Map's Layout

The ROM has the game map stored in a series of 7 grids, each being a 16x16 grid of rooms (a room being a 16x16 grid of tiles, a tile being a 16x16 grid of pixels).  The various sections of the game are stored in these grids mostly independent of each other, hooked up mainly by a series of "warp rooms" (see [#Warping|Warping]).

This means that locations that are far apart on the game map can be sitting right next to each other on the storage grids!  Unless you are in a warp room, using the select glitch will take you to the room bordering the one you are in, whether it be another part of the game map or one of the many secret worlds.

Side note: Generally, each grid follows a theme of sorts; for example, grid 1 contains the exteriors for the first four ruins while grids 5 and 6 contain the interiors of said ruins.

!! Secret Worlds

[https://files.tasvideos.org/gameresources/gb/metroid2/metroid2secretworld.png|right]

Secret worlds are simply copies of the same room used to fill the space between the normal map rooms.  Each grid has its own secret world; for example, grid 1 has the grayish background used as the background for the ruins' exteriors, whereas grid 3 has a horizontal hallway, and grid 5 has the infamous Chozo maze.

An interesting fact is that the room used for each grid's secret world is a copy of another room used in the main map.  For example, the Chozo maze is actually a shadow of a portion of a vertical climb used in the final ruins where the regular metroids are found.

Secret worlds can be used to gain access to non-neighboring parts of the map.  The Chozo maze is used quite extensively for this purpose in the current glitched run.

Note: The secret worlds are devoid of all signs of life.  There are no items to grab, no metroids to kill in them.  They are simply paths to other parts of the map that do have these.

!! Warping

[https://files.tasvideos.org/gameresources/gb/metroid2/warp10.gif|right]

As mentioned before, the way the game links parts of the map to others is through a series of warp rooms.  Warp rooms take effect when Samus triggers a border transition (that is, she leaves the room through one of the boundaries where the screen stopped scrolling).  They can be a powerful way of moving about the map, but what they do can be extremely confusing if you are just getting into the select glitch and are not fully aware of their existence.

Simply put, a warp room works by pretending to be in another location whenever Samus leaves it.  We will call this an "exit point".  Let's use an example to demonstrate this.  Imagine Samus is in the room 10x4 on some arbitrary grid.  It has an exit point of 5x5.  There is an opening on the right side; therefore, when she leaves that room through the normal opening, she will be in the room at 6x5, not 11x4!

Now, imagine that she uses the select glitch to create an opening through the floor of the room.  When she goes through that opening, she will not be at 10x5, she will be at 5x6! In this situation, if you try to backtrack, you will find the room you left from is not there anymore.  She will actually end up at 5x5, not 10x4 pretending to be at 5x5.  This could be part of a secret world; it may be another part of the map altogether.  5x5 could itself be a warp room to somewhere else entirely!

Warping is used extensively in the glitched run.

Pictured is an animated GIF to demonstrate how this works.  It uses [http://m2sw.zophar.net/m2edit/|M2Edit], a map editor for this game.

!! Scroll Warping

[https://files.tasvideos.org/gameresources/gb/metroid2/metroid2screenwarp.png|right]

Scroll warping entails getting Samus to appear on the opposite side of a room by screwing with how the screen scrolls.  It involves using the select glitch to force the screen to be between two different rooms that the screen would ordinarily stop scrolling between.

When you do this, the screen will attempt to correct it itself according to orientation.  If the screen is on top of a horizontal border, it will not scroll up when you jump, only down when you fall.  If it is on top of a vertical border, it will slowly scroll over to the closest side of the screen.  If you can get Samus on the other side of the border before it fixes itself, she will warp to the other side of the room that she was just in.

Both types are used once in the glitched run, the first to get out of an otherwise awkward situation after grabbing a missile pack, the second simply to position Samus as far left on the screen as possible (she does not warp in this case, but it does cause her to be further off the screen than she normally could be).  The second type is also visible in a few situations, but is otherwise unused.

!! Shadows

[https://files.tasvideos.org/gameresources/gb/metroid2/metroid2shadow.png|right]

Shadows are simply parts of the normal map but with a different tileset than normal.  This is caused by the select glitch allowing you to bypass the blackout transitions where tileset loading ordinarily occurs.

It is interesting to note that, unlike most games where a tileset switch has no effects outside making the screen look garbled, in Metroid 2 each tile has a physical property attached to it.  If it looks like a spike, it will act like a spike and deal damage, even though that should be sand that you are walking on.  Sprites do not follow this rule.  The spider ball will always be the spider ball, though it looks like an enemy.