2023-10-05 03:26:02 +00:00
decomp-toolkit Project Template
===============================
If starting a new GameCube / Wii decompilation project, this repository can be used as a scaffold.
See [decomp-toolkit ](https://github.com/encounter/decomp-toolkit ) for background on the concept and more information on the tooling used.
Documentation
-------------
- [Dependencies ](docs/dependencies.md )
- [Getting Started ](docs/getting_started.md )
- [`symbols.txt` ](docs/symbols.md )
- [`splits.txt` ](docs/splits.md )
2024-03-06 00:24:27 +00:00
- [GitHub Actions ](docs/github_actions.md ) (new!)
2023-10-05 03:26:02 +00:00
General:
2024-03-05 06:30:38 +00:00
2023-10-05 03:26:02 +00:00
- [Common BSS ](docs/common_bss.md )
- [`.comment` section ](docs/comment_section.md )
References
--------
- [Discord: GC/Wii Decompilation ](https://discord.gg/hKx3FJJgrV ) (Come to `#dtk` for help!)
- [objdiff ](https://github.com/encounter/objdiff ) (Local diffing tool)
- [decomp.me ](https://decomp.me ) (Collaborate on matches)
- [frogress ](https://github.com/decompals/frogress ) (Decompilation progress API)
- [wibo ](https://github.com/decompals/wibo ) (Minimal Win32 wrapper for Linux)
- [sjiswrap ](https://github.com/encounter/sjiswrap ) (UTF-8 to Shift JIS wrapper)
Projects using this structure:
2024-03-05 06:30:38 +00:00
2023-10-05 03:26:02 +00:00
- [zeldaret/tww ](https://github.com/zeldaret/tww )
2024-06-21 04:46:43 +00:00
- [zeldaret/oot-gc ](https://github.com/zeldaret/oot-gc )
- [zeldaret/ss ](https://github.com/zeldaret/ss )
2023-11-22 01:14:13 +00:00
- [PrimeDecomp/prime ](https://github.com/PrimeDecomp/prime )
2023-10-05 03:26:02 +00:00
- [PrimeDecomp/echoes ](https://github.com/PrimeDecomp/echoes )
- [DarkRTA/rb3 ](https://github.com/DarkRTA/rb3 )
2024-03-05 06:30:38 +00:00
- [doldecomp/melee ](https://github.com/doldecomp/melee )
- [doldecomp/sadx ](https://github.com/doldecomp/sadx )
2023-10-05 03:26:02 +00:00
- [InputEvelution/wp ](https://github.com/InputEvelution/wp )
2023-11-22 01:14:13 +00:00
- [NWPlayer123/AnimalCrossing-dtk ](https://github.com/NWPlayer123/AnimalCrossing-dtk )
2024-06-21 04:46:43 +00:00
- [Rainchus/marioparty4 ](https://github.com/Rainchus/marioparty4 )
2023-10-05 03:26:02 +00:00
- [Rainchus/ttyd_dtk ](https://github.com/Rainchus/ttyd_dtk )
2023-11-22 01:14:13 +00:00
- [Sage-of-Mirrors/zmansion ](https://github.com/Sage-of-Mirrors/zmansion )
2024-06-21 04:46:43 +00:00
- [bfbbdecomp/bfbb ](https://github.com/bfbbdecomp/bfbb )
- [EstexNT/rhf-dtk ](https://github.com/EstexNT/rhf-dtk )
2023-10-05 03:26:02 +00:00
Features
--------
2024-03-05 06:30:38 +00:00
2023-10-05 03:26:02 +00:00
- Few external dependencies: Just `python` for the generator and `ninja` for the build system. See [Dependencies ](docs/dependencies.md ).
- Simple configuration: Everything lives in `config.yml` , `symbols.txt` , and `splits.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 ](https://github.com/encounter/decomp-toolkit#analyzer-features ).
- REL support: RELs each have their own `symbols.txt` and `splits.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 ](https://github.com/decompals/frogress ).
- Integration with [objdiff ](https://github.com/encounter/objdiff ) for a diffing workflow.
2024-03-06 00:24:27 +00:00
- CI workflow template for GitHub Actions.
2023-10-05 03:26:02 +00:00
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:
2024-03-05 06:30:38 +00:00
2023-10-05 03:26:02 +00:00
- `config/GAMEID/config.example.yml` - Example configuration file and documentation.
- `docs/` - Documentation for decomp-toolkit configuration.
2023-11-22 01:25:35 +00:00
- `README.md` - This file, replace with your own. For a template, see [`README.example.md` ](README.example.md ).
- `LICENSE` - This repository is licensed under the CC0 license. Replace with your own if desired.