Files
2025-08-31 12:29:19 -07:00

3.2 KiB

jeff Project Template

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.

Documentation

References

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.

Features

  • Few external dependencies: Just python for the generator and ninja for the build system. See Dependencies.
  • 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.
  • 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.

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.
  • LICENSE - This repository is licensed under the CC0 license. Replace with your own if desired.