Sfoglia il codice sorgente

Merge pull request #6164 from Morph1984/service-update-12.x

service: Update service function tables
bunnei 5 anni fa
parent
commit
c34249559d

+ 1 - 0
src/common/logging/backend.cpp

@@ -212,6 +212,7 @@ void DebuggerBackend::Write(const Entry& entry) {
     SUB(Service, ARP)                                                                              \
     SUB(Service, ARP)                                                                              \
     SUB(Service, BCAT)                                                                             \
     SUB(Service, BCAT)                                                                             \
     SUB(Service, BPC)                                                                              \
     SUB(Service, BPC)                                                                              \
+    SUB(Service, BGTC)                                                                             \
     SUB(Service, BTDRV)                                                                            \
     SUB(Service, BTDRV)                                                                            \
     SUB(Service, BTM)                                                                              \
     SUB(Service, BTM)                                                                              \
     SUB(Service, Capture)                                                                          \
     SUB(Service, Capture)                                                                          \

+ 1 - 0
src/common/logging/log.h

@@ -66,6 +66,7 @@ enum class Class : ClassType {
     Service_ARP,       ///< The ARP service
     Service_ARP,       ///< The ARP service
     Service_Audio,     ///< The Audio (Audio control) service
     Service_Audio,     ///< The Audio (Audio control) service
     Service_BCAT,      ///< The BCAT service
     Service_BCAT,      ///< The BCAT service
+    Service_BGTC,      ///< The BGTC (Background Task Controller) service
     Service_BPC,       ///< The BPC service
     Service_BPC,       ///< The BPC service
     Service_BTDRV,     ///< The Bluetooth driver service
     Service_BTDRV,     ///< The Bluetooth driver service
     Service_BTM,       ///< The BTM service
     Service_BTM,       ///< The BTM service

+ 2 - 0
src/core/hle/service/aoc/aoc_u.cpp

@@ -118,8 +118,10 @@ AOC_U::AOC_U(Core::System& system_)
         {7, &AOC_U::PrepareAddOnContent, "PrepareAddOnContent"},
         {7, &AOC_U::PrepareAddOnContent, "PrepareAddOnContent"},
         {8, &AOC_U::GetAddOnContentListChangedEvent, "GetAddOnContentListChangedEvent"},
         {8, &AOC_U::GetAddOnContentListChangedEvent, "GetAddOnContentListChangedEvent"},
         {9, nullptr, "GetAddOnContentLostErrorCode"},
         {9, nullptr, "GetAddOnContentLostErrorCode"},
+        {10, nullptr, "GetAddOnContentListChangedEventWithProcessId"},
         {100, &AOC_U::CreateEcPurchasedEventManager, "CreateEcPurchasedEventManager"},
         {100, &AOC_U::CreateEcPurchasedEventManager, "CreateEcPurchasedEventManager"},
         {101, &AOC_U::CreatePermanentEcPurchasedEventManager, "CreatePermanentEcPurchasedEventManager"},
         {101, &AOC_U::CreatePermanentEcPurchasedEventManager, "CreatePermanentEcPurchasedEventManager"},
+        {110, nullptr, "CreateContentsServiceManager"},
     };
     };
     // clang-format on
     // clang-format on
 
 

+ 19 - 0
src/core/hle/service/btdrv/btdrv.cpp

@@ -156,6 +156,25 @@ public:
             {97, nullptr, "RegisterBleHidEvent"},
             {97, nullptr, "RegisterBleHidEvent"},
             {98, nullptr, "SetBleScanParameter"},
             {98, nullptr, "SetBleScanParameter"},
             {99, nullptr, "MoveToSecondaryPiconet"},
             {99, nullptr, "MoveToSecondaryPiconet"},
+            {100, nullptr, "IsBluetoothEnabled"},
+            {128, nullptr, "AcquireAudioEvent"},
+            {129, nullptr, "GetAudioEventInfo"},
+            {130, nullptr, "OpenAudioConnection"},
+            {131, nullptr, "CloseAudioConnection"},
+            {132, nullptr, "OpenAudioOut"},
+            {133, nullptr, "CloseAudioOut"},
+            {134, nullptr, "AcquireAudioOutStateChangedEvent"},
+            {135, nullptr, "StartAudioOut"},
+            {136, nullptr, "StopAudioOut"},
+            {137, nullptr, "GetAudioOutState"},
+            {138, nullptr, "GetAudioOutFeedingCodec"},
+            {139, nullptr, "GetAudioOutFeedingParameter"},
+            {140, nullptr, "AcquireAudioOutBufferAvailableEvent"},
+            {141, nullptr, "SendAudioData"},
+            {142, nullptr, "AcquireAudioControlInputStateChangedEvent"},
+            {143, nullptr, "GetAudioControlInputState"},
+            {144, nullptr, "AcquireAudioConnectionStateChangedEvent"},
+            {145, nullptr, "GetConnectedAudioDevice"},
             {256, nullptr, "IsManufacturingMode"},
             {256, nullptr, "IsManufacturingMode"},
             {257, nullptr, "EmulateBluetoothCrash"},
             {257, nullptr, "EmulateBluetoothCrash"},
             {258, nullptr, "GetBleChannelMap"},
             {258, nullptr, "GetBleChannelMap"},

