# decomp-toolkit [![Build Status]][actions] [Build Status]: https://github.com/encounter/decomp-toolkit/actions/workflows/build.yml/badge.svg [actions]: https://github.com/encounter/decomp-toolkit/actions GameCube/Wii decompilation project tools. This provides various commands that assist with creating a build system that works across all major platforms without dealing with platform-specific C compilers, UNIX compatibility layers like msys2, or other idiosyncrasies. ## Commands ### demangle Demangles CodeWarrior C++ symbols. A thin wrapper for [cwdemangle](https://github.com/encounter/cwdemangle). ```shell $ dtk demangle 'BuildLight__9CGuiLightCFv' CGuiLight::BuildLight() const ``` ### elf2dol Creates a DOL file from the provided ELF file. ```shell $ dtk elf2dol input.elf output.dol ``` ### map Processes CodeWarrior map files and provides information about symbols and TUs. ```shell $ dtk map entries Game.MAP 'Unit.o' # Outputs all symbols that are referenced by Unit.o # This is useful for finding deduplicated weak functions, # which only show on first use in the link map. $ dtk map symbol Game.MAP 'Function__5ClassFv' # Outputs reference information for Function__5ClassFv # CodeWarrior link maps can get very deeply nested, # so this is useful for emitting direct references # in a readable format. ``` ### shasum Calculate and verify SHA-1 hashes. ```shell $ dtk shasum baserom.dol 949c5ed7368aef547e0b0db1c3678f466e2afbff baserom.dol $ dtk shasum -c baserom.sha1 baserom.dol: OK ```