diff options
author | Subv <subv2112@gmail.com> | 2018-03-04 19:03:58 +0100 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-03-04 20:30:07 +0100 |
commit | 0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902 (patch) | |
tree | d6fbf1e18b6b17fcb089306af26c48331100814c /src/core/hle/service/am/am.cpp | |
parent | Merge pull request #226 from Subv/buffer_queue_event (diff) | |
download | yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.tar yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.tar.gz yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.tar.bz2 yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.tar.lz yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.tar.xz yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.tar.zst yuzu-0eefe6e4d15cbc7a5902dfbe5e7742ef4ea71902.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/am/am.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index d3a674cf6..d9f003ed4 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -2,12 +2,15 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include <cinttypes> +#include "core/file_sys/filesystem.h" #include "core/hle/ipc_helpers.h" #include "core/hle/kernel/event.h" #include "core/hle/service/am/am.h" #include "core/hle/service/am/applet_ae.h" #include "core/hle/service/am/applet_oe.h" #include "core/hle/service/apm/apm.h" +#include "core/hle/service/filesystem/filesystem.h" #include "core/hle/service/nvflinger/nvflinger.h" namespace Service { @@ -416,9 +419,24 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) { } void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { - LOG_WARNING(Service, "(STUBBED) called"); + IPC::RequestParser rp{ctx}; + u128 uid = rp.PopRaw<u128>(); + + LOG_WARNING(Service, "(STUBBED) called uid = %016" PRIX64 "%016" PRIX64, uid[1], uid[0]); + IPC::ResponseBuilder rb{ctx, 4}; - rb.Push(RESULT_SUCCESS); + + FileSys::Path unused; + auto savedata = FileSystem::OpenFileSystem(FileSystem::Type::SaveData, unused); + if (savedata.Failed()) { + // Create the save data and return an error indicating that the operation was performed. + FileSystem::FormatFileSystem(FileSystem::Type::SaveData); + // TODO(Subv): Find out the correct error code for this. + rb.Push(ResultCode(ErrorModule::FS, 40)); + } else { + rb.Push(RESULT_SUCCESS); + } + rb.Push<u64>(0); } |