+ 1 - 0
src/core/hle/service/btm/btm.cpp

@@ -223,6 +223,7 @@ public:
             {10, nullptr, "GetGattClientDisconnectionReason"},
             {10, nullptr, "GetGattClientDisconnectionReason"},
             {11, nullptr, "GetBleConnectionParameter"},
             {11, nullptr, "GetBleConnectionParameter"},
             {12, nullptr, "GetBleConnectionParameterRequest"},
             {12, nullptr, "GetBleConnectionParameterRequest"},
+            {13, nullptr, "Unknown13"},
         };
         };
         // clang-format on
         // clang-format on
 
 

+ 6 - 1
src/core/hle/service/erpt/erpt.cpp

@@ -16,7 +16,7 @@ public:
         // clang-format off
         // clang-format off
         static const FunctionInfo functions[] = {
         static const FunctionInfo functions[] = {
             {0, nullptr, "SubmitContext"},
             {0, nullptr, "SubmitContext"},
-            {1, nullptr, "CreateReport"},
+            {1, nullptr, "CreateReportV0"},
             {2, nullptr, "SetInitialLaunchSettingsCompletionTime"},
             {2, nullptr, "SetInitialLaunchSettingsCompletionTime"},
             {3, nullptr, "ClearInitialLaunchSettingsCompletionTime"},
             {3, nullptr, "ClearInitialLaunchSettingsCompletionTime"},
             {4, nullptr, "UpdatePowerOnTime"},
             {4, nullptr, "UpdatePowerOnTime"},
@@ -26,6 +26,11 @@ public:
             {8, nullptr, "ClearApplicationLaunchTime"},
             {8, nullptr, "ClearApplicationLaunchTime"},
             {9, nullptr, "SubmitAttachment"},
             {9, nullptr, "SubmitAttachment"},
             {10, nullptr, "CreateReportWithAttachments"},
             {10, nullptr, "CreateReportWithAttachments"},
+            {11, nullptr, "CreateReport"},
+            {20, nullptr, "RegisterRunningApplet"},
+            {21, nullptr, "UnregisterRunningApplet"},
+            {22, nullptr, "UpdateAppletSuspendedDuration"},
+            {30, nullptr, "InvalidateForcedShutdownDetection"},
         };
         };
         // clang-format on
         // clang-format on
 
 

+ 26 - 1
src/core/hle/service/glue/bgtc.cpp

@@ -2,11 +2,34 @@
 // Licensed under GPLv2 or any later version
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 // Refer to the license.txt file included.
 
 
+#include "common/logging/log.h"
+#include "core/core.h"
+#include "core/hle/ipc_helpers.h"
 #include "core/hle/service/glue/bgtc.h"
 #include "core/hle/service/glue/bgtc.h"
 
 
 namespace Service::Glue {
 namespace Service::Glue {
 
 
 BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
 BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
+    // clang-format off
+    static const FunctionInfo functions[] = {
+        {100, &BGTC_T::OpenTaskService, "OpenTaskService"},
+    };
+    // clang-format on
+
+    RegisterHandlers(functions);
+}
+
+BGTC_T::~BGTC_T() = default;
+
+void BGTC_T::OpenTaskService(Kernel::HLERequestContext& ctx) {
+    LOG_DEBUG(Service_BGTC, "called");
+
+    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
+    rb.Push(RESULT_SUCCESS);
+    rb.PushIpcInterface<ITaskService>(system);
+}
+
+ITaskService::ITaskService(Core::System& system_) : ServiceFramework{system_, "ITaskService"} {
     // clang-format off
     // clang-format off
     static const FunctionInfo functions[] = {
     static const FunctionInfo functions[] = {
         {1, nullptr, "NotifyTaskStarting"},
         {1, nullptr, "NotifyTaskStarting"},
@@ -20,16 +43,18 @@ BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
         {13, nullptr, "UnscheduleTask"},
         {13, nullptr, "UnscheduleTask"},
         {14, nullptr, "GetScheduleEvent"},
         {14, nullptr, "GetScheduleEvent"},
         {15, nullptr, "SchedulePeriodicTask"},
         {15, nullptr, "SchedulePeriodicTask"},
+        {16, nullptr, "Unknown16"},
         {101, nullptr, "GetOperationMode"},
         {101, nullptr, "GetOperationMode"},
         {102, nullptr, "WillDisconnectNetworkWhenEnteringSleep"},
         {102, nullptr, "WillDisconnectNetworkWhenEnteringSleep"},
         {103, nullptr, "WillStayHalfAwakeInsteadSleep"},
         {103, nullptr, "WillStayHalfAwakeInsteadSleep"},
+        {200, nullptr, "Unknown200"},
     };
     };
     // clang-format on
     // clang-format on
 
 
     RegisterHandlers(functions);
     RegisterHandlers(functions);
 }
 }
 
 
