diff options
author | pineappleEA <pineaea@gmail.com> | 2024-02-09 05:47:18 +0100 |
---|---|---|
committer | pineappleEA <pineaea@gmail.com> | 2024-02-09 05:47:18 +0100 |
commit | 5a87b5c4005aa344b56ef9cd7eeb2d11d8c03d93 (patch) | |
tree | 2cb9ff2a587fc4e86d429a50b1446145bfd38821 | |
parent | 3308f3bac87ca499bcd06a493bc71f43b0256738 (diff) |
early-access version 4124EA-4124
-rwxr-xr-x | README.md | 2 | ||||
-rwxr-xr-x | src/android/app/build.gradle.kts | 11 | ||||
-rwxr-xr-x | src/core/hle/service/cmif_types.h | 2 | ||||
-rwxr-xr-x | src/core/hle/service/hid/hid_system_server.cpp | 9 | ||||
-rwxr-xr-x | src/hid_core/resource_manager.cpp | 2 | ||||
-rwxr-xr-x | src/hid_core/resources/npad/npad.cpp | 4 | ||||
-rwxr-xr-x | src/hid_core/resources/npad/npad.h | 2 | ||||
-rwxr-xr-x | src/hid_core/resources/npad/npad_resource.cpp | 10 | ||||
-rwxr-xr-x | src/hid_core/resources/npad/npad_resource.h | 2 |
9 files changed, 28 insertions, 16 deletions
@@ -1,7 +1,7 @@ | |||
1 | yuzu emulator early access | 1 | yuzu emulator early access |
2 | ============= | 2 | ============= |
3 | 3 | ||
4 | This is the source code for early-access 4123. | 4 | This is the source code for early-access 4124. |
5 | 5 | ||
6 | ## Legal Notice | 6 | ## Legal Notice |
7 | 7 | ||
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index d44bb4c74..cb026211c 100755 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts | |||
@@ -259,13 +259,20 @@ fun runGitCommand(command: List<String>): String { | |||
259 | } | 259 | } |
260 | 260 | ||
261 | fun getGitVersion(): String { | 261 | fun getGitVersion(): String { |
262 | val gitVersion = runGitCommand(listOf("git", "describe", "--always", "--long")) | 262 | val gitVersion = runGitCommand( |
263 | listOf( | ||
264 | "git", | ||
265 | "describe", | ||
266 | "--always", | ||
267 | "--long" | ||
268 | ) | ||
269 | ).replace(Regex("(-0)?-[^-]+$"), "") | ||
263 | val versionName = if (System.getenv("GITHUB_ACTIONS") != null) { | 270 | val versionName = if (System.getenv("GITHUB_ACTIONS") != null) { |
264 | System.getenv("GIT_TAG_NAME") ?: gitVersion | 271 | System.getenv("GIT_TAG_NAME") ?: gitVersion |
265 | } else { | 272 | } else { |
266 | gitVersion | 273 | gitVersion |
267 | } | 274 | } |
268 | return versionName.replace(Regex("(-0)?-[^-]+$"), "").ifEmpty { "0.0" } | 275 | return versionName.ifEmpty { "0.0" } |
269 | } | 276 | } |
270 | 277 | ||
271 | fun getGitHash(): String = | 278 | fun getGitHash(): String = |
diff --git a/src/core/hle/service/cmif_types.h b/src/core/hle/service/cmif_types.h index db5a013c7..dad358b87 100755 --- a/src/core/hle/service/cmif_types.h +++ b/src/core/hle/service/cmif_types.h | |||
@@ -270,7 +270,7 @@ class OutLargeData { | |||
270 | public: | 270 | public: |
271 | static_assert(std::is_trivially_copyable_v<T>, "LargeData type must be trivially copyable"); | 271 | static_assert(std::is_trivially_copyable_v<T>, "LargeData type must be trivially copyable"); |
272 | static_assert((A & BufferAttr_In) == 0, "OutLargeData attr must not be In"); | 272 | static_assert((A & BufferAttr_In) == 0, "OutLargeData attr must not be In"); |
273 | static constexpr BufferAttr Attr = static_cast<BufferAttr>(A | BufferAttr_In | BufferAttr_FixedSize); | 273 | static constexpr BufferAttr Attr = static_cast<BufferAttr>(A | BufferAttr_Out | BufferAttr_FixedSize); |
274 | using Type = T; | 274 | using Type = T; |
275 | 275 | ||
276 | /* implicit */ OutLargeData(const OutLargeData& t) : raw(t.raw) {} | 276 | /* implicit */ OutLargeData(const OutLargeData& t) : raw(t.raw) {} |
diff --git a/src/core/hle/service/hid/hid_system_server.cpp b/src/core/hle/service/hid/hid_system_server.cpp index 22471e9e2..7126a1dcd 100755 --- a/src/core/hle/service/hid/hid_system_server.cpp +++ b/src/core/hle/service/hid/hid_system_server.cpp | |||
@@ -508,13 +508,8 @@ void IHidSystemServer::RegisterAppletResourceUserId(HLERequestContext& ctx) { | |||
508 | Result result = GetResourceManager()->RegisterAppletResourceUserId( | 508 | Result result = GetResourceManager()->RegisterAppletResourceUserId( |
509 | parameters.applet_resource_user_id, parameters.enable_input); | 509 | parameters.applet_resource_user_id, parameters.enable_input); |
510 | 510 | ||
511 | if (result.IsSuccess()) { | ||
512 | // result = GetResourceManager()->GetNpad()->RegisterAppletResourceUserId( | ||
513 | // parameters.applet_resource_user_id); | ||
514 | } | ||
515 | |||
516 | IPC::ResponseBuilder rb{ctx, 2}; | 511 | IPC::ResponseBuilder rb{ctx, 2}; |
517 | rb.Push(ResultSuccess); | 512 | rb.Push(result); |
518 | } | 513 | } |
519 | 514 | ||
520 | void IHidSystemServer::UnregisterAppletResourceUserId(HLERequestContext& ctx) { | 515 | void IHidSystemServer::UnregisterAppletResourceUserId(HLERequestContext& ctx) { |
@@ -524,8 +519,6 @@ void IHidSystemServer::UnregisterAppletResourceUserId(HLERequestContext& ctx) { | |||
524 | LOG_INFO(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id); | 519 | LOG_INFO(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id); |
525 | 520 | ||
526 | GetResourceManager()->UnregisterAppletResourceUserId(applet_resource_user_id); | 521 | GetResourceManager()->UnregisterAppletResourceUserId(applet_resource_user_id); |
527 | // GetResourceManager()->GetNpad()->UnregisterAppletResourceUserId(applet_resource_user_id); | ||
528 | // GetResourceManager()->GetPalma()->UnregisterAppletResourceUserId(applet_resource_user_id); | ||
529 | 522 | ||
530 | IPC::ResponseBuilder rb{ctx, 2}; | 523 | IPC::ResponseBuilder rb{ctx, 2}; |
531 | rb.Push(ResultSuccess); | 524 | rb.Push(ResultSuccess); |
diff --git a/src/hid_core/resource_manager.cpp b/src/hid_core/resource_manager.cpp index 245da582e..01261ba97 100755 --- a/src/hid_core/resource_manager.cpp +++ b/src/hid_core/resource_manager.cpp | |||
@@ -314,6 +314,7 @@ void ResourceManager::UnregisterAppletResourceUserId(u64 aruid) { | |||
314 | std::scoped_lock lock{shared_mutex}; | 314 | std::scoped_lock lock{shared_mutex}; |
315 | applet_resource->UnregisterAppletResourceUserId(aruid); | 315 | applet_resource->UnregisterAppletResourceUserId(aruid); |
316 | npad->UnregisterAppletResourceUserId(aruid); | 316 | npad->UnregisterAppletResourceUserId(aruid); |
317 | // palma->UnregisterAppletResourceUserId(aruid); | ||
317 | } | 318 | } |
318 | 319 | ||
319 | Result ResourceManager::GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle, u64 aruid) { | 320 | Result ResourceManager::GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle, u64 aruid) { |
@@ -324,6 +325,7 @@ Result ResourceManager::GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle | |||
324 | void ResourceManager::FreeAppletResourceId(u64 aruid) { | 325 | void ResourceManager::FreeAppletResourceId(u64 aruid) { |
325 | std::scoped_lock lock{shared_mutex}; | 326 | std::scoped_lock lock{shared_mutex}; |
326 | applet_resource->FreeAppletResourceId(aruid); | 327 | applet_resource->FreeAppletResourceId(aruid); |
328 | npad->FreeAppletResourceId(aruid); | ||
327 | } | 329 | } |
328 | 330 | ||
329 | void ResourceManager::EnableInput(u64 aruid, bool is_enabled) { | 331 | void ResourceManager::EnableInput(u64 aruid, bool is_enabled) { |
diff --git a/src/hid_core/resources/npad/npad.cpp b/src/hid_core/resources/npad/npad.cpp index 053625b55..e10e97e1c 100755 --- a/src/hid_core/resources/npad/npad.cpp +++ b/src/hid_core/resources/npad/npad.cpp | |||
@@ -117,6 +117,10 @@ Result NPad::ActivateNpadResource(u64 aruid) { | |||
117 | return npad_resource.Activate(aruid); | 117 | return npad_resource.Activate(aruid); |
118 | } | 118 | } |
119 | 119 | ||
120 | void NPad::FreeAppletResourceId(u64 aruid) { | ||
121 | return npad_resource.FreeAppletResourceId(aruid); | ||
122 | } | ||
123 | |||
120 | void NPad::ControllerUpdate(Core::HID::ControllerTriggerType type, std::size_t controller_idx) { | 124 | void NPad::ControllerUpdate(Core::HID::ControllerTriggerType type, std::size_t controller_idx) { |
121 | if (type == Core::HID::ControllerTriggerType::All) { | 125 | if (type == Core::HID::ControllerTriggerType::All) { |
122 | ControllerUpdate(Core::HID::ControllerTriggerType::Connected, controller_idx); | 126 | ControllerUpdate(Core::HID::ControllerTriggerType::Connected, controller_idx); |
diff --git a/src/hid_core/resources/npad/npad.h b/src/hid_core/resources/npad/npad.h index c63488346..99e761127 100755 --- a/src/hid_core/resources/npad/npad.h +++ b/src/hid_core/resources/npad/npad.h | |||
@@ -58,6 +58,8 @@ public: | |||
58 | Result ActivateNpadResource(); | 58 | Result ActivateNpadResource(); |
59 | Result ActivateNpadResource(u64 aruid); | 59 | Result ActivateNpadResource(u64 aruid); |
60 | 60 | ||
61 | void FreeAppletResourceId(u64 aruid); | ||
62 | |||
61 | // When the controller is requesting an update for the shared memory | 63 | // When the controller is requesting an update for the shared memory |
62 | void OnUpdate(const Core::Timing::CoreTiming& core_timing); | 64 | void OnUpdate(const Core::Timing::CoreTiming& core_timing); |
63 | 65 | ||
diff --git a/src/hid_core/resources/npad/npad_resource.cpp b/src/hid_core/resources/npad/npad_resource.cpp index 8dd86b58e..79f7d74c0 100755 --- a/src/hid_core/resources/npad/npad_resource.cpp +++ b/src/hid_core/resources/npad/npad_resource.cpp | |||
@@ -67,7 +67,7 @@ Result NPadResource::RegisterAppletResourceUserId(u64 aruid) { | |||
67 | void NPadResource::UnregisterAppletResourceUserId(u64 aruid) { | 67 | void NPadResource::UnregisterAppletResourceUserId(u64 aruid) { |
68 | const u64 aruid_index = GetIndexFromAruid(aruid); | 68 | const u64 aruid_index = GetIndexFromAruid(aruid); |
69 | 69 | ||
70 | DestroyStyleSetUpdateEvents(aruid); | 70 | FreeAppletResourceId(aruid); |
71 | if (aruid_index < AruidIndexMax) { | 71 | if (aruid_index < AruidIndexMax) { |
72 | state[aruid_index] = {}; | 72 | state[aruid_index] = {}; |
73 | registration_list.flag[aruid_index] = RegistrationStatus::PendingDelete; | 73 | registration_list.flag[aruid_index] = RegistrationStatus::PendingDelete; |
@@ -80,14 +80,18 @@ void NPadResource::UnregisterAppletResourceUserId(u64 aruid) { | |||
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
83 | void NPadResource::DestroyStyleSetUpdateEvents(u64 aruid) { | 83 | void NPadResource::FreeAppletResourceId(u64 aruid) { |
84 | const u64 aruid_index = GetIndexFromAruid(aruid); | 84 | const u64 aruid_index = GetIndexFromAruid(aruid); |
85 | 85 | ||
86 | if (aruid_index >= AruidIndexMax) { | 86 | if (aruid_index >= AruidIndexMax) { |
87 | return; | 87 | return; |
88 | } | 88 | } |
89 | 89 | ||
90 | for (auto& controller_state : state[aruid_index].controller_state) { | 90 | auto& aruid_data = state[aruid_index]; |
91 | |||
92 | aruid_data.flag.is_assigned.Assign(false); | ||
93 | |||
94 | for (auto& controller_state : aruid_data.controller_state) { | ||
91 | if (!controller_state.is_styleset_update_event_initialized) { | 95 | if (!controller_state.is_styleset_update_event_initialized) { |
92 | continue; | 96 | continue; |
93 | } | 97 | } |
diff --git a/src/hid_core/resources/npad/npad_resource.h b/src/hid_core/resources/npad/npad_resource.h index aed89eec6..8ee5702fd 100755 --- a/src/hid_core/resources/npad/npad_resource.h +++ b/src/hid_core/resources/npad/npad_resource.h | |||
@@ -55,7 +55,7 @@ public: | |||
55 | Result RegisterAppletResourceUserId(u64 aruid); | 55 | Result RegisterAppletResourceUserId(u64 aruid); |
56 | void UnregisterAppletResourceUserId(u64 aruid); | 56 | void UnregisterAppletResourceUserId(u64 aruid); |
57 | 57 | ||
58 | void DestroyStyleSetUpdateEvents(u64 aruid); | 58 | void FreeAppletResourceId(u64 aruid); |
59 | 59 | ||
60 | Result Activate(u64 aruid); | 60 | Result Activate(u64 aruid); |
61 | Result Activate(); | 61 | Result Activate(); |