575e3b4a46
• Type hinting added to every single file • Path conversion now handled in `ninja_syntax.py` natively, can safely pass almost everything directly |
||
---|---|---|
.vscode.example | ||
assets | ||
config/GAMEID | ||
docs | ||
orig/GAMEID | ||
tools | ||
.gitattributes | ||
.gitignore | ||
LICENSE | ||
README.example.md | ||
README.md | ||
configure.py |
README.md
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
#dtk
for 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
- PrimeDecomp/prime
- PrimeDecomp/echoes
- DarkRTA/rb3
- InputEvelution/sadx-dtk
- InputEvelution/wp
- lepelog/ss-dtk
- NWPlayer123/AnimalCrossing-dtk
- Rainchus/mp4-dtk
- Rainchus/ttyd_dtk
- Sage-of-Mirrors/zmansion
Features
- Few external dependencies: Just
python
for the generator andninja
for 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 --version
flag 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.txt
andsplits.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.
- (TODO) 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.