LocalFileSystemExtensions.cs
1 using LibHac.Common; 2 using LibHac.FsSystem; 3 using LibHac.Loader; 4 using LibHac.Ncm; 5 using LibHac.Ns; 6 using Ryujinx.HLE.Loaders.Processes.Extensions; 7 8 namespace Ryujinx.HLE.Loaders.Processes 9 { 10 static class LocalFileSystemExtensions 11 { 12 public static ProcessResult Load(this LocalFileSystem exeFs, Switch device, string romFsPath = "") 13 { 14 MetaLoader metaLoader = exeFs.GetNpdm(); 15 var nacpData = new BlitStruct<ApplicationControlProperty>(1); 16 ulong programId = metaLoader.GetProgramId(); 17 18 device.Configuration.VirtualFileSystem.ModLoader.CollectMods(new[] { programId }); 19 20 if (programId != 0) 21 { 22 ProcessLoaderHelper.EnsureSaveData(device, new ApplicationId(programId), nacpData); 23 } 24 25 ProcessResult processResult = exeFs.Load(device, nacpData, metaLoader, 0); 26 27 // Load RomFS. 28 if (!string.IsNullOrEmpty(romFsPath)) 29 { 30 device.Configuration.VirtualFileSystem.LoadRomFs(processResult.ProcessId, romFsPath); 31 } 32 33 return processResult; 34 } 35 } 36 }