If starting a new Xbox 360 decompilation project, this repository can be used as a scaffold.
See jeff for background on the concept and more information on the tooling used.
- Discord: GC/Wii Decompilation (While not for Xbox 360, GC/Wii also uses PPC)
- objdiff (Local diffing tool)
- decomp.me (Collaborate on matches)
- decomp.dev (Decompilation progress hub and API)
- wibo (Minimal Win32 wrapper for Linux)
- sjiswrap (UTF-8 to Shift JIS wrapper)
Although this template is meant for Xbox 360 projects, it has been forked from a GC/Wii template, and intentionally follows the same structure. Nearly all active GC/Wii decompilation projects use this structure, and will be useful for reference. A list of active GC/Wii projects can be found on decomp.dev.
- 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.
- No manual assembly: decomp-toolkit handles splitting the XEX into relocatable objects based on the configuration. No game assets are committed to the repository.
- Integration with objdiff for a diffing workflow.
COMING SOON(TM):
- Progress calculation and integration with decomp.dev.
- CI workflow template for GitHub Actions.
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.