Skip to content

Releases: encounter/objdiff

v3.0.0-alpha.2

04 Mar 02:03
Compare
Choose a tag to compare
v3.0.0-alpha.2 Pre-release
Pre-release

Previous changelog (v3.0.0-alpha.1)

What's Changed

  • Added: MIPS: Use relocation pairing (R_MIPS_HI16, R_MIPS_LO16) to calculate relocation addend
  • Added: MIPS: Option to display '$' prefix for registers. Off by default.
  • Fixed: Various MIPS regressions.
  • Changed: Build objdiff-gui against older glibc (#165, 80e9396)

Full Changelog: v3.0.0-alpha.1...v3.0.0-alpha.2

v3.0.0-alpha.1

03 Mar 05:49
Compare
Choose a tag to compare
v3.0.0-alpha.1 Pre-release
Pre-release

This release brings significant internal changes that improve overall performance and enable better code reuse. Due to the complex refactoring involved, several features are currently missing and will be reimplemented before the stable release of v3:

  • Data relocation diffing
  • Displaying data values from instruction tooltips
  • Displaying data pool references
  • JSON output for objdiff-cli diff
  • PowerPC extab display/diffing

If you'd like these features, please continue using the latest stable v2 release until they return.

All object and architecture backends have been completely reworked. Please submit issues for any regressions. Going forward, integration tests are being added to prevent future regressions.

The WebAssembly API was rebuilt on top of the WebAssembly Component Model, and the new internal architecture significantly reduces the amount of data that needs to pass through the WASM/JS boundary. An updated version of the experimental VS Code extension will be released soon with significantly improved performance thanks to these changes.

What's Changed

  • Added: Build errors are handled more gracefully and do not send you back to the symbols view (#161, d938988)
  • Added: "Combine data sections" option now combines MSVC section groups with proper ordering (.rdata$r, etc)
  • Added: New "Combine text sections" option that will combine all text sections (including MSVC section groups, e.g. .text$di, .text$mn, etc)
  • Added: Implement context menu copy functionality for data values by @SquareMan in #163
    • Note: Currently not working post-refactor
  • Added: Check relocation addends when diffing functions by @LagoLunatic in #158
  • Added: Symbol search box when mapping a symbol (#160)
  • Added: Calculate a diff score in addition to match percentage, based on asm-differ and decomp-permuter logic (#1)
  • Added: Improve tooltip and context menu visuals, including better handling for long symbol names
  • Fixed: Added/removed bytes being visually misaligned in data diff view by @LagoLunatic in #159
  • Fixed: MSVC local static functions are missing from diff (#156)
  • Fixed: Statics in MSVC built objs don't show names (#148)
  • Fixed: x86 relocation incorrectly applied (#106)
  • Changed: Use rabbitizer v2 for MIPS backend (6d3c63c)
  • Changed: Simplified internal object representation & processing

Full Changelog: v2.7.1...v3.0.0-alpha.1

v2.7.1

22 Jan 06:12
Compare
Choose a tag to compare

NOTE: This release has configuration changes that the experimental VS Code extension has not yet been updated for. Please use v2.6.0 CLI for the extension.

What's Changed

  • Fixed: Refactor data relocation diffing to improve accuracy and fix bugs by @LagoLunatic in #157

Full Changelog: v2.7.0...v2.7.1

v2.7.0

18 Jan 23:33
a4fdb61
Compare
Choose a tag to compare

NOTE: This release has configuration changes that the experimental VS Code extension has not yet been updated for. Please use v2.6.0 CLI for the extension.

What's Changed

  • Added: Show relocation diffs in function view when the data's content differs by @LagoLunatic in #153
  • Added: Implement diffing relocations within data sections by @LagoLunatic in #154
  • Fixed: Update dependencies to fix notify-rs crash (6037a79, #145)

Full Changelog: v2.6.0...v2.7.0

v2.6.0

05 Jan 04:44
Compare
Choose a tag to compare

What's Changed

  • Added: Add buttons to collapse or expand all sections in the symbol list view for an object simultaneously by @LagoLunatic in #149
  • Added: Internal changes to support upcoming objdiff Visual Studio Code extension.
  • Update dependencies by @NWPlayer123 in #150

Full Changelog: v2.5.0...v2.6.0

v2.5.0

09 Dec 05:06
Compare
Choose a tag to compare

What's Changed

  • Added: GUI: Implement keyboard shortcuts by @LagoLunatic in #139
    • See PR description for a current list.
    • Note: Ctrl-* shortcuts may be replaced with Alt shortcuts in the future
  • Added: PPC: Display decoded rlwinm info to hover tooltip by @LagoLunatic in #141
  • Added: PPC: Display data values on hover for pools as well by @LagoLunatic in #140
  • Added: Experimental objdiff-cli diff auto-rebuild (526e031, #47)
    • Includes improvements to file watch behavior (debouncing with a 200ms delay)
  • Fixed: ARM: Immediate offset scaling for Thumb LDRB/LDRH/STRB/STRH (AetiasHax/unarm@a3f4053, #142)
  • Fixed: PPC: Remove extab "null action" warning (CelestialAmber/cwextab@cd729e4)

Full Changelog: v2.4.0...v2.5.0

v2.4.0

07 Nov 16:53
Compare
Choose a tag to compare

What's Changed

  • Experimental ARM64 support (424434e)
    • Please report any issues or unhandled relocations!
  • Combine nested otherwise empty directories in objects view by @robojumper in #137
  • Show diff colors when symbols differ (c5da7f7)
  • Relax symbol comparison logic (21f8f24)
    • The Ghidra delinker plugin emits functions with type STT_OBJECT, rather than STT_FUNC. The current logic was preventing these from being compared based on their symbol type. Relax this condition for now.
  • Match branch destinations and hardcoded offsets when "Relax relocation diffs" is enabled (79bd731)
  • Support scratch preset_id field for decomp.me integration (a119d9a)

Full Changelog: v2.3.4...v2.4.0

v2.3.4

29 Oct 00:14
Compare
Choose a tag to compare

What's Changed

  • Fixed: Missing common BSS symbols (#128)

Full Changelog: v2.3.3...v2.3.4

v2.3.3

21 Oct 03:11
Compare
Choose a tag to compare

What's Changed

  • Fixed: Data tooltip panic by @SquareMan in #123
  • Fixed: Panic when parsing DWARF 2 line info for empty section by @AetiasHax in #125
  • Changed: Improve dependency gating on objdiff-core by @AngheloAlf in #126
  • Changed: Lighten default blue diff color in 9ca157d

Full Changelog: v2.3.2...v2.3.3

v2.3.2

12 Oct 00:30
Compare
Choose a tag to compare

What's Changed

  • Fixed: Resolving symbols for section-relative relocations (6764884)
  • Fixed: MIPS j handling when jumping within the function (6764884)

Full Changelog: v2.3.1...v2.3.2