====== Getting Started ====== ==== Prerequisites ==== * Linux setup/Windows setup with CMake and GNU make * ARM C/C++ Compiler, 4.1 [Build 894] * Python 3.10 * CMake >= 3.24 * code.bin((sha256sum = e1d7e188ff88467df776c17cec45c44857fadf5b699944baa8cddcae7d939e64)) extracted from Super Mario 3D Land (EU) ((0004000000053F00)) ==== Setup ==== Clone https://github.com/fruityloops1/RedPepper recursively, and place code.bin in the root of the repository. Set these environment variables: ARMCC_PATH: path where ARMCC has been installed ==== Tools ==== Here the most important scripts in the 'Tools' folder will be explained. === build.py === python Tools/build.py [clean/verbose] Sets up CMake if needed, and builds the project. Building with the 'clean' flag will delete the Build folder and set up CMake again, if the Build folder exists. Building with the 'verbose' flag will echo the compiler/linker commands. === check.py === python Tools/check.py [dir] Automatically checks all functions mentioned in files in the 'Symbols' folder, and updates their status if needed. Examples: * check.py * check.py al/LiveActor === diff.py === python Tools/diff.py Runs the asm-differ for the specified function. Examples: * diff.py _ZN2al13isEqualStringEPKcS1_ * diff.py _ZN2al14NerveStateCtrl10startStateEPKNS_5NerveE === progress.py === Shows decompilation progress (of functions), automatically removes functions from the Unnamed.sym file if they have been moved to another .sym file by the user, and updates the decompilation percentages/the graph for README.md.