Merge 7248f45524
into fa5545aab8
This commit is contained in:
commit
4f23ead719
5 changed files with 96 additions and 3 deletions
|
@ -19,6 +19,8 @@ namespace Ryujinx.HLE.OsHle.Services.Am
|
||||||
{ 21, GetDesiredLanguage },
|
{ 21, GetDesiredLanguage },
|
||||||
{ 22, SetTerminateResult },
|
{ 22, SetTerminateResult },
|
||||||
{ 23, GetDisplayVersion },
|
{ 23, GetDisplayVersion },
|
||||||
|
{ 25, ExtendSaveData },
|
||||||
|
{ 26, GetSaveDataSize },
|
||||||
{ 40, NotifyRunning },
|
{ 40, NotifyRunning },
|
||||||
{ 50, GetPseudoDeviceId },
|
{ 50, GetPseudoDeviceId },
|
||||||
{ 66, InitializeGamePlayRecording },
|
{ 66, InitializeGamePlayRecording },
|
||||||
|
@ -81,6 +83,25 @@ namespace Ryujinx.HLE.OsHle.Services.Am
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long ExtendSaveData(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
Context.ResponseData.Write(0x400L);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long GetSaveDataSize(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
Context.ResponseData.Write(0L);
|
||||||
|
Context.ResponseData.Write(0x200L);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public long NotifyRunning(ServiceCtx Context)
|
public long NotifyRunning(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
Context.ResponseData.Write(1);
|
Context.ResponseData.Write(1);
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
using Ryujinx.HLE.Logging;
|
using Ryujinx.HLE.Logging;
|
||||||
using Ryujinx.HLE.OsHle.Ipc;
|
using Ryujinx.HLE.OsHle.Ipc;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.OsHle.Services.FspSrv
|
namespace Ryujinx.HLE.OsHle.Services.FspSrv
|
||||||
{
|
{
|
||||||
|
@ -19,11 +21,11 @@ namespace Ryujinx.HLE.OsHle.Services.FspSrv
|
||||||
{ 22, CreateSaveDataFileSystem },
|
{ 22, CreateSaveDataFileSystem },
|
||||||
{ 51, OpenSaveDataFileSystem },
|
{ 51, OpenSaveDataFileSystem },
|
||||||
{ 200, OpenDataStorageByCurrentProcess },
|
{ 200, OpenDataStorageByCurrentProcess },
|
||||||
|
{ 202, OpenDataStorageByDataId },
|
||||||
{ 203, OpenPatchDataStorageByCurrentProcess },
|
{ 203, OpenPatchDataStorageByCurrentProcess },
|
||||||
{ 1005, GetGlobalAccessLogMode }
|
{ 1005, GetGlobalAccessLogMode }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public long SetCurrentProcess(ServiceCtx Context)
|
public long SetCurrentProcess(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -57,6 +59,31 @@ namespace Ryujinx.HLE.OsHle.Services.FspSrv
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long OpenDataStorageByDataId(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
StorageTypes StorageId = (StorageTypes) Context.RequestData.ReadByte();
|
||||||
|
long TitleId = Context.RequestData.ReadInt64();
|
||||||
|
|
||||||
|
if (StorageId == StorageTypes.NandSystem)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceFs, $"[{StorageId}] Stubbed.");
|
||||||
|
|
||||||
|
Stream FakeStream = new MemoryStream();
|
||||||
|
|
||||||
|
MakeObject(Context, new IStorage(FakeStream));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintWarning(LogClass.ServiceFs, $"{StorageId} is not implemented!");
|
||||||
|
|
||||||
|
Stream FakeStream = new MemoryStream();
|
||||||
|
|
||||||
|
MakeObject(Context, new IStorage(FakeStream));
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public long OpenPatchDataStorageByCurrentProcess(ServiceCtx Context)
|
public long OpenPatchDataStorageByCurrentProcess(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
MakeObject(Context, new IStorage(Context.Ns.VFs.RomFs));
|
MakeObject(Context, new IStorage(Context.Ns.VFs.RomFs));
|
||||||
|
|
12
Ryujinx.HLE/OsHle/Services/FspSrv/StorageTypes.cs
Normal file
12
Ryujinx.HLE/OsHle/Services/FspSrv/StorageTypes.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
namespace Ryujinx.HLE.OsHle.Services.FspSrv
|
||||||
|
{
|
||||||
|
enum StorageTypes
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Host,
|
||||||
|
GameCard,
|
||||||
|
NandSystem,
|
||||||
|
NandUser,
|
||||||
|
SdCard
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,7 +14,9 @@ namespace Ryujinx.HLE.OsHle.Services.Nifm
|
||||||
{
|
{
|
||||||
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
||||||
{
|
{
|
||||||
{ 4, CreateRequest }
|
{ 4, CreateRequest },
|
||||||
|
{ 5, GetCurrentNetworkProfile },
|
||||||
|
{ 12, GetCurrentIpAddress }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,5 +31,28 @@ namespace Ryujinx.HLE.OsHle.Services.Nifm
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long GetCurrentNetworkProfile(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
(long Position, long Size) = Context.Request.GetBufferType0x21();
|
||||||
|
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceNifm, "Stubbed.");
|
||||||
|
|
||||||
|
for (int Index = 0; Index < Size; Index++)
|
||||||
|
{
|
||||||
|
Context.Memory.WriteByte(Position + Index, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long GetCurrentIpAddress(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceNifm, "Stubbed.");
|
||||||
|
|
||||||
|
Context.ResponseData.Write(0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,7 +18,8 @@ namespace Ryujinx.HLE.OsHle.Services.Pctl
|
||||||
{
|
{
|
||||||
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
||||||
{
|
{
|
||||||
{ 1, Initialize }
|
{ 1, Initialize },
|
||||||
|
{ 1001, CheckFreeCommunicationPermission }
|
||||||
};
|
};
|
||||||
|
|
||||||
this.NeedInitialize = NeedInitialize;
|
this.NeedInitialize = NeedInitialize;
|
||||||
|
@ -37,5 +38,12 @@ namespace Ryujinx.HLE.OsHle.Services.Pctl
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long CheckFreeCommunicationPermission(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServicePctl, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue