User Tools

Site Tools

“Where drama sometimes happens, but it's all good”

zero_mission:basic_guides:mage

Table of Contents

Metroid Zero Mission - MAGE Tutorial (Incomplete)

Note: This guide was made in reference to MAGE 1.3.2 Documentation

Quick Links: Metroid Zero Mission - Clipdata List


PART 1: GETTING STARTED

Guide Expectations

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.

Create a ROM Hacking Folder

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.

Obtain a USA Metroid Zero Mission ROM

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 ZEROMISSIONE.

To verify your ROM matches the information above, you can use OpenHashTab or Quickhash.

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.

Download a GBA Emulator

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.

Download MAGE and make sure it works

MAGE can be downloaded here.

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's files

Name Description
mage.exe Metroid Advance Game Editor
doc.html MAGE Documentation
technical.html Technical Information about MAGE and the MAGs

PART 2: MAGE'S EDITORS & OPTIONS

SMILE RF window (Tiles & BTS tab)

SMILE RF window (Room MDB tab)

SMILE RF window (ROM Stuff tab)

FX Editor

Enemy Editor

PLM Editor

Palette Editor

Door Editor

Map Editor

Tileset Editor (part 1)

Tileset Editor (part 2)

Tileset Editor (part 3)

Tileset Editor (part 4)

Tile Table

Message Box Editor

Mode 7 Scene Editor

SMILE RF hotkey list

PART 2: CREATING A ROOM

Basic level editing

Download a hex editor

Hex editor functions

Counting in hexadecimal

Copy/paste the room header

SMILE's room list

Room header format

Room pointers

Banks / ROM minimap

Level data

Background pointer

Room size / map position

Basic room structure

Doors pointer

Door data

Door BTS

Adding new doors

Room Scrolls pointer

Door ASM pointer

Debug your doors

PLM Set pointer

Scroll PLMs

H-Copy / V-Copy

SMILE's layers

Tile highlighting

Graphic Only / BTS Only

BTS (block types)

Basic room design

Slopes

Tiling errors

Up Scroll / Down Scroll

Camera snaps

Scroll snaps

Level design tips

LEVEL DESIGN MISTAKES TO AVOID

Finished room design

Enemy setup

Multi-piece enemies & possessors

Enemy headers

Enemy projectiles

Enemy Palette pointer

Enemy Weaknesses pointer

Enemy Drops pointer

Enemy GFX names

Enemy beta names

General enemy info / limitations

Enemy header copying

Layer 3 effects ("FX") / FX1

Door-specific FX

FX palette blends

Screen shakes

Bug fix: liquid graphics

Map editing

Bug fix: map saving/loading

Map icons

Room states / events

When to call a room finished?

PART 3: OTHER STUFF

Save stations

Elevators

Music selection

Song changes

Sound effects

Color palettes

Tile table editing

Repointing tilesets

Tile sheet (.GFX) editing

Tile rotation

Tileset mixing

Reassigning GFX colors

Graphic and palette locations

IPS/ASM patch usage and creation

Understanding basic ASM

Resources

FAQ

Glossary

Revision history

Special thanks / contact me

Main Window

The screen to the left of a visible room in MAGE will look like this.

  • Red- View selection (use to view certain layers)
  • Orange- Edit selection (use to select a layer to edit and whether or not to edit clipdata)
  • Yellow- Spriteset selection
  • Green- Clipdata selection (only active if clipdata edit is selected)
  • Blue- Tile selection; chosen from available tiles in tile set

File

FIXME

Backing up your ROM is as easy as clicking on Create Backup. The filename of the backup is a timestamp, in the format YYYY-MM-DD_HH-MM-SS.gba

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 Recent Files


Edit

FIXME

When Use Selected Clipdata is activated, tiles placed will use the clipdata value from the drop-down list.


View

FIXME

Can be used to view clipdata in 3 different ways:

  • Collision (Outlines)

  • Breakable (Reveals hidden breakable blocks)

  • Values (Clipdata value and color)

You can also show or hide Sprites, Sprite Outlines, Doors and Scrolls.

To ensure that a room fits the screen, or to determine its shape in map tiles, you can turn on Screen Outlines.

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.


Options

FIXME

You can 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.


Part 1- BG Editing Mode

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.

  • BG 0 – The foreground objects lie here, they appear in front of everything (including the player)
  • BG 1 – This is most commonly what is used for the player to walk on.
  • BG 2 – Includes background objects, which do not usually affect the gameplay and are there for decorative purposes (rocks and plants). They appear behind everything
  • BG 3 - This is the entire background image. You can't select this for editing, but you can turn it on or off.

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).


1A- Layers

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.

Controls

  • Left Click - Paste Block(s)
  • Right Click - Copy Block(s)

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.


1B- Clipdata

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.

Metroid Zero Mission - Clipdata List

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).


a. Basic Blocks

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).


b. Item Tanks

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.


c. Breakable Blocks

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.


d. Water, Acid, and Lava

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.


e. BG0 Transparency

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.


f. Door Transition Tiles

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.


Part 2- Object Editing Mode

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.


a- Sprite Editor

  • Red - Sprite Preview, shows how the sprite looks. Some sprites like geemers and zeelas don't have their alternate colors shown since those are decided by their AI
  • Orange - Sprite number and Primary/Secondary selection.
  • Yellow - Health and Damage selection. Damage may not be accurate for boss sprites. Suit Reduction only applies to Fusion, where first number is varia suit and second is gravity
  • Green - Drop Probability, the total for all drop chances must equal 400 (in hex). The probability is the drop's number divided by 400 (in hex).
  • Blue - Vulnerability checkmarks. This decides what can damage an enemy.
  • Purple - GFX and Pallete offsets. You can directly go to the graphics editor with these.
  • Black - AI Offset. This just indicates to where the AI for the sprite is.

b- Spriteset Editor

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.

  • Red - Graphics layout. Each spriteset can only have 8 rows of graphics. The bottom two rows are reserved for messages, so make sure that you don't have anything in those two rows if your room contains an item.
  • Orange - Preview. Shows the currently selected sprite.
  • Yellow - Palletes. These are all the sprite palette rows being used up by sprites in the spriteset.
  • Green - Selection of spriteset editor and slot. There can be as many as F slots (aka 15 enemies), however this isn't particularly useful since you can only have 8 rows of graphics anyways.
  • Blue - Sprite selection for the current slot you have selected. Then you also select what row the top row of the gfx should be on.
  • Purple - Import/Export. You can import and export spritesets.

2A- Sprites

Port this (Forum Link)FIXME

Right clicking anywhere on a room whilst in sprite edit mode will bring up the following menu


2B- Doors

2C- Scrolls

FIXME


Editors

FIXME


Header Editor

FIXME


Exit Distances: 10- Right, no hatch 20- Right, hatch E0- Left, hatch F0- Left, no hatch

Tileset Editor

FIXME


Graphics Editor

FIXME


Palette Editor

FIXME


Tile Table Editor

FIXME


Animation Editor

FIXME


Sprite Editor

FIXME


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 “´”

Spriteset Editor

FIXME


Connection Editor

FIXME


Minimap Editor

FIXME


Text Editor

FIXME


Demo Editor

FIXME


Physics Editor

FIXME


Weapon Editor

FIXME


Tools

FIXME


Room Options

FIXME


Minimap Tile Builder

FIXME


Add

FIXME


Patches

FIXME

zero_mission/basic_guides/mage.txt · Last modified: 2023/01/02 07:58 by felixwright