From 3c16ac28c20f37715d1a5d7c0e3a4d62587d720f Mon Sep 17 00:00:00 2001 From: Pavel Barabanov Date: Sun, 15 Jun 2025 23:22:14 +0300 Subject: [PATCH] missing services --- src/core/file_sys/nca_metadata.h | 1 + src/core/hle/service/acc/acc.cpp | 14 +++- src/core/hle/service/acc/acc_su.cpp | 11 +++ src/core/hle/service/acc/acc_u1.cpp | 3 + src/core/hle/service/am/am_types.h | 2 + .../all_system_applet_proxies_service.cpp | 43 +++++++++++ .../all_system_applet_proxies_service.h | 3 + .../am/service/applet_common_functions.cpp | 16 ++++ .../am/service/applet_common_functions.h | 1 + .../am/service/application_accessor.cpp | 2 + .../am/service/application_functions.cpp | 7 ++ .../service/am/service/audio_controller.cpp | 1 + .../am/service/common_state_getter.cpp | 5 ++ .../service/am/service/debug_functions.cpp | 6 ++ .../am/service/library_applet_accessor.cpp | 3 + .../am/service/library_applet_creator.cpp | 4 +- .../am/service/process_winding_controller.cpp | 7 +- .../am/service/process_winding_controller.h | 2 +- .../service/am/service/self_controller.cpp | 13 ++++ .../hle/service/am/service/self_controller.h | 1 + src/core/hle/service/caps/caps_a.cpp | 11 +++ src/core/hle/service/caps/caps_a.h | 4 + src/core/hle/service/erpt/erpt.cpp | 2 + .../hle/service/filesystem/fsp/fsp_srv.cpp | 2 + src/core/hle/service/friend/friend.cpp | 15 ++-- src/core/hle/service/hid/hid_debug_server.cpp | 2 + src/core/hle/service/hid/hid_server.cpp | 4 +- .../hle/service/hid/hid_system_server.cpp | 7 ++ src/core/hle/service/ldn/ldn.cpp | 1 + .../system_local_communication_service.cpp | 1 + .../ldn/user_local_communication_service.cpp | 2 + src/core/hle/service/lm/lm.cpp | 2 + src/core/hle/service/mii/mii.cpp | 2 + src/core/hle/service/nifm/nifm.cpp | 10 ++- .../ns/application_manager_interface.cpp | 20 +++++ .../ns/application_manager_interface.h | 3 + .../ns/content_management_interface.cpp | 2 + .../service/ns/platform_service_manager.cpp | 1 + .../service/pctl/parental_control_service.cpp | 39 +++++++++- .../service/pctl/parental_control_service.h | 2 + .../set/firmware_debug_settings_server.cpp | 1 + .../service/set/system_settings_server.cpp | 9 +++ src/core/hle/service/ssl/ssl.cpp | 2 + src/core/hle/service/ssl/ssl_types.h | 76 +++++++++++++++++-- 44 files changed, 344 insertions(+), 21 deletions(-) diff --git a/src/core/file_sys/nca_metadata.h b/src/core/file_sys/nca_metadata.h index 0606b8aad7..79f29a3caa 100644 --- a/src/core/file_sys/nca_metadata.h +++ b/src/core/file_sys/nca_metadata.h @@ -17,6 +17,7 @@ struct CNMTHeader; struct OptionalHeader; enum class TitleType : u8 { + Invalid = 0x00, SystemProgram = 0x01, SystemDataArchive = 0x02, SystemUpdate = 0x03, diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp index 51a542e5e6..fb064f9752 100644 --- a/src/core/hle/service/acc/acc.cpp +++ b/src/core/hle/service/acc/acc.cpp @@ -107,7 +107,9 @@ public: {160, nullptr, "RequiresUpdateNetworkServiceAccountIdTokenCache"}, {161, nullptr, "RequireReauthenticationOfNetworkServiceAccount"}, {170, nullptr, "CreateDeviceHistoryRequest"}, // 17.0.0+ - {180, nullptr, "GetRequestForNintendoAccountReauthentication"} // 18.0.0+ + {180, nullptr, "GetRequestForNintendoAccountReauthentication"}, // 18.0.0+ + {181, nullptr, "CreateProcedureToReauthenticateNintendoAccount"}, // 20.0.0+ + {182, nullptr, "ResumeProcedureToReauthenticateNintendoAccount"}, // 20.0.0+ }; // clang-format on @@ -197,6 +199,12 @@ public: {161, nullptr, "RequireReauthenticationOfNetworkServiceAccount"}, {170, nullptr, "CreateDeviceHistoryRequest"}, // 17.0.0+ {180, nullptr, "GetRequestForNintendoAccountReauthentication"}, // 18.0.0+ + {181, nullptr, "CreateProcedureToReauthenticateNintendoAccount"}, // 20.0.0+ + {182, nullptr, "ResumeProcedureToReauthenticateNintendoAccount"}, // 20.0.0+ + {183, nullptr, "GetNintendoAccountReauthenticationRequest"}, // 20.0.0+ + {190, nullptr, "GetDeviceMigrationInfo"}, // 20.0.0+ + {191, nullptr, "CheckDeviceMigrationAvailabilityAsync"}, // 20.0.0+ + {192, nullptr, "StartDeviceMigrationAsync"}, // 20.0.0+ {200, nullptr, "IsRegistered"}, {201, nullptr, "RegisterAsync"}, {202, nullptr, "UnregisterAsync"}, @@ -308,6 +316,7 @@ public: {220, nullptr, "RegisterUserAsyncWithoutProfile"}, // 17.0.0+ {221, nullptr, "RegisterUserWithProfileAsync"}, // 17.0.0+ {230, nullptr, "RegisterUserWithLargeImageProfileAsync"}, // 18.0.0+ + {240, nullptr, "RegisterUserWithReauthenticationAsync"}, // 20.0.0+ }; // clang-format on @@ -763,7 +772,8 @@ public: {210, nullptr, "IsProfileAvailable"}, // 17.0.0+ {220, nullptr, "RegisterUserAsyncWithoutProfile"}, // 17.0.0+ {221, nullptr, "RegisterUserWithProfileAsync"}, // 17.0.0+ - {230, nullptr, "RegisterUserWithLargeImageProfileAsync"} // 18.0.0+ + {230, nullptr, "RegisterUserWithLargeImageProfileAsync"}, // 18.0.0+ + {240, nullptr, "RegisterUserWithReauthenticationAsync"}, // 20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/acc/acc_su.cpp b/src/core/hle/service/acc/acc_su.cpp index 7d07ea0343..ff30b6cef0 100644 --- a/src/core/hle/service/acc/acc_su.cpp +++ b/src/core/hle/service/acc/acc_su.cpp @@ -56,15 +56,26 @@ ACC_SU::ACC_SU(std::shared_ptr module_, std::shared_ptr {212, nullptr, "ResumeProcedureToRegisterUserWithNintendoAccount"}, {230, nullptr, "AuthenticateServiceAsync"}, {250, nullptr, "GetBaasAccountAdministrator"}, + {251, nullptr, "SynchronizeNetworkServiceAccountsSnapshotAsync"}, // 20.0.0+ {290, nullptr, "ProxyProcedureForGuestLoginWithNintendoAccount"}, {291, nullptr, "ProxyProcedureForFloatingRegistrationWithNintendoAccount"}, + {292, nullptr, "ProxyProcedureForDeviceMigrationAuthenticatingOperatingUser"}, // 20.0.0+ + {293, nullptr, "ProxyProcedureForDeviceMigrationDownload"}, // 20.0.0+ {299, nullptr, "SuspendBackgroundDaemon"}, + {350, nullptr, "CreateDeviceMigrationUserExportRequest"}, // 20.0.0+ + {351, nullptr, "UploadNasCredential"}, // 20.0.0+ + {352, nullptr, "CreateDeviceMigrationUserImportRequest"}, // 20.0.0+ + {353, nullptr, "DeleteUserMigrationSaveData"}, // 20.0.0+ {400, nullptr, "SetPinCode"}, // 18.0.0+ {401, nullptr, "GetPinCodeLength"}, // 18.0.0+ {402, nullptr, "GetPinCode"}, // 18.0.0+ + {403, nullptr, "GetPinCodeParity"}, // 20.0.0+ + {404, nullptr, "VerifyPinCode"}, // 20.0.0+ + {405, nullptr, "IsPinCodeVerificationForbidden"}, // 20.0.0+ {410, nullptr, "GetPinCodeErrorCount"}, // 18.0.0+ {411, nullptr, "ResetPinCodeErrorCount"}, // 18.0.0+ {412, nullptr, "IncrementPinCodeErrorCount"}, // 18.0.0+ + {413, nullptr, "SetPinCodeErrorCount"}, // 20.0.0+ {900, nullptr, "SetUserUnqualifiedForDebug"}, {901, nullptr, "UnsetUserUnqualifiedForDebug"}, {902, nullptr, "ListUsersUnqualifiedForDebug"}, diff --git a/src/core/hle/service/acc/acc_u1.cpp b/src/core/hle/service/acc/acc_u1.cpp index 3832f5216d..ecc17ef31b 100644 --- a/src/core/hle/service/acc/acc_u1.cpp +++ b/src/core/hle/service/acc/acc_u1.cpp @@ -42,6 +42,9 @@ ACC_U1::ACC_U1(std::shared_ptr module_, std::shared_ptr {191, nullptr, "ActivateOpenContextHolder"}, {401, nullptr, "GetPinCodeLength"}, // 18.0.0+ {402, nullptr, "GetPinCode"}, // 18.0.0+ + {403, nullptr, "GetPinCodeParity"}, // 20.0.0+ + {404, nullptr, "VerifyPinCode"}, // 20.0.0+ + {405, nullptr, "IsPinCodeVerificationForbidden"}, // 20.0.0+ {997, nullptr, "DebugInvalidateTokenCacheForUser"}, {998, nullptr, "DebugSetUserStateClose"}, {999, nullptr, "DebugSetUserStateOpen"}, diff --git a/src/core/hle/service/am/am_types.h b/src/core/hle/service/am/am_types.h index eb9ad0ac5e..6d3609f0fb 100644 --- a/src/core/hle/service/am/am_types.h +++ b/src/core/hle/service/am/am_types.h @@ -90,6 +90,7 @@ enum class AppletId : u32 { LoginShare = 0x18, WebAuth = 0x19, MyPage = 0x1A, + Splay = 0x64, }; enum class AppletProgramId : u64 { @@ -114,6 +115,7 @@ enum class AppletProgramId : u64 { Starter = 0x0100000000001012ull, MyPage = 0x0100000000001013ull, MaxProgramId = 0x0100000000001FFFull, + Splay = 0x0100000000001048ull, }; // This is nn::am::AppletMessage diff --git a/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp b/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp index 5a787494a8..3e0df84d39 100644 --- a/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp +++ b/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp @@ -18,6 +18,7 @@ IAllSystemAppletProxiesService::IAllSystemAppletProxiesService(Core::System& sys // clang-format off static const FunctionInfo functions[] = { {100, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxy>, "OpenSystemAppletProxy"}, + {110, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxyForDebug>, "OpenSystemAppletProxyForDebug"}, {200, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxyOld>, "OpenLibraryAppletProxyOld"}, {201, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxy>, "OpenLibraryAppletProxy"}, {300, nullptr, "OpenOverlayAppletProxy"}, @@ -25,6 +26,7 @@ IAllSystemAppletProxiesService::IAllSystemAppletProxiesService(Core::System& sys {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"}, {410, nullptr, "GetSystemAppletControllerForDebug"}, {450, D<&IAllSystemAppletProxiesService::GetSystemProcessCommonFunctions>, "GetSystemProcessCommonFunctions"}, // 19.0.0+ + {460, D<&IAllSystemAppletProxiesService::Unknown460>, "Unknown460"}, {1000, nullptr, "GetDebugFunctions"}, }; // clang-format on @@ -49,6 +51,26 @@ Result IAllSystemAppletProxiesService::OpenSystemAppletProxy( } } +Result IAllSystemAppletProxiesService::OpenSystemAppletProxyForDebug( + Out> out_proxy, ClientProcessId pid) { + LOG_DEBUG(Service_AM, "OpenSystemAppletProxyForDebug called"); + + auto process = system.ApplicationProcess(); + if (!process) { + LOG_ERROR(Service_AM, "No application process available"); + R_THROW(ResultUnknown); + } + + if (const auto applet = GetAppletFromProcessId(pid)) { + *out_proxy = std::make_shared( + system, applet, process, m_window_system); + R_SUCCEED(); + } + + LOG_ERROR(Service_AM, "Applet not found for pid={}", pid.pid); + R_THROW(ResultUnknown); +} + Result IAllSystemAppletProxiesService::OpenLibraryAppletProxy( Out> out_library_applet_proxy, ClientProcessId pid, InCopyHandle process_handle, @@ -98,7 +120,28 @@ Result IAllSystemAppletProxiesService::GetSystemProcessCommonFunctions() { R_SUCCEED(); } +Result IAllSystemAppletProxiesService::Unknown460( + Out> out_common_functions) { + LOG_DEBUG(Service_AM, "called"); + + // Получаем текущий процесс + auto process = system.ApplicationProcess(); + if (!process) { + LOG_ERROR(Service_AM, "No application process available"); + R_THROW(ResultUnknown); + } + + // Получаем applet через существующий метод + auto applet = GetAppletFromProcessId(ProcessId{process->GetProcessId()}); + if (!applet) { + LOG_WARNING(Service_AM, "Applet not found for process"); + R_THROW(ResultUnknown); + } + + *out_common_functions = std::make_shared(system, applet); + R_SUCCEED(); +} std::shared_ptr IAllSystemAppletProxiesService::GetAppletFromProcessId( ProcessId process_id) { return m_window_system.GetByAppletResourceUserId(process_id.pid); diff --git a/src/core/hle/service/am/service/all_system_applet_proxies_service.h b/src/core/hle/service/am/service/all_system_applet_proxies_service.h index a3111c4c9b..d019da88b8 100644 --- a/src/core/hle/service/am/service/all_system_applet_proxies_service.h +++ b/src/core/hle/service/am/service/all_system_applet_proxies_service.h @@ -5,6 +5,7 @@ #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" +#include "core/hle/service/am/service/applet_common_functions.h" namespace Service { @@ -27,6 +28,7 @@ private: Result OpenSystemAppletProxy(Out> out_system_applet_proxy, ClientProcessId pid, InCopyHandle process_handle); + Result OpenSystemAppletProxyForDebug(Out> out_proxy, ClientProcessId pid); Result OpenLibraryAppletProxy(Out> out_library_applet_proxy, ClientProcessId pid, InCopyHandle process_handle, @@ -39,6 +41,7 @@ private: InCopyHandle process_handle, InLargeData attribute); Result GetSystemProcessCommonFunctions(); + Result Unknown460(Out> out_common_functions); private: std::shared_ptr GetAppletFromProcessId(ProcessId pid); diff --git a/src/core/hle/service/am/service/applet_common_functions.cpp b/src/core/hle/service/am/service/applet_common_functions.cpp index 1c9cd74533..360db3baa0 100644 --- a/src/core/hle/service/am/service/applet_common_functions.cpp +++ b/src/core/hle/service/am/service/applet_common_functions.cpp @@ -33,8 +33,16 @@ IAppletCommonFunctions::IAppletCommonFunctions(Core::System& system_, {100, nullptr, "SetApplicationCoreUsageMode"}, {300, D<&IAppletCommonFunctions::GetCurrentApplicationId>, "GetCurrentApplicationId"}, {310, nullptr, "IsSystemAppletHomeMenu"}, //19.0.0+ + {311, nullptr, "Unknown311"}, {320, nullptr, "SetGpuTimeSliceBoost"}, //19.0.0+ {321, nullptr, "SetGpuTimeSliceBoostDueToApplication"}, //19.0.0+ + {322, nullptr, "Unknown322"}, + {330, nullptr, "Unknown330"}, //19.0.0+ + {340, nullptr, "Unknown340"}, + {341, nullptr, "Unknown341"}, + {342, nullptr, "Unknown342"}, + {350, D<&IAppletCommonFunctions::Unknown350>, "Unknown350"}, + {360, nullptr, "Unknown360"}, }; // clang-format on @@ -70,4 +78,12 @@ Result IAppletCommonFunctions::GetCurrentApplicationId(Out out_application_ R_SUCCEED(); } +Result IAppletCommonFunctions::Unknown350(Out out_unknown) { + LOG_WARNING(Service_AM, "(STUBBED) called"); + + *out_unknown = 0; + + R_SUCCEED(); +} + } // namespace Service::AM diff --git a/src/core/hle/service/am/service/applet_common_functions.h b/src/core/hle/service/am/service/applet_common_functions.h index 376f85acf7..623efdb7fc 100644 --- a/src/core/hle/service/am/service/applet_common_functions.h +++ b/src/core/hle/service/am/service/applet_common_functions.h @@ -20,6 +20,7 @@ private: Result GetHomeButtonDoubleClickEnabled(Out out_home_button_double_click_enabled); Result SetCpuBoostRequestPriority(s32 priority); Result GetCurrentApplicationId(Out out_application_id); + Result Unknown350(Out out_unknown); const std::shared_ptr applet; }; diff --git a/src/core/hle/service/am/service/application_accessor.cpp b/src/core/hle/service/am/service/application_accessor.cpp index 986abc716a..cd2b595182 100644 --- a/src/core/hle/service/am/service/application_accessor.cpp +++ b/src/core/hle/service/am/service/application_accessor.cpp @@ -47,6 +47,8 @@ IApplicationAccessor::IApplicationAccessor(Core::System& system_, std::shared_pt {190, nullptr, "PushToNotificationStorageChannel"}, {200, nullptr, "RequestApplicationSoftReset"}, {201, nullptr, "RestartApplicationTimer"}, + {300, nullptr, "Unknown300"}, + {301, nullptr, "Unknown301"}, }; // clang-format on diff --git a/src/core/hle/service/am/service/application_functions.cpp b/src/core/hle/service/am/service/application_functions.cpp index 560244c714..bb3c76de3f 100644 --- a/src/core/hle/service/am/service/application_functions.cpp +++ b/src/core/hle/service/am/service/application_functions.cpp @@ -68,6 +68,8 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_, std::shared_ {102, D<&IApplicationFunctions::SetApplicationCopyrightVisibility>, "SetApplicationCopyrightVisibility"}, {110, D<&IApplicationFunctions::QueryApplicationPlayStatistics>, "QueryApplicationPlayStatistics"}, {111, D<&IApplicationFunctions::QueryApplicationPlayStatisticsByUid>, "QueryApplicationPlayStatisticsByUid"}, + {112, nullptr, "Unknown112"}, //20.0.0+ + {113, nullptr, "Unknown113"}, //20.0.0+ {120, D<&IApplicationFunctions::ExecuteProgram>, "ExecuteProgram"}, {121, D<&IApplicationFunctions::ClearUserChannel>, "ClearUserChannel"}, {122, D<&IApplicationFunctions::UnpopToUserChannel>, "UnpopToUserChannel"}, @@ -85,6 +87,11 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_, std::shared_ {181, nullptr, "UpgradeLaunchRequiredVersion"}, {190, nullptr, "SendServerMaintenanceOverlayNotification"}, {200, nullptr, "GetLastApplicationExitReason"}, + {210, nullptr, "Unknown210"}, //20.0.0+ + {220, nullptr, "Unknown220"}, //20.0.0+ + {300, nullptr, "CreateMovieWriter"}, //19.0.0+ + {310, nullptr, "Unknown310"}, //20.0.0+ + {320, nullptr, "Unknown320"}, //20.0.0+ {500, nullptr, "StartContinuousRecordingFlushForDebug"}, {1000, nullptr, "CreateMovieMaker"}, {1001, D<&IApplicationFunctions::PrepareForJit>, "PrepareForJit"}, diff --git a/src/core/hle/service/am/service/audio_controller.cpp b/src/core/hle/service/am/service/audio_controller.cpp index ad731c7bd3..ee983441a0 100644 --- a/src/core/hle/service/am/service/audio_controller.cpp +++ b/src/core/hle/service/am/service/audio_controller.cpp @@ -15,6 +15,7 @@ IAudioController::IAudioController(Core::System& system_) {2, D<&IAudioController::GetLibraryAppletExpectedMasterVolume>, "GetLibraryAppletExpectedMasterVolume"}, {3, D<&IAudioController::ChangeMainAppletMasterVolume>, "ChangeMainAppletMasterVolume"}, {4, D<&IAudioController::SetTransparentVolumeRate>, "SetTransparentVolumeRate"}, + {5, nullptr, "Unknown5"}, //20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/am/service/common_state_getter.cpp b/src/core/hle/service/am/service/common_state_getter.cpp index c179102f76..b4f1f6dea8 100644 --- a/src/core/hle/service/am/service/common_state_getter.cpp +++ b/src/core/hle/service/am/service/common_state_getter.cpp @@ -34,6 +34,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr, "GetAcquiredSleepLockEvent"}, {14, nullptr, "GetWakeupCount"}, + {15, nullptr, "Unknown15"}, //19.0.0+ {20, nullptr, "PushToGeneralChannel"}, {30, nullptr, "GetHomeButtonReaderLockAccessor"}, {31, D<&ICommonStateGetter::GetReaderLockAccessorEx>, "GetReaderLockAccessorEx"}, @@ -69,7 +70,11 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr, "SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled"}, + {1000, nullptr, "BeginVrMode3d"}, //19.0.0+ + {1001, nullptr, "EndVrMode3d"}, //19.0.0+ + {1002, nullptr, "IsVrModeEnabled3d"}, //19.0.0+ }; // clang-format on diff --git a/src/core/hle/service/am/service/debug_functions.cpp b/src/core/hle/service/am/service/debug_functions.cpp index fcac4776db..e9091748df 100644 --- a/src/core/hle/service/am/service/debug_functions.cpp +++ b/src/core/hle/service/am/service/debug_functions.cpp @@ -31,7 +31,13 @@ IDebugFunctions::IDebugFunctions(Core::System& system_) {140, nullptr, "RestrictPowerOperationForSecureLaunchModeForDebug"}, {200, nullptr, "CreateFloatingLibraryAppletAccepterForDebug"}, {300, nullptr, "TerminateAllRunningApplicationsForDebug"}, + {410, nullptr, "CreateGeneralStorageForDebug"}, //18.0.0+ + {411, nullptr, "ReadGeneralStorageForDebug"}, //18.0.0+ + {412, nullptr, "WriteGeneralStorageForDebug"}, //18.0.0+ + {430, nullptr, "Unknown430"}, //20.0.0+ + {431, nullptr, "Unknown431"}, //20.0.0+ {900, nullptr, "GetGrcProcessLaunchedSystemEvent"}, + {910, nullptr, "Unknown910"}, //20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/am/service/library_applet_accessor.cpp b/src/core/hle/service/am/service/library_applet_accessor.cpp index 5ce96a1e3f..b751f51459 100644 --- a/src/core/hle/service/am/service/library_applet_accessor.cpp +++ b/src/core/hle/service/am/service/library_applet_accessor.cpp @@ -25,6 +25,9 @@ ILibraryAppletAccessor::ILibraryAppletAccessor(Core::System& system_, {30, D<&ILibraryAppletAccessor::GetResult>, "GetResult"}, {50, nullptr, "SetOutOfFocusApplicationSuspendingEnabled"}, {60, D<&ILibraryAppletAccessor::PresetLibraryAppletGpuTimeSliceZero>, "PresetLibraryAppletGpuTimeSliceZero"}, + {80, nullptr, "RequestForLibraryAppletToGetForeground"}, //19.0.0+ + {81, nullptr, "GetCurrentChildLibraryApplet"}, //19.0.0+ + {90, nullptr, "Unknown90"}, //20.0.0+ {100, D<&ILibraryAppletAccessor::PushInData>, "PushInData"}, {101, D<&ILibraryAppletAccessor::PopOutData>, "PopOutData"}, {102, nullptr, "PushExtraStorage"}, diff --git a/src/core/hle/service/am/service/library_applet_creator.cpp b/src/core/hle/service/am/service/library_applet_creator.cpp index 413388d40a..e9cc6651e0 100644 --- a/src/core/hle/service/am/service/library_applet_creator.cpp +++ b/src/core/hle/service/am/service/library_applet_creator.cpp @@ -113,9 +113,10 @@ std::shared_ptr CreateGuestApplet(Core::System& system, Firmware1700 = 17, Firmware1800 = 18, Firmware1900 = 19, + Firmware2000 = 20, }; - auto process = CreateProcess(system, program_id, Firmware1400, Firmware1900); + auto process = CreateProcess(system, program_id, Firmware1400, Firmware2000); if (!process) { // Couldn't initialize the guest process return {}; @@ -173,6 +174,7 @@ ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_, std::shared_ {0, D<&ILibraryAppletCreator::CreateLibraryApplet>, "CreateLibraryApplet"}, {1, nullptr, "TerminateAllLibraryApplets"}, {2, nullptr, "AreAnyLibraryAppletsLeft"}, + {3, nullptr, "Unknown3"}, //20.0.0+ {10, D<&ILibraryAppletCreator::CreateStorage>, "CreateStorage"}, {11, D<&ILibraryAppletCreator::CreateTransferMemoryStorage>, "CreateTransferMemoryStorage"}, {12, D<&ILibraryAppletCreator::CreateHandleStorage>, "CreateHandleStorage"}, diff --git a/src/core/hle/service/am/service/process_winding_controller.cpp b/src/core/hle/service/am/service/process_winding_controller.cpp index 10df830d70..a150248e71 100644 --- a/src/core/hle/service/am/service/process_winding_controller.cpp +++ b/src/core/hle/service/am/service/process_winding_controller.cpp @@ -15,7 +15,7 @@ IProcessWindingController::IProcessWindingController(Core::System& system_, static const FunctionInfo functions[] = { {0, D<&IProcessWindingController::GetLaunchReason>, "GetLaunchReason"}, {11, D<&IProcessWindingController::OpenCallingLibraryApplet>, "OpenCallingLibraryApplet"}, - {21, nullptr, "PushContext"}, + {21, D<&IProcessWindingController::PushContext>, "PushContext"}, {22, nullptr, "PopContext"}, {23, nullptr, "CancelWindingReservation"}, {30, nullptr, "WindAndDoReserved"}, @@ -51,4 +51,9 @@ Result IProcessWindingController::OpenCallingLibraryApplet( R_SUCCEED(); } +Result IProcessWindingController::PushContext() { + LOG_WARNING(Service_AM, "(STUBBED) called"); + R_SUCCEED(); +} + } // namespace Service::AM diff --git a/src/core/hle/service/am/service/process_winding_controller.h b/src/core/hle/service/am/service/process_winding_controller.h index 4408af1f1d..bcf341d94c 100644 --- a/src/core/hle/service/am/service/process_winding_controller.h +++ b/src/core/hle/service/am/service/process_winding_controller.h @@ -21,7 +21,7 @@ private: Result GetLaunchReason(Out out_launch_reason); Result OpenCallingLibraryApplet( Out> out_calling_library_applet); - + Result PushContext(); const std::shared_ptr m_applet; }; diff --git a/src/core/hle/service/am/service/self_controller.cpp b/src/core/hle/service/am/service/self_controller.cpp index 1db02b88fd..72c6537978 100644 --- a/src/core/hle/service/am/service/self_controller.cpp +++ b/src/core/hle/service/am/service/self_controller.cpp @@ -38,6 +38,9 @@ ISelfController::ISelfController(Core::System& system_, std::shared_ptr {19, D<&ISelfController::SetAlbumImageOrientation>, "SetAlbumImageOrientation"}, {20, nullptr, "SetDesirableKeyboardLayout"}, {21, nullptr, "GetScreenShotProgramId"}, + {22, nullptr, "GetScreenShotAcdIndex"}, //19.0.0+ + {23, nullptr, "GetScreenShotApparentPlatform"}, //19.0.0+ + {24, nullptr, "GetScreenShotApplicationProperty"}, //19.0.0+ {40, D<&ISelfController::CreateManagedDisplayLayer>, "CreateManagedDisplayLayer"}, {41, D<&ISelfController::IsSystemBufferSharingEnabled>, "IsSystemBufferSharingEnabled"}, {42, D<&ISelfController::GetSystemSharedLayerHandle>, "GetSystemSharedLayerHandle"}, @@ -67,6 +70,12 @@ ISelfController::ISelfController(Core::System& system_, std::shared_ptr {110, nullptr, "SetApplicationAlbumUserData"}, {120, D<&ISelfController::SaveCurrentScreenshot>, "SaveCurrentScreenshot"}, {130, D<&ISelfController::SetRecordVolumeMuted>, "SetRecordVolumeMuted"}, + {200, nullptr, "Unknown200"}, //20.0.0+ + {210, nullptr, "Unknown210"}, //20.0.0+ + {211, nullptr, "Unknown211"}, //20.0.0+ + {220, nullptr, "Unknown220"}, //20.0.0+ + {221, nullptr, "Unknown221"}, //20.0.0+ + {230, D<&ISelfController::Unknown230>, "Unknown230"}, //20.0.0+ {1000, nullptr, "GetDebugStorageChannel"}, }; // clang-format on @@ -394,6 +403,10 @@ Result ISelfController::SaveCurrentScreenshot(Capture::AlbumReportOption album_r R_SUCCEED(); } +Result ISelfController::Unknown230() { + LOG_WARNING(Service_AM, "(STUBBED) called - function 230 (0xE6)"); + R_SUCCEED(); +} Result ISelfController::SetRecordVolumeMuted(bool muted) { LOG_WARNING(Service_AM, "(STUBBED) called. muted={}", muted); diff --git a/src/core/hle/service/am/service/self_controller.h b/src/core/hle/service/am/service/self_controller.h index eca083cfe5..a384846231 100644 --- a/src/core/hle/service/am/service/self_controller.h +++ b/src/core/hle/service/am/service/self_controller.h @@ -62,6 +62,7 @@ private: Result GetAccumulatedSuspendedTickChangedEvent(OutCopyHandle out_event); Result SetAlbumImageTakenNotificationEnabled(bool enabled); Result SaveCurrentScreenshot(Capture::AlbumReportOption album_report_option); + Result Unknown230(); Result SetRecordVolumeMuted(bool muted); Kernel::KProcess* const m_process; diff --git a/src/core/hle/service/caps/caps_a.cpp b/src/core/hle/service/caps/caps_a.cpp index 52228b830a..588cf2f09b 100644 --- a/src/core/hle/service/caps/caps_a.cpp +++ b/src/core/hle/service/caps/caps_a.cpp @@ -53,6 +53,8 @@ IAlbumAccessorService::IAlbumAccessorService(Core::System& system_, {8021, nullptr, "GetAlbumEntryFromApplicationAlbumEntryAruid"}, {10011, nullptr, "SetInternalErrorConversionEnabled"}, {50000, nullptr, "LoadMakerNoteInfoForDebug"}, + {50011, C<&IAlbumAccessorService::GetAlbumAccessResultForDebug>, "GetAlbumAccessResultForDebug"}, + {50012, C<&IAlbumAccessorService::SetAlbumAccessResultForDebug>, "SetAlbumAccessResultForDebug"}, {60002, nullptr, "OpenAccessorSession"}, }; // clang-format on @@ -137,6 +139,15 @@ Result IAlbumAccessorService::LoadAlbumScreenShotThumbnailImageEx1( R_RETURN(TranslateResult(result)); } +Result IAlbumAccessorService::GetAlbumAccessResultForDebug() { + LOG_DEBUG(Service_Capture, "(STUBBED) called."); + R_SUCCEED(); +} + +Result IAlbumAccessorService::SetAlbumAccessResultForDebug() { + LOG_DEBUG(Service_Capture, "(STUBBED) called."); + R_SUCCEED(); +} Result IAlbumAccessorService::TranslateResult(Result in_result) { if (in_result.IsSuccess()) { return in_result; diff --git a/src/core/hle/service/caps/caps_a.h b/src/core/hle/service/caps/caps_a.h index c7a5208e32..9590e71e70 100644 --- a/src/core/hle/service/caps/caps_a.h +++ b/src/core/hle/service/caps/caps_a.h @@ -50,6 +50,10 @@ private: OutArray out_image, OutArray out_buffer); + Result GetAlbumAccessResultForDebug(); + + Result SetAlbumAccessResultForDebug(); + Result TranslateResult(Result in_result); std::shared_ptr manager = nullptr; diff --git a/src/core/hle/service/erpt/erpt.cpp b/src/core/hle/service/erpt/erpt.cpp index 6b7eab5efd..627ef72973 100644 --- a/src/core/hle/service/erpt/erpt.cpp +++ b/src/core/hle/service/erpt/erpt.cpp @@ -30,6 +30,8 @@ public: {10, nullptr, "CreateReportWithAttachments"}, {11, C<&ErrorReportContext::CreateReportV1>, "CreateReportV1"}, {12, C<&ErrorReportContext::CreateReport>, "CreateReport"}, + {13, nullptr, "SubmitAttachmentWithLz4Compression"}, // 20.0.0+ + {14, nullptr, "CreateReportWithSpecifiedReprotId"}, // 20.0.0+ {20, nullptr, "RegisterRunningApplet"}, {21, nullptr, "UnregisterRunningApplet"}, {22, nullptr, "UpdateAppletSuspendedDuration"}, diff --git a/src/core/hle/service/filesystem/fsp/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp/fsp_srv.cpp index 005caf6562..f95c83259c 100644 --- a/src/core/hle/service/filesystem/fsp/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp/fsp_srv.cpp @@ -76,6 +76,7 @@ FSP_SRV::FSP_SRV(Core::System& system_) {34, D<&FSP_SRV::GetCacheStorageSize>, "GetCacheStorageSize"}, {35, nullptr, "CreateSaveDataFileSystemByHashSalt"}, {36, nullptr, "OpenHostFileSystemWithOption"}, + {38, nullptr, "DetachSdCard"}, // 20.0.0+ {51, D<&FSP_SRV::OpenSaveDataFileSystem>, "OpenSaveDataFileSystem"}, {52, D<&FSP_SRV::OpenSaveDataFileSystemBySystemSaveDataId>, "OpenSaveDataFileSystemBySystemSaveDataId"}, {53, D<&FSP_SRV::OpenReadOnlySaveDataFileSystem>, "OpenReadOnlySaveDataFileSystem"}, @@ -117,6 +118,7 @@ FSP_SRV::FSP_SRV(Core::System& system_) {400, nullptr, "OpenDeviceOperator"}, {500, nullptr, "OpenSdCardDetectionEventNotifier"}, {501, nullptr, "OpenGameCardDetectionEventNotifier"}, + {502, nullptr, "OpenSdCardAwakenReadyEventNotifier"}, // 20.0.0+ {510, nullptr, "OpenSystemDataUpdateEventNotifier"}, {511, nullptr, "NotifySystemDataUpdateEvent"}, {520, nullptr, "SimulateGameCardDetectionEvent"}, diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp index 84c73e9d6f..e4a6251dcc 100644 --- a/src/core/hle/service/friend/friend.cpp +++ b/src/core/hle/service/friend/friend.cpp @@ -50,16 +50,19 @@ public: {20102, nullptr, "GetFriendDetailedInfo"}, {20103, nullptr, "SyncFriendList"}, {20104, &IFriendService::RequestSyncFriendList, "RequestSyncFriendList"}, + {20107, nullptr, "GetFriendDetailedInfoV2"}, // 20.0.0+ {20110, nullptr, "LoadFriendSetting"}, {20200, &IFriendService::GetReceivedFriendRequestCount, "GetReceivedFriendRequestCount"}, - {20201, nullptr, "GetFriendRequestList"}, + {20201, nullptr, "GetFriendRequestListV1"}, // 20.0.0+ (1.0.0-19.0.1 GetFriendRequestList) + {20202, nullptr, "GetFriendRequestListV2"}, // 20.0.0+ {20300, nullptr, "GetFriendCandidateList"}, {20301, nullptr, "GetNintendoNetworkIdInfo"}, {20302, nullptr, "GetSnsAccountLinkage"}, {20303, nullptr, "GetSnsAccountProfile"}, {20304, nullptr, "GetSnsAccountFriendList"}, - {20400, nullptr, "GetBlockedUserList"}, + {20400, nullptr, "GetBlockedUserListV1"}, // 20.0.0+ (1.0.0-19.0.1 GetBlockedUserList) {20401, nullptr, "SyncBlockedUserList"}, + {20402, nullptr, "GetBlockedUserListV2"}, // 20.0.0+ {20500, nullptr, "GetProfileExtraList"}, {20501, nullptr, "GetRelationship"}, {20600, &IFriendService::GetUserPresenceView, "GetUserPresenceView"}, @@ -78,7 +81,7 @@ public: {30120, nullptr, "ChangeFriendFavoriteFlag"}, {30121, nullptr, "ChangeFriendOnlineNotificationFlag"}, {30200, nullptr, "SendFriendRequest"}, - {30201, nullptr, "SendFriendRequestWithApplicationInfo"}, + {30201, nullptr, "SendFriendRequestWithApplicationInfoV1"}, // 20.0.0+ (1.0.0-19.0.1 SendFriendRequestWithApplicationInfo) {30202, nullptr, "CancelFriendRequest"}, {30203, nullptr, "AcceptFriendRequest"}, {30204, nullptr, "RejectFriendRequest"}, @@ -91,11 +94,13 @@ public: {30215, nullptr, "SendFriendRequestWithExternalApplicationCatalogId"}, {30216, nullptr, "ResendFacedFriendRequest"}, {30217, nullptr, "SendFriendRequestWithNintendoNetworkIdInfo"}, + {30218, nullptr, "SendFriendRequestWithApplicationInfoV2"}, // 20.0.0+ {30300, nullptr, "GetSnsAccountLinkPageUrl"}, {30301, nullptr, "UnlinkSnsAccount"}, {30400, nullptr, "BlockUser"}, - {30401, nullptr, "BlockUserWithApplicationInfo"}, + {30401, nullptr, "BlockUserWithApplicationInfoV1"}, // 20.0.0+ (1.0.0-19.0.1 BlockUserWithApplicationInfo) {30402, nullptr, "UnblockUser"}, + {30403, nullptr, "BlockUserWithApplicationInfoV2"}, // 20.0.0+ {30500, nullptr, "GetProfileExtraFromFriendCode"}, {30700, nullptr, "DeletePlayHistory"}, {30810, nullptr, "ChangePresencePermission"}, @@ -473,4 +478,4 @@ void LoopProcess(Core::System& system) { ServerManager::RunServer(std::move(server_manager)); } -} // namespace Service::Friend +} // namespace Service::Friend \ No newline at end of file diff --git a/src/core/hle/service/hid/hid_debug_server.cpp b/src/core/hle/service/hid/hid_debug_server.cpp index 738c6d9ae2..96feec9f8b 100644 --- a/src/core/hle/service/hid/hid_debug_server.cpp +++ b/src/core/hle/service/hid/hid_debug_server.cpp @@ -87,6 +87,8 @@ IHidDebugServer::IHidDebugServer(Core::System& system_, std::shared_ptr r {134, C<&IHidServer::SetNpadAnalogStickUseCenterClamp>, "SetNpadAnalogStickUseCenterClamp"}, {135, C<&IHidServer::SetNpadCaptureButtonAssignment>, "SetNpadCaptureButtonAssignment"}, {136, C<&IHidServer::ClearNpadCaptureButtonAssignment>, "ClearNpadCaptureButtonAssignment"}, + {137, nullptr, "SetNpadGcAnalogStick8bitRawValue"}, // 20.0.0+ {200, C<&IHidServer::GetVibrationDeviceInfo>, "GetVibrationDeviceInfo"}, {201, C<&IHidServer::SendVibrationValue>, "SendVibrationValue"}, {202, C<&IHidServer::GetActualVibrationValue>, "GetActualVibrationValue"}, @@ -186,7 +187,8 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr r {1001, C<&IHidServer::GetNpadCommunicationMode>, "GetNpadCommunicationMode"}, {1002, C<&IHidServer::SetTouchScreenConfiguration>, "SetTouchScreenConfiguration"}, {1003, C<&IHidServer::IsFirmwareUpdateNeededForNotification>, "IsFirmwareUpdateNeededForNotification"}, - {1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"}, + {1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"}, // 20.0.0+ (17.0.0-19.0.1 SetTouchScreenResolution) + {1005, nullptr, "EnableNxTouchScreenEmulationForTouchEnter"}, // 20.0.0+ {2000, nullptr, "ActivateDigitizer"}, }; // clang-format on diff --git a/src/core/hle/service/hid/hid_system_server.cpp b/src/core/hle/service/hid/hid_system_server.cpp index 0f79844c94..9edfc045bf 100644 --- a/src/core/hle/service/hid/hid_system_server.cpp +++ b/src/core/hle/service/hid/hid_system_server.cpp @@ -67,6 +67,8 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr, "CreateMonitorService"} + {1, nullptr, "CreateClientProcessMonitor"} // 18.0.0+ }; // clang-format on diff --git a/src/core/hle/service/ldn/system_local_communication_service.cpp b/src/core/hle/service/ldn/system_local_communication_service.cpp index 7b52223cdc..d73f702356 100644 --- a/src/core/hle/service/ldn/system_local_communication_service.cpp +++ b/src/core/hle/service/ldn/system_local_communication_service.cpp @@ -40,6 +40,7 @@ ISystemLocalCommunicationService::ISystemLocalCommunicationService(Core::System& {401, nullptr, "FinalizeSystem"}, {402, nullptr, "SetOperationMode"}, {403, C<&ISystemLocalCommunicationService::InitializeSystem2>, "InitializeSystem2"}, + {404, nullptr, "InitializeWithPriority"}, // 19.0.0+ }; // clang-format on diff --git a/src/core/hle/service/ldn/user_local_communication_service.cpp b/src/core/hle/service/ldn/user_local_communication_service.cpp index 69170a879d..ba3c06b16a 100644 --- a/src/core/hle/service/ldn/user_local_communication_service.cpp +++ b/src/core/hle/service/ldn/user_local_communication_service.cpp @@ -57,6 +57,8 @@ IUserLocalCommunicationService::IUserLocalCommunicationService(Core::System& sys {400, C<&IUserLocalCommunicationService::Initialize>, "Initialize"}, {401, C<&IUserLocalCommunicationService::Finalize>, "Finalize"}, {402, C<&IUserLocalCommunicationService::Initialize2>, "Initialize2"}, + {403, nullptr, "InitializeWithPriority"}, // 19.0.0+ + {500, nullptr, "EnableActionFrame"}, // 18.0.0+ }; // clang-format on diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp index 20df002330..d01a59e86e 100644 --- a/src/core/hle/service/lm/lm.cpp +++ b/src/core/hle/service/lm/lm.cpp @@ -88,6 +88,8 @@ public: static const FunctionInfo functions[] = { {0, &ILogger::Log, "Log"}, {1, &ILogger::SetDestination, "SetDestination"}, + {2, nullptr, "TransmitHashedLog"}, // 20.0.0+ + {3, nullptr, "DevNotify"}, // 20.0.0+ }; RegisterHandlers(functions); } diff --git a/src/core/hle/service/mii/mii.cpp b/src/core/hle/service/mii/mii.cpp index adaaea571a..da491bb787 100644 --- a/src/core/hle/service/mii/mii.cpp +++ b/src/core/hle/service/mii/mii.cpp @@ -333,6 +333,8 @@ public: {15, nullptr, "LoadImage"}, {16, nullptr, "AddOrUpdateImage"}, {17, nullptr, "DeleteImages"}, + {19, nullptr, "ClearHeaderForMigration"}, // 20.0.0+ + {20, nullptr, "SaveHeaderForMigration"}, // 20.0.0+ {100, nullptr, "DeleteFile"}, {101, nullptr, "DestroyFile"}, {102, nullptr, "ImportFile"}, diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 4710167364..2223ac197e 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -1094,10 +1094,16 @@ IGeneralService::IGeneralService(Core::System& system_) {44, nullptr, "IsWiredConnectionAvailable"}, // 18.0.0+ {45, nullptr, "IsNetworkEmulationFeatureEnabled"}, // 18.0.0+ {46, nullptr, "SelectActiveNetworkEmulationProfileIdForDebug"}, // 18.0.0+ - {47, &IGeneralService::GetScanDataV3, "GetScanData"}, // 19.0.0+ + {47, nullptr, "GetActiveNetworkEmulationProfileId"}, // 18.0.0+ + {48, nullptr, "ResetActiveNetworkEmulationProfileId"}, // 20.0.0+ {50, nullptr, "IsRewriteFeatureEnabled"}, // 18.0.0+ {51, nullptr, "CreateRewriteRule"}, // 18.0.0+ - {52, nullptr, "DestroyRewriteRule"} // 18.0.0+ + {52, nullptr, "DestroyRewriteRule"}, // 18.0.0+ + {53, nullptr, "IsActiveNetworkEmulationProfileIdSelected"}, // 20.0.0+ + {54, nullptr, "SelectDefaultNetworkEmulationProfileId"}, // 20.0.0+ + {55, nullptr, "GetDefaultNetworkEmulationProfileId"}, // 20.0.0+ + {56, nullptr, "GetNetworkEmulationProfile"}, // 20.0.0+ + {57, nullptr, "SetWowlTcpKeepAliveTimeout"}, // 20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/ns/application_manager_interface.cpp b/src/core/hle/service/ns/application_manager_interface.cpp index f1ddba8231..6226ff9847 100644 --- a/src/core/hle/service/ns/application_manager_interface.cpp +++ b/src/core/hle/service/ns/application_manager_interface.cpp @@ -306,6 +306,9 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_ {3013, nullptr, "IsGameCardEnabled"}, {3014, nullptr, "IsLocalContentShareEnabled"}, {3050, nullptr, "ListAssignELicenseTaskResult"}, + {4022, D<&IApplicationManagerInterface::Unknown4022>, "Unknown4022"}, + {4023, D<&IApplicationManagerInterface::Unknown4023>, "Unknown4023"}, + {4088, D<&IApplicationManagerInterface::Unknown4088>, "Unknown4088"}, {9999, nullptr, "GetApplicationCertificate"}, }; // clang-format on @@ -516,6 +519,23 @@ Result IApplicationManagerInterface::CheckApplicationLaunchVersion(u64 applicati R_SUCCEED(); } +Result IApplicationManagerInterface::Unknown4022(Out out_unknown) { + LOG_WARNING(Service_NS, "(STUBBED) Unknown4022 called"); + *out_unknown = 0; + R_SUCCEED(); +} + +Result IApplicationManagerInterface::Unknown4023(Out out_unknown) { + LOG_WARNING(Service_NS, "(STUBBED) Unknown4022 called"); + + *out_unknown = 0; + R_SUCCEED(); +} +Result IApplicationManagerInterface::Unknown4088() { + LOG_WARNING(Service_NS, "(STUBBED) Unknown4088 called"); + R_SUCCEED(); +} + Result IApplicationManagerInterface::GetApplicationTerminateResult(Out out_result, u64 application_id) { LOG_WARNING(Service_NS, "(STUBBED) called. application_id={:016X}", application_id); diff --git a/src/core/hle/service/ns/application_manager_interface.h b/src/core/hle/service/ns/application_manager_interface.h index 2def50bd5c..dcd2a07a99 100644 --- a/src/core/hle/service/ns/application_manager_interface.h +++ b/src/core/hle/service/ns/application_manager_interface.h @@ -52,6 +52,9 @@ public: Result IsApplicationUpdateRequested(Out out_update_required, Out out_update_version, u64 application_id); Result CheckApplicationLaunchVersion(u64 application_id); + Result Unknown4022(Out out_unknown); + Result Unknown4023(Out out_unknown); + Result Unknown4088(); Result GetApplicationTerminateResult(Out out_result, u64 application_id); private: diff --git a/src/core/hle/service/ns/content_management_interface.cpp b/src/core/hle/service/ns/content_management_interface.cpp index 69bb3f6e4a..b94b7d859d 100644 --- a/src/core/hle/service/ns/content_management_interface.cpp +++ b/src/core/hle/service/ns/content_management_interface.cpp @@ -18,6 +18,8 @@ IContentManagementInterface::IContentManagementInterface(Core::System& system_) {43, D<&IContentManagementInterface::CheckSdCardMountStatus>, "CheckSdCardMountStatus"}, {47, D<&IContentManagementInterface::GetTotalSpaceSize>, "GetTotalSpaceSize"}, {48, D<&IContentManagementInterface::GetFreeSpaceSize>, "GetFreeSpaceSize"}, + {58, nullptr, "Unknown58"}, // 20.1.0+ + {71, nullptr, "Unknown71"}, // 20.1.0+ {600, nullptr, "CountApplicationContentMeta"}, {601, nullptr, "ListApplicationContentMetaStatus"}, {605, nullptr, "ListApplicationContentMetaStatusWithRightsCheck"}, diff --git a/src/core/hle/service/ns/platform_service_manager.cpp b/src/core/hle/service/ns/platform_service_manager.cpp index 23cf05005c..fd144a4dff 100644 --- a/src/core/hle/service/ns/platform_service_manager.cpp +++ b/src/core/hle/service/ns/platform_service_manager.cpp @@ -147,6 +147,7 @@ IPlatformServiceManager::IPlatformServiceManager(Core::System& system_, const ch {104, nullptr, "RequestApplicationFunctionAuthorizationByProgramId"}, {105, nullptr, "GetFunctionBlackListSystemVersionToAuthorize"}, {106, nullptr, "GetFunctionBlackListVersion"}, + {108, nullptr, "GetRequiredApplicationVersion"}, // 20.0.0+ {1000, nullptr, "LoadNgWordDataForPlatformRegionChina"}, {1001, nullptr, "GetNgWordDataSizeForPlatformRegionChina"}, }; diff --git a/src/core/hle/service/pctl/parental_control_service.cpp b/src/core/hle/service/pctl/parental_control_service.cpp index 1d990e66d7..84579c7364 100644 --- a/src/core/hle/service/pctl/parental_control_service.cpp +++ b/src/core/hle/service/pctl/parental_control_service.cpp @@ -38,6 +38,8 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili {1016, nullptr, "ConfirmShowNewsPermission"}, {1017, D<&IParentalControlService::EndFreeCommunication>, "EndFreeCommunication"}, {1018, D<&IParentalControlService::IsFreeCommunicationAvailable>, "IsFreeCommunicationAvailable"}, + {1019, nullptr, "ConfirmLaunchApplicationPermission"}, // 20.0.0+ + {1020, nullptr, "ConfirmLaunchSharedApplicationPermission"}, // 20.0.0+ {1031, D<&IParentalControlService::IsRestrictionEnabled>, "IsRestrictionEnabled"}, {1032, D<&IParentalControlService::GetSafetyLevel>, "GetSafetyLevel"}, {1033, nullptr, "SetSafetyLevel"}, @@ -52,9 +54,11 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili {1044, nullptr, "GetFreeCommunicationApplicationList"}, {1045, nullptr, "UpdateFreeCommunicationApplicationList"}, {1046, nullptr, "DisableFeaturesForReset"}, - {1047, nullptr, "NotifyApplicationDownloadStarted"}, + {1047, nullptr, "NotifyApplicationDownloadStartedOld"}, // 20.0.0+ (3.0.0-19.0.1 NotifyApplicationDownloadStarted) {1048, nullptr, "NotifyNetworkProfileCreated"}, {1049, nullptr, "ResetFreeCommunicationApplicationList"}, + {1050, nullptr, "AddToFreeCommunicationApplicationList"}, // 20.0.0+ + {1051, nullptr, "NotifyApplicationDownloadStarted"}, // 20.0.0+ {1061, D<&IParentalControlService::ConfirmStereoVisionRestrictionConfigurable>, "ConfirmStereoVisionRestrictionConfigurable"}, {1062, D<&IParentalControlService::GetStereoVisionRestriction>, "GetStereoVisionRestriction"}, {1063, D<&IParentalControlService::SetStereoVisionRestriction>, "SetStereoVisionRestriction"}, @@ -80,16 +84,18 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili {1451, D<&IParentalControlService::StartPlayTimer>, "StartPlayTimer"}, {1452, D<&IParentalControlService::StopPlayTimer>, "StopPlayTimer"}, {1453, D<&IParentalControlService::IsPlayTimerEnabled>, "IsPlayTimerEnabled"}, - {1454, nullptr, "GetPlayTimerRemainingTime"}, + {1454, D<&IParentalControlService::GetPlayTimerRemainingTime>, "GetPlayTimerRemainingTime"}, {1455, D<&IParentalControlService::IsRestrictedByPlayTimer>, "IsRestrictedByPlayTimer"}, {1456, D<&IParentalControlService::GetPlayTimerSettingsOld>, "GetPlayTimerSettingsOld"}, {1457, D<&IParentalControlService::GetPlayTimerEventToRequestSuspension>, "GetPlayTimerEventToRequestSuspension"}, {1458, D<&IParentalControlService::IsPlayTimerAlarmDisabled>, "IsPlayTimerAlarmDisabled"}, + {1459, D<&IParentalControlService::GetPlayTimerRemainingTimeDisplayInfo>, "GetPlayTimerRemainingTimeDisplayInfo"}, // 20.0.0+ {1471, nullptr, "NotifyWrongPinCodeInputManyTimes"}, {1472, nullptr, "CancelNetworkRequest"}, {1473, D<&IParentalControlService::GetUnlinkedEvent>, "GetUnlinkedEvent"}, {1474, nullptr, "ClearUnlinkedEvent"}, {1475, nullptr, "GetExtendedPlayTimerEvent"}, // 18.0.0+ + {1501, nullptr, "SetTimerEventEnabled"}, // 20.0.0+ {1601, nullptr, "DisableAllFeatures"}, {1602, nullptr, "PostEnableAllFeatures"}, {1603, nullptr, "IsAllFeaturesDisabled"}, @@ -109,6 +115,9 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili {1955, nullptr, "GetBedtimeAlarmTime"}, // 18.0.0+ {1956, nullptr, "GetBedtimeAlarmTimeHour"}, // 18.0.0+ {1957, nullptr, "GetBedtimeAlarmTimeMinute"}, // 18.0.0+ + {1958, nullptr, "GetBedtimeAlarmResetTimeHour"}, // 20.0.0+ + {1959, nullptr, "GetBedtimeAlarmResetTimeMinute"}, // 20.0.0+ + {1960, nullptr, "GetExtraPlayingTimeForDebug"}, // 20.0.0+ {2001, nullptr, "RequestPairingAsync"}, {2002, nullptr, "FinishRequestPairing"}, {2003, nullptr, "AuthorizePairingAsync"}, @@ -125,6 +134,15 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili {2014, nullptr, "FinishSynchronizeParentalControlSettings"}, {2015, nullptr, "FinishSynchronizeParentalControlSettingsWithLastUpdated"}, {2016, nullptr, "RequestUpdateExemptionListAsync"}, + {2021, nullptr, "RequestCopyPairingAsync"}, // 20.0.0+ + {2022, nullptr, "FinishRequestCopyPairing"}, // 20.0.0+ + {2023, nullptr, "IsFromPairingActiveDevice"}, // 20.0.0+ + {3001, nullptr, "GetErrorContextChangedEvent"}, // 20.0.0+ + {9401, nullptr, "GetEvents"}, // 20.0.0+ + {9402, nullptr, "GetEventsWithJson"}, // 20.0.0+ + {9403, nullptr, "RequestPostEvents"}, // 20.0.0+ + {9404, nullptr, "GetPostEventInterval"}, // 20.0.0+ + {9405, nullptr, "SetPostEventInterval"}, // 20.0.0+ {145601, D<&IParentalControlService::GetPlayTimerSettings>, "GetPlayTimerSettings"} // 18.0.0+ }; // clang-format on @@ -378,6 +396,12 @@ Result IParentalControlService::IsPlayTimerEnabled(Out out_is_play_timer_e R_SUCCEED(); } +Result IParentalControlService::GetPlayTimerRemainingTime(Out out_remaining_minutes) { + *out_remaining_minutes = 0; + LOG_WARNING(Service_PCTL, "(STUBBED) called, remaining_minutes={}", *out_remaining_minutes); + R_SUCCEED(); +} + Result IParentalControlService::IsRestrictedByPlayTimer(Out out_is_restricted_by_play_timer) { *out_is_restricted_by_play_timer = false; LOG_WARNING(Service_PCTL, "(STUBBED) called, restricted={}", *out_is_restricted_by_play_timer); @@ -412,6 +436,15 @@ Result IParentalControlService::IsPlayTimerAlarmDisabled(Out out_play_time R_SUCCEED(); } +Result IParentalControlService::GetPlayTimerRemainingTimeDisplayInfo( + Out out_remaining_minutes, Out out_unknown) { + *out_remaining_minutes = 0; + *out_unknown = 0; + LOG_WARNING(Service_PCTL, "(STUBBED) called, remaining_minutes={}, unknown={}", + *out_remaining_minutes, *out_unknown); + R_SUCCEED(); +} + Result IParentalControlService::GetUnlinkedEvent(OutCopyHandle out_event) { LOG_INFO(Service_PCTL, "called"); *out_event = unlinked_event.GetHandle(); @@ -452,4 +485,4 @@ Result IParentalControlService::ResetConfirmedStereoVisionPermission() { R_SUCCEED(); } -} // namespace Service::PCTL +} // namespace Service::PCTL \ No newline at end of file diff --git a/src/core/hle/service/pctl/parental_control_service.h b/src/core/hle/service/pctl/parental_control_service.h index 1b1884c4de..d24841cd27 100644 --- a/src/core/hle/service/pctl/parental_control_service.h +++ b/src/core/hle/service/pctl/parental_control_service.h @@ -49,10 +49,12 @@ private: Result StartPlayTimer(); Result StopPlayTimer(); Result IsPlayTimerEnabled(Out out_is_play_timer_enabled); + Result GetPlayTimerRemainingTime(Out out_remaining_minutes); Result IsRestrictedByPlayTimer(Out out_is_restricted_by_play_timer); Result GetPlayTimerSettingsOld(Out out_play_timer_settings); Result GetPlayTimerEventToRequestSuspension(OutCopyHandle out_event); Result IsPlayTimerAlarmDisabled(Out out_play_timer_alarm_disabled); + Result GetPlayTimerRemainingTimeDisplayInfo(Out out_remaining_minutes, Out out_unknown); Result GetUnlinkedEvent(OutCopyHandle out_event); Result GetStereoVisionRestriction(Out out_stereo_vision_restriction); Result SetStereoVisionRestriction(bool stereo_vision_restriction); diff --git a/src/core/hle/service/set/firmware_debug_settings_server.cpp b/src/core/hle/service/set/firmware_debug_settings_server.cpp index b3a5e623b6..a2b087b371 100644 --- a/src/core/hle/service/set/firmware_debug_settings_server.cpp +++ b/src/core/hle/service/set/firmware_debug_settings_server.cpp @@ -18,6 +18,7 @@ IFirmwareDebugSettingsServer::IFirmwareDebugSettingsServer(Core::System& system_ {21, nullptr, "SetAllowedSslHosts"}, {22, nullptr, "SetHostFsMountPoint"}, {23, nullptr, "SetMemoryUsageRateFlag"}, + {24, nullptr, "CommitSettings"}, // 20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index d246b95d0e..8c2db821b2 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -304,6 +304,15 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_) {222, nullptr, "SetForceMonauralOutputFlag"}, //17.0.0+ {251, nullptr, "GetAccountIdentificationSettings"}, //18.0.0+ {252, nullptr, "SetAccountIdentificationSettings"}, //18.0.0+ + {263, nullptr, "AcquireVphymDirtyFlagEventHandle"}, // 20.0.0+ + {264, nullptr, "GetVphymDirtyFlags"}, // 20.0.0+ + {282, nullptr, "ConvertToProductModel"}, // 20.0.0+ + {283, nullptr, "ConvertToProductModelName"}, // 20.0.0+ + {289, nullptr, "GetDefaultAccountIdentificationFlagSet"}, // 20.0.0+ + {300, nullptr, "AcquirePushNotificationDirtyFlagEventHandle"}, // 20.0.0+ + {301, nullptr, "GetPushNotificationDirtyFlags"}, // 20.0.0+ + {306, nullptr, "GetPinCodeReregistrationGuideAccounts"}, // 20.0.0+ + {307, nullptr, "SetPinCodeReregistrationGuideAccounts"}, // 20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/ssl/ssl.cpp b/src/core/hle/service/ssl/ssl.cpp index 2d10bd04d2..d16216a0ab 100644 --- a/src/core/hle/service/ssl/ssl.cpp +++ b/src/core/hle/service/ssl/ssl.cpp @@ -108,6 +108,8 @@ public: {33, nullptr, "ExportKeyingMaterial"}, {34, nullptr, "SetIoTimeout"}, {35, nullptr, "GetIoTimeout"}, + {36, nullptr, "GetSessionTicket"}, // 20.0.0+ + {37, nullptr, "SetSessionTicket"}, // 20.0.0+ }; // clang-format on diff --git a/src/core/hle/service/ssl/ssl_types.h b/src/core/hle/service/ssl/ssl_types.h index 16623c0fc5..9a9793f4f3 100644 --- a/src/core/hle/service/ssl/ssl_types.h +++ b/src/core/hle/service/ssl/ssl_types.h @@ -11,7 +11,7 @@ enum class CaCertificateId : s32 { All = -1, NintendoCAG3 = 1, NintendoClass2CAG3 = 2, - NintendoRootCAG4 = 3, + NintendoRootCAG4 = 3, // [16.0.0+] AmazonRootCA1 = 1000, StarfieldServicesRootCertificateAuthorityG2 = 1001, AddTrustExternalCARoot = 1002, @@ -29,10 +29,10 @@ enum class CaCertificateId : s32 { EntrustnetCertificationAuthority2048 = 1014, EntrustRootCertificationAuthority = 1015, EntrustRootCertificationAuthorityG2 = 1016, - GeoTrustGlobalCA2 = 1017, - GeoTrustGlobalCA = 1018, - GeoTrustPrimaryCertificationAuthorityG3 = 1019, - GeoTrustPrimaryCertificationAuthority = 1020, + GeoTrustGlobalCA2 = 1017, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + GeoTrustGlobalCA = 1018, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + GeoTrustPrimaryCertificationAuthorityG3 = 1019, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + GeoTrustPrimaryCertificationAuthority = 1020, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted GlobalSignRootCA = 1021, GlobalSignRootCAR2 = 1022, GlobalSignRootCAR3 = 1023, @@ -73,6 +73,72 @@ enum class CaCertificateId : s32 { DigiCertTLSECCP384RootG5 = 1058, // [16.0.0+] DigiCertTLSRSA4096RootG5 = 1059, // [16.0.0+] NintendoTempRootCAG4 = 65536, // [16.0.0+] ([19.0.0+] Removed) + + // Nintendo round-robin certificates [20.0.0+] + NintendoRR01 = 32801, + NintendoRR02 = 32802, + NintendoRR03 = 32803, + NintendoRR04 = 32804, + NintendoRR05 = 32805, + NintendoRR06 = 32806, + NintendoRR07 = 32807, + NintendoRR08 = 32808, + NintendoRR09 = 32809, + NintendoRR10 = 32810, + NintendoRR11 = 32811, + NintendoRR12 = 32812, + NintendoRR13 = 32813, + NintendoRR14 = 32814, + NintendoRR15 = 32815, + NintendoRR16 = 32816, + NintendoRR17 = 32817, + NintendoRR18 = 32818, + NintendoRR19 = 32819, + NintendoRR20 = 32820, + NintendoRR21 = 32821, + NintendoRR22 = 32822, + NintendoRR23 = 32823, + NintendoRR24 = 32824, + NintendoRR25 = 32825, + NintendoRR26 = 32826, + NintendoRR27 = 32827, + NintendoRR28 = 32828, + NintendoRR29 = 32829, + NintendoRR30 = 32830, + NintendoRR31 = 32831, + NintendoRR32 = 32832, + NintendoRR33 = 32833, + NintendoRR34 = 32834, + NintendoRR35 = 32835, + NintendoRR36 = 32836, + NintendoRR37 = 32837, + NintendoRR38 = 32838, + NintendoRR39 = 32839, + NintendoRR40 = 32840, + NintendoRR41 = 32841, + NintendoRR42 = 32842, + NintendoRR43 = 32843, + NintendoRR44 = 32844, + NintendoRR45 = 32845, + NintendoRR46 = 32846, + NintendoRR47 = 32847, + NintendoRR48 = 32848, + NintendoRR49 = 32849, + NintendoRR50 = 32850, + NintendoRR51 = 32851, + NintendoRR52 = 32852, + NintendoRR53 = 32853, + NintendoRR54 = 32854, + NintendoRR55 = 32855, + NintendoRR56 = 32856, + NintendoRR57 = 32857, + NintendoRR58 = 32858, + NintendoRR59 = 32859, + NintendoRR60 = 32860, + NintendoRR61 = 32861, + NintendoRR62 = 32862, + NintendoRR63 = 32863, + NintendoRR64 = 32864, }; enum class TrustedCertStatus : s32 {