rewrote according to the switchbrew

This commit is contained in:
Pavel Barabanov 2025-06-17 02:05:22 +03:00 committed by crueter
parent 3c16ac28c2
commit 18c848176a
35 changed files with 613 additions and 230 deletions

View file

@ -349,9 +349,9 @@ public:
{1, &IProfileCommon::GetBase, "GetBase"}, {1, &IProfileCommon::GetBase, "GetBase"},
{10, &IProfileCommon::GetImageSize, "GetImageSize"}, {10, &IProfileCommon::GetImageSize, "GetImageSize"},
{11, &IProfileCommon::LoadImage, "LoadImage"}, {11, &IProfileCommon::LoadImage, "LoadImage"},
{20, &IProfileCommon::Unknown20, "Unknown20"}, {20, &IProfileCommon::GetLargeImageSize, "GetLargeImageSize"},
{21, &IProfileCommon::Unknown21, "Unknown21"}, {21, &IProfileCommon::LoadLargeImage, "LoadLargeImage"},
{30, &IProfileCommon::Unknown30, "Unknown30"} {30, &IProfileCommon::GetImageId, "GetImageId"}
}; };
// clang-format on // clang-format on
RegisterHandlers(functions); RegisterHandlers(functions);
@ -361,7 +361,7 @@ public:
static const FunctionInfo editor_functions[] = { static const FunctionInfo editor_functions[] = {
{100, &IProfileCommon::Store, "Store"}, {100, &IProfileCommon::Store, "Store"},
{101, &IProfileCommon::StoreWithImage, "StoreWithImage"}, {101, &IProfileCommon::StoreWithImage, "StoreWithImage"},
{110, &IProfileCommon::Unknown110, "Unknown110"} {110, &IProfileCommon::StoreWithLargeImage, "StoreWithLargeImage"}
}; };
// clang-format on // clang-format on
@ -370,7 +370,7 @@ public:
} }
protected: protected:
void Unknown20(HLERequestContext& ctx) { void GetLargeImageSize(HLERequestContext& ctx) {
LOG_DEBUG(Service_ACC, "(STUBBED) called."); LOG_DEBUG(Service_ACC, "(STUBBED) called.");
// TODO (jarrodnorwell) // TODO (jarrodnorwell)
@ -380,7 +380,7 @@ protected:
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
} }
void Unknown21(HLERequestContext& ctx) { void LoadLargeImage(HLERequestContext& ctx) {
LOG_DEBUG(Service_ACC, "(STUBBED) called."); LOG_DEBUG(Service_ACC, "(STUBBED) called.");
// TODO (jarrodnorwell) // TODO (jarrodnorwell)
@ -390,7 +390,7 @@ protected:
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
} }
void Unknown30(HLERequestContext& ctx) { void GetImageId(HLERequestContext& ctx) {
LOG_DEBUG(Service_ACC, "(STUBBED) called."); LOG_DEBUG(Service_ACC, "(STUBBED) called.");
// TODO (jarrodnorwell) // TODO (jarrodnorwell)
@ -400,7 +400,7 @@ protected:
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
} }
void Unknown110(HLERequestContext& ctx) { void StoreWithLargeImage(HLERequestContext& ctx) {
LOG_DEBUG(Service_ACC, "(STUBBED) called."); LOG_DEBUG(Service_ACC, "(STUBBED) called.");
// TODO (jarrodnorwell) // TODO (jarrodnorwell)
@ -773,7 +773,6 @@ public:
{220, nullptr, "RegisterUserAsyncWithoutProfile"}, // 17.0.0+ {220, nullptr, "RegisterUserAsyncWithoutProfile"}, // 17.0.0+
{221, nullptr, "RegisterUserWithProfileAsync"}, // 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 // clang-format on

View file

@ -19,6 +19,7 @@ ACC_U0::ACC_U0(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager>
{6, nullptr, "GetProfileDigest"}, // 3.0.0+ {6, nullptr, "GetProfileDigest"}, // 3.0.0+
{50, &ACC_U0::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"}, {50, &ACC_U0::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
{51, &ACC_U0::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"}, {51, &ACC_U0::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
{52, nullptr, "TrySelectUserWithoutInteraction"}, // 19.0.0+
{60, &ACC_U0::ListOpenContextStoredUsers, "ListOpenContextStoredUsers"}, // 5.0.0 - 5.1.0 {60, &ACC_U0::ListOpenContextStoredUsers, "ListOpenContextStoredUsers"}, // 5.0.0 - 5.1.0
{99, nullptr, "DebugActivateOpenContextRetention"}, // 6.0.0+ {99, nullptr, "DebugActivateOpenContextRetention"}, // 6.0.0+
{100, &ACC_U0::InitializeApplicationInfo, "InitializeApplicationInfo"}, {100, &ACC_U0::InitializeApplicationInfo, "InitializeApplicationInfo"},

View file

@ -18,7 +18,7 @@ IAllSystemAppletProxiesService::IAllSystemAppletProxiesService(Core::System& sys
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{100, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxy>, "OpenSystemAppletProxy"}, {100, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxy>, "OpenSystemAppletProxy"},
{110, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxyForDebug>, "OpenSystemAppletProxyForDebug"}, {110, D<&IAllSystemAppletProxiesService::Unknown110>, "Unknown110"},
{200, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxyOld>, "OpenLibraryAppletProxyOld"}, {200, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxyOld>, "OpenLibraryAppletProxyOld"},
{201, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxy>, "OpenLibraryAppletProxy"}, {201, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxy>, "OpenLibraryAppletProxy"},
{300, nullptr, "OpenOverlayAppletProxy"}, {300, nullptr, "OpenOverlayAppletProxy"},
@ -51,9 +51,9 @@ Result IAllSystemAppletProxiesService::OpenSystemAppletProxy(
} }
} }
Result IAllSystemAppletProxiesService::OpenSystemAppletProxyForDebug( Result IAllSystemAppletProxiesService::Unknown110(
Out<SharedPointer<ISystemAppletProxy>> out_proxy, ClientProcessId pid) { Out<SharedPointer<ISystemAppletProxy>> out_proxy, ClientProcessId pid) {
LOG_DEBUG(Service_AM, "OpenSystemAppletProxyForDebug called"); LOG_DEBUG(Service_AM, "called");
auto process = system.ApplicationProcess(); auto process = system.ApplicationProcess();
if (!process) { if (!process) {

View file

@ -28,7 +28,7 @@ private:
Result OpenSystemAppletProxy(Out<SharedPointer<ISystemAppletProxy>> out_system_applet_proxy, Result OpenSystemAppletProxy(Out<SharedPointer<ISystemAppletProxy>> out_system_applet_proxy,
ClientProcessId pid, ClientProcessId pid,
InCopyHandle<Kernel::KProcess> process_handle); InCopyHandle<Kernel::KProcess> process_handle);
Result OpenSystemAppletProxyForDebug(Out<SharedPointer<ISystemAppletProxy>> out_proxy, ClientProcessId pid); Result Unknown110(Out<SharedPointer<ISystemAppletProxy>> out_proxy, ClientProcessId pid);
Result OpenLibraryAppletProxy(Out<SharedPointer<ILibraryAppletProxy>> out_library_applet_proxy, Result OpenLibraryAppletProxy(Out<SharedPointer<ILibraryAppletProxy>> out_library_applet_proxy,
ClientProcessId pid, ClientProcessId pid,
InCopyHandle<Kernel::KProcess> process_handle, InCopyHandle<Kernel::KProcess> process_handle,

View file

@ -31,18 +31,20 @@ IAppletCommonFunctions::IAppletCommonFunctions(Core::System& system_,
{90, nullptr, "OpenNamedChannelAsParent"}, {90, nullptr, "OpenNamedChannelAsParent"},
{91, nullptr, "OpenNamedChannelAsChild"}, {91, nullptr, "OpenNamedChannelAsChild"},
{100, nullptr, "SetApplicationCoreUsageMode"}, {100, nullptr, "SetApplicationCoreUsageMode"},
{160, nullptr, "GetNotificationReceiverService"}, // 18.0.0+
{161, nullptr, "GetNotificationSenderService"}, // 18.0.0+
{300, D<&IAppletCommonFunctions::GetCurrentApplicationId>, "GetCurrentApplicationId"}, {300, D<&IAppletCommonFunctions::GetCurrentApplicationId>, "GetCurrentApplicationId"},
{310, nullptr, "IsSystemAppletHomeMenu"}, //19.0.0+ {310, nullptr, "IsSystemAppletHomeMenu"}, // 19.0.0+
{311, nullptr, "Unknown311"}, {311, nullptr, "Unknown311"}, // 20.0.0+
{320, nullptr, "SetGpuTimeSliceBoost"}, //19.0.0+ {320, nullptr, "SetGpuTimeSliceBoost"}, // 19.0.0+
{321, nullptr, "SetGpuTimeSliceBoostDueToApplication"}, //19.0.0+ {321, nullptr, "SetGpuTimeSliceBoostDueToApplication"}, // 19.0.0+
{322, nullptr, "Unknown322"}, {322, nullptr, "Unknown322"}, // 20.0.0+
{330, nullptr, "Unknown330"}, //19.0.0+ {330, nullptr, "Unknown330"}, // 19.0.0+
{340, nullptr, "Unknown340"}, {340, nullptr, "Unknown340"}, // 20.0.0+
{341, nullptr, "Unknown341"}, {341, nullptr, "Unknown341"}, // 20.0.0+
{342, nullptr, "Unknown342"}, {342, nullptr, "Unknown342"}, // 20.0.0+
{350, D<&IAppletCommonFunctions::Unknown350>, "Unknown350"}, {350, D<&IAppletCommonFunctions::Unknown350>, "Unknown350"}, // 20.0.0+
{360, nullptr, "Unknown360"}, {360, nullptr, "Unknown360"} // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -47,8 +47,8 @@ IApplicationAccessor::IApplicationAccessor(Core::System& system_, std::shared_pt
{190, nullptr, "PushToNotificationStorageChannel"}, {190, nullptr, "PushToNotificationStorageChannel"},
{200, nullptr, "RequestApplicationSoftReset"}, {200, nullptr, "RequestApplicationSoftReset"},
{201, nullptr, "RestartApplicationTimer"}, {201, nullptr, "RestartApplicationTimer"},
{300, nullptr, "Unknown300"}, {300, nullptr, "Unknown300"}, // 20.0.0+
{301, nullptr, "Unknown301"}, {301, nullptr, "Unknown301"} // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -20,7 +20,7 @@ IAudioController::IAudioController(Core::System& system_)
{3, D<&IAudioController::GetTargetVolumeMax>, "GetTargetVolumeMax"}, {3, D<&IAudioController::GetTargetVolumeMax>, "GetTargetVolumeMax"},
{4, nullptr, "IsTargetMute"}, {4, nullptr, "IsTargetMute"},
{5, nullptr, "SetTargetMute"}, {5, nullptr, "SetTargetMute"},
{6, nullptr, "IsTargetConnected"}, {6, nullptr, "IsTargetConnected"}, // [20.0.0+] ([1.0.0-17.0.1] IsTargetConnected)
{7, nullptr, "SetDefaultTarget"}, {7, nullptr, "SetDefaultTarget"},
{8, nullptr, "GetDefaultTarget"}, {8, nullptr, "GetDefaultTarget"},
{9, D<&IAudioController::GetAudioOutputMode>, "GetAudioOutputMode"}, {9, D<&IAudioController::GetAudioOutputMode>, "GetAudioOutputMode"},
@ -37,9 +37,9 @@ IAudioController::IAudioController(Core::System& system_)
{20, nullptr, "AcquireAudioOutputDeviceUpdateEventForPlayReport"}, {20, nullptr, "AcquireAudioOutputDeviceUpdateEventForPlayReport"},
{21, nullptr, "GetAudioOutputTargetForPlayReport"}, {21, nullptr, "GetAudioOutputTargetForPlayReport"},
{22, D<&IAudioController::NotifyHeadphoneVolumeWarningDisplayedEvent>, "NotifyHeadphoneVolumeWarningDisplayedEvent"}, {22, D<&IAudioController::NotifyHeadphoneVolumeWarningDisplayedEvent>, "NotifyHeadphoneVolumeWarningDisplayedEvent"},
{23, nullptr, "SetSystemOutputMasterVolume"}, {23, nullptr, "SetSystemOutputMasterVolume"}, // [20.0.0+] Originally any input was accepted, now input must be in range 0.0-1.0 otherwise it's replaced by nearest accepted value.
{24, nullptr, "GetSystemOutputMasterVolume"}, {24, nullptr, "GetSystemOutputMasterVolume"},
{25, nullptr, "GetAudioVolumeDataForPlayReport"}, {25, nullptr, "GetAudioVolumeDataForPlayReport"}, // [20.0.0+] Now takes a 0x400-bytes type-0x16 output buffer and no longer returns any output.
{26, nullptr, "UpdateHeadphoneSettings"}, {26, nullptr, "UpdateHeadphoneSettings"},
{27, nullptr, "SetVolumeMappingTableForDev"}, {27, nullptr, "SetVolumeMappingTableForDev"},
{28, nullptr, "GetAudioOutputChannelCountForPlayReport"}, {28, nullptr, "GetAudioOutputChannelCountForPlayReport"},
@ -54,10 +54,10 @@ IAudioController::IAudioController(Core::System& system_)
{37, nullptr, "SetHearingProtectionSafeguardEnabled"}, {37, nullptr, "SetHearingProtectionSafeguardEnabled"},
{38, nullptr, "IsHearingProtectionSafeguardEnabled"}, {38, nullptr, "IsHearingProtectionSafeguardEnabled"},
{39, nullptr, "IsHearingProtectionSafeguardMonitoringOutputForDebug"}, {39, nullptr, "IsHearingProtectionSafeguardMonitoringOutputForDebug"},
{40, nullptr, "GetSystemInformationForDebug"}, {40, nullptr, "GetSystemInformationForDebug"}, // [20.0.0+] Now takes a total of 0x40-bytes of input and the type-0x16 output buffer is now 0x2000-bytes instead of 0x1000-bytes.
{41, nullptr, "SetVolumeButtonLongPressTime"}, {41, nullptr, "SetVolumeButtonLongPressTime"},
{42, nullptr, "SetNativeVolumeForDebug"}, {42, nullptr, "SetNativeVolumeForDebug"},
{5000, D<&IAudioController::Unknown5000>, "Unknown5000"}, {5000, D<&IAudioController::Unknown5000>, "Unknown5000"}, // 19.0.0+
{10000, nullptr, "NotifyAudioOutputTargetForPlayReport"}, {10000, nullptr, "NotifyAudioOutputTargetForPlayReport"},
{10001, nullptr, "NotifyAudioOutputChannelCountForPlayReport"}, {10001, nullptr, "NotifyAudioOutputChannelCountForPlayReport"},
{10002, nullptr, "NotifyUnsupportedUsbOutputDeviceAttachedForPlayReport"}, {10002, nullptr, "NotifyUnsupportedUsbOutputDeviceAttachedForPlayReport"},
@ -68,6 +68,7 @@ IAudioController::IAudioController(Core::System& system_)
{10104, nullptr, "GetAudioOutputChannelCountForPlayReport"}, {10104, nullptr, "GetAudioOutputChannelCountForPlayReport"},
{10105, nullptr, "BindAudioOutputChannelCountUpdateEventForPlayReport"}, {10105, nullptr, "BindAudioOutputChannelCountUpdateEventForPlayReport"},
{10106, nullptr, "GetDefaultAudioOutputTargetForPlayReport"}, {10106, nullptr, "GetDefaultAudioOutputTargetForPlayReport"},
{10200, nullptr, "Unknown10200"}, // 20.0.0+
{50000, nullptr, "SetAnalogInputBoostGainForPrototyping"}, {50000, nullptr, "SetAnalogInputBoostGainForPrototyping"},
{50001, nullptr, "OverrideDefaultTargetForDebug"}, {50001, nullptr, "OverrideDefaultTargetForDebug"},
{50003, nullptr, "SetForceOverrideExternalDeviceNameForDebug"}, {50003, nullptr, "SetForceOverrideExternalDeviceNameForDebug"},

View file

@ -33,15 +33,32 @@ IAlbumAccessorService::IAlbumAccessorService(Core::System& system_,
{15, nullptr, "GetAlbumUsage3"}, {15, nullptr, "GetAlbumUsage3"},
{16, nullptr, "GetAlbumMountResult"}, {16, nullptr, "GetAlbumMountResult"},
{17, nullptr, "GetAlbumUsage16"}, {17, nullptr, "GetAlbumUsage16"},
{18, C<&IAlbumAccessorService::Unknown18>, "Unknown18"}, {18, C<&IAlbumAccessorService::GetAppletProgramIdTable>, "GetAppletProgramIdTable"},
{19, nullptr, "Unknown19"}, {19, nullptr, "GetAlbumFileName"},
{20, nullptr, "Unknown20"}, // 20.0.0+
{100, nullptr, "GetAlbumFileCountEx0"}, {100, nullptr, "GetAlbumFileCountEx0"},
{101, C<&IAlbumAccessorService::GetAlbumFileListEx0>, "GetAlbumFileListEx0"}, {101, C<&IAlbumAccessorService::GetAlbumFileListEx0>, "GetAlbumFileListEx0"},
{110, nullptr, "GetAlbumFileListEx1"}, // 15.0.0+
{120, nullptr, "GetAlbumFileListEx2"}, // 17.0.0+
{121, nullptr, "Unknown121"}, // 20.0.0+
{122, nullptr, "Unknown122"}, // 20.0.0+
{123, nullptr, "Unknown123"}, // 20.0.0+
{130, nullptr, "LoadAlbumFileRawData"}, // 17.0.0+
{140, nullptr, "GetAlbumFileCreatedEvent"}, // 17.0.0+
{141, nullptr, "Unknown141"}, // 18.0.0+
{150, nullptr, "LoadAlbumSystemReservedInfo"}, // 17.0.0+
{151, nullptr, "Unknown151"}, // 18.0.0+
{160, nullptr, "Unknown160"}, // 18.0.0+
{170, nullptr, "Unknown170"}, // 20.0.0+
{171, nullptr, "Unknown171"}, // 20.0.0+
{172, nullptr, "Unknown172"}, // 20.0.0+
{202, nullptr, "SaveEditedScreenShot"}, {202, nullptr, "SaveEditedScreenShot"},
{301, nullptr, "GetLastThumbnail"}, {301, nullptr, "GetLastThumbnail"},
{302, nullptr, "GetLastOverlayMovieThumbnail"}, {302, nullptr, "GetLastOverlayMovieThumbnail"},
{401, C<&IAlbumAccessorService::GetAutoSavingStorage>, "GetAutoSavingStorage"}, {401, C<&IAlbumAccessorService::GetAutoSavingStorage>, "GetAutoSavingStorage"},
{501, nullptr, "GetRequiredStorageSpaceSizeToCopyAll"}, {501, nullptr, "GetRequiredStorageSpaceSizeToCopyAll"},
{502, nullptr, "Unknown502"}, // 20.0.0+
{600, nullptr, "Unknown600"}, // 20.0.0+
{1001, nullptr, "LoadAlbumScreenShotThumbnailImageEx0"}, {1001, nullptr, "LoadAlbumScreenShotThumbnailImageEx0"},
{1002, C<&IAlbumAccessorService::LoadAlbumScreenShotImageEx1>, "LoadAlbumScreenShotImageEx1"}, {1002, C<&IAlbumAccessorService::LoadAlbumScreenShotImageEx1>, "LoadAlbumScreenShotImageEx1"},
{1003, C<&IAlbumAccessorService::LoadAlbumScreenShotThumbnailImageEx1>, "LoadAlbumScreenShotThumbnailImageEx1"}, {1003, C<&IAlbumAccessorService::LoadAlbumScreenShotThumbnailImageEx1>, "LoadAlbumScreenShotThumbnailImageEx1"},
@ -51,10 +68,20 @@ IAlbumAccessorService::IAlbumAccessorService(Core::System& system_,
{8012, nullptr, "GetAlbumCache"}, {8012, nullptr, "GetAlbumCache"},
{8013, nullptr, "GetAlbumCacheEx"}, {8013, nullptr, "GetAlbumCacheEx"},
{8021, nullptr, "GetAlbumEntryFromApplicationAlbumEntryAruid"}, {8021, nullptr, "GetAlbumEntryFromApplicationAlbumEntryAruid"},
{8022, nullptr, "Unknown8022"}, // 19.0.0+
{8031, nullptr, "Unknown8031"}, // 20.0.0+
{8032, nullptr, "Unknown8032"}, // 20.0.0+
{10011, nullptr, "SetInternalErrorConversionEnabled"}, {10011, nullptr, "SetInternalErrorConversionEnabled"},
{50000, nullptr, "LoadMakerNoteInfoForDebug"}, {50000, nullptr, "LoadMakerNoteInfoForDebug"},
{50011, C<&IAlbumAccessorService::GetAlbumAccessResultForDebug>, "GetAlbumAccessResultForDebug"}, {50001, nullptr, "Unknown50001"}, // 19.0.0+
{50012, C<&IAlbumAccessorService::SetAlbumAccessResultForDebug>, "SetAlbumAccessResultForDebug"}, {50011, C<&IAlbumAccessorService::GetAlbumAccessResultForDebug>, "GetAlbumAccessResultForDebug"}, // 19.0.0+
{50012, C<&IAlbumAccessorService::SetAlbumAccessResultForDebug>, "SetAlbumAccessResultForDebug"}, // 19.0.0+
{50021, nullptr, "Unknown50021"}, // 20.0.0+
{50022, nullptr, "Unknown50022"}, // 20.0.0+
{50023, nullptr, "Unknown50023"}, // 20.0.0+
{50024, nullptr, "Unknown50024"}, // 20.0.0+
{50031, nullptr, "Unknown50031"}, // 20.0.0+
{50032, nullptr, "Unknown50032"}, // 20.0.0+
{60002, nullptr, "OpenAccessorSession"}, {60002, nullptr, "OpenAccessorSession"},
}; };
// clang-format on // clang-format on
@ -89,7 +116,7 @@ Result IAlbumAccessorService::IsAlbumMounted(Out<bool> out_is_mounted, AlbumStor
R_RETURN(TranslateResult(result)); R_RETURN(TranslateResult(result));
} }
Result IAlbumAccessorService::Unknown18( Result IAlbumAccessorService::GetAppletProgramIdTable(
Out<u32> out_buffer_size, Out<u32> out_buffer_size,
OutArray<u8, BufferAttr_HipcMapAlias | BufferAttr_HipcMapTransferAllowsNonSecure> out_buffer) { OutArray<u8, BufferAttr_HipcMapAlias | BufferAttr_HipcMapTransferAllowsNonSecure> out_buffer) {
LOG_WARNING(Service_Capture, "(STUBBED) called"); LOG_WARNING(Service_Capture, "(STUBBED) called");

View file

@ -28,7 +28,7 @@ private:
Result IsAlbumMounted(Out<bool> out_is_mounted, AlbumStorage storage); Result IsAlbumMounted(Out<bool> out_is_mounted, AlbumStorage storage);
Result Unknown18( Result GetAppletProgramIdTable(
Out<u32> out_buffer_size, Out<u32> out_buffer_size,
OutArray<u8, BufferAttr_HipcMapAlias | BufferAttr_HipcMapTransferAllowsNonSecure> OutArray<u8, BufferAttr_HipcMapAlias | BufferAttr_HipcMapTransferAllowsNonSecure>
out_buffer); out_buffer);

View file

@ -28,12 +28,18 @@ IAlbumControlService::IAlbumControlService(Core::System& system_,
{2012, nullptr, "UnregisterAppletResourceUserId"}, {2012, nullptr, "UnregisterAppletResourceUserId"},
{2013, nullptr, "GetApplicationIdFromAruid"}, {2013, nullptr, "GetApplicationIdFromAruid"},
{2014, nullptr, "CheckApplicationIdRegistered"}, {2014, nullptr, "CheckApplicationIdRegistered"},
{2015, nullptr, "Unknown2015"}, // 20.0.0+
{2016, nullptr, "Unknown2016"}, // 20.0.0+
{2101, nullptr, "GenerateCurrentAlbumFileId"}, {2101, nullptr, "GenerateCurrentAlbumFileId"},
{2102, nullptr, "GenerateApplicationAlbumEntry"}, {2102, nullptr, "GenerateApplicationAlbumEntry"},
{2103, nullptr, "Unknown2103"}, // 19.0.0+
{2104, nullptr, "Unknown2104"}, // 19.0.0+
{2201, nullptr, "SaveAlbumScreenShotFile"}, {2201, nullptr, "SaveAlbumScreenShotFile"},
{2202, nullptr, "SaveAlbumScreenShotFileEx"}, {2202, nullptr, "SaveAlbumScreenShotFileEx"},
{2301, nullptr, "SetOverlayScreenShotThumbnailData"}, {2301, nullptr, "SetOverlayScreenShotThumbnailData"},
{2302, nullptr, "SetOverlayMovieThumbnailData"}, {2302, nullptr, "SetOverlayMovieThumbnailData"},
{2401, nullptr, "Unknown2401"}, // 19.0.0+
{2501, nullptr, "GetAlbumAccessResultForDebug"}, // 19.0.0+
{60001, nullptr, "OpenControlSession"}, {60001, nullptr, "OpenControlSession"},
}; };
// clang-format on // clang-format on

View file

@ -9,26 +9,35 @@ IScreenShotControlService::IScreenShotControlService(Core::System& system_)
: ServiceFramework{system_, "caps:sc"} { : ServiceFramework{system_, "caps:sc"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{1, nullptr, "CaptureRawImage"}, {1, nullptr, "CaptureRawImageRgba32IntoArray"},
{2, nullptr, "CaptureRawImageWithTimeout"}, {2, nullptr, "CaptureRawImageRgba32IntoArrayWithTimeout"},
{3, nullptr, "AttachSharedBuffer"}, {3, nullptr, "AttachSharedBufferToCaptureModule"}, // 5.0.0+
{5, nullptr, "CaptureRawImageToAttachedSharedBuffer"}, {5, nullptr, "CaptureRawImageToAttachedSharedBuffer"}, // 5.0.0+
{210, nullptr, "Unknown210"}, {210, nullptr, "SaveScreenShotEx2ViaAm"}, // 6.0.0+
{1001, nullptr, "RequestTakingScreenShot"}, {1001, nullptr, "RequestTakingScreenShot"}, // 2.0.0-4.1.0
{1002, nullptr, "RequestTakingScreenShotWithTimeout"}, {1002, nullptr, "RequestTakingScreenShotWithTimeout"}, // 2.0.0-4.1.0
{1003, nullptr, "RequestTakingScreenShotEx"}, {1003, nullptr, "RequestTakingScreenShotEx"}, // 3.0.0-4.1.0
{1004, nullptr, "RequestTakingScreenShotEx1"}, {1004, nullptr, "RequestTakingScreenShotEx1"}, // 5.0.0+
{1009, nullptr, "CancelTakingScreenShot"}, {1009, nullptr, "CancelTakingScreenShot"}, // 5.0.0+
{1010, nullptr, "SetTakingScreenShotCancelState"}, {1010, nullptr, "SetTakingScreenShotCancelState"}, // 5.0.0+
{1011, nullptr, "NotifyTakingScreenShotRefused"}, {1011, nullptr, "NotifyTakingScreenShotRefused"},
{1012, nullptr, "NotifyTakingScreenShotFailed"}, {1012, nullptr, "NotifyTakingScreenShotFailed"},
{1101, nullptr, "SetupOverlayMovieThumbnail"}, {1100, nullptr, "Unknown1100"}, // 18.0.0+
{1106, nullptr, "Unknown1106"}, {1101, nullptr, "SetupOverlayMovieThumbnail"}, // 4.0.0+
{1107, nullptr, "Unknown1107"}, {1106, nullptr, "CreateProtoMovieMetaDataNv12Ex2"}, // 4.0.0+
{1201, nullptr, "OpenRawScreenShotReadStream"}, {1107, nullptr, "CreateProtoMovieMetaDataRgbaEx2"}, // 4.0.0+
{1202, nullptr, "CloseRawScreenShotReadStream"}, {1108, nullptr, "Unknown1108"}, // 18.0.0+
{1203, nullptr, "ReadRawScreenShotReadStream"}, {1109, nullptr, "Unknown1109"}, // 19.0.0+
{1204, nullptr, "Unknown1204"}, {1110, nullptr, "Unknown1110"}, // 19.0.0+
{1111, nullptr, "Unknown1111"}, // 19.0.0+
{1112, nullptr, "Unknown1112"}, // 19.0.0+
{1113, nullptr, "Unknown1113"}, // 19.0.0+
{1114, nullptr, "Unknown1114"}, // 19.0.0+
{1201, nullptr, "OpenRawScreenShotReadStream"}, // 3.0.0+
{1202, nullptr, "CloseRawScreenShotReadStream"}, // 3.0.0+
{1203, nullptr, "ReadRawScreenShotReadStream"}, // 3.0.0+
{1204, nullptr, "CaptureCrashScreenShot"}, // 9.0.0+
{9000, nullptr, "Unknown9000"} // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -19,8 +19,8 @@ IScreenShotService::IScreenShotService(Core::System& system_,
{203, C<&IScreenShotService::SaveScreenShotEx0>, "SaveScreenShotEx0"}, {203, C<&IScreenShotService::SaveScreenShotEx0>, "SaveScreenShotEx0"},
{204, nullptr, "SaveEditedScreenShotEx0"}, {204, nullptr, "SaveEditedScreenShotEx0"},
{206, C<&IScreenShotService::SaveEditedScreenShotEx1>, "SaveEditedScreenShotEx1"}, {206, C<&IScreenShotService::SaveEditedScreenShotEx1>, "SaveEditedScreenShotEx1"},
{208, nullptr, "SaveScreenShotOfMovieEx1"}, {1000, nullptr, "RequestTakingScreenShotForApplet"}, // 13.0.0+ [19.0.0+] Now takes an additional 8-bytes of input.
{1000, nullptr, "Unknown1000"}, {2000, nullptr, "Unknown2000"} // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -57,50 +57,81 @@ public:
{38, nullptr, "OwnTicket3"}, {38, nullptr, "OwnTicket3"},
{39, nullptr, "DeleteAllInactivePersonalizedTicket"}, {39, nullptr, "DeleteAllInactivePersonalizedTicket"},
{40, nullptr, "DeletePrepurchaseRecordByNintendoAccountId"}, {40, nullptr, "DeletePrepurchaseRecordByNintendoAccountId"},
{501, nullptr, "Unknown501"}, {101, nullptr, "Unknown101"}, // 18.0.0+
{502, nullptr, "Unknown502"}, {102, nullptr, "Unknown102"}, // 18.0.0+
{503, nullptr, "GetTitleKey"}, {103, nullptr, "Unknown103"}, // 18.0.0+
{504, nullptr, "Unknown504"}, {104, nullptr, "Unknown104"}, // 18.0.0+
{508, nullptr, "Unknown508"}, {105, nullptr, "Unknown105"}, // 20.0.0+
{509, nullptr, "Unknown509"}, {201, nullptr, "Unknown201"}, // 18.0.0+
{510, nullptr, "Unknown510"}, {202, nullptr, "Unknown202"}, // 18.0.0+
{511, nullptr, "Unknown511"}, {203, nullptr, "Unknown203"}, // 18.0.0+
{1001, nullptr, "Unknown1001"}, {204, nullptr, "Unknown204"}, // 18.0.0+
{1002, nullptr, "Unknown1001"}, {501, nullptr, "Unknown501"}, // 6.0.0+
{1003, nullptr, "Unknown1003"}, {502, nullptr, "Unknown502"}, // 6.0.0+
{1004, nullptr, "Unknown1004"}, {503, nullptr, "GetTitleKey"}, // 6.0.0+
{1005, nullptr, "Unknown1005"}, {504, nullptr, "Unknown504"}, // 6.0.0+
{1006, nullptr, "Unknown1006"}, {508, nullptr, "Unknown508"}, // 6.0.0+
{1007, nullptr, "Unknown1007"}, {509, nullptr, "Unknown509"}, // 6.0.0+
{1009, nullptr, "Unknown1009"}, {510, nullptr, "Unknown510"}, // 6.0.0+
{1010, nullptr, "Unknown1010"}, {511, nullptr, "Unknown511"}, // 9.0.0+
{1011, nullptr, "Unknown1011"}, {1001, nullptr, "Unknown1001"}, // 6.0.0+
{1012, nullptr, "Unknown1012"}, {1002, nullptr, "Unknown1002"}, // 6.0.0+
{1013, nullptr, "Unknown1013"}, {1003, nullptr, "GetIAsyncValue"}, // 6.0.0+
{1014, nullptr, "Unknown1014"}, {1004, nullptr, "Unknown1004"}, // 6.0.0+
{1015, nullptr, "Unknown1015"}, {1005, nullptr, "Unknown1005"}, // 6.0.0+
{1016, nullptr, "Unknown1016"}, {1006, nullptr, "Unknown1006"}, // 6.0.0+
{1017, nullptr, "Unknown1017"}, {1007, nullptr, "Unknown1007"}, // 6.0.0+
{1018, nullptr, "Unknown1018"}, {1009, nullptr, "Unknown1009"}, // 6.0.0+
{1019, nullptr, "Unknown1019"}, {1010, nullptr, "Unknown1010"}, // 6.0.0+
{1020, nullptr, "Unknown1020"}, {1011, nullptr, "Unknown1011"}, // 6.0.0+
{1021, nullptr, "Unknown1021"}, {1012, nullptr, "Unknown1012"}, // 6.0.0+
{1501, nullptr, "Unknown1501"}, {1013, nullptr, "Unknown1013"}, // 6.0.0+
{1502, nullptr, "Unknown1502"}, {1014, nullptr, "Unknown1014"}, // 6.0.0+
{1503, nullptr, "Unknown1503"}, {1015, nullptr, "Unknown1015"}, // 6.0.0+
{1504, nullptr, "Unknown1504"}, {1016, nullptr, "Unknown1016"}, // 6.0.0+
{1505, nullptr, "Unknown1505"}, {1017, nullptr, "Unknown1017"}, // 9.0.0+
{1506, nullptr, "Unknown1506"}, {1018, nullptr, "Unknown1018"}, // 9.0.0+
{2000, nullptr, "Unknown2000"}, {1019, nullptr, "Unknown1019"}, // 9.0.0+
{2001, nullptr, "Unknown2001"}, {1020, nullptr, "Unknown1020"}, // 9.0.0+
{2002, nullptr, "Unknown2002"}, {1021, nullptr, "Unknown1021"}, // 9.0.0+
{2003, nullptr, "Unknown2003"}, {1022, nullptr, "Unknown1022"}, // 15.0.0+
{2100, nullptr, "Unknown2100"}, {1023, nullptr, "Unknown1023"}, // 17.0.0+
{2501, nullptr, "Unknown2501"}, {1024, nullptr, "Unknown1024"}, // 17.0.0+
{2502, nullptr, "Unknown2502"}, {1025, nullptr, "Unknown1025"}, // 17.0.0+
{2601, nullptr, "Unknown2601"}, {1026, nullptr, "Unknown1026"}, // 17.0.0+
{3001, nullptr, "Unknown3001"}, {1027, nullptr, "Unknown1027"}, // 17.0.0+
{3002, nullptr, "Unknown3002"}, {1028, nullptr, "Unknown1028"}, // 18.0.0+
{1029, nullptr, "Unknown1029"}, // 19.0.0+
{1030, nullptr, "Unknown1030"}, // 20.0.0+
{1031, nullptr, "Unknown1031"}, // 20.0.0+
{1032, nullptr, "Unknown1032"}, // 20.0.0+
{1033, nullptr, "Unknown1033"}, // 20.0.0+
{1034, nullptr, "Unknown1034"}, // 20.0.0+
{1035, nullptr, "Unknown1035"}, // 20.0.0+
{1036, nullptr, "Unknown1036"}, // 20.0.0+
{1037, nullptr, "Unknown1037"}, // 20.0.0+
{1501, nullptr, "Unknown1501"}, // 6.0.0+
{1502, nullptr, "Unknown1502"}, // 6.0.0+
{1503, nullptr, "Unknown1503"}, // 6.0.0+
{1504, nullptr, "Unknown1504"}, // 6.0.0+
{1505, nullptr, "Unknown1505"}, // 6.0.0+
{1506, nullptr, "Unknown1506"}, // 13.0.0+
{1601, nullptr, "Unknown1601"}, // 20.0.0+
{1602, nullptr, "Unknown1602"}, // 20.0.0+
{1603, nullptr, "Unknown1603"}, // 20.0.0+
{1604, nullptr, "Unknown1604"}, // 20.0.0+
{1605, nullptr, "Unknown1605"}, // 20.0.0+
{1606, nullptr, "Unknown1606"}, // 20.0.0+
{2000, nullptr, "GetIActiveRightsContext"}, // 6.0.0+
{2001, nullptr, "GetIActiveRightsContext2"}, // 9.0.0+
{2002, nullptr, "Unknown2002"}, // 13.0.0-16.1.0
{2003, nullptr, "Unknown2003"}, // 13.0.0-16.1.0
{2100, nullptr, "Unknown2100"}, // 7.0.0+
{2501, nullptr, "Unknown2501"}, // 6.0.0+
{2502, nullptr, "Unknown2502"}, // 6.0.0+
{2601, nullptr, "Unknown2601"}, // 13.0.0+
{3001, nullptr, "Unknown3001"}, // 7.0.0-15.0.1
{3002, nullptr, "Unknown3002"} // 7.0.0-15.0.1
}; };
// clang-format on // clang-format on
RegisterHandlers(functions); RegisterHandlers(functions);

View file

@ -227,6 +227,8 @@ INotificationServices::INotificationServices(Core::System& system_)
{2001, nullptr, "GetAlarmSettingWithApplicationParameter"}, {2001, nullptr, "GetAlarmSettingWithApplicationParameter"},
{2010, nullptr, "MuteAlarmSetting"}, {2010, nullptr, "MuteAlarmSetting"},
{2020, nullptr, "IsAlarmSettingReady"}, {2020, nullptr, "IsAlarmSettingReady"},
{3000, nullptr, "Unknown3000"}, // 20.0.0+
{3010, nullptr, "Unknown3010"}, // 20.0.0+
{8000, nullptr, "RegisterAppletResourceUserId"}, {8000, nullptr, "RegisterAppletResourceUserId"},
{8010, nullptr, "UnregisterAppletResourceUserId"}, {8010, nullptr, "UnregisterAppletResourceUserId"},
{8999, nullptr, "GetCurrentTime"}, {8999, nullptr, "GetCurrentTime"},

View file

@ -154,6 +154,8 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
{1052, nullptr, "CancelSixAxisSensorAccurateUserCalibration"}, {1052, nullptr, "CancelSixAxisSensorAccurateUserCalibration"},
{1053, nullptr, "GetSixAxisSensorAccurateUserCalibrationState"}, {1053, nullptr, "GetSixAxisSensorAccurateUserCalibrationState"},
{1100, nullptr, "GetHidbusSystemServiceObject"}, {1100, nullptr, "GetHidbusSystemServiceObject"},
{1158, nullptr, "Unknown1158"}, //20.1.0+
{1159, nullptr, "Unknown1159"}, //20.1.0+
{1120, &IHidSystemServer::SetFirmwareHotfixUpdateSkipEnabled, "SetFirmwareHotfixUpdateSkipEnabled"}, {1120, &IHidSystemServer::SetFirmwareHotfixUpdateSkipEnabled, "SetFirmwareHotfixUpdateSkipEnabled"},
{1130, &IHidSystemServer::InitializeUsbFirmwareUpdate, "InitializeUsbFirmwareUpdate"}, {1130, &IHidSystemServer::InitializeUsbFirmwareUpdate, "InitializeUsbFirmwareUpdate"},
{1131, &IHidSystemServer::FinalizeUsbFirmwareUpdate, "FinalizeUsbFirmwareUpdate"}, {1131, &IHidSystemServer::FinalizeUsbFirmwareUpdate, "FinalizeUsbFirmwareUpdate"},

View file

@ -18,7 +18,7 @@ public:
explicit IMonitorServiceCreator(Core::System& system_) : ServiceFramework{system_, "ldn:m"} { explicit IMonitorServiceCreator(Core::System& system_) : ServiceFramework{system_, "ldn:m"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, C<&IMonitorServiceCreator::CreateMonitorService>, "CreateMonitorService"} {0, C<&IMonitorServiceCreator::CreateMonitorService>, "CreateMonitorService"},
{1, nullptr, "CreateClientProcessMonitor"} // 18.0.0+ {1, nullptr, "CreateClientProcessMonitor"} // 18.0.0+
}; };
// clang-format on // clang-format on

View file

@ -111,7 +111,7 @@ public:
{28, nullptr, "RequestApplicationControl"}, {28, nullptr, "RequestApplicationControl"},
{29, nullptr, "RequestLatestApplicationControl"}, {29, nullptr, "RequestLatestApplicationControl"},
{30, nullptr, "RequestVersionList"}, {30, nullptr, "RequestVersionList"},
{31, nullptr, "CreateApplyDeltaTask"}, {31, nullptr, "CreateApplyDeltaTask"}, // [20.0.0+] The type-0x5 input buffer is now 0x18-bytes instead of 0x10-bytes.
{32, nullptr, "DestroyApplyDeltaTask"}, {32, nullptr, "DestroyApplyDeltaTask"},
{33, nullptr, "ListApplicationApplyDeltaTask"}, {33, nullptr, "ListApplicationApplyDeltaTask"},
{34, nullptr, "RequestApplyDeltaTaskRun"}, {34, nullptr, "RequestApplyDeltaTaskRun"},
@ -167,54 +167,139 @@ public:
{84, nullptr, "Unknown84"}, {84, nullptr, "Unknown84"},
{85, nullptr, "ListNetworkInstallTaskContentMetaFromInstallMeta"}, {85, nullptr, "ListNetworkInstallTaskContentMetaFromInstallMeta"},
{86, nullptr, "ListNetworkInstallTaskOccupiedSize"}, {86, nullptr, "ListNetworkInstallTaskOccupiedSize"},
{87, nullptr, "Unknown87"}, {87, nullptr, "RequestQueryAvailableELicenses"}, // 6.0.0+
{88, nullptr, "Unknown88"}, {88, nullptr, "RequestAssignELicenses"}, // 6.0.0+
{89, nullptr, "Unknown89"}, {89, nullptr, "RequestExtendELicenses"}, // 6.0.0+
{90, nullptr, "Unknown90"}, {90, nullptr, "RequestSyncELicenses"}, // 6.0.0+
{91, nullptr, "Unknown91"}, {91, nullptr, "Unknown91"}, // 6.0.0-14.1.2
{92, nullptr, "Unknown92"}, {92, nullptr, "RequestQueryRevokeReason"}, // 6.0.0-19.0.1
{93, nullptr, "Unknown93"}, {93, nullptr, "RequestReportActiveELicenses"}, // 6.0.0+
{94, nullptr, "Unknown94"}, {94, nullptr, "RequestReportActiveELicensesPassively"}, // 6.0.0+
{95, nullptr, "Unknown95"}, {95, nullptr, "RequestRegisterDynamicRightsNotificationToken"}, // 6.0.0+
{96, nullptr, "Unknown96"}, {96, nullptr, "RequestAssignAllDeviceLinkedELicenses"}, // 6.0.0+
{97, nullptr, "Unknown97"}, {97, nullptr, "RequestRevokeAllELicenses"}, // 6.0.0+
{98, nullptr, "Unknown98"}, {98, nullptr, "RequestPrefetchForDynamicRights"}, // 6.0.0+
{99, nullptr, "Unknown99"}, {99, nullptr, "CreateNetworkInstallTask"}, // 7.0.0+
{100, nullptr, "Unknown100"}, {100, nullptr, "ListNetworkInstallTaskRightsIds"}, // 9.0.0+
{101, nullptr, "Unknown101"}, {101, nullptr, "RequestDownloadETickets"}, // 9.0.0+
{102, nullptr, "Unknown102"}, {102, nullptr, "RequestQueryDownloadableContents"}, // 9.0.0+
{103, nullptr, "Unknown103"}, {103, nullptr, "DeleteNetworkInstallTaskContentMeta"}, // 9.0.0+
{104, nullptr, "Unknown104"}, {104, nullptr, "RequestIssueEdgeTokenForDebug"}, // 9.0.0+
{105, nullptr, "Unknown105"}, {105, nullptr, "RequestQueryAvailableELicenses2"}, // 9.0.0+
{106, nullptr, "Unknown106"}, {106, nullptr, "RequestAssignELicenses2"}, // 9.0.0+
{107, nullptr, "Unknown107"}, {107, nullptr, "GetNetworkInstallTaskStateCounter"}, // 10.0.0+
{108, nullptr, "Unknown108"}, {108, nullptr, "InvalidateDynamicRightsNaIdTokenCacheForDebug"}, // 10.0.0+
{109, nullptr, "Unknown109"}, {109, nullptr, "ListNetworkInstallTaskPartialInstallContentMeta"}, // 10.0.0+
{110, nullptr, "Unknown110"}, {110, nullptr, "ListNetworkInstallTaskRightsIdsFromIndex"}, // 10.0.0+
{111, nullptr, "Unknown111"}, {111, nullptr, "AddNetworkInstallTaskContentMetaForUser"}, // 10.0.0+
{112, nullptr, "Unknown112"}, {112, nullptr, "RequestAssignELicensesAndDownloadETickets"}, // 10.0.0+
{113, nullptr, "Unknown113"}, {113, nullptr, "RequestQueryAvailableCommonELicenses"}, // 10.0.0+
{114, nullptr, "Unknown114"}, {114, nullptr, "SetNetworkInstallTaskExtendedAttribute"}, // 10.0.0+
{115, nullptr, "Unknown115"}, {115, nullptr, "GetNetworkInstallTaskExtendedAttribute"}, // 10.0.0+
{116, nullptr, "Unknown116"}, {116, nullptr, "GetAllocatorInfo"}, // 10.0.0+
{117, nullptr, "Unknown117"}, {117, nullptr, "RequestQueryDownloadableContentsByApplicationId"}, // 11.0.0+
{118, nullptr, "Unknown118"}, {118, nullptr, "MarkNoDownloadRightsErrorResolved"}, // 10.0.0+
{119, nullptr, "Unknown119"}, {119, nullptr, "GetApplyDeltaTaskAllAppliedContentMeta"}, // 11.0.0+ [20.0.0+] Now takes a 0x18-bytes type-0x6 output buffer and returns 4-bytes of output instead of 0x18-bytes.
{120, nullptr, "Unknown120"}, {120, nullptr, "PrioritizeNetworkInstallTask"}, // 11.0.0+
{121, nullptr, "Unknown121"}, {121, nullptr, "RequestQueryAvailableCommonELicenses2"}, // 10.1.0+
{122, nullptr, "Unknown122"}, {122, nullptr, "RequestAssignCommonELicenses"}, // 10.1.0+
{123, nullptr, "Unknown123"}, {123, nullptr, "RequestAssignCommonELicenses2"}, // 10.1.0+
{124, nullptr, "Unknown124"}, {124, nullptr, "IsNetworkInstallTaskFrontOfQueue"}, // 11.0.0+
{125, nullptr, "Unknown125"}, {125, nullptr, "PrioritizeApplyDeltaTask"}, // 11.0.0+
{126, nullptr, "Unknown126"}, {126, nullptr, "RerouteDownloadingPatch"}, // 12.0.0+
{127, nullptr, "Unknown127"}, {127, nullptr, "UnmarkNoDownloadRightsErrorResolved"}, // 12.0.0+
{128, nullptr, "Unknown128"}, {128, nullptr, "RequestContentsSize"}, // 12.0.0+
{129, nullptr, "Unknown129"}, {129, nullptr, "RequestContentsAuthorizationToken"}, // 12.0.0+
{130, nullptr, "Unknown130"}, {130, nullptr, "RequestCdnVendorDiscovery"}, // 13.0.0+
{131, nullptr, "Unknown131"}, {131, nullptr, "RefreshDebugAvailability"}, // 13.0.0+
{132, nullptr, "Unknown132"}, {132, nullptr, "ClearResponseSimulationEntry"}, // 13.0.0+
{133, nullptr, "Unknown133"}, {133, nullptr, "RegisterResponseSimulationEntry"}, // 13.0.0+
{134, nullptr, "Unknown134"}, {134, nullptr, "GetProcessedCdnVendors"}, // 13.0.0+
{135, nullptr, "RefreshRuntimeBehaviorsForDebug"}, // 14.0.0+
{136, nullptr, "RequestOnlineSubscriptionFreeTrialAvailability"}, // 14.0.0+
{137, nullptr, "GetNetworkInstallTaskContentMetaCount"}, // 14.0.0+
{138, nullptr, "RequestRevokeELicenses"}, // 15.0.0+
{139, nullptr, "EnableNetworkConnectionToUseApplicationCore"}, // 15.0.0+
{140, nullptr, "DisableNetworkConnectionToUseApplicationCore"}, // 15.0.0+
{141, nullptr, "IsNetworkConnectionEnabledToUseApplicationCore"}, // 15.0.0+
{142, nullptr, "RequestCheckSafeSystemVersion"}, // 17.0.0+
{143, nullptr, "RequestApplicationIcon"}, // 17.0.0+ [20.0.0+] Now takes 0x20-bytes of input instead of 0x18-bytes.
{144, nullptr, "RequestDownloadIdbeIconFile"}, // 17.0.0+
{147, nullptr, "Unknown147"}, // 18.0.0+
{148, nullptr, "Unknown148"}, // 18.0.0+
{150, nullptr, "Unknown150"}, // 19.0.0+
{151, nullptr, "Unknown151"}, // 20.0.0+
{152, nullptr, "Unknown152"}, // 20.0.0+
{153, nullptr, "Unknown153"}, // 20.0.0+
{154, nullptr, "Unknown154"}, // 20.0.0+
{155, nullptr, "Unknown155"}, // 20.0.0+
{156, nullptr, "Unknown156"}, // 20.0.0+
{157, nullptr, "Unknown157"}, // 20.0.0+
{158, nullptr, "Unknown158"}, // 20.0.0+
{159, nullptr, "Unknown159"}, // 20.0.0+
{160, nullptr, "Unknown160"}, // 20.0.0+
{161, nullptr, "Unknown161"}, // 20.0.0+
{162, nullptr, "Unknown162"}, // 20.0.0+
{163, nullptr, "Unknown163"}, // 20.0.0+
{164, nullptr, "Unknown164"}, // 20.0.0+
{165, nullptr, "Unknown165"}, // 20.0.0+
{166, nullptr, "Unknown166"}, // 20.0.0+
{167, nullptr, "Unknown167"}, // 20.0.0+
{168, nullptr, "Unknown168"}, // 20.0.0+
{169, nullptr, "Unknown169"}, // 20.0.0+
{170, nullptr, "Unknown170"}, // 20.0.0+
{171, nullptr, "Unknown171"}, // 20.0.0+
{172, nullptr, "Unknown172"}, // 20.0.0+
{173, nullptr, "Unknown173"}, // 20.1.0+
{2000, nullptr, "Unknown2000"}, // 20.0.0+
{2001, nullptr, "Unknown2001"}, // 20.0.0+
{2002, nullptr, "Unknown2002"}, // 20.0.0+
{2003, nullptr, "Unknown2003"}, // 20.0.0+
{2004, nullptr, "Unknown2004"}, // 20.0.0+
{2007, nullptr, "Unknown2007"}, // 20.0.0+
{2011, nullptr, "Unknown2011"}, // 20.0.0+
{2012, nullptr, "Unknown2012"}, // 20.0.0+
{2013, nullptr, "Unknown2013"}, // 20.0.0+
{2014, nullptr, "Unknown2014"}, // 20.0.0+
{2015, nullptr, "Unknown2015"}, // 20.0.0+
{2016, nullptr, "Unknown2016"}, // 20.0.0+
{2017, nullptr, "Unknown2017"}, // 20.0.0+
{2018, nullptr, "Unknown2018"}, // 20.0.0+
{2019, nullptr, "Unknown2019"}, // 20.0.0+
{2020, nullptr, "Unknown2020"}, // 20.0.0+
{2021, nullptr, "Unknown2021"}, // 20.0.0+
{2022, nullptr, "Unknown2022"}, // 20.0.0+
{2023, nullptr, "Unknown2023"}, // 20.0.0+
{2024, nullptr, "Unknown2024"}, // 20.0.0+
{2025, nullptr, "Unknown2025"}, // 20.0.0+
{2026, nullptr, "Unknown2026"}, // 20.0.0+
{2027, nullptr, "Unknown2027"}, // 20.0.0+
{2028, nullptr, "Unknown2028"}, // 20.0.0+
{2029, nullptr, "Unknown2029"}, // 20.0.0+
{2030, nullptr, "Unknown2030"}, // 20.0.0+
{2031, nullptr, "Unknown2031"}, // 20.0.0+
{2032, nullptr, "Unknown2032"}, // 20.0.0+
{2033, nullptr, "Unknown2033"}, // 20.0.0+
{2034, nullptr, "Unknown2034"}, // 20.0.0+
{2035, nullptr, "Unknown2035"}, // 20.0.0+
{2036, nullptr, "Unknown2036"}, // 20.0.0+
{2037, nullptr, "Unknown2037"}, // 20.0.0+
{2038, nullptr, "Unknown2038"}, // 20.0.0+
{2039, nullptr, "Unknown2039"}, // 20.0.0+
{2040, nullptr, "Unknown2040"}, // 20.0.0+
{2041, nullptr, "Unknown2041"}, // 20.0.0+
{2042, nullptr, "Unknown2042"}, // 20.0.0+
{2043, nullptr, "Unknown2043"}, // 20.0.0+
{2044, nullptr, "Unknown2044"}, // 20.0.0+
{2045, nullptr, "Unknown2045"}, // 20.0.0+
{2046, nullptr, "Unknown2046"}, // 20.0.0+
{2047, nullptr, "Unknown2047"}, // 20.0.0+
{2048, nullptr, "Unknown2048"}, // 20.0.0+
{2049, nullptr, "Unknown2049"}, // 20.0.0+
{2050, nullptr, "Unknown2050"}, // 20.0.0+
{2051, nullptr, "Unknown2051"}, // 20.0.0+
{3000, nullptr, "RequestLatestApplicationIcon"}, // 17.0.0+
{3001, nullptr, "RequestDownloadIdbeLatestIconFile"} // 17.0.0+
}; };
// clang-format on // clang-format on
@ -232,7 +317,7 @@ public:
{2, nullptr, "ClearDebugResponse"}, {2, nullptr, "ClearDebugResponse"},
{3, nullptr, "RegisterDebugResponse"}, {3, nullptr, "RegisterDebugResponse"},
{4, &NIM_ECA::IsLargeResourceAvailable, "IsLargeResourceAvailable"}, {4, &NIM_ECA::IsLargeResourceAvailable, "IsLargeResourceAvailable"},
{5, &NIM_ECA::CreateServerInterface2, "CreateServerInterface2"} // 17.0.0+ {5, &NIM_ECA::CreateServerInterface2, "CreateServerInterface2"} // 17.0.0+
}; };
// clang-format on // clang-format on
@ -241,7 +326,7 @@ public:
private: private:
void CreateServerInterface(HLERequestContext& ctx) { void CreateServerInterface(HLERequestContext& ctx) {
LOG_DEBUG(Service_NIM, "(STUBBED) called"); LOG_DEBUG(Service_NIM, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
rb.PushIpcInterface<IShopServiceAccessServer>(system); rb.PushIpcInterface<IShopServiceAccessServer>(system);
@ -258,14 +343,14 @@ private:
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
rb.Push(false); rb.Push(false);
} }
void CreateServerInterface2(HLERequestContext& ctx) { void CreateServerInterface2(HLERequestContext& ctx) {
LOG_DEBUG(Service_NIM, "(STUBBED) called."); LOG_DEBUG(Service_NIM, "(STUBBED) called.");
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
rb.PushIpcInterface<IShopServiceAccessServer>(system); rb.PushIpcInterface<IShopServiceAccessServer>(system);
} }
}; };
class NIM_SHP final : public ServiceFramework<NIM_SHP> { class NIM_SHP final : public ServiceFramework<NIM_SHP> {
@ -301,6 +386,8 @@ public:
{503, nullptr, "RequestSyncTicket"}, {503, nullptr, "RequestSyncTicket"},
{504, nullptr, "RequestDownloadTicketForPrepurchasedContents2"}, {504, nullptr, "RequestDownloadTicketForPrepurchasedContents2"},
{505, nullptr, "RequestDownloadTicketForPrepurchasedContentsForAccount"}, {505, nullptr, "RequestDownloadTicketForPrepurchasedContentsForAccount"},
{600, nullptr, "IsInitialLaunchFinished"}, // 14.0.0+
{601, nullptr, "NotifyFinishInitialLaunch"}, // 14.0.0+
}; };
// clang-format on // clang-format on

View file

@ -53,8 +53,13 @@ public:
{42, nullptr, "SetNetworkServiceAccountIdTokenSuccess"}, // 17.0.0+ {42, nullptr, "SetNetworkServiceAccountIdTokenSuccess"}, // 17.0.0+
{43, nullptr, "SetNetworkServiceAccountIdTokenFailure"}, // 17.0.0+ {43, nullptr, "SetNetworkServiceAccountIdTokenFailure"}, // 17.0.0+
{44, nullptr, "SetUidList"}, // 17.0.0+ {44, nullptr, "SetUidList"}, // 17.0.0+
{45, nullptr, "PutDigitalTwinKeyValue"}, // 17.0.0+ {45, nullptr, "PutDigitalTwinKeyValue"}, // [20.0.0+] ([17.0.0-18.1.0] PutDigitalTwinKeyValue)
{51, nullptr, "DeleteDigitalTwinKeyValue"}, // 18.0.0+ {51, nullptr, "DeleteDigitalTwinKeyValue"}, // 18.0.0+
{52, nullptr, "Unknown52"}, // 20.0.0+
{53, nullptr, "Unknown53"}, // 20.0.0+
{60, nullptr, "Unknown60"}, // 19.0.0+
{61, nullptr, "Unknown61"}, // 19.0.0+
{70, nullptr, "Unknown70"}, // 20.0.0+
{101, nullptr, "Suspend"}, {101, nullptr, "Suspend"},
{102, nullptr, "Resume"}, {102, nullptr, "Resume"},
{103, C<&INpnsSystem::GetState>, "GetState"}, {103, C<&INpnsSystem::GetState>, "GetState"},
@ -68,6 +73,13 @@ public:
{114, nullptr, "AttachJid"}, {114, nullptr, "AttachJid"},
{115, nullptr, "DetachJid"}, {115, nullptr, "DetachJid"},
{120, nullptr, "CreateNotificationReceiver"}, {120, nullptr, "CreateNotificationReceiver"},
{141, nullptr, "Unknown141"}, // 19.0.0+
{142, nullptr, "Unknown142"}, // 19.0.0+
{143, nullptr, "Unknown143"}, // 19.0.0+
{144, nullptr, "Unknown144"}, // 19.0.0+
{145, nullptr, "Unknown145"}, // 19.0.0+
{146, nullptr, "Unknown146"}, // 20.0.0+
{147, nullptr, "Unknown147"}, // 20.0.0+
{151, nullptr, "GetStateWithHandover"}, {151, nullptr, "GetStateWithHandover"},
{152, nullptr, "GetStateChangeEventWithHandover"}, {152, nullptr, "GetStateChangeEventWithHandover"},
{153, nullptr, "GetDropEventWithHandover"}, {153, nullptr, "GetDropEventWithHandover"},
@ -78,6 +90,7 @@ public:
{162, nullptr, "RequestChangeStateForceTimedWithCancelEvent"}, {162, nullptr, "RequestChangeStateForceTimedWithCancelEvent"},
{201, nullptr, "RequestChangeStateForceTimed"}, {201, nullptr, "RequestChangeStateForceTimed"},
{202, nullptr, "RequestChangeStateForceAsync"}, {202, nullptr, "RequestChangeStateForceAsync"},
{203, nullptr, "Unknown203"}, // 20.0.0+
{301, nullptr, "GetPassword"}, // 18.0.0+ {301, nullptr, "GetPassword"}, // 18.0.0+
{302, nullptr, "GetAllImmigration"}, // 18.0.0+ {302, nullptr, "GetAllImmigration"}, // 18.0.0+
{303, nullptr, "GetNotificationHistories"}, // 18.0.0+ {303, nullptr, "GetNotificationHistories"}, // 18.0.0+

View file

@ -115,7 +115,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{301, nullptr, "PopApplicationShellEventInfo"}, {301, nullptr, "PopApplicationShellEventInfo"},
{302, nullptr, "LaunchLibraryApplet"}, {302, nullptr, "LaunchLibraryApplet"},
{303, nullptr, "TerminateLibraryApplet"}, {303, nullptr, "TerminateLibraryApplet"},
{304, nullptr, "LaunchSystemApplet"}, {304, nullptr, "LaunchSystemApplet"}, // [20.0.0+] ns.applet!system_applet_id_gen2
{305, nullptr, "TerminateSystemApplet"}, {305, nullptr, "TerminateSystemApplet"},
{306, nullptr, "LaunchOverlayApplet"}, {306, nullptr, "LaunchOverlayApplet"},
{307, nullptr, "TerminateOverlayApplet"}, {307, nullptr, "TerminateOverlayApplet"},
@ -128,6 +128,23 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{406, nullptr, "GetApplicationControlProperty"}, {406, nullptr, "GetApplicationControlProperty"},
{407, nullptr, "ListApplicationTitle"}, {407, nullptr, "ListApplicationTitle"},
{408, nullptr, "ListApplicationIcon"}, {408, nullptr, "ListApplicationIcon"},
{411, nullptr, "Unknown411"}, // 19.0.0+
{412, nullptr, "Unknown412"}, // 19.0.0+
{413, nullptr, "Unknown413"}, // 19.0.0+
{414, nullptr, "Unknown414"}, // 19.0.0+
{415, nullptr, "Unknown415"}, // 19.0.0+
{416, nullptr, "Unknown416"}, // 19.0.0+
{417, nullptr, "InvalidateAllApplicationControlCacheOfTheStage"}, // 19.0.0+
{418, nullptr, "InvalidateApplicationControlCacheOfTheStage"}, // 19.0.0+
{419, nullptr, "RequestDownloadApplicationControlDataInBackground"}, // 19.0.0+
{420, nullptr, "CloneApplicationControlDataCacheForDebug"}, // 19.0.0+
{421, nullptr, "Unknown421"}, // 20.0.0+
{422, nullptr, "Unknown422"}, // 20.0.0+
{423, nullptr, "Unknown423"}, // 20.0.0+
{424, nullptr, "Unknown424"}, // 20.0.0+
{425, nullptr, "Unknown425"}, // 20.0.0+
{426, nullptr, "Unknown426"}, // 20.0.0+
{427, nullptr, "Unknown427"}, // 20.0.0+
{502, nullptr, "RequestCheckGameCardRegistration"}, {502, nullptr, "RequestCheckGameCardRegistration"},
{503, nullptr, "RequestGameCardRegistrationGoldPoint"}, {503, nullptr, "RequestGameCardRegistrationGoldPoint"},
{504, nullptr, "RequestRegisterGameCard"}, {504, nullptr, "RequestRegisterGameCard"},
@ -137,6 +154,9 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{508, nullptr, "GetLastGameCardMountFailureResult"}, {508, nullptr, "GetLastGameCardMountFailureResult"},
{509, nullptr, "ListApplicationIdOnGameCard"}, {509, nullptr, "ListApplicationIdOnGameCard"},
{510, nullptr, "GetGameCardPlatformRegion"}, {510, nullptr, "GetGameCardPlatformRegion"},
{513, nullptr, "Unknown513"}, // 20.0.0+
{514, nullptr, "Unknown514"}, // 20.0.0+
{515, nullptr, "Unknown515"}, // 20.0.0+
{600, nullptr, "CountApplicationContentMeta"}, {600, nullptr, "CountApplicationContentMeta"},
{601, nullptr, "ListApplicationContentMetaStatus"}, {601, nullptr, "ListApplicationContentMetaStatus"},
{602, nullptr, "ListAvailableAddOnContent"}, {602, nullptr, "ListAvailableAddOnContent"},
@ -174,6 +194,18 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{914, nullptr, "HideApplicationRecord"}, {914, nullptr, "HideApplicationRecord"},
{915, nullptr, "ShowApplicationRecord"}, {915, nullptr, "ShowApplicationRecord"},
{916, nullptr, "IsApplicationAutoDeleteDisabled"}, {916, nullptr, "IsApplicationAutoDeleteDisabled"},
{917, nullptr, "Unknown917"}, // 20.0.0+
{918, nullptr, "Unknown918"}, // 20.0.0+
{919, nullptr, "Unknown919"}, // 20.0.0+
{920, nullptr, "Unknown920"}, // 20.0.0+
{921, nullptr, "Unknown921"}, // 20.0.0+
{922, nullptr, "Unknown922"}, // 20.0.0+
{923, nullptr, "Unknown923"}, // 20.0.0+
{928, nullptr, "Unknown928"}, // 20.0.0+
{929, nullptr, "Unknown929"}, // 20.0.0+
{930, nullptr, "Unknown930"}, // 20.0.0+
{931, nullptr, "Unknown931"}, // 20.0.0+
{933, nullptr, "Unknown933"}, // 20.1.0+
{1000, nullptr, "RequestVerifyApplicationDeprecated"}, {1000, nullptr, "RequestVerifyApplicationDeprecated"},
{1001, nullptr, "CorruptApplicationForDebug"}, {1001, nullptr, "CorruptApplicationForDebug"},
{1002, nullptr, "RequestVerifyAddOnContentsRights"}, {1002, nullptr, "RequestVerifyAddOnContentsRights"},
@ -202,6 +234,11 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{1504, nullptr, "InsertSdCard"}, {1504, nullptr, "InsertSdCard"},
{1505, nullptr, "RemoveSdCard"}, {1505, nullptr, "RemoveSdCard"},
{1506, nullptr, "GetSdCardStartupStatus"}, {1506, nullptr, "GetSdCardStartupStatus"},
{1508, nullptr, "Unknown1508"}, // 20.0.0+
{1509, nullptr, "Unknown1509"}, // 20.0.0+
{1510, nullptr, "Unknown1510"}, // 20.0.0+
{1511, nullptr, "Unknown1511"}, // 20.0.0+
{1512, nullptr, "Unknown1512"}, // 20.0.0+
{1600, nullptr, "GetSystemSeedForPseudoDeviceId"}, {1600, nullptr, "GetSystemSeedForPseudoDeviceId"},
{1601, nullptr, "ResetSystemSeedForPseudoDeviceId"}, {1601, nullptr, "ResetSystemSeedForPseudoDeviceId"},
{1700, nullptr, "ListApplicationDownloadingContentMeta"}, {1700, nullptr, "ListApplicationDownloadingContentMeta"},
@ -210,6 +247,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{1703, nullptr, "GetApplicationViewDownloadErrorContext"}, {1703, nullptr, "GetApplicationViewDownloadErrorContext"},
{1704, D<&IApplicationManagerInterface::GetApplicationViewWithPromotionInfo>, "GetApplicationViewWithPromotionInfo"}, {1704, D<&IApplicationManagerInterface::GetApplicationViewWithPromotionInfo>, "GetApplicationViewWithPromotionInfo"},
{1705, nullptr, "IsPatchAutoDeletableApplication"}, {1705, nullptr, "IsPatchAutoDeletableApplication"},
{1706, nullptr, "Unknown1706"}, // 20.0.0+
{1800, nullptr, "IsNotificationSetupCompleted"}, {1800, nullptr, "IsNotificationSetupCompleted"},
{1801, nullptr, "GetLastNotificationInfoCount"}, {1801, nullptr, "GetLastNotificationInfoCount"},
{1802, nullptr, "ListLastNotificationInfo"}, {1802, nullptr, "ListLastNotificationInfo"},
@ -218,7 +256,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{1901, nullptr, "RequestDownloadApplicationPrepurchasedRights"}, {1901, nullptr, "RequestDownloadApplicationPrepurchasedRights"},
{1902, nullptr, "GetApplicationTicketInfo"}, {1902, nullptr, "GetApplicationTicketInfo"},
{1903, nullptr, "RequestDownloadApplicationPrepurchasedRightsForAccount"}, {1903, nullptr, "RequestDownloadApplicationPrepurchasedRightsForAccount"},
{2000, nullptr, "GetSystemDeliveryInfo"}, {2000, nullptr, "GetSystemDeliveryInfo"}, // Always set to 0x1 by #GetSystemDeliveryInfo with [20.0.0+].
{2001, nullptr, "SelectLatestSystemDeliveryInfo"}, {2001, nullptr, "SelectLatestSystemDeliveryInfo"},
{2002, nullptr, "VerifyDeliveryProtocolVersion"}, {2002, nullptr, "VerifyDeliveryProtocolVersion"},
{2003, nullptr, "GetApplicationDeliveryInfo"}, {2003, nullptr, "GetApplicationDeliveryInfo"},
@ -237,8 +275,11 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{2016, nullptr, "ListNotCommittedContentMeta"}, {2016, nullptr, "ListNotCommittedContentMeta"},
{2017, nullptr, "CreateDownloadTask"}, {2017, nullptr, "CreateDownloadTask"},
{2018, nullptr, "GetApplicationDeliveryInfoHash"}, {2018, nullptr, "GetApplicationDeliveryInfoHash"},
{2019, nullptr, "Unknown2019"}, // 20.0.0+
{2050, D<&IApplicationManagerInterface::GetApplicationRightsOnClient>, "GetApplicationRightsOnClient"}, {2050, D<&IApplicationManagerInterface::GetApplicationRightsOnClient>, "GetApplicationRightsOnClient"},
{2051, nullptr, "InvalidateRightsIdCache"}, {2051, nullptr, "InvalidateRightsIdCache"},
{2052, nullptr, "Unknown2052"}, // 20.0.0+
{2053, nullptr, "Unknown2053"}, // 20.0.0+
{2100, D<&IApplicationManagerInterface::GetApplicationTerminateResult>, "GetApplicationTerminateResult"}, {2100, D<&IApplicationManagerInterface::GetApplicationTerminateResult>, "GetApplicationTerminateResult"},
{2101, nullptr, "GetRawApplicationTerminateResult"}, {2101, nullptr, "GetRawApplicationTerminateResult"},
{2150, nullptr, "CreateRightsEnvironment"}, {2150, nullptr, "CreateRightsEnvironment"},
@ -255,6 +296,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{2180, nullptr, "RequestExtendRightsInRightsEnvironment"}, {2180, nullptr, "RequestExtendRightsInRightsEnvironment"},
{2181, nullptr, "GetResultOfExtendRightsInRightsEnvironment"}, {2181, nullptr, "GetResultOfExtendRightsInRightsEnvironment"},
{2182, nullptr, "SetActiveRightsContextUsingStateToRightsEnvironment"}, {2182, nullptr, "SetActiveRightsContextUsingStateToRightsEnvironment"},
{2183, nullptr, "Unknown2183"}, // 20.1.0+
{2190, nullptr, "GetRightsEnvironmentHandleForApplication"}, {2190, nullptr, "GetRightsEnvironmentHandleForApplication"},
{2199, nullptr, "GetRightsEnvironmentCountForDebug"}, {2199, nullptr, "GetRightsEnvironmentCountForDebug"},
{2200, nullptr, "GetGameCardApplicationCopyIdentifier"}, {2200, nullptr, "GetGameCardApplicationCopyIdentifier"},
@ -271,9 +313,18 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{2357, nullptr, "EnableMultiCoreDownload"}, {2357, nullptr, "EnableMultiCoreDownload"},
{2358, nullptr, "DisableMultiCoreDownload"}, {2358, nullptr, "DisableMultiCoreDownload"},
{2359, nullptr, "IsMultiCoreDownloadEnabled"}, {2359, nullptr, "IsMultiCoreDownloadEnabled"},
{2360, nullptr, "GetApplicationDownloadTaskCount"}, // 19.0.0+
{2361, nullptr, "GetMaxApplicationDownloadTaskCount"}, // 19.0.0+
{2362, nullptr, "Unknown2362"}, // 20.0.0+
{2363, nullptr, "Unknown2363"}, // 20.0.0+
{2364, nullptr, "Unknown2364"}, // 20.0.0+
{2365, nullptr, "Unknown2365"}, // 20.0.0+
{2366, nullptr, "Unknown2366"}, // 20.0.0+
{2367, nullptr, "Unknown2367"}, // 20.0.0+
{2368, nullptr, "Unknown2368"}, // 20.0.0+
{2400, nullptr, "GetPromotionInfo"}, {2400, nullptr, "GetPromotionInfo"},
{2401, nullptr, "CountPromotionInfo"}, {2401, nullptr, "CountPromotionInfo"},
{2402, nullptr, "ListPromotionInfo"}, {2402, nullptr, "ListPromotionInfo"}, // [20.0.0+] The struct size for the output buffer array is now 0x28-bytes instead of 0x20-bytes.
{2403, nullptr, "ImportPromotionJsonForDebug"}, {2403, nullptr, "ImportPromotionJsonForDebug"},
{2404, nullptr, "ClearPromotionInfoForDebug"}, {2404, nullptr, "ClearPromotionInfoForDebug"},
{2500, nullptr, "ConfirmAvailableTime"}, {2500, nullptr, "ConfirmAvailableTime"},
@ -289,6 +340,9 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{2520, nullptr, "IsQualificationTransitionSupportedByProcessId"}, {2520, nullptr, "IsQualificationTransitionSupportedByProcessId"},
{2521, nullptr, "GetRightsUserChangedEvent"}, {2521, nullptr, "GetRightsUserChangedEvent"},
{2522, nullptr, "IsRomRedirectionAvailable"}, {2522, nullptr, "IsRomRedirectionAvailable"},
{2523, nullptr, "GetProgramId"}, // 17.0.0+
{2524, nullptr, "Unknown2524"}, // 19.0.0+
{2525, nullptr, "Unknown2525"}, // 20.0.0+
{2800, nullptr, "GetApplicationIdOfPreomia"}, {2800, nullptr, "GetApplicationIdOfPreomia"},
{3000, nullptr, "RegisterDeviceLockKey"}, {3000, nullptr, "RegisterDeviceLockKey"},
{3001, nullptr, "UnregisterDeviceLockKey"}, {3001, nullptr, "UnregisterDeviceLockKey"},
@ -306,9 +360,95 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
{3013, nullptr, "IsGameCardEnabled"}, {3013, nullptr, "IsGameCardEnabled"},
{3014, nullptr, "IsLocalContentShareEnabled"}, {3014, nullptr, "IsLocalContentShareEnabled"},
{3050, nullptr, "ListAssignELicenseTaskResult"}, {3050, nullptr, "ListAssignELicenseTaskResult"},
{4000, nullptr, "Unknown4000"}, // 20.0.0+
{4004, nullptr, "Unknown4004"}, // 20.0.0+
{4006, nullptr, "Unknown4006"}, // 20.0.0+
{4007, nullptr, "Unknown4007"}, // 20.0.0+
{4008, nullptr, "Unknown4008"}, // 20.0.0+
{4009, nullptr, "Unknown4009"}, // 20.0.0+
{4010, nullptr, "Unknown4010"}, // 20.0.0+
{4011, nullptr, "Unknown4011"}, // 20.0.0+
{4012, nullptr, "Unknown4012"}, // 20.0.0+
{4013, nullptr, "Unknown4013"}, // 20.0.0+
{4015, nullptr, "Unknown4015"}, // 20.0.0+
{4017, nullptr, "Unknown4017"}, // 20.0.0+
{4019, nullptr, "Unknown4019"}, // 20.0.0+
{4020, nullptr, "Unknown4020"}, // 20.0.0+
{4021, nullptr, "Unknown4021"}, // 20.0.0+
{4022, D<&IApplicationManagerInterface::Unknown4022>, "Unknown4022"}, {4022, D<&IApplicationManagerInterface::Unknown4022>, "Unknown4022"},
{4023, D<&IApplicationManagerInterface::Unknown4023>, "Unknown4023"}, {4023, D<&IApplicationManagerInterface::Unknown4023>, "Unknown4023"},
{4024, nullptr, "Unknown4024"}, // 20.0.0+
{4025, nullptr, "Unknown4025"}, // 20.0.0+
{4026, nullptr, "Unknown4026"}, // 20.0.0+
{4027, nullptr, "Unknown4027"}, // 20.0.0+
{4028, nullptr, "Unknown4028"}, // 20.0.0+
{4029, nullptr, "Unknown4029"}, // 20.0.0+
{4030, nullptr, "Unknown4030"}, // 20.0.0+
{4031, nullptr, "Unknown4031"}, // 20.0.0+
{4032, nullptr, "Unknown4032"}, // 20.0.0+
{4033, nullptr, "Unknown4033"}, // 20.0.0+
{4034, nullptr, "Unknown4034"}, // 20.0.0+
{4035, nullptr, "Unknown4035"}, // 20.0.0+
{4037, nullptr, "Unknown4037"}, // 20.0.0+
{4038, nullptr, "Unknown4038"}, // 20.0.0+
{4039, nullptr, "Unknown4039"}, // 20.0.0+
{4040, nullptr, "Unknown4040"}, // 20.0.0+
{4041, nullptr, "Unknown4041"}, // 20.0.0+
{4042, nullptr, "Unknown4042"}, // 20.0.0+
{4043, nullptr, "Unknown4043"}, // 20.0.0+
{4044, nullptr, "Unknown4044"}, // 20.0.0+
{4045, nullptr, "Unknown4045"}, // 20.0.0+
{4046, nullptr, "Unknown4046"}, // 20.0.0+
{4049, nullptr, "Unknown4049"}, // 20.0.0+
{4050, nullptr, "Unknown4050"}, // 20.0.0+
{4051, nullptr, "Unknown4051"}, // 20.0.0+
{4052, nullptr, "Unknown4052"}, // 20.0.0+
{4053, nullptr, "Unknown4053"}, // 20.0.0+
{4054, nullptr, "Unknown4054"}, // 20.0.0+
{4055, nullptr, "Unknown4055"}, // 20.0.0+
{4056, nullptr, "Unknown4056"}, // 20.0.0+
{4057, nullptr, "Unknown4057"}, // 20.0.0+
{4058, nullptr, "Unknown4058"}, // 20.0.0+
{4059, nullptr, "Unknown4059"}, // 20.0.0+
{4060, nullptr, "Unknown4060"}, // 20.0.0+
{4061, nullptr, "Unknown4061"}, // 20.0.0+
{4062, nullptr, "Unknown4062"}, // 20.0.0+
{4063, nullptr, "Unknown4063"}, // 20.0.0+
{4064, nullptr, "Unknown4064"}, // 20.0.0+
{4065, nullptr, "Unknown4065"}, // 20.0.0+
{4066, nullptr, "Unknown4066"}, // 20.0.0+
{4067, nullptr, "Unknown4067"}, // 20.0.0+
{4068, nullptr, "Unknown4068"}, // 20.0.0+
{4069, nullptr, "Unknown4069"}, // 20.0.0+
{4070, nullptr, "Unknown4070"}, // 20.0.0+
{4071, nullptr, "Unknown4071"}, // 20.0.0+
{4072, nullptr, "Unknown4072"}, // 20.0.0+
{4073, nullptr, "Unknown4073"}, // 20.0.0+
{4074, nullptr, "Unknown4074"}, // 20.0.0+
{4075, nullptr, "Unknown4075"}, // 20.0.0+
{4076, nullptr, "Unknown4076"}, // 20.0.0+
{4077, nullptr, "Unknown4077"}, // 20.0.0+
{4078, nullptr, "Unknown4078"}, // 20.0.0+
{4079, nullptr, "Unknown4079"}, // 20.0.0+
{4080, nullptr, "Unknown4080"}, // 20.0.0+
{4081, nullptr, "Unknown4081"}, // 20.0.0+
{4083, nullptr, "Unknown4083"}, // 20.0.0+
{4084, nullptr, "Unknown4084"}, // 20.0.0+
{4085, nullptr, "Unknown4085"}, // 20.0.0+
{4086, nullptr, "Unknown4086"}, // 20.0.0+
{4087, nullptr, "Unknown4087"}, // 20.0.0+
{4088, D<&IApplicationManagerInterface::Unknown4088>, "Unknown4088"}, {4088, D<&IApplicationManagerInterface::Unknown4088>, "Unknown4088"},
{4089, nullptr, "Unknown4089"}, // 20.0.0+
{4090, nullptr, "Unknown4090"}, // 20.0.0+
{4091, nullptr, "Unknown4091"}, // 20.0.0+
{4092, nullptr, "Unknown4092"}, // 20.0.0+
{4093, nullptr, "Unknown4093"}, // 20.0.0+
{4094, nullptr, "Unknown4094"}, // 20.0.0+
{4095, nullptr, "Unknown4095"}, // 20.0.0+
{4096, nullptr, "Unknown4096"}, // 20.0.0+
{4097, nullptr, "Unknown4097"}, // 20.0.0+
{5000, nullptr, "Unknown5000"}, // 18.0.0+
{5001, nullptr, "Unknown5001"}, // 18.0.0+
{9999, nullptr, "GetApplicationCertificate"}, {9999, nullptr, "GetApplicationCertificate"},
}; };
// clang-format on // clang-format on

View file

@ -27,6 +27,12 @@ IDevelopInterface::IDevelopInterface(Core::System& system_) : ServiceFramework{s
{17, nullptr, "PrepareLaunchApplicationFromHost"}, {17, nullptr, "PrepareLaunchApplicationFromHost"},
{18, nullptr, "GetLaunchEvent"}, {18, nullptr, "GetLaunchEvent"},
{19, nullptr, "GetLaunchResult"}, {19, nullptr, "GetLaunchResult"},
{19, nullptr, "GetLaunchResult"}, // 12.0.0+
{20, nullptr, "GetProgramId"}, // 14.0.0+
{21, nullptr, "PrepareLaunchApplication"}, // 18.0.0+
{22, nullptr, "LaunchApplication"}, // 18.0.0+
{23, nullptr, "GetProgramIdByApplicationLaunchInfo"}, // 18.0.0+
{24, nullptr, "DestroyApplicationLaunchPreparation"}, // 18.0.0+
}; };
// clang-format on // clang-format on

View file

@ -19,6 +19,7 @@ IDownloadTaskInterface::IDownloadTaskInterface(Core::System& system_)
{707, D<&IDownloadTaskInterface::EnableAutoCommit>, "EnableAutoCommit"}, {707, D<&IDownloadTaskInterface::EnableAutoCommit>, "EnableAutoCommit"},
{708, D<&IDownloadTaskInterface::DisableAutoCommit>, "DisableAutoCommit"}, {708, D<&IDownloadTaskInterface::DisableAutoCommit>, "DisableAutoCommit"},
{709, nullptr, "TriggerDynamicCommitEvent"}, {709, nullptr, "TriggerDynamicCommitEvent"},
{710, nullptr, "Unknown710"} // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -38,6 +38,8 @@ IDynamicRightsInterface::IDynamicRightsInterface(Core::System& system_)
{24, nullptr, "NotifyLimitedApplicationLicenseUpgradableEventForDebug"}, {24, nullptr, "NotifyLimitedApplicationLicenseUpgradableEventForDebug"},
{25, nullptr, "RequestProceedDynamicRightsState"}, {25, nullptr, "RequestProceedDynamicRightsState"},
{26, D<&IDynamicRightsInterface::HasAccountRestrictedRightsInRunningApplications>, "HasAccountRestrictedRightsInRunningApplications"} {26, D<&IDynamicRightsInterface::HasAccountRestrictedRightsInRunningApplications>, "HasAccountRestrictedRightsInRunningApplications"}
{27, nullptr, "Unknown27"}, // 20.0.0+
{28, nullptr, "Unknown28"}, // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -16,6 +16,13 @@ IECommerceInterface::IECommerceInterface(Core::System& system_)
{4, nullptr, "RequestUnlinkDevice"}, {4, nullptr, "RequestUnlinkDevice"},
{5, nullptr, "RequestRevokeAllELicense"}, {5, nullptr, "RequestRevokeAllELicense"},
{6, nullptr, "RequestSyncRightsBasedOnAssignedELicenses"}, {6, nullptr, "RequestSyncRightsBasedOnAssignedELicenses"},
{7, nullptr, "RequestOnlineSubscriptionFreeTrialAvailability"}, // 14.0.0+
{8, nullptr, "Unknown8"}, // 20.0.0+
{9, nullptr, "Unknown9"}, // 20.0.0+
{10, nullptr, "Unknown10"}, // 20.0.0+
{11, nullptr, "Unknown11"}, // 20.0.0+
{12, nullptr, "Unknown12"}, // 20.0.0+
{13, nullptr, "Unknown13"}, // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -16,6 +16,8 @@ IFactoryResetInterface::IFactoryResetInterface(Core::System& system_)
{104, nullptr, "ResetToFactorySettingsWithPlatformRegionAuthentication"}, {104, nullptr, "ResetToFactorySettingsWithPlatformRegionAuthentication"},
{105, nullptr, "RequestResetToFactorySettingsSecurely"}, {105, nullptr, "RequestResetToFactorySettingsSecurely"},
{106, nullptr, "RequestResetToFactorySettingsWithPlatformRegionAuthenticationSecurely"}, {106, nullptr, "RequestResetToFactorySettingsWithPlatformRegionAuthenticationSecurely"},
{107, nullptr, "Unknown7"}, // 20.0.0+
{108, nullptr, "Unknown8"}, // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -32,6 +32,10 @@ IQueryService::IQueryService(Core::System& system_) : ServiceFramework{system_,
{17, nullptr, "QueryLastPlayTime"}, {17, nullptr, "QueryLastPlayTime"},
{18, nullptr, "QueryApplicationPlayStatisticsForSystem"}, {18, nullptr, "QueryApplicationPlayStatisticsForSystem"},
{19, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystem"}, {19, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystem"},
{100, nullptr, "Unknown100"}, // 20.0.0+
{110, nullptr, "Unknown110"}, // 20.0.0+
{118, nullptr, "Unknown118"}, // 20.0.0+
{119, nullptr, "Unknown119"} // 20.0.0+
}; };
// clang-format on // clang-format on

