Fix NV stubs

This commit is contained in:
Starlet 2018-05-10 22:46:30 -04:00
parent 0979426e63
commit 0f8e94024c
5 changed files with 75 additions and 0 deletions

View file

@ -0,0 +1,8 @@
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
{
struct NvGpuGpuGetActiveSlotMask
{
public int Slot;
public int Mask;
}
}

View file

@ -0,0 +1,10 @@
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
{
struct NvGpuGpuGetTpcMasks
{
public int MaskBufferSize;
public int Reserved;
public long MaskBufferAddress;
public long Unk;
}
}

View file

@ -41,6 +41,12 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
long InputPosition = Context.Request.GetBufferType0x21Position();
long OutputPosition = Context.Request.GetBufferType0x22Position();
NvGpuGpuZcullGetCtxSize Args = AMemoryHelper.Read<NvGpuGpuZcullGetCtxSize>(Context.Memory, InputPosition);
Args.Size = 0x1;
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
return NvResult.Success;
@ -51,6 +57,21 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
long InputPosition = Context.Request.GetBufferType0x21Position();
long OutputPosition = Context.Request.GetBufferType0x22Position();
NvGpuGpuZcullGetInfo Args = AMemoryHelper.Read<NvGpuGpuZcullGetInfo>(Context.Memory, InputPosition);
Args.WidthAlignPixels = 0x20;
Args.HeightAlignPixels = 0x20;
Args.PixelSquaresByAliquots = 0x400;
Args.AliquotTotal = 0x800;
Args.RegionByteMultiplier = 0x20;
Args.RegionHeaderSize = 0x20;
Args.SubregionHeaderSize = 0xc0;
Args.SubregionWidthAlignPixels = 0x20;
Args.SubregionHeightAlignPixels = 0x40;
Args.SubregionCount = 0x10;
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
return NvResult.Success;
@ -121,6 +142,12 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
long InputPosition = Context.Request.GetBufferType0x21Position();
long OutputPosition = Context.Request.GetBufferType0x22Position();
NvGpuGpuGetTpcMasks Args = AMemoryHelper.Read<NvGpuGpuGetTpcMasks>(Context.Memory, InputPosition);
Args.Unk = 0xcafe;
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
return NvResult.Success;
@ -131,6 +158,13 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
long InputPosition = Context.Request.GetBufferType0x21Position();
long OutputPosition = Context.Request.GetBufferType0x22Position();
NvGpuGpuGetActiveSlotMask Args = AMemoryHelper.Read<NvGpuGpuGetActiveSlotMask>(Context.Memory, InputPosition);
Args.Slot = 0x07;
Args.Mask = 0x01;
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
return NvResult.Success;

View file

@ -0,0 +1,7 @@
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
{
struct NvGpuGpuZcullGetCtxSize
{
public int Size;
}
}

View file

@ -0,0 +1,16 @@
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
{
struct NvGpuGpuZcullGetInfo
{
public int WidthAlignPixels;
public int HeightAlignPixels;
public int PixelSquaresByAliquots;
public int AliquotTotal;
public int RegionByteMultiplier;
public int RegionHeaderSize;
public int SubregionHeaderSize;
public int SubregionWidthAlignPixels;
public int SubregionHeightAlignPixels;
public int SubregionCount;
}
}