mirror of
https://github.com/encounter/dtk-template.git
synced 2025-10-27 19:30:23 +00:00
Resolves #23, #43
decomp-toolkit Project Template
If starting a new GameCube / Wii decompilation project, this repository can be used as a scaffold.
See decomp-toolkit for background on the concept and more information on the tooling used.
Documentation
General:
References
- Discord: GC/Wii Decompilation (Come to
#dtkfor help!) - objdiff (Local diffing tool)
- decomp.me (Collaborate on matches)
- frogress (Decompilation progress API)
- wibo (Minimal Win32 wrapper for Linux)
- sjiswrap (UTF-8 to Shift JIS wrapper)
Projects using this structure:
- zeldaret/tww
- zeldaret/oot-gc
- zeldaret/ss
- PrimeDecomp/prime
- PrimeDecomp/echoes
- DarkRTA/rb3
- doldecomp/melee
- doldecomp/sadx
- InputEvelution/wp
- NWPlayer123/AnimalCrossing-dtk
- Rainchus/marioparty4
- Rainchus/ttyd_dtk
- Sage-of-Mirrors/zmansion
- bfbbdecomp/bfbb
- EstexNT/rhf-dtk
Features
- Few external dependencies: Just
pythonfor the generator andninjafor the build system. See Dependencies. - Simple configuration: Everything lives in
config.yml,symbols.txt, andsplits.txt. - Multi-version support: Separate configurations for each game version, and a
configure.py --versionflag to switch between them. - Feature-rich analyzer: Many time-consuming tasks are automated, allowing you to focus on the decompilation itself. See Analyzer features.
- REL support: RELs each have their own
symbols.txtandsplits.txt, and will automatically be built and linked against the main binary. - No manual assembly: decomp-toolkit handles splitting the DOL into relocatable objects based on the configuration. No game assets are committed to the repository.
- Progress calculation and upload script for frogress.
- Integration with objdiff for a diffing workflow.
- CI workflow template for GitHub Actions.
Project structure
configure.py- Project configuration and generator script.config/[GAMEID]- Configuration files for each game version.config/[GAMEID]/build.sha1- SHA-1 hashes for each built artifact, for final verification.build/- Build artifacts generated by the the build process. Ignored by.gitignore.orig/[GAMEID]- Original game files, extracted from the disc. Ignored by.gitignore.orig/[GAMEID]/.gitkeep- Empty checked-in file to ensure the directory is created on clone.src/- C/C++ source files.include/- C/C++ header files.tools/- Scripts shared between projects.
Temporary, delete when done:
config/GAMEID/config.example.yml- Example configuration file and documentation.docs/- Documentation for decomp-toolkit configuration.README.md- This file, replace with your own. For a template, seeREADME.example.md.LICENSE- This repository is licensed under the CC0 license. Replace with your own if desired.
Languages
Python
100%