summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar german772023-09-21 21:15:18 -0600
committerGravatar german772023-09-23 20:13:36 -0600
commit3983ce9b5ce96091803d9a80a3fc545b1f87815b (patch)
treecbcfbf0aa1f4e44a74d4b8824314ec47c038ca77 /src/core
parentservice: ns: Implement GetSharedFontInOrderOfPriorityForSystem (diff)
downloadyuzu-3983ce9b5ce96091803d9a80a3fc545b1f87815b.tar.gz
yuzu-3983ce9b5ce96091803d9a80a3fc545b1f87815b.tar.xz
yuzu-3983ce9b5ce96091803d9a80a3fc545b1f87815b.zip
service: fsp: Implement CreateSaveDataFileSystemBySystemSaveDataId and OpenSaveDataFileSystemBySystemSaveDataId
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp24
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.h2
2 files changed, 24 insertions, 2 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp
index 6e4d26b1e..2492bbc16 100644
--- a/src/core/hle/service/filesystem/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp_srv.cpp
@@ -698,7 +698,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
698 {19, nullptr, "FormatSdCardFileSystem"}, 698 {19, nullptr, "FormatSdCardFileSystem"},
699 {21, nullptr, "DeleteSaveDataFileSystem"}, 699 {21, nullptr, "DeleteSaveDataFileSystem"},
700 {22, &FSP_SRV::CreateSaveDataFileSystem, "CreateSaveDataFileSystem"}, 700 {22, &FSP_SRV::CreateSaveDataFileSystem, "CreateSaveDataFileSystem"},
701 {23, nullptr, "CreateSaveDataFileSystemBySystemSaveDataId"}, 701 {23, &FSP_SRV::CreateSaveDataFileSystemBySystemSaveDataId, "CreateSaveDataFileSystemBySystemSaveDataId"},
702 {24, nullptr, "RegisterSaveDataFileSystemAtomicDeletion"}, 702 {24, nullptr, "RegisterSaveDataFileSystemAtomicDeletion"},
703 {25, nullptr, "DeleteSaveDataFileSystemBySaveDataSpaceId"}, 703 {25, nullptr, "DeleteSaveDataFileSystemBySaveDataSpaceId"},
704 {26, nullptr, "FormatSdCardDryRun"}, 704 {26, nullptr, "FormatSdCardDryRun"},
@@ -712,7 +712,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
712 {35, nullptr, "CreateSaveDataFileSystemByHashSalt"}, 712 {35, nullptr, "CreateSaveDataFileSystemByHashSalt"},
713 {36, nullptr, "OpenHostFileSystemWithOption"}, 713 {36, nullptr, "OpenHostFileSystemWithOption"},
714 {51, &FSP_SRV::OpenSaveDataFileSystem, "OpenSaveDataFileSystem"}, 714 {51, &FSP_SRV::OpenSaveDataFileSystem, "OpenSaveDataFileSystem"},
715 {52, nullptr, "OpenSaveDataFileSystemBySystemSaveDataId"}, 715 {52, &FSP_SRV::OpenSaveDataFileSystemBySystemSaveDataId, "OpenSaveDataFileSystemBySystemSaveDataId"},
716 {53, &FSP_SRV::OpenReadOnlySaveDataFileSystem, "OpenReadOnlySaveDataFileSystem"}, 716 {53, &FSP_SRV::OpenReadOnlySaveDataFileSystem, "OpenReadOnlySaveDataFileSystem"},
717 {57, nullptr, "ReadSaveDataFileSystemExtraDataBySaveDataSpaceId"}, 717 {57, nullptr, "ReadSaveDataFileSystemExtraDataBySaveDataSpaceId"},
718 {58, nullptr, "ReadSaveDataFileSystemExtraData"}, 718 {58, nullptr, "ReadSaveDataFileSystemExtraData"},
@@ -870,6 +870,21 @@ void FSP_SRV::CreateSaveDataFileSystem(HLERequestContext& ctx) {
870 rb.Push(ResultSuccess); 870 rb.Push(ResultSuccess);
871} 871}
872 872
873void FSP_SRV::CreateSaveDataFileSystemBySystemSaveDataId(HLERequestContext& ctx) {
874 IPC::RequestParser rp{ctx};
875
876 auto save_struct = rp.PopRaw<FileSys::SaveDataAttribute>();
877 [[maybe_unused]] auto save_create_struct = rp.PopRaw<std::array<u8, 0x40>>();
878
879 LOG_DEBUG(Service_FS, "called save_struct = {}", save_struct.DebugInfo());
880
881 FileSys::VirtualDir save_data_dir{};
882 fsc.CreateSaveData(&save_data_dir, FileSys::SaveDataSpaceId::NandSystem, save_struct);
883
884 IPC::ResponseBuilder rb{ctx, 2};
885 rb.Push(ResultSuccess);
886}
887
873void FSP_SRV::OpenSaveDataFileSystem(HLERequestContext& ctx) { 888void FSP_SRV::OpenSaveDataFileSystem(HLERequestContext& ctx) {
874 IPC::RequestParser rp{ctx}; 889 IPC::RequestParser rp{ctx};
875 890
@@ -916,6 +931,11 @@ void FSP_SRV::OpenSaveDataFileSystem(HLERequestContext& ctx) {
916 rb.PushIpcInterface<IFileSystem>(std::move(filesystem)); 931 rb.PushIpcInterface<IFileSystem>(std::move(filesystem));
917} 932}
918 933
934void FSP_SRV::OpenSaveDataFileSystemBySystemSaveDataId(HLERequestContext& ctx) {
935 LOG_WARNING(Service_FS, "(STUBBED) called, delegating to 51 OpenSaveDataFilesystem");
936 OpenSaveDataFileSystem(ctx);
937}
938
919void FSP_SRV::OpenReadOnlySaveDataFileSystem(HLERequestContext& ctx) { 939void FSP_SRV::OpenReadOnlySaveDataFileSystem(HLERequestContext& ctx) {
920 LOG_WARNING(Service_FS, "(STUBBED) called, delegating to 51 OpenSaveDataFilesystem"); 940 LOG_WARNING(Service_FS, "(STUBBED) called, delegating to 51 OpenSaveDataFilesystem");
921 OpenSaveDataFileSystem(ctx); 941 OpenSaveDataFileSystem(ctx);
diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h
index 4f3c2f6de..280bc9867 100644
--- a/src/core/hle/service/filesystem/fsp_srv.h
+++ b/src/core/hle/service/filesystem/fsp_srv.h
@@ -39,7 +39,9 @@ private:
39 void OpenFileSystemWithPatch(HLERequestContext& ctx); 39 void OpenFileSystemWithPatch(HLERequestContext& ctx);
40 void OpenSdCardFileSystem(HLERequestContext& ctx); 40 void OpenSdCardFileSystem(HLERequestContext& ctx);
41 void CreateSaveDataFileSystem(HLERequestContext& ctx); 41 void CreateSaveDataFileSystem(HLERequestContext& ctx);
42 void CreateSaveDataFileSystemBySystemSaveDataId(HLERequestContext& ctx);
42 void OpenSaveDataFileSystem(HLERequestContext& ctx); 43 void OpenSaveDataFileSystem(HLERequestContext& ctx);
44 void OpenSaveDataFileSystemBySystemSaveDataId(HLERequestContext& ctx);
43 void OpenReadOnlySaveDataFileSystem(HLERequestContext& ctx); 45 void OpenReadOnlySaveDataFileSystem(HLERequestContext& ctx);
44 void OpenSaveDataInfoReaderBySaveDataSpaceId(HLERequestContext& ctx); 46 void OpenSaveDataInfoReaderBySaveDataSpaceId(HLERequestContext& ctx);
45 void OpenSaveDataInfoReaderOnlyCacheStorage(HLERequestContext& ctx); 47 void OpenSaveDataInfoReaderOnlyCacheStorage(HLERequestContext& ctx);