aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services
diff options
context:
space:
mode:
authorAlex Barney <thealexbarney@gmail.com>2020-03-03 07:07:06 -0700
committerGitHub <noreply@github.com>2020-03-03 15:07:06 +0100
commitcecbd256a5b95cce815fcbbffc40b3898c319d9f (patch)
treeda5b37ed1d93fa4054c7d5ff846256f0241c6e6c /Ryujinx.HLE/HOS/Services
parentdc97457bf0121b9383054ca14d3c525b56b92634 (diff)
Add support for cache storage (#936)
* Update LibHac * Run EnsureApplicationCacheStorage when launching a game * Add new FS commands
Diffstat (limited to 'Ryujinx.HLE/HOS/Services')
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs31
-rw-r--r--Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs6
3 files changed, 45 insertions, 3 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs b/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs
index 426b50ed..c9f2f74c 100644
--- a/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs
@@ -12,6 +12,17 @@ namespace Ryujinx.HLE.HOS.Services.Fs
_baseOperator = baseOperator;
}
+ [Command(0)]
+ // IsSdCardInserted() -> b8 is_inserted
+ public ResultCode IsSdCardInserted(ServiceCtx context)
+ {
+ Result result = _baseOperator.IsSdCardInserted(out bool isInserted);
+
+ context.ResponseData.Write(isInserted);
+
+ return (ResultCode)result.Value;
+ }
+
[Command(200)]
// IsGameCardInserted() -> b8 is_inserted
public ResultCode IsGameCardInserted(ServiceCtx context)
diff --git a/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs b/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs
index 7c31814f..43ae80aa 100644
--- a/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs
@@ -448,6 +448,37 @@ namespace Ryujinx.HLE.HOS.Services.Fs
return (ResultCode)result.Value;
}
+ [Command(630)]
+ // SetSdCardAccessibility(u8)
+ public ResultCode SetSdCardAccessibility(ServiceCtx context)
+ {
+ bool isAccessible = context.RequestData.ReadBoolean();
+
+ return (ResultCode)_baseFileSystemProxy.SetSdCardAccessibility(isAccessible).Value;
+ }
+
+ [Command(631)]
+ // IsSdCardAccessible() -> u8
+ public ResultCode IsSdCardAccessible(ServiceCtx context)
+ {
+ Result result = _baseFileSystemProxy.IsSdCardAccessible(out bool isAccessible);
+
+ context.ResponseData.Write(isAccessible);
+
+ return (ResultCode)result.Value;
+ }
+
+ [Command(1004)]
+ // SetGlobalAccessLogMode(u32 mode)
+ public ResultCode SetGlobalAccessLogMode(ServiceCtx context)
+ {
+ int mode = context.RequestData.ReadInt32();
+
+ context.Device.System.GlobalAccessLogMode = mode;
+
+ return ResultCode.Success;
+ }
+
[Command(1005)]
// GetGlobalAccessLogMode() -> u32 logMode
public ResultCode GetGlobalAccessLogMode(ServiceCtx context)
diff --git a/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs b/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs
index 30bcab95..6ba1b2bf 100644
--- a/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs
@@ -132,7 +132,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii
if (result.IsFailure())
{
- if (ResultFs.TargetNotFound == result)
+ if (ResultFs.TargetNotFound.Includes(result))
{
// TODO: We're currently always specifying the owner ID because FS doesn't have a way of
// knowing which process called it
@@ -212,7 +212,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii
return (ResultCode)result.Value;
}
- else if (result == ResultFs.PathNotFound)
+ else if (ResultFs.PathNotFound.Includes(result))
{
return (ResultCode)ForceSaveDatabase().Value;
}
@@ -224,7 +224,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii
{
Result result = _filesystemClient.CreateFile(DatabasePath, Unsafe.SizeOf<NintendoFigurineDatabase>());
- if (result.IsSuccess() || result == ResultFs.PathAlreadyExists)
+ if (result.IsSuccess() || ResultFs.PathAlreadyExists.Includes(result))
{
result = _filesystemClient.OpenFile(out FileHandle handle, DatabasePath, OpenMode.Write);