A local diffing tool for decompilation projects that compares object files and highlights assembly differences.
objdiff is a local diffing tool specifically designed for decompilation projects. It compares relocatable object files (`.o`) generated from decompiled source code against original target binaries, highlighting differences in assembly output to help developers verify accuracy. The tool automates rebuilding when source files change and supports a wide range of CPU architectures used in gaming consoles and PCs.
Reverse engineers and game modders working on decompilation projects for consoles like GameCube, Wii, N64, PS1, PS2, PSP, Switch, GBA, DS, 3DS, Saturn, Dreamcast, and PC platforms. It's also useful for developers contributing to open-source game reimplementations.
Developers choose objdiff because it automates the manual and error-prone process of comparing assembly output, provides an interactive GUI with features like click-to-highlight and filtering, and integrates directly into project build systems with automatic rebuilds. Its support for multiple architectures and symbol demangling makes it a versatile tool for cross-platform decompilation work.
A local diffing tool for decompilation projects
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports ARM, ARM64, MIPS, PowerPC, SuperH, x86, and x86_64, specifically targeting consoles like Switch, PS2, and GameCube, as listed in the README's architecture support.
Watches source files with configurable glob patterns and automatically rebuilds objects on changes, reducing manual steps in decompilation verification.
Offers click-to-highlight values and registers, search/filter for objects, and detailed progress reporting, enhancing efficiency in identifying assembly mismatches.
Uses an objdiff.json configuration file to define object paths and build settings, allowing adaptation to any project layout or build system.
The Visual Studio Code extension is marked as WIP in the README, meaning it may lack features or stability for seamless IDE integration.
Requires setting up an objdiff.json file, which can be tedious for projects without existing build scripts or generator tools, adding initial overhead.
Exclusively designed for relocatable object files (.o), making it unsuitable for general diffing tasks like source code comparisons or binary analysis beyond decompilation.