Skip to content

Releases: encounter/objdiff

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

v2.0.0

10 Sep 02:56
Compare
Choose a tag to compare

What's Changed

This release includes 111 commits, 28 PRs and 9 months of work since v1.0.0.

Thanks for the many contributions from @r-burns, @ribbanya, @AetiasHax, @cadmic, @CelestialAmber and @roblabla.

Previous release notes:

Full Changelog: v1.0.0...v2.0.0

v2.0.0-beta.6

05 Sep 06:02
Compare
Choose a tag to compare

What's Changed

  • Added: COFF line number support by @roblabla in #100
  • Added: objdiff.json schema (config.schema.json)
  • Added: Build objdiff-cli as a static binary on Linux and build for more architectures (c16a926)

Full Changelog: v2.0.0-beta.5...v2.0.0-beta.6

v2.0.0-beta.5

04 Sep 01:39
Compare
Choose a tag to compare

What's Changed

  • Added: Experimental wasm bindings (npm: objdiff-wasm)
    • Used for experimental decomp.me integration
  • Changed: Bump unarm to 1.5.0 by @AetiasHax in #98
  • Changed: Support progress categories & auto-generated objects in objdiff-cli report
    • New metadata block in objdiff.json units:
      "metadata": {
        "auto_generated": false,
        "complete": false,
        "reverse_fn_order": false,
        "source_path": "src/d/actor/d_a_movie_player.cpp",
        "progress_categories": [
          "modules",
          "game"
        ]
      }
    • Options complete and reverse_fn_order were moved to here from the unit itself.
    • Values are passed through to the report.json.

Full Changelog: v2.0.0-beta.4...v2.0.0-beta.5

v2.0.0-beta.4

19 Aug 04:19
Compare
Choose a tag to compare

What's Changed

  • Breaking: objdiff-cli report's output format has changed. It's now defined using a protobuf definition, and uses proto 3 JSON mapping. Primarily, u64 numbers are now represented as decimal strings, and some fields were moved.
    • objdiff-cli report now accepts a --format/-f argument to switch between json and proto (binary protobuf) output.
  • Added: Support R_MIPS_LITERAL, R_MIPS15_S3 relocations (#92, #95)

Full Changelog: v2.0.0-beta.3...v2.0.0-beta.4