From d55e400c7cfcb00db87bf445a86c42db4e16db69 Mon Sep 17 00:00:00 2001 From: Pavel Barabanov Date: Sat, 3 May 2025 06:15:23 +0300 Subject: [PATCH] started adding services for firmware 20.0.0 without implementation --- src/core/hle/service/acc/acc.cpp | 18 ++- src/core/hle/service/acc/acc_su.cpp | 13 +- src/core/hle/service/acc/acc_u1.cpp | 3 + .../am/service/common_state_getter.cpp | 13 +- .../service/am/service/common_state_getter.h | 1 + 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 | 3 + src/core/hle/service/hid/hid_server.cpp | 8 +- src/core/hle/service/hid/hid_server.h | 2 +- .../hle/service/hid/hid_system_server.cpp | 12 ++ src/core/hle/service/lm/lm.cpp | 2 + src/core/hle/service/mii/mii.cpp | 2 + src/core/hle/service/nifm/nifm.cpp | 8 +- .../service/ns/platform_service_manager.cpp | 1 + .../service/pctl/parental_control_service.cpp | 22 ++- .../set/firmware_debug_settings_server.cpp | 1 + .../service/set/system_settings_server.cpp | 12 ++ src/core/hle/service/ssl/ssl.cpp | 2 + src/core/hle/service/ssl/ssl_types.h | 143 +++++++++++++----- 21 files changed, 231 insertions(+), 54 deletions(-) diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp index b652ae5141..15649e7ccf 100644 --- a/src/core/hle/service/acc/acc.cpp +++ b/src/core/hle/service/acc/acc.cpp @@ -104,7 +104,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 @@ -194,6 +196,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"}, @@ -301,6 +309,11 @@ public: {101, nullptr, "IsNetworkServiceAccountReplaced"}, {199, nullptr, "GetUrlForIntroductionOfExtraMembership"}, // 2.0.0 - 5.1.0 {200, nullptr, "ApplyAsyncWithAuthorizedToken"}, + {210, nullptr, "IsProfileAvailable"}, // 17.0.0+ + {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 @@ -755,7 +768,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 d3051f8be0..92662ade29 100644 --- a/src/core/hle/service/acc/acc_su.cpp +++ b/src/core/hle/service/acc/acc_su.cpp @@ -53,15 +53,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"}, @@ -77,4 +88,4 @@ ACC_SU::ACC_SU(std::shared_ptr module_, std::shared_ptr ACC_SU::~ACC_SU() = default; -} // namespace Service::Account +} // namespace Service::Account \ No newline at end of file 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/service/common_state_getter.cpp b/src/core/hle/service/am/service/common_state_getter.cpp index c179102f76..c445e5e776 100644 --- a/src/core/hle/service/am/service/common_state_getter.cpp +++ b/src/core/hle/service/am/service/common_state_getter.cpp @@ -38,7 +38,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr, "GetReaderLockAccessorEx"}, {32, D<&ICommonStateGetter::GetWriterLockAccessorEx>, "GetWriterLockAccessorEx"}, - {40, nullptr, "GetCradleFwVersion"}, + {40, D<&ICommonStateGetter::GetCradleFwVersion>, "GetCradleFwVersion"}, {50, D<&ICommonStateGetter::IsVrModeEnabled>, "IsVrModeEnabled"}, {51, D<&ICommonStateGetter::SetVrModeEnabled>, "SetVrModeEnabled"}, {52, D<&ICommonStateGetter::SetLcdBacklighOffEnabled>, "SetLcdBacklighOffEnabled"}, @@ -172,6 +172,17 @@ Result ICommonStateGetter::GetBootMode(Out out_boot_mode) { R_SUCCEED(); } +Result ICommonStateGetter::GetCradleFwVersion(OutArray out_version) { + LOG_DEBUG(Service_AM, "(STUBBED) called"); + + out_version[0] = 0; + out_version[1] = 0; + out_version[2] = 0; + out_version[3] = 0; + + R_SUCCEED(); +} + Result ICommonStateGetter::IsVrModeEnabled(Out out_is_vr_mode_enabled) { LOG_DEBUG(Service_AM, "called"); diff --git a/src/core/hle/service/am/service/common_state_getter.h b/src/core/hle/service/am/service/common_state_getter.h index 0cafbfe176..a326e11053 100644 --- a/src/core/hle/service/am/service/common_state_getter.h +++ b/src/core/hle/service/am/service/common_state_getter.h @@ -39,6 +39,7 @@ private: Result GetHdcpAuthenticationStateChangeEvent(OutCopyHandle out_event); Result GetOperationMode(Out out_operation_mode); Result GetPerformanceMode(Out out_performance_mode); + Result GetCradleFwVersion(OutArray out_version); Result GetBootMode(Out out_boot_mode); Result IsVrModeEnabled(Out out_is_vr_mode_enabled); Result SetVrModeEnabled(bool is_vr_mode_enabled); 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 4e26636725..1547192b1b 100644 --- a/src/core/hle/service/hid/hid_debug_server.cpp +++ b/src/core/hle/service/hid/hid_debug_server.cpp @@ -86,6 +86,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"}, @@ -183,7 +184,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::SetTouchScreenOutputRanges>, "SetTouchScreenOutputRanges"}, // 20.0.0+ (17.0.0-19.0.1 SetTouchScreenResolution) + {1005, nullptr, "EnableNxTouchScreenEmulationForTouchEnter"}, // 20.0.0+ {2000, nullptr, "ActivateDigitizer"}, }; // clang-format on @@ -1432,12 +1434,12 @@ Result IHidServer::IsFirmwareUpdateNeededForNotification(Out out_is_firmwa R_SUCCEED(); } -Result IHidServer::SetTouchScreenResolution(u32 width, u32 height, +Result IHidServer::SetTouchScreenOutputRanges(u32 width, u32 height, ClientAppletResourceUserId aruid) { LOG_INFO(Service_HID, "called, width={}, height={}, applet_resource_user_id={}", width, height, aruid.pid); - GetResourceManager()->GetTouchScreen()->SetTouchScreenResolution(width, height, aruid.pid); + GetResourceManager()->GetTouchScreen()->SetTouchScreenOutputRanges(width, height, aruid.pid); R_SUCCEED(); } diff --git a/src/core/hle/service/hid/hid_server.h b/src/core/hle/service/hid/hid_server.h index 9fdb25d5ca..11884c8db3 100644 --- a/src/core/hle/service/hid/hid_server.h +++ b/src/core/hle/service/hid/hid_server.h @@ -258,7 +258,7 @@ private: ClientAppletResourceUserId aruid); Result IsFirmwareUpdateNeededForNotification(Out out_is_firmware_update_needed, s32 unknown, ClientAppletResourceUserId aruid); - Result SetTouchScreenResolution(u32 width, u32 height, ClientAppletResourceUserId aruid); + Result SetTouchScreenOutputRanges(u32 width, u32 height, ClientAppletResourceUserId aruid); std::shared_ptr resource_manager; std::shared_ptr firmware_settings; diff --git a/src/core/hle/service/hid/hid_system_server.cpp b/src/core/hle/service/hid/hid_system_server.cpp index b0cd63d725..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, "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"}, @@ -49,9 +51,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"}, @@ -82,11 +86,13 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili {1456, D<&IParentalControlService::GetPlayTimerSettingsOld>, "GetPlayTimerSettingsOld"}, {1457, D<&IParentalControlService::GetPlayTimerEventToRequestSuspension>, "GetPlayTimerEventToRequestSuspension"}, {1458, D<&IParentalControlService::IsPlayTimerAlarmDisabled>, "IsPlayTimerAlarmDisabled"}, + {1459, nullptr, "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"}, @@ -106,6 +112,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"}, @@ -122,6 +131,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 @@ -444,4 +462,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/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 1e1dc71d24..c155f19695 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -300,6 +300,18 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_) {208, nullptr, "SetHearingProtectionSafeguardFlag"}, {209, nullptr, "GetHearingProtectionSafeguardRemainingTime"}, {210, nullptr, "SetHearingProtectionSafeguardRemainingTime"}, + {221, nullptr, "GetForceMonauralOutputFlag"}, //17.0.0+ + {222, nullptr, "SetForceMonauralOutputFlag"}, //17.0.0+ + {251, nullptr, "GetAccountIdentificationSettings"}, //18.0.0+ + {252, nullptr, "SetAccountIdentificationSettings"}, //18.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 67e37e0823..c9c3edf2a6 100644 --- a/src/core/hle/service/ssl/ssl.cpp +++ b/src/core/hle/service/ssl/ssl.cpp @@ -106,6 +106,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 dbc3dbf64c..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, @@ -40,38 +40,105 @@ enum class CaCertificateId : s32 { GoDaddyRootCertificateAuthorityG2 = 1025, StarfieldClass2CertificationAuthority = 1026, StarfieldRootCertificateAuthorityG2 = 1027, - thawtePrimaryRootCAG3 = 1028, - thawtePrimaryRootCA = 1029, - VeriSignClass3PublicPrimaryCertificationAuthorityG3 = 1030, - VeriSignClass3PublicPrimaryCertificationAuthorityG5 = 1031, - VeriSignUniversalRootCertificationAuthority = 1032, - DSTRootCAX3 = 1033, - USERTrustRsaCertificationAuthority = 1034, - ISRGRootX10 = 1035, - USERTrustEccCertificationAuthority = 1036, - COMODORsaCertificationAuthority = 1037, - COMODOEccCertificationAuthority = 1038, - AmazonRootCA2 = 1039, - AmazonRootCA3 = 1040, - AmazonRootCA4 = 1041, - DigiCertAssuredIDRootG3 = 1042, - DigiCertGlobalRootG3 = 1043, - DigiCertTrustedRootG4 = 1044, - EntrustRootCertificationAuthorityEC1 = 1045, - EntrustRootCertificationAuthorityG4 = 1046, - GlobalSignECCRootCAR4 = 1047, - GlobalSignECCRootCAR5 = 1048, - GlobalSignECCRootCAR6 = 1049, - GTSRootR1 = 1050, - GTSRootR2 = 1051, - GTSRootR3 = 1052, - GTSRootR4 = 1053, - SecurityCommunicationRootCA = 1054, - GlobalSignRootE4 = 1055, - GlobalSignRootR4 = 1056, - TTeleSecGlobalRootClass2 = 1057, - DigiCertTLSECCP384RootG5 = 1058, - DigiCertTLSRSA4096RootG5 = 1059, + thawtePrimaryRootCAG3 = 1028, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + thawtePrimaryRootCA = 1029, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + VeriSignClass3PublicPrimaryCertificationAuthorityG3 = 1030, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + VeriSignClass3PublicPrimaryCertificationAuthorityG5 = 1031, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + VeriSignUniversalRootCertificationAuthority = 1032, // [8.0.0+] TrustedCertStatus is EnabledNotTrusted + DSTRootCAX3 = 1033, // [6.0.0+] + USERTrustRsaCertificationAuthority = 1034, // [10.0.3+] + ISRGRootX10 = 1035, // [10.1.0+] + USERTrustEccCertificationAuthority = 1036, // [10.1.0+] + COMODORsaCertificationAuthority = 1037, // [10.1.0+] + COMODOEccCertificationAuthority = 1038, // [10.1.0+] + AmazonRootCA2 = 1039, // [11.0.0+] + AmazonRootCA3 = 1040, // [11.0.0+] + AmazonRootCA4 = 1041, // [11.0.0+] + DigiCertAssuredIDRootG3 = 1042, // [11.0.0+] + DigiCertGlobalRootG3 = 1043, // [11.0.0+] + DigiCertTrustedRootG4 = 1044, // [11.0.0+] + EntrustRootCertificationAuthorityEC1 = 1045, // [11.0.0+] + EntrustRootCertificationAuthorityG4 = 1046, // [11.0.0+] + GlobalSignECCRootCAR4 = 1047, // [11.0.0+] + GlobalSignECCRootCAR5 = 1048, // [11.0.0+] + GlobalSignECCRootCAR6 = 1049, // [11.0.0+] + GTSRootR1 = 1050, // [11.0.0+] + GTSRootR2 = 1051, // [11.0.0+] + GTSRootR3 = 1052, // [11.0.0+] + GTSRootR4 = 1053, // [11.0.0+] + SecurityCommunicationRootCA = 1054, // [12.0.0+] + GlobalSignRootE4 = 1055, // [15.0.0+] + GlobalSignRootR4 = 1056, // [15.0.0+] + TTeleSecGlobalRootClass2 = 1057, // [15.0.0+] + 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 { @@ -104,4 +171,4 @@ struct CertStoreEntry { }; static_assert(sizeof(CertStoreEntry) == 0x10, "CertStoreEntry has incorrect size."); -} // namespace Service::SSL +} // namespace Service::SSL \ No newline at end of file