From ab26468ef125af7cf4ff942b1bdfedb6a3dfaaf3 Mon Sep 17 00:00:00 2001 From: pineappleEA Date: Fri, 14 Jan 2022 08:25:51 +0100 Subject: [PATCH] early-access version 2392 --- README.md | 2 +- src/core/hle/kernel/kernel.cpp | 11 +++++++---- src/core/hle/service/hid/hid.cpp | 3 ++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d5585b158..5fc8323a4 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ yuzu emulator early access ============= -This is the source code for early-access 2390. +This is the source code for early-access 2392. ## Legal Notice diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 071a018e7..313a9c148 100755 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -715,15 +715,18 @@ struct KernelCore::Impl { std::weak_ptr CreateServiceThread(KernelCore& kernel, const std::string& name) { - std::lock_guard lk(service_threads_lock); auto service_thread = std::make_shared(kernel, 1, name); - service_threads.emplace(service_thread); + { + std::lock_guard lk(service_threads_lock); + service_threads.emplace(service_thread); + } return service_thread; } void ReleaseServiceThread(std::weak_ptr service_thread) { - std::lock_guard lk(service_threads_lock); - if (auto strong_ptr = service_thread.lock()) { + auto strong_ptr = service_thread.lock(); + { + std::lock_guard lk(service_threads_lock); service_threads.erase(strong_ptr); } } diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 948f1adf5..fef07006f 100755 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -38,7 +38,8 @@ namespace Service::HID { // Period time is obtained by measuring the number of samples in a second on HW using a homebrew constexpr auto pad_update_ns = std::chrono::nanoseconds{4 * 1000 * 1000}; // (4ms, 250Hz) constexpr auto mouse_keyboard_update_ns = std::chrono::nanoseconds{8 * 1000 * 1000}; // (8ms, 125Hz) -constexpr auto motion_update_ns = std::chrono::nanoseconds{5 * 1000 * 1000}; // (5ms, 200Hz) +// TODO: Correct update rate for motion is 5ms. Check why some games don't behave at that speed +constexpr auto motion_update_ns = std::chrono::nanoseconds{10 * 1000 * 1000}; // (10ms, 100Hz) constexpr std::size_t SHARED_MEMORY_SIZE = 0x40000; IAppletResource::IAppletResource(Core::System& system_,