• Stars
    star
    854
  • Rank 53,369 (Top 2 %)
  • Language
    C++
  • License
    Creative Commons ...
  • Created about 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it gz2e01.iso (find this on your own)

  2. Then run the setup script

./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.