Commit Graph

133 Commits

Author SHA1 Message Date
Léo Lam 335a5a201a tools: Update common 2022-03-13 19:32:43 +01:00
Léo Lam d3902a9ad4 tools: Update common 2022-02-07 18:32:36 +01:00
Léo Lam a3e72dd6f8 tools: Update common 2022-02-07 15:30:07 +01:00
Léo Lam 088739f111 tools: Update common 2022-02-07 01:37:43 +01:00
Léo Lam 50a51e6e06 tools: Update common 2022-01-16 01:11:50 +01:00
Léo Lam 988c00c545 Sync function list with IDB 2022-01-14 13:10:12 +01:00
Léo Lam 622feda5b7 tools: Update common 2022-01-12 22:37:37 +01:00
Léo Lam 0dd0c3e87f Add placeholder function names from the IDB 2022-01-11 01:15:52 +01:00
Léo Lam 67ad8ea260 Add missing functions to the function CSV
Those had previously been missed.
2022-01-11 01:05:06 +01:00
Léo Lam a859b356e6 Update tools 2022-01-06 12:13:14 +01:00
Léo Lam 0e1500b6f8 Update tools 2021-12-30 17:46:47 +01:00
Léo Lam 1ecd2959cb Update tools 2021-12-30 16:45:20 +01:00
Léo Lam b9fe9b4610 tools: Update common 2021-12-18 22:20:49 +01:00
Léo Lam 0e9c92dc03 tools: Update common 2021-12-11 22:24:11 +01:00
Léo Lam 328b2a9c23 tools: Update common (auto rediff after diff.py exits) 2021-12-03 00:00:53 +01:00
Léo Lam 49584efbf3 tools: Update common (auto-mangling, listsym) 2021-12-02 17:16:41 +01:00
Léo Lam 6f09be56cc tools: Update common 2021-11-30 23:06:40 +01:00
Léo Lam 28515aceb5 ksys/act/AI: Take const ref for messages 2021-10-16 20:20:58 +02:00
Léo Lam 9b4af6eb00 ksys/act/AI: Rename AI handleMessage2_ and fix parameter type 2021-10-16 20:20:55 +02:00
Léo Lam 487de7a9a7 tools: Update common 2021-10-16 19:38:37 +02:00
Léo Lam 381d8922c1 tools: Update common 2021-10-16 16:20:29 +02:00
Léo Lam 953c1bfa3a Update common tools 2021-09-14 16:59:16 +02:00
Léo Lam c7d58ae78b tools: Fix imports 2021-09-06 16:55:25 +02:00
Léo Lam 50d7f3b0c2 tools: Update common 2021-09-03 17:10:07 +02:00
Léo Lam 2e5ecb2352 Update tools 2021-08-22 13:27:11 +02:00
MonsterDruide1 0b50a1a5d2 tools: Add create_build_dir to custom setup.py 2021-08-21 00:59:26 +02:00
Léo Lam 34d36b4dfc Update tools/common 2021-08-19 15:50:01 +02:00
Léo Lam 6635c517f5 tools/setup: Allow setup to be called without NSO for re-setting up tools 2021-08-12 15:06:10 +02:00
Léo Lam b5df224222 tools/setup: Remove useless imports 2021-08-12 15:04:19 +02:00
Léo Lam bd8915ab72 tools: Update common 2021-08-12 15:01:04 +02:00
Léo Lam 0352e590cc tools: Update common 2021-08-11 02:10:50 +02:00
MonsterDruide1 aa4231eff2 tools/setup: Auto-install check (viking) 2021-08-10 22:11:04 +02:00
MonsterDruide1 18152c5909 tools: Migrate to external repo 2021-08-10 22:11:03 +02:00
Léo Lam 0f6a9d95b5 Remove old diff.py wrapper (superseded by botw-check) and update docs 2021-08-06 01:25:29 +02:00
Léo Lam e37272f14a tools: Add single function check mode
Similar to diff.py wrapper usage, except this will also automatically
update the function CSV with the actual match status.
2021-08-05 22:30:20 +02:00
Léo Lam 15f062a2fc tools: Refactor "check all functions" into its own function
In preparation for adding a single function checking mode.
2021-08-05 22:30:19 +02:00
Léo Lam d1032acc1c tools: Remove dead code 2021-08-05 22:30:19 +02:00
Léo Lam 5367d0c85a tools: Print a note when a U function actually exists and matches
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-04 17:37:12 +02:00
Léo Lam e3887d6835 tools: Add duplicate name checking 2021-08-04 17:28:50 +02:00
Léo Lam 8f8a48a1dc tools: Do not overwrite function names with j_ names either 2021-08-02 15:53:59 +02:00
Léo Lam e28ba16cc0 tools: Do not overwrite function names with nullsub_ and sub_ 2021-08-02 15:49:33 +02:00
AlexApps99 3c0648e51f Added support for WIP function status
This brings functionality up to what diff.py uses
2021-08-01 14:19:29 +12:00
Léo Lam f571280fee Merge pull request #52 from AlexApps99/master
Ghidra function import script
2021-07-31 12:57:22 +02:00
Léo Lam 80bf9236a3 Remove old tools/check.py
RIP check.py 2020-2021
2021-07-31 12:42:14 +02:00
AlexApps99 ca31637da0 Ghidra function import script
Added .gitignore for Ghidra
2021-07-31 22:41:26 +12:00
Léo Lam 6e30bbea32 tools: Add a new, optimized check tool
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-30 23:52:55 +02:00
Léo Lam 2204f46b0b Remove expected/
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-30 20:06:14 +02:00
AlexApps99 3c336794a4 CSV formatting improvements 2021-07-27 12:44:10 +12:00
Léo Lam 206d7781e5 tools: Use bundled copy of objdump to simplify setup 2021-07-23 18:05:23 +02:00
Léo Lam 3fc83fd051 Streamline project setup by automating NSO conversion (if needed) 2021-07-23 12:40:49 +02:00