Clone the project recursively to include git submodules with git clone --recurse-submodules https://github.com/lucyawrey/Paper_Mario_64_Recomp. To update submodules if the project is already cloned, instead run git submodule update --init --recursive.
- Make sure cmake and a C++ 20 or later compiler are installed. To do so on most Linux distributions run
sudo apt update, then,sudo apt install build-essential gdb cmaketo get cmake and GCC. On windows, you should use "Visual Studio Build Tools 2022". They can be installed from winget with the commandwinget install --id=Microsoft.VisualStudio.2022.BuildTools -e. - Build the
N64Recomptool. To do so open a terminal tolib/N64Recompand run the commandscmake -S . -B buildpluscmake --build buildto build the project binaries. They will be outputted to build/debug. - Put a "Paper Mario NTSC 1.0" ROM in this project's
romdirectory with the namepaper_mario_usa_rev1.z64. - Build the
papermariodecompilation project atlib/papermarioaccording to these instructions and put the resultingver/us/build/papermario.elffile in this project'sromdirectory with the namepaper_mario_usa_rev1.elf. - From the root of this repository run
./lib/N64Recomp/build/N64Recomp paper_mario_usa_rev1.tomlto generate the decompiled C code. This currently crashes partway through the functioniwa_01_MontyMoleAI_DrawRock_009110FCwith the error "No function found for jal target: 0x8006FE90".
That's as far as I have gotten on the port so far. Next up is to fix the bug when running N64Recomp. Then, it is to set up a build script to recompile the C code into a native binary. We will need to link N64 Modern Runtime and RT64 in order for anything to work.