Skip to content

Releases: encounter/decomp-toolkit

v0.9.1

10 Jun 06:52
Compare
Choose a tag to compare

What's Changed

  • Added: Detect _savevr/_restvr + check in RELs
  • Fixed: Ignore invalid instructions (#55)
  • Fixed: Partially revert "Rework section alignment handling (4ea4ec8)
  • Fixed: REL alignment after section data (b44aa78)

Full Changelog: v0.9.0...v0.9.1

v0.9.0

04 Jun 02:45
Compare
Choose a tag to compare

What's Changed

  • Added: Support address in config symbol references (#58)
    • Example: symbol_name!.data:0x1234, supported in extract and add_relocations in config.yml
  • Added: Instruction disassembly in dol diff (#28)
    image
  • Added: SN GCC DWARF improvements (#46)
  • Added: Add U8 (newer .arc) support (46cf0be)
    • Added: u8 list, u8 extract and support for U8 archive paths in config.yml (e.g. orig/SOUE01/files/rels.arc:rels/d_a_asura_bulletNP.rel)
  • Fixed: Fix addic/addic. handling in relocation tracker (#57)
  • Fixed: Change REL "invalid relocation" to warning (#53)
  • Fixed: Check for existing function when analyzing bl (partially #56)

Full Changelog: v0.8.3...v0.9.0

v0.8.3

20 May 05:14
Compare
Choose a tag to compare

Support block_relocations and add_relocations in config.yml. This allows more granular control over generated relocations.

Also optimizes relocation address validity checks, leading to ~20% faster relocation analysis.

Config example:

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

add_relocations:
# Inserts or overwrites a relocation.
# From: `subi r3, r3, 0x7657`
# To: `li r3, mesWInsert-0x1@sda21`
- source: .text:0x800473F4
  type: sda21
  target: mesWInsert
  addend: -1

Full Changelog: v0.8.2...v0.8.3

v0.8.2

17 May 13:21
Compare
Choose a tag to compare

What's Changed

  • Fixed: Invalid asm output (bf0d1a8)

Full Changelog: v0.8.1...v0.8.2

v0.8.1

17 May 00:38
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.1

v0.8.0

16 May 05:21
Compare
Choose a tag to compare

What's Changed

  • Added: disc commands: info, extract, convert, verify (#34, using nod-rs)
    • Supports ISO (GCM), RVZ & WIA, WBFS, CISO, NFS, GCZ
    • See README for usage
  • Added: Yay0/Yaz0 compression & decompression (#6, using Orthrus)
    • See README for usage
  • Added: Reconstruct "erased" tags from DWARF debugging info by @cadmic in #51
    • New dwarf dump flag: --include-erased
  • Added: Write object address and size in asm comments (#37)
  • Added: data:int and data:short for asm output (#41)
  • Fixed: Explicitly check split end >= start (#48)
  • Fixed: Rework section alignment handling (#27)
  • Fixed: Prefer references to e.g. _savegpr_14 over __savegpr (c1c4373)
  • Changed: Update ppc750cl (10x faster disassembly) (c45f37e)

Full Changelog: v0.7.6...v0.8.0

v0.7.6

03 Apr 06:23
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.7.5...v0.7.6

v0.7.5

05 Mar 01:19
Compare
Choose a tag to compare

What's Changed

  • Check if git tag matches Cargo version when releasing by @ribbanya in #44
  • Allow overriding jump table size analysis (96b13be)
    • When the analyzer detects a jump table, it will now check for an existing object symbol at that address, using that size if present.
  • Write .note.split section in split objects (4f8a9e6, b829e15)
    • This enables showing the original address of symbols in objdiff, as well as elf disasm on split objects retaining the original addresses.

Full Changelog: v0.7.4...v0.7.5

v0.7.4

29 Feb 02:43
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.7.3...v0.7.4

v0.7.3

09 Feb 22:10
Compare
Choose a tag to compare

Adds ar extract: Extracts the contents of static library (.a) files.

Accepts multiple files, glob patterns (e.g. *.a) and response files (e.g. @rspfile).

# Extracts to outdir
$ dtk ar extract lib.a -o outdir

# With multiple inputs, extracts to separate directories
# Extracts to outdir/lib1, outdir/lib2
$ dtk ar extract lib1.a lib2.a -o outdir

Full Changelog: v0.7.2...v0.7.3