using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; namespace Ryujinx.Core.OsHle.Services.FspSrv { class ServiceFspSrv : IpcService { private Dictionary m_Commands; public override IReadOnlyDictionary Commands => m_Commands; public ServiceFspSrv() { m_Commands = new Dictionary() { { 1, SetCurrentProcess }, { 18, OpenSdCardFileSystem }, { 51, OpenSaveDataFileSystem }, { 200, OpenDataStorageByCurrentProcess }, { 203, OpenPatchDataStorageByCurrentProcess }, { 1005, GetGlobalAccessLogMode } }; } public long SetCurrentProcess(ServiceCtx Context) { return 0; } public long OpenSdCardFileSystem(ServiceCtx Context) { MakeObject(Context, new IFileSystem(Context.Ns.VFs.GetSdCardPath())); return 0; } public long OpenSaveDataFileSystem(ServiceCtx Context) { MakeObject(Context, new IFileSystem(Context.Ns.VFs.GetGameSavesPath())); return 0; } public long OpenDataStorageByCurrentProcess(ServiceCtx Context) { MakeObject(Context, new IStorage(Context.Ns.VFs.RomFs)); return 0; } public long OpenPatchDataStorageByCurrentProcess(ServiceCtx Context) { MakeObject(Context, new IStorage(Context.Ns.VFs.RomFs)); return 0; } public long GetGlobalAccessLogMode(ServiceCtx Context) { Context.ResponseData.Write(0); return 0; } } }