41 lines
1.1 KiB
C++

#include "pch.h"
#include "swa_recompiler.h"
#include "test_recompiler.h"
// argv 1: xex file path
// argv 2: switches toml file path
// argv 3: output directory path
int main(int argc, char* argv[])
{
if (strstr(argv[1], ".xex") != nullptr)
{
SWARecompiler recompiler;
recompiler.config.skipLr = true;
recompiler.config.ctrAsLocalVariable = true;
recompiler.config.xerAsLocalVariable = true;
recompiler.config.reservedRegisterAsLocalVariable = true;
recompiler.config.skipMsr = true;
recompiler.config.crRegistersAsLocalVariables = true;
recompiler.config.nonArgumentRegistersAsLocalVariables = true;
recompiler.config.nonVolatileRegistersAsLocalVariables = true;
std::println("Loading executable...");
recompiler.LoadExecutable(argv[1]);
std::println("Loading switch tables...");
recompiler.LoadSwitchTables(argv[2]);
std::println("Analysing functions...");
recompiler.Analyse();
recompiler.Recompile(argv[3]);
}
else
{
TestRecompiler::RecompileTests(argv[1], argv[2]);
}
return 0;
}