Support HomeBrew Loader (#577)
* Make it possibles to load hb-loader and hb-menu One issue remains with hb-menu homebrew icons because of SIMD issues (libjpeg-turbo related) and netloader doesn't work. * Implement GetApplicationControlData * Fix shared fonts for NSO/NRO * Add homebrew NRO romfs support This readd the NRO support by parsing the ASET header * Address comments about HomebrewRomFs * override Dispose in homebrew romfs stream * Use a struct for file timestamp * Simplify positional increments in GetApplicationControlData * Address comments * improve readability of the memory permission check in SetProcessMemoryPermission * Fix previous broken check * Add address space checks in SetProcessMemoryPermission
This commit is contained in:
committed by
jduncanator
parent
7e9f555574
commit
b126ea48c6
@ -1,5 +1,6 @@
|
||||
using Ryujinx.HLE.HOS;
|
||||
using Ryujinx.HLE.HOS.Services.FspSrv;
|
||||
using Ryujinx.HLE.Utilities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@ -279,5 +280,34 @@ namespace Ryujinx.HLE.FileSystem
|
||||
|
||||
throw new InvalidOperationException($"Path {path} is not a child directory of {_rootPath}");
|
||||
}
|
||||
|
||||
public FileTimestamp GetFileTimeStampRaw(string name)
|
||||
{
|
||||
CheckIfDescendentOfRootPath(name);
|
||||
|
||||
DateTime creationDateTime = DateTime.UnixEpoch;
|
||||
DateTime modifiedDateTime = DateTime.UnixEpoch;
|
||||
DateTime lastAccessDateTime = DateTime.UnixEpoch;
|
||||
|
||||
if (File.Exists(name))
|
||||
{
|
||||
creationDateTime = File.GetCreationTime(name);
|
||||
modifiedDateTime = File.GetLastWriteTime(name);
|
||||
lastAccessDateTime = File.GetLastAccessTime(name);
|
||||
}
|
||||
else if (Directory.Exists(name))
|
||||
{
|
||||
creationDateTime = Directory.GetCreationTime(name);
|
||||
modifiedDateTime = Directory.GetLastWriteTime(name);
|
||||
lastAccessDateTime = Directory.GetLastAccessTime(name);
|
||||
}
|
||||
|
||||
return new FileTimestamp
|
||||
{
|
||||
CreationDateTime = creationDateTime,
|
||||
ModifiedDateTime = modifiedDateTime,
|
||||
LastAccessDateTime = lastAccessDateTime
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using Ryujinx.HLE.HOS;
|
||||
using Ryujinx.HLE.HOS.Services.FspSrv;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.HLE.FileSystem
|
||||
{
|
||||
@ -36,5 +37,7 @@ namespace Ryujinx.HLE.FileSystem
|
||||
long GetFreeSpace(ServiceCtx context);
|
||||
|
||||
long GetTotalSpace(ServiceCtx context);
|
||||
|
||||
FileTimestamp GetFileTimeStampRaw(string name);
|
||||
}
|
||||
}
|
||||
|
@ -143,5 +143,10 @@ namespace Ryujinx.HLE.FileSystem
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public FileTimestamp GetFileTimeStampRaw(string name)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -160,5 +160,10 @@ namespace Ryujinx.HLE.FileSystem
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public FileTimestamp GetFileTimeStampRaw(string name)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user