mirror of
https://git.citron-emu.org/Citron/Citron.git
synced 2025-02-02 06:16:27 +01:00
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
This commit is contained in:
parent
236ad28d61
commit
132077e18f
5 changed files with 18 additions and 9 deletions
|
@ -310,21 +310,21 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||||||
# =======================================================================
|
# =======================================================================
|
||||||
|
|
||||||
# Enforce the search mode of non-required packages for better and shorter failure messages
|
# Enforce the search mode of non-required packages for better and shorter failure messages
|
||||||
find_package(Boost 1.79.0 REQUIRED context)
|
find_package(Boost REQUIRED context)
|
||||||
find_package(enet 1.3 MODULE)
|
find_package(enet MODULE)
|
||||||
find_package(fmt 9 REQUIRED)
|
find_package(fmt 9 REQUIRED)
|
||||||
if (CITRON_USE_LLVM_DEMANGLE)
|
if (CITRON_USE_LLVM_DEMANGLE)
|
||||||
find_package(LLVM 17.0.2 MODULE COMPONENTS Demangle)
|
find_package(LLVM MODULE COMPONENTS Demangle)
|
||||||
endif()
|
endif()
|
||||||
find_package(lz4 REQUIRED)
|
find_package(lz4 REQUIRED)
|
||||||
find_package(nlohmann_json 3.8 REQUIRED)
|
find_package(nlohmann_json REQUIRED)
|
||||||
find_package(Opus 1.3 MODULE)
|
find_package(Opus MODULE)
|
||||||
find_package(RenderDoc MODULE)
|
find_package(RenderDoc MODULE)
|
||||||
find_package(SimpleIni MODULE)
|
find_package(SimpleIni MODULE)
|
||||||
find_package(stb MODULE)
|
find_package(stb MODULE)
|
||||||
find_package(VulkanMemoryAllocator CONFIG)
|
find_package(VulkanMemoryAllocator CONFIG)
|
||||||
find_package(ZLIB 1.2 REQUIRED)
|
find_package(ZLIB REQUIRED)
|
||||||
find_package(zstd 1.5 REQUIRED)
|
find_package(zstd REQUIRED)
|
||||||
|
|
||||||
if (NOT CITRON_USE_EXTERNAL_VULKAN_HEADERS)
|
if (NOT CITRON_USE_EXTERNAL_VULKAN_HEADERS)
|
||||||
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
||||||
|
|
2
externals/VulkanMemoryAllocator
vendored
2
externals/VulkanMemoryAllocator
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 3bab6924988e5f19bf36586a496156cf72f70d9f
|
Subproject commit f74c2d906f1537114fe0c0d855d5d27db91898cb
|
2
externals/vcpkg
vendored
2
externals/vcpkg
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit d7112d1a4fb50410d3639f5f586972591d848beb
|
Subproject commit d4f3e122069912636c123b7ece673f6e01513cea
|
|
@ -184,6 +184,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
|
||||||
{1003, C<&IHidServer::IsFirmwareUpdateNeededForNotification>, "IsFirmwareUpdateNeededForNotification"},
|
{1003, C<&IHidServer::IsFirmwareUpdateNeededForNotification>, "IsFirmwareUpdateNeededForNotification"},
|
||||||
{1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"},
|
{1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"},
|
||||||
{2000, nullptr, "ActivateDigitizer"},
|
{2000, nullptr, "ActivateDigitizer"},
|
||||||
|
{92, C<&IHidServer::SetGestureOutputRanges>, "SetGestureOutputRanges"},
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
|
@ -1436,4 +1437,10 @@ std::shared_ptr<ResourceManager> IHidServer::GetResourceManager() {
|
||||||
return resource_manager;
|
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
|
} // namespace Service::HID
|
||||||
|
|
|
@ -31,6 +31,8 @@ public:
|
||||||
|
|
||||||
std::shared_ptr<ResourceManager> GetResourceManager();
|
std::shared_ptr<ResourceManager> GetResourceManager();
|
||||||
|
|
||||||
|
Result SetGestureOutputRanges(u32, u32, u32, u32);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Result CreateAppletResource(OutInterface<IAppletResource> out_applet_resource,
|
Result CreateAppletResource(OutInterface<IAppletResource> out_applet_resource,
|
||||||
ClientAppletResourceUserId aruid);
|
ClientAppletResourceUserId aruid);
|
||||||
|
|
Loading…
Reference in a new issue