objdiff now supports ARM, and this PR integrates it into our decompilation procedure. The most notable advantages to objdiff are:
Decompiling and matching functions in any order
Diffing the data sections
This does not obsolete decomp.me, but rather gives us the ability to diff and match entire object files as opposed to individual functions. In fact, we can still use decomp.me for collaborative decompilation by using the "Export to decomp.me" button in objdiff.
In practice, this entails the following changes to this project:
The Makefile automatically generates context files for the decomp.me export feature.
#ifdef STUBS directives have been removed and lcf.py no longer lists C/C++ files that haven't been matched yet.
This means that the Assembly files are still built into the ROM and you no longer remove functions from it one at a time, as that would exclude the function from being diffed in objdiff.
When an object file has been 100% matched in objdiff, we can replace the Assembly file with the C/C++ file in lcf.py and rebuild the ROM.
objdiff now supports ARM, and this PR integrates it into our decompilation procedure. The most notable advantages to objdiff are:
This does not obsolete decomp.me, but rather gives us the ability to diff and match entire object files as opposed to individual functions. In fact, we can still use decomp.me for collaborative decompilation by using the "Export to decomp.me" button in objdiff.
In practice, this entails the following changes to this project:
/docs/decompiling.md
is updated with instructions on how to useobjdiff
#ifdef STUBS
directives have been removed andlcf.py
no longer lists C/C++ files that haven't been matched yet.lcf.py
and rebuild the ROM.