Skip to content

Releases: encounter/objdiff

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

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