-BGTC_T::~BGTC_T() = default;
+ITaskService::~ITaskService() = default;
 
 
 BGTC_SC::BGTC_SC(Core::System& system_) : ServiceFramework{system_, "bgtc:sc"} {
 BGTC_SC::BGTC_SC(Core::System& system_) : ServiceFramework{system_, "bgtc:sc"} {
     // clang-format off
     // clang-format off

+ 8 - 0
src/core/hle/service/glue/bgtc.h

@@ -16,6 +16,14 @@ class BGTC_T final : public ServiceFramework<BGTC_T> {
 public:
 public:
     explicit BGTC_T(Core::System& system_);
     explicit BGTC_T(Core::System& system_);
     ~BGTC_T() override;
     ~BGTC_T() override;
+
+    void OpenTaskService(Kernel::HLERequestContext& ctx);
+};
+
+class ITaskService final : public ServiceFramework<ITaskService> {
+public:
+    explicit ITaskService(Core::System& system_);
+    ~ITaskService() override;
 };
 };
 
 
 class BGTC_SC final : public ServiceFramework<BGTC_SC> {
 class BGTC_SC final : public ServiceFramework<BGTC_SC> {

+ 55 - 44
src/core/hle/service/nim/nim.cpp

@@ -125,51 +125,51 @@ public:
             {39, nullptr, "PrepareShutdown"},
             {39, nullptr, "PrepareShutdown"},
             {40, nullptr, "ListApplyDeltaTask"},
             {40, nullptr, "ListApplyDeltaTask"},
             {41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"},
             {41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"},
-            {42, nullptr, "Unknown42"},
-            {43, nullptr, "Unknown43"},
-            {44, nullptr, "Unknown44"},
-            {45, nullptr, "Unknown45"},
-            {46, nullptr, "Unknown46"},
-            {47, nullptr, "Unknown47"},
-            {48, nullptr, "Unknown48"},
-            {49, nullptr, "Unknown49"},
-            {50, nullptr, "Unknown50"},
-            {51, nullptr, "Unknown51"},
-            {52, nullptr, "Unknown52"},
-            {53, nullptr, "Unknown53"},
-            {54, nullptr, "Unknown54"},
-            {55, nullptr, "Unknown55"},
-            {56, nullptr, "Unknown56"},
-            {57, nullptr, "Unknown57"},
-            {58, nullptr, "Unknown58"},
-            {59, nullptr, "Unknown59"},
-            {60, nullptr, "Unknown60"},
-            {61, nullptr, "Unknown61"},
-            {62, nullptr, "Unknown62"},
-            {63, nullptr, "Unknown63"},
-            {64, nullptr, "Unknown64"},
-            {65, nullptr, "Unknown65"},
-            {66, nullptr, "Unknown66"},
-            {67, nullptr, "Unknown67"},
-            {68, nullptr, "Unknown68"},
-            {69, nullptr, "Unknown69"},
-            {70, nullptr, "Unknown70"},
-            {71, nullptr, "Unknown71"},
-            {72, nullptr, "Unknown72"},
-            {73, nullptr, "Unknown73"},
-            {74, nullptr, "Unknown74"},
-            {75, nullptr, "Unknown75"},
-            {76, nullptr, "Unknown76"},
-            {77, nullptr, "Unknown77"},
-            {78, nullptr, "Unknown78"},
-            {79, nullptr, "Unknown79"},
-            {80, nullptr, "Unknown80"},
-            {81, nullptr, "Unknown81"},
-            {82, nullptr, "Unknown82"},
-            {83, nullptr, "Unknown83"},
+            {42, nullptr, "CreateApplyDeltaTaskFromDownloadTask"},
+            {43, nullptr, "GetBackgroundApplyDeltaStressTaskInfo"},
+            {44, nullptr, "GetApplyDeltaTaskRequiredStorage"},
+            {45, nullptr, "CalculateNetworkInstallTaskContentsSize"},
+            {46, nullptr, "PrepareShutdownForSystemUpdate"},
+            {47, nullptr, "FindMaxRequiredApplicationVersionOfTask"},
+            {48, nullptr, "CommitNetworkInstallTaskPartially"},
+            {49, nullptr, "ListNetworkInstallTaskCommittedContentMeta"},
+            {50, nullptr, "ListNetworkInstallTaskNotCommittedContentMeta"},
+            {51, nullptr, "FindMaxRequiredSystemVersionOfTask"},
+            {52, nullptr, "GetNetworkInstallTaskErrorContext"},
+            {53, nullptr, "CreateLocalCommunicationReceiveApplicationTask"},
+            {54, nullptr, "DestroyLocalCommunicationReceiveApplicationTask"},
+            {55, nullptr, "ListLocalCommunicationReceiveApplicationTask"},
+            {56, nullptr, "RequestLocalCommunicationReceiveApplicationTaskRun"},
+            {57, nullptr, "GetLocalCommunicationReceiveApplicationTaskInfo"},
+            {58, nullptr, "CommitLocalCommunicationReceiveApplicationTask"},
+            {59, nullptr, "ListLocalCommunicationReceiveApplicationTaskContentMeta"},
+            {60, nullptr, "CreateLocalCommunicationSendApplicationTask"},
+            {61, nullptr, "RequestLocalCommunicationSendApplicationTaskRun"},
+            {62, nullptr, "GetLocalCommunicationReceiveApplicationTaskErrorContext"},
+            {63, nullptr, "GetLocalCommunicationSendApplicationTaskInfo"},
+            {64, nullptr, "DestroyLocalCommunicationSendApplicationTask"},
+            {65, nullptr, "GetLocalCommunicationSendApplicationTaskErrorContext"},
+            {66, nullptr, "CalculateLocalCommunicationReceiveApplicationTaskRequiredSize"},
+            {67, nullptr, "ListApplicationLocalCommunicationReceiveApplicationTask"},
+            {68, nullptr, "ListApplicationLocalCommunicationSendApplicationTask"},
+            {69, nullptr, "CreateLocalCommunicationReceiveSystemUpdateTask"},
+            {70, nullptr, "DestroyLocalCommunicationReceiveSystemUpdateTask"},
+            {71, nullptr, "ListLocalCommunicationReceiveSystemUpdateTask"},
+            {72, nullptr, "RequestLocalCommunicationReceiveSystemUpdateTaskRun"},
+            {73, nullptr, "GetLocalCommunicationReceiveSystemUpdateTaskInfo"},
+            {74, nullptr, "CommitLocalCommunicationReceiveSystemUpdateTask"},
+            {75, nullptr, "GetLocalCommunicationReceiveSystemUpdateTaskErrorContext"},
+            {76, nullptr, "CreateLocalCommunicationSendSystemUpdateTask"},
+            {77, nullptr, "RequestLocalCommunicationSendSystemUpdateTaskRun"},
+            {78, nullptr, "GetLocalCommunicationSendSystemUpdateTaskInfo"},
+            {79, nullptr, "DestroyLocalCommunicationSendSystemUpdateTask"},
+            {80, nullptr, "GetLocalCommunicationSendSystemUpdateTaskErrorContext"},
+            {81, nullptr, "ListLocalCommunicationSendSystemUpdateTask"},
+            {82, nullptr, "GetReceivedSystemDataPath"},
+            {83, nullptr, "CalculateApplyDeltaTaskOccupiedSize"},
             {84, nullptr, "Unknown84"},
             {84, nullptr, "Unknown84"},
-            {85, nullptr, "Unknown85"},
-            {86, nullptr, "Unknown86"},
+            {85, nullptr, "ListNetworkInstallTaskContentMetaFromInstallMeta"},
+            {86, nullptr, "ListNetworkInstallTaskOccupiedSize"},
             {87, nullptr, "Unknown87"},
             {87, nullptr, "Unknown87"},
             {88, nullptr, "Unknown88"},
             {88, nullptr, "Unknown88"},
             {89, nullptr, "Unknown89"},
             {89, nullptr, "Unknown89"},
@@ -202,6 +202,17 @@ public:
             {116, nullptr, "Unknown116"},
             {116, nullptr, "Unknown116"},
             {117, nullptr, "Unknown117"},
             {117, nullptr, "Unknown117"},
             {118, nullptr, "Unknown118"},
             {118, nullptr, "Unknown118"},
+            {119, nullptr, "Unknown119"},
+            {120, nullptr, "Unknown120"},
+            {121, nullptr, "Unknown121"},
+            {122, nullptr, "Unknown122"},
+            {123, nullptr, "Unknown123"},
+            {124, nullptr, "Unknown124"},
+            {125, nullptr, "Unknown125"},
+            {126, nullptr, "Unknown126"},
+            {127, nullptr, "Unknown127"},
+            {128, nullptr, "Unknown128"},
+            {129, nullptr, "Unknown129"},
         };
         };
         // clang-format on
         // clang-format on
 
 

+ 3 - 0
src/core/hle/service/npns/npns.cpp

@@ -49,6 +49,8 @@ public:
             {151, nullptr, "GetStateWithHandover"},
             {151, nullptr, "GetStateWithHandover"},
             {152, nullptr, "GetStateChangeEventWithHandover"},
             {152, nullptr, "GetStateChangeEventWithHandover"},
             {153, nullptr, "GetDropEventWithHandover"},
             {153, nullptr, "GetDropEventWithHandover"},
+            {154, nullptr, "CreateTokenAsync"},
+            {155, nullptr, "CreateTokenAsyncWithApplicationId"},
             {161, nullptr, "GetRequestChangeStateCancelEvent"},
             {161, nullptr, "GetRequestChangeStateCancelEvent"},
             {162, nullptr, "RequestChangeStateForceTimedWithCancelEvent"},
             {162, nullptr, "RequestChangeStateForceTimedWithCancelEvent"},
             {201, nullptr, "RequestChangeStateForceTimed"},
             {201, nullptr, "RequestChangeStateForceTimed"},
@@ -84,6 +86,7 @@ public:
             {151, nullptr, "GetStateWithHandover"},
             {151, nullptr, "GetStateWithHandover"},
             {152, nullptr, "GetStateChangeEventWithHandover"},
             {152, nullptr, "GetStateChangeEventWithHandover"},
             {153, nullptr, "GetDropEventWithHandover"},
             {153, nullptr, "GetDropEventWithHandover"},
+            {154, nullptr, "CreateTokenAsync"},
         };
         };
         // clang-format on
         // clang-format on
 
 

+ 38 - 3
src/core/hle/service/ns/ns.cpp

@@ -55,6 +55,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {26, nullptr, "BeginInstallApplication"},
         {26, nullptr, "BeginInstallApplication"},
         {27, nullptr, "DeleteApplicationRecord"},
         {27, nullptr, "DeleteApplicationRecord"},
         {30, nullptr, "RequestApplicationUpdateInfo"},
         {30, nullptr, "RequestApplicationUpdateInfo"},
+        {31, nullptr, "Unknown31"},
         {32, nullptr, "CancelApplicationDownload"},
         {32, nullptr, "CancelApplicationDownload"},
         {33, nullptr, "ResumeApplicationDownload"},
         {33, nullptr, "ResumeApplicationDownload"},
         {35, nullptr, "UpdateVersionList"},
         {35, nullptr, "UpdateVersionList"},
@@ -182,6 +183,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {913, nullptr, "ListAllApplicationRecord"},
         {913, nullptr, "ListAllApplicationRecord"},
         {914, nullptr, "HideApplicationRecord"},
         {914, nullptr, "HideApplicationRecord"},
         {915, nullptr, "ShowApplicationRecord"},
         {915, nullptr, "ShowApplicationRecord"},
+        {916, nullptr, "IsApplicationAutoDeleteDisabled"},
         {1000, nullptr, "RequestVerifyApplicationDeprecated"},
         {1000, nullptr, "RequestVerifyApplicationDeprecated"},
         {1001, nullptr, "CorruptApplicationForDebug"},
         {1001, nullptr, "CorruptApplicationForDebug"},
         {1002, nullptr, "RequestVerifyAddOnContentsRights"},
         {1002, nullptr, "RequestVerifyAddOnContentsRights"},
@@ -201,6 +203,8 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {1310, nullptr, "RequestMoveApplicationEntity"},
         {1310, nullptr, "RequestMoveApplicationEntity"},
         {1311, nullptr, "EstimateSizeToMove"},
         {1311, nullptr, "EstimateSizeToMove"},
         {1312, nullptr, "HasMovableEntity"},
         {1312, nullptr, "HasMovableEntity"},
+        {1313, nullptr, "CleanupOrphanContents"},
+        {1314, nullptr, "CheckPreconditionSatisfiedToMove"},
         {1400, nullptr, "PrepareShutdown"},
         {1400, nullptr, "PrepareShutdown"},
         {1500, nullptr, "FormatSdCard"},
         {1500, nullptr, "FormatSdCard"},
         {1501, nullptr, "NeedsSystemUpdateToFormatSdCard"},
         {1501, nullptr, "NeedsSystemUpdateToFormatSdCard"},
@@ -215,6 +219,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {1702, nullptr, "GetApplicationDownloadTaskStatus"},
         {1702, nullptr, "GetApplicationDownloadTaskStatus"},
         {1703, nullptr, "GetApplicationViewDownloadErrorContext"},
         {1703, nullptr, "GetApplicationViewDownloadErrorContext"},
         {1704, nullptr, "GetApplicationViewWithPromotionInfo"},
         {1704, nullptr, "GetApplicationViewWithPromotionInfo"},
+        {1705, nullptr, "IsPatchAutoDeletableApplication"},
         {1800, nullptr, "IsNotificationSetupCompleted"},
         {1800, nullptr, "IsNotificationSetupCompleted"},
         {1801, nullptr, "GetLastNotificationInfoCount"},
         {1801, nullptr, "GetLastNotificationInfoCount"},
         {1802, nullptr, "ListLastNotificationInfo"},
         {1802, nullptr, "ListLastNotificationInfo"},
@@ -269,6 +274,9 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {2351, nullptr, "RequestNoDownloadRightsErrorResolution"},
         {2351, nullptr, "RequestNoDownloadRightsErrorResolution"},
         {2352, nullptr, "RequestResolveNoDownloadRightsError"},
         {2352, nullptr, "RequestResolveNoDownloadRightsError"},
         {2353, nullptr, "GetApplicationDownloadTaskInfo"},
         {2353, nullptr, "GetApplicationDownloadTaskInfo"},
+        {2354, nullptr, "PrioritizeApplicationBackgroundTask"},
+        {2355, nullptr, "Unknown2355"},
+        {2356, nullptr, "Unknown2356"},
         {2400, nullptr, "GetPromotionInfo"},
         {2400, nullptr, "GetPromotionInfo"},
         {2401, nullptr, "CountPromotionInfo"},
         {2401, nullptr, "CountPromotionInfo"},
         {2402, nullptr, "ListPromotionInfo"},
         {2402, nullptr, "ListPromotionInfo"},
@@ -282,6 +290,21 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {2515, nullptr, "CleanupAllPlaceHolderAndFragmentsIfNoTask"},
         {2515, nullptr, "CleanupAllPlaceHolderAndFragmentsIfNoTask"},
         {2516, nullptr, "EnsureApplicationCertificate"},
         {2516, nullptr, "EnsureApplicationCertificate"},
         {2800, nullptr, "GetApplicationIdOfPreomia"},
         {2800, nullptr, "GetApplicationIdOfPreomia"},
+        {3000, nullptr, "RegisterDeviceLockKey"},
+        {3001, nullptr, "UnregisterDeviceLockKey"},
+        {3002, nullptr, "VerifyDeviceLockKey"},
+        {3003, nullptr, "HideApplicationIcon"},
+        {3004, nullptr, "ShowApplicationIcon"},
+        {3005, nullptr, "HideApplicationTitle"},
+        {3006, nullptr, "ShowApplicationTitle"},
+        {3007, nullptr, "EnableGameCard"},
+        {3008, nullptr, "DisableGameCard"},
+        {3009, nullptr, "EnableLocalContentShare"},
+        {3010, nullptr, "DisableLocalContentShare"},
+        {3011, nullptr, "IsApplicationIconHidden"},
+        {3012, nullptr, "IsApplicationTitleHidden"},
+        {3013, nullptr, "IsGameCardEnabled"},
+        {3014, nullptr, "IsLocalContentShareEnabled"},
         {9999, nullptr, "GetApplicationCertificate"},
         {9999, nullptr, "GetApplicationCertificate"},
     };
     };
     // clang-format on
     // clang-format on
