summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2022-03-22 09:42:08 -0400
committerPheenoh <pheenoh@gmail.com>2022-03-22 09:42:08 -0400
commitf5a2c5900c777328d4f28353067083e02903d327 (patch)
treead5ed31a20e802d43f0736180057284943a9b33c /README.md
parent6205118b066b62c78a0631196b85176ded182e43 (diff)
Update README and Contributing
Diffstat (limited to 'README.md')
-rw-r--r--README.md144
1 files changed, 119 insertions, 25 deletions
diff --git a/README.md b/README.md
index faacd2159c..5d7377926f 100644
--- a/README.md
+++ b/README.md
@@ -2,46 +2,140 @@
This repo contains a WIP decompilation of The Legend of Zelda: Twilight Princess (GCN USA).
-It builds the following DOL:
+<!--ts-->
+* [Project Setup](#project-setup)
+* [Building The Game](#build-game)
+* [Extract Game Assets](#extract-game-assets)
+* [Create Expected Directory](#create-expected-directory)
+* [Clean Directories](#clean-directories)
+* [Project Overview](#project-overview)
+* [Contributing](./docs/Contributing.md)
+* [FAQ](https://zelda64.dev/games/tp)
+
+<!--te-->
+
+Project Setup
+=================
+
+1. Clone down project
-main.dol - `sha1: 4997D93B9692620C40E90374A0F1DBF0E4889395`
+```bash
+$ git clone https://github.com/zeldaret/tp
+```
+
+2. Setup compiler directory
+
+```bash
+$ mkdir -p tools/mwcc_compiler/
+```
+
+3. Download `GC_COMPILERS.zip` from the [Discord](https://discord.gg/Nshw5pHS4h) server. See the pins in the `#tp-decomp` channel under the Twilight Princess group.
+
+4. Extract `GC_COMPILERS.zip` into the previously created `mwcc_compiler` directory
+
+```bash
+$ unzip GC_COMPILERS.zip -d tools/mwcc_compiler/
+```
+
+5. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it `gz2e01.iso` (find this on your own)
+
+6. Setup the project
+
+```bash
+$ ./tp setup
+```
+
+Building The Game
+-----
+
+1. To build a playable game, complete the [Project Setup](#project-setup) steps, then run
+
+```bash
+$ make game
+```
+
+The completed build is under `build/dolzel2/game/sys/main.dol`
-And will eventually build all the [RELs](./docs/rels_sha1.md).
+Build DOL
-## Windows Prerequisites
+```bash
+$ make
+```
+
+Build RELs
+
+```bash
+$ make rels
+```
+
+The completed RELs will be under `build/dolzel2/rel`
+
+Extract Game Assets
+
+```bash
+$ make assets
+```
-1. Download and run the latest release of the [Windows devkitpro installer](https://github.com/devkitPro/installer/releases)
-2. Run the executable located at `devkitPro\msys2\msys2.exe`
-3. Update pacman by running the following command: `pacman -Syu`
-4. Install the necessary dependencies by running the following command: `pacman -S python3-pip base-devel gcc vim cmake`
-5. Change to the directory of where you cloned this repository
-6. Install the required python dependencies with `python3 -mpip install -r tools/requirements.txt`
+Create Expected Directory
-## Build Instructions
+1. [Build the DOL](#build-dol)
+2. Run:
+
+```bash
+$ ./tp expected
+```
-1. Obtain a clean DOL of TP (GCN USA) and place it at the root of the repo and name it `baserom.dol`.
-2. Obtain a copy of the MWCC PowerPC compiler (version 2.7 to be exact). See below for a link to our Discord server which has the CodeWarrior compilers pinned in the #tp-decomp channel.
-3. Replace `tools/mwcc_compiler/2.7/mwcceppc.exe` with the custom one also pinned in the #tp-decomp channel.
-4. Run `make` at the root of the repo.
-## Dump Assets
+Clean Directories
+-----
-1. Place a vanilla copy of the NTSC-U version at the root of the folder and call it `gz2e01.iso`.
-2. Make the game directory.
+Clean RELs
```bash
-mkdir game
+$ make clean_rels
```
-3. Run make assets.
+Clean Game Directory
```bash
-make assets
-````
+$ make clean_game
+```
+Clean Build Directory
-## Contributions
+```bash
+$ make clean_all
+```
-All contributions are welcome. This is a group effort, and even small contributions can make a difference. Some tasks also don't require much knowledge to get started.
+Clean everything
-Most discussions happen on our [Discord Server](https://discord.zelda64.dev/), where you are welcome to ask if you need help getting started, or if you have any questions regarding this project and other decompilation projects. \ No newline at end of file
+```bash
+$ make clean
+```
+
+
+Project Overview
+=================
+```
+tp/
+├── .github # Github actions for this project.
+├── asm # The assembly for unmatched functions.
+├── defs # Python modules used by dol2asm.
+├── docs # Notes and documentation about this project.
+├── include # Header files used by this project.
+├── libs # Source code for the libraries based on the symbol map.
+├── rel # Source code for the game RELs.
+├── src # Source code for the main game.
+├── tools # Various tools to support the project.
+├── .clang-format # Clang format file.
+├── .gitignore # Files/folders to ignore changes to when making commits.
+├── Doxyfile # Doxygen configuration file.
+├── Makefile # Makefile for the project containing various targets.
+├── README.md # The file you're currently reading.
+├── diff.py # Python script to diff two functions.
+├── diff_settings.py # Settings for the diff.py script.
+├── dolzel2.sha1 # SHA1 of the dol.
+├── include_link.mk # Makefiles to include in the main Makefile.
+├── obj_files.mk # Object files to include in the main Makefile.
+└── tp # Bash script used to call the main tp python script in tools directory.
+``` \ No newline at end of file