-
Notifications
You must be signed in to change notification settings - Fork 6
Main Window
The main window is used for editing backgrounds, sprites, doors, and scrolls within a room. MAGE Themes also allows for quick editing of the effect position. Choose a room by selecting the area in the location box and finding the room you want to edit. Changes made to the room are automatically kept track of, so you don't have to worry if you switch to another room (however, you must still save the ROM).
Viewing and editing controls are above the tileset. There are two editing modes: background editing and object editing. These are explained further below. The room and tileset expand with the window, so take advantage of full screen mode. The room view also has a zoom function (between 100% and 800%).
You can quickly test a room with an emulator by right-clicking anywhere (in object editing mode) and selecting "Test room here", or by hovering over the location and pressing 'T'.
GBA games use four layers for displaying graphics. These layers consist of the foreground (BG 0), the level or interaction layer (BG 1), the back layer (BG 2), and the background (BG 3). For consistency and conciseness, I only refer to these as "BG".
You can view any combination of BGs that you like. It may be convenient to hide BGs that you are not editing. BG 0 through 2 and clipdata can be edited by first making sure the background editing mode is selected. You can switch between modes quickly by middle-clicking on the map. Background editing works by using a clipboard that holds BG0, BG1, BG2, and clipdata values. You can copy blocks from the tileset by clicking and dragging with any mouse button. When copying from the tileset, each block in the clipboard will have the same value for all three BGs (clipdata is excluded). You can copy blocks from the room by right-clicking and dragging. This creates an exact copy of each block and its four values. Under the "View" menu is a clipboard viewer, which opens in a separate window and updates as you copy blocks.
To paste blocks, simply left-click where you want the blocks to be on the map. Before pasting, you must select which BG values you want to be pasted by choosing a BG from the "Edit" box. You can also paste clipdata values alone or simultaneously with another BG. If your last selection was made from the tileset, the clipdata pasted will be the clipdata value that is currently selected from the drop-down list. If you only want to use the selected clipdata value, regardless of where the previous selection was made, then check the "Use Selected Clipdata" option under the "Edit" menu.
Sprites, doors, and scrolls cannot be moved while editing BGs.
Clipdata determines how Samus interacts with the blocks in a room. It is completely independent of the graphics of the blocks. For example, the most common types of blocks are solid blocks and air blocks, but there are many others, including missile expansions, ladders, slopes, dusty ground, bomb blocks, etc. Clipdata should still reasonably match the appearance of the blocks to avoid confusing players. Because the clipdata list is fairly long, there is a shortcut option under "Tools" that brings up a graphical list of various clipdata values.
In MAGE Themes there is also a button next to the clipdata drop-down list, which opens the shortcut window.
There are three ways to view clipdata. The first one outlines clipdata grouped by type. The second one shows breakable blocks. The third one shows the actual clipdata value of each block. These visualizations are useful for making sure your clipdata values were assigned correctly, especially for air blocks, solid blocks, and slopes.
RLE and LZ77 are used to refer to backgrounds and graphics throughout MAGE. They refer to different types of compression. You don't need to know how the compression works; they're only used as names. RLE is used for backgrounds that you can edit in the main window, while LZ77 is used for backgrounds that consist of a repeated image (and can be edited with the Tile Table Editor). BG1 and BG2 always use RLE, and BG3 always uses LZ77. BG0 can use both. The graphics for each tileset are split into RLE graphics and LZ77 graphics. RLE graphics are used to make the blocks you can place in rooms, while LZ77 graphics are used for the backgrounds with a repeated image.
Sprites have two viewing options. You can view a preview of the sprite, along with a green outline that marks its actual coordinates within the room. The sprite preview may not be accurate to how it appears in game. Some sprites may be rotated if they're next to a wall when they spawn. Sprites can be moved by first making sure the object editing mode is selected, then by clicking and dragging the outline of the sprite you want to move. You should avoid overlapping sprites.
Sprites can be edited by right-clicking their outline on the map. In MAGE Themes you can also double-click the sprite. Here, you can change which sprite from the spriteset it is, as well as the property of the sprite. You can quickly change between sprites by hovering your mouse over the sprite outline and hitting left bracket '[' or right bracket ']'. If you want to change it to a sprite that is not one of the options, you'll have to edit the spriteset. Check the Spriteset Editor section for more info.
The property of a sprite determines how it interacts with X parasites (so it is only relevant for Fusion). When a sprite has a property of 0xA, it only forms when a free floating X is available. Sprites with this property are shown semi-transparent on the map view. When a sprite has a property of 0, its sprite ID becomes its slot number. Sprites 0-2 are X targets. This is what X fly toward when an enemy is killed. It is important to have an X target in any room with enemies. Otherwise, the X will simply fly off the screen right away. Sprite 0xE is used to determine where an ability X will form. More info on property values can be found in the technical document, though it is not fully understood. Looking at existing sprites may help.
Sprites can also be added or removed using the right-click menu. You can quickly remove a sprite by hovering your mouse over the sprite outline and hitting delete. A sprite can be added anywhere within the room, and it will default to the first sprite in the spriteset. The game can only support a maximum of 24 sprites, so this is the limit for each room. However, many sprites generate other sprites (projectiles, etc.) so it is recommended that you keep the number of sprites below 24.
Why is my sprite not showing in game? Certain sprites will only spawn under certain conditions. For example, some sprites will only spawn if placed next to a solid block. Make sure your sprite is in a location that makes sense.
[Fusion] What are the green dot sprites? The green dot is a place-holder graphic for sprites with special functions. For example, they may trigger a room to shake or continuously spawn X.
[Fusion] Why is the SA-X placed in the middle of some rooms? The SA-X's AI routine determines where it will appear within a room (ex: the last door Samus went through). The SA-X has to be a part of the room for it to appear at all, but its placement does not matter.
[Zero Mission] What are the sprites that look like health drops? The health drop is a place-holder graphic for sprites with special functions. Usually they are used for triggering certain events.
Doors are marked with a blue outline. The viewing, moving, and editing options are very similar to sprites. Doors can only be moved while object editing mode is selected, again by clicking and dragging. In order for doors to work, they must have the appropriate clipdata under them. This value is 20 for horizontal doors, 27 for vertical up, and 28 for vertical down. The clipdata will not be automatically set for you. If you move a door, make sure to edit the original location and the new location as necessary. If you want to create a one-way door, simply don't use any of the above clipdata values under the destination door.
Doors can be edited in a number of ways by right-clicking a door and selecting "Edit door" or in MAGE Themes by double clicking the door. Information about the door you're editing as well as the connected door is shown at the bottom. Door numbers work on a per area basis. If you want to connect a door to another area, use the Connection Editor. You can edit the type, width, height, and exit distance of the door. More info on door types can be found in the technical document. Exit distance determines how far Samus appears from the door. Dividing this number by 16 will get the number of blocks. In MAGE Themes you can choose from common presets by clicking the door icon next to an exit distance.
If you change the owner room, the door will be removed from the current room and put in the upper-left corner of the new room. Change the connected door by inputting the appropriate door number. If you have "Auto connect door" checked, the new connected door will automatically be edited for you.
You can quickly change the size of a door by hovering your mouse over it and pressing 'W', 'A', 'S', or 'D'. Also, pressing 'G' while hovering over a door will load the room it connects to. In MAGE Themes you can also use the right click menu to load the connected room.
MAGE Themes adds an Auto Setup feature, which is available if an adjacent door is found. For an adjacent door to be found the current door has to be on the edge of a screen and a second door has to be on the edge of the next screen. If the next screen is in a different room, both rooms have to have properly setup map coordinates. To change the map coordinates use the Header Editor.
If an adjacent door is found you can choose between "Auto Setup" and "Only Link". The latter only links the door IDs while the former also sets up a matching exit distance and copies the door type.
Scrolls are marked with yellow outlines and numbered corners. Scrolls determine the boundaries of where the camera can move. Each one must be at least the size of the screen (15 x 10 blocks). Rooms without any scrolls will follow the default scrolling scheme. This means that the camera will center on Samus and will not move beyond the two block border surrounding each room. When adding your own scrolls, it's important that all accessible areas are covered by a scroll. Otherwise, the player can run off-screen and not see where they are. Looking at the scrolls in existing rooms will give you a good idea of how they should be placed. You should only use scrolls if your room is an unusual shape, or you want to temporarily conceal part of the room.
Scrolls can be moved and resized by clicking and dragging the corners. Make sure "Object Editing Mode" is selected first. Scrolls can be removed by right-clicking on any of the corners, or by hitting delete while hovering over a corner. Scrolls can be added by right-clicking anywhere in the room. You can also add scrolls to rooms that have none.
Scrolls can optionally be extended in one direction, which is triggered by using an elevator or breaking a particular block. This can be set by right-clicking on one of the corners and selecting "Edit scroll" or in MAGE Themes by double clicking one of the corners. Elevator rooms should have extended bounds but should not have a breakable block. For scrolls with a breakable block, the scroll will have normal bounds while the block is intact and extended bounds while the block is destroyed. Generally, the breakable block should be one that never respawns. However, it may possible to create a unique puzzle or something similar by using a block that respawns. The best way to understand how this optional feature works is by looking at scrolls in other rooms.
MAGE Themes adds a fourth outline that displays the current effect y position in the room.
The effect position is marked with a magenta line. It contains the y value as a number on the two end points of the line. The position can quickly be changed by clicking and dragging one of the end points while "Object Editing Mode" is selected.
Effects can be changed in the Header Editor and they are explained in the technical documentation.