mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-07-28 01:17:11 +02:00
hbabi: Implement argv (#272)
This commit implements the argv config key in Ryujinx (by creating a temporary copy of the homebrew executable in the sdmc VFS) to make it possible to load libnx's "romfs" files. This commit also call Os.Dispose in Ns.OnFinish to dispose all resources when exiting
This commit is contained in:
parent
2defe915c7
commit
64b0934cc0
10 changed files with 84 additions and 16 deletions
|
@ -45,6 +45,35 @@ namespace Ryujinx.HLE
|
|||
|
||||
public string GetGameSavesPath() => MakeDirAndGetFullPath(NandPath);
|
||||
|
||||
public string SwitchPathToSystemPath(string SwitchPath)
|
||||
{
|
||||
string[] Parts = SwitchPath.Split(":");
|
||||
if (Parts.Length != 2)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return GetFullPath(MakeDirAndGetFullPath(Parts[0]), Parts[1]);
|
||||
}
|
||||
|
||||
public string SystemPathToSwitchPath(string SystemPath)
|
||||
{
|
||||
string BaseSystemPath = GetBasePath() + "/";
|
||||
if (SystemPath.StartsWith(BaseSystemPath))
|
||||
{
|
||||
string RawPath = SystemPath.Replace(BaseSystemPath, "");
|
||||
int FirstSeparatorOffset = RawPath.IndexOf('/');
|
||||
if (FirstSeparatorOffset == -1)
|
||||
{
|
||||
return $"{RawPath}:/";
|
||||
}
|
||||
|
||||
string BasePath = RawPath.Substring(0, FirstSeparatorOffset);
|
||||
string FileName = RawPath.Substring(FirstSeparatorOffset + 1);
|
||||
return $"{BasePath}:/{FileName}";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private string MakeDirAndGetFullPath(string Dir)
|
||||
{
|
||||
string FullPath = Path.Combine(GetBasePath(), Dir);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue