Go to file
2024-08-29 17:52:36 +02:00
.ci Edited docker file 2022-07-02 19:03:59 +02:00
.github Update markdown files (#18) 2024-07-12 17:33:03 +02:00
asm Match all of music_wrappers.h 2024-02-19 23:54:16 +01:00
audio Fix track_0 section 2024-07-24 20:42:07 +02:00
docs/engine Cleanup of projectile and projectile utils 2024-08-29 17:52:36 +02:00
include Cleanup of projectile and projectile utils 2024-08-29 17:52:36 +02:00
src Cleanup of projectile and projectile utils 2024-08-29 17:52:36 +02:00
tools charmap newline minor fix (#21) 2024-07-12 17:32:39 +02:00
.cirrus.yml Edited docker file 2022-07-02 19:03:59 +02:00
.gitignore Add first version of extractor 2022-09-24 17:42:57 +02:00
charmap_backup.txt Start extracting text data 2023-10-20 01:07:21 +02:00
charmap.txt Finish text data and add text pointers 2023-10-20 19:57:26 +02:00
CONTRIBUTING.md Update markdown files (#18) 2024-07-12 17:33:03 +02:00
database.txt Atoi-less C extractor (#15) 2024-01-07 17:36:30 +01:00
linker.ld include m_play_def and tracks in single file (#22) 2024-07-24 19:35:12 +02:00
Makefile Extract tracks and proper voice groups 2023-11-17 13:06:43 +01:00
mzm.sha1 Remove checksum newline 2022-09-05 18:50:48 +02:00
README.md Match kraid, improve a few functions 2024-07-29 18:19:56 +02:00

Metroid - Zero Mission Decomp

This is a work in progress decompilation of Metroid - Zero Mission.

2704/2721 functions decompiled (99.38%, 17 left)

0x76b014/0x76b014 bytes of data not in blobs (100%, 0 left)

Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0

This produces the following ROMs:

  • mzm_us.gba: sha1: 5de8536afe1f0078ee6fe1089f890e8c7aa0a6e8

Discords:

Dependencies

  • agbcc
  • binutils-arm-none-eabi
  • mzm_us_baserom.gba (sha1: 5de8536afe1f0078ee6fe1089f890e8c7aa0a6e8)
  • python3
  • g++

Setup

  • WINDOWS ONLY : Install and setup WSL
  • Install the dependencies (an apt update might be necessary for binutils)
  • Build agbcc (run ./build.sh)
  • Add agbcc to your path (export PATH="<agbcc_path>:$PATH", where <agbcc_path> is the full path to the agbcc directory)
  • Build preproc (run make in tools/preproc)

Build

  • Run make clean if necessary
  • Run the data extractor if necessary:
    • Compile: cd tools && . compile_c_extractor.sh && cd ..
    • Run: tools/c_extractor
    • If the C version doesn't work, run the C# version tools/extractor (may require chmod +x tools/extractor first)
  • Run make (using the -j option is recommended to speed up the process)