Skip to content
Snippets Groups Projects
Commit 77f0cdfa authored by Subv's avatar Subv
Browse files

SaveData: Added some documentation to FormatSaveData

We still don't know what the other parameters do, but they appear to be very similar to those of FormatThisUserSaveData.
Most likely FormatThisUserSaveData is just an alias for FormatSaveData with LowPathType Empty
parent 94a103a0
No related branches found
No related tags found
No related merge requests found
...@@ -397,16 +397,43 @@ static void IsSdmcDetected(Service::Interface* self) { ...@@ -397,16 +397,43 @@ static void IsSdmcDetected(Service::Interface* self) {
} }
/** /**
* FS_User::FormatSaveData service function * FS_User::FormatSaveData service function,
* formats the SaveData specified by the input path.
* Inputs: * Inputs:
* 1 : Archive ID
* 2 : Archive low path type
* 3 : Archive low path size
* 10 : (LowPathSize << 14) | 2
* 11 : Archive low path
* Outputs: * Outputs:
* 1 : Result of function, 0 on success, otherwise error code * 1 : Result of function, 0 on success, otherwise error code
*/ */
static void FormatSaveData(Service::Interface* self) { static void FormatSaveData(Service::Interface* self) {
// TODO(Subv): Find out what the other inputs and outputs of this function are
u32* cmd_buff = Kernel::GetCommandBuffer(); u32* cmd_buff = Kernel::GetCommandBuffer();
LOG_DEBUG(Service_FS, "(STUBBED)"); LOG_DEBUG(Service_FS, "(STUBBED)");
// TODO(Subv): Find out what the inputs and outputs of this function are auto archive_id = static_cast<FS::ArchiveIdCode>(cmd_buff[1]);
auto archivename_type = static_cast<FileSys::LowPathType>(cmd_buff[2]);
u32 archivename_size = cmd_buff[3];
u32 archivename_ptr = cmd_buff[11];
FileSys::Path archive_path(archivename_type, archivename_size, archivename_ptr);
LOG_DEBUG(Service_FS, "archive_path=%s", archive_path.DebugStr().c_str());
if (archive_id != FS::ArchiveIdCode::SaveData) {
// TODO(Subv): What should happen if somebody attempts to format a different archive?
LOG_ERROR(Service_FS, "tried to format an archive different than SaveData, %u", cmd_buff[1]);
cmd_buff[1] = UnimplementedFunction(ErrorModule::FS).raw;
return;
}
if (archive_path.GetType() != FileSys::LowPathType::Empty) {
// TODO(Subv): Implement formatting the SaveData of other games
LOG_ERROR(Service_FS, "archive LowPath type other than empty is currently unsupported");
cmd_buff[1] = UnimplementedFunction(ErrorModule::FS).raw;
return;
}
cmd_buff[1] = FormatSaveData().raw; cmd_buff[1] = FormatSaveData().raw;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment