This commit is contained in:
Melissa Goad 2018-04-21 19:35:09 +00:00 committed by GitHub
commit 00f08049cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 58 additions and 13 deletions

View file

@ -14,6 +14,7 @@ namespace Ryujinx.Core.OsHle.Kernel
partial class SvcHandler partial class SvcHandler
{ {
private const int AllowedCpuIdBitmask = 0b1111; private const int AllowedCpuIdBitmask = 0b1111;
private ulong IsVirtualAddressMemoryEnabled = 0;
private const bool EnableProcessDebugging = false; private const bool EnableProcessDebugging = false;
@ -297,6 +298,9 @@ namespace Ryujinx.Core.OsHle.Kernel
ThreadState.X1 = MemoryRegions.MapRegionSize; ThreadState.X1 = MemoryRegions.MapRegionSize;
break; break;
case 16:
ThreadState.X1 = IsVirtualAddressMemoryEnabled;
break;
default: throw new NotImplementedException($"SvcGetInfo: {InfoType} {Handle} {InfoId}"); default: throw new NotImplementedException($"SvcGetInfo: {InfoType} {Handle} {InfoId}");
} }

View file

@ -15,6 +15,7 @@ namespace Ryujinx.Core.OsHle.Services.Acc
{ {
{ 0, GetUserCount }, { 0, GetUserCount },
{ 3, ListOpenUsers }, { 3, ListOpenUsers },
{ 4, GetLastOpenedUser },
{ 5, GetProfile }, { 5, GetProfile },
{ 100, InitializeApplicationInfo }, { 100, InitializeApplicationInfo },
{ 101, GetBaasAccountManagerForApplication } { 101, GetBaasAccountManagerForApplication }
@ -37,6 +38,13 @@ namespace Ryujinx.Core.OsHle.Services.Acc
return 0; return 0;
} }
public long GetLastOpenedUser(ServiceCtx Context)
{
Logging.Stub(LogClass.ServiceAcc, "Stubbed");
return 0;
}
public long GetProfile(ServiceCtx Context) public long GetProfile(ServiceCtx Context)
{ {
MakeObject(Context, new IProfile()); MakeObject(Context, new IProfile());

View file

@ -14,11 +14,13 @@ namespace Ryujinx.Core.OsHle.Services.Am
{ {
m_Commands = new Dictionary<int, ServiceProcessRequest>() m_Commands = new Dictionary<int, ServiceProcessRequest>()
{ {
{ 1, PopLaunchParameter }, { 1, PopLaunchParameter },
{ 20, EnsureSaveData }, { 20, EnsureSaveData },
{ 21, GetDesiredLanguage }, { 21, GetDesiredLanguage },
{ 22, SetTerminateResult }, { 22, SetTerminateResult },
{ 40, NotifyRunning } { 40, NotifyRunning },
{ 66, InitializeGameplayRecording },
{ 67, SetGameplayRecordingState },
}; };
} }
@ -74,6 +76,20 @@ namespace Ryujinx.Core.OsHle.Services.Am
return 0; return 0;
} }
public long InitializeGameplayRecording(ServiceCtx Context)
{
//TODO: Stubbed
return 0;
}
public long SetGameplayRecordingState(ServiceCtx Context)
{
//TODO: Stubbed
return 0;
}
private byte[] MakeLaunchParams() private byte[] MakeLaunchParams()
{ {
//Size needs to be at least 0x88 bytes otherwise application errors. //Size needs to be at least 0x88 bytes otherwise application errors.

View file

@ -15,10 +15,11 @@ namespace Ryujinx.Core.OsHle.Services.FspSrv
{ {
{ 1, SetCurrentProcess }, { 1, SetCurrentProcess },
{ 18, OpenSdCardFileSystem }, { 18, OpenSdCardFileSystem },
{ 22, CreateSaveData },
{ 51, OpenSaveDataFileSystem }, { 51, OpenSaveDataFileSystem },
{ 200, OpenDataStorageByCurrentProcess }, { 200, OpenDataStorageByCurrentProcess },
{ 203, OpenPatchDataStorageByCurrentProcess }, { 203, OpenPatchDataStorageByCurrentProcess },
{ 1005, GetGlobalAccessLogMode } { 1005, GetGlobalAccessLogMode },
}; };
} }
@ -34,6 +35,13 @@ namespace Ryujinx.Core.OsHle.Services.FspSrv
return 0; return 0;
} }
public long CreateSaveData(ServiceCtx Context)
{
//TODO: Stubbed
return 0;
}
public long OpenSaveDataFileSystem(ServiceCtx Context) public long OpenSaveDataFileSystem(ServiceCtx Context)
{ {
MakeObject(Context, new IFileSystem(Context.Ns.VFs.GetGameSavesPath())); MakeObject(Context, new IFileSystem(Context.Ns.VFs.GetGameSavesPath()));

View file

@ -31,12 +31,13 @@ namespace Ryujinx.Core.OsHle.Services.Nv
{ {
m_Commands = new Dictionary<int, ServiceProcessRequest>() m_Commands = new Dictionary<int, ServiceProcessRequest>()
{ {
{ 0, Open }, { 0, Open },
{ 1, Ioctl }, { 1, Ioctl },
{ 2, Close }, { 2, Close },
{ 3, Initialize }, { 3, Initialize },
{ 4, QueryEvent }, { 4, QueryEvent },
{ 8, SetClientPid }, { 8, SetClientPid },
{ 13, FinishInitialize },
}; };
IoctlCmds = new Dictionary<(string, int), ServiceProcessIoctl>() IoctlCmds = new Dictionary<(string, int), ServiceProcessIoctl>()
@ -165,6 +166,13 @@ namespace Ryujinx.Core.OsHle.Services.Nv
return 0; return 0;
} }
public long FinishInitialize(ServiceCtx Context)
{
//TODO: Stubbed
return 0;
}
private long NvGpuAsIoctlBindChannel(ServiceCtx Context) private long NvGpuAsIoctlBindChannel(ServiceCtx Context)
{ {
long Position = Context.Request.GetSendBuffPtr(); long Position = Context.Request.GetSendBuffPtr();

View file

@ -24,7 +24,8 @@ namespace Ryujinx.Core.OsHle.Services.Vi
{ {
{ 0, TransactParcel }, { 0, TransactParcel },
{ 1, AdjustRefcount }, { 1, AdjustRefcount },
{ 2, GetNativeHandle } { 2, GetNativeHandle },
{ 3, TransactParcel }, //TransactParcelAuto
}; };
ReleaseEvent = new KEvent(); ReleaseEvent = new KEvent();