2023-10-05 03:26:02 +00:00
|
|
|
# Path to the main.dol file.
|
|
|
|
object: orig/GAMEID/sys/main.dol
|
|
|
|
# (optional) SHA-1 hash of the main.dol file for verification.
|
|
|
|
hash: 0123456789abcdef0123456789abcdef01234567
|
|
|
|
# (optional) Name override. Defaults to "main".
|
|
|
|
name: main
|
|
|
|
|
|
|
|
# (optional) Path to the symbols.txt file.
|
|
|
|
# This file will be created if it does not exist.
|
|
|
|
# See docs/symbols.md for more information.
|
|
|
|
symbols: config/GAMEID/symbols.txt
|
|
|
|
# (optional) Path to the splits.txt file.
|
|
|
|
# This file will be created if it does not exist.
|
|
|
|
# See docs/splits.md for more information.
|
|
|
|
splits: config/GAMEID/splits.txt
|
|
|
|
|
|
|
|
# (optional) Path to the DOL's .map file.
|
|
|
|
# This should only used for initial analysis, and generating the symbols and splits files.
|
|
|
|
# Once those files are generated, remove this to avoid conflicts.
|
|
|
|
map: orig/GAMEID/files/main.MAP
|
|
|
|
# (optional) Start address of common BSS symbols, if any.
|
|
|
|
# Useful along with `map`, but not required otherwise, since common BSS
|
|
|
|
# is marked in the splits file.
|
|
|
|
common_start: 0x80001234
|
|
|
|
|
|
|
|
# (optional) Version used to generate `.comment` sections in the split objects.
|
|
|
|
# If not specified, no `.comment` sections will be generated.
|
|
|
|
# See docs/comment_section.md for more information.
|
2024-03-05 06:30:38 +00:00
|
|
|
# Known versions:
|
|
|
|
# 8 - CodeWarrior for GameCube 1.0+
|
|
|
|
# 10 - CodeWarrior for GameCube 1.3.2+
|
|
|
|
# 11 - CodeWarrior for GameCube 2.7+
|
|
|
|
# 14 - CodeWarrior for GameCube 3.0a3+
|
2023-10-05 03:26:02 +00:00
|
|
|
mw_comment_version: 8
|
|
|
|
|
|
|
|
# (optional) Path to `selfile.sel` for Wii games with RSO files.
|
|
|
|
selfile: orig/GAMEID/files/selfile.sel
|
|
|
|
# (optional) SHA-1 hash of the `selfile.sel` file for verification.
|
|
|
|
selfile_hash: 0123456789abcdef0123456789abcdef01234567
|
|
|
|
|
|
|
|
# (optional) When enabled, function boundary analysis will be skipped.
|
|
|
|
# Only valid _after_ initial analysis has been performed and
|
|
|
|
# the symbols and splits files have been generated.
|
|
|
|
quick_analysis: false
|
|
|
|
|
|
|
|
# (optional) When enabled, the analyzer will attempt to detect sizes
|
|
|
|
# and data types of objects based on code usage and alignment.
|
|
|
|
detect_objects: true
|
|
|
|
|
|
|
|
# (optional) When enabled, the analyzer will attempt to detect strings,
|
|
|
|
# wide strings, and string tables.
|
|
|
|
detect_strings: true
|
|
|
|
|
|
|
|
# (optional) Whether to write disassembly to the split output directory.
|
|
|
|
# While not used in the build process, the disassembly is useful
|
|
|
|
# for reading and usage with other tools, like decomp.me.
|
|
|
|
write_asm: true
|
|
|
|
|
|
|
|
# (optional) If symbols are _fully_ known (e.g. from a complete map file),
|
|
|
|
# this can be set to true to skip most analysis steps, and ensure new
|
|
|
|
# symbols are not created by the analyzer.
|
|
|
|
# If you're not sure, leave this false.
|
|
|
|
symbols_known: false
|
|
|
|
|
|
|
|
# (optional) Whether to create `gap_` symbols to prevent the linker from
|
|
|
|
# adjusting the alignment / address of symbols.
|
|
|
|
# When alignments are fully known (e.g. from a complete map file),
|
|
|
|
# this can be set to false.
|
|
|
|
fill_gaps: true
|
|
|
|
|
2024-03-04 05:47:05 +00:00
|
|
|
# (optional) By default, emitted objects will "export" all symbols (force active).
|
|
|
|
# This is useful to prevent the linker from removing any symbols.
|
|
|
|
# Individual symbols can be excluded using `noexport` in the symbols file.
|
|
|
|
export_all: true
|
|
|
|
|
2023-10-05 03:26:02 +00:00
|
|
|
# (optional) Custom template for `ldscript.lcf`. Avoid unless necessary.
|
|
|
|
# See https://github.com/encounter/decomp-toolkit/blob/main/assets/ldscript.lcf
|
|
|
|
ldscript_template: config/GAMEID/module/ldscript.tpl
|
|
|
|
|
|
|
|
# (optional) Configuration for modules.
|
|
|
|
modules:
|
|
|
|
|
|
|
|
- # Path to the module.
|
|
|
|
object: orig/GAMEID/files/module.rel
|
|
|
|
|
|
|
|
# (optional) SHA-1 hash of the module for verification.
|
|
|
|
hash: 0123456789abcdef0123456789abcdef01234567
|
|
|
|
|
|
|
|
# (optional) Name of the module. Defaults to the module's filename.
|
|
|
|
name: module
|
|
|
|
|
|
|
|
# (optional) Path to the module's symbols.txt file.
|
|
|
|
# This file will be created if it does not exist.
|
|
|
|
# See docs/symbols.md for more information.
|
|
|
|
symbols: config/GAMEID/module/symbols.txt
|
|
|
|
# (optional) Path to the module's splits.txt file.
|
|
|
|
# This file will be created if it does not exist.
|
|
|
|
# See docs/splits.md for more information.
|
|
|
|
splits: config/GAMEID/module/splits.txt
|
|
|
|
|
|
|
|
# (optional) Path to the module's .map file.
|
|
|
|
# See `map` above for more information.
|
|
|
|
map: orig/GAMEID/files/module.MAP
|
|
|
|
|
|
|
|
# (optional) Mark symbols as "force active" / "exported".
|
|
|
|
force_active: []
|
|
|
|
|
|
|
|
# (optional) Custom template for `ldscript.lcf`, if needed.
|
|
|
|
# See https://github.com/encounter/decomp-toolkit/blob/main/assets/ldscript_partial.lcf
|
|
|
|
ldscript_template: config/GAMEID/module/ldscript.tpl
|
2023-11-26 05:45:22 +00:00
|
|
|
|
2024-03-04 05:47:05 +00:00
|
|
|
# (optional) By default, every REL is linked with every other REL.
|
|
|
|
# Some games link RELs individually, so the module IDs are not unique.
|
|
|
|
# To support this, `links` overrides which other modules are included in this module's analysis.
|
|
|
|
# The DOL is always included, and does not need to be specified.
|
|
|
|
links: [module2] # This module will be linked with the DOL and "module2".
|
|
|
|
|
2023-11-26 05:45:22 +00:00
|
|
|
# (optional) Configuration for asset extraction.
|
2024-03-04 05:47:05 +00:00
|
|
|
# For modules, this goes in the module's configuration above.
|
2023-11-26 05:45:22 +00:00
|
|
|
extract:
|
|
|
|
|
|
|
|
- # The symbol name to extract.
|
2024-09-18 01:20:51 +00:00
|
|
|
# To disambiguate local symbols with the same name, use:
|
|
|
|
# `SomeSymbol!.section:0x80001234`
|
2023-11-26 05:45:22 +00:00
|
|
|
symbol: SomeSymbol
|
|
|
|
|
|
|
|
# (optional) The path to extract raw binary data to.
|
|
|
|
# Path is relative to `build/GAMEID/bin`.
|
|
|
|
binary: Lib/SomeSymbol.bin
|
|
|
|
|
|
|
|
# (optional) The path to extract a C array representation to.
|
|
|
|
# In a C/C++ file, the symbol can be included with `#include "Lib/SomeSymbol.inc"`.
|
|
|
|
# Path is relative to `build/GAMEID/include`.
|
2024-09-18 01:20:51 +00:00
|
|
|
header: Lib/SomeSymbol.inc
|
|
|
|
|
|
|
|
# (optional) Block relocations from or to specific addresses.
|
|
|
|
# For modules, this goes in the module's configuration above.
|
|
|
|
block_relocations:
|
|
|
|
|
|
|
|
# Block any relocation pointing _to_ this address.
|
|
|
|
- target: .data:0x80130140
|
|
|
|
|
|
|
|
# Block any relocation originating _from_ this address.
|
|
|
|
- source: .text:0x80047160
|
|
|
|
# (optional) End address to make it a range.
|
|
|
|
end: .text:0x800471A8
|
|
|
|
|
|
|
|
# (optional) Add or replace relocations if they were detected incorrectly.
|
|
|
|
# For modules, this goes in the module's configuration above.
|
|
|
|
add_relocations:
|
|
|
|
|
|
|
|
# From: `subi r3, r3, 0x7657`
|
|
|
|
# To: `li r3, mesWInsert-0x1@sda21`
|
|
|
|
- source: .text:0x800473F4
|
|
|
|
type: sda21
|
|
|
|
target: mesWInsert # Supports `symbol` or `symbol!.section:0x80001234`
|
|
|
|
addend: -1
|