summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2021-08-11tools: Update commonLéo Lam
2021-08-10tools/setup: Auto-install `check` (viking)MonsterDruide1
2021-08-10tools: Migrate to external repoMonsterDruide1
2021-08-06Remove old diff.py wrapper (superseded by botw-check) and update docsLéo Lam
2021-08-05tools: Add single function check modeLéo Lam
Similar to diff.py wrapper usage, except this will also automatically update the function CSV with the actual match status.
2021-08-05tools: Refactor "check all functions" into its own functionLéo Lam
In preparation for adding a single function checking mode.
2021-08-05tools: Remove dead codeLéo Lam
2021-08-04tools: Print a note when a U function actually exists and matchesLéo Lam
Also fixes the function call check not being as strict as it should be and fixes several false positives in the function list
2021-08-04tools: Add duplicate name checkingLéo Lam
2021-08-02tools: Do not overwrite function names with j_ names eitherLéo Lam
2021-08-02tools: Do not overwrite function names with nullsub_ and sub_Léo Lam
2021-08-01Added support for WIP function statusAlexApps99
This brings functionality up to what diff.py uses
2021-07-31Merge pull request #52 from AlexApps99/masterLéo Lam
Ghidra function import script
2021-07-31Remove old tools/check.pyLéo Lam
RIP check.py 2020-2021
2021-07-31Ghidra function import scriptAlexApps99
Added .gitignore for Ghidra
2021-07-30tools: Add a new, optimized check toolLéo Lam
Reimplements tools/check.py in a faster language (picked Rust to learn and play with the language and because installing dependencies is way easier than with C++) On my machine, a full run takes ~160ms with this new implementation and 49s (!) with check.py. The main performance improvements come from not having to use pyelftools and the Python bindings of Capstone (which are both insanely slow and perhaps less efficient than they could be). Function checking is now also performed in parallel rather than sequentially for yet another significant performance boost. Other tweaks include editing Capstone and the bindings to avoid computing expensive things that we don't actually need and avoiding dynamic memory allocations in hot paths as much as possible. check.py will be removed after the setup instructions are updated.
2021-07-30Remove expected/Léo Lam
The intention was to catch functional regressions in non-matching functions but this doesn't actually work well because referenced code and data may have moved after a function was dumped, in which case the reference checker is unable to verify that function calls and data references are still correct. Considering this increases the amount of complexity in the checker and makes the workflow more complicated for contributors, let's just drop this mechanism. It isn't worth it. Putting binary files in the repo is also pretty meh.
2021-07-27CSV formatting improvementsAlexApps99
2021-07-23tools: Use bundled copy of objdump to simplify setupLéo Lam
2021-07-23Streamline project setup by automating NSO conversion (if needed)Léo Lam
2021-07-22setup: Use subprocess.check_call instead of os.systemLéo Lam
2021-07-22Simplify build setup by adding a setup scriptLéo Lam
2021-06-28tools: Make register pair tracking more robust by using insn.regs_access()Léo Lam
2021-06-25tools: Fix check script not handling ldrb, ldrsb, etc. correctlyLéo Lam
2021-06-24tools: Fix strb and other str variants not being handledLéo Lam
2021-06-20Add tool to translate IDA types to real C++ typesLéo Lam
Currently this only covers agl Parameter classes, but more type names may be added to the mapping in the future.
2021-06-15tools: Ignore excluded lib functions for rename scriptLéo Lam
2021-06-15Exclude libcurl and NintendoSDK-NEXLéo Lam
This project is not going to decompile libcurl and NEX. It's just not the main focus of the project and it's unlikely to yield any kind of interesting information. PosTrackerUploader and possibly the network save transfer stuff do use NEX but those are secondary, possibly debug-only features. Furthermore decompiling those two systems does not require actually implementing the entirely of libcurl+NEX (~1MB); we just have to write "API stubs" (headers) for the few parts of NEX that are used by BotW code.
2021-04-02Add a script to suppress gdt*Flags.cpp rebuilds for faster buildsLéo Lam
2021-02-07tools: Show line number when CSV parsing failsLéo Lam
2021-01-31tools/diff: Rebuild on library changes as wellLéo Lam
2021-01-25tools: Update asm-differ and add support for -mw (make, watch)Léo Lam
2021-01-22tools: Sort decomp symbols by addressLéo Lam
Makes it less tedious to add several decompiled functions to the function list
2021-01-21Track AI class decompilation macro progressLéo Lam
2021-01-01identify_matching_functions_by_call: Add support for matching one fnLéo Lam
2020-12-31Add more AI matchesLéo Lam
2020-12-31Add matching AI functions to CSVLéo Lam
2020-12-31Generate AIsLéo Lam
2020-12-31Add tool to rename AI virtual functionsLéo Lam
2020-12-29tools: Optimize symbol parsingLéo Lam
2020-12-29Add tool to identify matching sead RTTI functionsLéo Lam
2020-12-29Add more missed matchesLéo Lam
2020-12-29Add more missed matchesLéo Lam
2020-12-28Action: Fix incorrect handling of inherited virtual functionsLéo Lam
2020-12-28tools: Add unknown call hook to FunctionCheckerLéo Lam
2020-12-28tools: Fix base action classes being ignored by the function matcherLéo Lam
2020-12-28Add more matching functions to the listLéo Lam
2020-12-28Generate actionsLéo Lam
2020-12-27tools: Deduplicate AI tool codeLéo Lam
2020-12-26Add script to rename Action virtual functionsLéo Lam
Useful to keep function names synchronised between decomp, IDA and the function CSV