The python scripts used to first extract the scripts from the rom and create asm macros for them can be found in script_disassembler.
Convert u8 array to u16 array
Convert u8 array to u32 array
Finds the files that the functions are defined in that are referenced by Call commands in scripts: sort_scripts.sh
Colors stderr orange or red, depending on if a line contains error. Prints stdout in gray, except for final tmc: OK message: make.sh
Fork of cexplore that uses the tmc repo and small filters for the assembly to make it easier to see if the code and assembly match: octorock/cexplore
Some notes on the use of Ghidra: ghidra.md
| Script | Function |
|---|---|
| ghidra_replace.py | Improve Ghidra decompiler output |
| export_to_cexplore.py | Export NONMATCH function to cexplore |
Tool to find pointers based on the differences between versions: octorock/the-little-hat Also contains further plugins to help with decompilation.
Split asm files into functions in asm/non_matching folder and ouput the corresponding ASM_FUNC macro calls: split_asm.py
Some scripts to find things in the rom that might point to other things.
| Script | Function |
|---|---|
| list_filestructure.sh | Reads the structure of the rom from the .map |
| python parse_mapping.py > tmp/symbols.txt | needed for python scripts |
| get_location.py | Enter a hex address and this script tells you in which file it is defined |
| find_pointers.py | Searches for everything that looks like a pointer |
| consecutive_pointers.py | Searches in the list of possible pointers for multiple consecutive pointers |
Reads those mysterious enum like looking things after gUnk_0812AAE8: read_enums.py
Annotates files in the data folder with the files the label was referenced from: annotate_rodata.sh
wip_commit.sh
Creates a "WIP" commit. Then runs make and if it returns OK, it changes the commit with all changed files. Will repeat this process when Enter is pressed. This way the last OK version is always available in the latest commit.