Luke Street
9f37d99fbd
[WIP] OMF object support
2025-09-25 00:50:35 -06:00
Luke Street
90e81fad7e
Improve ARM function size inference
...
This allows 2-byte padding to be trimmed in ARM functions.
Resolves #253
2025-09-25 00:26:43 -06:00
Luke Street
7a8efb4c88
Version v3.3.0
2025-09-23 13:09:57 -06:00
Luke Street and GitHub
56dac46280
Support overriding diff options in project config (& for individual units) ( #263 )
...
* Support loading diff options from project config
* Support per-unit option overrides
2025-09-23 12:11:40 -06:00
Luke Street
1866158092
Add 'None' demangler option
2025-09-22 23:31:57 -06:00
Luke Street
97bcfe23d4
Update test snapshots
2025-09-08 22:40:51 -06:00
Luke Street
d684b622b5
Version v3.2.1
2025-09-08 22:37:02 -06:00
Luke Street
c698750068
Use dim color for address column in asm view
2025-09-08 22:32:52 -06:00
Luke Street
f7cb494a62
Version v3.1.1
2025-09-07 11:32:43 -06:00
Luke Street
a138dfa907
Gracefully handle OOB in symbol_context/symbol_hover
...
Resolves decomp.me#1576
2025-09-02 19:11:07 -06:00
Luke Street
5d4b33a500
Update README.md & config.schema.json
2025-08-30 23:56:46 -06:00
Luke Street
8d24ec6373
Detect x86 instruction size differences
...
Check raw code length when instructions have same disassembly
but different encodings. Marks as OpMismatch to indicate
encoding difference.
Fixes #242
Fixes #233
2025-08-30 22:57:39 -06:00
Luke Street
58430d947b
ci: Remove quotes from CARGO_ZIGBUILD_ZIG_PATH
2025-08-30 15:49:14 -06:00
Luke Street
1533125f9d
Resolve objdiff-wasm clippy warnings
2025-08-30 15:02:10 -06:00
Luke Street
5654060dc8
ci: Use uv tool instead of venv
2025-08-30 15:02:10 -06:00
Luke Street
84079c3934
objdiff-wasm build improvements
2025-08-30 15:02:10 -06:00
Luke Street
678210d58a
Change file watcher log message to debug
2025-08-15 16:38:06 -06:00
Luke Street
4302821615
Fix Windows build
2025-08-15 16:31:33 -06:00
Luke Street
c4b4244b59
Version v3.0.0
2025-08-15 16:27:27 -06:00
Luke Street
52c138bf06
Add "ignore_patterns" option to config
...
This allows explicitly ignoring changes to certain
files or directories, even if the changed file ends
up matching `watch_patterns`. The default value,
`build/**/*` will ensure that changes in the build
directory will not trigger a duplicate rebuild.
Resolves #143
Resolves #215
2025-08-15 16:24:26 -06:00
Luke Street
813c8aa539
Add "Diff fill color" option to Appearance
...
Allows configuring the background color of
lines with a diff.
Resolves #230
2025-08-15 15:43:23 -06:00
Luke Street
0f0aaab795
Fix WSL path handling
...
Resolves #170
2025-08-15 15:34:58 -06:00
Luke Street
b21892be31
Add CLI args to objdiff-gui (incl. --project-dir/-p)
...
Resolves #41
Resolves #211
2025-08-15 15:25:55 -06:00
Luke Street
247d6da94b
Restore extab diff view
2025-08-15 15:06:16 -06:00
Luke Street
bd95faa9c3
Remove objdiff-cli diff JSON output mode
...
This has been unimplemented since v3.0.0-alpha.1,
and I don't currently have plans to bring it back.
If you need it for something, please open an issue!
2025-08-15 14:57:34 -06:00
Luke Street
2c57e4960f
Add ARM logic for inferred function size padding
...
Resolves #237
2025-08-15 14:48:26 -06:00
Luke Street
cff4be2979
Update gimli, object
...
Resolves #228
2025-08-15 14:47:06 -06:00
Luke Street
a015971c20
Use deprecated egui::menu as temp workaround
...
egui 0.32 refactored menus, and now having a
ComboBox within the menu does not work properly.
Temporarily use the deprecated menu instead.
2025-08-02 13:34:10 -06:00
Luke Street
e67d5998b3
Enable PS instructions for any 32-bit PPC ELF
...
Fixes an issue where ProDG for GameCube objects
were not enabling PS instruction support.
2025-08-02 11:36:35 -06:00
Luke Street
91bc23edfc
Fix objdiff-wasm build
2025-08-02 11:32:04 -06:00
Luke Street
c9c3b32376
Use let chains (a.k.a. cargo clippy --fix)
2025-08-02 11:27:28 -06:00
Luke Street
0dc123b064
Don't fail on line info parsing; use gimli::RelocateReader
...
Workaround for #228
2025-08-02 11:27:28 -06:00
Luke Street
1e62d4664c
Make function size inference logic arch-specific
...
For MIPS, account for delay slot nops. For x86,
check for trailing nops (0x90). For PPC, check
for 4-byte 0x00 padding.
Resolves #229
2025-08-02 10:56:26 -06:00
Luke Street
1205e8ceb4
Version v3.0.0-beta.12
2025-07-29 21:31:12 -06:00
Luke Street
c917cad5f0
Strip zeros from end of inferred function sizes
...
Resolves #3
2025-07-29 21:20:47 -06:00
Luke Street
dd653329f5
Fix reading IMAGE_REL_PPC_REFHI/REFLO without PAIR
2025-07-29 20:58:34 -06:00
Luke Street
f5d3d5f10a
gui: Split OpenGL into OpenGL (glow), OpenGL ES (wgpu)
2025-07-29 20:49:09 -06:00
Luke Street
c327ed3ea8
Update to egui 0.32 (& update all deps)
2025-07-28 17:30:52 -06:00
Luke Street
00ad0d8094
Support PPC64 ELFs (PS3); refactor relocation processing
2025-07-21 21:01:03 -06:00
Luke Street
8fac63c42c
Remove temporary test
2025-07-17 21:23:12 -06:00
Luke Street
0fb7f3901c
Add PPC COFF tests; fix IMAGE_REL_PPC_PAIR handling
2025-07-17 21:19:16 -06:00
Luke Street
60b227f45e
Support PowerPC COFF (Xenon, Xbox 360)
...
ppc750cl is superseded by the powerpc crate, which
supports PPC64, AltiVec and VMX128 extensions.
2025-07-17 13:33:12 -06:00
Luke Street
5f48e69775
More clippy fixes
2025-07-07 15:29:30 -06:00
Luke Street
8756eee07b
clippy fixes & version bump
2025-07-07 14:56:41 -06:00
Luke Street
bd3ed0d5ad
Version v3.0.0-beta.10
2025-06-17 13:03:14 -06:00
Luke Street
dab79d96a1
Version v3.0.0-beta.9
2025-05-27 21:32:57 -06:00
Luke Street
a57e5db983
WASM API updates, support symbol mapping
2025-05-27 21:31:29 -06:00
Luke Street
f7c3501eae
Version v3.0.0-beta.8
2025-05-13 23:15:46 -06:00
Luke Street
07ef93f16a
Ignore extern symbols with symbol name lookups
...
When searching for a symbol by name, only look at
symbols that are defined within the object,
ignoring extern symbols (symbols without section).
Fixes #180
Fixes #181
2025-05-13 22:51:26 -06:00
Luke Street
8e8ab6bef8
Skip label symbols when inferring symbol sizes
...
COFF objects in particular don't contain the size of
symbols. We infer the size of these symbols by
extending them to the next symbol. If a tool emits
symbols for branch targets, this causes the inferred
size to be too small.
This checks if a symbol starts with a certain prefix
(right now, just .L or LAB_), and skips over it
during symbol size inference.
Resolves #174
2025-05-13 22:36:02 -06:00
Luke Street
e865f3d598
Fix symbol mapping mismatched match %
...
We have specific diff logic that relies on knowing
which object is the target object, and which is the
base. generate_mapping_symbols was designed in such
a way that it would reverse the target/base, leading
to a match percent shown that's different when it
gets applied.
Fixes #200
2025-05-13 21:57:16 -06:00
Luke Street
2b13e9886a
Fix hidden symbol regression
...
The flagset .contains check doesn't work like this.
Fixes #199
2025-05-13 21:37:29 -06:00
Luke Street
1750af736a
Try target-feature=+crt-static
2025-05-13 21:28:57 -06:00
Luke Street
2d643eb071
Add scratch.preset_id to config.schema.json
2025-05-09 12:51:18 -06:00
Luke Street
0c48d711c7
Improve local branch relocation handling
...
Reworks the local-branch handling logic to be more
unified: scan_instructions does all the work up front,
and process_instruction / display_instruction can
simply use the calculated branch destination instead
of performing their own is-relocation-target-
function-local checks.
(Hopefully) Fixes #192
2025-05-07 22:53:10 -06:00
Luke Street
34220a8e26
Add address to ReportItem, stabilize sections/functions ordering
2025-05-07 17:36:49 -06:00
Luke Street
0c9e5526d4
Combine sections when generating report
2025-05-07 16:47:20 -06:00
Luke Street
3db0727469
Omit match % for right sections, improve multi-section diffing
...
Fixes #120
2025-05-07 16:47:20 -06:00
Luke Street
8b5bf21f38
Mark combined sections as SectionKind::Unknown
2025-05-07 16:45:00 -06:00
Luke Street
b77df77000
Minor cleanup, remove Section::symbol_data
2025-05-07 16:43:34 -06:00
Luke Street
7e08f9715b
Update dependencies
2025-05-07 16:42:02 -06:00
Luke Street
3c05852d00
Document SuperH support
2025-05-06 23:25:29 -06:00
Luke Street
a51ff44be1
Fix superh wasm (no_std) build
2025-05-06 23:21:07 -06:00
Luke Street
d225cac205
Add superh feature to wasm build
2025-05-06 23:14:38 -06:00
Luke Street
737b3782db
ci: Add id-token write permission
2025-05-06 22:51:11 -06:00
Luke Street
a1499f475d
Update test snapshot
2025-05-06 22:07:21 -06:00
Luke Street
39b1b49985
cli: Add --config arg to report generate
2025-04-22 18:13:12 -06:00
Luke Street
6c7160ab7e
Use rabbitizer 2.0.0-alpha.1
2025-04-22 18:13:12 -06:00
Luke Street
73a89d2768
Version v3.0.0-beta.6
2025-04-02 11:03:40 -06:00
Luke Street
a162c2f840
Fix to_string_in_format_args warning
2025-04-01 23:36:47 -06:00
Luke Street
a474b27d55
Update dependencies
2025-04-01 23:33:17 -06:00
Luke Street
3d7f2b70dc
Replace some git dependencies with cargo registry
2025-04-01 22:56:16 -06:00
Luke Street
fe886f862d
ci: Auto cargo publish / npm publish
2025-04-01 21:49:01 -06:00
Luke Street
2bcbc34850
wasm: Improve API error handling
2025-04-01 21:45:13 -06:00
Luke Street
7b00a9e9f2
wasm: Cache objects via data hash (XXH3)
2025-03-21 08:27:19 -06:00
Luke Street
311de887ec
Update test snapshot
2025-03-19 19:00:57 -06:00
Luke Street
485b259c32
Apply clippy suggestion
2025-03-19 19:00:01 -06:00
Luke Street
d8fdfaa2c0
Fix no_std build
2025-03-19 18:57:41 -06:00
Luke Street
2612cda1fb
objdiff-cli report: Skip unknown sections
...
Regression in v3.0.0-alpha.1
Fixes #171
2025-03-19 18:54:34 -06:00
Luke Street
bc46e17824
x86_64: Fix relocation placement in instruction
2025-03-19 18:54:34 -06:00
Luke Street
e735adbd3d
x86: Support inline data for jumptables
2025-03-19 18:54:34 -06:00
Luke Street
6768df9d80
Version v3.0.0-beta.4
2025-03-18 21:36:37 -06:00
Luke Street
eaba2391e0
arm: Fix thumb & data decoding, add tests
2025-03-18 21:26:28 -06:00
Luke Street
bd8f5ede23
Add pre-commit hooks
2025-03-18 21:26:28 -06:00
Luke Street
acf46c6b54
Fix no_std build
2025-03-14 09:49:31 -06:00
Luke Street
9358d8ec60
mips: Add C++ symbol demangling (CW & modern GCC)
2025-03-14 09:44:15 -06:00
Luke Street
809e2ffddc
cargo fmt
2025-03-11 21:43:32 -06:00
Luke Street
87fa29e8b0
objdiff-wasm: Fix symbol filtering
...
regex crate needed the `unicode-case` feature
2025-03-11 21:42:14 -06:00
Luke Street
42d4c38079
mips: Ignore .NON_MATCHING functions from INLINE_ASM macros
2025-03-11 21:39:17 -06:00
Luke Street
fa26200ed7
Silence warning
2025-03-10 22:22:05 -06:00
Luke Street
a0e7f9bc37
Fix x86 mov relocations with uint32
2025-03-10 22:09:58 -06:00
Luke Street
5898d7aebf
Fix section ordering with many same-named sections
...
Before, this was comparing, for example, `.text-2`
with `.text-10` with standard string comparison,
yielding `.text-10` before `.text-2`.
Instead, this simply uses a stable sort by name,
which preserves the relative ordering of sections.
2025-03-10 21:51:54 -06:00
Luke Street
ffb38d1bb0
Fix cargo deny advisories
2025-03-09 22:59:42 -06:00
Luke Street
d56dda72f0
Version v3.0.0-beta.2
2025-03-09 22:56:28 -06:00
Luke Street
c6971f3f2d
Add initial support for x86-64 relocations
2025-03-09 22:51:43 -06:00
Luke Street
3965a035fa
objdiff-cli diff: Show build errors/log
2025-03-09 22:51:43 -06:00
Luke Street
f1fc29f77e
Split report changes into separate proto
2025-03-08 14:39:15 -07:00
Luke Street
7c4f1c5d13
Fix left/right arch mismatches in diff code
2025-03-08 10:44:44 -07:00
Luke Street
fa4a6cadbb
Downgrade objdiff-wasm Rust edition temporarily
2025-03-04 23:27:17 -07:00
Luke Street
799971d54e
Migrate to Rust edition 2024
2025-03-04 22:31:38 -07:00