@@ -441,7 +464,11 @@ IApplicationVersionInterface::IApplicationVersionInterface(Core::System& system_
         {800, nullptr, "RequestVersionList"},
         {800, nullptr, "RequestVersionList"},
         {801, nullptr, "ListVersionList"},
         {801, nullptr, "ListVersionList"},
         {802, nullptr, "RequestVersionListData"},
         {802, nullptr, "RequestVersionListData"},
+        {900, nullptr, "ImportAutoUpdatePolicyJsonForDebug"},
+        {901, nullptr, "ListDefaultAutoUpdatePolicy"},
+        {902, nullptr, "ListAutoUpdatePolicyForSpecificApplication"},
         {1000, nullptr, "PerformAutoUpdate"},
         {1000, nullptr, "PerformAutoUpdate"},
+        {1001, nullptr, "ListAutoUpdateSchedule"},
     };
     };
     // clang-format on
     // clang-format on
 
 
@@ -547,6 +574,9 @@ IFactoryResetInterface::~IFactoryResetInterface() = default;
 NS::NS(const char* name, Core::System& system_) : ServiceFramework{system_, name} {
 NS::NS(const char* name, Core::System& system_) : ServiceFramework{system_, name} {
     // clang-format off
     // clang-format off
     static const FunctionInfo functions[] = {
     static const FunctionInfo functions[] = {
+        {7988, nullptr, "GetDynamicRightsInterface"},
+        {7989, nullptr, "GetReadOnlyApplicationControlDataInterface"},
+        {7991, nullptr, "GetReadOnlyApplicationRecordInterface"},
         {7992, &NS::PushInterface<IECommerceInterface>, "GetECommerceInterface"},
         {7992, &NS::PushInterface<IECommerceInterface>, "GetECommerceInterface"},
         {7993, &NS::PushInterface<IApplicationVersionInterface>, "GetApplicationVersionInterface"},
         {7993, &NS::PushInterface<IApplicationVersionInterface>, "GetApplicationVersionInterface"},
         {7994, &NS::PushInterface<IFactoryResetInterface>, "GetFactoryResetInterface"},
         {7994, &NS::PushInterface<IFactoryResetInterface>, "GetFactoryResetInterface"},
@@ -575,18 +605,22 @@ public:
             {0, nullptr, "LaunchProgram"},
             {0, nullptr, "LaunchProgram"},
             {1, nullptr, "TerminateProcess"},
             {1, nullptr, "TerminateProcess"},
             {2, nullptr, "TerminateProgram"},
             {2, nullptr, "TerminateProgram"},
-            {4, nullptr, "GetShellEventHandle"},
+            {4, nullptr, "GetShellEvent"},
             {5, nullptr, "GetShellEventInfo"},
             {5, nullptr, "GetShellEventInfo"},
             {6, nullptr, "TerminateApplication"},
             {6, nullptr, "TerminateApplication"},
             {7, nullptr, "PrepareLaunchProgramFromHost"},
             {7, nullptr, "PrepareLaunchProgramFromHost"},
-            {8, nullptr, "LaunchApplication"},
+            {8, nullptr, "LaunchApplicationFromHost"},
             {9, nullptr, "LaunchApplicationWithStorageIdForDevelop"},
             {9, nullptr, "LaunchApplicationWithStorageIdForDevelop"},
             {10, nullptr, "IsSystemMemoryResourceLimitBoosted"},
             {10, nullptr, "IsSystemMemoryResourceLimitBoosted"},
             {11, nullptr, "GetRunningApplicationProcessIdForDevelop"},
             {11, nullptr, "GetRunningApplicationProcessIdForDevelop"},
-            {12, nullptr, "SetCurrentApplicationRightsEnvironmentCanBeActive"},
+            {12, nullptr, "SetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop"},
             {13, nullptr, "CreateApplicationResourceForDevelop"},
             {13, nullptr, "CreateApplicationResourceForDevelop"},
             {14, nullptr, "IsPreomiaForDevelop"},
             {14, nullptr, "IsPreomiaForDevelop"},
             {15, nullptr, "GetApplicationProgramIdFromHost"},
             {15, nullptr, "GetApplicationProgramIdFromHost"},
+            {16, nullptr, "RefreshCachedDebugValues"},
+            {17, nullptr, "PrepareLaunchApplicationFromHost"},
+            {18, nullptr, "GetLaunchEvent"},
+            {19, nullptr, "GetLaunchResult"},
         };
         };
         // clang-format on
         // clang-format on
 
 
@@ -699,6 +733,7 @@ void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system
     std::make_shared<NS>("ns:rid", system)->InstallAsService(service_manager);
     std::make_shared<NS>("ns:rid", system)->InstallAsService(service_manager);
     std::make_shared<NS>("ns:rt", system)->InstallAsService(service_manager);
     std::make_shared<NS>("ns:rt", system)->InstallAsService(service_manager);
     std::make_shared<NS>("ns:web", system)->InstallAsService(service_manager);
     std::make_shared<NS>("ns:web", system)->InstallAsService(service_manager);
+    std::make_shared<NS>("ns:ro", system)->InstallAsService(service_manager);
 
 
     std::make_shared<NS_DEV>(system)->InstallAsService(service_manager);
     std::make_shared<NS_DEV>(system)->InstallAsService(service_manager);
     std::make_shared<NS_SU>(system)->InstallAsService(service_manager);
     std::make_shared<NS_SU>(system)->InstallAsService(service_manager);

+ 8 - 0
src/core/hle/service/vi/vi.cpp

@@ -695,6 +695,7 @@ public:
             {2205, &ISystemDisplayService::SetLayerZ, "SetLayerZ"},
             {2205, &ISystemDisplayService::SetLayerZ, "SetLayerZ"},
             {2207, &ISystemDisplayService::SetLayerVisibility, "SetLayerVisibility"},
             {2207, &ISystemDisplayService::SetLayerVisibility, "SetLayerVisibility"},
             {2209, nullptr, "SetLayerAlpha"},
             {2209, nullptr, "SetLayerAlpha"},
+            {2210, nullptr, "SetLayerPositionAndSize"},
             {2312, nullptr, "CreateStrayLayer"},
             {2312, nullptr, "CreateStrayLayer"},
             {2400, nullptr, "OpenIndirectLayer"},
             {2400, nullptr, "OpenIndirectLayer"},
             {2401, nullptr, "CloseIndirectLayer"},
             {2401, nullptr, "CloseIndirectLayer"},
@@ -718,6 +719,7 @@ public:
             {3215, nullptr, "SetDisplayGamma"},
             {3215, nullptr, "SetDisplayGamma"},
             {3216, nullptr, "GetDisplayCmuLuma"},
             {3216, nullptr, "GetDisplayCmuLuma"},
             {3217, nullptr, "SetDisplayCmuLuma"},
             {3217, nullptr, "SetDisplayCmuLuma"},
+            {3218, nullptr, "SetDisplayCrcMode"},
             {6013, nullptr, "GetLayerPresentationSubmissionTimestamps"},
             {6013, nullptr, "GetLayerPresentationSubmissionTimestamps"},
             {8225, nullptr, "GetSharedBufferMemoryHandleId"},
             {8225, nullptr, "GetSharedBufferMemoryHandleId"},
             {8250, nullptr, "OpenSharedLayer"},
             {8250, nullptr, "OpenSharedLayer"},
@@ -729,6 +731,7 @@ public:
             {8256, nullptr, "GetSharedFrameBufferAcquirableEvent"},
             {8256, nullptr, "GetSharedFrameBufferAcquirableEvent"},
             {8257, nullptr, "FillSharedFrameBufferColor"},
             {8257, nullptr, "FillSharedFrameBufferColor"},
             {8258, nullptr, "CancelSharedFrameBuffer"},
             {8258, nullptr, "CancelSharedFrameBuffer"},
+            {9000, nullptr, "GetDp2hdmiController"},
         };
         };
         RegisterHandlers(functions);
         RegisterHandlers(functions);
     }
     }
