Skip to content

Commit

Permalink
yay
Browse files Browse the repository at this point in the history
  • Loading branch information
ethteck committed Oct 19, 2024
1 parent 815259f commit 08fb43a
Show file tree
Hide file tree
Showing 16 changed files with 451 additions and 399 deletions.
41 changes: 15 additions & 26 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 23 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,39 @@ A(nother) binary diff tool, targeted toward decompilation and modding projects.
![image of bdiff UI](screenshot.png)

## Features

- Automatic reload of opened files on change
- Pairwise byte diff display (vbindiff style)
- String, data viewer for various formats and encodings
- Support for displaying symbol information from binaries by parsing .map files via [mapfile_parser](https://github.com/Decompollaborate/mapfile_parser)
- Support for displaying symbol information from binaries by parsing .map files
via [mapfile_parser](https://github.com/Decompollaborate/mapfile_parser)

bdiff is currently in the very early stages of development. See the [issues](https://github.com/ethteck/bdiff/issues) for planned features.
bdiff is currently in the very early stages of development. See the [issues](https://github.com/ethteck/bdiff/issues)
for planned features.

## Why?

There's a million other hex viewers out there. Most people in the game decompilation scene use vbindiff, a very dependable but somewhat feature-sparse tool. Over the years, I've started wishing for little things here and there that I wish it could do, and I've also been looking to learn Rust.
There's a million other hex viewers out there. Most people in the game decompilation scene use vbindiff, a very
dependable but somewhat feature-sparse tool. Over the years, I've started wishing for little things here and there that
I wish it could do, and I've also been looking to learn Rust.

## Configuration

To provide a more convenient experience, projects can specify a "bdiff.json" configuration file which defines a startup configuration for the program. An example config follows:
To provide a more convenient experience, projects can specify a "bdiff.json" configuration file which defines a
workspace configuration for the program. An example config follows:

```
```yaml
{
"files": [
{
"path": "C:\\somethin.z64",
"map": "C:\\somethin.map"
},
{
"path": "C:\\another.z64",
"map": "C:\\another.map"
}
]
"files": [
{
"path": "C:\\somethin.z64",
"map": "C:\\somethin.map",
},
{
"path": "C:\\another.z64",
"map": "C:\\another.map",
}
]
}
```

Expand All @@ -42,4 +48,5 @@ So far, the configuration format simply consists of a list of files to open (`fi
For each file, there are two fields:

* `path`: The path to the file
* `map` (optional): The path to a GNU ld or Clang lld .map file, to be parsed so symbol information is displayed in the viewer
* `map` (optional): The path to a GNU ld or Clang lld .map file, to be parsed so symbol information is displayed in the
viewer
4 changes: 2 additions & 2 deletions app/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ edition = "2021"
authors = ["Ethan Roseman <ethteck@gmail.com>"]
license = "MIT"
repository = "https://github.com/ethteck/bdiff"
readme = "README.md"
readme = "../README.md"
description = """
A(nother) binary diffing tool
"""
Expand All @@ -21,7 +21,7 @@ eframe = { version = "0.29.1", features = ["persistence"] }
egui-modal = "0.5.0"
egui-phosphor = "0.7.3"
encoding_rs = "0.8.34"
bdiff_hex_view = { version = "0.9.0", path="../hex_view" }
bdiff_hex_view = { version = "0.9.0", path = "../hex_view" }
iset = "0.3.0"
log = "0.4.22"
mapfile_parser = "2.7.1"
Expand Down
Loading

0 comments on commit 08fb43a

Please sign in to comment.