diff options
author | Zephyron <zephyron@citron-emu.org> | 2025-01-15 19:20:37 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.org> | 2025-01-15 19:20:37 +1000 |
commit | 132077e18f491d12d305e94f594470d6b93e8d8d (patch) | |
tree | 656c8f3a0e79756914fe3314ae34f37733afc238 /src/core | |
parent | 236ad28d61d94d0848c863e2cefa168f75813f49 (diff) |
fix: Implement SetGestureOutputRanges to handle unimplemented function error
- Added the SetGestureOutputRanges function to the IHidServer class to address the unimplemented function '92' error.
- This fix was discovered through log analysis, which showed a critical assertion failure in the HID service for an unknown function '92'.
- The log indicated a userspace panic and backtrace, pointing to the need for implementing this function to prevent execution breaks.
- Updated CMakeLists.txt to remove specific version requirements for several packages, enhancing flexibility.
- Updated subproject commit references for VulkanMemoryAllocator and vcpkg.
- REF: https://switchbrew.org/wiki/HID_services#ActivateGesture
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/service/hid/hid_server.cpp | 7 | ||||
-rw-r--r-- | src/core/hle/service/hid/hid_server.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/hid_server.cpp b/src/core/hle/service/hid/hid_server.cpp index 926a3bfe9..602a5ab52 100644 --- a/src/core/hle/service/hid/hid_server.cpp +++ b/src/core/hle/service/hid/hid_server.cpp @@ -184,6 +184,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r {1003, C<&IHidServer::IsFirmwareUpdateNeededForNotification>, "IsFirmwareUpdateNeededForNotification"}, {1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"}, {2000, nullptr, "ActivateDigitizer"}, + {92, C<&IHidServer::SetGestureOutputRanges>, "SetGestureOutputRanges"}, }; // clang-format on @@ -1436,4 +1437,10 @@ std::shared_ptr<ResourceManager> IHidServer::GetResourceManager() { return resource_manager; } +Result IHidServer::SetGestureOutputRanges(u32 param1, u32 param2, u32 param3, u32 param4) { + LOG_WARNING(Service_HID, "SetGestureOutputRanges called with params: {}, {}, {}, {}", param1, param2, param3, param4); + // REF: https://switchbrew.org/wiki/HID_services , Undocumented. 92 [18.0.0+] SetGestureOutputRanges + R_SUCCEED(); +} + } // namespace Service::HID diff --git a/src/core/hle/service/hid/hid_server.h b/src/core/hle/service/hid/hid_server.h index cfa31c2de..437c5bd9a 100644 --- a/src/core/hle/service/hid/hid_server.h +++ b/src/core/hle/service/hid/hid_server.h @@ -31,6 +31,8 @@ public: std::shared_ptr<ResourceManager> GetResourceManager(); + Result SetGestureOutputRanges(u32, u32, u32, u32); + private: Result CreateAppletResource(OutInterface<IAppletResource> out_applet_resource, ClientAppletResourceUserId aruid); |