summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorAnghelo Carvajal <angheloalf95@gmail.com>2024-01-24 15:00:10 -0300
committerGitHub <noreply@github.com>2024-01-24 13:00:10 -0500
commit3d9db8d34dd56b7e8ba6dda87b2f9eca820ea749 (patch)
treeb6459345a16f3bbd011d31f06b65de51b0339cdd /README.md
parent5e406f754e490e9f815fe7ca2fc36c10fc909624 (diff)
Setup rom decompression and compression (#1614)
* decompress baserom * cleanup * specific hash check * rename baserom * git subrepo clone (merge) --branch=5da3132606e4fd427a8d72b8428e4f921cd6e56f git@github.com:z64tools/z64compress.git tools/z64compress subrepo: subdir: "tools/z64compress" merged: "5da313260" upstream: origin: "git@github.com:z64tools/z64compress.git" branch: "5da3132606e4fd427a8d72b8428e4f921cd6e56f" commit: "5da313260" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * setup compression * Add all compressed segments to the spec * Update md5 files * readme instructions * cleanup * Setup python dependencies on Jenkinsfile * Update Makefile Co-authored-by: cadmic <cadmic24@gmail.com> * review * . .venv/bin/activate * update readme * whoops * Yeet other versions from decompress_baserom.py * my bad * Move everything to baseroms/VERSION/ * Active venv on each command * jenkinsfile: use multiline syntax * Put the correct path on the jenkinsfile * Forgot to call per_version_fixes * CC0 * Update readme * Change where baserom segments are put into * Update Makefile Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update crunch64 * Label compressed instead of uncompressed * Update README.md Co-authored-by: fig02 <fig02srl@gmail.com> * Fix * `make rom` * baserom-uncompressed * Update README.md Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update README.md Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update README.md Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update README.md Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Update README.md Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * review * baserom-decompressed.z64 * ignore baseroms * rm -rf tools/z64compress * wip crunch64-based compress.py * OK compress * use ipl3checksum sum directly for cic update on compressed rom * multithreading * "docs" * fix MT: move set_sigint_ignored to global level for pickling * license compress.py * rm junk * Fix (or at least sort out) compress_ranges.txt dependencies * Update tools/overlayhelpers/damage_table.py Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> --------- Co-authored-by: cadmic <cadmic24@gmail.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> Co-authored-by: fig02 <fig02srl@gmail.com>
Diffstat (limited to 'README.md')
-rw-r--r--README.md42
1 files changed, 34 insertions, 8 deletions
diff --git a/README.md b/README.md
index 9ed58a7e6..2dd814db6 100644
--- a/README.md
+++ b/README.md
@@ -68,13 +68,15 @@ The build process has the following package requirements:
* build-essential
* binutils-mips-linux-gnu
* python3
+* python3-pip
+* python3-venv
* libpng-dev
Under Debian / Ubuntu (which we recommend using), you can install them with the following commands:
```bash
sudo apt-get update
-sudo apt-get install git build-essential binutils-mips-linux-gnu python3 libpng-dev
+sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev
```
If you are using GCC as the compiler for Ocarina of Time, you will also need:
@@ -98,12 +100,37 @@ This will copy the GitHub repository contents into a new folder in the current d
cd oot
```
-#### 3. Prepare a base ROM
+#### 3. Install python dependencies
-Copy over your copy of the Master Quest (Debug) ROM inside the root of this new project directory.
-Rename the file to "baserom_original.z64", "baserom_original.n64" or "baserom_original.v64", depending on the original extension.
+The build process has a few python packages required that are located in `requirements.txt`.
-#### 4. Setup the ROM and build process
+It is recommended to set up a virtual environment for python to contain all dependencies. To create a virtual environment:
+
+```bash
+python3 -m venv .venv
+```
+
+To start using the virtual environment in your current terminal run:
+
+```bash
+. .venv/bin/activate
+```
+
+Keep in mind that for each new terminal session, you will need to **activate** the Python virtual environment again. That is, run the above `. .venv/bin/activate` command.
+
+Now you can install the Python dependencies, to do so run:
+
+```bash
+python3 -m pip install -U -r requirements.txt
+```
+
+#### 4. Prepare a base ROM
+
+Place a copy of the Master Quest (Debug) ROM inside the `baseroms/gc-eu-mq-dbg/` folder.
+
+Rename the file to `baserom.z64`, `baserom.n64` or `baserom.v64`, depending on the original extension.
+
+#### 5. Setup the ROM and build process
Setup and extract everything from your ROM with the following command:
@@ -111,10 +138,10 @@ Setup and extract everything from your ROM with the following command:
make setup
```
-This will generate a new ROM called "baserom.z64" that will have the overdump removed and the header patched.
+This will generate a new ROM "baseroms/gc-eu-mq-dbg/baserom-decompressed.z64" that will have the overdump removed and the header patched.
It will also extract the individual assets from the ROM.
-#### 5. Build the ROM
+#### 6. Build the ROM
Run make to build the ROM.
Make sure your path to the project is not too long, otherwise this process may error.
@@ -145,7 +172,6 @@ This means that the built ROM isn't the same as the base one, so something went
Both of these have the disadvantage that the ordering of the terminal output is scrambled, so for debugging it is best to stick to one thread (i.e. not pass `-j` or `-jN`).
-
## Contributing
All contributions are welcome. This is a group effort, and even small contributions can make a difference.