From b4280a61ac57257aef10a6c61da4d5d41ad4750c Mon Sep 17 00:00:00 2001 From: PabloG02 Date: Tue, 7 Mar 2023 00:13:39 +0100 Subject: [PATCH] Stub `IApplicationFunctions::GetSaveDataSize` --- .../am/controller/IApplicationFunctions.cpp | 14 ++++++++++++++ .../services/am/controller/IApplicationFunctions.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.cpp b/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.cpp index 19e353d8..45534dad 100644 --- a/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.cpp +++ b/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.cpp @@ -80,6 +80,20 @@ namespace skyline::service::am { return {}; } + Result IApplicationFunctions::GetSaveDataSize(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) { + auto saveDataType{request.Pop()}; + auto userId{request.Pop()}; + Logger::Debug("Save data type: {}, UserId: {:016X}{:016X}", saveDataType, userId.upper, userId.lower); + + // Response values based on Ryujinx stub + // https://github.com/Ryujinx/Ryujinx/blob/b8556530f2b160db70ff571adf25ae26d4b8f58f/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs#L228 + static constexpr u64 SaveDataSize{200000000}; + static constexpr u64 JournalSaveDataSize{200000000}; + response.Push(SaveDataSize); + response.Push(JournalSaveDataSize); + return {}; + } + Result IApplicationFunctions::NotifyRunning(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) { response.Push(1); return {}; diff --git a/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.h b/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.h index 07b05218..27ded3e0 100644 --- a/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.h +++ b/app/src/main/cpp/skyline/services/am/controller/IApplicationFunctions.h @@ -56,6 +56,8 @@ namespace skyline::service::am { */ Result GetDisplayVersion(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response); + Result GetSaveDataSize(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response); + /** * @brief Returns if the application is running or not, always returns true * @url https://switchbrew.org/wiki/Applet_Manager_services#NotifyRunning @@ -144,6 +146,7 @@ namespace skyline::service::am { SFUNC(0x15, IApplicationFunctions, GetDesiredLanguage), SFUNC(0x16, IApplicationFunctions, SetTerminateResult), SFUNC(0x17, IApplicationFunctions, GetDisplayVersion), + SFUNC(0x1A, IApplicationFunctions, GetSaveDataSize), SFUNC(0x28, IApplicationFunctions, NotifyRunning), SFUNC(0x32, IApplicationFunctions, GetPseudoDeviceId), SFUNC(0x42, IApplicationFunctions, InitializeGamePlayRecording),