Try to ensure save data always has a valid owner ID (#3057)
- Run the extra data fix in FixExtraData on non-system saves that have no owner ID. - Set the owner ID in the dummy application control property if an application doesn't have a proper one available.
This commit is contained in:
parent
76b9041adf
commit
d317cfd639
2 changed files with 4 additions and 1 deletions
|
@ -505,7 +505,9 @@ namespace Ryujinx.HLE.FileSystem
|
||||||
|
|
||||||
bool canFixBySaveDataId = extraData.Attribute.StaticSaveDataId == 0 && info.StaticSaveDataId != 0;
|
bool canFixBySaveDataId = extraData.Attribute.StaticSaveDataId == 0 && info.StaticSaveDataId != 0;
|
||||||
|
|
||||||
if (!canFixByProgramId && !canFixBySaveDataId)
|
bool hasEmptyOwnerId = extraData.OwnerId == 0 && info.Type != LibHac.Fs.SaveDataType.System;
|
||||||
|
|
||||||
|
if (!canFixByProgramId && !canFixBySaveDataId && !hasEmptyOwnerId)
|
||||||
{
|
{
|
||||||
wasFixNeeded = false;
|
wasFixNeeded = false;
|
||||||
return Result.Success;
|
return Result.Success;
|
||||||
|
|
|
@ -776,6 +776,7 @@ namespace Ryujinx.HLE.HOS
|
||||||
// The set sizes don't actually matter as long as they're non-zero because we use directory savedata.
|
// The set sizes don't actually matter as long as they're non-zero because we use directory savedata.
|
||||||
control.UserAccountSaveDataSize = 0x4000;
|
control.UserAccountSaveDataSize = 0x4000;
|
||||||
control.UserAccountSaveDataJournalSize = 0x4000;
|
control.UserAccountSaveDataJournalSize = 0x4000;
|
||||||
|
control.SaveDataOwnerId = applicationId;
|
||||||
|
|
||||||
Logger.Warning?.Print(LogClass.Application,
|
Logger.Warning?.Print(LogClass.Application,
|
||||||
"No control file was found for this game. Using a dummy one instead. This may cause inaccuracies in some games.");
|
"No control file was found for this game. Using a dummy one instead. This may cause inaccuracies in some games.");
|
||||||
|
|
Reference in a new issue