From e48fdabdaea540079f631093b524de6f070b5b67 Mon Sep 17 00:00:00 2001 From: Mr-Wiseguy Date: Tue, 15 Nov 2022 19:55:48 -0500 Subject: [PATCH] Initial project setup with rabbitizer submodule --- .gitignore | 34 ++++++ .gitmodules | 3 + RecompPort.sln | 41 +++++++ RecompPort.vcxproj | 137 +++++++++++++++++++++++ RecompPort.vcxproj.filters | 22 ++++ lib/Rabbitizer.vcxproj | 197 +++++++++++++++++++++++++++++++++ lib/Rabbitizer.vcxproj.filters | 192 ++++++++++++++++++++++++++++++++ lib/rabbitizer | 1 + src/main.cpp | 14 +++ 9 files changed, 641 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 RecompPort.sln create mode 100644 RecompPort.vcxproj create mode 100644 RecompPort.vcxproj.filters create mode 100644 lib/Rabbitizer.vcxproj create mode 100644 lib/Rabbitizer.vcxproj.filters create mode 160000 lib/rabbitizer create mode 100644 src/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6545e72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# VSCode file settings +.vscode/settings.json + +# Linux build output +build/ +*.o + +# Windows build output + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f16f2f8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/rabbitizer"] + path = lib/rabbitizer + url = https://github.com/Decompollaborate/rabbitizer diff --git a/RecompPort.sln b/RecompPort.sln new file mode 100644 index 0000000..b78ca84 --- /dev/null +++ b/RecompPort.sln @@ -0,0 +1,41 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32929.386 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RecompPort", "RecompPort.vcxproj", "{23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Rabbitizer", "lib\Rabbitizer.vcxproj", "{17BE354C-2B15-4175-8535-7D0D046217A6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Debug|x64.ActiveCfg = Debug|x64 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Debug|x64.Build.0 = Debug|x64 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Debug|x86.ActiveCfg = Debug|Win32 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Debug|x86.Build.0 = Debug|Win32 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Release|x64.ActiveCfg = Release|x64 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Release|x64.Build.0 = Release|x64 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Release|x86.ActiveCfg = Release|Win32 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD}.Release|x86.Build.0 = Release|Win32 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Debug|x64.ActiveCfg = Debug|x64 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Debug|x64.Build.0 = Debug|x64 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Debug|x86.ActiveCfg = Debug|Win32 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Debug|x86.Build.0 = Debug|Win32 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Release|x64.ActiveCfg = Release|x64 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Release|x64.Build.0 = Release|x64 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Release|x86.ActiveCfg = Release|Win32 + {17BE354C-2B15-4175-8535-7D0D046217A6}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {060DB2CD-23B2-4BDA-82D2-ACAC7BB5450B} + EndGlobalSection +EndGlobal diff --git a/RecompPort.vcxproj b/RecompPort.vcxproj new file mode 100644 index 0000000..cf32fad --- /dev/null +++ b/RecompPort.vcxproj @@ -0,0 +1,137 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {23C26E84-DC01-43A6-B11B-0B4A2D79A5DD} + Win32Proj + + + + Application + true + v142 + + + Application + false + v142 + + + Application + true + v142 + + + Application + false + v142 + + + + + + + + + + + + + + + + + + + + + true + + + true + + + + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + ProgramDatabase + Disabled + stdcpp17 + $(SolutionDir)lib\rabbitizer\include;$(SolutionDir)lib\rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + + + MachineX86 + true + Console + mainCRTStartup + + + + + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + stdcpp17 + $(SolutionDir)lib\rabbitizer\include;$(SolutionDir)lib\rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + + + MachineX86 + true + Console + true + true + mainCRTStartup + + + + + stdcpp17 + $(SolutionDir)lib\rabbitizer\include;$(SolutionDir)lib\rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + + + Console + mainCRTStartup + + + + + stdcpp17 + $(SolutionDir)lib\rabbitizer\include;$(SolutionDir)lib\rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + + + Console + mainCRTStartup + + + + + {17be354c-2b15-4175-8535-7d0d046217a6} + + + + + + + + + \ No newline at end of file diff --git a/RecompPort.vcxproj.filters b/RecompPort.vcxproj.filters new file mode 100644 index 0000000..ddc083e --- /dev/null +++ b/RecompPort.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + \ No newline at end of file diff --git a/lib/Rabbitizer.vcxproj b/lib/Rabbitizer.vcxproj new file mode 100644 index 0000000..d22a265 --- /dev/null +++ b/lib/Rabbitizer.vcxproj @@ -0,0 +1,197 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16.0 + Win32Proj + {17be354c-2b15-4175-8535-7d0d046217a6} + Rabbitizer + 10.0 + + + + StaticLibrary + true + v142 + Unicode + + + StaticLibrary + false + v142 + true + Unicode + + + StaticLibrary + true + v142 + Unicode + + + StaticLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + + + true + + + $(ProjectDir)rabbitizer\include;$(ProjectDir)rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + stdcpp17 + + + + + + + true + true + true + + + $(ProjectDir)rabbitizer\include;$(ProjectDir)rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + stdcpp17 + + + + + + + true + + + $(ProjectDir)rabbitizer\include;$(ProjectDir)rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + stdcpp17 + + + + + + + true + true + true + + + $(ProjectDir)rabbitizer\include;$(ProjectDir)rabbitizer\cplusplus\include;%(AdditionalIncludeDirectories) + stdcpp17 + + + + + + \ No newline at end of file diff --git a/lib/Rabbitizer.vcxproj.filters b/lib/Rabbitizer.vcxproj.filters new file mode 100644 index 0000000..7d040d7 --- /dev/null +++ b/lib/Rabbitizer.vcxproj.filters @@ -0,0 +1,192 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/lib/rabbitizer b/lib/rabbitizer new file mode 160000 index 0000000..54f9976 --- /dev/null +++ b/lib/rabbitizer @@ -0,0 +1 @@ +Subproject commit 54f997607c62d8c1c5316ef414adf17f5c060797 diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..df3952a --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,14 @@ +#include "rabbitizer.hpp" + +#include + +int main(int argc, char** argv) { + uint32_t word = 0x8D4A7E18; // lw + uint32_t vram = 0x80000000; + int extraLJust = 5; + rabbitizer::InstructionCpu instr(word, vram); + + printf("%08X: %s\n", word, instr.disassemble(extraLJust).c_str()); + + return 0; +}