Note: This guide was made in reference to MAGE 1.3.2 Documentation
Quick Links: Metroid Zero Mission - Clipdata List
This guide expects the reader to be using the Windows operating system to ROM hack. If you are using a different operating system, consider creating and running a Windows virtual machine.
This guide is written for use with MAGE 1.3.2. At the time of writing MAGE only supports USA ROMs.
Begin by making a folder dedicated to ROM hacking. How it's named or organized does not matter.
This is important to ensure you do not misplace any important files, and that they are all in one place.
If you can't decide, create a folder named “ROM Hacking” in your Documents folder.
You must dump your ROM. Check the first footnote to see how to do this. 1)
Otherwise, you could look around online. The ROM should be “Metroid - Zero Mission (U) [!].gba”.
The file extension should be
.gba. It should NEVER be
.exe. If it is, DELETE THE FILE. To view file extensions on Windows 10, launch File Explorer, then click on the
View tab and check the
☑ File Name Extensions box. To show file extensions on Windows 11, open File Explorer, and then click
View > Show > File Name Extensions.
ROM size is
8,388,608 bytes. The CRC hash is
5C61A844, sha1 hash
5DE8536AFE1F0078EE6FE1089F890E8C7AA0A6E8 and internal name
Using OpenHashTab, right-click the ROM and select
Properties. Go to the
Hashes tab. Copy the sha1 hash from this page to your clipboard, and paste it into the text box below
Check Against: .
If the hash is correct, below the box, it will say
SHA-1 / <filename>.gba. If it is incorrect, it will say
No match found. You either need to dump the cart again, or have the wrong ROM.
Using Quickhash GUI, Go to the
File tab. Drag-and-drop your ROM over the application. Copy the sha1 hash from this page to your clipboard, and paste it into the text box below
Expected Hash Value.
A message will appear on the screen telling you if it DOES or DOES NOT match. You either need to dump the cart again, or have the wrong ROM.
Once you have the correct ROM, you should put it someplace safe, and only edit copies of it. NEVER edit the original. If you follow this practice, you will not have to re-dump or re-download your ROM when you accidentally corrupt or otherwise destroy a copy of it.
What I do personally is stick it into a
Vanilla ROMs folder, and NEVER open it with ANY editors. When I need to use a clean slate for a new hack, I go into that folder, copy the file, and then paste it into my
ROM Hacking folder.
I recommend using the mGBA emulator. It is fast, it is cross-platform, and it is accurate enough. It is perfect for our needs. For the easiest experience, download and run the installer.
Once it is installed, you should set mGBA as the default program to open GBA files. This is a really important step to take for working with MAGE later.
This can be done by right-clicking a GBA rom and selecting
Open with…. If mGBA does not appear on the list, Scroll down and select
More Apps ⬇. If mGBA is still not there, scroll down and select
Look for another app on this PC.
If you used the 64-bit installer, Browse to
C:\Program Files\mGBA and select
mgba.exe. If you used the 32-bit installer, Browse to
C:\Program Files (x86)\mGBA and select
mgba.exe. If successful, the thumbnail of the ROM should now look like the mGBA emulator.
MAGE Requires .NET 3.0 to be able to function. If your system does not have it installed, Windows 10 will prompt you to install the
.NET Framework 3.5 (Includes 2.0 and 3.0) feature. Once it is completed, the window will disappear, and you should be able to open MAGE.
|mage.exe||Metroid Advance Game Editor|
|technical.html||Technical Information about MAGE and the MAGs|
The screen to the left of a visible room in MAGE will look like this.
Backing up your ROM is as easy as clicking on
Create Backup. The filename of the backup is a timestamp, in the format
Sometimes, you may make a mistake. That's OK, happens to the best of us! You can quickly reload your rom by selecting it in
Use Selected Clipdata is activated, tiles placed will use the clipdata value from the drop-down list.
Can be used to view clipdata in 3 different ways:
Breakable(Reveals hidden breakable blocks)
Values(Clipdata value and color)
You can also show or hide
To ensure that a room fits the screen, or to determine its shape in map tiles, you can turn on
If your room uses space pirate mothership hatches, you can select
Mother Ship Hatches to swap to them.
You can also adjust
Zoom level of the room to better see what you are doing.
Disable Tooltips if you find them annoying.
If you find that the default view of MAGE shows too much or not enough, you can adjust the
Default View. This includes visible background layers, outlines, clipdata, objects, scrolls, screen outlines and doors.
You also have the option of changing the
Number Base from hexadecimal to decimal.
The first step to editing rooms is selecting what layer you want to change. There are 3 layers of tiles that changes how the room looks and one layer that determines how the player will interact with those hitboxes.
You can only have one of these selected at a time to edit. You can also click on their views to show/hide them in case you need to see something from a different perspective. Keep in mind that all of these layers scroll at the same rate, and as such you will not experience any parallax scrolling with them.
Brinstar, Room 6 with and without BG 0 view
The final choice of importance is “clipdata”. Clipdata is not tied to any layer; rather, it decides how a specific block in the room will act. You can select to edit clipdata along with layers while making blocks; however, since you may want to edit clipdata for several different blocks at the same time it is possible to select clipdata without any other option.
Shown above is the drop down menu for selecting clipdata. I will explain the different types of clipdata later in this chapter. Keep in mind that some types of clipdata have only minor differences that may wreak havoc upon level design if used incorrectly (i.e. no reform and never reform).
This section will explain how to edit how a layer “looks”, but not how it works (clipdata). Make sure that you have selected the correct layer to edit before you start editing the room you have chosen. Also, make sure to choose the correct layer that corresponds with the type of block you want to work with.
When selecting blocks to copy, you can select from either the tile table or from the map. If you select blocks from the map, it will only copy blocks from the layer you are currently on. This can be used to build pre-determined structures more quickly or to copy things that you may want to reuse several times in a room.
For example, in the pictures below a door is selected. Later, it is pasted into the room as a whole set of blocks (the red box is the outline for where it would be placed if the mouse left clicked again).
A general rule of thumb for editing layers is to make the blocks that Samus can stand on be Layer 1, since Layer 2 will always appear behind her.
In bland terms, Clipdata is how each block works. Each tile location in a room has a certain clipdata value assigned, be it 0 for air or 10 or solid. There are FF (255) slots available for different types of clipdata, however many are unused. Be very careful when editing clipdata in a room, because clipdata will work how it wants whether or not you have a block placed in a slot (for example, you can have an invisible slope in the air due to clipdata that has been assigned to empty squares). This means that any block that you do not want to be special will be assigned clipdata value 0, which indicates “air”.
Clipdata is edited in the same way as block layers, with the only difference being that if you select a large group of blocks in the tile table, they will all share the same clipdata. MAGE is very generous in explaining what each clipdata number does, so I will just explain the important values whose functions may not be obvious at all.
Individual Clipdata and how to use them is explained in the above link! Alternatively, you can read the next sections on the most used functions in rooms (highly recommended).
The most common types of blocks you will use are ground blocks. Clip0 and Clip10 (“Air” and “Solid Block”, respectively) will likely be your most used blocks in the room. Other blocks, such as Clip11 or Clip16 (”/ Steep Floor Slope“ and “\ Lower Right Floor Slope”)
As seen above, solid clipdata prevents any sprites from moving through it. This includes the player, enemies, and projectiles (ok wave beam sure it passes through). Samus can pass through passages with a height of 2. Morph ball can pass through a passage with a height of 1. Slopes will work like they sound, they gradually make the player go lower. Keep in mind that Samus's head can not clip through the ceiling when going up or down a slope, so make sure to plan the overhead accordingly (shown bottom).
Item tanks are much easier to use than they may seem at first. All one has to do is select the proper tile in the tileset and use the corresponding clipdata on the tile. For example, a missile would use Clip5D to denote its “tankiness.” If you have clipdata showing, expansion tanks will be shown as purple. Also, only Energy Tanks, Missile Tanks, Super Missile Tanks, and Power Bomb Tanks can be placed this way. All other items must be taken from a Chozo Statue (a set of sprites which I will explain later).
“But One,” you may be asking, “how do I set the tanks to have the properties of the blocks around them?” Well, this is very simple. Use Clip6C-Clip6F for expansions hidden in blocks that must be shot (like in the picture above on the right) or Clip7C-7F for expansions that are placed underwater.
An important type of block to have is the breakable block. This includes anything from crumble blocks (which break under the player's feet) to screw attack blocks (which can only be broken with the screw attack). These come in 3 varieties: Reform, No Reform, and Never Reform. Reform means the block will reform after approximately 5 seconds. No Reform means that the block will not come back until the player leaves the room and returns. Never Reform indicates that the block will never reappear, no matter what happens in the world. Unfortunately, not every type of breakable block has each of these 3 settings (actually, none of them (excluding normal shot blocks) have all three; they usually have 2).
A breakable block to note is the horizontal and vertical bomb blocks. These can be used to create the infamous bomb chains that Zero Mission and Fusion have.
Clipdata A0, A1, and A2 are used for Weak Lava (which varia suit is immune to), Strong Lava (which gravity suit is immune to), and Acid (which nothing is immune to). These are fine to be used, however it is more recommended to use header effects (explained later) instead of these. The same goes for water, which is clipdata 1B.
There are several clipdata blocks that affect layer 0. These are pretty odd, but essentially they change either the transparency of bg0 tiles or make it brighter/darker. Keep in mind that these apply effects to lava/acid/water if you have them in the room by using the room headers.
Doors are an essential part to any hack. Their use is not obvious, but it is rather simpler than one might expect. However, seeing as doors should be paired with sprites, I will explain how to use them in the sprites section.
Sprites can be easily edited by clicking the morph ball symbol at the top of MAGE. To access the sprite editor, click the long beam button. To access the spriteset editor, click the eticoon/dachora symbol to the right of the long beam.
Each room has a specific spriteset chosen for its room that can only have up to 8 rows of sprite graphics. This means that stuff like bosses and larger enemies may create problems if you want to have a lot of enemy variety in your room.
Right clicking anywhere on a room whilst in sprite edit mode will bring up the following menu
Exit Distances: 10- Right, no hatch 20- Right, hatch E0- Left, hatch F0- Left, no hatch
When a sprite is added in object editor mode, you can quickly change it with [ or ]
On QWERTZ keyboard, the keys for this are “ß” and “´”