Doors With Editroid

I know I was pretty confused about how doors work when I started messing with Metroid, and it’s been a recurring question. The trickiest part is scrolling, but I’ll go over a couple other points, too, so here’s the scoop.

  1. Scrolling
  2. Music Changing Doors
  3. Doors In Item Data

1. Scrolling

Yellow doorways used to connect horizontal rooms

Yellow Doorways

The trickiest aspect of the doors in Metroid is how they affect scrolling. A room scrolls either horizontally or vertically. The direction a room scrolls is determined by the doorway in the previous room. This makes things unintuitive and confusing, but this is the way it is.

To get a better picture of what’s going on, enable Display Physics under the View menu. There are two types of doorways: green and yellow. Using Brinstar as an example, green doorways are object type 3, and yellow doorways are object type 4.

Standard Doorways

In a normal Metroid ROM most doorways are green. A green doorway toggles scrolling between horizontal and vertical when the player passes through the door. Green doorways are used to connect two rooms that scroll in different directions.

Yellow doorways are special doorways that always set scrolling horizontal. These are intended to connect two horizontal rooms together. (There is no way to connect two vertical rooms together.)

Doorway Scrolling Patch

Editroid provides a patch that modifies how doorways affect scrolling. When the patch is applied, green doorways will always set scrolling to vertical, and yellow doorways will always set scrolling to horizontal. Understand that when the player passes through a doorway, scrolling is based on the color of the doorway in the room the player came from, not the doorway in the room he entered.

To connect two vertical rooms together, use green doorways. To connect two horizontal rooms, use yellow doorways. To connect a horizontal room to a vertical room, place a green door in the horizontal room and a yellow door in the vertical room.

Non-Scrolling Rooms

There are a number of non-scrolling (single screen) rooms in Metroid. Note that even though these rooms may not scroll, they are still considered to be a horizontal or vertical room.

A horizontal room can be made to be non-scrolling by placing a door on both sides of the screen. Alternatively, a horizontal room wont scroll if the screen next to it is disabled on the map. (In Editroid, you can disable a map location by clicking on the screen in the editor area, and selecting Disable Selected Screen under Tools.)

A vertical room will only be non-scrolling if the map locations above and below it are disabled.

2. Music Changing Doors

There are four types of door bubbles. There are the familiar standard doors (blue), missile doors (red), and ten-missile doors (purple or orange). Additionally, there are music changing doors. These are only used in Tourian, for the doors that lead into and out of the room containing Mother Brain. These doors cause the music to change between the normal level music and the Mother Brain music. They may stop the music or play the wrong music if used incorrectly or in the wrong area.

3. Doors In Item Data

Doors as shown when stored in item data

Item data doors

In Metroid, door bubbles are normally part of a screen’s layout. (They will show up everywhere that same screen is used.)  There are a few door bubbles that are stored in the level’s item data. In Editroid, a door bubble stored in item data will appear further from the doorway than a normal door bubble, as shown to the right.

The door bubbles stored in item data generally behave the same as normal door bubbles, but there are a couple of differences when it comes to editing. The doors in item data are edited with the item editing interface (a list appears above the map when the door is selected), and they can not be deleted from the room the same way a normal door bubble can. To delete a door from item data, use the Advanced Item Editor under Tools. You can also easily move the door to another room by showing the level’s items on the map, and dragging the door’s icon to a different room.

When a room contains both a normal door bubble and a door bubble in item data, the door in item data takes precedence the normal door in room data takes precedence (thanks to Polick for making me aware of that). For example, in the very tall shaft in Norfair, a screen with a blue door bubble on the left is reused several times. The door going to the high jump boots however, has been replaced with a red missile door has red door bubbles in item data, but these are ignored. (The fact that these red door bubbles are not tracked by the password indicates that the developers were aware that they would not appear in-game.)

Leave a comment

2 Comments.

  1. I’ve been trying to figure out item data doors for the longest time now, but have yet to get them to work. Even when I use the Test Room feature in the mentioned Norfair shaft, the item data doors placed there still don’t work despite me doing absolutely nothing to the ROM beforehand, which includes leaving the ROM unexpanded.

    The only time doors stored in item data work for me is when the normal door in the room is deleted. But, of course, this means that every other instance where this screen is used looses its door bubble. So that method is pointless.

    Unless there’s some super trivial trick I’m missing or if there’s a piece of documentation that I haven’t skimmed over (trust me, I’ve searched a lot), I don’t know what’s wrong. :/ I could really use some help!

  2. At the time I wrote the article, my understanding was that item data doors overrode screen data doors, but I looked into it, and it seems it actually works the other way around. It makes me wonder why doors are even supported in item data.

Leave a Reply

Your email address will not be published.


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">