decomp-toolkit/README.md

59 lines
1.5 KiB
Markdown
Raw Normal View History

2022-11-27 06:37:29 +00:00
# decomp-toolkit [![Build Status]][actions]
2022-11-27 22:10:58 +00:00
[Build Status]: https://github.com/encounter/decomp-toolkit/actions/workflows/build.yml/badge.svg
2022-11-27 06:37:29 +00:00
[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
```