zm:basics:faq
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
zm:basics:faq [2025/03/06 22:46] – [Where do I start?] felixwright | zm:basics:faq [2025/03/06 23:05] (current) – [Where do I start?] felixwright | ||
---|---|---|---|
Line 3: | Line 3: | ||
===== Where do I start? ===== | ===== Where do I start? ===== | ||
- | Using Windows 10 or newer to romhack is highly recommended\\ | + | Using [[https:// |
- | Get MAGE, mGBA, HxD Hex Editor, and Floating IPS\\ | + | Get [[https:// |
- | See Why Rom Hack?\\ | + | See [[: |
- | See Beginner' | + | See [[https:// |
===== What is MAGE? ===== | ===== What is MAGE? ===== | ||
A: MAGE is the Metroid Advance Game Editor. It is used for editing Metroid Fusion and Metroid Zero Mission. | A: MAGE is the Metroid Advance Game Editor. It is used for editing Metroid Fusion and Metroid Zero Mission. | ||
===== How do I use MAGE? ===== | ===== How do I use MAGE? ===== | ||
- | A: Keep the MAGE Documentation (doc.html) and Technical Information (technical.html) manuals handy. Both of these are included with MAGE. They cover most of MAGE's features and technical information about the MAGs. Always refer to these documents before asking others for assistance. If the answer is already in there, It saves both parties time and effort. | + | A: Keep the [[https:// |
===== How do I apply a .ips patch to my hack? ===== | ===== How do I apply a .ips patch to my hack? ===== | ||
- | A: Use Floating IPS to select an IPS file and apply the patch you downloaded. It will ask you where to put the new patched ROM. | + | A: Use [[https:// |
===== What is Hexadecimal? | ===== What is Hexadecimal? | ||
Line 34: | Line 34: | ||
</ | </ | ||
- | Open the HxD Hex Editor. Next, open a USA metroid zero mission ROM. This tweak requires us to go to 08005FDE. Hit Ctrl + G, and type in 08005FDE. Hold on, this offset is not in the ROM! The reason for that is because the start of this address just says it's located in ROM. (08000000 = ROM) If you see an address that starts with 8 or 08, and has six digits after, you can ignore the first 8. This time, just type 5FDE and hit enter. Look for your flickering text cursor. You will see it flickering near the end of a line, to the left of 7D D0. To perform this tweak, we need to replace those two bytes with C0 46. Simply type C046 (no spaces) and the changed bytes will be RED. Save 💾 the rom (Ctrl + S), and start a new game. You now have power grip! | + | Open the [[https:// |
===== What is ASM? ===== | ===== What is ASM? ===== | ||
Line 40: | Line 40: | ||
===== How do I apply an ASM file to my hack? (Both Games) ===== | ===== How do I apply an ASM file to my hack? (Both Games) ===== | ||
- | A: In order to apply ASM to a ROM, you'll need an assembler, the ASM file, and your ROM all in the same place. ARMIPS is an assembler that allows you to apply ASM. Download and Extract ARMIPS, then put your ROM and ASM in the same folder as armips.exe. In this example we will use SparkControl. Next, open the .asm you want to apply in a text editor and look at the top. You should see a second line beginning with .open: | + | A: In order to apply ASM to a ROM, you'll need an assembler, the ASM file, and your ROM all in the same place. |
- | .open " | + | '' |
Rename your unpatched rom to what is inside the first set of quotations. (usually it is zm.gba or ZM_U.gba) To apply it in Windows, hold shift then right click an empty spot in the folder. Select "Open PowerShell window here" On Windows 10, or "Open command window here." to patch it, run armips with your ASM File: | Rename your unpatched rom to what is inside the first set of quotations. (usually it is zm.gba or ZM_U.gba) To apply it in Windows, hold shift then right click an empty spot in the folder. Select "Open PowerShell window here" On Windows 10, or "Open command window here." to patch it, run armips with your ASM File: | ||
- | For PowerShell (Windows 10): ./armips SparkControl.asm | + | For PowerShell (Windows 10): '' |
- | For command prompt (legacy): armips SparkControl.asm | + | For command prompt (legacy): |
If it was successful, the output should be the second quotations (SparkControl.gba). If it failed, the command window will explain why. ARMIPS does NOT overwrite your original rom, so you can keep running the same command over again as you fix the ASM. | If it was successful, the output should be the second quotations (SparkControl.gba). If it failed, the command window will explain why. ARMIPS does NOT overwrite your original rom, so you can keep running the same command over again as you fix the ASM. | ||
Line 55: | Line 55: | ||
===== Patches are conflicting, | ===== Patches are conflicting, | ||
A: You can't do anything about IPS patches, but you can repoint (relocate) ASM. | A: You can't do anything about IPS patches, but you can repoint (relocate) ASM. | ||
- | Freespace can be found with a hex editor and is generally a bunch of FF at the end of the ROM. Unused space is documented and is sometimes required to use, as end of rom freespace might be too far away for some commands. Look through the ASM for lines with .org and see where they match between files. | + | Freespace can be found with a hex editor and is generally a bunch of '' |
- | For instance, a block of code under .org 0x8760D40 is pointed to 760D40 in a hex editor. So if two patches share that same pointer, then they will conflict. Not every address after a .org instruction is freespace. Most programmers will put a comment next to .org to indicate what is freespace/ | + | For instance, a block of code under '' |
- | For instance .org 0x8760D40 is used by two asm, so we will repoint one of the codes freespace. Let's say that code one is 10 bytes, and that all the space after that code is also freespace. We will leave code one pointed to 0x8760D40. We will then change code two's pointer to 0x8760D4B. That way, they no longer overlap and both can now work. | + | For instance |
Be aware however, that some conflicting patches may use the same hijack or overwrite some original code. Repointing in this case will not solve the conflict. You will have to find a new hijack. | Be aware however, that some conflicting patches may use the same hijack or overwrite some original code. Repointing in this case will not solve the conflict. You will have to find a new hijack. | ||
Line 67: | Line 67: | ||
===== How do I change the starting position? (ZM) ===== | ===== How do I change the starting position? (ZM) ===== | ||
- | A: Use the Starting Room ASM. | + | A: Use the [[https:// |
===== How do I activate gravity suit, space jump, and plasma beam as soon as I obtain them? (ZM) ===== | ===== How do I activate gravity suit, space jump, and plasma beam as soon as I obtain them? (ZM) ===== | ||
- | A: Use the Unknown | + | A: Use the [[https:// |
zm/basics/faq.1741301214.txt.gz · Last modified: by felixwright