This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
zero_mission:basic_guides:mage [2024/05/15 13:11] – placeholder images for editor sections (need to be given legends later) felixwright | zero_mission:basic_guides:mage [2024/05/15 15:59] (current) – felixwright | ||
---|---|---|---|
Line 2: | Line 2: | ||
<WRAP centeralign> | <WRAP centeralign> | ||
======= HOW TO EDIT METROID ZERO MISSION ======= | ======= HOW TO EDIT METROID ZERO MISSION ======= | ||
+ | [[# | ||
+ | |||
FIXME (INCOMPLETE)\\ | FIXME (INCOMPLETE)\\ | ||
Line 17: | Line 19: | ||
<WRAP centeralign> | <WRAP centeralign> | ||
====== GETTING READY TO ROM HACK ====== | ====== GETTING READY TO ROM HACK ====== | ||
+ | [[# | ||
</ | </ | ||
\\ | \\ | ||
Line 134: | Line 137: | ||
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 '' | 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 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | ---- | ||
+ | |||
+ | ===== Are your big ideas actually possible? ===== | ||
+ | |||
+ | Until you understand the limits of the game you're hacking, your ideas might seem impossible or at least very hard to code. Most people won't want to go through the trouble of coding it for you unless they believe your project has real potential. Learning these limits takes time, but if your ideas are simple or you're willing to use a simplified version of your original idea, it becomes much more feasible. It's helpful to initially assume your ideas might not be possible (while still checking with experienced hackers). As more of your ideas get refined or ruled out, you'll start to see what's realistically achievable. <color orange> | ||
+ | \\ | ||
+ | \\ | ||
+ | ---- | ||
+ | |||
+ | ===== What kind of hack do you want to make? Will it be worth it? Who is your audience? ===== | ||
+ | |||
+ | You should consider all of this now and spare yourself a LOT of possible wasted time later. Is this hobby really for you? Real talk: overwhelmingly, | ||
+ | |||
+ | Personal satisfaction is also probably the most important thing there is about this hobby. If you don't like Metroid enough to consider working on it as an unpaid, illegal side-career, | ||
+ | |||
+ | <color orange> | ||
+ | |||
+ | Do you want to make a hack that challenges veteran Metroid players? If so, get rid of any expectations you have about how people will feel about your hack. Almost everyone will simply not like it because it's too difficult, and there is nothing you can do to make them enjoy it or appreciate the amount of time and work you put into it - at the end of the day, you still created something that they do not feel is worth taking their time to play through. This happens because proportionally rewarding the player for accomplishing difficult tasks becomes much harder to do unless you know assembly programming, | ||
+ | |||
+ | It will probably always be a bad decision to try making a fun hard hack as your first project. Hard hacks are only interesting to veteran players of the game, which is a very small number of people. If that is your intended audience, go for it, but don't expect your hard hack to gain much attention. Difficulty is more often just... difficult, and not that fun. | ||
\\ | \\ | ||
\\ | \\ | ||
Line 147: | Line 172: | ||
====== PART 1: MAGE'S EDITORS & OPTIONS | ====== PART 1: MAGE'S EDITORS & OPTIONS | ||
+ | [[# | ||
+ | |||
<color orange> | <color orange> | ||
Line 335: | Line 362: | ||
=== 12. Header Editor === | === 12. Header Editor === | ||
- | ADD IMAGE TODO | + | [[# |
- | + | ||
- | BACKGROUND DATA | + | |
- | ^ | + | |
- | | Tileset | + | |
- | | Transparency | + | |
- | | BG3 Scroll | + | |
- | | Effect | + | |
- | | Effect Y Pos | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | + | |
- | + | ||
- | POINTER | + | |
- | | BG0 | Show/Hide Sprite Outlines (actual position of the objects/ | + | |
- | | BG1 | Show/Hide Doors (objects used to link rooms) | + | |
- | | BG2 | Show/Hide Scrolls (objects used to restrict the player camera) | + | |
- | | BG3 | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | + | |
- | | CLIP | Show/Hide Sprite Outlines (actual position of the objects/ | + | |
- | + | ||
- | PROP (BG PROPERTY) | + | |
- | | BG0 | Show/Hide Doors (objects used to link rooms) | + | |
- | | BG1 | Show/Hide Scrolls (objects used to restrict the player camera) | + | |
- | | BG2 | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | + | |
- | | BG3 | Show/Hide Sprite Outlines (actual position of the objects/ | + | |
- | + | ||
- | SPRITESET DATA | + | |
- | + | ||
- | POINTER | + | |
- | | DEFAULT | + | |
- | | FIRST | Show/Hide Scrolls (objects used to restrict the player camera) | + | |
- | | SECOND | + | |
- | + | ||
- | SET | + | |
- | | DEFAULT | + | |
- | | FIRST | Show/Hide Doors (objects used to link rooms) | + | |
- | | SECOND | + | |
- | + | ||
- | EVENT | + | |
- | | FIRST | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | + | |
- | | SECOND | + | |
- | + | ||
- | MISCELLANEOUS | + | |
- | | MAP X | Show/Hide Doors (objects used to link rooms) | + | |
- | | MAP Y | Show/Hide Scrolls (objects used to restrict the player camera) | + | |
- | | MUSIC | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | + | |
- | + | ||
- | ^ | + | |
- | | AREA | Show/Hide Sprite Outlines (actual position of the objects/ | + | |
- | | ROOM | Show/Hide Doors (objects used to link rooms) | + | |
- | | OFFSET | + | |
- | | APPLY | Show/Hide Doors (objects used to link rooms) | + | |
- | | CLOSE | Show/Hide Scrolls (objects used to restrict the player camera) | + | |
\\ | \\ | ||
\\ | \\ | ||
Line 390: | Line 368: | ||
=== 13. Tileset Editor === | === 13. Tileset Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 395: | Line 374: | ||
=== 14. Graphics Editor === | === 14. Graphics Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 400: | Line 380: | ||
=== 15. Palette Editor === | === 15. Palette Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 405: | Line 386: | ||
=== 16. Tile Table Editor === | === 16. Tile Table Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 410: | Line 392: | ||
=== 17. Animation Editor === | === 17. Animation Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 415: | Line 398: | ||
=== 18. Sprite Editor === | === 18. Sprite Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 420: | Line 404: | ||
=== 19. Spriteset Editor === | === 19. Spriteset Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 425: | Line 410: | ||
=== 20. Connection Editor === | === 20. Connection Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 430: | Line 416: | ||
=== 21. Minimap Editor === | === 21. Minimap Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 435: | Line 422: | ||
=== 22. Text Editor === | === 22. Text Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 440: | Line 428: | ||
=== 23. Demo Editor === | === 23. Demo Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 445: | Line 434: | ||
=== 24. Physics Editor === | === 24. Physics Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 450: | Line 440: | ||
=== 25. Weapon Editor === | === 25. Weapon Editor === | ||
+ | [[# | ||
\\ | \\ | ||
\\ | \\ | ||
Line 567: | Line 558: | ||
---- | ---- | ||
- | === Part 1- BG Editing Mode === | + | ===== Header Editor |
+ | {{zero_mission: | ||
- | The first step to editing | + | BACKGROUND DATA |
+ | ^ | ||
+ | | Tileset | ||
+ | | Transparency | ||
+ | | BG3 Scroll | ||
+ | | Effect | ||
+ | | Effect Y Pos | Show/Hide Sprites (enemies and objects | ||
- | | + | POINTER |
+ | | BG0 | ||
+ | | BG1 | Show/Hide Doors (objects used to link rooms) | ||
+ | | BG2 | Show/Hide Scrolls (objects used to restrict | ||
+ | | BG3 | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | ||
+ | | CLIP | Show/Hide Sprite Outlines (actual position of the objects/ | ||
- | * BG 1 – This is most commonly what is used for the player | + | PROP (BG PROPERTY) |
+ | | BG0 | Show/Hide Doors (objects | ||
+ | | BG1 | Show/Hide Scrolls (objects used to restrict | ||
+ | | BG2 | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | ||
+ | | BG3 | Show/Hide Sprite Outlines (actual position of the objects/ | ||
- | * 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 | + | SPRITESET DATA |
- | * BG 3 - This is the entire background image. You can't select this for editing, but you can turn it on or off. | + | POINTER |
+ | | DEFAULT | ||
+ | | FIRST | Show/Hide Scrolls (objects used to restrict | ||
+ | | SECOND | ||
- | 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. | + | SET |
+ | | DEFAULT | ||
+ | | FIRST | Show/Hide Doors (objects used to link rooms) | ||
+ | | SECOND | ||
- | //Brinstar, Room 6 with and without BG 0 view// | + | EVENT |
+ | | FIRST | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | ||
+ | | SECOND | ||
- | {{http://i.imgur.com/JSESD6y.png}} {{http:// | + | MISCELLANEOUS |
+ | | MAP X | Show/Hide Doors (objects used to link rooms) | ||
+ | | MAP Y | Show/Hide Scrolls (objects used to restrict the player camera) | ||
+ | | MUSIC | Show/Hide Sprites (enemies and objects with AI, e.g. morph ball item) | | ||
- | The final choice | + | ^ |
+ | | AREA | Show/Hide Sprite Outlines (actual position | ||
+ | | ROOM | Show/Hide Doors (objects used to link rooms) | ||
+ | | OFFSET | ||
+ | | APPLY | Show/Hide Doors (objects used to link rooms) | ||
+ | | CLOSE | Show/Hide Scrolls (objects used to restrict the player camera) | ||
- | {{http:// | ||
- | |||
- | 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”, | ||
- | |||
- | **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). | ||
- | |||
- | {{http:// | ||
- | |||
- | 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 " | ||
- | |||
- | 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. | ||
- | |||
- | [[zero_mission: | ||
- | |||
- | Individual Clipdata and how to use them is explained in the above link! | ||
- | Alternatively, | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === a. Basic Blocks === | ||
- | |||
- | The most common types of blocks you will use are ground blocks. Clip0 and Clip10 (" | ||
- | |||
- | {{https:// | ||
- | |||
- | 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' | ||
- | |||
- | {{https:// | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 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 " | ||
- | |||
- | {{https:// | ||
- | |||
- | "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' | ||
- | |||
- | {{https:// | ||
- | |||
- | 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. | ||
- | |||
- | {{https:// | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 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. | ||
- | |||
- | {{https:// | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 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/ | ||
- | |||
- | {{https:// | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 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 === | ||
- | |||
- | {{https:// | ||
- | |||
- | 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/ | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === a- Sprite Editor === | ||
- | |||
- | {{https:// | ||
- | |||
- | * 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/ | ||
- | |||
- | * 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, | ||
- | |||
- | * 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. | ||
- | |||
- | {{https:// | ||
- | |||
- | * 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/ | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 2A- Sprites === | ||
- | [[https:// | ||
- | |||
- | Right clicking anywhere on a room whilst in sprite edit mode will bring up the following menu | ||
- | |||
- | {{https:// | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 2B- Doors === | ||
- | [[https:// | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | |||
- | === 2C- Scrolls === | ||
- | FIXME | ||
- | \\ | ||
- | \\ | ||
- | ---- | ||
- | ===== Header Editor ===== | ||
- | {{zero_mission: | ||
\\ | \\ | ||
\\ | \\ | ||
Line 847: | Line 694: | ||
<WRAP centeralign> | <WRAP centeralign> | ||
====== PART 2: CREATING A ROOM | ====== PART 2: CREATING A ROOM | ||
+ | [[# | ||
</ | </ | ||
===== Basic level editing | ===== Basic level editing | ||
Line 907: | Line 755: | ||
<WRAP centeralign> | <WRAP centeralign> | ||
====== PART 3: OTHER STUFF | ====== PART 3: OTHER STUFF | ||
+ | [[# | ||
</ | </ | ||
===== Save stations | ===== Save stations |