Decompilation of The Legend of Zelda: Majora's Mask
Go to file
Zach Banks 23d63852de
Use decompiled overlays when building ROM (#121)
* Restore padding in ObjVisiblock struct

* Copy overlays out of compiled `code.elf` to put into the ROM

This is just a "tempory fix"

It seems like the built code/assets in `code.elf` should not be copied
into `build/baserom/...` (over the original ROM's files) but instead
into a `build/decomp/...` tree or similar.

`dmadata_table.txt` would also need to be updated to read from the
correct location.

* Use dmadata_table.txt to generate build rules

`makerom_files.txt` & `makerom_uncompressed_files.txt` contained a lot
of the same data in `dmadata_table.txt`, so I added a small python
script to generate this information into `build/`

Segments are no longer dumped out of `code.elf` into `build/baserom/``,
instead they are put in `build/binary/`.

`linker_scripts/dmadata_script.txt` was checked in, but generated by
`dmadata.py`. I deleted it / moved it to `build/dmadata_script.txt.pre`.

I also introduced some sentinel files (`dep`). I ended up needing these
to make incremental builds work smoothly? (Without them, there were a
lot of steps that were getting re-triggered on every build.) If this
style isn't welcome, I can try to fiddle with the Makefile more to try
to avoid having them?

* Restore padding in BgLbfshot struct

* Touch sentinel file before command; rm on failure

* Restore padding in ObjKepnKoya struct

* Ensure asm/ directories exist before disasm steps

* Clean up Makefile rules

* Set default goal; silent objcopy; fix code_script path

* Fix ovl_En_Ginko_Man, ovl_Obj_Lightswitch merge

ovl_En_Encount2 still needs work to bring back to matching

* Fix ovl_En_Encount2 merge
2021-05-10 18:24:59 -04:00
assets Adds in scene support (#117) 2021-04-29 18:56:18 -04:00
include En_Ginko_Man (Bank Teller) (#118) 2021-05-09 22:20:47 -04:00
linker_scripts Use decompiled overlays when building ROM (#121) 2021-05-10 18:24:59 -04:00
src Use decompiled overlays when building ROM (#121) 2021-05-10 18:24:59 -04:00
tables Use decompiled overlays when building ROM (#121) 2021-05-10 18:24:59 -04:00
tools Use decompiled overlays when building ROM (#121) 2021-05-10 18:24:59 -04:00
.clang-format Adds clang-format script to MM 2020-07-24 19:57:54 -04:00
.clang-tidy Adds clang-format script to MM 2020-07-24 19:57:54 -04:00
.gitattributes Fixes IDO recomp and allows git to detect binary files. (#50) 2021-02-25 18:21:51 -05:00
.gitignore En_jc_mato matching (#119) 2021-05-04 22:03:41 -04:00
.gitmodules Adds in scene support (#117) 2021-04-29 18:56:18 -04:00
Jenkinsfile Jenkins update (#79) 2021-03-22 06:14:27 -05:00
Makefile Use decompiled overlays when building ROM (#121) 2021-05-10 18:24:59 -04:00
README.md Move installation to wiki and update readme 2020-04-18 18:04:03 -05:00
checksum.md5 Makefile rework. Add init and uncompressed targets. (#15) 2020-09-11 19:00:17 -04:00
checksum_uncompressed.md5 Makefile rework. Add init and uncompressed targets. (#15) 2020-09-11 19:00:17 -04:00
diff.sh Update tools (#16) 2020-09-13 21:09:13 -04:00
diff_settings.py Update tools (#16) 2020-09-13 21:09:13 -04:00
file_setup.sh Decompiles z_vr_box (from zel) (#73) 2021-03-16 21:27:14 -04:00
first_diff.py Add some OOT tools (#17) 2020-09-17 17:11:59 -04:00
fixle.sh Update tools (#16) 2020-09-13 21:09:13 -04:00
format.sh Update tools (#16) 2020-09-13 21:09:13 -04:00
requirements.txt Updates progress.py to use the git module for outputting commit hash 2021-03-10 22:28:06 -05:00
sym_info.py Add some OOT tools (#17) 2020-09-17 17:11:59 -04:00
undef.txt Scene Changes (#114) 2021-05-09 22:12:42 -04:00

README.md

Legend of Zelda: Majora's Mask (U) 1.0

- WARNING! -

The ROM this repository builds while has a matching checksum cannot be 'shifted' due
to hardcoded pointers which have yet to be dumped. Thus this repository is currently
in an experimental and research phase and cannot currently be used traditionally as a
source code base for general changes.

This repo does not include all assets necessary for compiling the ROM. A prior copy of the game is required to extract the required assets.

This is a decompilation of Legend of Zelda: Majora's Mask (U) 1.0

It builds the following ROM:

  • rom.z64 md5: 2a0a8acb61538235bc1094d297fb6556

Please refer to the Installation guide in the Wiki for setup instructions.

Website: https://zelda64.dev/

Discord: https://discord.zelda64.dev