User Tools

Site Tools


zm:basics:faq

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zm:basics:faq [2025/03/06 22:46] – [Where do I start?] felixwrightzm: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://www.microsoft.com/en-us/software-download/windows10ISO | Windows 10]] or [[https://www.microsoft.com/en-us/software-download/windows11 | Windows 11]] to romhack is highly recommended\\  
-Get MAGE, mGBA, HxD Hex Editor, and Floating IPS\\  +Get [[https://metroidconstruction.com/resource.php?id=90 | MAGE]][[https://mgba.io/downloads.html | mGBA]][[https://mh-nexus.de/en/downloads.php?product=HxD20 | HxD Hex Editor]], and [[https://github.com/Alcaro/Flips/releases | Floating IPS]]\\  
-See Why Rom Hack?\\  +See [[:why_rom_hack|Why Rom Hack?]]\\  
-See Beginner's Guide to Playing ROM Hacks\\ +See [[https://metroidconstruction.com/howto.php | Beginner's Guide to Playing ROM Hacks]]\\
 ===== 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://labk.org/mage/doc.html | MAGE Documentation]] (doc.html) and [[https://labk.org/mage/technical.html | 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.
  
 ===== 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://github.com/Alcaro/Flips/releases | Floating IPS]] to select an IPS file and apply the patch you downloaded. It will ask you where to put the new patched ROM.
  
 ===== What is Hexadecimal? ===== ===== What is Hexadecimal? =====
Line 34: Line 34:
 </code> </code>
  
-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://mh-nexus.de/en/downloads.php?product=HxD20 | 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!
  
 ===== 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. [[https://github.com/Kingcom/armips/releases | 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:
  
-.open "zm.gba","SparkControl.gba",0x8000000+''.open "zm.gba","SparkControl.gba",0x8000000''
  
 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): ''./armips SparkControl.asm''\\  
-For command prompt (legacy): armips SparkControl.asm+For command prompt (legacy): ''armips SparkControl.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. 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, what can I do? (Both Games) ===== ===== Patches are conflicting, what can I do? (Both Games) =====
 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 ''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.
  
-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/can be repointed. All you have to do is find freespace that isn't used by other code and replace the original address of that specific .org instruction. +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/can be repointed. All you have to do is find freespace that isn't used by other code and replace the original address of that specific ''.org'' instruction. 
  
-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 ''.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.
  
 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://metroidconstruction.com/resource.php?id=450 | Starting Room]] ASM.
  
 ===== 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 Items ASM.+A: Use the [[https://metroidconstruction.com/resource.php?id=486 | Known Items]] ASM.
  
zm/basics/faq.1741301214.txt.gz · Last modified: by felixwright