Update README.md with dtk-template & more commands
This commit is contained in:
parent
36bb5ddcc6
commit
62c5e3acf9
104
README.md
104
README.md
|
@ -8,6 +8,38 @@ Yet another GameCube/Wii decompilation toolkit.
|
||||||
decomp-toolkit functions both as a command-line tool for developers, and as a replacement for various parts of a
|
decomp-toolkit functions both as a command-line tool for developers, and as a replacement for various parts of a
|
||||||
decompilation project's build system.
|
decompilation project's build system.
|
||||||
|
|
||||||
|
For use in a new decompilation project, see [dtk-template](https://github.com/encounter/dtk-template), which provides a
|
||||||
|
project structure and build system that uses decomp-toolkit under the hood.
|
||||||
|
|
||||||
|
## Sections
|
||||||
|
|
||||||
|
- [Goals](#goals)
|
||||||
|
- [Background](#background)
|
||||||
|
- [Other approaches](#other-approaches)
|
||||||
|
- [Terminology](#terminology)
|
||||||
|
- [Analyzer features](#analyzer-features)
|
||||||
|
- [Commands](#commands)
|
||||||
|
- [ar create](#ar-create)
|
||||||
|
- [demangle](#demangle)
|
||||||
|
- [dol info](#dol-info)
|
||||||
|
- [dol split](#dol-split)
|
||||||
|
- [dol diff](#dol-diff)
|
||||||
|
- [dol apply](#dol-apply)
|
||||||
|
- [dol config](#dol-config)
|
||||||
|
- [dwarf dump](#dwarf-dump)
|
||||||
|
- [elf disasm](#elf-disasm)
|
||||||
|
- [elf fixup](#elf-fixup)
|
||||||
|
- [elf2dol](#elf2dol)
|
||||||
|
- [map](#map)
|
||||||
|
- [rel info](#rel-info)
|
||||||
|
- [rel merge](#rel-merge)
|
||||||
|
- [rso info](#rso-info)
|
||||||
|
- [shasum](#shasum)
|
||||||
|
- [nlzss decompress](#nlzss-decompress)
|
||||||
|
- [rarc list](#rarc-list)
|
||||||
|
- [rarc extract](#rarc-extract)
|
||||||
|
- [yaz0 decompress](#yaz0-decompress)
|
||||||
|
|
||||||
## Goals
|
## Goals
|
||||||
|
|
||||||
- Automate as much as possible, allowing developers to focus on matching code rather than months-long tedious setup.
|
- Automate as much as possible, allowing developers to focus on matching code rather than months-long tedious setup.
|
||||||
|
@ -268,11 +300,45 @@ $ dtk dol info input.dol
|
||||||
|
|
||||||
Analyzes and splits a DOL file into relocatable objects based on user configuration.
|
Analyzes and splits a DOL file into relocatable objects based on user configuration.
|
||||||
|
|
||||||
|
**This command is intended to be used as part of a decompilation project's build system.**
|
||||||
|
For an example project structure and for documentation on the configuration, see
|
||||||
|
[dtk-template](https://github.com/encounter/dtk-template).
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ dtk dol split config.yml target
|
$ dtk dol split config.yml target
|
||||||
```
|
```
|
||||||
|
|
||||||
TODO: document configuration file
|
### dol diff
|
||||||
|
|
||||||
|
Simple diff tool for issues in a linked ELF. (Yes, not DOL. It's misnamed.)
|
||||||
|
Tries to find the most obvious difference causing a mismatch.
|
||||||
|
|
||||||
|
Pass in the project configuration file, and the path to the linked ELF file to compare against.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk dol diff config.yml build/main.elf
|
||||||
|
```
|
||||||
|
|
||||||
|
### dol apply
|
||||||
|
|
||||||
|
Applies updated symbols from a linked ELF to the project configuration. (Again, misnamed.)
|
||||||
|
|
||||||
|
Useful after matching a file. It will pull updated symbol information from the final result.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk dol apply config.yml build/main.elf
|
||||||
|
```
|
||||||
|
|
||||||
|
### dol config
|
||||||
|
|
||||||
|
Generates an initial project configuration file from a DOL (& RELs).
|
||||||
|
|
||||||
|
Pass in the DOL file, and any REL files that are linked with it.
|
||||||
|
Or, for Wii games, pass in the `selfile.sel`. (Not RSOs)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk dol config main.dol rels/*.rel -o config.yml
|
||||||
|
```
|
||||||
|
|
||||||
### dwarf dump
|
### dwarf dump
|
||||||
|
|
||||||
|
@ -372,3 +438,39 @@ $ dtk shasum baserom.dol
|
||||||
$ dtk shasum -c baserom.sha1
|
$ dtk shasum -c baserom.sha1
|
||||||
baserom.dol: OK
|
baserom.dol: OK
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### nlzss decompress
|
||||||
|
|
||||||
|
Decompresses NLZSS-compressed files.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk nlzss decompress input.bin.lz -o output.bin
|
||||||
|
# or, for batch processing
|
||||||
|
$ dtk nlzss decompress rels/*.lz -o rels
|
||||||
|
```
|
||||||
|
|
||||||
|
### rarc list
|
||||||
|
|
||||||
|
Lists the contents of an RARC archive.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk rarc list input.arc
|
||||||
|
```
|
||||||
|
|
||||||
|
### rarc extract
|
||||||
|
|
||||||
|
Extracts the contents of an RARC archive.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk rarc extract input.arc -o output_dir
|
||||||
|
```
|
||||||
|
|
||||||
|
### yaz0 decompress
|
||||||
|
|
||||||
|
Decompresses Yaz0-compressed files.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dtk yaz0 decompress input.bin.yaz0 -o output.bin
|
||||||
|
# or, for batch processing
|
||||||
|
$ dtk yaz0 decompress rels/*.yaz0 -o rels
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue