diff --git a/src/core/hle/kernel/k_page_table_base.cpp b/src/core/hle/kernel/k_page_table_base.cpp
index 7714717f749fa34b3c7e7da8936e3ff681a7b8a3..e67105dea438cf3d70c785084388b4490fa13d7f 100644
--- a/src/core/hle/kernel/k_page_table_base.cpp
+++ b/src/core/hle/kernel/k_page_table_base.cpp
@@ -172,6 +172,7 @@ Result KPageTableBase::InitializeForKernel(bool is_64_bit, KVirtualAddress start
     m_mapped_unsafe_physical_memory = 0;
     m_mapped_insecure_memory = 0;
     m_mapped_ipc_server_memory = 0;
+    m_alias_region_extra_size = 0;
 
     m_memory_block_slab_manager =
         m_kernel.GetSystemSystemResource().GetMemoryBlockSlabManagerPointer();
@@ -269,6 +270,12 @@ Result KPageTableBase::InitializeForProcess(Svc::CreateProcessFlag as_type, bool
         process_code_end = m_code_region_end;
     }
 
+    m_alias_region_extra_size = 0;
+    if (as_type == Svc::CreateProcessFlag::EnableReservedRegionExtraSize) {
+        m_alias_region_extra_size = GetAddressSpaceSize() / 8;
+        alias_region_size += m_alias_region_extra_size;
+    }
+
     // Set other basic fields.
     m_enable_aslr = enable_aslr;
     m_enable_device_address_space_merge = enable_das_merge;
diff --git a/src/core/hle/kernel/k_page_table_base.h b/src/core/hle/kernel/k_page_table_base.h
index 37c745d14ae920fa61840d21554b315e327b0ed3..d944306b70a45912ab29774efc8465f8b626fc2e 100644
--- a/src/core/hle/kernel/k_page_table_base.h
+++ b/src/core/hle/kernel/k_page_table_base.h
@@ -208,6 +208,7 @@ private:
     size_t m_mapped_unsafe_physical_memory{};
     size_t m_mapped_insecure_memory{};
     size_t m_mapped_ipc_server_memory{};
+    size_t m_alias_region_extra_size{};
     mutable KLightLock m_general_lock;
     mutable KLightLock m_map_physical_memory_lock;
     KLightLock m_device_map_lock;
@@ -682,6 +683,9 @@ public:
     size_t GetAliasRegionSize() const {
         return m_alias_region_end - m_alias_region_start;
     }
+    size_t GetReservedRegionExtraSize() const {
+        return m_alias_region_extra_size;
+    }
     size_t GetStackRegionSize() const {
         return m_stack_region_end - m_stack_region_start;
     }
diff --git a/src/core/hle/kernel/k_process_page_table.h b/src/core/hle/kernel/k_process_page_table.h
index 346d7ca0833d05d118aa85390f1bb1496da6aa40..38c5fb8162675c07996b4a937a0b941a7d58b1bf 100644
--- a/src/core/hle/kernel/k_process_page_table.h
+++ b/src/core/hle/kernel/k_process_page_table.h
@@ -410,6 +410,9 @@ public:
     size_t GetAliasRegionSize() const {
         return m_page_table.GetAliasRegionSize();
     }
+    size_t GetReservedRegionExtraSize() const {
+        return m_page_table.GetReservedRegionExtraSize();
+    }
     size_t GetStackRegionSize() const {
         return m_page_table.GetStackRegionSize();
     }
diff --git a/src/core/hle/kernel/svc/svc_info.cpp b/src/core/hle/kernel/svc/svc_info.cpp
index 231e4d0e1b64136bedd2958b241c688320904d95..007bb9f705e087928f9a965b23d105bd991af77b 100644
--- a/src/core/hle/kernel/svc/svc_info.cpp
+++ b/src/core/hle/kernel/svc/svc_info.cpp
@@ -37,7 +37,8 @@ Result GetInfo(Core::System& system, u64* result, InfoType info_id_type, Handle
     case InfoType::TotalNonSystemMemorySize:
     case InfoType::UsedNonSystemMemorySize:
     case InfoType::IsApplication:
-    case InfoType::FreeThreadCount: {
+    case InfoType::FreeThreadCount:
+    case InfoType::ReservedRegionExtraSize: {
         R_UNLESS(info_sub_id == 0, ResultInvalidEnumValue);
 
         const auto& handle_table = GetCurrentProcess(system.Kernel()).GetHandleTable();
@@ -134,6 +135,10 @@ Result GetInfo(Core::System& system, u64* result, InfoType info_id_type, Handle
             }
             R_SUCCEED();
 
+        case InfoType::ReservedRegionExtraSize:
+            *result = process->GetPageTable().GetReservedRegionExtraSize();
+            R_SUCCEED();
+
         default:
             break;
         }
diff --git a/src/core/hle/kernel/svc_types.h b/src/core/hle/kernel/svc_types.h
index ab432ea78b1ffb744f2c1e83b11b8a0aa1cd91fe..df92fa0089a228880b6539af88af39f5573eae4c 100644
--- a/src/core/hle/kernel/svc_types.h
+++ b/src/core/hle/kernel/svc_types.h
@@ -153,6 +153,7 @@ enum class InfoType : u32 {
     ThreadTickCount = 25,
     IsSvcPermitted = 26,
     IoRegionHint = 27,
+    ReservedRegionExtraSize = 28,
 
     MesosphereMeta = 65000,
     MesosphereCurrentProcess = 65001,
@@ -642,9 +643,12 @@ enum class CreateProcessFlag : u32 {
     // 11.x+ DisableDeviceAddressSpaceMerge.
     DisableDeviceAddressSpaceMerge = (1 << 12),
 
+    EnableReservedRegionExtraSize = (1 << 13),
+
     // Mask of all flags.
     All = Is64Bit | AddressSpaceMask | EnableDebug | EnableAslr | IsApplication |
-          PoolPartitionMask | OptimizeMemoryAllocation | DisableDeviceAddressSpaceMerge,
+          PoolPartitionMask | OptimizeMemoryAllocation | DisableDeviceAddressSpaceMerge |
+          EnableReservedRegionExtraSize,
 };
 DECLARE_ENUM_FLAG_OPERATORS(CreateProcessFlag);
 
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index d0771996b7579150c80bebb219efab321ee9bed6..fd7104dfee3d471cc01baa7e226d7e7badec8267 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -323,7 +323,7 @@ public:
             {11, &IProfileCommon::LoadImage, "LoadImage"},
             {20, &IProfileCommon::GetImageSize, "GetLargeImageSize"}, // 18.0.0+
             {21, &IProfileCommon::LoadImage, "LoadLargeImage"},       // 18.0.0+
-            {30, nullptr, "GetImageId"},                              // 18.0.0+
+            {30, &IProfileCommon::Unknown, "GetImageId"},             // 18.0.0+
         };
 
         RegisterHandlers(functions);
@@ -494,6 +494,13 @@ protected:
         rb.Push(ResultSuccess);
     }
 
+    void Unknown(HLERequestContext& ctx) {
+        LOG_WARNING(Service_ACC, "(STUBBED) called");
+        IPC::ResponseBuilder rb{ctx, 3};
+        rb.Push(ResultSuccess);
+        rb.Push(0);
+    }
+
     ProfileManager& profile_manager;
     Common::UUID user_id{}; ///< The user id this profile refers to.
 };
@@ -509,7 +516,15 @@ class IProfileEditor final : public IProfileCommon {
 public:
     explicit IProfileEditor(Core::System& system_, Common::UUID user_id_,
                             ProfileManager& profile_manager_)
-        : IProfileCommon{system_, "IProfileEditor", true, user_id_, profile_manager_} {}
+        : IProfileCommon{system_, "IProfileEditor", true, user_id_, profile_manager_} {
+        // clang-format off
+        static const FunctionInfo functions[] = {
+            {30, &IProfileEditor::Unknown, "Unknown"},
+        };
+        // clang-format on
+
+        RegisterHandlers(functions);
+    }
 };
 
 class ISessionObject final : public ServiceFramework<ISessionObject> {