Releases: AetiasHax/ds-decomp
v0.6.0
What's Changed
- feat: Generate BLX relocations as BL
- Yields better diffs as mwccarm does not generate BLX instructions
- feat: Add
.L
prefix to labels - Bump
ds-rom
to 0.5.0dsd
subcommands can now load the extracted ROM from just the code files (ARM7, ARM9, overlays, autoloads)
- feat: Generate symbols for overlay IDs
- bugfix: Include alignment padding when calculating
code_size
andbss_size
- Fixes mismatches in the output ROM for some games (AetiasHax/ds-rom#17)
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Migrating from pre-v0.5.0
v0.5.0 adds the section kind rodata
which is the new default for the .rodata
and .ctor
sections. This is currently only used by dsd-ghidra
and not dsd itself, but it's still recommended to edit your delinks.txt files so that .rodata
and .ctor
have the correct section kind.
What's Changed
- Added section kind
rodata
for read-only initialized data (docs) - Better support for projects initialized with
--allow-unknown-function-calls
- delink/dis: Ignore relocations with
module:none
- When multiple symbols have the same address, select the first one for relocations
- delink/dis: Ignore relocations with
Full Changelog: v0.4.0...v0.5.0
v0.4.0
v0.3.2
We're on crates.io now!
You can now access the ds-decomp
crate on crates.io. It contains all the code necessary for reading and writing config files for delinks, symbols and relocations, which makes it possible to create external tools to integrate with dsd.
What's Changed
- init: Fix autoload callback overlapping with previous function
- test: Compare file contents instead of just file size
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
- Fix objdiff command not allowing the
--c-flags
and--custom-args
arguments to have a hyphen for their value's first character by @LagoLunatic in #18 - init: Fix improper handling of main function when it is in Thumb mode by @LagoLunatic in #21
- init: Reject functions starting with any shift by a multiple of 4, except 16 and 24
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Migrating from pre-v0.3.0
v0.3.0 removes the offset=0x1234
attribute from function symbols. To migrate to v0.3+, you have to manually open each symbols.txt
file and remove each offset
attribute and add its value to the addr:0x02123456
field on the same line.
For example:
-func_02050a20 kind:function(arm,size=0x294,offset=0x14) addr:0x02050a0c
+func_02050a20 kind:function(arm,size=0x294) addr:0x02050a20
What's Changed
- dis: Support relocation addends by @LagoLunatic in #11
- init: Option to skip relocation analysis, for debugging
- init: Improved function analysis
- More function branch cases
- Allow function to start with shift by 16 or 24
- Treat non-combined Thumb BL/BLX as illegal
- Exclude fake functions that end outside the current module
- Abort analysis upon finding illegal code sequence
- Always try to analyze all .init functions (even if some .init functions fail to be analayzed)
- Detect tail calls into upcoming function
- Detect tail calls as return instructions
- Ignore functions that aren't in order in .ctor
- Fix random secure area bytes being interpreted as 32-bit Thumb instructions
- dis: Add flag to disassemble with UAL syntax
- init: Add flag to allow unknown function calls
- init: Analyze data between functions
- init: Add sanity check before setting .text upper bound by @LagoLunatic in #14
- init: Pad addresses in symbols.txt to 8 hex digits by @LagoLunatic in #15
- Replaced argp with clap by @SpeckyYT in #16
- Support
//
style comments in config files - init: Option to provide source of relocation, for debugging
New Contributors
- @axel7083 made their first contribution in #10
- @LagoLunatic made their first contribution in #11
- @SpeckyYT made their first contribution in #16
Full Changelog: v0.2.3...v0.3.0
v0.2.3
What's Changed
- Update dependencies
init
: Support static initializers in Thumb modeinit
: Exclude branch labels outside of current moduleinit
: Handle backwards branches right before constant poolsinit
: Better debug logs when function analysis terminatesobjdiff
: Fix incorrectctx_path
value
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- Roundtrip test; fix various issues with delink and linker by @AetiasHax in #9
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
- Automated testing for
dsd init
by @AetiasHax in #5 - Handle overlays with no
.text
and improve function analysis by @AetiasHax in #6
Full Changelog: v0.2.0...v0.2.1