View file

@ -23,6 +23,19 @@ IReadOnlyApplicationControlDataInterface::IReadOnlyApplicationControlDataInterfa
{2, D<&IReadOnlyApplicationControlDataInterface::ConvertApplicationLanguageToLanguageCode>, "ConvertApplicationLanguageToLanguageCode"}, {2, D<&IReadOnlyApplicationControlDataInterface::ConvertApplicationLanguageToLanguageCode>, "ConvertApplicationLanguageToLanguageCode"},
{3, nullptr, "ConvertLanguageCodeToApplicationLanguage"}, {3, nullptr, "ConvertLanguageCodeToApplicationLanguage"},
{4, nullptr, "SelectApplicationDesiredLanguage"}, {4, nullptr, "SelectApplicationDesiredLanguage"},
{5, nullptr, "Unknown5"}, // 19.0.0+
{6, nullptr, "Unknown6"}, // 19.0.0+
{7, nullptr, "Unknown7"}, // 20.0.0+
{8, nullptr, "Unknown8"}, // 20.0.0+
{9, nullptr, "Unknown9"}, // 20.0.0+
{10, nullptr, "Unknown10"}, // 20.0.0+
{11, nullptr, "Unknown11"}, // 20.0.0+
{12, nullptr, "Unknown12"}, // 20.0.0+
{13, nullptr, "Unknown13"}, // 20.0.0+
{14, nullptr, "Unknown14"}, // 20.0.0+
{15, nullptr, "Unknown15"}, // 20.0.0+
{16, nullptr, "Unknown16"}, // 20.0.0+
{17, nullptr, "Unknown17"}, // 20.1.0+
}; };
// clang-format on // clang-format on

