mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-27 06:50:35 +00:00
85cbb974cd
The duplicates report has several false negatives when a function has the same name as another function which has not been decompiled. This affects overlays which share many of the same function names (e.g. `EntityWeaponAttack`). The duplicates tool now parses the `INCLUDE_ASM` macro to extract the path and ASM file. It then uses that when determining whether or not each ASM file is actually included or not. Previously, only the function name was checked, so if any `INCLUDE_ASM` file had the target function name, it would be marked as not decompiled. Before: % | Decomp? | Name | Asm Path -----|-------|-------------------------------|-------------------------------- | 1.00 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_008/EntityWeaponAttack.s | 1.00 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_009/EntityWeaponAttack.s | 0.91 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_010/EntityWeaponAttack.s | 1.00 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_011/EntityWeaponAttack.s | 0.98 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_025/EntityWeaponAttack.s | 1.00 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_026/EntityWeaponAttack.s | 1.00 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_027/EntityWeaponAttack.s | 1.00 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_028/EntityWeaponAttack.s | 0.97 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_058/EntityWeaponAttack.s After: % | Decomp? | Name | Asm Path -----|-------|-------------------------------|-------------------------------- 1.00 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_008/EntityWeaponAttack.s 1.00 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_009/EntityWeaponAttack.s 0.91 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_010/EntityWeaponAttack.s 1.00 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_011/EntityWeaponAttack.s 0.98 | false | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_025/EntityWeaponAttack.s 1.00 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_026/EntityWeaponAttack.s 1.00 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_027/EntityWeaponAttack.s 1.00 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_028/EntityWeaponAttack.s 0.97 | true | EntityWeaponAttack | ../../asm/us/weapon/nonmatchings/w_058/EntityWeaponAttack.s (note: `w_008`, `w_009`, and `w_011` are decompiled in my workspace, but not in GH) Co-authored-by: Jonathan Hohle <jon@ttkb.co>
26 lines
716 B
Makefile
26 lines
716 B
Makefile
test:
|
|
$(PYTHON) tools/symbols_test.py
|
|
|
|
function-finder:
|
|
# TODO: make sure graphviz is installed
|
|
$(MAKE) force_symbols
|
|
$(MAKE) force_extract
|
|
$(PYTHON) tools/analyze_calls.py
|
|
git clean -fdx asm/
|
|
git checkout config/
|
|
rm -f build/us/main.ld
|
|
rm -rf build/us/weapon.ld
|
|
$(MAKE) -j extract
|
|
$(PYTHON) tools/function_finder/function_finder_psx.py --use-call-trees > gh-duplicates/functions.md
|
|
rm -rf gh-duplicates/function_calls || true
|
|
mv function_calls gh-duplicates/
|
|
mv function_graphs.md gh-duplicates/
|
|
|
|
duplicates-report:
|
|
$(MAKE) force_symbols
|
|
$(MAKE) force_extract
|
|
cd tools/dups; \
|
|
cargo run --release -- \
|
|
--threshold .90 \
|
|
--output-file ../../gh-duplicates/duplicates.txt
|