Update README.md

This commit is contained in:
Aetias 2024-06-01 14:02:51 +02:00
parent 543bff727e
commit 8bbfcc6f45

View File

@ -6,6 +6,7 @@
A local diffing tool for decompilation projects. Inspired by [decomp.me](https://decomp.me) and [asm-differ](https://github.com/simonlindholm/asm-differ). A local diffing tool for decompilation projects. Inspired by [decomp.me](https://decomp.me) and [asm-differ](https://github.com/simonlindholm/asm-differ).
Features: Features:
- Compare entire object files: functions and data. - Compare entire object files: functions and data.
- Built-in symbol demangling for C++. (CodeWarrior, Itanium & MSVC) - Built-in symbol demangling for C++. (CodeWarrior, Itanium & MSVC)
- Automatic rebuild on source file changes. - Automatic rebuild on source file changes.
@ -14,9 +15,11 @@ Features:
- Click to highlight all instances of values and registers. - Click to highlight all instances of values and registers.
Supports: Supports:
- PowerPC 750CL (GameCube, Wii) - PowerPC 750CL (GameCube, Wii)
- MIPS (N64, PS1, PS2, PSP) - MIPS (N64, PS1, PS2, PSP)
- x86 (COFF only at the moment) - x86 (COFF only at the moment)
- ARM (DS)
See [Usage](#usage) for more information. See [Usage](#usage) for more information.
@ -58,40 +61,30 @@ file as well. You can then add `objdiff.json` to your `.gitignore` to prevent it
```json5 ```json5
// objdiff.json // objdiff.json
{ {
"custom_make": "ninja", custom_make: "ninja",
"custom_args": [ custom_args: ["-d", "keeprsp"],
"-d",
"keeprsp"
],
// Only required if objects use "path" instead of "target_path" and "base_path". // Only required if objects use "path" instead of "target_path" and "base_path".
"target_dir": "build/asm", target_dir: "build/asm",
"base_dir": "build/src", base_dir: "build/src",
"build_target": true, build_target: true,
"watch_patterns": [ watch_patterns: ["*.c", "*.cp", "*.cpp", "*.h", "*.hpp", "*.py"],
"*.c", objects: [
"*.cp",
"*.cpp",
"*.h",
"*.hpp",
"*.py"
],
"objects": [
{ {
"name": "main/MetroTRK/mslsupp", name: "main/MetroTRK/mslsupp",
// Option 1: Relative to target_dir and base_dir // Option 1: Relative to target_dir and base_dir
"path": "MetroTRK/mslsupp.o", path: "MetroTRK/mslsupp.o",
// Option 2: Explicit paths from project root // Option 2: Explicit paths from project root
// Useful for more complex directory layouts // Useful for more complex directory layouts
"target_path": "build/asm/MetroTRK/mslsupp.o", target_path: "build/asm/MetroTRK/mslsupp.o",
"base_path": "build/src/MetroTRK/mslsupp.o", base_path: "build/src/MetroTRK/mslsupp.o",
"reverse_fn_order": false reverse_fn_order: false,
}, },
// ... // ...
] ],
} }
``` ```
@ -132,7 +125,7 @@ If not specified, objdiff will use the default patterns listed above.
> Required if `path` is not specified. > Required if `path` is not specified.
> >
> `reverse_fn_order` _(optional)_: Displays function symbols in reversed order. > `reverse_fn_order` _(optional)_: Displays function symbols in reversed order.
Used to support MWCC's `-inline deferred` option, which reverses the order of functions in the object file. > Used to support MWCC's `-inline deferred` option, which reverses the order of functions in the object file.
## Building ## Building
@ -150,8 +143,8 @@ $ cargo run --release --features wgpu
Licensed under either of Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) - Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) - MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option. at your option.