Keep My Stuff
Keep your stuff after playing the Song of Time!
模組介紹 作者原文
Keep My Stuff
Keep your stuff after playing the Song of Time! Supports keeping Rupees, Consumables (bombs, arrows), Bottle contents, and time speed (set by playing the Inverted Song of Time)
This code was lifted from the lovely people working on 2ship2harkinian. The source file used can be found here.
Building (with nix)
Unique to this project. Regular build instructions are further down. If you have Nix installed, run nix build.?submodules=1. The compiled mod will be located at result/lib.nrm
Tools
You'll need to install clang and make to build.
- On Windows, using chocolatey to install both is recommended. The packages are llvm and make respectively.
- The LLVM 19.1.0 llvm-project release binary, which is also what chocolatey provides, does not support MIPS correctly. The solution is to install 18.1.8 instead, which can be done in chocolatey by specifying --version 18.1.8 or by downloading the 18.1.8 release directly.
- On Linux, these can both be installed using your distro's package manager. You may also need to install your distro's package for the lld linker. On Debian/Ubuntu based distros this will be the lld package.
- On MacOS, these can both be installed using Homebrew. Apple clang won't work, as you need a mips target for building the mod code.
On Linux and MacOS, you'll need to also ensure that you have the zip utility installed.
You'll also need to grab a build of the RecompModTool utility from the releases of N64Recomp. You can also build it yourself from that repo if desired.
Building
- First, run make (with an optional job count) to build the mod code itself.
- Next, run the RecompModTool utility with mod.toml as the first argument and the build dir (build in the case of this project) as the second argument.
- This will produce your mod's.nrm file in the build folder.
- If you're on MacOS, you may need to specify the path to the clang and ld.lld binaries using the CC and LD environment variables, respectively.
Updating the Majora's Mask Decompilation Submodule
Mods can also be made with newer versions of the Majora's Mask decompilation instead of the commit targeted by this repo's submodule.
To update the commit of the decompilation that you're targeting, follow these steps:
- Build the N64Recomp repo and copy the N64Recomp executable to the root of this repository.
- Build the version of the Majora's Mask decompilation that you want to update to and copy the resulting.elf file to the root of this repository.
- Update the mm-decomp submodule in your clone of this repo to point to the commit you built in the previous step.
- Run N64Recomp generate_symbols.toml --dump-context
- Rename dump.toml and data_dump.toml to mm.us.rev1.syms.toml and mm.us.rev1.datasyms.toml respectively.
- Place both files in the Zelda64RecompSyms folder.
- Try building.
- If it succeeds, you're done.
- If it fails due to a missing header, create an empty header file in the include/dummy_headers folder, with the same path.
- For example, if it complains that assets/objects/object_cow/object_cow.h is missing, create an empty include/dummy_headers/objects/object_cow.h file.
- If RecompModTool fails due to a function "being marked as a patch but not existing in the original ROM", it's likely that function you're patching was renamed in the Majora's Mask decompilation.
- Find the relevant function in the map file for the old decomp commit, then go to that address in the new map file, and update the reference to this function in your code with the new name.
安裝與使用 安裝:按包內說明操作
- 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
- 多數模組依賴遊戲的模組載入器:常見做法是用社群模組管理器(如 r2modman)選中本遊戲安裝,由管理器自動處理載入器與依賴。
- 手動安裝時,把模組檔案放進遊戲目錄下對應的 Mod / plugins 資料夾。
- 啟動遊戲確認載入成功;帶「前置依賴」的模組需要把依賴一併安裝。
不同模組的安裝位置差異較大,包內說明是最可靠的依據。