* Started working on d_a_auction * daAuction_c Updated member variables * daAuction_c Refactored class * daAuction_c::getRand matching * daAuction_c constructor matching * d_a_auction CheckCreateHeap matching * daAuction_c::_create matching * d_a_auction l_item_dat matching * daAuction_c::createHeap matching * d_a_auction Added HIO classes * daAuction_c::createInit WIP * daAuction_c::_delete matching * daAuction_c::_draw matching * daAuction_c::_execute matching * d_a_auction Fixed procfunc arrays * daAuction_c moveProc funcs matching * daAuction_c::checkOrder matching * daAuction_c::eventOrder WIP * daAuction_c::eventMove matching * daAuction_c::privateCut WIP * daAuction_c::eventTalkInit matching * daAuction_c::eventMesSet matching * daAuction_c::eventMesEnd matching * daAuction_c::eventStartInit matching * daAuction_c::eventStart matching * daAuction_c::eventMainInit matching * daAuction_c::eventMain matching * daAuction_c::eventMainKai matching * daAuction_c::eventMainKai Fixed formatting * daAuction_c::eventMainUri matching * d_a_auction matching fixes * daAuction_c::eventMainMsgSet matching * daAuction_c::eventMainMsgEnd matching * daAuction_c::setMtx matching * daAuction_c::getItemNo matching * daAuction_c::setLinkAnm matching * d_a_auction matched some functions * d_a_auction matched SetMessage functions * daAuction_c::getNpcActorP matching * daAuction_c::eventMainMsgBikonC matching * daAuction_c::eventMainMsgBikonW matching * daAuction_c::eventGetItemInit matching * daAuction_c::eventGetItemNpcInit matching * daAuction_c::eventGetItemMesInit matching * d_a_auction matched some functions * daAuction_c::setCameraNpc matching * daAuction_c::nextBet matching * daAuction_c::privateCut Fixed matching * d_a_auction .data section matching * daAuction_c::next_msgStatus WIP * daAuction_c::next_msgStatus matching * Fixed variable names * d_a_auction cleanup * d_a_auction more cleanup * d_a_auction non-matching * d_a_auction minor tweak
The Legend of Zelda: The Wind Waker

A work-in-progress decompilation of The Legend of Zelda: The Wind Waker for GameCube.
This repository does not contain any game assets or assembly whatsoever. An existing copy of the game is required.
All GameCube versions are supported:
GZLE01: Rev 0 (USA), Rev 48 (KOR)GZLP01: Rev 0 (PAL)GZLJ01: Rev 0 (JPN)
Dependencies
Windows:
On Windows, it's highly recommended to use native tooling. WSL or msys2 are not required.
When running under WSL, objdiff is unable to get filesystem notifications for automatic rebuilds.
- Install Python and add it to
%PATH%.- Also available from the Windows Store.
- Download ninja and add it to
%PATH%.- Quick install via pip:
pip install ninja
- Quick install via pip:
macOS:
- Install ninja:
brew install ninja - Install wine-crossover:
brew install --cask --no-quarantine gcenx/wine/wine-crossover
After OS upgrades, if macOS complains about Wine Crossover.app being unverified, you can unquarantine it using:
sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app'
Linux:
- Install ninja.
- For non-x86(_64) platforms: Install wine from your package manager.
- For x86(_64), WiBo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
Building
- Clone the repository:
git clone https://github.com/zeldaret/tww.git - Using Dolphin Emulator, extract your game to
orig/GZLE01(orGZLJ01for JPN,GZLP01for PAL).
- To save space, the only necessary files are the following. Any others can be deleted.
sys/main.dolfiles/rels/*.relfiles/RELS.arc
- To save space, the only necessary files are the following. Any others can be deleted.
- Configure:
To use a version other than
python configure.pyGZLE01(USA), specify--version GZLJ01(JPN) or--version GZLP01(PAL). - Build:
ninja
Diffing
Once the initial build succeeds, an objdiff.json should exist in the project root.
Download the latest release from encounter/objdiff. Under project settings, set Project directory. The configuration should be loaded automatically.
Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, configure.py, splits.txt or symbols.txt.
