mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-05-21 04:35:46 +00:00
feature: .NET 10 (ryubing/ryujinx!214)
See merge request ryubing/ryujinx!214
This commit is contained in:
@@ -122,8 +122,8 @@ namespace Ryujinx.HLE.HOS
|
||||
TickSource,
|
||||
device,
|
||||
device.Memory,
|
||||
device.Configuration.MemoryConfiguration.ToKernelMemorySize(),
|
||||
device.Configuration.MemoryConfiguration.ToKernelMemoryArrange());
|
||||
device.Configuration.MemoryConfiguration.KernelMemorySize,
|
||||
device.Configuration.MemoryConfiguration.KernelMemoryArrange);
|
||||
|
||||
Device = device;
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Ryujinx.HLE.HOS
|
||||
|
||||
public Result GetFileSize(out long size, FileHandle handle)
|
||||
{
|
||||
return _fsClient.GetFileSize(out size, (LibHac.Fs.FileHandle)handle.Value).ToHorizonResult();
|
||||
return _fsClient.GetFileSize(out size, (LibHac.Fs.FileHandle)handle.Value).Horizon;
|
||||
}
|
||||
|
||||
public Result MountSystemData(string mountName, ulong dataId)
|
||||
@@ -58,7 +58,7 @@ namespace Ryujinx.HLE.HOS
|
||||
using IFileSystem ncaFileSystem = nca.OpenFileSystem(NcaSectionType.Data, _system.FsIntegrityCheckLevel);
|
||||
using UniqueRef<IFileSystem> ncaFsRef = new(ncaFileSystem);
|
||||
|
||||
Result result = _fsClient.Register(mountName.ToU8Span(), ref ncaFsRef.Ref).ToHorizonResult();
|
||||
Result result = _fsClient.Register(mountName.ToU8Span(), ref ncaFsRef.Ref).Horizon;
|
||||
if (result.IsFailure)
|
||||
{
|
||||
ncaStorage.Dispose();
|
||||
@@ -74,14 +74,14 @@ namespace Ryujinx.HLE.HOS
|
||||
{
|
||||
ncaStorage?.Dispose();
|
||||
|
||||
return ex.ResultValue.ToHorizonResult();
|
||||
return ex.ResultValue.Horizon;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Return correct result here, this is likely wrong.
|
||||
|
||||
return LibHac.Fs.ResultFs.TargetNotFound.Handle().ToHorizonResult();
|
||||
return LibHac.Fs.ResultFs.TargetNotFound.Handle().Horizon;
|
||||
}
|
||||
|
||||
public Result OpenFile(out FileHandle handle, string path, OpenMode openMode)
|
||||
@@ -89,7 +89,7 @@ namespace Ryujinx.HLE.HOS
|
||||
LibHac.Result result = _fsClient.OpenFile(out LibHac.Fs.FileHandle libhacHandle, path.ToU8Span(), (LibHac.Fs.OpenMode)openMode);
|
||||
handle = new(libhacHandle);
|
||||
|
||||
return result.ToHorizonResult();
|
||||
return result.Horizon;
|
||||
}
|
||||
|
||||
public Result QueryMountSystemDataCacheSize(out long size, ulong dataId)
|
||||
@@ -103,7 +103,7 @@ namespace Ryujinx.HLE.HOS
|
||||
|
||||
public Result ReadFile(FileHandle handle, long offset, Span<byte> destination)
|
||||
{
|
||||
return _fsClient.ReadFile((LibHac.Fs.FileHandle)handle.Value, offset, destination).ToHorizonResult();
|
||||
return _fsClient.ReadFile((LibHac.Fs.FileHandle)handle.Value, offset, destination).Horizon;
|
||||
}
|
||||
|
||||
public void Unmount(string mountName)
|
||||
|
||||
@@ -4,19 +4,16 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
{
|
||||
static class CapabilityExtensions
|
||||
{
|
||||
extension(CapabilityType type)
|
||||
{
|
||||
public uint Flag => (uint)type + 1;
|
||||
|
||||
public uint Id => (uint)BitOperations.TrailingZeroCount(type.Flag);
|
||||
}
|
||||
|
||||
public static CapabilityType GetCapabilityType(this uint cap)
|
||||
{
|
||||
return (CapabilityType)(((cap + 1) & ~cap) - 1);
|
||||
}
|
||||
|
||||
public static uint GetFlag(this CapabilityType type)
|
||||
{
|
||||
return (uint)type + 1;
|
||||
}
|
||||
|
||||
public static uint GetId(this CapabilityType type)
|
||||
{
|
||||
return (uint)BitOperations.TrailingZeroCount(type.GetFlag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
int codeMask = 1 << (32 - BitOperations.LeadingZeroCount(code.GetFlag() + 1));
|
||||
int codeMask = 1 << (32 - BitOperations.LeadingZeroCount(code.Flag + 1));
|
||||
|
||||
// Check if the property was already set.
|
||||
if (((mask0 & codeMask) & 0x1e008) != 0)
|
||||
|
||||
@@ -1316,8 +1316,8 @@ namespace Ryujinx.HLE.HOS.Services.Hid
|
||||
|
||||
context.Memory.Read(context.Request.PtrBuff[1].Position, vibrationValueBuffer);
|
||||
|
||||
Span<VibrationDeviceHandle> deviceHandles = MemoryMarshal.Cast<byte, VibrationDeviceHandle>(vibrationDeviceHandleBuffer);
|
||||
Span<VibrationValue> vibrationValues = MemoryMarshal.Cast<byte, VibrationValue>(vibrationValueBuffer);
|
||||
Span<VibrationDeviceHandle> deviceHandles = MemoryMarshal.Cast<byte, VibrationDeviceHandle>(new Span<byte>(vibrationDeviceHandleBuffer));
|
||||
Span<VibrationValue> vibrationValues = MemoryMarshal.Cast<byte, VibrationValue>(new Span<byte>(vibrationValueBuffer));
|
||||
|
||||
if (!deviceHandles.IsEmpty && vibrationValues.Length == deviceHandles.Length)
|
||||
{
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Spl
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
SystemVersion version = context.Device.System.ContentManager.GetCurrentFirmwareVersion();
|
||||
#pragma warning restore IDE0059
|
||||
MemorySize memorySize = context.Device.Configuration.MemoryConfiguration.ToKernelMemorySize();
|
||||
MemorySize memorySize = context.Device.Configuration.MemoryConfiguration.KernelMemorySize;
|
||||
|
||||
switch (configItem)
|
||||
{
|
||||
|
||||
@@ -18,11 +18,11 @@ namespace Ryujinx.HLE
|
||||
{
|
||||
private const ulong GiB = 1024 * 1024 * 1024;
|
||||
|
||||
#pragma warning disable IDE0055 // Disable formatting
|
||||
public static MemoryArrange ToKernelMemoryArrange(this MemoryConfiguration configuration)
|
||||
extension(MemoryConfiguration configuration)
|
||||
{
|
||||
return configuration switch
|
||||
public MemoryArrange KernelMemoryArrange => configuration switch
|
||||
{
|
||||
#pragma warning disable IDE0055 // Disable formatting
|
||||
MemoryConfiguration.MemoryConfiguration4GiB => MemoryArrange.MemoryArrange4GiB,
|
||||
MemoryConfiguration.MemoryConfiguration4GiBAppletDev => MemoryArrange.MemoryArrange4GiBAppletDev,
|
||||
MemoryConfiguration.MemoryConfiguration4GiBSystemDev => MemoryArrange.MemoryArrange4GiBSystemDev,
|
||||
@@ -31,38 +31,36 @@ namespace Ryujinx.HLE
|
||||
MemoryConfiguration.MemoryConfiguration8GiB => MemoryArrange.MemoryArrange8GiB,
|
||||
MemoryConfiguration.MemoryConfiguration12GiB => MemoryArrange.MemoryArrange12GiB,
|
||||
_ => throw new AggregateException($"Invalid memory configuration \"{configuration}\"."),
|
||||
#pragma warning restore IDE0055
|
||||
};
|
||||
}
|
||||
|
||||
public static MemorySize ToKernelMemorySize(this MemoryConfiguration configuration)
|
||||
{
|
||||
return configuration switch
|
||||
|
||||
public MemorySize KernelMemorySize => configuration switch
|
||||
{
|
||||
#pragma warning disable IDE0055 // Disable formatting
|
||||
MemoryConfiguration.MemoryConfiguration4GiB or
|
||||
MemoryConfiguration.MemoryConfiguration4GiBAppletDev or
|
||||
MemoryConfiguration.MemoryConfiguration4GiBSystemDev => MemorySize.MemorySize4GiB,
|
||||
MemoryConfiguration.MemoryConfiguration4GiBAppletDev or
|
||||
MemoryConfiguration.MemoryConfiguration4GiBSystemDev => MemorySize.MemorySize4GiB,
|
||||
MemoryConfiguration.MemoryConfiguration6GiB or
|
||||
MemoryConfiguration.MemoryConfiguration6GiBAppletDev => MemorySize.MemorySize6GiB,
|
||||
MemoryConfiguration.MemoryConfiguration8GiB => MemorySize.MemorySize8GiB,
|
||||
MemoryConfiguration.MemoryConfiguration12GiB => MemorySize.MemorySize12GiB,
|
||||
MemoryConfiguration.MemoryConfiguration6GiBAppletDev => MemorySize.MemorySize6GiB,
|
||||
MemoryConfiguration.MemoryConfiguration8GiB => MemorySize.MemorySize8GiB,
|
||||
MemoryConfiguration.MemoryConfiguration12GiB => MemorySize.MemorySize12GiB,
|
||||
_ => throw new AggregateException($"Invalid memory configuration \"{configuration}\"."),
|
||||
#pragma warning restore IDE0055
|
||||
};
|
||||
}
|
||||
|
||||
public static ulong ToDramSize(this MemoryConfiguration configuration)
|
||||
{
|
||||
return configuration switch
|
||||
|
||||
public ulong DramSize => configuration switch
|
||||
{
|
||||
#pragma warning disable IDE0055 // Disable formatting
|
||||
MemoryConfiguration.MemoryConfiguration4GiB or
|
||||
MemoryConfiguration.MemoryConfiguration4GiBAppletDev or
|
||||
MemoryConfiguration.MemoryConfiguration4GiBSystemDev => 4 * GiB,
|
||||
MemoryConfiguration.MemoryConfiguration4GiBAppletDev or
|
||||
MemoryConfiguration.MemoryConfiguration4GiBSystemDev => 4 * GiB,
|
||||
MemoryConfiguration.MemoryConfiguration6GiB or
|
||||
MemoryConfiguration.MemoryConfiguration6GiBAppletDev => 6 * GiB,
|
||||
MemoryConfiguration.MemoryConfiguration6GiBAppletDev => 6 * GiB,
|
||||
MemoryConfiguration.MemoryConfiguration8GiB => 8 * GiB,
|
||||
MemoryConfiguration.MemoryConfiguration12GiB => 12 * GiB,
|
||||
_ => throw new AggregateException($"Invalid memory configuration \"{configuration}\"."),
|
||||
#pragma warning restore IDE0055
|
||||
};
|
||||
}
|
||||
#pragma warning restore IDE0055
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace Ryujinx.HLE
|
||||
#pragma warning disable IDE0055 // Disable formatting
|
||||
DirtyHacks = new DirtyHacks(Configuration.Hacks);
|
||||
AudioDeviceDriver = new CompatLayerHardwareDeviceDriver(Configuration.AudioDeviceDriver);
|
||||
Memory = new MemoryBlock(Configuration.MemoryConfiguration.ToDramSize(), memoryAllocationFlags);
|
||||
Memory = new MemoryBlock(Configuration.MemoryConfiguration.DramSize, memoryAllocationFlags);
|
||||
Gpu = new GpuContext(Configuration.GpuRenderer, DirtyHacks);
|
||||
Debugger = Configuration.EnableGdbStub ? new Debugger.Debugger(this, Configuration.GdbStubPort) : null;
|
||||
System = new HOS.Horizon(this);
|
||||
|
||||
Reference in New Issue
Block a user