View file

@ -11,8 +11,8 @@ IReadOnlyApplicationRecordInterface::IReadOnlyApplicationRecordInterface(Core::S
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, D<&IReadOnlyApplicationRecordInterface::HasApplicationRecord>, "HasApplicationRecord"}, {0, D<&IReadOnlyApplicationRecordInterface::HasApplicationRecord>, "HasApplicationRecord"},
{1, nullptr, "NotifyApplicationFailure"}, {1, nullptr, "NotifyApplicationFailure"},
{2, D<&IReadOnlyApplicationRecordInterface::IsDataCorruptedResult>, {2, D<&IReadOnlyApplicationRecordInterface::IsDataCorruptedResult>, "IsDataCorruptedResult"},
"IsDataCorruptedResult"}, {3, nullptr, "Unknown3"}, // 20.0.0 +
}; };
// clang-format on // clang-format on

View file

@ -13,6 +13,9 @@ IVulnerabilityManagerInterface::IVulnerabilityManagerInterface(Core::System& sys
{1200, D<&IVulnerabilityManagerInterface::NeedsUpdateVulnerability>, "NeedsUpdateVulnerability"}, {1200, D<&IVulnerabilityManagerInterface::NeedsUpdateVulnerability>, "NeedsUpdateVulnerability"},
{1201, nullptr, "UpdateSafeSystemVersionForDebug"}, {1201, nullptr, "UpdateSafeSystemVersionForDebug"},
{1202, nullptr, "GetSafeSystemVersion"}, {1202, nullptr, "GetSafeSystemVersion"},
{3100, nullptr, "Unknown7"}, // 18.0.0+
{3101, nullptr, "Unknown8"}, // 18.0.0+
{3102, nullptr, "Unknown8"}, // 18.0.0+
}; };
// clang-format on // clang-format on

