Migrating from pre-v0.11.0
- In
dtcm/delinks.txt, rename.dtcmto.bss- This effectively undoes the migration from v0.10.0. The reason for this is that the section borrowing system has been updated to support more sections and modules, see additions below.
- Run
dsd fix ctor-zeroto truncate.ctorsections so the final 0-value is excluded.- It's recommended to first run with the
--dryoption to test that the migration command works.
- It's recommended to first run with the
New additions
#42: Progress categories
You can add categories: gfx, core to delinks.txt to add objdiff progress categories for an entire module (top of the file) or for individual delink files.
#44: dsd format subcommand
Formats all symbols.txt, delinks.txt and relocs.txt to sort items by address value.
// Comments are now also preserved by any command that updates these files, including dsd format.
#49: Add link-time constants __DTCM_LO, __ITCM_HI, __CODE_HI and __OVERLAY_COUNT to LCF linker script
These are present in low-level code and had to be hardcoded for each game until now.
#50: dsd sig apply: Apply signature directly from YAML file
Function signatures had to be registered into dsd's source code before they could be applied. Now dsd sig apply will also accept a path to a .yaml or .yml file.
#51: Borrow more sections from other modules: .itcm, .autodata_{}, .autobss_{}
Previously we only had .dtcm which allows a delink file to contain a chunk of .bss from the DTCM module.
Now there is also:
.itcmwhich borrows from.textin the ITCM module.autodata_{index}which borrows from.datain custom autoload block{index}.autobss_{index}which borrows from.bssin custom autoload block{index}
Important
This change requires migration, see the migration guide at the top of this release.
#52: Link-time constants in relocs.txt
Added a new relocation kind kind:link_time_const(__DTCM_LO) which works with any link-time constant mentioned above.
#53 and #55: Exclude final 0-value from .ctor in delinks.txt
.ctor is a null-terminated list, so it makes more sense for the linker to append the null pointer rather than requiring users to include it themselves.
Important
This change requires migration, see the migration guide at the top of this release.
#54: dsd sig new-elf subcommand
Generates a function signature from an ELF binary and function name, and it does not require a dsd project or config.yaml.
Bug fixes
#46: Give delink gaps a more distinct name
Fixes a silent duplicate file name issue when linking.
What's Changed
- Progress categories by @AetiasHax in #42
- Updating Dependencies (Objdiff-Core, typed_path added) by @EstreyaZR in #43
dsd formatsubcommand by @AetiasHax in #44- Give delink gaps a more distinct name by @AetiasHax in #46
- Replace serde_yml with serde-saphyr by @AetiasHax in #47
- Bump dependencies and enable LTO by @AetiasHax in #48
- Add LCF variables by @AetiasHax in #49
- sig apply: Apply signature directly from YAML file by @AetiasHax in #50
- Migrate more sections:
.itcm,.autodata_{},.autobss_{}by @AetiasHax in #51 - Link-time constants in relocs.txt by @AetiasHax in #52
- Append zero to .ctor section by @AetiasHax in #53
- lcf: Fix incorrect section end alignment for .ctor by @AetiasHax in #55
sig new-elf: New subcommand to create function signatures from ELF files by @AetiasHax in #54
New Contributors
- @EstreyaZR made their first contribution in #43
Full Changelog: v0.10.2...v0.11.0