Skip to content
/ tp Public
forked from zeldaret/tp

Decompilation of The Legend of Zelda: Twilight Princess (GCN, USA)

Notifications You must be signed in to change notification settings

crowell/tp

 
 

Repository files navigation

The Legend of Zelda: Twilight Princess

This repo contains a WIP decompilation of The Legend of Zelda: Twilight Princess (GCN USA).

Project Setup

  1. Clone down project
$ git clone https://github.com/zeldaret/tp
  1. Setup compiler directory
$ mkdir -p tools/mwcc_compiler/
  1. Download GC_COMPILERS.zip from the Discord server. See the pins in the #tp-decomp channel under the Twilight Princess group.

  2. Extract GC_COMPILERS.zip into the previously created mwcc_compiler directory

$ unzip GC_COMPILERS.zip -d tools/mwcc_compiler/
  1. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it gz2e01.iso (find this on your own)

  2. Setup the project

$ ./tp setup

Building The Game

  1. To build a playable game, complete the Project Setup steps, then run
$ make game

The completed build is under build/dolzel2/game/sys/main.dol

Build DOL

$ make

(Note that any time you run make you can add the -j# argument where # is the amount of threads your system has in order to greatly speed up build times)

Build RELs

$ make rels

The completed RELs will be under build/dolzel2/rel

Extract Game Assets

$ make assets

Create Expected Directory

  1. Run make
  2. Run:
$ ./tp expected

Clean Directories

Clean RELs

$ make clean_rels

Clean Game Directory

$ make clean_game

Clean Build Directory

$ make clean_all

Clean Dol

$ 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.
├── Progress.md      # Markdown file that displays the current progress of the project.
├── 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.

About

Decompilation of The Legend of Zelda: Twilight Princess (GCN, USA)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 63.4%
  • C++ 21.7%
  • Python 14.0%
  • Makefile 0.5%
  • C 0.4%
  • POV-Ray SDL 0.0%