View file

@ -10,16 +10,17 @@ IDaemonController::IDaemonController(Core::System& system_)
: ServiceFramework{system_, "IDaemonController"} { : ServiceFramework{system_, "IDaemonController"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, D<&IDaemonController::GetAutoTransferEnabledForAccountAndApplication>, "GetAutoTransferEnabledForAccountAndApplication"}, {0, D<&IDaemonController::GetApplicationAutoTransferSetting>, "GetApplicationAutoTransferSetting"},
{1, nullptr, "SetAutoTransferEnabledForAccountAndApplication"}, {1, nullptr, "SetApplicationAutoTransferSetting"},
{2, nullptr, "GetGlobalUploadEnabledForAccount"}, {2, nullptr, "GetGlobalAutoUploadSetting"},
{3, nullptr, "SetGlobalUploadEnabledForAccount"}, {3, nullptr, "SetGlobalAutoUploadSetting"},
{4, nullptr, "TouchAccount"}, {4, nullptr, "RunTransferTaskAutonomyRegistration"},
{5, nullptr, "GetGlobalDownloadEnabledForAccount"}, {5, nullptr, "GetGlobalAutoDownloadSetting"}, // 11.0.0+
{6, nullptr, "SetGlobalDownloadEnabledForAccount"}, {6, nullptr, "SetGlobalAutoDownloadSetting"}, // 11.0.0+
{10, nullptr, "GetForbiddenSaveDataIndication"}, {10, nullptr, "CreateForbiddenSaveDataInidication"},
{11, nullptr, "GetStopperObject"}, {11, nullptr, "StopAutonomyTaskExecution"},
{12, nullptr, "GetState"}, {12, nullptr, "GetAutonomyTaskStatus"},
{13, nullptr, "Unknown13"}, // 20.0.0+
}; };
// clang-format on // clang-format on
@ -28,7 +29,7 @@ IDaemonController::IDaemonController(Core::System& system_)
IDaemonController::~IDaemonController() = default; IDaemonController::~IDaemonController() = default;
Result IDaemonController::GetAutoTransferEnabledForAccountAndApplication(Out<bool> out_is_enabled, Result IDaemonController::GetApplicationAutoTransferSetting(Out<bool> out_is_enabled,
Common::UUID user_id, Common::UUID user_id,
u64 application_id) { u64 application_id) {
LOG_WARNING(Service_OLSC, "(STUBBED) called, user_id={} application_id={:016X}", LOG_WARNING(Service_OLSC, "(STUBBED) called, user_id={} application_id={:016X}",

View file

@ -13,7 +13,7 @@ public:
~IDaemonController() override; ~IDaemonController() override;
private: private:
Result GetAutoTransferEnabledForAccountAndApplication(Out<bool> out_is_enabled, Result GetApplicationAutoTransferSetting(Out<bool> out_is_enabled,
Common::UUID user_id, u64 application_id); Common::UUID user_id, u64 application_id);
}; };

View file

@ -10,30 +10,35 @@ IRemoteStorageController::IRemoteStorageController(Core::System& system_)
: ServiceFramework{system_, "IRemoteStorageController"} { : ServiceFramework{system_, "IRemoteStorageController"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetSaveDataArchiveInfoBySaveDataId"}, {0, nullptr, "RegisterUploadSaveDataTransferTask"},
{1, nullptr, "GetSaveDataArchiveInfoByApplicationId"}, {1, nullptr, "RegisterDownloadSaveDataTransferTask"},
{3, nullptr, "GetSaveDataArchiveCount"}, {2, nullptr, "Unknown2"}, // 6.0.0-7.0.1
{6, nullptr, "CleanupSaveDataArchives"}, {3, nullptr, "GetCount"},
{7, nullptr, "CreateSaveDataArchiveCacheUpdationTask"}, {4, nullptr, "Unknown4"}, // 6.0.0-7.0.1
{8, nullptr, "CreateSaveDataArchiveCacheUpdationForSpecifiedApplicationTask"}, {6, nullptr, "ClearDataInfoCache"},
{9, nullptr, "Delete"}, {7, nullptr, "RequestUpdateDataInfoCacheAsync"},
{10, nullptr, "GetSeriesInfo"}, {8, nullptr, "RequestUpdateDataInfoCacheOfSpecifiedApplicationAsync"},
{11, nullptr, "CreateDeleteDataTask"}, {9, nullptr, "DeleteDataInfoCache"},
{12, nullptr, "DeleteSeriesInfo"}, {10, nullptr, "GetDataNewness"},
{13, nullptr, "CreateRegisterNotificationTokenTask"}, {11, nullptr, "RequestDeleteDataAsync"},
{14, nullptr, "UpdateSeriesInfo"}, {12, nullptr, "RegisterUploadSaveDataTransferTaskDetail"},
{13, nullptr, "RequestRegisterNotificationTokenAsync"},
{14, nullptr, "GetDataNewnessByApplicationId"},
{15, nullptr, "RegisterUploadSaveDataTransferTaskForAutonomyRegistration"}, {15, nullptr, "RegisterUploadSaveDataTransferTaskForAutonomyRegistration"},
{16, nullptr, "CreateCleanupToDeleteSaveDataArchiveInfoTask"}, {16, nullptr, "RequestCleanupToDeleteSaveDataArchiveAsync"},
{17, nullptr, "ListDataInfo"}, {17, nullptr, "ListDataInfo"}, // 7.0.0+
{18, nullptr, "GetDataInfo"}, {18, nullptr, "GetDataInfo"}, // 7.0.0+
{19, nullptr, "Unknown19"}, {19, nullptr, "GetDataInfoCacheUpdateNativeHandleHolder"}, // 7.0.0+
{20, nullptr, "CreateSaveDataArchiveInfoCacheForSaveDataBackupUpdationTask"}, {20, nullptr, "RequestUpdateSaveDataBackupInfoCacheAsync"}, // 10.1.0+
{21, nullptr, "ListSecondarySaves"}, {21, nullptr, "ListLoadedDataInfo"}, // 11.0.0+
{22, D<&IRemoteStorageController::GetSecondarySave>, "GetSecondarySave"}, {22, D<&IRemoteStorageController::GetLoadedDataInfo>, "GetLoadedDataInfo"},
{23, nullptr, "TouchSecondarySave"}, {23, nullptr, "ApplyLoadedData"}, // 11.0.0+
{24, nullptr, "GetSecondarySaveDataInfo"}, {24, nullptr, "DeleteLoadedData"}, // 11.0.0+
{25, nullptr, "RegisterDownloadSaveDataTransferTaskForAutonomyRegistration"}, {25, nullptr, "RegisterDownloadSaveDataTransferTaskForAutonomyRegistration"}, // 11.0.0+
{900, nullptr, "Unknown900"}, {26, nullptr, "Unknown26"}, // 20.0.0+
{27, nullptr, "Unknown27"}, // 20.0.0+
{800, nullptr, "Unknown800"}, // 20.0.0+
{900, nullptr, "SetLoadedDataMissing"} // 11.0.0+
}; };
// clang-format on // clang-format on
@ -42,7 +47,7 @@ IRemoteStorageController::IRemoteStorageController(Core::System& system_)
IRemoteStorageController::~IRemoteStorageController() = default; IRemoteStorageController::~IRemoteStorageController() = default;
Result IRemoteStorageController::GetSecondarySave(Out<bool> out_has_secondary_save, Result IRemoteStorageController::GetLoadedDataInfo(Out<bool> out_has_secondary_save,
Out<std::array<u64, 3>> out_unknown, Out<std::array<u64, 3>> out_unknown,
u64 application_id) { u64 application_id) {
LOG_ERROR(Service_OLSC, "(STUBBED) called, application_id={:016X}", application_id); LOG_ERROR(Service_OLSC, "(STUBBED) called, application_id={:016X}", application_id);

View file

@ -12,7 +12,7 @@ public:
~IRemoteStorageController() override; ~IRemoteStorageController() override;
private: private:
Result GetSecondarySave(Out<bool> out_has_secondary_save, Out<std::array<u64, 3>> out_unknown, Result GetLoadedDataInfo(Out<bool> out_has_secondary_save, Out<std::array<u64, 3>> out_unknown,
u64 application_id); u64 application_id);
}; };

View file

@ -11,32 +11,37 @@ ITransferTaskListController::ITransferTaskListController(Core::System& system_)
: ServiceFramework{system_, "ITransferTaskListController"} { : ServiceFramework{system_, "ITransferTaskListController"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown0"}, {0, nullptr, "GetTransferTaskCountForOcean"},
{1, nullptr, "Unknown1"}, {1, nullptr, "GetTransferTaskInfoForOcean"},
{2, nullptr, "Unknown2"}, {2, nullptr, "ListTransferTaskInfoForOcean"},
{3, nullptr, "Unknown3"}, {3, nullptr, "DeleteTransferTaskForOcean"},
{4, nullptr, "Unknown4"}, {4, nullptr, "RaiseTransferTaskPriorityForOcean"},
{5, D<&ITransferTaskListController::GetNativeHandleHolder>, "GetNativeHandleHolder"}, {5, D<&ITransferTaskListController::GetNativeHandleHolder>, "GetTransferTaskEndEventNativeHandleHolder"},
{6, nullptr, "Unknown6"}, {6, nullptr, "GetTransferTaskProgressForOcean"},
{7, nullptr, "Unknown7"}, {7, nullptr, "GetTransferTaskLastResultForOcean"},
{8, nullptr, "GetRemoteStorageController"}, {8, nullptr, "StopNextTransferTaskExecution"},
{9, D<&ITransferTaskListController::GetNativeHandleHolder>, "GetNativeHandleHolder2"}, {9, D<&ITransferTaskListController::GetNativeHandleHolder>, "GetTransferTaskStartEventNativeHandleHolder"},
{10, nullptr, "Unknown10"}, {10, nullptr, "SuspendTransferTaskForOcean"},
{11, nullptr, "Unknown11"}, {11, nullptr, "GetCurrentTransferTaskInfoForOcean"},
{12, nullptr, "Unknown12"}, {12, nullptr, "FindTransferTaskInfoForOcean"},
{13, nullptr, "Unknown13"}, {13, nullptr, "CancelCurrentRepairTransferTask"}, // 9.0.0+
{14, nullptr, "Unknown14"}, {14, nullptr, "GetRepairTransferTaskProgress"}, // 9.0.0+
{15, nullptr, "Unknown15"}, {15, nullptr, "EnsureExecutableForRepairTransferTask"}, // 9.0.0+
{16, nullptr, "Unknown16"}, {16, nullptr, "GetTransferTaskCount"}, // 10.1.0+
{17, nullptr, "Unknown17"}, {17, nullptr, "GetTransferTaskInfo"}, // 10.1.0+
{18, nullptr, "Unknown18"}, {18, nullptr, "ListTransferTaskInfo"}, // 10.1.0+
{19, nullptr, "Unknown19"}, {19, nullptr, "DeleteTransferTask"}, // 10.1.0+
{20, nullptr, "Unknown20"}, {20, nullptr, "RaiseTransferTaskPriority"}, // 10.1.0+
{21, nullptr, "Unknown21"}, {21, nullptr, "GetTransferTaskProgress"}, // 10.1.0+
{22, nullptr, "Unknown22"}, {22, nullptr, "GetTransferTaskLastResult"}, // 10.1.0+
{23, nullptr, "Unknown23"}, {23, nullptr, "SuspendTransferTask"}, // 10.1.0+
{24, nullptr, "Unknown24"}, {24, nullptr, "GetCurrentTransferTaskInfo"}, // 10.1.0+
{25, nullptr, "Unknown25"}, {25, nullptr, "FindTransferTaskInfo"}, // 10.1.0+
{26, nullptr, "Unknown26"}, // 20.1.0+
{27, nullptr, "Unknown27"}, // 20.1.0+
{28, nullptr, "Unknown28"}, // 20.1.0+
{29, nullptr, "Unknown29"}, // 20.1.0+
{30, nullptr, "Unknown30"}, // 20.1.0+
}; };
// clang-format on // clang-format on

View file

@ -38,6 +38,13 @@ IOperationModeManager::IOperationModeManager(Core::System& system_)
{26, nullptr, "GetOperationModeSystemInfo"}, {26, nullptr, "GetOperationModeSystemInfo"},
{27, nullptr, "GetAppletFullAwakingSystemEvent"}, {27, nullptr, "GetAppletFullAwakingSystemEvent"},
{28, nullptr, "CreateCradleFirmwareUpdater"}, {28, nullptr, "CreateCradleFirmwareUpdater"},
{29, nullptr, "GetCradleStatusChangeEvent"}, // 19.0.0+
{40, nullptr, "Unknown40"}, // 20.0.0+
{41, nullptr, "Unknown41"}, // 20.0.0+
{50, nullptr, "Unknown50"}, // 20.1.0+
{500, nullptr, "LblSwitchBacklightOnForAm"}, // 14.0.0+
{501, nullptr, "LblSwitchBacklightOffForAm"}, // 14.0.0+
{900, nullptr, "HideStartupLogo"} // 14.0.0+
}; };
// clang-format on // clang-format on

