This commit is contained in:
Starlet 2018-07-19 00:22:29 +00:00 committed by GitHub
commit 4f23ead719
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 96 additions and 3 deletions

View file

@ -19,6 +19,8 @@ namespace Ryujinx.HLE.OsHle.Services.Am
{ 21, GetDesiredLanguage },
{ 22, SetTerminateResult },
{ 23, GetDisplayVersion },
{ 25, ExtendSaveData },
{ 26, GetSaveDataSize },
{ 40, NotifyRunning },
{ 50, GetPseudoDeviceId },
{ 66, InitializeGamePlayRecording },
@ -81,6 +83,25 @@ namespace Ryujinx.HLE.OsHle.Services.Am
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)
{
Context.ResponseData.Write(1);

View file

@ -1,6 +1,8 @@
using Ryujinx.HLE.Logging;
using Ryujinx.HLE.OsHle.Ipc;
using System;
using System.Collections.Generic;
using System.IO;
namespace Ryujinx.HLE.OsHle.Services.FspSrv
{
@ -19,11 +21,11 @@ namespace Ryujinx.HLE.OsHle.Services.FspSrv
{ 22, CreateSaveDataFileSystem },
{ 51, OpenSaveDataFileSystem },
{ 200, OpenDataStorageByCurrentProcess },
{ 202, OpenDataStorageByDataId },
{ 203, OpenPatchDataStorageByCurrentProcess },
{ 1005, GetGlobalAccessLogMode }
};
}
public long SetCurrentProcess(ServiceCtx Context)
{
return 0;
@ -57,6 +59,31 @@ namespace Ryujinx.HLE.OsHle.Services.FspSrv
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)
{
MakeObject(Context, new IStorage(Context.Ns.VFs.RomFs));

View file

@ -0,0 +1,12 @@
namespace Ryujinx.HLE.OsHle.Services.FspSrv
{
enum StorageTypes
{
None,
Host,
GameCard,
NandSystem,
NandUser,
SdCard
}
}

View file

@ -14,7 +14,9 @@ namespace Ryujinx.HLE.OsHle.Services.Nifm
{
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;
}
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;
}
}
}

View file

@ -18,7 +18,8 @@ namespace Ryujinx.HLE.OsHle.Services.Pctl
{
m_Commands = new Dictionary<int, ServiceProcessRequest>()
{
{ 1, Initialize }
{ 1, Initialize },
{ 1001, CheckFreeCommunicationPermission }
};
this.NeedInitialize = NeedInitialize;
@ -37,5 +38,12 @@ namespace Ryujinx.HLE.OsHle.Services.Pctl
return 0;
}
public long CheckFreeCommunicationPermission(ServiceCtx Context)
{
Context.Ns.Log.PrintStub(LogClass.ServicePctl, "Stubbed.");
return 0;
}
}
}