@@ -808,10 +811,15 @@ public:
             {2402, nullptr, "GetDisplayHotplugState"},
             {2402, nullptr, "GetDisplayHotplugState"},
             {2501, nullptr, "GetCompositorErrorInfo"},
             {2501, nullptr, "GetCompositorErrorInfo"},
             {2601, nullptr, "GetDisplayErrorEvent"},
             {2601, nullptr, "GetDisplayErrorEvent"},
+            {2701, nullptr, "GetDisplayFatalErrorEvent"},
             {4201, nullptr, "SetDisplayAlpha"},
             {4201, nullptr, "SetDisplayAlpha"},
             {4203, nullptr, "SetDisplayLayerStack"},
             {4203, nullptr, "SetDisplayLayerStack"},
             {4205, nullptr, "SetDisplayPowerState"},
             {4205, nullptr, "SetDisplayPowerState"},
             {4206, nullptr, "SetDefaultDisplay"},
             {4206, nullptr, "SetDefaultDisplay"},
+            {4207, nullptr, "ResetDisplayPanel"},
+            {4208, nullptr, "SetDisplayFatalErrorEnabled"},
+            {4209, nullptr, "IsDisplayPanelOn"},
+            {4300, nullptr, "GetInternalPanelId"},
             {6000, &IManagerDisplayService::AddToLayerStack, "AddToLayerStack"},
             {6000, &IManagerDisplayService::AddToLayerStack, "AddToLayerStack"},
             {6001, nullptr, "RemoveFromLayerStack"},
             {6001, nullptr, "RemoveFromLayerStack"},
             {6002, &IManagerDisplayService::SetLayerVisibility, "SetLayerVisibility"},
             {6002, &IManagerDisplayService::SetLayerVisibility, "SetLayerVisibility"},