View file

@ -27,6 +27,7 @@ public:
{2, &IPsmSession::SetChargerTypeChangeEventEnabled, "SetChargerTypeChangeEventEnabled"}, {2, &IPsmSession::SetChargerTypeChangeEventEnabled, "SetChargerTypeChangeEventEnabled"},
{3, &IPsmSession::SetPowerSupplyChangeEventEnabled, "SetPowerSupplyChangeEventEnabled"}, {3, &IPsmSession::SetPowerSupplyChangeEventEnabled, "SetPowerSupplyChangeEventEnabled"},
{4, &IPsmSession::SetBatteryVoltageStateChangeEventEnabled, "SetBatteryVoltageStateChangeEventEnabled"}, {4, &IPsmSession::SetBatteryVoltageStateChangeEventEnabled, "SetBatteryVoltageStateChangeEventEnabled"},
{5, nullptr, "Unknown5"}, // 20.0.0+
}; };
// clang-format on // clang-format on
@ -141,6 +142,12 @@ PSM::PSM(Core::System& system_) : ServiceFramework{system_, "psm"} {
{16, nullptr, "GetBatteryChargeInfoEvent"}, {16, nullptr, "GetBatteryChargeInfoEvent"},
{17, nullptr, "GetBatteryChargeInfoFields"}, {17, nullptr, "GetBatteryChargeInfoFields"},
{18, nullptr, "GetBatteryChargeCalibratedEvent"}, {18, nullptr, "GetBatteryChargeCalibratedEvent"},
{19, nullptr, "Unknown19"}, // 18.0.0+
{20, nullptr, "Unknown20"}, // 18.0.0+
{21, nullptr, "Unknown21"}, // 19.0.0-19.0.1
{22, nullptr, "Unknown22"}, // 19.0.0+
{23, nullptr, "Unknown23"}, // 19.0.0+
{24, nullptr, "Unknown24"} // 20.0.0+
}; };
// clang-format on // clang-format on