A romhack created by the Hylian Modding community as a collective project.
The structure of this repository is subject to change. Below is a guide for our members.
It is important that everyone regularly uploads thier progress to the Github repository so everyone has a proper method of accessing each other's work, and to have proper version control in case of technical issues.
Install Github Desktop from https://desktop.github.com/ and log in.
If you are the *FIRST* person to make a fork for your zone, follow these instructions:
-
On Github's website, fork this repository onto your account: https://github.com/hylian-modding/OotCommunityHack2022
-
In Github Desktop, go to
File->Clone Repository
and choose your fork ofOotCommunityHack2022
and where to place it. -
Next, create a new branch titled "zone-
x
" usingBranch->New Branch
wherex
is the zone letter you're working in. -
Give your zone contributers push permissions to the repo by going into the repo's settings on github's website and inviting them as a contributor.
If someone has *ALREADY* made a fork for your zone, follow these instructions:
-
Obtain the link to your zone's fork of the repository (pinned in your zone's channel).
-
In Github Desktop, go to
File->Clone Repository
, click theURL
tab, and paste the link to your zone's fork and where to place it. -
Once cloned, change your branch to the zone you are working on via the
Current branch
menu. -
Ask your zone's host to add you as a contributor to the repository so you can push your work.
You should now have your repository cloned on your computer for you to work in. This is your dev environment.
To set up this repository you must place an Oot Debug
or Oot 1.0
rom in the /rom
folder.
Install nodejs
from https://nodejs.org/en/
Run the following commands in a cmd/powershell terminal in your repo's directory:
npm install -g yarn
yarn
This will build the repository, creating an assets folder for your zzrtl project, among a few other things.
Alternatively, run _setup.bat
.
The /assets
folder will be your zzrtl project. Using SharpOcarina or Custom Actor Toolkit and injecting into the project.zzrpl
will automatically write to the expected folders. Please read the zzrtl readme for more context on how to use it.
The /raw_assets
folder will host all the work created by everyone, be it model files, code, music, exported binaries, etc.
The folder structure is like so:
-code
-code_folder
-object
-object_folder
-zone
-data
-map0_data
-model_files
-map0
The /code
folder is where all custom code should be developed in. Simply make a folder for your code project and work within that.
z64hdr
is the C library of choice for all custom C here.
The /object
folder is where all custom objects will be placed in. Each object will have its own folder, with its data within (blend files, zobjs, etc).
The /zone
folders are where each zone's exclusive data is stored. /data
is where each map keeps things like SharpOcarina XMLs, exported binaries,
fast64 data, etc. The /model_files
folder is where the blend files and other related content is stored.
To compile fast64 files, you need mips64-gcc installed. For windows users, use WSL.
- Export your scene into
./assets/scene/[scene_folder]/fast64/
- Run
yarn fast64
(If using WSL, run using that instead of command prompt) - If successful, your built zscene & zmap(s) should be placed in
./assets/scene/[scene_folder]
When you want to build the repo, run the following command in a cmd/powershell terminal in your repo's directory:
yarn build
This will automatically build the zzrtl project.
Alternatively, run _build.bat
.
When you want to distribute a patch, run the following command in a cmd/powershell terminal in your repo's directory:
yarn dist
This will automatically build the zzrtl project and places the end result into /output
.
This folder should have the built ROM, a bps patch, and a zipped bps patch (in case of patch size getting inflated).
Alternatively, run _dist.bat
.
When you want to test the repo, run the following command in a cmd/powershell terminal in your repo's directory:
yarn test
This will build the zzrtl project and open the built ROM automatically using the default emulator tied to .z64
files, if set up.
Alternatively, run _test.bat
.
Keep in mind you could miss errors using the scripts as Windows automatically closes the terminal after script execution has ended.
If something isn't working, run it using the command prompt to see what went wrong and let us know what happened if you need help.
When you are ready to push your files onto Github for others to have available and updated, do the following steps:
Fetch for updates
and pull them if there are any. It is important you are up to date before pushing your own changes.- Make sure everything is in place and the changes displayed in Github Desktop look to be correct (no files in wrong places, etc).
- Write a commit message summarizing your recent changes and press
Commit to [fork]
. - Press
Push
Now your files are up on the repo for everyone able to pull. Make sure to commit and pull often as to make sure everyone has the most recent stuff! If there are any isssues like merge conflicts, let us know if you need help solving them.
The upstream
repository is what you forked from, specifically hylian-modding/OotCommunityHack2022
.
When the upstream repository updates, it is important to merge it with your branch. Here's how:
- Open the
Current branch
menu in Github Desktop and selectChoose a branch to merge into <
your_branch_here>
. - Select
upstream/master
under theOther branches
category. - Press
Create a merge commit
. - Once succesfully merged, push to update the repo so it is up to date with upstream.
When you are ready to push your zone to upstream, you can make a pull request for it to be merged.
- Select
Create Pull Request
in Github Desktop to open a Github webpage to create the PR. - Make sure you are trying to merge your zone's fork to
hylian-modding/OotCommunityHack2022
. - Write a description of what has changed in this PR.
- Select
Create Pull Reqeust
to submit the PR for review
When Psi-Hate, Denoflions, or CDi-Fails are able, they will review the PR and ensure it is working before merging. In an effort to keep everyone's progress regularly catalogued , please PR at least once per week if there are any updates.
If you have any questions regarding this guide or need something specific answered, please reach out to us for further guidance.