From 4b16e93f1a36f3ceae4a48ac3936eff4ffcd4746 Mon Sep 17 00:00:00 2001
From: Jason Parker <north@ntbox.com>
Date: Thu, 30 Apr 2020 09:06:52 -0400
Subject: [PATCH] caps:su Stub out SetShimLibraryVersion

Used by Animal Crossing: New Horizons when trying to take a picture.
---
 src/core/hle/service/caps/caps_su.cpp | 11 ++++++++++-
 src/core/hle/service/caps/caps_su.h   |  3 +++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/core/hle/service/caps/caps_su.cpp b/src/core/hle/service/caps/caps_su.cpp
index b4d9355ef8..e8b0698e84 100644
--- a/src/core/hle/service/caps/caps_su.cpp
+++ b/src/core/hle/service/caps/caps_su.cpp
@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+#include "core/hle/ipc_helpers.h"
 #include "core/hle/service/caps/caps_su.h"
 
 namespace Service::Capture {
@@ -9,7 +11,7 @@ namespace Service::Capture {
 CAPS_SU::CAPS_SU() : ServiceFramework("caps:su") {
     // clang-format off
     static const FunctionInfo functions[] = {
-        {32, nullptr, "SetShimLibraryVersion"},
+        {32, &CAPS_SU::SetShimLibraryVersion, "SetShimLibraryVersion"},
         {201, nullptr, "SaveScreenShot"},
         {203, nullptr, "SaveScreenShotEx0"},
         {205, nullptr, "SaveScreenShotEx1"},
@@ -22,4 +24,11 @@ CAPS_SU::CAPS_SU() : ServiceFramework("caps:su") {
 
 CAPS_SU::~CAPS_SU() = default;
 
+void CAPS_SU::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) {
+    LOG_WARNING(Service_Capture, "(STUBBED) called");
+
+    IPC::ResponseBuilder rb{ctx, 2};
+    rb.Push(RESULT_SUCCESS);
+}
+
 } // namespace Service::Capture
diff --git a/src/core/hle/service/caps/caps_su.h b/src/core/hle/service/caps/caps_su.h
index cb11f7c9ae..c494d7c846 100644
--- a/src/core/hle/service/caps/caps_su.h
+++ b/src/core/hle/service/caps/caps_su.h
@@ -16,6 +16,9 @@ class CAPS_SU final : public ServiceFramework<CAPS_SU> {
 public:
     explicit CAPS_SU();
     ~CAPS_SU() override;
+
+private:
+    void SetShimLibraryVersion(Kernel::HLERequestContext& ctx);
 };
 
 } // namespace Service::Capture