aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpineappleEA <pineaea@gmail.com>2024-02-09 05:47:18 +0100
committerpineappleEA <pineaea@gmail.com>2024-02-09 05:47:18 +0100
commit5a87b5c4005aa344b56ef9cd7eeb2d11d8c03d93 (patch)
tree2cb9ff2a587fc4e86d429a50b1446145bfd38821
parent3308f3bac87ca499bcd06a493bc71f43b0256738 (diff)
early-access version 4124EA-4124
-rwxr-xr-xREADME.md2
-rwxr-xr-xsrc/android/app/build.gradle.kts11
-rwxr-xr-xsrc/core/hle/service/cmif_types.h2
-rwxr-xr-xsrc/core/hle/service/hid/hid_system_server.cpp9
-rwxr-xr-xsrc/hid_core/resource_manager.cpp2
-rwxr-xr-xsrc/hid_core/resources/npad/npad.cpp4
-rwxr-xr-xsrc/hid_core/resources/npad/npad.h2
-rwxr-xr-xsrc/hid_core/resources/npad/npad_resource.cpp10
-rwxr-xr-xsrc/hid_core/resources/npad/npad_resource.h2
9 files changed, 28 insertions, 16 deletions
diff --git a/README.md b/README.md
index 0bfd8d3c3..c164deec9 100755
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
1yuzu emulator early access 1yuzu emulator early access
2============= 2=============
3 3
4This is the source code for early-access 4123. 4This 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
261fun getGitVersion(): String { 261fun 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
271fun getGitHash(): String = 278fun 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 {
270public: 270public:
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
520void IHidSystemServer::UnregisterAppletResourceUserId(HLERequestContext& ctx) { 515void 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
319Result ResourceManager::GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle, u64 aruid) { 320Result ResourceManager::GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle, u64 aruid) {
@@ -324,6 +325,7 @@ Result ResourceManager::GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle
324void ResourceManager::FreeAppletResourceId(u64 aruid) { 325void 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
329void ResourceManager::EnableInput(u64 aruid, bool is_enabled) { 331void 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
120void NPad::FreeAppletResourceId(u64 aruid) {
121 return npad_resource.FreeAppletResourceId(aruid);
122}
123
120void NPad::ControllerUpdate(Core::HID::ControllerTriggerType type, std::size_t controller_idx) { 124void 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) {
67void NPadResource::UnregisterAppletResourceUserId(u64 aruid) { 67void 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
83void NPadResource::DestroyStyleSetUpdateEvents(u64 aruid) { 83void 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();