From c8422f83bcac31fff3daf689d4a19f83db4dd8de Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 19 May 2026 05:47:31 +0000 Subject: [PATCH 1/5] [service/ro] Fix too many plugin.nro not being loaded for SSBU Signed-off-by: lizzie --- src/core/hle/service/ro/ro.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/hle/service/ro/ro.cpp b/src/core/hle/service/ro/ro.cpp index cd50e69ce1..895bcad864 100644 --- a/src/core/hle/service/ro/ro.cpp +++ b/src/core/hle/service/ro/ro.cpp @@ -21,10 +21,13 @@ namespace Service::RO { namespace { -// Convenience definitions. -constexpr size_t MaxSessions = 0x3; -constexpr size_t MaxNrrInfos = 0x40; -constexpr size_t MaxNroInfos = 0x40; +// Atmosphere defines as follows: +// Sessions = 0x03, NrrInfos = 0x40, NroInfos = 0x40 +// This may not be enough for some mods (plugin.nro dependant games) like SSBU +// Suppose someone loads like 64 plugins of these, now what? +constexpr size_t MaxSessions = 0x03; // No change +constexpr size_t MaxNrrInfos = 0x100; // Up to 256 NRRs +constexpr size_t MaxNroInfos = 0x100; // Up to 256 NROs constexpr u64 InvalidProcessId = 0xffffffffffffffffULL; constexpr u64 InvalidContextId = 0xffffffffffffffffULL; From 4a11d5db2f0b3418fbf515a7b4e940665e465dd6 Mon Sep 17 00:00:00 2001 From: crueter Date: Mon, 25 May 2026 18:53:47 +0200 Subject: [PATCH 2/5] [file_sys] Increase max file limit to 8192 (#4011) Now hopefully the Redditors can get off my ass for five seconds Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4011 Reviewed-by: Lizzie Reviewed-by: MaranBr --- src/core/file_sys/vfs/vfs_real.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/file_sys/vfs/vfs_real.cpp b/src/core/file_sys/vfs/vfs_real.cpp index 1eafff6c06..ff8808af85 100644 --- a/src/core/file_sys/vfs/vfs_real.cpp +++ b/src/core/file_sys/vfs/vfs_real.cpp @@ -33,7 +33,7 @@ namespace FS = Common::FS; namespace { -constexpr size_t MaxOpenFiles = 512; +constexpr size_t MaxOpenFiles = 8192; constexpr FS::FileAccessMode ModeFlagsToFileAccessMode(OpenMode mode) { switch (mode) { From 8a11bec55a563c1b96642edc2291b7329ce9bf0a Mon Sep 17 00:00:00 2001 From: xbzk Date: Tue, 26 May 2026 01:41:11 +0200 Subject: [PATCH 3/5] [vk,fence_manager] improvement for antiflicker showed bad for some games, so it was removed from balanced/accurate and kept for antiflicker toggle only (#4010) in short: unrelated to the toggle, we found a missing piece that improved antiflicker and shader issues in some games, and we integrated it to balanced/accurate. now testers confirmed side effects in some other games, so we reverted the integration. the toggle itself is innocent. and the missing piece was kept for the toggle. now, when the toggle is off, things are as they were before it. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4010 Reviewed-by: MaranBr Reviewed-by: Lizzie --- src/video_core/fence_manager.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/video_core/fence_manager.h b/src/video_core/fence_manager.h index b9f5e1a9c0..1b11ff52d2 100644 --- a/src/video_core/fence_manager.h +++ b/src/video_core/fence_manager.h @@ -76,9 +76,12 @@ public: TryReleasePendingFences(); } const bool should_flush = ShouldFlush(); - const bool delay_fence = Settings::values.antiflicker.GetValue() || !Settings::IsGPULevelLow(); + const bool antiflicker_toggled = Settings::values.antiflicker.GetValue(); + const bool delay_fence = Settings::IsGPULevelHigh() || + (Settings::IsGPULevelMedium() && should_flush) || + antiflicker_toggled; CommitAsyncFlushes(); - TFence new_fence = CreateFence(!should_flush && !delay_fence); + TFence new_fence = CreateFence(!should_flush && !antiflicker_toggled); if constexpr (can_async_check) { guard.lock(); } From 9d55875377f4060592313f5db8d618f1f735a20f Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 26 May 2026 06:37:59 +0200 Subject: [PATCH 4/5] [*] fix missing '#pragma once' on header files (#4014) `find src -type f -name '*.h' -not -exec grep -q "#pragma once" {} \; -print` - ignore qt with header guards already - smaa too Signed-off-by: lizzie Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4014 Reviewed-by: CamilleLaVey Reviewed-by: crueter --- src/common/container_hash.h | 5 +++++ src/core/arm/dynarmic/arm_dynarmic.h | 4 +++- src/core/arm/nce/instructions.h | 4 +++- src/core/hle/kernel/k_typed_address.h | 5 +++++ src/core/hle/service/nvnflinger/hos_binder_driver.h | 5 +++++ src/core/hle/service/olsc/daemon_controller.h | 2 ++ src/core/hle/service/olsc/native_handle_holder.h | 2 ++ src/core/hle/service/olsc/olsc_service_for_application.h | 5 +++++ src/core/hle/service/olsc/olsc_service_for_system_service.h | 2 ++ src/core/hle/service/olsc/remote_storage_controller.h | 2 ++ src/core/hle/service/olsc/transfer_task_list_controller.h | 2 ++ src/core/hle/service/ro/ro_results.h | 5 +++++ src/core/hle/service/ro/ro_types.h | 2 ++ src/core/hle/service/vi/application_display_service.h | 5 +++++ src/core/hle/service/vi/system_display_service.h | 4 +++- src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.h | 1 + 16 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/common/container_hash.h b/src/common/container_hash.h index a5e3577452..b6d8e02e26 100644 --- a/src/common/container_hash.h +++ b/src/common/container_hash.h @@ -1,7 +1,12 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: 2005-2014 Daniel James // SPDX-FileCopyrightText: 2016 Austin Appleby // SPDX-License-Identifier: BSL-1.0 +#pragma once + #include #include #include diff --git a/src/core/arm/dynarmic/arm_dynarmic.h b/src/core/arm/dynarmic/arm_dynarmic.h index 46384f7e6d..8e6b1d9766 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.h +++ b/src/core/arm/dynarmic/arm_dynarmic.h @@ -1,9 +1,11 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include #include "core/arm/arm_interface.h" diff --git a/src/core/arm/nce/instructions.h b/src/core/arm/nce/instructions.h index ada0da9559..451778df65 100644 --- a/src/core/arm/nce/instructions.h +++ b/src/core/arm/nce/instructions.h @@ -1,9 +1,11 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2020 Skyline Team and Contributors // SPDX-License-Identifier: MPL-2.0 +#pragma once + #include "common/bit_field.h" #include "common/common_types.h" diff --git a/src/core/hle/kernel/k_typed_address.h b/src/core/hle/kernel/k_typed_address.h index d57535ba01..d793d67a10 100644 --- a/src/core/hle/kernel/k_typed_address.h +++ b/src/core/hle/kernel/k_typed_address.h @@ -1,6 +1,11 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "common/typed_address.h" namespace Kernel { diff --git a/src/core/hle/service/nvnflinger/hos_binder_driver.h b/src/core/hle/service/nvnflinger/hos_binder_driver.h index b7fb07bd2e..6b551c91d2 100644 --- a/src/core/hle/service/nvnflinger/hos_binder_driver.h +++ b/src/core/hle/service/nvnflinger/hos_binder_driver.h @@ -1,6 +1,11 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" diff --git a/src/core/hle/service/olsc/daemon_controller.h b/src/core/hle/service/olsc/daemon_controller.h index fc7dd7bbcb..5f978ab153 100644 --- a/src/core/hle/service/olsc/daemon_controller.h +++ b/src/core/hle/service/olsc/daemon_controller.h @@ -4,6 +4,8 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include #include "common/uuid.h" diff --git a/src/core/hle/service/olsc/native_handle_holder.h b/src/core/hle/service/olsc/native_handle_holder.h index 985c60d1cb..e0eac50c28 100644 --- a/src/core/hle/service/olsc/native_handle_holder.h +++ b/src/core/hle/service/olsc/native_handle_holder.h @@ -4,6 +4,8 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" diff --git a/src/core/hle/service/olsc/olsc_service_for_application.h b/src/core/hle/service/olsc/olsc_service_for_application.h index 3f9ac7536a..8941659478 100644 --- a/src/core/hle/service/olsc/olsc_service_for_application.h +++ b/src/core/hle/service/olsc/olsc_service_for_application.h @@ -1,6 +1,11 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "core/hle/service/cmif_types.h" #include "core/hle/service/ns/ns_types.h" #include "core/hle/service/service.h" diff --git a/src/core/hle/service/olsc/olsc_service_for_system_service.h b/src/core/hle/service/olsc/olsc_service_for_system_service.h index 447e37005e..d16c8b979b 100644 --- a/src/core/hle/service/olsc/olsc_service_for_system_service.h +++ b/src/core/hle/service/olsc/olsc_service_for_system_service.h @@ -4,6 +4,8 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include #include "common/uuid.h" diff --git a/src/core/hle/service/olsc/remote_storage_controller.h b/src/core/hle/service/olsc/remote_storage_controller.h index bae1e8efb5..21b439013a 100644 --- a/src/core/hle/service/olsc/remote_storage_controller.h +++ b/src/core/hle/service/olsc/remote_storage_controller.h @@ -4,6 +4,8 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" diff --git a/src/core/hle/service/olsc/transfer_task_list_controller.h b/src/core/hle/service/olsc/transfer_task_list_controller.h index 72dbf610d8..4ac770b477 100644 --- a/src/core/hle/service/olsc/transfer_task_list_controller.h +++ b/src/core/hle/service/olsc/transfer_task_list_controller.h @@ -4,6 +4,8 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" diff --git a/src/core/hle/service/ro/ro_results.h b/src/core/hle/service/ro/ro_results.h index 00f05c5a59..906378bc7f 100644 --- a/src/core/hle/service/ro/ro_results.h +++ b/src/core/hle/service/ro/ro_results.h @@ -1,6 +1,11 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "core/hle/result.h" namespace Service::RO { diff --git a/src/core/hle/service/ro/ro_types.h b/src/core/hle/service/ro/ro_types.h index 50b424395a..8e88f43246 100644 --- a/src/core/hle/service/ro/ro_types.h +++ b/src/core/hle/service/ro/ro_types.h @@ -4,6 +4,8 @@ // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "common/assert.h" #include "common/common_funcs.h" #include "common/common_types.h" diff --git a/src/core/hle/service/vi/application_display_service.h b/src/core/hle/service/vi/application_display_service.h index 1bdeb8f845..a2eeb4c70c 100644 --- a/src/core/hle/service/vi/application_display_service.h +++ b/src/core/hle/service/vi/application_display_service.h @@ -1,6 +1,11 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include #include diff --git a/src/core/hle/service/vi/system_display_service.h b/src/core/hle/service/vi/system_display_service.h index d6cc8c75f1..a3b88c519d 100644 --- a/src/core/hle/service/vi/system_display_service.h +++ b/src/core/hle/service/vi/system_display_service.h @@ -1,9 +1,11 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include "common/math_util.h" #include "core/hle/service/cmif_types.h" #include "core/hle/service/nvnflinger/ui/fence.h" diff --git a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.h b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.h index 25608dbfe3..3084f3df4d 100644 --- a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.h +++ b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.h @@ -6,6 +6,7 @@ * SPDX-License-Identifier: 0BSD */ +#pragma once #include namespace oaknut { From e372f05280caed0beefc7e2871ab0986ccf2ba95 Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 19 May 2026 05:47:31 +0000 Subject: [PATCH 5/5] [service/ro] Fix too many plugin.nro not being loaded for SSBU Signed-off-by: lizzie --- src/core/hle/service/ro/ro.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/hle/service/ro/ro.cpp b/src/core/hle/service/ro/ro.cpp index cd50e69ce1..895bcad864 100644 --- a/src/core/hle/service/ro/ro.cpp +++ b/src/core/hle/service/ro/ro.cpp @@ -21,10 +21,13 @@ namespace Service::RO { namespace { -// Convenience definitions. -constexpr size_t MaxSessions = 0x3; -constexpr size_t MaxNrrInfos = 0x40; -constexpr size_t MaxNroInfos = 0x40; +// Atmosphere defines as follows: +// Sessions = 0x03, NrrInfos = 0x40, NroInfos = 0x40 +// This may not be enough for some mods (plugin.nro dependant games) like SSBU +// Suppose someone loads like 64 plugins of these, now what? +constexpr size_t MaxSessions = 0x03; // No change +constexpr size_t MaxNrrInfos = 0x100; // Up to 256 NRRs +constexpr size_t MaxNroInfos = 0x100; // Up to 256 NROs constexpr u64 InvalidProcessId = 0xffffffffffffffffULL; constexpr u64 InvalidContextId = 0xffffffffffffffffULL;