Skip to content

Releases: encounter/objdiff

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

v2.3.1

11 Oct 05:16
Compare
Choose a tag to compare

What's Changed

  • Fixed: Regression with 0-sized function symbols (#119)
  • Fixed: Avoid resetting diff state on unit config changes (5759000)

Full Changelog: v2.3.0...v2.3.1

v2.3.0

10 Oct 03:57
741d93e
Compare
Choose a tag to compare

What's Changed

  • Added: Toggle side panel using a new button in the top left of the window. (9596051)
    image
  • Added: Deprioritize generated GCC symbols when resolving section-relative relocations (#115)
    • Current symbol names: __gnu_compiled_c, __gnu_compiled_cplusplus, gcc2_compiled.
  • Added: Click on empty space in row to clear highlight (#116)
  • Added: Round match percent down before display (603dbd6)
    • Ensures that 100% isn't displayed until it's a perfect match.
  • Added: Symbol mapping feature (#118)
    • This allows users to "map" (or "link") symbols with different names so that they can be compared without having to update either the target or base objects. Symbol mappings are persisted in objdiff.json, so generators will need to ensure that they're preserved when updating. (Example: encounter/dtk-template@d1334bb)
2024-10-08.21-14-18.mp4

Full Changelog: v2.2.2...v2.3.0

v2.2.2

04 Oct 04:15
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.2.1...v2.2.2

v2.2.1

01 Oct 04:00
Compare
Choose a tag to compare

What's Changed

  • Added: total_units, complete_units to progress report (08cd768)

Full Changelog: v2.2.0...v2.2.1

v2.2.0

29 Sep 19:16
Compare
Choose a tag to compare

What's Changed

Notably, projects using the prebuilt objdiff-cli binaries should upgrade for improved overall performance. (See below)

  • Added: Revamped jobs UI. Job status is now shown in the top menu bar, with a new Jobs window that can be toggled. (c7b8551)
    Revamped jobs UI
  • Added: When metadata.source_path is specified in objdiff.json, a "Source file" option appears in the diff view & when right-clicking on the object in the objects panel. The source file is opened in the default program configured by the system. (#99, bb039a1)
    Source file option
  • Changed: Use mimalloc for prebuilt objdiff-cli binaries. In particular, this improves objdiff-cli report performance with the prebuilt binaries by ~50x(!) compared to builds using musl's built-in malloc. (cc1bc44)
  • Changed: Improve configuration read/write performance significantly. This avoids long UI pauses when reloading objdiff.json over a slow or network filesystem (e.g. WSL). (2ec17ae)
  • Changed: Debounce loaded object modification check. Before, this was running 2 fs::metadata calls every frame. We don't need to do it nearly that often, so now it only checks once every 500ms. This should yield better overall UI performance. (8fc142d)
  • Changed: Improve build log message when build command doesn't exist. (b0123b3)
  • Changed: Build and diff errors are now handled more gracefully. (c7b8551)
  • Fixed: Set app_id in eframe::NativeOptions. Fixes missing WM_CLASS when running under Wayland. Useful when creating a .desktop entry for objdiff. (ec9731e)
  • Removed: armv7-unknown-linux-musleabi prebuilt binaries. This platform was incompatible with the mimalloc change. If you used these, please let me know. (6e881a7)

Full Changelog: v2.1.0...v2.2.0

v2.1.0

27 Sep 06:55
a06382c
Compare
Choose a tag to compare

What's Changed

  • Added: Update cwextab by @CelestialAmber in #109 & #110
  • Added: Show the value at a symbol when hovering a relocation by @SquareMan in #108
    • PPC only at the moment
  • Added: Disambiguate dummy symbols by @OndrikB in #107
  • Added: Highlight registers in columns separately (#71)
    • This matches the behavior of decomp.me and the CLI.
  • Fixed: report: Exclude "hidden" functions (#111)

Thanks to @evdunbar, objdiff is now available in the Arch User Repository (AUR)!
aur/objdiff to build from source
aur/objdiff-bin to use the prebuilt releases

Full Changelog: v2.0.0...v2.1.0