2024-09-24 01:17:42 +00:00
decomp-toolkit Project Template
===============================
2020-05-13 05:17:54 +00:00
2024-09-24 01:17:42 +00:00
If starting a new GameCube / Wii decompilation project, this repository can be used as a scaffold.
2022-07-15 06:28:19 +00:00
2024-09-24 01:17:42 +00:00
See [decomp-toolkit ](https://github.com/encounter/decomp-toolkit ) for background on the concept and more information on the tooling used.
2021-12-06 05:28:35 +00:00
2024-09-24 01:17:42 +00:00
Documentation
-------------
2023-02-13 08:33:10 +00:00
2024-09-24 01:17:42 +00:00
- [Dependencies ](docs/dependencies.md )
- [Getting Started ](docs/getting_started.md )
- [`symbols.txt` ](docs/symbols.md )
- [`splits.txt` ](docs/splits.md )
- [GitHub Actions ](docs/github_actions.md ) (new!)
2022-05-12 22:58:46 +00:00
2024-09-24 01:17:42 +00:00
General:
2022-07-15 06:27:39 +00:00
2024-09-24 01:17:42 +00:00
- [Common BSS ](docs/common_bss.md )
- [`.comment` section ](docs/comment_section.md )
2020-05-13 05:17:54 +00:00
2024-09-24 01:17:42 +00:00
References
--------
2020-05-13 05:17:54 +00:00
2024-09-24 01:17:42 +00:00
- [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)
2021-07-28 18:22:39 +00:00
2024-09-24 01:17:42 +00:00
Projects using this structure:
2021-07-28 18:22:39 +00:00
2024-09-24 01:17:42 +00:00
- [zeldaret/tww ](https://github.com/zeldaret/tww )
- [zeldaret/oot-gc ](https://github.com/zeldaret/oot-gc )
- [zeldaret/ss ](https://github.com/zeldaret/ss )
- [PrimeDecomp/prime ](https://github.com/PrimeDecomp/prime )
- [PrimeDecomp/echoes ](https://github.com/PrimeDecomp/echoes )
- [DarkRTA/rb3 ](https://github.com/DarkRTA/rb3 )
- [doldecomp/melee ](https://github.com/doldecomp/melee )
- [doldecomp/sadx ](https://github.com/doldecomp/sadx )
- [InputEvelution/wp ](https://github.com/InputEvelution/wp )
- [NWPlayer123/AnimalCrossing-dtk ](https://github.com/NWPlayer123/AnimalCrossing-dtk )
- [Rainchus/marioparty4 ](https://github.com/Rainchus/marioparty4 )
- [Rainchus/ttyd_dtk ](https://github.com/Rainchus/ttyd_dtk )
- [Sage-of-Mirrors/zmansion ](https://github.com/Sage-of-Mirrors/zmansion )
- [bfbbdecomp/bfbb ](https://github.com/bfbbdecomp/bfbb )
- [EstexNT/rhf-dtk ](https://github.com/EstexNT/rhf-dtk )
2022-04-03 18:27:01 +00:00
2024-09-24 01:17:42 +00:00
Features
--------
2022-04-03 18:27:01 +00:00
2024-09-24 01:17:42 +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.
- CI workflow template for GitHub Actions.
2022-04-03 18:27:01 +00:00
2024-09-24 01:17:42 +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:
- `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, see [`README.example.md` ](README.example.md ).
- `LICENSE` - This repository is licensed under the CC0 license. Replace with your own if desired.