Luke Street and GitHub
fbdaa89cc0
Refactor data diffing & expose WASM API ( #256 )
...
* Refactor data diffing & expose WASM API
* Update test snapshots
2025-09-07 18:59:46 -06:00
Luke Street and GitHub
741d93e211
Add 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: https://github.com/encounter/dtk-template/commit/d1334bb79e71af1a7b3b090bffda4adc483f722c )
Resolves #117
2024-10-09 21:44:18 -06:00
Luke Street
9710ccc38a
Add graphics backend configuration
...
Hopefully #74 , #73 , #56
2024-06-05 18:01:03 -06:00
Luke Street
79cd460333
Update notify-rs to fix WSL crash
...
Fixes #66
2024-06-04 17:13:54 -06:00
Luke Street
fc54e93681
API updates for ARM backend
2024-06-03 19:37:48 -06:00
Luke Street
c9b11db2fa
Update README.md
2024-06-03 19:09:35 -06:00
Luke Street
425dc8546b
More descriptive message for build failure
...
Resolves #64
2024-06-03 19:06:19 -06:00
Luke Street
9e04357d9f
Use solid scrollbar in egui
...
Resolves #69
2024-06-03 19:03:33 -06:00
Luke Street
6037c12ad0
Disable lto to workaround crash
...
See #66
2024-06-03 18:58:25 -06:00
Luke Street
b15f643713
Bump version to 2.0.0-alpha.3
2024-06-03 18:54:46 -06:00
Luke Street
3f82c1a50f
objdiff-core API adjustments
...
- Allows using process_code without
constructing an ObjInfo
- Allows creating an arch without
having to provide an object
Used in decomp-toolkit
2024-06-03 18:52:32 -06:00
Luke Street
0ea6242669
Bump rabbitizer version (fixes crash)
2024-06-03 18:50:22 -06:00
Luke Street
0c20a0d9cd
Update README.md
2024-05-21 18:12:58 -06:00
Luke Street
f30b3cfae2
Default "Space between args" -> true
2024-05-21 18:09:46 -06:00
Luke Street
9e57a66a05
Auto-detect MIPS ABI/category & add config
...
Under Diff Options -> Arch Settings, one
can override the ABI/instruction category
2024-05-21 18:06:14 -06:00
Luke Street
e254af5acf
Support bss and text section diffing
...
Display section diff % in symbols view
2024-05-21 12:02:00 -06:00
Luke Street
7148b51fe0
x86: Handle IMAGE_REL_I386_REL32 LabelAddress
...
Resolves #57
2024-05-21 10:16:45 -06:00
Luke Street
dc0c170db9
Add .obj to object select filter
...
Resolves #54
2024-05-21 10:12:40 -06:00
Luke Street
94f1f07b00
Bump to 2.0.0-alpha.1 & fix version checks
2024-05-21 09:55:45 -06:00
Luke Street
22a24f37f5
Diff data symbols & improve symbol match logic
2024-05-20 23:53:37 -06:00
Luke Street
5bfaaaaf65
Instruction hover / context menu improvements
2024-05-20 17:38:20 -06:00
Luke Street
660e6c879e
Update README.md
2024-05-15 19:01:55 -06:00
Luke Street
3e5008524e
cargo fmt & cargo deny fix
2024-04-30 20:45:45 -06:00
Luke Street
2c46286aff
Update all dependencies & use ppc750cl InsIter
2024-04-30 20:06:04 -06:00
Luke Street
106652ae7d
Fix PPC branch display; update README.md
2024-03-22 23:06:41 -06:00
Luke Street
30d14870ef
Update ppc750cl, add Itanium demangler & cleanup
2024-03-21 21:36:50 -06:00
Luke Street
e7991cb28d
cargo fmt
2024-03-18 22:56:57 -06:00
Luke Street
4dfc28fc68
Diff cleanup & fixes
2024-03-18 22:56:13 -06:00
Luke Street
3c74b89f15
Restructure diffing code & initial 3-way diffing (WIP)
2024-03-18 18:10:18 -06:00
Luke Street
1343f4fd2b
cargo fmt
2024-03-17 12:20:25 -06:00
Luke Street
9df98f263e
Move all architecture-specific code into modules
...
No more scattered relocation handling and
feature checks. Everything will go through
the ObjArch trait, which makes it easier
to add new architectures going forward.
2024-03-17 12:16:47 -06:00
Luke Street
bbe49eb8b4
Initial x86 support
...
Includes a bit of work to make adding new
architectures easier in the future
2024-03-16 23:30:27 -06:00
Luke Street
aecb078b2a
ci: Update sccache-action version
2024-03-13 18:34:28 -06:00
Luke Street
a5668b484b
Update all dependencies
2024-03-13 18:20:46 -06:00
Luke Street
ef41e393d4
Resolve dependency advisories
2024-03-04 18:19:08 -07:00
Luke Street
20e42a499a
Rework .splitmeta, now .note.split
...
Uses actual ELF .note format, which is
more standard and handled better by mwld.
2024-03-04 18:06:21 -07:00
Luke Street
c39795ae2c
Use actual decomp.me host
2024-03-04 18:03:32 -07:00
Luke Street
49ee9b44aa
Remove "Algorithm" menu item
2024-03-04 18:03:20 -07:00
Luke Street
3b1249e1ab
objdiff-cli diff: Add horizontal scrolling
2024-03-01 01:30:47 -07:00
Luke Street
cb13638e07
objdiff-cli: Migrate to ratatui for rendering
2024-03-01 01:03:17 -07:00
Luke Street
5b9ac93c08
ci: Build both objdiff-cli and objdiff-gui
2024-02-28 21:52:35 -07:00
Luke Street
39a13f4d36
objdiff-cli diff & report changes, support .splitmeta object section
...
- Add `objdiff-cli report changes` for diffing two reports
- Unify some click-to-highlight logic between CLI and GUI
- Load .splitmeta section for extra object metadata (original virtual addr, etc)
- More work on objdiff-cli diff
2024-02-28 21:44:53 -07:00
Luke Street
fb24063c54
objdiff-cli diff: Click-to-highlight & build fixes
2024-02-27 22:52:18 -07:00
Luke Street
9a7d2bcebf
Experimental objdiff-cli (WIP)
2024-02-27 18:47:51 -07:00
Luke Street
4eba5f71b0
Split into objdiff-core / objdiff-gui; update egui to 0.26.2
2024-02-26 18:48:48 -07:00
Luke Street
0a85c498c5
Version 1.0.0
2024-01-22 00:32:54 -07:00
Luke Street
c2fcf2797b
Export function to decomp.me scratch (beta)
2024-01-22 00:31:43 -07:00
Luke Street
e88a58ba39
Option to relax relocation diffs
...
Ignores differences in relocation targets. (Address, name, etc)
Resolves #34
2024-01-22 00:14:03 -07:00
Luke Street
02f521a528
Disable more options when project config is loaded
2024-01-21 23:58:10 -07:00
Luke Street
197d1247a8
Highlight: Consider uimm/simm/offset all equivalent
...
Fixes #33
2024-01-21 23:48:12 -07:00
Luke Street
eef9598e76
Add DWARF 2+ line info support
...
Resolves #37
2024-01-21 23:38:52 -07:00
Luke Street
405a2a82db
Upgrade all dependencies (+ egui/eframe 0.25.0)
2024-01-20 23:41:48 -07:00
Luke Street
4cdad8a519
Re-enable wgpu and wsl features; rework WSL config
...
Improve build failure log view & add copy buttons
2024-01-20 23:29:05 -07:00
Luke Street and Luke Street
e1079db93a
Add font loading & configuration
2023-11-28 23:13:51 -05:00
Luke Street and GitHub
67cea2a8d9
Update README.md
2023-11-24 23:17:35 -05:00
Luke Street
e4f97adbdd
Version 0.6.1
2023-11-22 00:11:33 -05:00
Luke Street
0ec7bf078b
Highlight: Consider reg offsets and signed immediates equivalent
...
Fixes #32
2023-11-22 00:07:21 -05:00
Luke Street
74e89130a8
Repaint rework: more responsive, less energy
...
Previously, we repainted every frame on Windows at full refresh rate.
This is an enormous waste, as the UI will be static most of the time.
This was to work around a bug with `rfd` + `eframe`.
On other platforms, we only repainted every frame when a job was running,
which was better, but still not ideal. We also had a 100ms deadline, so
we'd repaint at ~10fps minimum to catch new events (file watcher, jobs).
This removes all repaint logic from the main loop and moves it into the
individual places where we change state from another thread.
For example, the file watcher thread will now immediately notify egui
to repaint, rather than relying on the 100ms deadline we had previously.
Jobs, when updating their status, also notify egui to repaint.
For `rfd` file dialogs, this migrates to using the async API built on top of
a polling thread + `pollster`. This interacts better with `eframe` on Windows.
Overall, this should reduce repaints and improve responsiveness to
file changes and background tasks.
2023-11-21 14:34:26 -05:00
Luke Street
236e4d8d26
CI updates, update deny.toml, clippy fix
2023-11-21 12:16:15 -05:00
Luke Street
b900ae5a00
Disable WSL integration
...
With WSL, objdiff is unable to get filesystem notifications.
It's recommended to run objdiff natively on Windows, so having this option
is more confusing than useful.
2023-11-21 12:15:41 -05:00
Luke Street
261e1b8e07
Upgrade all dependencies
2023-11-21 11:57:02 -05:00
Luke Street
a29e913b45
Add "Incomplete" filter to object tree
...
Allows filtering out objects marked as "complete".
2023-11-21 11:50:11 -05:00
Luke Street
49257dc73c
Better logic to reload previous file on app start
...
Before, if "Rebuild on changes" was disabled, the last file
wouldn't be properly loaded when starting.
2023-11-21 11:49:26 -05:00
Luke Street
dc9eec66b0
Configurable diff algorithms & new default algorithm
...
Uses the similar crate to support new diff algorithms:
- Patience (new default)
- Levenshtein (old default)
- Myers
- LCS (Longest Common Subsequence)
Options in "Diff Options" -> "Algorithm..."
2023-11-21 11:48:18 -05:00
Luke Street
7b58f9a269
Adjust "Diffable" to exclude missing target objects
2023-10-09 12:47:22 -04:00
Luke Street
d9e7dacb6d
Version 0.5.1
2023-10-07 14:49:01 -04:00
Luke Street
04b4fdcd21
Reload objects when changed externally
...
Uses file modification timestamp polling for project config and objects to avoid unneeded complexity from the filesystem notification watcher.
Allows disabling `build_base` as well for projects using an external build system.
2023-10-07 14:48:34 -04:00
Luke Street
803eaafee6
Hide hidden symbols by default; add "Diff Options" to menu
2023-10-07 13:27:12 -04:00
Luke Street
e1dc84698f
Restore context menu on highlightable fields
...
Fixes #30
2023-10-07 13:04:08 -04:00
Luke Street
e68629c339
Update ppc750cl (subi{,s,c} mnemonics, capstone-style CR bits)
2023-10-06 01:22:26 -04:00
Luke Street
bb9ff4b928
Update all dependencies
2023-10-05 23:55:01 -04:00
Luke Street
57392daaeb
Implement click-to-highlight
...
Highlights registers, instructions, arguments, symbols or addresses on click.
Resolves #7
2023-10-05 23:40:45 -04:00
Luke Street
2dd3dd60a8
Update webpki (advisory fix)
2023-10-05 00:01:09 -04:00
Luke Street
f4757b8d92
Version 0.4.4
...
Add `#[serde(default)]` to new AppConfig field
2023-10-04 23:52:00 -04:00
Luke Street
711f40b591
I forgot to bump the Cargo.toml version, oops
2023-09-10 00:24:53 -04:00
Luke Street
26932b2e44
Support min_version field in objdiff.json
2023-09-09 23:54:25 -04:00
Luke Street
192a06bc0b
Project configuration improvements
...
- 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 AppConfig, supporting upgrades without losing user configuration.
2023-09-09 23:43:12 -04:00
Luke Street
5bfa47fce9
Update webpki, rustls-webpki
2023-09-03 09:42:26 -04:00
Luke Street
1d9b9b6893
clippy fix
2023-09-03 09:31:12 -04:00
Luke Street
6b8e469261
Project configuration fixes & improvements
...
- Allow config to specify object "target_path" and "base_path" explicitly, rather than relying on relative path from the "target_dir" and "base_dir". Useful for more complex directory layouts.
- Fix watch_patterns in project config not using default.
- 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.
2023-09-03 09:28:46 -04:00
Luke Street
21cdf268f0
Update README.md
2023-08-12 14:41:19 -04:00
Luke Street
3970bc8acf
Document configuration file & more cleanup
2023-08-12 14:18:09 -04:00
Luke Street
eaf0fabc2d
Updates to Objects pane & config improvements
2023-08-09 21:53:04 -04:00
Luke Street
91d11c83d6
Refactor state & config structs, various cleanup
2023-08-09 21:53:04 -04:00
Luke Street
94924047b7
Job state handling cleanup
2023-08-09 19:39:06 -04:00
Luke Street
b02e32f2b7
Add dark/light theme toggle (light theme WIP)
2023-07-15 11:17:59 -04:00
Luke Street
c7a326b160
Update all dependencies (again)
2023-07-06 10:37:57 -04:00
Luke Street
100f8f8ac5
Update all dependencies
2023-05-11 02:47:57 -04:00
Luke Street
2f778932a4
Version 0.3.1
2023-02-06 17:40:42 -05:00
Luke Street
42601b4750
Update cwdemangle
2023-02-06 17:40:42 -05:00
Luke Street
636a8e00c5
Fix diffing across mismatched .text sections
2023-02-06 17:40:42 -05:00
Luke Street
319b1c35c0
Move reverse_fn_order into ViewConfig
2023-01-21 13:01:21 -05:00
Luke Street
634e007cbc
Update default configuration
2023-01-21 12:59:46 -05:00
Luke Street
6ee11ca640
Add optional wgpu feature
2023-01-21 12:56:29 -05:00
Luke Street
8278d5d207
Support MIPS PIC relocations
2023-01-21 12:41:41 -05:00
Luke Street
09bbc534bd
Remove debug print
2023-01-21 10:52:21 -05:00
Luke Street
fa28352e08
Fix MIPS operands with base
2023-01-21 10:49:47 -05:00
Luke Street
2ab519d361
Update rabbitizer, deny.toml
2023-01-21 01:36:32 -05:00
Luke Street
500965aacb
Clippy fix
2023-01-21 01:14:16 -05:00
Luke Street
a8c2514377
Changes for egui/object upgrades
2023-01-21 01:13:20 -05:00