mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 15:01:53 -04:00
85ad8b190d
daBaseNpc_c::setBckAnm and J3DAnmTransform* daBaseNpc_c daBaseNpc_c::setBtpAnm daBaseNpc_c::attnSttsOn daBaseNpc_c::orderEvent daBaseNpc_c::setEnvTevColor daBaseNpc_c::setRoomNo daBaseNpc_c::checkEndAnm attempt CheckCreateHeap daNpcF_addIdx daNpcF_subIdx daNpcF_incIdx daNpcF_decIdx daNpcF_ActorMngr_c::initialize() daNpcF_ActorMngr_c::entry cleanup daNpcF_ActorMngr_c::entry daNpcF_ActorMngr_c::remove daNpcF_ActorMngr_c::getActorP daNpcF_MatAnm_c::calc attempt daNpcF_SPCurve_c::initialize minor fixes daNpcF_Path_c::initialize daNpcF_Path_c::setPathInfo daNpcF_Path_c::chkPassed daNpcF_Path_c::reverse daNpcF_Path_c::setNextIdx daNpcF_Path_c::getNextIdx daNpcF_Path_c::getBeforeIdx daNpcF_Path_c::getBeforePos daNpcF_Path_c::getNextPos daNpcT_MatAnm_c::initialize daNpcT_MatAnm_c::calc daNpcT_addIdx daNpcT_subIdx daNpcT_decIdx daNpcT_Path_c::hermite daNpcT_Path_c::initialize daNpcT_Path_c::setPathInfo attempt daNpcT_Path_c::setNextPathInfo daNpcT_Path_c::reverse daNpcT_Path_c::setNextIdx daNpcT_Path_c::getDstPos attempt daNpcT_DmgStagger_c::setParam Add FLOAT_LABEL where possible fopEn_enemy / fix e_wb move jasper's jsystem work over d_attention / d_demo / d_lib work remove asm clean up dolphin files / work on some rels (#212) * d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop * dolphin OS work / cleanup * dolphin GX work / cleanup * finish changing dolphin files to C * more files into C * match rest of MSL_C math functions * more dolphin files converted to C * remove asm * d_bg_w work * remove asm * d_a_alink work / kytag14 initial changes to d_a_e_yc checkpoint until virtual destructor issue is solved daNpcF_Lookat_c::adjustMoveDisAngle daBaseNpc_c::setMtx daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c() daNpcT_c::ctrlFaceMotion daNpcT_c::ctrlMsgAnm attempt daNpcT_c::initTalk daNpcF_clearMessageTmpBit daNpcF_getDistTableIdx daNpcF_offTmpBit daNpcF_onTmpBit daNpcF_chkTmpBit daNpcF_onEvtBit daNpcF_chkEvtBit daNpcF_c::getDistTableIdx daNpcF_chkPointInArea daNpcF_chkDoBtnEqSpeak daNpcF_getPlayerInfoFromPlayerList attempt daNpcF_pntVsLineSegmentLengthSquare2D daNpcF_c::chkPointInArea daNpcF_c::chkPointInArea daNpcF_c::getAttentionPos daNpcT_chkTmpBit daNpcT_offTmpBit daNpcT_onTmpBit daNpcT_chkEvtBit daNpcT_offEvtBit daNpcT_onEvtBit daNpcT_chkDoBtnIsSpeak daNpcT_getDistTableIdx daBaseNpc_acMngr_c::entry daNpcF_c::initTalk undo override
143 lines
3.3 KiB
Markdown
143 lines
3.3 KiB
Markdown
# The Legend of Zelda: Twilight Princess
|
|
|
|
This repo contains a WIP decompilation of The Legend of Zelda: Twilight Princess (GCN USA).
|
|
|
|
<!--ts-->
|
|
* [Progress](./Progress.md)
|
|
* [Project Setup](#project-setup)
|
|
* [Building The Game](#building-the-game)
|
|
* [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
|
|
|
|
```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`
|
|
|
|
Build DOL
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
make rels
|
|
```
|
|
|
|
The completed RELs will be under `build/dolzel2/rel`
|
|
|
|
Extract Game Assets
|
|
|
|
```bash
|
|
make assets
|
|
```
|
|
|
|
Create Expected Directory
|
|
|
|
1. Run `make`
|
|
2. Run:
|
|
|
|
```bash
|
|
./tp expected
|
|
```
|
|
|
|
|
|
Clean Directories
|
|
-----
|
|
|
|
Clean RELs
|
|
|
|
```bash
|
|
make clean_rels
|
|
```
|
|
|
|
Clean Game Directory
|
|
|
|
```bash
|
|
make clean_game
|
|
```
|
|
|
|
Clean Build Directory
|
|
|
|
```bash
|
|
make clean_all
|
|
```
|
|
|
|
Clean Dol
|
|
|
|
```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.
|
|
├── 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.
|
|
``` |