Luke Street
141339fcb0
- Add `elf disasm` (disassemble an ELF) - Add `elf fixup` (for GNU assembler) - Add `map order` (link order deduction) - Add `map slices` (ppcdis slices.yml, WIP) - Add `map symbols` (ppcdis symbols.yml, WIP) - Big speed improvement for map processing - Minor `elf2dol` cleanup |
||
---|---|---|
.cargo | ||
.github/workflows | ||
assets | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
build.rs | ||
deny.toml | ||
rustfmt.toml |
README.md
decomp-toolkit
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.
$ dtk demangle 'BuildLight__9CGuiLightCFv'
CGuiLight::BuildLight() const
elf2dol
Creates a DOL file from the provided ELF file.
$ dtk elf2dol input.elf output.dol
map
Processes CodeWarrior map files and provides information about symbols and TUs.
$ 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.
$ dtk shasum baserom.dol
949c5ed7368aef547e0b0db1c3678f466e2afbff baserom.dol
$ dtk shasum -c baserom.sha1
baserom.dol: OK