Releases: encounter/objdiff
v1.0.0
objdiff has reached v1.0! 🎉
- Added: Export function to decomp.me scratch (beta)
- Documentation coming soon!
- Added: Extended font configuration: load any system font
- Added: DWARF 2+ line info support (#37)
- Added: Option to relax relocation diffs: ignores differences in relocation targets. (Address, name, etc) (#34)
- Fixed: Highlight: Consider uimm/simm/offset all equivalent (#33)
- Changed: Re-enable
wgpu
. This goes back towgpu
(D3D12, Metal, Vulkan, OpenGL/ES) overglow
(OpenGL ES). - Changed: Re-enable
wsl
. This restores the WSL2 configuration option, moved into project settings.
Full Changelog: v0.6.1...v1.0.0
v0.6.1
- Fixed: Minor fix for click-to-highlight (#32)
Full Changelog: v0.6.0...v0.6.1
v0.6.0
- Added: A new default diff algorithm, and the ability to switch between algorithms. (See below)
- Added: An "Incomplete" filter to the object list. Allows filtering out objects marked as "complete".
- Fixed: Excessive repaints (especially on Windows). The app should use significantly less resources and be more responsive to file changes.
- Fixed: Loading the last file on start when "Rebuild on changes" is disabled.
- Removed: "Run in WSL" option for the build system. This was janky and overall not recommended as opposed to running natively. If you used this feature, please let me know.
- Changed: Release builds of objdiff now use the glow (OpenGL) backend instead of wgpu. wgpu being enabled on release builds was unintentional, and adds unnecessary complexity/overhead.
- Primarily, this means that OpenGL is used instead of Vulkan on Linux, Metal on macOS, and D3D12 on Windows.
- If this causes issues or degrades performance for you, please create an issue.
Diff algorithms
New diff algorithms have been introduced, and a new default is now used for code and data:
- Patience (new default)
- Levenshtein (old default)
- Myers
- LCS (WARNING: slow & broken)
Compared to Levenshtein's space complexity of O(NM)
, Patience has a space complexity of O(N+M)
, meaning that much larger comparisons are possible (and faster, to boot). Previously, translation units with large data sections could easily eat up gigabytes of RAM or straight up crash with Levenshtein.
Change the active diff algorithm in "Diff Options" -> "Algorithm...".
Please try both Patience and Levenshtein and provide feedback on the change.
Full Changelog: v0.5.2...v0.6.0
v0.5.2
- Adjust "Diffable" to exclude missing target objects
Full Changelog: v0.5.1...v0.5.2
v0.5.1
- Restore context menu on highlightable fields (fixes #30).
- Hide hidden symbols by default.
- Add "Diff Options" to menu bar.
- Reload objects when changed externally.
- Allows disabling
build_base
as well for projects using an external build system.
Full Changelog: v0.5.0...v0.5.1
v0.5.0
- Adds click-to-highlight: Highlights registers, instructions, arguments, symbols or addresses.
- Adds "Original" instruction to hover tooltip, showing the non-simplified form of the instruction.
- Updates all dependencies.
- Resolves slowness when closing the application.
Full Changelog: v0.4.4...v0.5.0
v0.4.4
- Add "Recent Projects" to file menu
Full Changelog: v0.4.3...v0.4.4
v0.4.3
- Support
completed
field for objects in project config. In object tree, displays red for incomplete, green for complete. - Add support for one-sided diffs. A project can include objects without an associated source file for viewing.
- Add versioning to the app's configuration, supporting upgrades without losing user configuration.
- Support
min_version
field inobjdiff.json
.
Full Changelog: v0.4.1...v0.4.3
v0.4.1
- Allow config to specify object
target_path
andbase_path
explicitly, rather than relying on relative path from thetarget_dir
andbase_dir
. Useful for more complex directory layouts. - Fix
watch_patterns
in project config not using default when omitted. - Fix "Rebuild on changes" not defaulting to true.
- Keep watching project config updates even when "Rebuild on changes" is false.
- Disable some configuration options when loaded from project config file.
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- Added project configuration file support (
objdiff.json
,objdiff.yaml
,objdiff.yml
). See Configuration. - Added
Objects
pane when using a project configuration file. Quickly find and switch between objects.
- Reworked project settings UI.
- General system stability improvements to enhance the user's experience.
Full Changelog: v0.3.4...v0.4.0