From f9287c1eda85efcfc5aa8ff360af35d2650de340 Mon Sep 17 00:00:00 2001 From: wheremyfoodat Date: Mon, 26 Sep 2022 18:43:37 +0300 Subject: [PATCH] Fix dynarmic submodule --- .gitmodules | 3 +++ include/logger.hpp | 2 +- src/core/PICA/regs.cpp | 10 +++++----- src/main.cpp | 2 +- third_party/dynarmic | 1 + 5 files changed, 11 insertions(+), 7 deletions(-) create mode 160000 third_party/dynarmic diff --git a/.gitmodules b/.gitmodules index 56513763..65a24033 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "third_party/elfio"] path = third_party/elfio url = https://github.com/serge1/ELFIO +[submodule "third_party/dynarmic"] + path = third_party/dynarmic + url = https://github.com/merryhime/dynarmic/tree/master/src/dynarmic diff --git a/include/logger.hpp b/include/logger.hpp index 7bcde212..cb264da5 100644 --- a/include/logger.hpp +++ b/include/logger.hpp @@ -21,7 +21,7 @@ namespace Log { static Logger kernelLogger; static Logger debugStringLogger; // Enables output for the outputDebugString SVC static Logger svcLogger; - static Logger gpuLogger; + static Logger gpuLogger; // Service loggers static Logger aptLogger; diff --git a/src/core/PICA/regs.cpp b/src/core/PICA/regs.cpp index 40b36b98..6a033541 100644 --- a/src/core/PICA/regs.cpp +++ b/src/core/PICA/regs.cpp @@ -108,6 +108,11 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) { shaderUnit.vs.uploadIntUniform(index - VertexIntUniform0, value); break; + case VertexShaderData0: case VertexShaderData1: case VertexShaderData2: case VertexShaderData3: + case VertexShaderData4: case VertexShaderData5: case VertexShaderData6: case VertexShaderData7: + shaderUnit.vs.uploadWord(value); + break; + case VertexShaderTransferEnd: if (value != 0) shaderUnit.vs.finalize(); break; @@ -116,11 +121,6 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) { shaderUnit.vs.setBufferIndex(value); break; - case VertexShaderData0: case VertexShaderData1: case VertexShaderData2: case VertexShaderData3: - case VertexShaderData4: case VertexShaderData5: case VertexShaderData6: case VertexShaderData7: - shaderUnit.vs.uploadWord(value); - break; - default: // Vertex attribute registers if (index >= AttribInfoStart && index <= AttribInfoEnd) { diff --git a/src/main.cpp b/src/main.cpp index 8f1a2b7e..9325e905 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,7 +9,7 @@ int main (int argc, char *argv[]) { emu.initGraphicsContext(); - auto elfPath = std::filesystem::current_path() / (argc > 1 ? argv[1] : "SimplerTri.elf"); + auto elfPath = std::filesystem::current_path() / (argc > 1 ? argv[1] : "sm64.elf"); if (!emu.loadELF(elfPath)) { // For some reason just .c_str() doesn't show the proper path Helpers::panic("Failed to load ELF file: %s", elfPath.string().c_str()); diff --git a/third_party/dynarmic b/third_party/dynarmic new file mode 160000 index 00000000..af51845a --- /dev/null +++ b/third_party/dynarmic @@ -0,0 +1 @@ +Subproject commit af51845a53108f9bf076efa31eac54573fe432e8