diff options
| author | Zephyron <zephyron@citron-emu.org> | 2025-01-15 19:20:37 +1000 |
|---|---|---|
| committer | Mike Lothian <mike@fireburn.co.uk> | 2025-05-11 12:17:03 +0100 |
| commit | b3ff92116e3073d3184dad1f0bfd24387c866f28 (patch) | |
| tree | 730ac71f37aa2b8468530f10f18751a3d91d01f6 | |
| parent | 9ce7c82b18584b1b76a342e33f660b1b4763068d (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
| -rw-r--r-- | CMakeLists.txt | 14 | ||||
| m--------- | externals/VulkanMemoryAllocator | 0 | ||||
| m--------- | externals/vcpkg | 0 | ||||
| -rw-r--r-- | src/core/hle/service/hid/hid_server.cpp | 7 | ||||
| -rw-r--r-- | src/core/hle/service/hid/hid_server.h | 2 |
5 files changed, 16 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 07a8d34a7..16303e57f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -316,21 +316,21 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) # ======================================================================= # Enforce the search mode of non-required packages for better and shorter failure messages -find_package(Boost 1.79.0 REQUIRED context) -find_package(enet 1.3 MODULE) +find_package(Boost REQUIRED context) +find_package(enet MODULE) find_package(fmt 11 REQUIRED) find_package(lz4 REQUIRED) -find_package(nlohmann_json 3.8 REQUIRED) -find_package(Opus 1.3 MODULE) +find_package(nlohmann_json REQUIRED) +find_package(Opus MODULE) find_package(RenderDoc MODULE) find_package(SimpleIni MODULE) find_package(stb MODULE) find_package(VulkanMemoryAllocator CONFIG) -find_package(ZLIB 1.2 REQUIRED) -find_package(zstd 1.5 REQUIRED) +find_package(ZLIB REQUIRED) +find_package(zstd REQUIRED) if (YUZU_USE_LLVM_DEMANGLE) - find_package(LLVM 17.0.2 MODULE COMPONENTS Demangle) + find_package(LLVM MODULE COMPONENTS Demangle) endif() if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) diff --git a/externals/VulkanMemoryAllocator b/externals/VulkanMemoryAllocator -Subproject 3bab6924988e5f19bf36586a496156cf72f70d9 +Subproject f74c2d906f1537114fe0c0d855d5d27db91898c diff --git a/externals/vcpkg b/externals/vcpkg -Subproject 1a66c32c6f90c2f646529975c3c076ed3dbdae0 +Subproject c82f74667287d3dc386bce81e44964370c91a28 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); |
