From 39ebb83453245004fe3d9bd7ede9dc05b94e7e0e Mon Sep 17 00:00:00 2001 From: greggameplayer <33609333+greggameplayer@users.noreply.github.com> Date: Sat, 9 Jun 2018 00:57:42 +0200 Subject: [PATCH 01/15] Add & Correct ErrorModules (#137) * Add & Correct ErrorModules * Remove LibNX specific ErrorModules * Remove Homebrew Specific ErrorModules --- Ryujinx.Core/OsHle/ErrorModule.cs | 66 ++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/Ryujinx.Core/OsHle/ErrorModule.cs b/Ryujinx.Core/OsHle/ErrorModule.cs index f23e8d2703..1b5df0cff5 100644 --- a/Ryujinx.Core/OsHle/ErrorModule.cs +++ b/Ryujinx.Core/OsHle/ErrorModule.cs @@ -4,60 +4,98 @@ namespace Ryujinx.Core.OsHle { Kernel = 1, Fs = 2, - Nvidia_TransferMemory = 3, + Os = 3, // (Memory, Thread, Mutex, NVIDIA) + Htcs = 4, Ncm = 5, Dd = 6, + Debug_Monitor = 7, Lr = 8, Loader = 9, IPC_Command_Interface = 10, IPC = 11, Pm = 15, Ns = 16, + Socket = 17, Htc = 18, + Ncm_Content = 20, Sm = 21, RO_Userland = 22, SdMmc = 24, + Ovln = 25, Spl = 26, Ethc = 100, I2C = 101, + Gpio = 102, + Uart = 103, Settings = 105, + Wlan = 107, + Xcd = 108, Nifm = 110, - Display = 114, - Ntc = 116, - Fdm = 117, + Hwopus = 111, + Bluetooth = 113, + Vi = 114, + Nfp = 115, + Time = 116, + Fgm = 117, + Oe = 118, Pcie = 120, Friends = 121, + Bcat = 122, SSL = 123, Account = 124, + News = 125, Mii = 126, + Nfc = 127, Am = 128, Play_Report = 129, + Ahid = 130, + Qlaunch = 132, Pcv = 133, Omm = 134, + Bpc = 135, + Psm = 136, Nim = 137, Psc = 138, + Tc = 139, Usb = 140, Nsd = 141, + Pctl = 142, Btm = 143, - Erpt = 147, + Ec = 144, + ETicket = 145, + Ngc = 146, + Error_Report = 147, Apm = 148, + Profiler = 150, + Error_Upload = 151, Audio = 153, Npns = 154, + Npns_Http_Stream = 155, Arp = 157, - Boot = 158, - Nfc = 161, + Swkbd = 158, + Boot = 159, + Nfc_Mifare = 161, Userland_Assert = 162, + Fatal = 163, + Nim_Shop = 164, + Spsm = 165, + Bgtc = 167, Userland_Crash = 168, - Hid = 203, + SRepo = 180, + Dauth = 181, + Hid = 202, + Ldn = 203, + Irsensor = 205, Capture = 206, - Libnx = 345, - Homebrew_ABI = 346, - Homebrew_Loader = 347, - libnx_Nvidia_Errors = 348, - Tc = 651, + Manu = 208, + Atk = 209, + Web = 210, + Grc = 212, + Migration = 216, + Migration_Ldc_Server = 217, General_Web_Applet = 800, Wifi_Web_Auth_Applet = 809, Whitelisted_Applet = 810, ShopN = 811 } -} \ No newline at end of file +} From 6fe51f970501fe732276c17ed0dacb564b92a73d Mon Sep 17 00:00:00 2001 From: riperiperi Date: Sat, 9 Jun 2018 01:15:02 +0100 Subject: [PATCH 02/15] ReadBytes function in AMemory, with cleaner range check. (#136) --- ChocolArm64/Memory/AMemory.cs | 20 +++++++++++ ChocolArm64/Memory/AMemoryHelper.cs | 12 ------- Ryujinx.Core/Gpu/NvGpuVmm.cs | 2 +- Ryujinx.Core/OsHle/Kernel/SvcSystem.cs | 2 +- .../OsHle/Services/Am/IStorageAccessor.cs | 2 +- .../OsHle/Services/Aud/IAudioDevice.cs | 4 +-- Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs | 3 +- Ryujinx.Core/OsHle/Services/Bsd/IClient.cs | 35 ++++++++----------- Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs | 2 +- Ryujinx.Core/OsHle/Services/Lm/ILogger.cs | 3 +- .../Services/Set/ISystemSettingsServer.cs | 4 +-- .../OsHle/Services/Vi/IHOSBinderDriver.cs | 4 +-- 12 files changed, 46 insertions(+), 47 deletions(-) diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index c24a9e8ef9..e7d46565f8 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -301,6 +301,15 @@ namespace ChocolArm64.Memory return *((ulong*)(RamPtr + (uint)Position)); } + public byte[] ReadBytes(long Position, long Size) + { + EnsureRangeIsValid(Position, Size, AMemoryPerm.Read); + + byte[] Result = new byte[Size]; + Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Result, 0, (int)Size); + return Result; + } + public Vector128 ReadVector8Unchecked(long Position) { if (Sse2.IsSupported) @@ -611,6 +620,17 @@ namespace ChocolArm64.Memory } } + private void EnsureRangeIsValid(long Position, long Size, AMemoryPerm Perm) + { + long EndPos = (Position + Size); + Position = Position & ~AMemoryMgr.PageMask; //check base of each page + while (Position < EndPos) + { + EnsureAccessIsValid(Position, Perm); + Position += AMemoryMgr.PageSize; + } + } + public void Dispose() { Dispose(true); diff --git a/ChocolArm64/Memory/AMemoryHelper.cs b/ChocolArm64/Memory/AMemoryHelper.cs index 1e3462985b..c0ade89ce0 100644 --- a/ChocolArm64/Memory/AMemoryHelper.cs +++ b/ChocolArm64/Memory/AMemoryHelper.cs @@ -22,18 +22,6 @@ namespace ChocolArm64.Memory } } - public static byte[] ReadBytes(AMemory Memory, long Position, long Size) - { - byte[] Data = new byte[Size]; - - for (long Offs = 0; Offs < Size; Offs++) - { - Data[Offs] = (byte)Memory.ReadByte(Position + Offs); - } - - return Data; - } - public static void WriteBytes(AMemory Memory, long Position, byte[] Data) { for (int Offs = 0; Offs < Data.Length; Offs++) diff --git a/Ryujinx.Core/Gpu/NvGpuVmm.cs b/Ryujinx.Core/Gpu/NvGpuVmm.cs index 1c408964fa..09553b8ada 100644 --- a/Ryujinx.Core/Gpu/NvGpuVmm.cs +++ b/Ryujinx.Core/Gpu/NvGpuVmm.cs @@ -330,7 +330,7 @@ namespace Ryujinx.Core.Gpu { Position = GetPhysicalAddress(Position); - return AMemoryHelper.ReadBytes(Memory, Position, Size); + return Memory.ReadBytes(Position, Size); } public void WriteByte(long Position, byte Value) diff --git a/Ryujinx.Core/OsHle/Kernel/SvcSystem.cs b/Ryujinx.Core/OsHle/Kernel/SvcSystem.cs index 77f35c199c..638625d829 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcSystem.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcSystem.cs @@ -233,7 +233,7 @@ namespace Ryujinx.Core.OsHle.Kernel { KThread CurrThread = Process.GetThread(ThreadState.Tpidr); - byte[] CmdData = AMemoryHelper.ReadBytes(Memory, CmdPtr, Size); + byte[] CmdData = Memory.ReadBytes(CmdPtr, Size); KSession Session = Process.HandleTable.GetData(Handle); diff --git a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs index 0e928f6781..4cd1f99b83 100644 --- a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs +++ b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs @@ -49,7 +49,7 @@ namespace Ryujinx.Core.OsHle.Services.Am Size = MaxSize; } - byte[] Data = AMemoryHelper.ReadBytes(Context.Memory, Position, Size); + byte[] Data = Context.Memory.ReadBytes(Position, Size); Buffer.BlockCopy(Data, 0, Storage.Data, (int)WritePosition, (int)Size); } diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs index b5de85a133..73916f709c 100644 --- a/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs +++ b/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs @@ -75,7 +75,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud long Position = Context.Request.SendBuff[0].Position; long Size = Context.Request.SendBuff[0].Size; - byte[] DeviceNameBuffer = AMemoryHelper.ReadBytes(Context.Memory, Position, Size); + byte[] DeviceNameBuffer = Context.Memory.ReadBytes(Position, Size); string DeviceName = Encoding.ASCII.GetString(DeviceNameBuffer); @@ -160,7 +160,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud (long Position, long Size) = Context.Request.GetBufferType0x21(); - byte[] DeviceNameBuffer = AMemoryHelper.ReadBytes(Context.Memory, Position, Size); + byte[] DeviceNameBuffer = Context.Memory.ReadBytes(Position, Size); string DeviceName = Encoding.UTF8.GetString(DeviceNameBuffer); diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs index 09c5050fc0..fba97a3f5a 100644 --- a/Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs +++ b/Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs @@ -69,8 +69,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud Context.Memory, Context.Request.SendBuff[0].Position); - byte[] Buffer = AMemoryHelper.ReadBytes( - Context.Memory, + byte[] Buffer = Context.Memory.ReadBytes( Data.SampleBufferPtr, Data.SampleBufferSize); diff --git a/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs b/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs index f26e5ee374..0c0eeb5a3d 100644 --- a/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs +++ b/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs @@ -102,9 +102,8 @@ namespace Ryujinx.Core.OsHle.Services.Bsd //https://github.com/TuxSH/ftpd/blob/switch_pr/source/ftp.c#L1634 //https://linux.die.net/man/2/poll - byte[] SentBuffer = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.SendBuff[0].Position, - Context.Request.SendBuff[0].Size); + byte[] SentBuffer = Context.Memory.ReadBytes(Context.Request.SendBuff[0].Position, + Context.Request.SendBuff[0].Size); int SocketId = Get32(SentBuffer, 0); int RequestedEvents = Get16(SentBuffer, 4); @@ -152,9 +151,8 @@ namespace Ryujinx.Core.OsHle.Services.Bsd int SocketId = Context.RequestData.ReadInt32(); int SocketFlags = Context.RequestData.ReadInt32(); - byte[] SentBuffer = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.SendBuff[0].Position, - Context.Request.SendBuff[0].Size); + byte[] SentBuffer = Context.Memory.ReadBytes(Context.Request.SendBuff[0].Position, + Context.Request.SendBuff[0].Size); try { @@ -180,13 +178,11 @@ namespace Ryujinx.Core.OsHle.Services.Bsd int SocketId = Context.RequestData.ReadInt32(); int SocketFlags = Context.RequestData.ReadInt32(); - byte[] SentBuffer = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.SendBuff[0].Position, - Context.Request.SendBuff[0].Size); + byte[] SentBuffer = Context.Memory.ReadBytes(Context.Request.SendBuff[0].Position, + Context.Request.SendBuff[0].Size); - byte[] AddressBuffer = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.SendBuff[1].Position, - Context.Request.SendBuff[1].Size); + byte[] AddressBuffer = Context.Memory.ReadBytes(Context.Request.SendBuff[1].Position, + Context.Request.SendBuff[1].Size); if (!Sockets[SocketId].Handle.Connected) { @@ -291,9 +287,8 @@ namespace Ryujinx.Core.OsHle.Services.Bsd { int SocketId = Context.RequestData.ReadInt32(); - byte[] AddressBuffer = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.SendBuff[0].Position, - Context.Request.SendBuff[0].Size); + byte[] AddressBuffer = Context.Memory.ReadBytes(Context.Request.SendBuff[0].Position, + Context.Request.SendBuff[0].Size); try { @@ -316,9 +311,8 @@ namespace Ryujinx.Core.OsHle.Services.Bsd { int SocketId = Context.RequestData.ReadInt32(); - byte[] AddressBuffer = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.SendBuff[0].Position, - Context.Request.SendBuff[0].Size); + byte[] AddressBuffer = Context.Memory.ReadBytes(Context.Request.SendBuff[0].Position, + Context.Request.SendBuff[0].Size); try { @@ -369,9 +363,8 @@ namespace Ryujinx.Core.OsHle.Services.Bsd SocketOptionLevel SocketLevel = (SocketOptionLevel)Context.RequestData.ReadInt32(); SocketOptionName SocketOptionName = (SocketOptionName)Context.RequestData.ReadInt32(); - byte[] SocketOptionValue = AMemoryHelper.ReadBytes(Context.Memory, - Context.Request.PtrBuff[0].Position, - Context.Request.PtrBuff[0].Size); + byte[] SocketOptionValue = Context.Memory.ReadBytes(Context.Request.PtrBuff[0].Position, + Context.Request.PtrBuff[0].Size); int OptionValue = Get32(SocketOptionValue, 0); diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs index bd7d138fd5..0dd4538555 100644 --- a/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs +++ b/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs @@ -62,7 +62,7 @@ namespace Ryujinx.Core.OsHle.Services.FspSrv long Offset = Context.RequestData.ReadInt64(); long Size = Context.RequestData.ReadInt64(); - byte[] Data = AMemoryHelper.ReadBytes(Context.Memory, Position, Size); + byte[] Data = Context.Memory.ReadBytes(Position, Size); BaseStream.Seek(Offset, SeekOrigin.Begin); BaseStream.Write(Data, 0, (int)Size); diff --git a/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs b/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs index c5b6c93130..5109010589 100644 --- a/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs +++ b/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs @@ -23,8 +23,7 @@ namespace Ryujinx.Core.OsHle.Services.Lm public long Log(ServiceCtx Context) { - byte[] LogBuffer = AMemoryHelper.ReadBytes( - Context.Memory, + byte[] LogBuffer = Context.Memory.ReadBytes( Context.Request.PtrBuff[0].Position, Context.Request.PtrBuff[0].Size); diff --git a/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs b/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs index 26d676938e..8209429130 100644 --- a/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs +++ b/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs @@ -97,8 +97,8 @@ namespace Ryujinx.Core.OsHle.Services.Set long ReplyPos = Context.Request.ReceiveBuff[0].Position; long ReplySize = Context.Request.ReceiveBuff[0].Size; - byte[] Class = AMemoryHelper.ReadBytes(Context.Memory, ClassPos, ClassSize); - byte[] Name = AMemoryHelper.ReadBytes(Context.Memory, NamePos, NameSize); + byte[] Class = Context.Memory.ReadBytes(ClassPos, ClassSize); + byte[] Name = Context.Memory.ReadBytes(NamePos, NameSize); string AskedSetting = Encoding.ASCII.GetString(Class).Trim('\0') + "!" + Encoding.ASCII.GetString(Name).Trim('\0'); diff --git a/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs b/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs index c00e247e29..41c3970e75 100644 --- a/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs +++ b/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs @@ -41,7 +41,7 @@ namespace Ryujinx.Core.OsHle.Services.Vi long DataPos = Context.Request.SendBuff[0].Position; long DataSize = Context.Request.SendBuff[0].Size; - byte[] Data = AMemoryHelper.ReadBytes(Context.Memory, DataPos, DataSize); + byte[] Data = Context.Memory.ReadBytes(DataPos, DataSize); Data = Parcel.GetParcelData(Data); @@ -55,7 +55,7 @@ namespace Ryujinx.Core.OsHle.Services.Vi (long DataPos, long DataSize) = Context.Request.GetBufferType0x21(); - byte[] Data = AMemoryHelper.ReadBytes(Context.Memory, DataPos, DataSize); + byte[] Data = Context.Memory.ReadBytes(DataPos, DataSize); Data = Parcel.GetParcelData(Data); From 231fae1a4c97d7588655e9775f37c1dc9bd55fb0 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 8 Jun 2018 21:15:56 -0300 Subject: [PATCH 03/15] Texture/Vertex/Index data cache (#132) * Initial implementation of the texture cache * Cache vertex and index data aswell, some cleanup * Improve handling of the cache by storing cached ranges on a list for each page * Delete old data from the caches automatically, ensure that the cache is cleaned when the mapping/size changes, and some general cleanup --- ChocolArm64/Memory/AMemory.cs | 63 ++- ChocolArm64/Memory/AMemoryWin32.cs | 73 +++ Ryujinx.Core/Gpu/NvGpu.cs | 2 +- Ryujinx.Core/Gpu/NvGpuBufferType.cs | 9 + Ryujinx.Core/Gpu/NvGpuEngine2d.cs | 2 +- Ryujinx.Core/Gpu/NvGpuEngine3d.cs | 92 ++-- Ryujinx.Core/Gpu/NvGpuFifo.cs | 2 +- Ryujinx.Core/Gpu/NvGpuPBEntry.cs | 2 +- Ryujinx.Core/Gpu/NvGpuPushBuffer.cs | 2 +- Ryujinx.Core/Gpu/NvGpuVmm.cs | 35 +- Ryujinx.Core/Gpu/NvGpuVmmCache.cs | 209 ++++++++ Ryujinx.Core/Gpu/Texture.cs | 2 +- Ryujinx.Core/Gpu/TextureFactory.cs | 33 +- Ryujinx.Core/Gpu/TextureHelper.cs | 38 ++ Ryujinx.Core/Gpu/TextureReader.cs | 2 +- Ryujinx.Core/Gpu/TextureSwizzle.cs | 2 +- Ryujinx.Core/Gpu/TextureWriter.cs | 2 +- Ryujinx.Core/OsHle/Kernel/SvcThread.cs | 1 + Ryujinx.Graphics/Gal/GalTexture.cs | 4 - Ryujinx.Graphics/Gal/IGalRenderer.cs | 22 +- .../Gal/OpenGL/DeleteValueCallback.cs | 4 + .../Gal/OpenGL/OGLCachedResource.cs | 147 ++++++ Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs | 105 ++-- Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs | 103 ++-- Ryujinx.Graphics/Gal/OpenGL/OpenGLRenderer.cs | 69 +-- Ryujinx.Graphics/Gal/Texture/BCn.cs | 468 ------------------ Ryujinx.Graphics/Gal/Texture/SwizzleAddr.cs | 144 ------ .../Gal/Texture/TextureDecoder.cs | 19 - 28 files changed, 837 insertions(+), 819 deletions(-) create mode 100644 ChocolArm64/Memory/AMemoryWin32.cs create mode 100644 Ryujinx.Core/Gpu/NvGpuBufferType.cs create mode 100644 Ryujinx.Core/Gpu/NvGpuVmmCache.cs create mode 100644 Ryujinx.Graphics/Gal/OpenGL/DeleteValueCallback.cs create mode 100644 Ryujinx.Graphics/Gal/OpenGL/OGLCachedResource.cs delete mode 100644 Ryujinx.Graphics/Gal/Texture/BCn.cs delete mode 100644 Ryujinx.Graphics/Gal/Texture/SwizzleAddr.cs delete mode 100644 Ryujinx.Graphics/Gal/Texture/TextureDecoder.cs diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index e7d46565f8..7e9a358aba 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -54,7 +54,14 @@ namespace ChocolArm64.Memory ExAddrs = new HashSet(); - Ram = Marshal.AllocHGlobal((IntPtr)AMemoryMgr.RamSize + AMemoryMgr.PageSize); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + Ram = AMemoryWin32.Allocate((IntPtr)AMemoryMgr.RamSize + AMemoryMgr.PageSize); + } + else + { + Ram = Marshal.AllocHGlobal((IntPtr)AMemoryMgr.RamSize + AMemoryMgr.PageSize); + } RamPtr = (byte*)Ram; } @@ -141,6 +148,51 @@ namespace ChocolArm64.Memory } } + public long GetHostPageSize() + { + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return AMemoryMgr.PageSize; + } + + IntPtr MemAddress = new IntPtr(RamPtr); + IntPtr MemSize = new IntPtr(AMemoryMgr.RamSize); + + long PageSize = AMemoryWin32.IsRegionModified(MemAddress, MemSize, Reset: false); + + if (PageSize < 1) + { + throw new InvalidOperationException(); + } + + return PageSize; + } + + public bool IsRegionModified(long Position, long Size) + { + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return true; + } + + long EndPos = Position + Size; + + if ((ulong)EndPos < (ulong)Position) + { + return false; + } + + if ((ulong)EndPos > AMemoryMgr.RamSize) + { + return false; + } + + IntPtr MemAddress = new IntPtr(RamPtr + Position); + IntPtr MemSize = new IntPtr(Size); + + return AMemoryWin32.IsRegionModified(MemAddress, MemSize, Reset: true) != 0; + } + public sbyte ReadSByte(long Position) { return (sbyte)ReadByte(Position); @@ -640,7 +692,14 @@ namespace ChocolArm64.Memory { if (Ram != IntPtr.Zero) { - Marshal.FreeHGlobal(Ram); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + AMemoryWin32.Free(Ram); + } + else + { + Marshal.FreeHGlobal(Ram); + } Ram = IntPtr.Zero; } diff --git a/ChocolArm64/Memory/AMemoryWin32.cs b/ChocolArm64/Memory/AMemoryWin32.cs new file mode 100644 index 0000000000..d097dc8718 --- /dev/null +++ b/ChocolArm64/Memory/AMemoryWin32.cs @@ -0,0 +1,73 @@ +using System; +using System.Runtime.InteropServices; + +namespace ChocolArm64.Memory +{ + static class AMemoryWin32 + { + private const int MEM_COMMIT = 0x00001000; + private const int MEM_RESERVE = 0x00002000; + private const int MEM_WRITE_WATCH = 0x00200000; + + private const int PAGE_READWRITE = 0x04; + + private const int MEM_RELEASE = 0x8000; + + private const int WRITE_WATCH_FLAG_RESET = 1; + + [DllImport("kernel32.dll")] + private static extern IntPtr VirtualAlloc(IntPtr lpAddress, IntPtr dwSize, int flAllocationType, int flProtect); + + [DllImport("kernel32.dll")] + private static extern bool VirtualFree(IntPtr lpAddress, IntPtr dwSize, int dwFreeType); + + [DllImport("kernel32.dll")] + private unsafe static extern int GetWriteWatch( + int dwFlags, + IntPtr lpBaseAddress, + IntPtr dwRegionSize, + IntPtr[] lpAddresses, + long* lpdwCount, + long* lpdwGranularity); + + public static IntPtr Allocate(IntPtr Size) + { + const int Flags = MEM_COMMIT | MEM_RESERVE | MEM_WRITE_WATCH; + + IntPtr Address = VirtualAlloc(IntPtr.Zero, Size, Flags, PAGE_READWRITE); + + if (Address == IntPtr.Zero) + { + throw new InvalidOperationException(); + } + + return Address; + } + + public static void Free(IntPtr Address) + { + VirtualFree(Address, IntPtr.Zero, MEM_RELEASE); + } + + public unsafe static long IsRegionModified(IntPtr Address, IntPtr Size, bool Reset) + { + IntPtr[] Addresses = new IntPtr[1]; + + long Count = Addresses.Length; + + long Granularity; + + int Flags = Reset ? WRITE_WATCH_FLAG_RESET : 0; + + GetWriteWatch( + Flags, + Address, + Size, + Addresses, + &Count, + &Granularity); + + return Count != 0 ? Granularity : 0; + } + } +} \ No newline at end of file diff --git a/Ryujinx.Core/Gpu/NvGpu.cs b/Ryujinx.Core/Gpu/NvGpu.cs index 71df76ff31..0fca7b9923 100644 --- a/Ryujinx.Core/Gpu/NvGpu.cs +++ b/Ryujinx.Core/Gpu/NvGpu.cs @@ -3,7 +3,7 @@ using System.Threading; namespace Ryujinx.Core.Gpu { - public class NvGpu + class NvGpu { public IGalRenderer Renderer { get; private set; } diff --git a/Ryujinx.Core/Gpu/NvGpuBufferType.cs b/Ryujinx.Core/Gpu/NvGpuBufferType.cs new file mode 100644 index 0000000000..6c4e7d10be --- /dev/null +++ b/Ryujinx.Core/Gpu/NvGpuBufferType.cs @@ -0,0 +1,9 @@ +namespace Ryujinx.Core.Gpu +{ + enum NvGpuBufferType + { + Index, + Vertex, + Texture + } +} \ No newline at end of file diff --git a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs index 88395b7ab5..c419355e86 100644 --- a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs +++ b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; namespace Ryujinx.Core.Gpu { - public class NvGpuEngine2d : INvGpuEngine + class NvGpuEngine2d : INvGpuEngine { private enum CopyOperation { diff --git a/Ryujinx.Core/Gpu/NvGpuEngine3d.cs b/Ryujinx.Core/Gpu/NvGpuEngine3d.cs index b827debe23..76d21f12c3 100644 --- a/Ryujinx.Core/Gpu/NvGpuEngine3d.cs +++ b/Ryujinx.Core/Gpu/NvGpuEngine3d.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Ryujinx.Core.Gpu { - public class NvGpuEngine3d : INvGpuEngine + class NvGpuEngine3d : INvGpuEngine { public int[] Registers { get; private set; } @@ -261,6 +261,8 @@ namespace Ryujinx.Core.Gpu long TextureAddress = Vmm.ReadInt64(TicPosition + 4) & 0xffffffffffff; + long Tag = TextureAddress; + TextureAddress = Vmm.GetPhysicalAddress(TextureAddress); if (IsFrameBufferPosition(TextureAddress)) @@ -273,10 +275,25 @@ namespace Ryujinx.Core.Gpu } else { - GalTexture Texture = TextureFactory.MakeTexture(Gpu, Vmm, TicPosition); + GalTexture NewTexture = TextureFactory.MakeTexture(Vmm, TicPosition); - Gpu.Renderer.SetTextureAndSampler(TexIndex, Texture, Sampler); - Gpu.Renderer.BindTexture(TexIndex); + long Size = (uint)TextureHelper.GetTextureSize(NewTexture); + + if (Gpu.Renderer.TryGetCachedTexture(Tag, Size, out GalTexture Texture)) + { + if (NewTexture.Equals(Texture) && !Vmm.IsRegionModified(Tag, Size, NvGpuBufferType.Texture)) + { + Gpu.Renderer.BindTexture(Tag, TexIndex); + + return; + } + } + + byte[] Data = TextureFactory.GetTextureData(Vmm, TicPosition); + + Gpu.Renderer.SetTextureAndSampler(Tag, Data, NewTexture, Sampler); + + Gpu.Renderer.BindTexture(Tag, TexIndex); } } @@ -330,11 +347,18 @@ namespace Ryujinx.Core.Gpu if (IndexSize != 0) { - int BufferSize = IndexCount * IndexSize; + int IbSize = IndexCount * IndexSize; - byte[] Data = Vmm.ReadBytes(IndexPosition, BufferSize); + bool IboCached = Gpu.Renderer.IsIboCached(IndexPosition, (uint)IbSize); - Gpu.Renderer.SetIndexArray(Data, IndexFormat); + if (!IboCached || Vmm.IsRegionModified(IndexPosition, (uint)IbSize, NvGpuBufferType.Index)) + { + byte[] Data = Vmm.ReadBytes(IndexPosition, (uint)IbSize); + + Gpu.Renderer.CreateIbo(IndexPosition, Data); + } + + Gpu.Renderer.SetIndexArray(IndexPosition, IbSize, IndexFormat); } List[] Attribs = new List[32]; @@ -359,10 +383,17 @@ namespace Ryujinx.Core.Gpu ((Packed >> 31) & 0x1) != 0)); } + int VertexFirst = ReadRegister(NvGpuEngine3dReg.VertexArrayFirst); + int VertexCount = ReadRegister(NvGpuEngine3dReg.VertexArrayCount); + + int PrimCtrl = ReadRegister(NvGpuEngine3dReg.VertexBeginGl); + for (int Index = 0; Index < 32; Index++) { - int VertexFirst = ReadRegister(NvGpuEngine3dReg.VertexArrayFirst); - int VertexCount = ReadRegister(NvGpuEngine3dReg.VertexArrayCount); + if (Attribs[Index] == null) + { + continue; + } int Control = ReadRegister(NvGpuEngine3dReg.VertexArrayNControl + Index * 4); @@ -378,39 +409,38 @@ namespace Ryujinx.Core.Gpu int Stride = Control & 0xfff; - long Size = 0; + long VbSize = 0; if (IndexCount != 0) { - Size = (VertexEndPos - VertexPosition) + 1; + VbSize = (VertexEndPos - VertexPosition) + 1; } else { - Size = VertexCount; + VbSize = VertexCount * Stride; } - //TODO: Support cases where the Stride is 0. - //In this case, we need to use the size of the attribute. - Size *= Stride; + bool VboCached = Gpu.Renderer.IsVboCached(VertexPosition, VbSize); - byte[] Data = Vmm.ReadBytes(VertexPosition, Size); - - GalVertexAttrib[] AttribArray = Attribs[Index]?.ToArray() ?? new GalVertexAttrib[0]; - - Gpu.Renderer.SetVertexArray(Index, Stride, Data, AttribArray); - - int PrimCtrl = ReadRegister(NvGpuEngine3dReg.VertexBeginGl); - - GalPrimitiveType PrimType = (GalPrimitiveType)(PrimCtrl & 0xffff); - - if (IndexCount != 0) + if (!VboCached || Vmm.IsRegionModified(VertexPosition, VbSize, NvGpuBufferType.Vertex)) { - Gpu.Renderer.DrawElements(Index, IndexFirst, PrimType); - } - else - { - Gpu.Renderer.DrawArrays(Index, VertexFirst, VertexCount, PrimType); + byte[] Data = Vmm.ReadBytes(VertexPosition, VbSize); + + Gpu.Renderer.CreateVbo(VertexPosition, Data); } + + Gpu.Renderer.SetVertexArray(Index, Stride, VertexPosition, Attribs[Index].ToArray()); + } + + GalPrimitiveType PrimType = (GalPrimitiveType)(PrimCtrl & 0xffff); + + if (IndexCount != 0) + { + Gpu.Renderer.DrawElements(IndexPosition, IndexFirst, PrimType); + } + else + { + Gpu.Renderer.DrawArrays(VertexFirst, VertexCount, PrimType); } } diff --git a/Ryujinx.Core/Gpu/NvGpuFifo.cs b/Ryujinx.Core/Gpu/NvGpuFifo.cs index d0e6fc14a0..6a309b1822 100644 --- a/Ryujinx.Core/Gpu/NvGpuFifo.cs +++ b/Ryujinx.Core/Gpu/NvGpuFifo.cs @@ -2,7 +2,7 @@ using System.Collections.Concurrent; namespace Ryujinx.Core.Gpu { - public class NvGpuFifo + class NvGpuFifo { private const int MacrosCount = 0x80; private const int MacroIndexMask = MacrosCount - 1; diff --git a/Ryujinx.Core/Gpu/NvGpuPBEntry.cs b/Ryujinx.Core/Gpu/NvGpuPBEntry.cs index ebf35b9e42..d640656bd6 100644 --- a/Ryujinx.Core/Gpu/NvGpuPBEntry.cs +++ b/Ryujinx.Core/Gpu/NvGpuPBEntry.cs @@ -3,7 +3,7 @@ using System.Collections.ObjectModel; namespace Ryujinx.Core.Gpu { - public struct NvGpuPBEntry + struct NvGpuPBEntry { public int Method { get; private set; } diff --git a/Ryujinx.Core/Gpu/NvGpuPushBuffer.cs b/Ryujinx.Core/Gpu/NvGpuPushBuffer.cs index d55886559e..867bbe9875 100644 --- a/Ryujinx.Core/Gpu/NvGpuPushBuffer.cs +++ b/Ryujinx.Core/Gpu/NvGpuPushBuffer.cs @@ -3,7 +3,7 @@ using System.IO; namespace Ryujinx.Core.Gpu { - public static class NvGpuPushBuffer + static class NvGpuPushBuffer { private enum SubmissionMode { diff --git a/Ryujinx.Core/Gpu/NvGpuVmm.cs b/Ryujinx.Core/Gpu/NvGpuVmm.cs index 09553b8ada..73fc2661a3 100644 --- a/Ryujinx.Core/Gpu/NvGpuVmm.cs +++ b/Ryujinx.Core/Gpu/NvGpuVmm.cs @@ -4,24 +4,24 @@ using System.Collections.Concurrent; namespace Ryujinx.Core.Gpu { - public class NvGpuVmm : IAMemory, IGalMemory + class NvGpuVmm : IAMemory, IGalMemory { public const long AddrSize = 1L << 40; - private const int PTLvl0Bits = 14; - private const int PTLvl1Bits = 14; - private const int PTPageBits = 12; + private const int PTLvl0Bits = 14; + private const int PTLvl1Bits = 14; + private const int PTPageBits = 12; - private const int PTLvl0Size = 1 << PTLvl0Bits; - private const int PTLvl1Size = 1 << PTLvl1Bits; - public const int PageSize = 1 << PTPageBits; + private const int PTLvl0Size = 1 << PTLvl0Bits; + private const int PTLvl1Size = 1 << PTLvl1Bits; + public const int PageSize = 1 << PTPageBits; - private const int PTLvl0Mask = PTLvl0Size - 1; - private const int PTLvl1Mask = PTLvl1Size - 1; - public const int PageMask = PageSize - 1; + private const int PTLvl0Mask = PTLvl0Size - 1; + private const int PTLvl1Mask = PTLvl1Size - 1; + public const int PageMask = PageSize - 1; - private const int PTLvl0Bit = PTPageBits + PTLvl1Bits; - private const int PTLvl1Bit = PTPageBits; + private const int PTLvl0Bit = PTPageBits + PTLvl1Bits; + private const int PTLvl1Bit = PTPageBits; public AMemory Memory { get; private set; } @@ -37,6 +37,8 @@ namespace Ryujinx.Core.Gpu private ConcurrentDictionary Maps; + private NvGpuVmmCache Cache; + private const long PteUnmapped = -1; private const long PteReserved = -2; @@ -48,6 +50,8 @@ namespace Ryujinx.Core.Gpu Maps = new ConcurrentDictionary(); + Cache = new NvGpuVmmCache(); + PageTable = new long[PTLvl0Size][]; } @@ -270,6 +274,13 @@ namespace Ryujinx.Core.Gpu PageTable[L0][L1] = TgtAddr; } + public bool IsRegionModified(long Position, long Size, NvGpuBufferType BufferType) + { + long PA = GetPhysicalAddress(Position); + + return Cache.IsRegionModified(Memory, BufferType, Position, PA, Size); + } + public byte ReadByte(long Position) { Position = GetPhysicalAddress(Position); diff --git a/Ryujinx.Core/Gpu/NvGpuVmmCache.cs b/Ryujinx.Core/Gpu/NvGpuVmmCache.cs new file mode 100644 index 0000000000..753118e953 --- /dev/null +++ b/Ryujinx.Core/Gpu/NvGpuVmmCache.cs @@ -0,0 +1,209 @@ +using ChocolArm64.Memory; +using System; +using System.Collections.Generic; + +namespace Ryujinx.Core.Gpu +{ + class NvGpuVmmCache + { + private const int MaxCpCount = 10000; + private const int MaxCpTimeDelta = 60000; + + private class CachedPage + { + private List<(long Start, long End)> Regions; + + public LinkedListNode Node { get; set; } + + public int Count => Regions.Count; + + public int Timestamp { get; private set; } + + public long PABase { get; private set; } + + public NvGpuBufferType BufferType { get; private set; } + + public CachedPage(long PABase, NvGpuBufferType BufferType) + { + this.PABase = PABase; + this.BufferType = BufferType; + + Regions = new List<(long, long)>(); + } + + public bool AddRange(long Start, long End) + { + for (int Index = 0; Index < Regions.Count; Index++) + { + (long RgStart, long RgEnd) = Regions[Index]; + + if (Start >= RgStart && End <= RgEnd) + { + return false; + } + + if (Start <= RgEnd && RgStart <= End) + { + long MinStart = Math.Min(RgStart, Start); + long MaxEnd = Math.Max(RgEnd, End); + + Regions[Index] = (MinStart, MaxEnd); + + Timestamp = Environment.TickCount; + + return true; + } + } + + Regions.Add((Start, End)); + + Timestamp = Environment.TickCount; + + return true; + } + } + + private Dictionary Cache; + + private LinkedList SortedCache; + + private int CpCount; + + public NvGpuVmmCache() + { + Cache = new Dictionary(); + + SortedCache = new LinkedList(); + } + + public bool IsRegionModified( + AMemory Memory, + NvGpuBufferType BufferType, + long VA, + long PA, + long Size) + { + ClearCachedPagesIfNeeded(); + + long PageSize = Memory.GetHostPageSize(); + + long Mask = PageSize - 1; + + long VAEnd = VA + Size; + long PAEnd = PA + Size; + + bool RegMod = false; + + while (VA < VAEnd) + { + long Key = VA & ~Mask; + long PABase = PA & ~Mask; + + long VAPgEnd = Math.Min((VA + PageSize) & ~Mask, VAEnd); + long PAPgEnd = Math.Min((PA + PageSize) & ~Mask, PAEnd); + + bool IsCached = Cache.TryGetValue(Key, out CachedPage Cp); + + bool PgReset = false; + + if (!IsCached) + { + Cp = new CachedPage(PABase, BufferType); + + Cache.Add(Key, Cp); + } + else + { + CpCount -= Cp.Count; + + SortedCache.Remove(Cp.Node); + + if (Cp.PABase != PABase || + Cp.BufferType != BufferType) + { + PgReset = true; + } + } + + PgReset |= Memory.IsRegionModified(PA, PAPgEnd - PA) && IsCached; + + if (PgReset) + { + Cp = new CachedPage(PABase, BufferType); + + Cache[Key] = Cp; + } + + Cp.Node = SortedCache.AddLast(Key); + + RegMod |= Cp.AddRange(VA, VAPgEnd); + + CpCount += Cp.Count; + + VA = VAPgEnd; + PA = PAPgEnd; + } + + return RegMod; + } + + private void ClearCachedPagesIfNeeded() + { + if (CpCount <= MaxCpCount) + { + return; + } + + int Timestamp = Environment.TickCount; + + int TimeDelta; + + do + { + if (!TryPopOldestCachedPageKey(Timestamp, out long Key)) + { + break; + } + + CachedPage Cp = Cache[Key]; + + Cache.Remove(Key); + + CpCount -= Cp.Count; + + TimeDelta = RingDelta(Cp.Timestamp, Timestamp); + } + while (CpCount > (MaxCpCount >> 1) || (uint)TimeDelta > (uint)MaxCpTimeDelta); + } + + private bool TryPopOldestCachedPageKey(int Timestamp, out long Key) + { + LinkedListNode Node = SortedCache.First; + + if (Node == null) + { + Key = 0; + + return false; + } + + SortedCache.Remove(Node); + + Key = Node.Value; + + return true; + } + + private int RingDelta(int Old, int New) + { + if ((uint)New < (uint)Old) + { + return New + (~Old + 1); + } + else + { + return New - Old; + } + } + } +} \ No newline at end of file diff --git a/Ryujinx.Core/Gpu/Texture.cs b/Ryujinx.Core/Gpu/Texture.cs index 39a35059bc..022df83feb 100644 --- a/Ryujinx.Core/Gpu/Texture.cs +++ b/Ryujinx.Core/Gpu/Texture.cs @@ -2,7 +2,7 @@ using Ryujinx.Graphics.Gal; namespace Ryujinx.Core.Gpu { - public struct Texture + struct Texture { public long Position { get; private set; } diff --git a/Ryujinx.Core/Gpu/TextureFactory.cs b/Ryujinx.Core/Gpu/TextureFactory.cs index 5206c125b8..9262b94780 100644 --- a/Ryujinx.Core/Gpu/TextureFactory.cs +++ b/Ryujinx.Core/Gpu/TextureFactory.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Core.Gpu { static class TextureFactory { - public static GalTexture MakeTexture(NvGpu Gpu, NvGpuVmm Vmm, long TicPosition) + public static GalTexture MakeTexture(NvGpuVmm Vmm, long TicPosition) { int[] Tic = ReadWords(Vmm, TicPosition, 8); @@ -16,6 +16,25 @@ namespace Ryujinx.Core.Gpu GalTextureSource ZSource = (GalTextureSource)((Tic[0] >> 25) & 7); GalTextureSource WSource = (GalTextureSource)((Tic[0] >> 28) & 7); + int Width = (Tic[4] & 0xffff) + 1; + int Height = (Tic[5] & 0xffff) + 1; + + return new GalTexture( + Width, + Height, + Format, + XSource, + YSource, + ZSource, + WSource); + } + + public static byte[] GetTextureData(NvGpuVmm Vmm, long TicPosition) + { + int[] Tic = ReadWords(Vmm, TicPosition, 8); + + GalTextureFormat Format = (GalTextureFormat)(Tic[0] & 0x7f); + long TextureAddress = (uint)Tic[1]; TextureAddress |= (long)((ushort)Tic[2]) << 32; @@ -40,17 +59,7 @@ namespace Ryujinx.Core.Gpu Swizzle, Format); - byte[] Data = TextureReader.Read(Vmm, Texture); - - return new GalTexture( - Data, - Width, - Height, - Format, - XSource, - YSource, - ZSource, - WSource); + return TextureReader.Read(Vmm, Texture); } public static GalTextureSampler MakeSampler(NvGpu Gpu, NvGpuVmm Vmm, long TscPosition) diff --git a/Ryujinx.Core/Gpu/TextureHelper.cs b/Ryujinx.Core/Gpu/TextureHelper.cs index f0ebc1f043..1863bb7770 100644 --- a/Ryujinx.Core/Gpu/TextureHelper.cs +++ b/Ryujinx.Core/Gpu/TextureHelper.cs @@ -1,4 +1,5 @@ using ChocolArm64.Memory; +using Ryujinx.Graphics.Gal; using System; namespace Ryujinx.Core.Gpu @@ -21,6 +22,43 @@ namespace Ryujinx.Core.Gpu throw new NotImplementedException(Texture.Swizzle.ToString()); } + public static int GetTextureSize(GalTexture Texture) + { + switch (Texture.Format) + { + case GalTextureFormat.R32G32B32A32: return Texture.Width * Texture.Height * 16; + case GalTextureFormat.R16G16B16A16: return Texture.Width * Texture.Height * 8; + case GalTextureFormat.A8B8G8R8: return Texture.Width * Texture.Height * 4; + case GalTextureFormat.R32: return Texture.Width * Texture.Height * 4; + case GalTextureFormat.A1B5G5R5: return Texture.Width * Texture.Height * 2; + case GalTextureFormat.B5G6R5: return Texture.Width * Texture.Height * 2; + case GalTextureFormat.G8R8: return Texture.Width * Texture.Height * 2; + case GalTextureFormat.R8: return Texture.Width * Texture.Height; + + case GalTextureFormat.BC1: + case GalTextureFormat.BC4: + { + int W = (Texture.Width + 3) / 4; + int H = (Texture.Height + 3) / 4; + + return W * H * 8; + } + + case GalTextureFormat.BC2: + case GalTextureFormat.BC3: + case GalTextureFormat.BC5: + case GalTextureFormat.Astc2D4x4: + { + int W = (Texture.Width + 3) / 4; + int H = (Texture.Height + 3) / 4; + + return W * H * 16; + } + } + + throw new NotImplementedException(Texture.Format.ToString()); + } + public static (AMemory Memory, long Position) GetMemoryAndPosition( IAMemory Memory, long Position) diff --git a/Ryujinx.Core/Gpu/TextureReader.cs b/Ryujinx.Core/Gpu/TextureReader.cs index ae3b00007f..acd17c5dc0 100644 --- a/Ryujinx.Core/Gpu/TextureReader.cs +++ b/Ryujinx.Core/Gpu/TextureReader.cs @@ -4,7 +4,7 @@ using System; namespace Ryujinx.Core.Gpu { - public static class TextureReader + static class TextureReader { public static byte[] Read(IAMemory Memory, Texture Texture) { diff --git a/Ryujinx.Core/Gpu/TextureSwizzle.cs b/Ryujinx.Core/Gpu/TextureSwizzle.cs index 3214f45f81..fbca40e123 100644 --- a/Ryujinx.Core/Gpu/TextureSwizzle.cs +++ b/Ryujinx.Core/Gpu/TextureSwizzle.cs @@ -1,6 +1,6 @@ namespace Ryujinx.Core.Gpu { - public enum TextureSwizzle + enum TextureSwizzle { _1dBuffer = 0, PitchColorKey = 1, diff --git a/Ryujinx.Core/Gpu/TextureWriter.cs b/Ryujinx.Core/Gpu/TextureWriter.cs index 125bb8c4f5..686d0dce63 100644 --- a/Ryujinx.Core/Gpu/TextureWriter.cs +++ b/Ryujinx.Core/Gpu/TextureWriter.cs @@ -4,7 +4,7 @@ using System; namespace Ryujinx.Core.Gpu { - public static class TextureWriter + static class TextureWriter { public static void Write(IAMemory Memory, Texture Texture, byte[] Data) { diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs index 8aa26dd3f7..b6346f4e87 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs @@ -1,6 +1,7 @@ using ChocolArm64.State; using Ryujinx.Core.Logging; using Ryujinx.Core.OsHle.Handles; +using System; using System.Threading; using static Ryujinx.Core.OsHle.ErrorCode; diff --git a/Ryujinx.Graphics/Gal/GalTexture.cs b/Ryujinx.Graphics/Gal/GalTexture.cs index 75aef30725..2c1be65b21 100644 --- a/Ryujinx.Graphics/Gal/GalTexture.cs +++ b/Ryujinx.Graphics/Gal/GalTexture.cs @@ -2,8 +2,6 @@ namespace Ryujinx.Graphics.Gal { public struct GalTexture { - public byte[] Data; - public int Width; public int Height; @@ -15,7 +13,6 @@ namespace Ryujinx.Graphics.Gal public GalTextureSource WSource; public GalTexture( - byte[] Data, int Width, int Height, GalTextureFormat Format, @@ -24,7 +21,6 @@ namespace Ryujinx.Graphics.Gal GalTextureSource ZSource, GalTextureSource WSource) { - this.Data = Data; this.Width = Width; this.Height = Height; this.Format = Format; diff --git a/Ryujinx.Graphics/Gal/IGalRenderer.cs b/Ryujinx.Graphics/Gal/IGalRenderer.cs index 79c20e0e1b..b8f83469bd 100644 --- a/Ryujinx.Graphics/Gal/IGalRenderer.cs +++ b/Ryujinx.Graphics/Gal/IGalRenderer.cs @@ -49,13 +49,21 @@ namespace Ryujinx.Graphics.Gal //Rasterizer void ClearBuffers(int RtIndex, GalClearBufferFlags Flags); - void SetVertexArray(int VbIndex, int Stride, byte[] Buffer, GalVertexAttrib[] Attribs); + bool IsVboCached(long Tag, long DataSize); - void SetIndexArray(byte[] Buffer, GalIndexFormat Format); + bool IsIboCached(long Tag, long DataSize); - void DrawArrays(int VbIndex, int First, int PrimCount, GalPrimitiveType PrimType); + void CreateVbo(long Tag, byte[] Buffer); - void DrawElements(int VbIndex, int First, GalPrimitiveType PrimType); + void CreateIbo(long Tag, byte[] Buffer); + + void SetVertexArray(int VbIndex, int Stride, long VboTag, GalVertexAttrib[] Attribs); + + void SetIndexArray(long Tag, int Size, GalIndexFormat Format); + + void DrawArrays(int First, int PrimCount, GalPrimitiveType PrimType); + + void DrawElements(long IboTag, int First, GalPrimitiveType PrimType); //Shader void CreateShader(IGalMemory Memory, long Tag, GalShaderType Type); @@ -73,8 +81,10 @@ namespace Ryujinx.Graphics.Gal void BindProgram(); //Texture - void SetTextureAndSampler(int Index, GalTexture Texture, GalTextureSampler Sampler); + void SetTextureAndSampler(long Tag, byte[] Data, GalTexture Texture, GalTextureSampler Sampler); - void BindTexture(int Index); + bool TryGetCachedTexture(long Tag, long DataSize, out GalTexture Texture); + + void BindTexture(long Tag, int Index); } } \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/OpenGL/DeleteValueCallback.cs b/Ryujinx.Graphics/Gal/OpenGL/DeleteValueCallback.cs new file mode 100644 index 0000000000..acd8d72f66 --- /dev/null +++ b/Ryujinx.Graphics/Gal/OpenGL/DeleteValueCallback.cs @@ -0,0 +1,4 @@ +namespace Ryujinx.Graphics.Gal.OpenGL +{ + delegate void DeleteValue(T Value); +} \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLCachedResource.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLCachedResource.cs new file mode 100644 index 0000000000..06d76b8bdd --- /dev/null +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLCachedResource.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; + +namespace Ryujinx.Graphics.Gal.OpenGL +{ + class OGLCachedResource + { + public delegate void DeleteValue(T Value); + + private const int MaxTimeDelta = 5 * 60000; + private const int MaxRemovalsPerRun = 10; + + private struct CacheBucket + { + public T Value { get; private set; } + + public LinkedListNode Node { get; private set; } + + public long DataSize { get; private set; } + + public int Timestamp { get; private set; } + + public CacheBucket(T Value, long DataSize, LinkedListNode Node) + { + this.Value = Value; + this.DataSize = DataSize; + this.Node = Node; + + Timestamp = Environment.TickCount; + } + } + + private Dictionary Cache; + + private LinkedList SortedCache; + + private DeleteValue DeleteValueCallback; + + public OGLCachedResource(DeleteValue DeleteValueCallback) + { + if (DeleteValueCallback == null) + { + throw new ArgumentNullException(nameof(DeleteValueCallback)); + } + + this.DeleteValueCallback = DeleteValueCallback; + + Cache = new Dictionary(); + + SortedCache = new LinkedList(); + } + + public void AddOrUpdate(long Key, T Value, long Size) + { + ClearCacheIfNeeded(); + + LinkedListNode Node = SortedCache.AddLast(Key); + + CacheBucket NewBucket = new CacheBucket(Value, Size, Node); + + if (Cache.TryGetValue(Key, out CacheBucket Bucket)) + { + DeleteValueCallback(Bucket.Value); + + SortedCache.Remove(Bucket.Node); + + Cache[Key] = NewBucket; + } + else + { + Cache.Add(Key, NewBucket); + } + } + + public bool TryGetValue(long Key, out T Value) + { + if (Cache.TryGetValue(Key, out CacheBucket Bucket)) + { + Value = Bucket.Value; + + return true; + } + + Value = default(T); + + return false; + } + + public bool TryGetSize(long Key, out long Size) + { + if (Cache.TryGetValue(Key, out CacheBucket Bucket)) + { + Size = Bucket.DataSize; + + return true; + } + + Size = 0; + + return false; + } + + private void ClearCacheIfNeeded() + { + int Timestamp = Environment.TickCount; + + int Count = 0; + + while (Count++ < MaxRemovalsPerRun) + { + LinkedListNode Node = SortedCache.First; + + if (Node == null) + { + break; + } + + CacheBucket Bucket = Cache[Node.Value]; + + int TimeDelta = RingDelta(Bucket.Timestamp, Timestamp); + + if ((uint)TimeDelta <= (uint)MaxTimeDelta) + { + break; + } + + SortedCache.Remove(Node); + + Cache.Remove(Node.Value); + + DeleteValueCallback(Bucket.Value); + } + } + + private int RingDelta(int Old, int New) + { + if ((uint)New < (uint)Old) + { + return New + (~Old + 1); + } + else + { + return New - Old; + } + } + } +} \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs index 5b115446e7..b63c8b358c 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs @@ -44,24 +44,29 @@ namespace Ryujinx.Graphics.Gal.OpenGL { GalVertexAttribSize._11_11_10, VertexAttribPointerType.Int } //? }; + private int VaoHandle; + + private int[] VertexBuffers; + + private OGLCachedResource VboCache; + private OGLCachedResource IboCache; + private struct IbInfo { - public int IboHandle; public int Count; public DrawElementsType Type; } - private int VaoHandle; - - private int[] VertexBuffers; - private IbInfo IndexBuffer; public OGLRasterizer() { VertexBuffers = new int[32]; + VboCache = new OGLCachedResource(GL.DeleteBuffer); + IboCache = new OGLCachedResource(GL.DeleteBuffer); + IndexBuffer = new IbInfo(); } @@ -92,15 +97,53 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.Clear(Mask); } - public void SetVertexArray(int VbIndex, int Stride, byte[] Buffer, GalVertexAttrib[] Attribs) + public bool IsVboCached(long Tag, long DataSize) { - EnsureVbInitialized(VbIndex); + return VboCache.TryGetSize(Tag, out long Size) && Size == DataSize; + } + + public bool IsIboCached(long Tag, long DataSize) + { + return IboCache.TryGetSize(Tag, out long Size) && Size == DataSize; + } + + public void CreateVbo(long Tag, byte[] Buffer) + { + int Handle = GL.GenBuffer(); + + VboCache.AddOrUpdate(Tag, Handle, (uint)Buffer.Length); IntPtr Length = new IntPtr(Buffer.Length); - GL.BindBuffer(BufferTarget.ArrayBuffer, VertexBuffers[VbIndex]); + GL.BindBuffer(BufferTarget.ArrayBuffer, Handle); GL.BufferData(BufferTarget.ArrayBuffer, Length, Buffer, BufferUsageHint.StreamDraw); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); + } + + public void CreateIbo(long Tag, byte[] Buffer) + { + int Handle = GL.GenBuffer(); + + IboCache.AddOrUpdate(Tag, Handle, (uint)Buffer.Length); + + IntPtr Length = new IntPtr(Buffer.Length); + + GL.BindBuffer(BufferTarget.ElementArrayBuffer, Handle); + GL.BufferData(BufferTarget.ElementArrayBuffer, Length, Buffer, BufferUsageHint.StreamDraw); + GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0); + } + + public void SetVertexArray(int VbIndex, int Stride, long VboTag, GalVertexAttrib[] Attribs) + { + if (!VboCache.TryGetValue(VboTag, out int VboHandle)) + { + return; + } + + if (VaoHandle == 0) + { + VaoHandle = GL.GenVertexArray(); + } GL.BindVertexArray(VaoHandle); @@ -108,7 +151,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL { GL.EnableVertexAttribArray(Attrib.Index); - GL.BindBuffer(BufferTarget.ArrayBuffer, VertexBuffers[VbIndex]); + GL.BindBuffer(BufferTarget.ArrayBuffer, VboHandle); bool Unsigned = Attrib.Type == GalVertexAttribType.Unorm || @@ -139,22 +182,14 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.BindVertexArray(0); } - public void SetIndexArray(byte[] Buffer, GalIndexFormat Format) + public void SetIndexArray(long Tag, int Size, GalIndexFormat Format) { - EnsureIbInitialized(); - IndexBuffer.Type = OGLEnumConverter.GetDrawElementsType(Format); - IndexBuffer.Count = Buffer.Length >> (int)Format; - - IntPtr Length = new IntPtr(Buffer.Length); - - GL.BindBuffer(BufferTarget.ElementArrayBuffer, IndexBuffer.IboHandle); - GL.BufferData(BufferTarget.ElementArrayBuffer, Length, Buffer, BufferUsageHint.StreamDraw); - GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0); + IndexBuffer.Count = Size >> (int)Format; } - public void DrawArrays(int VbIndex, int First, int PrimCount, GalPrimitiveType PrimType) + public void DrawArrays(int First, int PrimCount, GalPrimitiveType PrimType) { if (PrimCount == 0) { @@ -166,36 +201,20 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.DrawArrays(OGLEnumConverter.GetPrimitiveType(PrimType), First, PrimCount); } - public void DrawElements(int VbIndex, int First, GalPrimitiveType PrimType) + public void DrawElements(long IboTag, int First, GalPrimitiveType PrimType) { + if (!IboCache.TryGetValue(IboTag, out int IboHandle)) + { + return; + } + PrimitiveType Mode = OGLEnumConverter.GetPrimitiveType(PrimType); GL.BindVertexArray(VaoHandle); - GL.BindBuffer(BufferTarget.ElementArrayBuffer, IndexBuffer.IboHandle); + GL.BindBuffer(BufferTarget.ElementArrayBuffer, IboHandle); GL.DrawElements(Mode, IndexBuffer.Count, IndexBuffer.Type, First); } - - private void EnsureVbInitialized(int VbIndex) - { - if (VaoHandle == 0) - { - VaoHandle = GL.GenVertexArray(); - } - - if (VertexBuffers[VbIndex] == 0) - { - VertexBuffers[VbIndex] = GL.GenBuffer(); - } - } - - private void EnsureIbInitialized() - { - if (IndexBuffer.IboHandle == 0) - { - IndexBuffer.IboHandle = GL.GenBuffer(); - } - } } } \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs index 2cbe6913d7..540e473592 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs @@ -6,18 +6,38 @@ namespace Ryujinx.Graphics.Gal.OpenGL { class OGLTexture { - private int[] Textures; + private class TCE + { + public int Handle; + + public GalTexture Texture; + + public TCE(int Handle, GalTexture Texture) + { + this.Handle = Handle; + this.Texture = Texture; + } + } + + private OGLCachedResource TextureCache; public OGLTexture() { - Textures = new int[80]; + TextureCache = new OGLCachedResource(DeleteTexture); } - public void Set(int Index, GalTexture Texture) + private static void DeleteTexture(TCE CachedTexture) { - GL.ActiveTexture(TextureUnit.Texture0 + Index); + GL.DeleteTexture(CachedTexture.Handle); + } - Bind(Index); + public void Create(long Tag, byte[] Data, GalTexture Texture) + { + int Handle = GL.GenTexture(); + + TextureCache.AddOrUpdate(Tag, new TCE(Handle, Texture), (uint)Data.Length); + + GL.BindTexture(TextureTarget.Texture2D, Handle); const int Level = 0; //TODO: Support mipmap textures. const int Border = 0; @@ -33,14 +53,24 @@ namespace Ryujinx.Graphics.Gal.OpenGL Texture.Width, Texture.Height, Border, - Texture.Data.Length, - Texture.Data); + Data.Length, + Data); } else { if (Texture.Format >= GalTextureFormat.Astc2D4x4) { - Texture = ConvertAstcTextureToRgba(Texture); + int TextureBlockWidth = GetAstcBlockWidth(Texture.Format); + int TextureBlockHeight = GetAstcBlockHeight(Texture.Format); + + Data = ASTCDecoder.DecodeToRGBA8888( + Data, + TextureBlockWidth, + TextureBlockHeight, 1, + Texture.Width, + Texture.Height, 1); + + Texture.Format = GalTextureFormat.A8B8G8R8; } const PixelInternalFormat InternalFmt = PixelInternalFormat.Rgba; @@ -56,7 +86,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL Border, Format, Type, - Texture.Data); + Data); } int SwizzleR = (int)OGLEnumConverter.GetTextureSwizzle(Texture.XSource); @@ -70,23 +100,6 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureSwizzleA, SwizzleA); } - private static GalTexture ConvertAstcTextureToRgba(GalTexture Texture) - { - int TextureBlockWidth = GetAstcBlockWidth(Texture.Format); - int TextureBlockHeight = GetAstcBlockHeight(Texture.Format); - - Texture.Data = ASTCDecoder.DecodeToRGBA8888( - Texture.Data, - TextureBlockWidth, - TextureBlockHeight, 1, - Texture.Width, - Texture.Height, 1); - - Texture.Format = GalTextureFormat.A8B8G8R8; - - return Texture; - } - private static int GetAstcBlockWidth(GalTextureFormat Format) { switch (Format) @@ -133,11 +146,31 @@ namespace Ryujinx.Graphics.Gal.OpenGL throw new ArgumentException(nameof(Format)); } - public void Bind(int Index) + public bool TryGetCachedTexture(long Tag, long DataSize, out GalTexture Texture) { - int Handle = EnsureTextureInitialized(Index); + if (TextureCache.TryGetSize(Tag, out long Size) && Size == DataSize) + { + if (TextureCache.TryGetValue(Tag, out TCE CachedTexture)) + { + Texture = CachedTexture.Texture; - GL.BindTexture(TextureTarget.Texture2D, Handle); + return true; + } + } + + Texture = default(GalTexture); + + return false; + } + + public void Bind(long Tag, int Index) + { + if (TextureCache.TryGetValue(Tag, out TCE CachedTexture)) + { + GL.ActiveTexture(TextureUnit.Texture0 + Index); + + GL.BindTexture(TextureTarget.Texture2D, CachedTexture.Handle); + } } public static void Set(GalTextureSampler Sampler) @@ -179,17 +212,5 @@ namespace Ryujinx.Graphics.Gal.OpenGL return false; } - - private int EnsureTextureInitialized(int TexIndex) - { - int Handle = Textures[TexIndex]; - - if (Handle == 0) - { - Handle = Textures[TexIndex] = GL.GenTexture(); - } - - return Handle; - } } } \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/OpenGL/OpenGLRenderer.cs b/Ryujinx.Graphics/Gal/OpenGL/OpenGLRenderer.cs index 69e344c74c..4c4bd2caea 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OpenGLRenderer.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OpenGLRenderer.cs @@ -156,46 +156,54 @@ namespace Ryujinx.Graphics.Gal.OpenGL ActionsQueue.Enqueue(() => Rasterizer.ClearBuffers(RtIndex, Flags)); } - public void SetVertexArray(int VbIndex, int Stride, byte[] Buffer, GalVertexAttrib[] Attribs) + public bool IsVboCached(long Tag, long DataSize) + { + return Rasterizer.IsVboCached(Tag, DataSize); + } + + public bool IsIboCached(long Tag, long DataSize) + { + return Rasterizer.IsIboCached(Tag, DataSize); + } + + public void CreateVbo(long Tag, byte[] Buffer) + { + ActionsQueue.Enqueue(() => Rasterizer.CreateVbo(Tag, Buffer)); + } + + public void CreateIbo(long Tag, byte[] Buffer) + { + ActionsQueue.Enqueue(() => Rasterizer.CreateIbo(Tag, Buffer)); + } + + public void SetVertexArray(int VbIndex, int Stride, long VboTag, GalVertexAttrib[] Attribs) { if ((uint)VbIndex > 31) { throw new ArgumentOutOfRangeException(nameof(VbIndex)); } - ActionsQueue.Enqueue(() => Rasterizer.SetVertexArray(VbIndex, Stride, - Buffer ?? throw new ArgumentNullException(nameof(Buffer)), - Attribs ?? throw new ArgumentNullException(nameof(Attribs)))); - } - - public void SetIndexArray(byte[] Buffer, GalIndexFormat Format) - { - if (Buffer == null) + if (Attribs == null) { - throw new ArgumentNullException(nameof(Buffer)); + throw new ArgumentNullException(nameof(Attribs)); } - ActionsQueue.Enqueue(() => Rasterizer.SetIndexArray(Buffer, Format)); + ActionsQueue.Enqueue(() => Rasterizer.SetVertexArray(VbIndex, Stride, VboTag, Attribs)); } - public void DrawArrays(int VbIndex, int First, int PrimCount, GalPrimitiveType PrimType) + public void SetIndexArray(long Tag, int Size, GalIndexFormat Format) { - if ((uint)VbIndex > 31) - { - throw new ArgumentOutOfRangeException(nameof(VbIndex)); - } - - ActionsQueue.Enqueue(() => Rasterizer.DrawArrays(VbIndex, First, PrimCount, PrimType)); + ActionsQueue.Enqueue(() => Rasterizer.SetIndexArray(Tag, Size, Format)); } - public void DrawElements(int VbIndex, int First, GalPrimitiveType PrimType) + public void DrawArrays(int First, int PrimCount, GalPrimitiveType PrimType) { - if ((uint)VbIndex > 31) - { - throw new ArgumentOutOfRangeException(nameof(VbIndex)); - } + ActionsQueue.Enqueue(() => Rasterizer.DrawArrays(First, PrimCount, PrimType)); + } - ActionsQueue.Enqueue(() => Rasterizer.DrawElements(VbIndex, First, PrimType)); + public void DrawElements(long IboTag, int First, GalPrimitiveType PrimType) + { + ActionsQueue.Enqueue(() => Rasterizer.DrawElements(IboTag, First, PrimType)); } public void CreateShader(IGalMemory Memory, long Tag, GalShaderType Type) @@ -253,19 +261,24 @@ namespace Ryujinx.Graphics.Gal.OpenGL ActionsQueue.Enqueue(() => Shader.BindProgram()); } - public void SetTextureAndSampler(int Index, GalTexture Texture, GalTextureSampler Sampler) + public void SetTextureAndSampler(long Tag, byte[] Data, GalTexture Texture, GalTextureSampler Sampler) { ActionsQueue.Enqueue(() => { - this.Texture.Set(Index, Texture); + this.Texture.Create(Tag, Data, Texture); OGLTexture.Set(Sampler); }); } - public void BindTexture(int Index) + public bool TryGetCachedTexture(long Tag, long DataSize, out GalTexture Texture) { - ActionsQueue.Enqueue(() => Texture.Bind(Index)); + return this.Texture.TryGetCachedTexture(Tag, DataSize, out Texture); + } + + public void BindTexture(long Tag, int Index) + { + ActionsQueue.Enqueue(() => Texture.Bind(Tag, Index)); } } } \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/Texture/BCn.cs b/Ryujinx.Graphics/Gal/Texture/BCn.cs deleted file mode 100644 index f23a86c2c6..0000000000 --- a/Ryujinx.Graphics/Gal/Texture/BCn.cs +++ /dev/null @@ -1,468 +0,0 @@ -using System; -using System.Drawing; - -namespace Ryujinx.Graphics.Gal.Texture -{ - static class BCn - { - public static byte[] DecodeBC1(GalTexture Texture, int Offset) - { - int W = (Texture.Width + 3) / 4; - int H = (Texture.Height + 3) / 4; - - byte[] Output = new byte[W * H * 64]; - - SwizzleAddr Swizzle = new SwizzleAddr(W, H, 8); - - for (int Y = 0; Y < H; Y++) - { - for (int X = 0; X < W; X++) - { - int IOffs = Offset + Swizzle.GetSwizzledAddress64(X, Y) * 8; - - byte[] Tile = BCnDecodeTile(Texture.Data, IOffs, true); - - int TOffset = 0; - - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - int OOffset = (X * 4 + TX + (Y * 4 + TY) * W * 4) * 4; - - Output[OOffset + 0] = Tile[TOffset + 0]; - Output[OOffset + 1] = Tile[TOffset + 1]; - Output[OOffset + 2] = Tile[TOffset + 2]; - Output[OOffset + 3] = Tile[TOffset + 3]; - - TOffset += 4; - } - } - } - } - - return Output; - } - - public static byte[] DecodeBC2(GalTexture Texture, int Offset) - { - int W = (Texture.Width + 3) / 4; - int H = (Texture.Height + 3) / 4; - - byte[] Output = new byte[W * H * 64]; - - SwizzleAddr Swizzle = new SwizzleAddr(W, H, 4); - - for (int Y = 0; Y < H; Y++) - { - for (int X = 0; X < W; X++) - { - int IOffs = Offset + Swizzle.GetSwizzledAddress128(X, Y) * 16; - - byte[] Tile = BCnDecodeTile(Texture.Data, IOffs + 8, false); - - int AlphaLow = Get32(Texture.Data, IOffs + 0); - int AlphaHigh = Get32(Texture.Data, IOffs + 4); - - ulong AlphaCh = (uint)AlphaLow | (ulong)AlphaHigh << 32; - - int TOffset = 0; - - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - ulong Alpha = (AlphaCh >> (TY * 16 + TX * 4)) & 0xf; - - int OOffset = (X * 4 + TX + (Y * 4 + TY) * W * 4) * 4; - - Output[OOffset + 0] = Tile[TOffset + 0]; - Output[OOffset + 1] = Tile[TOffset + 1]; - Output[OOffset + 2] = Tile[TOffset + 2]; - Output[OOffset + 3] = (byte)(Alpha | (Alpha << 4)); - - TOffset += 4; - } - } - } - } - - return Output; - } - - public static byte[] DecodeBC3(GalTexture Texture, int Offset) - { - int W = (Texture.Width + 3) / 4; - int H = (Texture.Height + 3) / 4; - - byte[] Output = new byte[W * H * 64]; - - SwizzleAddr Swizzle = new SwizzleAddr(W, H, 4); - - for (int Y = 0; Y < H; Y++) - { - for (int X = 0; X < W; X++) - { - int IOffs = Offset + Swizzle.GetSwizzledAddress128(X, Y) * 16; - - byte[] Tile = BCnDecodeTile(Texture.Data, IOffs + 8, false); - - byte[] Alpha = new byte[8]; - - Alpha[0] = Texture.Data[IOffs + 0]; - Alpha[1] = Texture.Data[IOffs + 1]; - - CalculateBC3Alpha(Alpha); - - int AlphaLow = Get32(Texture.Data, IOffs + 2); - int AlphaHigh = Get16(Texture.Data, IOffs + 6); - - ulong AlphaCh = (uint)AlphaLow | (ulong)AlphaHigh << 32; - - int TOffset = 0; - - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - int OOffset = (X * 4 + TX + (Y * 4 + TY) * W * 4) * 4; - - byte AlphaPx = Alpha[(AlphaCh >> (TY * 12 + TX * 3)) & 7]; - - Output[OOffset + 0] = Tile[TOffset + 0]; - Output[OOffset + 1] = Tile[TOffset + 1]; - Output[OOffset + 2] = Tile[TOffset + 2]; - Output[OOffset + 3] = AlphaPx; - - TOffset += 4; - } - } - } - } - - return Output; - } - - public static byte[] DecodeBC4(GalTexture Texture, int Offset) - { - int W = (Texture.Width + 3) / 4; - int H = (Texture.Height + 3) / 4; - - byte[] Output = new byte[W * H * 64]; - - SwizzleAddr Swizzle = new SwizzleAddr(W, H, 8); - - for (int Y = 0; Y < H; Y++) - { - for (int X = 0; X < W; X++) - { - int IOffs = Swizzle.GetSwizzledAddress64(X, Y) * 8; - - byte[] Red = new byte[8]; - - Red[0] = Texture.Data[IOffs + 0]; - Red[1] = Texture.Data[IOffs + 1]; - - CalculateBC3Alpha(Red); - - int RedLow = Get32(Texture.Data, IOffs + 2); - int RedHigh = Get16(Texture.Data, IOffs + 6); - - ulong RedCh = (uint)RedLow | (ulong)RedHigh << 32; - - int TOffset = 0; - - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - int OOffset = (X * 4 + TX + (Y * 4 + TY) * W * 4) * 4; - - byte RedPx = Red[(RedCh >> (TY * 12 + TX * 3)) & 7]; - - Output[OOffset + 0] = RedPx; - Output[OOffset + 1] = RedPx; - Output[OOffset + 2] = RedPx; - Output[OOffset + 3] = 0xff; - - TOffset += 4; - } - } - } - } - - return Output; - } - - public static byte[] DecodeBC5(GalTexture Texture, int Offset, bool SNorm) - { - int W = (Texture.Width + 3) / 4; - int H = (Texture.Height + 3) / 4; - - byte[] Output = new byte[W * H * 64]; - - SwizzleAddr Swizzle = new SwizzleAddr(W, H, 4); - - for (int Y = 0; Y < H; Y++) - { - for (int X = 0; X < W; X++) - { - int IOffs = Swizzle.GetSwizzledAddress128(X, Y) * 16; - - byte[] Red = new byte[8]; - byte[] Green = new byte[8]; - - Red[0] = Texture.Data[IOffs + 0]; - Red[1] = Texture.Data[IOffs + 1]; - - Green[0] = Texture.Data[IOffs + 8]; - Green[1] = Texture.Data[IOffs + 9]; - - if (SNorm) - { - CalculateBC3AlphaS(Red); - CalculateBC3AlphaS(Green); - } - else - { - CalculateBC3Alpha(Red); - CalculateBC3Alpha(Green); - } - - int RedLow = Get32(Texture.Data, IOffs + 2); - int RedHigh = Get16(Texture.Data, IOffs + 6); - - int GreenLow = Get32(Texture.Data, IOffs + 10); - int GreenHigh = Get16(Texture.Data, IOffs + 14); - - ulong RedCh = (uint)RedLow | (ulong)RedHigh << 32; - ulong GreenCh = (uint)GreenLow | (ulong)GreenHigh << 32; - - int TOffset = 0; - - if (SNorm) - { - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - int Shift = TY * 12 + TX * 3; - - int OOffset = (X * 4 + TX + (Y * 4 + TY) * W * 4) * 4; - - byte RedPx = Red [(RedCh >> Shift) & 7]; - byte GreenPx = Green[(GreenCh >> Shift) & 7]; - - RedPx += 0x80; - GreenPx += 0x80; - - float NX = (RedPx / 255f) * 2 - 1; - float NY = (GreenPx / 255f) * 2 - 1; - - float NZ = (float)Math.Sqrt(1 - (NX * NX + NY * NY)); - - Output[OOffset + 0] = Clamp((NZ + 1) * 0.5f); - Output[OOffset + 1] = Clamp((NY + 1) * 0.5f); - Output[OOffset + 2] = Clamp((NX + 1) * 0.5f); - Output[OOffset + 3] = 0xff; - - TOffset += 4; - } - } - } - else - { - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - int Shift = TY * 12 + TX * 3; - - int OOffset = (X * 4 + TX + (Y * 4 + TY) * W * 4) * 4; - - byte RedPx = Red [(RedCh >> Shift) & 7]; - byte GreenPx = Green[(GreenCh >> Shift) & 7]; - - Output[OOffset + 0] = RedPx; - Output[OOffset + 1] = RedPx; - Output[OOffset + 2] = RedPx; - Output[OOffset + 3] = GreenPx; - - TOffset += 4; - } - } - } - } - } - - return Output; - } - - private static byte Clamp(float Value) - { - if (Value > 1) - { - return 0xff; - } - else if (Value < 0) - { - return 0; - } - else - { - return (byte)(Value * 0xff); - } - } - - private static void CalculateBC3Alpha(byte[] Alpha) - { - for (int i = 2; i < 8; i++) - { - if (Alpha[0] > Alpha[1]) - { - Alpha[i] = (byte)(((8 - i) * Alpha[0] + (i - 1) * Alpha[1]) / 7); - } - else if (i < 6) - { - Alpha[i] = (byte)(((6 - i) * Alpha[0] + (i - 1) * Alpha[1]) / 7); - } - else if (i == 6) - { - Alpha[i] = 0; - } - else /* i == 7 */ - { - Alpha[i] = 0xff; - } - } - } - - private static void CalculateBC3AlphaS(byte[] Alpha) - { - for (int i = 2; i < 8; i++) - { - if ((sbyte)Alpha[0] > (sbyte)Alpha[1]) - { - Alpha[i] = (byte)(((8 - i) * (sbyte)Alpha[0] + (i - 1) * (sbyte)Alpha[1]) / 7); - } - else if (i < 6) - { - Alpha[i] = (byte)(((6 - i) * (sbyte)Alpha[0] + (i - 1) * (sbyte)Alpha[1]) / 7); - } - else if (i == 6) - { - Alpha[i] = 0x80; - } - else /* i == 7 */ - { - Alpha[i] = 0x7f; - } - } - } - - private static byte[] BCnDecodeTile( - byte[] Input, - int Offset, - bool IsBC1) - { - Color[] CLUT = new Color[4]; - - int c0 = Get16(Input, Offset + 0); - int c1 = Get16(Input, Offset + 2); - - CLUT[0] = DecodeRGB565(c0); - CLUT[1] = DecodeRGB565(c1); - CLUT[2] = CalculateCLUT2(CLUT[0], CLUT[1], c0, c1, IsBC1); - CLUT[3] = CalculateCLUT3(CLUT[0], CLUT[1], c0, c1, IsBC1); - - int Indices = Get32(Input, Offset + 4); - - int IdxShift = 0; - - byte[] Output = new byte[4 * 4 * 4]; - - int OOffset = 0; - - for (int TY = 0; TY < 4; TY++) - { - for (int TX = 0; TX < 4; TX++) - { - int Idx = (Indices >> IdxShift) & 3; - - IdxShift += 2; - - Color Pixel = CLUT[Idx]; - - Output[OOffset + 0] = Pixel.R; - Output[OOffset + 1] = Pixel.G; - Output[OOffset + 2] = Pixel.B; - Output[OOffset + 3] = Pixel.A; - - OOffset += 4; - } - } - - return Output; - } - - private static Color CalculateCLUT2(Color C0, Color C1, int c0, int c1, bool IsBC1) - { - if (c0 > c1 || !IsBC1) - { - return Color.FromArgb( - (2 * C0.R + C1.R) / 3, - (2 * C0.G + C1.G) / 3, - (2 * C0.B + C1.B) / 3); - } - else - { - return Color.FromArgb( - (C0.R + C1.R) / 2, - (C0.G + C1.G) / 2, - (C0.B + C1.B) / 2); - } - } - - private static Color CalculateCLUT3(Color C0, Color C1, int c0, int c1, bool IsBC1) - { - if (c0 > c1 || !IsBC1) - { - return - Color.FromArgb( - (2 * C1.R + C0.R) / 3, - (2 * C1.G + C0.G) / 3, - (2 * C1.B + C0.B) / 3); - } - - return Color.Transparent; - } - - private static Color DecodeRGB565(int Value) - { - int B = ((Value >> 0) & 0x1f) << 3; - int G = ((Value >> 5) & 0x3f) << 2; - int R = ((Value >> 11) & 0x1f) << 3; - - return Color.FromArgb( - R | (R >> 5), - G | (G >> 6), - B | (B >> 5)); - } - - private static int Get16(byte[] Data, int Address) - { - return - Data[Address + 0] << 0 | - Data[Address + 1] << 8; - } - - private static int Get32(byte[] Data, int Address) - { - return - Data[Address + 0] << 0 | - Data[Address + 1] << 8 | - Data[Address + 2] << 16 | - Data[Address + 3] << 24; - } - } -} \ No newline at end of file diff --git a/Ryujinx.Graphics/Gal/Texture/SwizzleAddr.cs b/Ryujinx.Graphics/Gal/Texture/SwizzleAddr.cs deleted file mode 100644 index b67b841bcc..0000000000 --- a/Ryujinx.Graphics/Gal/Texture/SwizzleAddr.cs +++ /dev/null @@ -1,144 +0,0 @@ -using System; - -namespace Ryujinx.Graphics.Gal.Texture -{ - class SwizzleAddr - { - private int Width; - - private int XB; - private int YB; - - public SwizzleAddr(int Width, int Height, int Pad) - { - int W = Pow2RoundUp(Width); - int H = Pow2RoundUp(Height); - - XB = CountZeros(W); - YB = CountZeros(H); - - int HH = H >> 1; - - if (!IsPow2(Height) && Height <= HH + HH / 3 && YB > 3) - { - YB--; - } - - this.Width = RoundSize(Width, Pad); - } - - private static int Pow2RoundUp(int Value) - { - Value--; - - Value |= (Value >> 1); - Value |= (Value >> 2); - Value |= (Value >> 4); - Value |= (Value >> 8); - Value |= (Value >> 16); - - return ++Value; - } - - private static bool IsPow2(int Value) - { - return Value != 0 && (Value & (Value - 1)) == 0; - } - - private static int CountZeros(int Value) - { - int Count = 0; - - for (int i = 0; i < 32; i++) - { - if ((Value & (1 << i)) != 0) - { - break; - } - - Count++; - } - - return Count; - } - - private static int RoundSize(int Size, int Pad) - { - int Mask = Pad - 1; - - if ((Size & Mask) != 0) - { - Size &= ~Mask; - Size += Pad; - } - - return Size; - } - - public int GetSwizzledAddress8(int X, int Y) - { - return GetSwizzledAddress(X, Y, 4); - } - - public int GetSwizzledAddress16(int X, int Y) - { - return GetSwizzledAddress(X, Y, 3); - } - - public int GetSwizzledAddress32(int X, int Y) - { - return GetSwizzledAddress(X, Y, 2); - } - - public int GetSwizzledAddress64(int X, int Y) - { - return GetSwizzledAddress(X, Y, 1); - } - - public int GetSwizzledAddress128(int X, int Y) - { - return GetSwizzledAddress(X, Y, 0); - } - - private int GetSwizzledAddress(int X, int Y, int XBase) - { - /* - * Examples of patterns: - * x x y x y y x y 0 0 0 0 64 x 64 dxt5 - * x x x x x y y y y x y y x y 0 0 0 0 512 x 512 dxt5 - * y x x x x x x y y y y x y y x y 0 0 0 0 1024 x 1024 dxt5 - * y y x x x x x x y y y y x y y x y x 0 0 0 2048 x 2048 dxt1 - * y y y x x x x x x y y y y x y y x y x x 0 0 1024 x 1024 rgba8888 - * - * Read from right to left, LSB first. - */ - int XCnt = XBase; - int YCnt = 1; - int XUsed = 0; - int YUsed = 0; - int Address = 0; - - while (XUsed < XBase + 2 && XUsed + XCnt < XB) - { - int XMask = (1 << XCnt) - 1; - int YMask = (1 << YCnt) - 1; - - Address |= (X & XMask) << XUsed + YUsed; - Address |= (Y & YMask) << XUsed + YUsed + XCnt; - - X >>= XCnt; - Y >>= YCnt; - - XUsed += XCnt; - YUsed += YCnt; - - XCnt = Math.Min(XB - XUsed, 1); - YCnt = Math.Min(YB - YUsed, YCnt << 1); - } - - Address |= (X + Y * (Width >> XUsed)) << (XUsed + YUsed); - - return Address; - } - } -} diff --git a/Ryujinx.Graphics/Gal/Texture/TextureDecoder.cs b/Ryujinx.Graphics/Gal/Texture/TextureDecoder.cs deleted file mode 100644 index 4e50db51dd..0000000000 --- a/Ryujinx.Graphics/Gal/Texture/TextureDecoder.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; - -namespace Ryujinx.Graphics.Gal.Texture -{ - static class TextureDecoder - { - public static byte[] Decode(GalTexture Texture) - { - switch (Texture.Format) - { - case GalTextureFormat.BC1: return BCn.DecodeBC1(Texture, 0); - case GalTextureFormat.BC2: return BCn.DecodeBC2(Texture, 0); - case GalTextureFormat.BC3: return BCn.DecodeBC3(Texture, 0); - } - - throw new NotImplementedException(Texture.Format.ToString()); - } - } -} \ No newline at end of file From 9136897d4a0aabed7e12f9756bc9a50e4bdbea72 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 8 Jun 2018 23:49:53 -0300 Subject: [PATCH 04/15] Do not inline the scalar vector load methods as a workaround to a .net JIT bug --- ChocolArm64/Memory/AMemory.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index 7e9a358aba..7af288a602 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -387,12 +387,14 @@ namespace ChocolArm64.Memory } } - [MethodImpl(MethodImplOptions.AggressiveInlining)] + [MethodImpl(MethodImplOptions.NoInlining)] public Vector128 ReadVector32Unchecked(long Position) { if (Sse.IsSupported) { - return Sse.LoadScalarVector128((float*)(RamPtr + (uint)Position)); + byte* Address = RamPtr + (uint)Position; + + return Sse.LoadScalarVector128((float*)Address); } else { @@ -400,7 +402,7 @@ namespace ChocolArm64.Memory } } - [MethodImpl(MethodImplOptions.AggressiveInlining)] + [MethodImpl(MethodImplOptions.NoInlining)] public Vector128 ReadVector64Unchecked(long Position) { if (Sse2.IsSupported) @@ -418,7 +420,9 @@ namespace ChocolArm64.Memory { if (Sse.IsSupported) { - return Sse.LoadVector128((float*)(RamPtr + (uint)Position)); + byte* Address = RamPtr + (uint)Position; + + return Sse.LoadVector128((float*)Address); } else { @@ -620,7 +624,7 @@ namespace ChocolArm64.Memory } } - [MethodImpl(MethodImplOptions.AggressiveInlining)] + [MethodImpl(MethodImplOptions.NoInlining)] public void WriteVector32Unchecked(long Position, Vector128 Value) { if (Sse.IsSupported) @@ -633,7 +637,7 @@ namespace ChocolArm64.Memory } } - [MethodImpl(MethodImplOptions.AggressiveInlining)] + [MethodImpl(MethodImplOptions.NoInlining)] public void WriteVector64Unchecked(long Position, Vector128 Value) { if (Sse2.IsSupported) From 78223484394db924d02383310d8bace8a01fa152 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 8 Jun 2018 23:54:50 -0300 Subject: [PATCH 05/15] Small cleanup in AMemory and removed some unused usings --- ChocolArm64/Memory/AMemory.cs | 28 +++++++++++-------- Ryujinx.Core/OsHle/Kernel/SvcThread.cs | 1 - .../OsHle/Services/Am/IStorageAccessor.cs | 1 - Ryujinx.Core/OsHle/Services/Lm/ILogger.cs | 1 - .../OsHle/Services/Vi/IHOSBinderDriver.cs | 1 - 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index 7af288a602..2adf540323 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -355,11 +355,18 @@ namespace ChocolArm64.Memory public byte[] ReadBytes(long Position, long Size) { + if ((uint)Size > int.MaxValue) + { + throw new ArgumentOutOfRangeException(nameof(Size)); + } + EnsureRangeIsValid(Position, Size, AMemoryPerm.Read); - byte[] Result = new byte[Size]; - Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Result, 0, (int)Size); - return Result; + byte[] Data = new byte[Size]; + + Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Data, 0, (int)Size); + + return Data; } public Vector128 ReadVector8Unchecked(long Position) @@ -392,9 +399,7 @@ namespace ChocolArm64.Memory { if (Sse.IsSupported) { - byte* Address = RamPtr + (uint)Position; - - return Sse.LoadScalarVector128((float*)Address); + return Sse.LoadScalarVector128((float*)(RamPtr + (uint)Position)); } else { @@ -420,9 +425,7 @@ namespace ChocolArm64.Memory { if (Sse.IsSupported) { - byte* Address = RamPtr + (uint)Position; - - return Sse.LoadVector128((float*)Address); + return Sse.LoadVector128((float*)(RamPtr + (uint)Position)); } else { @@ -678,11 +681,12 @@ namespace ChocolArm64.Memory private void EnsureRangeIsValid(long Position, long Size, AMemoryPerm Perm) { - long EndPos = (Position + Size); - Position = Position & ~AMemoryMgr.PageMask; //check base of each page - while (Position < EndPos) + long EndPos = Position + Size; + + while ((ulong)Position < (ulong)EndPos) { EnsureAccessIsValid(Position, Perm); + Position += AMemoryMgr.PageSize; } } diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs index b6346f4e87..8aa26dd3f7 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs @@ -1,7 +1,6 @@ using ChocolArm64.State; using Ryujinx.Core.Logging; using Ryujinx.Core.OsHle.Handles; -using System; using System.Threading; using static Ryujinx.Core.OsHle.ErrorCode; diff --git a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs index 4cd1f99b83..ff00f33065 100644 --- a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs +++ b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs @@ -1,5 +1,4 @@ using ChocolArm64.Memory; -using Ryujinx.Core.Logging; using Ryujinx.Core.OsHle.Ipc; using System; using System.Collections.Generic; diff --git a/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs b/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs index 5109010589..41f3710bad 100644 --- a/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs +++ b/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.Logging; using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; diff --git a/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs b/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs index 41c3970e75..23746613b9 100644 --- a/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs +++ b/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Handles; using Ryujinx.Core.OsHle.Ipc; using Ryujinx.Core.OsHle.Services.Android; From 91420a402c9e786ddef2811bb671003dd0a40565 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 9 Jun 2018 00:46:06 -0300 Subject: [PATCH 06/15] Use source texture size when doing reads for texure copy --- Ryujinx.Core/Gpu/NvGpuEngine2d.cs | 28 ++++++++++++++++++++++++---- Ryujinx.Core/Gpu/TextureWriter.cs | 19 +++++++++++++------ 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs index c419355e86..fd19bc54f0 100644 --- a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs +++ b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs @@ -98,9 +98,19 @@ namespace Ryujinx.Core.Gpu if (IsFbTexture) { + //TODO: Change this when the correct frame buffer resolution is used. + //Currently, the frame buffer size is hardcoded to 1280x720. + SrcWidth = 1280; + SrcHeight = 720; + Gpu.Renderer.GetFrameBufferData(Tag, (byte[] Buffer) => { - CopyTexture(Vmm, DstTexture, Buffer); + CopyTexture( + Vmm, + DstTexture, + Buffer, + SrcWidth, + SrcHeight); }); } else @@ -109,13 +119,23 @@ namespace Ryujinx.Core.Gpu byte[] Buffer = Vmm.ReadBytes(SrcAddress, Size); - CopyTexture(Vmm, DstTexture, Buffer); + CopyTexture( + Vmm, + DstTexture, + Buffer, + SrcWidth, + SrcHeight); } } - private void CopyTexture(NvGpuVmm Vmm, Texture Texture, byte[] Buffer) + private void CopyTexture( + NvGpuVmm Vmm, + Texture Texture, + byte[] Buffer, + int Width, + int Height) { - TextureWriter.Write(Vmm, Texture, Buffer); + TextureWriter.Write(Vmm, Texture, Buffer, Width, Height); } private long MakeInt64From2xInt32(NvGpuEngine2dReg Reg) diff --git a/Ryujinx.Core/Gpu/TextureWriter.cs b/Ryujinx.Core/Gpu/TextureWriter.cs index 686d0dce63..5633614fb9 100644 --- a/Ryujinx.Core/Gpu/TextureWriter.cs +++ b/Ryujinx.Core/Gpu/TextureWriter.cs @@ -6,21 +6,28 @@ namespace Ryujinx.Core.Gpu { static class TextureWriter { - public static void Write(IAMemory Memory, Texture Texture, byte[] Data) + public static void Write( + IAMemory Memory, + Texture Texture, + byte[] Data, + int Width, + int Height) { switch (Texture.Format) { - case GalTextureFormat.A8B8G8R8: Write4Bpp(Memory, Texture, Data); break; + case GalTextureFormat.A8B8G8R8: Write4Bpp(Memory, Texture, Data, Width, Height); break; default: throw new NotImplementedException(Texture.Format.ToString()); } } - private unsafe static void Write4Bpp(IAMemory Memory, Texture Texture, byte[] Data) + private unsafe static void Write4Bpp( + IAMemory Memory, + Texture Texture, + byte[] Data, + int Width, + int Height) { - int Width = Texture.Width; - int Height = Texture.Height; - ISwizzle Swizzle = TextureHelper.GetSwizzle(Texture, Width, 4); (AMemory CpuMem, long Position) = TextureHelper.GetMemoryAndPosition( From 7f5a8effbb0bbf7e972dbbfb6792cdea48455739 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 9 Jun 2018 13:05:41 -0300 Subject: [PATCH 07/15] Move WriteBytes to AMemory, implement it with a Marshal copy like ReadBytes, fix regression on address range checking --- ChocolArm64/Memory/AMemory.cs | 65 +++++++++++-------- ChocolArm64/Memory/AMemoryHelper.cs | 8 --- Ryujinx.Core/Gpu/NvGpuVmm.cs | 2 +- Ryujinx.Core/Loaders/Executable.cs | 2 +- Ryujinx.Core/OsHle/Ipc/IpcHandler.cs | 2 +- .../OsHle/Services/Am/IStorageAccessor.cs | 3 +- .../OsHle/Services/Aud/IAudioDevice.cs | 9 ++- .../OsHle/Services/Aud/IAudioOutManager.cs | 4 +- Ryujinx.Core/OsHle/Services/Bsd/IClient.cs | 5 +- .../OsHle/Services/FspSrv/IDirectory.cs | 3 +- Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs | 3 +- .../OsHle/Services/FspSrv/IStorage.cs | 3 +- .../Services/Set/ISystemSettingsServer.cs | 32 ++++----- .../Services/Vi/IApplicationDisplayService.cs | 5 +- Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs | 4 +- 15 files changed, 73 insertions(+), 77 deletions(-) diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index 2adf540323..fe250d4b91 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -353,22 +353,6 @@ namespace ChocolArm64.Memory return *((ulong*)(RamPtr + (uint)Position)); } - public byte[] ReadBytes(long Position, long Size) - { - if ((uint)Size > int.MaxValue) - { - throw new ArgumentOutOfRangeException(nameof(Size)); - } - - EnsureRangeIsValid(Position, Size, AMemoryPerm.Read); - - byte[] Data = new byte[Size]; - - Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Data, 0, (int)Size); - - return Data; - } - public Vector128 ReadVector8Unchecked(long Position) { if (Sse2.IsSupported) @@ -433,6 +417,22 @@ namespace ChocolArm64.Memory } } + public byte[] ReadBytes(long Position, long Size) + { + if ((uint)Size > int.MaxValue) + { + throw new ArgumentOutOfRangeException(nameof(Size)); + } + + EnsureRangeIsValid(Position, Size, AMemoryPerm.Read); + + byte[] Data = new byte[Size]; + + Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Data, 0, (int)Size); + + return Data; + } + public void WriteSByte(long Position, sbyte Value) { WriteByte(Position, (byte)Value); @@ -666,6 +666,27 @@ namespace ChocolArm64.Memory } } + public void WriteBytes(long Position, byte[] Data) + { + EnsureRangeIsValid(Position, (uint)Data.Length, AMemoryPerm.Write); + + Marshal.Copy(Data, 0, (IntPtr)(RamPtr + (uint)Position), Data.Length); + } + + private void EnsureRangeIsValid(long Position, long Size, AMemoryPerm Perm) + { + long EndPos = Position + Size; + + Position &= ~AMemoryMgr.PageMask; + + while ((ulong)Position < (ulong)EndPos) + { + EnsureAccessIsValid(Position, Perm); + + Position += AMemoryMgr.PageSize; + } + } + private void EnsureAccessIsValid(long Position, AMemoryPerm Perm) { if (!Manager.IsMapped(Position)) @@ -679,18 +700,6 @@ namespace ChocolArm64.Memory } } - private void EnsureRangeIsValid(long Position, long Size, AMemoryPerm Perm) - { - long EndPos = Position + Size; - - while ((ulong)Position < (ulong)EndPos) - { - EnsureAccessIsValid(Position, Perm); - - Position += AMemoryMgr.PageSize; - } - } - public void Dispose() { Dispose(true); diff --git a/ChocolArm64/Memory/AMemoryHelper.cs b/ChocolArm64/Memory/AMemoryHelper.cs index c0ade89ce0..0a23a2f89d 100644 --- a/ChocolArm64/Memory/AMemoryHelper.cs +++ b/ChocolArm64/Memory/AMemoryHelper.cs @@ -22,14 +22,6 @@ namespace ChocolArm64.Memory } } - public static void WriteBytes(AMemory Memory, long Position, byte[] Data) - { - for (int Offs = 0; Offs < Data.Length; Offs++) - { - Memory.WriteByte(Position + Offs, Data[Offs]); - } - } - public unsafe static T Read(AMemory Memory, long Position) where T : struct { long Size = Marshal.SizeOf(); diff --git a/Ryujinx.Core/Gpu/NvGpuVmm.cs b/Ryujinx.Core/Gpu/NvGpuVmm.cs index 73fc2661a3..98b624d81e 100644 --- a/Ryujinx.Core/Gpu/NvGpuVmm.cs +++ b/Ryujinx.Core/Gpu/NvGpuVmm.cs @@ -404,7 +404,7 @@ namespace Ryujinx.Core.Gpu { Position = GetPhysicalAddress(Position); - AMemoryHelper.WriteBytes(Memory, Position, Data); + Memory.WriteBytes(Position, Data); } } } \ No newline at end of file diff --git a/Ryujinx.Core/Loaders/Executable.cs b/Ryujinx.Core/Loaders/Executable.cs index ab7e1979db..213679a535 100644 --- a/Ryujinx.Core/Loaders/Executable.cs +++ b/Ryujinx.Core/Loaders/Executable.cs @@ -102,7 +102,7 @@ namespace Ryujinx.Core.Loaders { Memory.Manager.Map(Position, Data.Length, (int)Type, AMemoryPerm.Write); - AMemoryHelper.WriteBytes(Memory, Position, Data); + Memory.WriteBytes(Position, Data); Memory.Manager.Reprotect(Position, Data.Length, Perm); } diff --git a/Ryujinx.Core/OsHle/Ipc/IpcHandler.cs b/Ryujinx.Core/OsHle/Ipc/IpcHandler.cs index 420890ebba..7e9fb1c158 100644 --- a/Ryujinx.Core/OsHle/Ipc/IpcHandler.cs +++ b/Ryujinx.Core/OsHle/Ipc/IpcHandler.cs @@ -92,7 +92,7 @@ namespace Ryujinx.Core.OsHle.Ipc throw new NotImplementedException(Request.Type.ToString()); } - AMemoryHelper.WriteBytes(Memory, CmdPtr, Response.GetBytes(CmdPtr)); + Memory.WriteBytes(CmdPtr, Response.GetBytes(CmdPtr)); } return 0; diff --git a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs index ff00f33065..4a75c0aab3 100644 --- a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs +++ b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using System; using System.Collections.Generic; @@ -76,7 +75,7 @@ namespace Ryujinx.Core.OsHle.Services.Am Data = Storage.Data; } - AMemoryHelper.WriteBytes(Context.Memory, Position, Data); + Context.Memory.WriteBytes(Position, Data); return 0; } diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs index 73916f709c..fccc0647ad 100644 --- a/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs +++ b/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.Logging; using Ryujinx.Core.OsHle.Handles; using Ryujinx.Core.OsHle.Ipc; @@ -60,7 +59,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud break; } - AMemoryHelper.WriteBytes(Context.Memory, Position, Buffer); + Context.Memory.WriteBytes(Position, Buffer); Position += Buffer.Length; } @@ -95,7 +94,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud if ((ulong)DeviceNameBuffer.Length <= (ulong)Size) { - AMemoryHelper.WriteBytes(Context.Memory, Position, DeviceNameBuffer); + Context.Memory.WriteBytes(Position, DeviceNameBuffer); } else { @@ -146,7 +145,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud break; } - AMemoryHelper.WriteBytes(Context.Memory, Position, Buffer); + Context.Memory.WriteBytes(Position, Buffer); Position += Buffer.Length; } @@ -188,7 +187,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud if ((ulong)DeviceNameBuffer.Length <= (ulong)Size) { - AMemoryHelper.WriteBytes(Context.Memory, Position, DeviceNameBuffer); + Context.Memory.WriteBytes(Position, DeviceNameBuffer); } else { diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs index d9484a9585..82e547ae50 100644 --- a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs +++ b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs @@ -36,7 +36,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud if ((ulong)DeviceNameBuffer.Length <= (ulong)Size) { - AMemoryHelper.WriteBytes(Context.Memory, Position, DeviceNameBuffer); + Context.Memory.WriteBytes(Position, DeviceNameBuffer); NameCount++; } @@ -71,7 +71,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud if ((ulong)DeviceNameBuffer.Length <= (ulong)Size) { - AMemoryHelper.WriteBytes(Context.Memory, Position, DeviceNameBuffer); + Context.Memory.WriteBytes(Position, DeviceNameBuffer); } else { diff --git a/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs b/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs index 0c0eeb5a3d..fe46d68101 100644 --- a/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs +++ b/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using Ryujinx.Core.OsHle.Utilities; using System.Collections.Generic; @@ -131,7 +130,7 @@ namespace Ryujinx.Core.OsHle.Services.Bsd //Logging.Debug("Received Buffer:" + Environment.NewLine + Logging.HexDump(ReceivedBuffer)); - AMemoryHelper.WriteBytes(Context.Memory, Context.Request.ReceiveBuff[0].Position, ReceivedBuffer); + Context.Memory.WriteBytes(Context.Request.ReceiveBuff[0].Position, ReceivedBuffer); Context.ResponseData.Write(BytesRead); Context.ResponseData.Write(0); @@ -266,7 +265,7 @@ namespace Ryujinx.Core.OsHle.Services.Bsd Writer.Write(IpAddress); - AMemoryHelper.WriteBytes(Context.Memory, AddrBufferPtr, MS.ToArray()); + Context.Memory.WriteBytes(AddrBufferPtr, MS.ToArray()); Context.ResponseData.Write(Sockets.Count - 1); Context.ResponseData.Write(0); diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs index fab8c676d6..a5f18b4325 100644 --- a/Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs +++ b/Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using System; using System.Collections.Generic; @@ -78,7 +77,7 @@ namespace Ryujinx.Core.OsHle.Services.FspSrv byte[] NameBuffer = Encoding.UTF8.GetBytes(Path.GetFileName(FullPath)); - AMemoryHelper.WriteBytes(Context.Memory, Position, NameBuffer); + Context.Memory.WriteBytes(Position, NameBuffer); int Type = 0; long Size = 0; diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs index 0dd4538555..bfd4b37698 100644 --- a/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs +++ b/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using System; using System.Collections.Generic; @@ -47,7 +46,7 @@ namespace Ryujinx.Core.OsHle.Services.FspSrv int ReadSize = BaseStream.Read(Data, 0, (int)Size); - AMemoryHelper.WriteBytes(Context.Memory, Position, Data); + Context.Memory.WriteBytes(Position, Data); Context.ResponseData.Write((long)ReadSize); diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs index 05181c649b..7fd423e8b6 100644 --- a/Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs +++ b/Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; using System.IO; @@ -43,7 +42,7 @@ namespace Ryujinx.Core.OsHle.Services.FspSrv BaseStream.Seek(Offset, SeekOrigin.Begin); BaseStream.Read(Data, 0, Data.Length); - AMemoryHelper.WriteBytes(Context.Memory, BuffDesc.Position, Data); + Context.Memory.WriteBytes(BuffDesc.Position, Data); } return 0; diff --git a/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs b/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs index 8209429130..1b6419fb1b 100644 --- a/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs +++ b/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using Ryujinx.Core.Settings; using System; @@ -30,17 +29,17 @@ namespace Ryujinx.Core.OsHle.Services.Set long ReplyPos = Context.Request.RecvListBuff[0].Position; long ReplySize = Context.Request.RecvListBuff[0].Size; - byte MajorFWVersion = 0x03; - byte MinorFWVersion = 0x00; - byte MicroFWVersion = 0x00; - byte Unknown = 0x00; //Build? + const byte MajorFWVersion = 0x03; + const byte MinorFWVersion = 0x00; + const byte MicroFWVersion = 0x00; + const byte Unknown = 0x00; //Build? - int RevisionNumber = 0x0A; + const int RevisionNumber = 0x0A; - string Platform = "NX"; - string UnknownHex = "7fbde2b0bba4d14107bf836e4643043d9f6c8e47"; - string Version = "3.0.0"; - string Build = "NintendoSDK Firmware for NX 3.0.0-10.0"; + const string Platform = "NX"; + const string UnknownHex = "7fbde2b0bba4d14107bf836e4643043d9f6c8e47"; + const string Version = "3.0.0"; + const string Build = "NintendoSDK Firmware for NX 3.0.0-10.0"; //http://switchbrew.org/index.php?title=System_Version_Title using (MemoryStream MS = new MemoryStream(0x100)) @@ -57,15 +56,18 @@ namespace Ryujinx.Core.OsHle.Services.Set Writer.Write(Encoding.ASCII.GetBytes(Platform)); MS.Seek(0x28, SeekOrigin.Begin); + Writer.Write(Encoding.ASCII.GetBytes(UnknownHex)); MS.Seek(0x68, SeekOrigin.Begin); + Writer.Write(Encoding.ASCII.GetBytes(Version)); MS.Seek(0x80, SeekOrigin.Begin); + Writer.Write(Encoding.ASCII.GetBytes(Build)); - AMemoryHelper.WriteBytes(Context.Memory, ReplyPos, MS.ToArray()); + Context.Memory.WriteBytes(ReplyPos, MS.ToArray()); } return 0; @@ -85,7 +87,7 @@ namespace Ryujinx.Core.OsHle.Services.Set Context.Ns.Settings.ThemeColor = (ColorSet)ColorSetId; return 0; } - + public static long GetSettingsItemValue(ServiceCtx Context) { long ClassPos = Context.Request.PtrBuff[0].Position; @@ -111,11 +113,11 @@ namespace Ryujinx.Core.OsHle.Services.Set if (NxSetting is string StringValue) { if (StringValue.Length + 1 > ReplySize) - { + { Context.Ns.Log.PrintError(Logging.LogClass.ServiceSet, $"{AskedSetting} String value size is too big!"); } else - { + { SettingBuffer = Encoding.ASCII.GetBytes(StringValue + "\0"); } } @@ -132,7 +134,7 @@ namespace Ryujinx.Core.OsHle.Services.Set throw new NotImplementedException(NxSetting.GetType().Name); } - AMemoryHelper.WriteBytes(Context.Memory, ReplyPos, SettingBuffer); + Context.Memory.WriteBytes(ReplyPos, SettingBuffer); Context.Ns.Log.PrintDebug(Logging.LogClass.ServiceSet, $"{AskedSetting} set value: {NxSetting} as {NxSetting.GetType()}"); } diff --git a/Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs b/Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs index 84c869d59b..84f7b086f8 100644 --- a/Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs +++ b/Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; using System.IO; @@ -104,7 +103,7 @@ namespace Ryujinx.Core.OsHle.Services.Vi byte[] Parcel = MakeIGraphicsBufferProducer(ParcelPtr); - AMemoryHelper.WriteBytes(Context.Memory, ParcelPtr, Parcel); + Context.Memory.WriteBytes(ParcelPtr, Parcel); Context.ResponseData.Write((long)Parcel.Length); @@ -129,7 +128,7 @@ namespace Ryujinx.Core.OsHle.Services.Vi byte[] Parcel = MakeIGraphicsBufferProducer(ParcelPtr); - AMemoryHelper.WriteBytes(Context.Memory, ParcelPtr, Parcel); + Context.Memory.WriteBytes(ParcelPtr, Parcel); Context.ResponseData.Write(0L); Context.ResponseData.Write((long)Parcel.Length); diff --git a/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs b/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs index db2f7fa265..b02350e036 100644 --- a/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs +++ b/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs @@ -1,4 +1,3 @@ -using ChocolArm64.Memory; using Ryujinx.Core.Gpu; using Ryujinx.Core.Logging; using Ryujinx.Core.OsHle.Handles; @@ -9,6 +8,7 @@ using System.Collections.Generic; using System.IO; using System.Text; using System.Threading; + using static Ryujinx.Core.OsHle.Services.Android.Parcel; namespace Ryujinx.Core.OsHle.Services.Android @@ -272,7 +272,7 @@ namespace Ryujinx.Core.OsHle.Services.Android byte[] Reply = MakeParcel(Data, new byte[0]); - AMemoryHelper.WriteBytes(Context.Memory, ReplyPos, Reply); + Context.Memory.WriteBytes(ReplyPos, Reply); return 0; } From aa75957ce242d58043e4af83e02a39480c7025b4 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 9 Jun 2018 18:19:14 -0300 Subject: [PATCH 08/15] Somewhat better implementation of thread yield --- .../OsHle/Handles/KProcessScheduler.cs | 46 +++++++++++-------- Ryujinx.Core/OsHle/Handles/ThreadQueue.cs | 4 +- Ryujinx.Core/OsHle/Kernel/SvcThread.cs | 2 +- Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs | 2 +- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs b/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs index c1c1031479..63046a72dd 100644 --- a/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs +++ b/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs @@ -197,30 +197,40 @@ namespace Ryujinx.Core.OsHle.Handles if (NeedsReschedule) { - PrintDbgThreadInfo(Thread, "yielded execution."); + Yield(Thread, Thread.ActualPriority - 1); + } + } - lock (SchedLock) + public void Yield(KThread Thread) + { + Yield(Thread, Thread.ActualPriority); + } + + private void Yield(KThread Thread, int MinPriority) + { + PrintDbgThreadInfo(Thread, "yielded execution."); + + lock (SchedLock) + { + int ActualCore = Thread.ActualCore; + + SchedulerThread NewThread = WaitingToRun.Pop(ActualCore, MinPriority); + + if (NewThread == null) { - int ActualCore = Thread.ActualCore; + PrintDbgThreadInfo(Thread, "resumed because theres nothing better to run."); - SchedulerThread NewThread = WaitingToRun.Pop(ActualCore, Thread.ActualPriority); - - if (NewThread == null) - { - PrintDbgThreadInfo(Thread, "resumed because theres nothing better to run."); - - return; - } - - NewThread.Thread.ActualCore = ActualCore; - - CoreThreads[ActualCore] = NewThread.Thread; - - RunThread(NewThread); + return; } - Resume(Thread); + NewThread.Thread.ActualCore = ActualCore; + + CoreThreads[ActualCore] = NewThread.Thread; + + RunThread(NewThread); } + + Resume(Thread); } public void Resume(KThread Thread) diff --git a/Ryujinx.Core/OsHle/Handles/ThreadQueue.cs b/Ryujinx.Core/OsHle/Handles/ThreadQueue.cs index 491b77c806..7bb2314e8e 100644 --- a/Ryujinx.Core/OsHle/Handles/ThreadQueue.cs +++ b/Ryujinx.Core/OsHle/Handles/ThreadQueue.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Core.OsHle.Handles { class ThreadQueue { - private const int LowestPriority = 0x40; + private const int LowestPriority = 0x3f; private SchedulerThread Head; @@ -63,7 +63,7 @@ namespace Ryujinx.Core.OsHle.Handles { KThread Thread = Curr.Thread; - if (Thread.ActualPriority < MinPriority && (Thread.CoreMask & CoreMask) != 0) + if (Thread.ActualPriority <= MinPriority && (Thread.CoreMask & CoreMask) != 0) { if (Prev != null) { diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs index 8aa26dd3f7..1184175817 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs @@ -87,7 +87,7 @@ namespace Ryujinx.Core.OsHle.Kernel if (TimeoutNs == 0) { - Process.Scheduler.SetReschedule(CurrThread.ActualCore); + Process.Scheduler.Yield(CurrThread); } else { diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs b/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs index e762c3961d..70107c3afc 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs @@ -206,7 +206,7 @@ namespace Ryujinx.Core.OsHle.Kernel { lock (Process.ThreadSyncLock) { - //This is the new thread that will not own the mutex. + //This is the new thread that will now own the mutex. //If no threads are waiting for the lock, then it should be null. KThread OwnerThread = PopThread(CurrThread.MutexWaiters, x => x.MutexAddress == MutexAddress); From adeb8793c21e8128ef50ecb555663dfa7ea9fda6 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 9 Jun 2018 22:41:07 -0300 Subject: [PATCH 09/15] Fix a thread sync bug as is the usual... --- Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs b/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs index 70107c3afc..12bc657a6c 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs @@ -254,7 +254,7 @@ namespace Ryujinx.Core.OsHle.Kernel WaitThread.MutexAddress = MutexAddress; WaitThread.CondVarAddress = CondVarAddress; - lock (Process.ThreadArbiterList) + lock (Process.ThreadSyncLock) { WaitThread.CondVarSignaled = false; @@ -267,12 +267,18 @@ namespace Ryujinx.Core.OsHle.Kernel { Process.Scheduler.EnterWait(WaitThread, NsTimeConverter.GetTimeMs(Timeout)); - lock (Process.ThreadArbiterList) + lock (Process.ThreadSyncLock) { - if (!WaitThread.CondVarSignaled) + WaitThread.MutexOwner?.MutexWaiters.Remove(WaitThread); + + if (!WaitThread.CondVarSignaled || WaitThread.MutexOwner != null) { + WaitThread.MutexOwner = null; + Process.ThreadArbiterList.Remove(WaitThread); + Ns.Log.PrintDebug(LogClass.KernelSvc, "Timed out..."); + return false; } } @@ -287,7 +293,7 @@ namespace Ryujinx.Core.OsHle.Kernel private void CondVarSignal(KThread CurrThread, long CondVarAddress, int Count) { - lock (Process.ThreadArbiterList) + lock (Process.ThreadSyncLock) { while (Count == -1 || Count-- > 0) { From 49fd76db0fee72870e0b7fee73e6b6380fa00823 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sun, 10 Jun 2018 01:00:43 -0300 Subject: [PATCH 10/15] Fix a small size related issue on MapBufferEx and add the BC7U texture format --- Ryujinx.Core/Gpu/TextureHelper.cs | 1 + Ryujinx.Core/Gpu/TextureReader.cs | 1 + .../OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs | 4 +--- Ryujinx.Graphics/Gal/GalTextureFormat.cs | 1 + Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs | 11 ++++++----- Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs | 1 + 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Ryujinx.Core/Gpu/TextureHelper.cs b/Ryujinx.Core/Gpu/TextureHelper.cs index 1863bb7770..075fbc3ea2 100644 --- a/Ryujinx.Core/Gpu/TextureHelper.cs +++ b/Ryujinx.Core/Gpu/TextureHelper.cs @@ -44,6 +44,7 @@ namespace Ryujinx.Core.Gpu return W * H * 8; } + case GalTextureFormat.BC7U: case GalTextureFormat.BC2: case GalTextureFormat.BC3: case GalTextureFormat.BC5: diff --git a/Ryujinx.Core/Gpu/TextureReader.cs b/Ryujinx.Core/Gpu/TextureReader.cs index acd17c5dc0..e6058de1d4 100644 --- a/Ryujinx.Core/Gpu/TextureReader.cs +++ b/Ryujinx.Core/Gpu/TextureReader.cs @@ -18,6 +18,7 @@ namespace Ryujinx.Core.Gpu case GalTextureFormat.B5G6R5: return Read565 (Memory, Texture); case GalTextureFormat.G8R8: return Read2Bpp (Memory, Texture); case GalTextureFormat.R8: return Read1Bpp (Memory, Texture); + case GalTextureFormat.BC7U: return Read16Bpt4x4(Memory, Texture); case GalTextureFormat.BC1: return Read8Bpt4x4 (Memory, Texture); case GalTextureFormat.BC2: return Read16Bpt4x4(Memory, Texture); case GalTextureFormat.BC3: return Read16Bpt4x4(Memory, Texture); diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs index 7262247114..a69bc3aab7 100644 --- a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs +++ b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs @@ -140,11 +140,9 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuAS if (Size == 0) { - Size = Map.Size; + Size = (uint)Map.Size; } - Size = Map.Size; - int Result = NvResult.Success; //Note: When the fixed offset flag is not set, diff --git a/Ryujinx.Graphics/Gal/GalTextureFormat.cs b/Ryujinx.Graphics/Gal/GalTextureFormat.cs index d61495eb70..3bac2f8007 100644 --- a/Ryujinx.Graphics/Gal/GalTextureFormat.cs +++ b/Ryujinx.Graphics/Gal/GalTextureFormat.cs @@ -8,6 +8,7 @@ namespace Ryujinx.Graphics.Gal R32 = 0xf, A1B5G5R5 = 0x14, B5G6R5 = 0x15, + BC7U = 0x17, G8R8 = 0x18, R8 = 0x1d, BC1 = 0x24, diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs index 2a9641fcb7..50b802c1aa 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs @@ -76,11 +76,12 @@ namespace Ryujinx.Graphics.Gal.OpenGL { switch (Format) { - case GalTextureFormat.BC1: return PixelInternalFormat.CompressedRgbaS3tcDxt1Ext; - case GalTextureFormat.BC2: return PixelInternalFormat.CompressedRgbaS3tcDxt3Ext; - case GalTextureFormat.BC3: return PixelInternalFormat.CompressedRgbaS3tcDxt5Ext; - case GalTextureFormat.BC4: return PixelInternalFormat.CompressedRedRgtc1; - case GalTextureFormat.BC5: return PixelInternalFormat.CompressedRgRgtc2; + case GalTextureFormat.BC7U: return PixelInternalFormat.CompressedRgbaBptcUnorm; + case GalTextureFormat.BC1: return PixelInternalFormat.CompressedRgbaS3tcDxt1Ext; + case GalTextureFormat.BC2: return PixelInternalFormat.CompressedRgbaS3tcDxt3Ext; + case GalTextureFormat.BC3: return PixelInternalFormat.CompressedRgbaS3tcDxt5Ext; + case GalTextureFormat.BC4: return PixelInternalFormat.CompressedRedRgtc1; + case GalTextureFormat.BC5: return PixelInternalFormat.CompressedRgRgtc2; } throw new NotImplementedException(Format.ToString()); diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs index 540e473592..d81fcc4882 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs @@ -202,6 +202,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL { switch (Format) { + case GalTextureFormat.BC7U: case GalTextureFormat.BC1: case GalTextureFormat.BC2: case GalTextureFormat.BC3: From 7b7dbdcc6ab122faffec487b797fb6cc7a5585c9 Mon Sep 17 00:00:00 2001 From: Tobias Date: Sun, 10 Jun 2018 06:36:07 +0200 Subject: [PATCH 11/15] Add stubs for Nfp and Acc + SvcGetThreadCoreMask implementation (#133) * Stubs for NFP * Stubs for ACC * Implement SvcGetThreadCoreMask * Fixup * Fixup 2 * Fixup 3 * Address Cyuubi's feedback --- Ryujinx.Core/OsHle/Kernel/SvcHandler.cs | 1 + Ryujinx.Core/OsHle/Kernel/SvcThread.cs | 22 +++++ .../Acc/IAccountServiceForApplication.cs | 18 ++++ .../OsHle/Services/Nfp/DeviceState.cs | 7 ++ Ryujinx.Core/OsHle/Services/Nfp/IUser.cs | 91 ++++++++++++++++++- Ryujinx.Core/OsHle/Services/Nfp/State.cs | 8 ++ 6 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs create mode 100644 Ryujinx.Core/OsHle/Services/Nfp/State.cs diff --git a/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs b/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs index 3a9166e4e8..70ed385333 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs @@ -47,6 +47,7 @@ namespace Ryujinx.Core.OsHle.Kernel { 0x0b, SvcSleepThread }, { 0x0c, SvcGetThreadPriority }, { 0x0d, SvcSetThreadPriority }, + { 0x0e, SvcGetThreadCoreMask }, { 0x0f, SvcSetThreadCoreMask }, { 0x10, SvcGetCurrentProcessorNumber }, { 0x12, SvcClearEvent }, diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs index 1184175817..c0d1bbd873 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs @@ -139,6 +139,28 @@ namespace Ryujinx.Core.OsHle.Kernel } } + private void SvcGetThreadCoreMask(AThreadState ThreadState) + { + int Handle = (int)ThreadState.X2; + + Ns.Log.PrintDebug(LogClass.KernelSvc, "Handle = " + Handle.ToString("x8")); + + KThread Thread = GetThread(ThreadState.Tpidr, Handle); + + if (Thread != null) + { + ThreadState.X0 = 0; + ThreadState.X1 = (ulong)Thread.IdealCore; + ThreadState.X2 = (ulong)Thread.CoreMask; + } + else + { + Ns.Log.PrintWarning(LogClass.KernelSvc, $"Invalid thread handle 0x{Handle:x8}!"); + + ThreadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidHandle); + } + } + private void SvcSetThreadCoreMask(AThreadState ThreadState) { //FIXME: This is wrong, but the "correct" way to handle diff --git a/Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs b/Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs index 84fb62bdf7..56b389fc4b 100644 --- a/Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs +++ b/Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs @@ -15,6 +15,8 @@ namespace Ryujinx.Core.OsHle.Services.Acc m_Commands = new Dictionary() { { 0, GetUserCount }, + { 1, GetUserExistence }, + { 2, ListAllUsers }, { 3, ListOpenUsers }, { 4, GetLastOpenedUser }, { 5, GetProfile }, @@ -31,7 +33,23 @@ namespace Ryujinx.Core.OsHle.Services.Acc return 0; } + + public long GetUserExistence(ServiceCtx Context) + { + Context.ResponseData.Write(1); + Context.Ns.Log.PrintStub(LogClass.ServiceAcc, "Stubbed."); + + return 0; + } + + public long ListAllUsers(ServiceCtx Context) + { + Context.Ns.Log.PrintStub(LogClass.ServiceAcc, "Stubbed."); + + return 0; + } + public long ListOpenUsers(ServiceCtx Context) { Context.Ns.Log.PrintStub(LogClass.ServiceAcc, "Stubbed."); diff --git a/Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs b/Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs new file mode 100644 index 0000000000..f0e748203b --- /dev/null +++ b/Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs @@ -0,0 +1,7 @@ +namespace Ryujinx.Core.OsHle.Services.Nfp +{ + enum DeviceState + { + Initialized = 0 + } +} \ No newline at end of file diff --git a/Ryujinx.Core/OsHle/Services/Nfp/IUser.cs b/Ryujinx.Core/OsHle/Services/Nfp/IUser.cs index 199d4e151b..9f60e974d1 100644 --- a/Ryujinx.Core/OsHle/Services/Nfp/IUser.cs +++ b/Ryujinx.Core/OsHle/Services/Nfp/IUser.cs @@ -1,5 +1,8 @@ -using Ryujinx.Core.Logging; +using Ryujinx.Core.Input; +using Ryujinx.Core.Logging; +using Ryujinx.Core.OsHle.Handles; using Ryujinx.Core.OsHle.Ipc; +using Ryujinx.Core.OsHle.Services.Hid; using System.Collections.Generic; namespace Ryujinx.Core.OsHle.Services.Nfp @@ -10,18 +13,102 @@ namespace Ryujinx.Core.OsHle.Services.Nfp public override IReadOnlyDictionary Commands => m_Commands; + private const HidControllerId NpadId = HidControllerId.CONTROLLER_PLAYER_1; + + private State State = State.NonInitialized; + + private DeviceState DeviceState = DeviceState.Initialized; + + private KEvent ActivateEvent; + + private KEvent DeactivateEvent; + + private KEvent AvailabilityChangeEvent; + public IUser() { m_Commands = new Dictionary() { - { 0, Initialize } + { 0, Initialize }, + { 17, AttachActivateEvent }, + { 18, AttachDeactivateEvent }, + { 19, GetState }, + { 20, GetDeviceState }, + { 21, GetNpadId }, + { 23, AttachAvailabilityChangeEvent } }; + + ActivateEvent = new KEvent(); + DeactivateEvent = new KEvent(); + AvailabilityChangeEvent = new KEvent(); } public long Initialize(ServiceCtx Context) { Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + State = State.Initialized; + + return 0; + } + + public long AttachActivateEvent(ServiceCtx Context) + { + Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + + int Handle = Context.Process.HandleTable.OpenHandle(ActivateEvent); + + Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle);; + + return 0; + } + + public long AttachDeactivateEvent(ServiceCtx Context) + { + Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + + int Handle = Context.Process.HandleTable.OpenHandle(DeactivateEvent); + + Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); + + return 0; + } + + public long GetState(ServiceCtx Context) + { + Context.ResponseData.Write((int)State); + + Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + + return 0; + } + + public long GetDeviceState(ServiceCtx Context) + { + Context.ResponseData.Write((int)DeviceState); + + Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + + return 0; + } + + public long GetNpadId(ServiceCtx Context) + { + Context.ResponseData.Write((int)NpadId); + + Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + + return 0; + } + + public long AttachAvailabilityChangeEvent(ServiceCtx Context) + { + Context.Ns.Log.PrintStub(LogClass.ServiceNfp, "Stubbed."); + + int Handle = Context.Process.HandleTable.OpenHandle(AvailabilityChangeEvent); + + Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); + return 0; } } diff --git a/Ryujinx.Core/OsHle/Services/Nfp/State.cs b/Ryujinx.Core/OsHle/Services/Nfp/State.cs new file mode 100644 index 0000000000..c1a07a2240 --- /dev/null +++ b/Ryujinx.Core/OsHle/Services/Nfp/State.cs @@ -0,0 +1,8 @@ +namespace Ryujinx.Core.OsHle.Services.Nfp +{ + enum State + { + NonInitialized = 0, + Initialized = 1 + } +} \ No newline at end of file From 232608effc8c5e7cf15c07b8e3989170433b042f Mon Sep 17 00:00:00 2001 From: greggameplayer <33609333+greggameplayer@users.noreply.github.com> Date: Mon, 11 Jun 2018 02:42:05 +0200 Subject: [PATCH 12/15] Implement ListAudioOutsAuto & OpenAudioOutAuto --- .../OsHle/Services/Aud/IAudioOutManager.cs | 97 ++++++++++++++++++- 1 file changed, 94 insertions(+), 3 deletions(-) diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs index 82e547ae50..d2106232cc 100644 --- a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs +++ b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs @@ -20,8 +20,10 @@ namespace Ryujinx.Core.OsHle.Services.Aud { m_Commands = new Dictionary() { - { 0, ListAudioOuts }, - { 1, OpenAudioOut } + { 0, ListAudioOuts }, + { 1, OpenAudioOut }, + { 2, ListAudioOutsAuto }, + { 3, OpenAudioOutAuto } }; } @@ -111,5 +113,94 @@ namespace Ryujinx.Core.OsHle.Services.Aud return 0; } + + public long ListAudioOutsAuto(ServiceCtx Context) + { + (long Position, long Size) = Context.Request.GetBufferType0x22(); + + int NameCount = 0; + + byte[] DeviceNameBuffer = Encoding.ASCII.GetBytes(DefaultAudioOutput + "\0"); + + if ((ulong)DeviceNameBuffer.Length <= (ulong)Size) + { + Context.Memory.WriteBytes(Position, DeviceNameBuffer); + + NameCount++; + } + else + { + Context.Ns.Log.PrintError(LogClass.ServiceAudio, $"Output buffer size {Size} too small!"); + } + + Context.ResponseData.Write(NameCount); + + return 0; + } + + public long OpenAudioOutAuto(ServiceCtx Context) + { + IAalOutput AudioOut = Context.Ns.AudioOut; + + (long SendPosition, long SendSize) = Context.Request.GetBufferType0x21(); + + string DeviceName = AMemoryHelper.ReadAsciiString( + Context.Memory, + SendPosition, + SendSize + ); + + if (DeviceName == string.Empty) + { + DeviceName = DefaultAudioOutput; + } + + long Position = Context.Request.ReceiveBuff[0].Position; + long Size = Context.Request.ReceiveBuff[0].Size; + + byte[] DeviceNameBuffer = Encoding.ASCII.GetBytes(DeviceName + "\0"); + + if ((ulong)DeviceNameBuffer.Length <= (ulong)Size) + { + Context.Memory.WriteBytes(Position, DeviceNameBuffer); + } + else + { + Context.Ns.Log.PrintError(LogClass.ServiceAudio, $"Output buffer size {Size} too small!"); + } + + int SampleRate = Context.RequestData.ReadInt32(); + int Channels = Context.RequestData.ReadInt32(); + + Channels = (ushort)(Channels >> 16); + + if (SampleRate == 0) + { + SampleRate = 48000; + } + + if (Channels < 1 || Channels > 2) + { + Channels = 2; + } + + KEvent ReleaseEvent = new KEvent(); + + ReleaseCallback Callback = () => + { + ReleaseEvent.WaitEvent.Set(); + }; + + int Track = AudioOut.OpenTrack(SampleRate, Channels, Callback, out AudioFormat Format); + + MakeObject(Context, new IAudioOut(AudioOut, ReleaseEvent, Track)); + + Context.ResponseData.Write(SampleRate); + Context.ResponseData.Write(Channels); + Context.ResponseData.Write((int)Format); + Context.ResponseData.Write((int)PlaybackState.Stopped); + + return 0; + } } -} \ No newline at end of file +} From b03cfc6e8405f86bf5e6587aa09fe8828b1ef751 Mon Sep 17 00:00:00 2001 From: greggameplayer <33609333+greggameplayer@users.noreply.github.com> Date: Mon, 11 Jun 2018 03:11:07 +0200 Subject: [PATCH 13/15] correct the returned values --- .../OsHle/Services/Aud/IAudioOutManager.cs | 33 +++++-------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs index d2106232cc..4c1cf23b0b 100644 --- a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs +++ b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs @@ -155,8 +155,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud DeviceName = DefaultAudioOutput; } - long Position = Context.Request.ReceiveBuff[0].Position; - long Size = Context.Request.ReceiveBuff[0].Size; + (long Position, long Size) = Context.Request.GetBufferType0x22(); byte[] DeviceNameBuffer = Encoding.ASCII.GetBytes(DeviceName + "\0"); @@ -168,21 +167,9 @@ namespace Ryujinx.Core.OsHle.Services.Aud { Context.Ns.Log.PrintError(LogClass.ServiceAudio, $"Output buffer size {Size} too small!"); } - - int SampleRate = Context.RequestData.ReadInt32(); - int Channels = Context.RequestData.ReadInt32(); - - Channels = (ushort)(Channels >> 16); - - if (SampleRate == 0) - { - SampleRate = 48000; - } - - if (Channels < 1 || Channels > 2) - { - Channels = 2; - } + + long AudioParams1 = Context.RequestData.ReadInt64(); + long AudioParams2 = Context.RequestData.ReadInt64(); KEvent ReleaseEvent = new KEvent(); @@ -191,14 +178,10 @@ namespace Ryujinx.Core.OsHle.Services.Aud ReleaseEvent.WaitEvent.Set(); }; - int Track = AudioOut.OpenTrack(SampleRate, Channels, Callback, out AudioFormat Format); - - MakeObject(Context, new IAudioOut(AudioOut, ReleaseEvent, Track)); - - Context.ResponseData.Write(SampleRate); - Context.ResponseData.Write(Channels); - Context.ResponseData.Write((int)Format); - Context.ResponseData.Write((int)PlaybackState.Stopped); + //TODO: Add Makeobject (currently unknown object) + + Context.ResponseData.Write(AudioParams1); + Context.ResponseData.Write(AudioParams2); return 0; } From a3f466e62b988306ca98e04092c64fd382986ddd Mon Sep 17 00:00:00 2001 From: greggameplayer <33609333+greggameplayer@users.noreply.github.com> Date: Mon, 11 Jun 2018 03:20:32 +0200 Subject: [PATCH 14/15] Correct conflict --- .../Gpu/BlockLinearSwizzle.cs | 0 .../Gpu/INvGpuEngine.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Gpu/ISwizzle.cs | 0 .../Gpu/LinearSwizzle.cs | 0 .../Gpu/MacroInterpreter.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpu.cs | 0 .../Gpu/NvGpuBufferType.cs | 0 .../Gpu/NvGpuEngine.cs | 0 .../Gpu/NvGpuEngine2d.cs | 0 .../Gpu/NvGpuEngine2dReg.cs | 0 .../Gpu/NvGpuEngine3d.cs | 0 .../Gpu/NvGpuEngine3dReg.cs | 0 .../Gpu/NvGpuFifo.cs | 0 .../Gpu/NvGpuFifoMeth.cs | 0 .../Gpu/NvGpuMethod.cs | 0 .../Gpu/NvGpuPBEntry.cs | 0 .../Gpu/NvGpuPushBuffer.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuVmm.cs | 0 .../Gpu/NvGpuVmmCache.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Gpu/Texture.cs | 0 .../Gpu/TextureFactory.cs | 0 .../Gpu/TextureHelper.cs | 0 .../Gpu/TextureReader.cs | 0 .../Gpu/TextureSwizzle.cs | 0 .../Gpu/TextureWriter.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Hid/Hid.cs | 0 .../Hid/HidControllerButtons.cs | 0 .../Hid/HidControllerColorDesc.cs | 0 .../Hid/HidControllerConnState.cs | 0 .../Hid/HidControllerId.cs | 0 .../Hid/HidControllerLayouts.cs | 0 .../Hid/HidControllerType.cs | 0 .../Hid/HidJoystickPosition.cs | 0 .../Hid/HidTouchPoint.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Hid/JoyCon.cs | 0 .../Hid/JoyConColor.cs | 0 .../Loaders/Compression/Lz4.cs | 0 .../Loaders/ElfDyn.cs | 0 .../Loaders/ElfDynTag.cs | 0 .../Loaders/ElfRel.cs | 0 .../Loaders/ElfRelType.cs | 0 .../Loaders/ElfSym.cs | 0 .../Loaders/ElfSymBinding.cs | 0 .../Loaders/ElfSymType.cs | 0 .../Loaders/ElfSymVisibility.cs | 0 .../Loaders/Executable.cs | 0 .../Loaders/Executables/IExecutable.cs | 0 .../Loaders/Executables/Nro.cs | 0 .../Loaders/Executables/Nso.cs | 0 .../Logging/LogClass.cs | 0 .../Logging/LogEventArgs.cs | 0 .../Logging/LogLevel.cs | 0 .../Logging/Logger.cs | 0 .../OsHle/AppletStateMgr.cs | 0 .../OsHle/Diagnostics/Demangler.cs | 0 .../OsHle/ErrorCode.cs | 0 .../OsHle/ErrorModule.cs | 0 .../GuestBrokeExecutionException.cs | 0 .../UndefinedInstructionException.cs | 0 .../OsHle/GlobalStateTable.cs | 0 .../OsHle/Handles/HSharedMem.cs | 0 .../OsHle/Handles/HTransferMem.cs | 0 .../OsHle/Handles/KEvent.cs | 0 .../OsHle/Handles/KProcessHandleTable.cs | 0 .../OsHle/Handles/KProcessScheduler.cs | 0 .../OsHle/Handles/KSession.cs | 0 .../OsHle/Handles/KSynchronizationObject.cs | 0 .../OsHle/Handles/KThread.cs | 0 .../OsHle/Handles/SchedulerThread.cs | 0 .../OsHle/Handles/ThreadQueue.cs | 0 .../OsHle/Homebrew.cs | 0 .../OsHle/Horizon.cs | 0 .../OsHle/IdDictionary.cs | 0 .../OsHle/Ipc/IpcBuffDesc.cs | 0 .../OsHle/Ipc/IpcHandleDesc.cs | 0 .../OsHle/Ipc/IpcHandler.cs | 0 .../OsHle/Ipc/IpcMagic.cs | 0 .../OsHle/Ipc/IpcMessage.cs | 0 .../OsHle/Ipc/IpcMessageType.cs | 0 .../OsHle/Ipc/IpcPtrBuffDesc.cs | 0 .../OsHle/Ipc/IpcRecvListBuffDesc.cs | 0 .../OsHle/Ipc/ServiceProcessRequest.cs | 0 .../OsHle/Kernel/KernelErr.cs | 0 .../OsHle/Kernel/NsTimeConverter.cs | 0 .../OsHle/Kernel/SvcHandler.cs | 0 .../OsHle/Kernel/SvcMemory.cs | 0 .../OsHle/Kernel/SvcSystem.cs | 0 .../OsHle/Kernel/SvcThread.cs | 0 .../OsHle/Kernel/SvcThreadSync.cs | 0 .../OsHle/MemoryAllocator.cs | 0 .../OsHle/MemoryRegions.cs | 0 .../OsHle/MemoryType.cs | 0 .../OsHle/Process.cs | 0 .../OsHle/ServiceCtx.cs | 0 .../Acc/IAccountServiceForApplication.cs | 0 .../Services/Acc/IManagerForApplication.cs | 0 .../OsHle/Services/Acc/IProfile.cs | 0 .../OsHle/Services/Am/AmErr.cs | 0 .../OsHle/Services/Am/FocusState.cs | 0 .../Am/IAllSystemAppletProxiesService.cs | 0 .../OsHle/Services/Am/IApplicationCreator.cs | 0 .../Services/Am/IApplicationFunctions.cs | 0 .../OsHle/Services/Am/IApplicationProxy.cs | 0 .../Services/Am/IApplicationProxyService.cs | 0 .../OsHle/Services/Am/IAudioController.cs | 0 .../OsHle/Services/Am/ICommonStateGetter.cs | 0 .../OsHle/Services/Am/IDebugFunctions.cs | 0 .../OsHle/Services/Am/IDisplayController.cs | 0 .../Services/Am/IGlobalStateController.cs | 0 .../OsHle/Services/Am/IHomeMenuFunctions.cs | 92 +- .../Services/Am/ILibraryAppletAccessor.cs | 0 .../Services/Am/ILibraryAppletCreator.cs | 0 .../OsHle/Services/Am/ISelfController.cs | 0 .../OsHle/Services/Am/IStorage.cs | 0 .../OsHle/Services/Am/IStorageAccessor.cs | 0 .../OsHle/Services/Am/ISystemAppletProxy.cs | 0 .../OsHle/Services/Am/IWindowController.cs | 0 .../OsHle/Services/Am/MessageInfo.cs | 0 .../OsHle/Services/Am/OperationMode.cs | 0 .../OsHle/Services/Am/StorageHelper.cs | 0 .../OsHle/Services/Apm/IManager.cs | 0 .../OsHle/Services/Apm/ISession.cs | 0 .../Services/Apm/PerformanceConfiguration.cs | 0 .../OsHle/Services/Apm/PerformanceMode.cs | 0 .../OsHle/Services/Aud/AudioOutData.cs | 0 .../OsHle/Services/Aud/IAudioDevice.cs | 0 .../OsHle/Services/Aud/IAudioOut.cs | 0 .../OsHle/Services/Aud/IAudioOutManager.cs | 0 .../OsHle/Services/Aud/IAudioRenderer.cs | 0 .../Services/Aud/IAudioRendererManager.cs | 0 .../OsHle/Services/Bsd/BsdError.cs | 0 .../OsHle/Services/Bsd/BsdSocket.cs | 0 .../OsHle/Services/Bsd/IClient.cs | 0 .../Services/Caps/IAlbumAccessorService.cs | 0 .../OsHle/Services/Caps/IScreenshotService.cs | 0 .../OsHle/Services/Friend/IFriendService.cs | 0 .../OsHle/Services/Friend/IServiceCreator.cs | 0 .../OsHle/Services/FspSrv/FsErr.cs | 0 .../OsHle/Services/FspSrv/IDirectory.cs | 0 .../OsHle/Services/FspSrv/IFile.cs | 0 .../OsHle/Services/FspSrv/IFileSystem.cs | 0 .../OsHle/Services/FspSrv/IFileSystemProxy.cs | 0 .../OsHle/Services/FspSrv/IStorage.cs | 0 .../Hid/IActiveVibrationDeviceList.cs | 0 .../OsHle/Services/Hid/IAppletResource.cs | 0 .../OsHle/Services/Hid/IHidServer.cs | 0 .../OsHle/Services/IIpcService.cs | 0 .../OsHle/Services/IpcService.cs | 0 .../OsHle/Services/Lm/ILogService.cs | 0 .../OsHle/Services/Lm/ILogger.cs | 0 .../OsHle/Services/Lm/LmLogField.cs | 0 .../OsHle/Services/Lm/LmLogLevel.cs | 0 .../OsHle/Services/Mm/IRequest.cs | 0 .../OsHle/Services/Nfp/DeviceState.cs | 0 .../OsHle/Services/Nfp/IUser.cs | 0 .../OsHle/Services/Nfp/IUserManager.cs | 0 .../OsHle/Services/Nfp/State.cs | 0 .../OsHle/Services/Nifm/IGeneralService.cs | 0 .../OsHle/Services/Nifm/IRequest.cs | 0 .../OsHle/Services/Nifm/IStaticService.cs | 0 .../OsHle/Services/Ns/IAddOnContentManager.cs | 0 .../Services/Ns/IServiceGetterInterface.cs | 0 .../Services/Ns/ISystemUpdateInterface.cs | 0 .../Ns/IVulnerabilityManagerInterface.cs | 0 .../OsHle/Services/Nv/INvDrvServices.cs | 0 .../OsHle/Services/Nv/NvFd.cs | 0 .../Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs | 0 .../OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs | 0 .../Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs | 0 .../OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs | 0 .../Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs | 0 .../Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs | 0 .../OsHle/Services/Nv/NvHelper.cs | 0 .../Nv/NvHostChannel/NvHostChannelIoctl.cs | 0 .../NvHostChannelSubmitGpfifo.cs | 0 .../Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlUserCtx.cs | 0 .../Services/Nv/NvHostCtrl/NvHostEvent.cs | 0 .../Nv/NvHostCtrl/NvHostEventState.cs | 0 .../Services/Nv/NvHostCtrl/NvHostSyncPt.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapAlloc.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapCreate.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapFree.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapFromId.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapGetId.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapHandle.cs | 0 .../Services/Nv/NvMap/NvMapHandleParam.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapIoctl.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapParam.cs | 0 .../OsHle/Services/Nv/NvResult.cs | 0 .../Services/Pctl/IParentalControlService.cs | 0 .../Pctl/IParentalControlServiceFactory.cs | 0 .../OsHle/Services/Pl/ISharedFontManager.cs | 0 .../OsHle/Services/Pl/SharedFontType.cs | 0 .../OsHle/Services/Prepo/IPrepoService.cs | 0 .../OsHle/Services/ServiceFactory.cs | 0 .../OsHle/Services/Set/ISettingsServer.cs | 0 .../Services/Set/ISystemSettingsServer.cs | 0 .../OsHle/Services/Set/NxSettings.cs | 3422 ++++++++--------- .../OsHle/Services/Sfdnsres/IResolver.cs | 0 .../OsHle/Services/Sm/IUserInterface.cs | 0 .../OsHle/Services/Ssl/ISslService.cs | 0 .../OsHle/Services/Time/IStaticService.cs | 0 .../OsHle/Services/Time/ISteadyClock.cs | 0 .../OsHle/Services/Time/ISystemClock.cs | 0 .../OsHle/Services/Time/ITimeZoneService.cs | 0 .../OsHle/Services/Time/SystemClockType.cs | 0 .../OsHle/Services/Vi/Display.cs | 0 .../OsHle/Services/Vi/GbpBuffer.cs | 0 .../Services/Vi/IApplicationDisplayService.cs | 0 .../Services/Vi/IApplicationRootService.cs | 0 .../OsHle/Services/Vi/IHOSBinderDriver.cs | 0 .../Services/Vi/IManagerDisplayService.cs | 0 .../OsHle/Services/Vi/IManagerRootService.cs | 0 .../Services/Vi/ISystemDisplayService.cs | 0 .../OsHle/Services/Vi/ISystemRootService.cs | 0 .../OsHle/Services/Vi/NvFlinger.cs | 0 .../OsHle/Services/Vi/Parcel.cs | 0 .../OsHle/SystemLanguage.cs | 0 .../OsHle/SystemStateMgr.cs | 0 .../OsHle/Utilities/EndianSwap.cs | 0 .../OsHle/Utilities/IntUtils.cs | 0 .../PerformanceStatistics.cs | 0 .../Ryujinx.Core.csproj | 0 .../Settings/ColorSet.cs | 0 .../Settings/SystemSettings.cs | 0 {Ryujinx.Core => Ryujinx.HLE}/Switch.cs | 0 .../VirtualFileSystem.cs | 0 236 files changed, 1757 insertions(+), 1757 deletions(-) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/BlockLinearSwizzle.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/INvGpuEngine.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/ISwizzle.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/LinearSwizzle.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/MacroInterpreter.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpu.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuBufferType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuEngine.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuEngine2d.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuEngine2dReg.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuEngine3d.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuEngine3dReg.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuFifo.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuFifoMeth.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuMethod.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuPBEntry.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuPushBuffer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuVmm.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/NvGpuVmmCache.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/Texture.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/TextureFactory.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/TextureHelper.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/TextureReader.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/TextureSwizzle.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Gpu/TextureWriter.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/Hid.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidControllerButtons.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidControllerColorDesc.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidControllerConnState.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidControllerId.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidControllerLayouts.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidControllerType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidJoystickPosition.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/HidTouchPoint.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/JoyCon.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Hid/JoyConColor.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/Compression/Lz4.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfDyn.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfDynTag.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfRel.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfRelType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfSym.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfSymBinding.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfSymType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/ElfSymVisibility.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/Executable.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/Executables/IExecutable.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/Executables/Nro.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Loaders/Executables/Nso.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Logging/LogClass.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Logging/LogEventArgs.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Logging/LogLevel.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Logging/Logger.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/AppletStateMgr.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Diagnostics/Demangler.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/ErrorCode.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/ErrorModule.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Exceptions/GuestBrokeExecutionException.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Exceptions/UndefinedInstructionException.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/GlobalStateTable.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/HSharedMem.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/HTransferMem.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/KEvent.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/KProcessHandleTable.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/KProcessScheduler.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/KSession.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/KSynchronizationObject.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/KThread.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/SchedulerThread.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Handles/ThreadQueue.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Homebrew.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Horizon.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/IdDictionary.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcBuffDesc.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcHandleDesc.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcHandler.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcMagic.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcMessage.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcMessageType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcPtrBuffDesc.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/IpcRecvListBuffDesc.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Ipc/ServiceProcessRequest.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/KernelErr.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/NsTimeConverter.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/SvcHandler.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/SvcMemory.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/SvcSystem.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/SvcThread.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Kernel/SvcThreadSync.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/MemoryAllocator.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/MemoryRegions.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/MemoryType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Process.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/ServiceCtx.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Acc/IAccountServiceForApplication.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Acc/IManagerForApplication.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Acc/IProfile.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/AmErr.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/FocusState.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IAllSystemAppletProxiesService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IApplicationCreator.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IApplicationFunctions.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IApplicationProxy.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IApplicationProxyService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IAudioController.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/ICommonStateGetter.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IDebugFunctions.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IDisplayController.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IGlobalStateController.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IHomeMenuFunctions.cs (96%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/ILibraryAppletAccessor.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/ILibraryAppletCreator.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/ISelfController.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IStorage.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IStorageAccessor.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/ISystemAppletProxy.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/IWindowController.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/MessageInfo.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/OperationMode.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Am/StorageHelper.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Apm/IManager.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Apm/ISession.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Apm/PerformanceConfiguration.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Apm/PerformanceMode.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Aud/AudioOutData.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Aud/IAudioDevice.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Aud/IAudioOut.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Aud/IAudioOutManager.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Aud/IAudioRenderer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Aud/IAudioRendererManager.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Bsd/BsdError.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Bsd/BsdSocket.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Bsd/IClient.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Caps/IAlbumAccessorService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Caps/IScreenshotService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Friend/IFriendService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Friend/IServiceCreator.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/FspSrv/FsErr.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/FspSrv/IDirectory.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/FspSrv/IFile.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/FspSrv/IFileSystem.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/FspSrv/IFileSystemProxy.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/FspSrv/IStorage.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Hid/IActiveVibrationDeviceList.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Hid/IAppletResource.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Hid/IHidServer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/IIpcService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/IpcService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Lm/ILogService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Lm/ILogger.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Lm/LmLogField.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Lm/LmLogLevel.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Mm/IRequest.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nfp/DeviceState.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nfp/IUser.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nfp/IUserManager.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nfp/State.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nifm/IGeneralService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nifm/IRequest.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nifm/IStaticService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Ns/IAddOnContentManager.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Ns/IServiceGetterInterface.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Ns/ISystemUpdateInterface.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/INvDrvServices.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvFd.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHelper.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapAlloc.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapCreate.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapFree.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapFromId.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapGetId.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapHandle.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapIoctl.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvMap/NvMapParam.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Nv/NvResult.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Pctl/IParentalControlService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Pctl/IParentalControlServiceFactory.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Pl/ISharedFontManager.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Pl/SharedFontType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Prepo/IPrepoService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/ServiceFactory.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Set/ISettingsServer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Set/ISystemSettingsServer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Set/NxSettings.cs (97%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Sfdnsres/IResolver.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Sm/IUserInterface.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Ssl/ISslService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Time/IStaticService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Time/ISteadyClock.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Time/ISystemClock.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Time/ITimeZoneService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Time/SystemClockType.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/Display.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/GbpBuffer.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/IApplicationDisplayService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/IApplicationRootService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/IHOSBinderDriver.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/IManagerDisplayService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/IManagerRootService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/ISystemDisplayService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/ISystemRootService.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/NvFlinger.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Services/Vi/Parcel.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/SystemLanguage.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/SystemStateMgr.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Utilities/EndianSwap.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/OsHle/Utilities/IntUtils.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/PerformanceStatistics.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Ryujinx.Core.csproj (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Settings/ColorSet.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Settings/SystemSettings.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/Switch.cs (100%) rename {Ryujinx.Core => Ryujinx.HLE}/VirtualFileSystem.cs (100%) diff --git a/Ryujinx.Core/Gpu/BlockLinearSwizzle.cs b/Ryujinx.HLE/Gpu/BlockLinearSwizzle.cs similarity index 100% rename from Ryujinx.Core/Gpu/BlockLinearSwizzle.cs rename to Ryujinx.HLE/Gpu/BlockLinearSwizzle.cs diff --git a/Ryujinx.Core/Gpu/INvGpuEngine.cs b/Ryujinx.HLE/Gpu/INvGpuEngine.cs similarity index 100% rename from Ryujinx.Core/Gpu/INvGpuEngine.cs rename to Ryujinx.HLE/Gpu/INvGpuEngine.cs diff --git a/Ryujinx.Core/Gpu/ISwizzle.cs b/Ryujinx.HLE/Gpu/ISwizzle.cs similarity index 100% rename from Ryujinx.Core/Gpu/ISwizzle.cs rename to Ryujinx.HLE/Gpu/ISwizzle.cs diff --git a/Ryujinx.Core/Gpu/LinearSwizzle.cs b/Ryujinx.HLE/Gpu/LinearSwizzle.cs similarity index 100% rename from Ryujinx.Core/Gpu/LinearSwizzle.cs rename to Ryujinx.HLE/Gpu/LinearSwizzle.cs diff --git a/Ryujinx.Core/Gpu/MacroInterpreter.cs b/Ryujinx.HLE/Gpu/MacroInterpreter.cs similarity index 100% rename from Ryujinx.Core/Gpu/MacroInterpreter.cs rename to Ryujinx.HLE/Gpu/MacroInterpreter.cs diff --git a/Ryujinx.Core/Gpu/NvGpu.cs b/Ryujinx.HLE/Gpu/NvGpu.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpu.cs rename to Ryujinx.HLE/Gpu/NvGpu.cs diff --git a/Ryujinx.Core/Gpu/NvGpuBufferType.cs b/Ryujinx.HLE/Gpu/NvGpuBufferType.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuBufferType.cs rename to Ryujinx.HLE/Gpu/NvGpuBufferType.cs diff --git a/Ryujinx.Core/Gpu/NvGpuEngine.cs b/Ryujinx.HLE/Gpu/NvGpuEngine.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuEngine.cs rename to Ryujinx.HLE/Gpu/NvGpuEngine.cs diff --git a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs b/Ryujinx.HLE/Gpu/NvGpuEngine2d.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuEngine2d.cs rename to Ryujinx.HLE/Gpu/NvGpuEngine2d.cs diff --git a/Ryujinx.Core/Gpu/NvGpuEngine2dReg.cs b/Ryujinx.HLE/Gpu/NvGpuEngine2dReg.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuEngine2dReg.cs rename to Ryujinx.HLE/Gpu/NvGpuEngine2dReg.cs diff --git a/Ryujinx.Core/Gpu/NvGpuEngine3d.cs b/Ryujinx.HLE/Gpu/NvGpuEngine3d.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuEngine3d.cs rename to Ryujinx.HLE/Gpu/NvGpuEngine3d.cs diff --git a/Ryujinx.Core/Gpu/NvGpuEngine3dReg.cs b/Ryujinx.HLE/Gpu/NvGpuEngine3dReg.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuEngine3dReg.cs rename to Ryujinx.HLE/Gpu/NvGpuEngine3dReg.cs diff --git a/Ryujinx.Core/Gpu/NvGpuFifo.cs b/Ryujinx.HLE/Gpu/NvGpuFifo.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuFifo.cs rename to Ryujinx.HLE/Gpu/NvGpuFifo.cs diff --git a/Ryujinx.Core/Gpu/NvGpuFifoMeth.cs b/Ryujinx.HLE/Gpu/NvGpuFifoMeth.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuFifoMeth.cs rename to Ryujinx.HLE/Gpu/NvGpuFifoMeth.cs diff --git a/Ryujinx.Core/Gpu/NvGpuMethod.cs b/Ryujinx.HLE/Gpu/NvGpuMethod.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuMethod.cs rename to Ryujinx.HLE/Gpu/NvGpuMethod.cs diff --git a/Ryujinx.Core/Gpu/NvGpuPBEntry.cs b/Ryujinx.HLE/Gpu/NvGpuPBEntry.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuPBEntry.cs rename to Ryujinx.HLE/Gpu/NvGpuPBEntry.cs diff --git a/Ryujinx.Core/Gpu/NvGpuPushBuffer.cs b/Ryujinx.HLE/Gpu/NvGpuPushBuffer.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuPushBuffer.cs rename to Ryujinx.HLE/Gpu/NvGpuPushBuffer.cs diff --git a/Ryujinx.Core/Gpu/NvGpuVmm.cs b/Ryujinx.HLE/Gpu/NvGpuVmm.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuVmm.cs rename to Ryujinx.HLE/Gpu/NvGpuVmm.cs diff --git a/Ryujinx.Core/Gpu/NvGpuVmmCache.cs b/Ryujinx.HLE/Gpu/NvGpuVmmCache.cs similarity index 100% rename from Ryujinx.Core/Gpu/NvGpuVmmCache.cs rename to Ryujinx.HLE/Gpu/NvGpuVmmCache.cs diff --git a/Ryujinx.Core/Gpu/Texture.cs b/Ryujinx.HLE/Gpu/Texture.cs similarity index 100% rename from Ryujinx.Core/Gpu/Texture.cs rename to Ryujinx.HLE/Gpu/Texture.cs diff --git a/Ryujinx.Core/Gpu/TextureFactory.cs b/Ryujinx.HLE/Gpu/TextureFactory.cs similarity index 100% rename from Ryujinx.Core/Gpu/TextureFactory.cs rename to Ryujinx.HLE/Gpu/TextureFactory.cs diff --git a/Ryujinx.Core/Gpu/TextureHelper.cs b/Ryujinx.HLE/Gpu/TextureHelper.cs similarity index 100% rename from Ryujinx.Core/Gpu/TextureHelper.cs rename to Ryujinx.HLE/Gpu/TextureHelper.cs diff --git a/Ryujinx.Core/Gpu/TextureReader.cs b/Ryujinx.HLE/Gpu/TextureReader.cs similarity index 100% rename from Ryujinx.Core/Gpu/TextureReader.cs rename to Ryujinx.HLE/Gpu/TextureReader.cs diff --git a/Ryujinx.Core/Gpu/TextureSwizzle.cs b/Ryujinx.HLE/Gpu/TextureSwizzle.cs similarity index 100% rename from Ryujinx.Core/Gpu/TextureSwizzle.cs rename to Ryujinx.HLE/Gpu/TextureSwizzle.cs diff --git a/Ryujinx.Core/Gpu/TextureWriter.cs b/Ryujinx.HLE/Gpu/TextureWriter.cs similarity index 100% rename from Ryujinx.Core/Gpu/TextureWriter.cs rename to Ryujinx.HLE/Gpu/TextureWriter.cs diff --git a/Ryujinx.Core/Hid/Hid.cs b/Ryujinx.HLE/Hid/Hid.cs similarity index 100% rename from Ryujinx.Core/Hid/Hid.cs rename to Ryujinx.HLE/Hid/Hid.cs diff --git a/Ryujinx.Core/Hid/HidControllerButtons.cs b/Ryujinx.HLE/Hid/HidControllerButtons.cs similarity index 100% rename from Ryujinx.Core/Hid/HidControllerButtons.cs rename to Ryujinx.HLE/Hid/HidControllerButtons.cs diff --git a/Ryujinx.Core/Hid/HidControllerColorDesc.cs b/Ryujinx.HLE/Hid/HidControllerColorDesc.cs similarity index 100% rename from Ryujinx.Core/Hid/HidControllerColorDesc.cs rename to Ryujinx.HLE/Hid/HidControllerColorDesc.cs diff --git a/Ryujinx.Core/Hid/HidControllerConnState.cs b/Ryujinx.HLE/Hid/HidControllerConnState.cs similarity index 100% rename from Ryujinx.Core/Hid/HidControllerConnState.cs rename to Ryujinx.HLE/Hid/HidControllerConnState.cs diff --git a/Ryujinx.Core/Hid/HidControllerId.cs b/Ryujinx.HLE/Hid/HidControllerId.cs similarity index 100% rename from Ryujinx.Core/Hid/HidControllerId.cs rename to Ryujinx.HLE/Hid/HidControllerId.cs diff --git a/Ryujinx.Core/Hid/HidControllerLayouts.cs b/Ryujinx.HLE/Hid/HidControllerLayouts.cs similarity index 100% rename from Ryujinx.Core/Hid/HidControllerLayouts.cs rename to Ryujinx.HLE/Hid/HidControllerLayouts.cs diff --git a/Ryujinx.Core/Hid/HidControllerType.cs b/Ryujinx.HLE/Hid/HidControllerType.cs similarity index 100% rename from Ryujinx.Core/Hid/HidControllerType.cs rename to Ryujinx.HLE/Hid/HidControllerType.cs diff --git a/Ryujinx.Core/Hid/HidJoystickPosition.cs b/Ryujinx.HLE/Hid/HidJoystickPosition.cs similarity index 100% rename from Ryujinx.Core/Hid/HidJoystickPosition.cs rename to Ryujinx.HLE/Hid/HidJoystickPosition.cs diff --git a/Ryujinx.Core/Hid/HidTouchPoint.cs b/Ryujinx.HLE/Hid/HidTouchPoint.cs similarity index 100% rename from Ryujinx.Core/Hid/HidTouchPoint.cs rename to Ryujinx.HLE/Hid/HidTouchPoint.cs diff --git a/Ryujinx.Core/Hid/JoyCon.cs b/Ryujinx.HLE/Hid/JoyCon.cs similarity index 100% rename from Ryujinx.Core/Hid/JoyCon.cs rename to Ryujinx.HLE/Hid/JoyCon.cs diff --git a/Ryujinx.Core/Hid/JoyConColor.cs b/Ryujinx.HLE/Hid/JoyConColor.cs similarity index 100% rename from Ryujinx.Core/Hid/JoyConColor.cs rename to Ryujinx.HLE/Hid/JoyConColor.cs diff --git a/Ryujinx.Core/Loaders/Compression/Lz4.cs b/Ryujinx.HLE/Loaders/Compression/Lz4.cs similarity index 100% rename from Ryujinx.Core/Loaders/Compression/Lz4.cs rename to Ryujinx.HLE/Loaders/Compression/Lz4.cs diff --git a/Ryujinx.Core/Loaders/ElfDyn.cs b/Ryujinx.HLE/Loaders/ElfDyn.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfDyn.cs rename to Ryujinx.HLE/Loaders/ElfDyn.cs diff --git a/Ryujinx.Core/Loaders/ElfDynTag.cs b/Ryujinx.HLE/Loaders/ElfDynTag.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfDynTag.cs rename to Ryujinx.HLE/Loaders/ElfDynTag.cs diff --git a/Ryujinx.Core/Loaders/ElfRel.cs b/Ryujinx.HLE/Loaders/ElfRel.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfRel.cs rename to Ryujinx.HLE/Loaders/ElfRel.cs diff --git a/Ryujinx.Core/Loaders/ElfRelType.cs b/Ryujinx.HLE/Loaders/ElfRelType.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfRelType.cs rename to Ryujinx.HLE/Loaders/ElfRelType.cs diff --git a/Ryujinx.Core/Loaders/ElfSym.cs b/Ryujinx.HLE/Loaders/ElfSym.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfSym.cs rename to Ryujinx.HLE/Loaders/ElfSym.cs diff --git a/Ryujinx.Core/Loaders/ElfSymBinding.cs b/Ryujinx.HLE/Loaders/ElfSymBinding.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfSymBinding.cs rename to Ryujinx.HLE/Loaders/ElfSymBinding.cs diff --git a/Ryujinx.Core/Loaders/ElfSymType.cs b/Ryujinx.HLE/Loaders/ElfSymType.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfSymType.cs rename to Ryujinx.HLE/Loaders/ElfSymType.cs diff --git a/Ryujinx.Core/Loaders/ElfSymVisibility.cs b/Ryujinx.HLE/Loaders/ElfSymVisibility.cs similarity index 100% rename from Ryujinx.Core/Loaders/ElfSymVisibility.cs rename to Ryujinx.HLE/Loaders/ElfSymVisibility.cs diff --git a/Ryujinx.Core/Loaders/Executable.cs b/Ryujinx.HLE/Loaders/Executable.cs similarity index 100% rename from Ryujinx.Core/Loaders/Executable.cs rename to Ryujinx.HLE/Loaders/Executable.cs diff --git a/Ryujinx.Core/Loaders/Executables/IExecutable.cs b/Ryujinx.HLE/Loaders/Executables/IExecutable.cs similarity index 100% rename from Ryujinx.Core/Loaders/Executables/IExecutable.cs rename to Ryujinx.HLE/Loaders/Executables/IExecutable.cs diff --git a/Ryujinx.Core/Loaders/Executables/Nro.cs b/Ryujinx.HLE/Loaders/Executables/Nro.cs similarity index 100% rename from Ryujinx.Core/Loaders/Executables/Nro.cs rename to Ryujinx.HLE/Loaders/Executables/Nro.cs diff --git a/Ryujinx.Core/Loaders/Executables/Nso.cs b/Ryujinx.HLE/Loaders/Executables/Nso.cs similarity index 100% rename from Ryujinx.Core/Loaders/Executables/Nso.cs rename to Ryujinx.HLE/Loaders/Executables/Nso.cs diff --git a/Ryujinx.Core/Logging/LogClass.cs b/Ryujinx.HLE/Logging/LogClass.cs similarity index 100% rename from Ryujinx.Core/Logging/LogClass.cs rename to Ryujinx.HLE/Logging/LogClass.cs diff --git a/Ryujinx.Core/Logging/LogEventArgs.cs b/Ryujinx.HLE/Logging/LogEventArgs.cs similarity index 100% rename from Ryujinx.Core/Logging/LogEventArgs.cs rename to Ryujinx.HLE/Logging/LogEventArgs.cs diff --git a/Ryujinx.Core/Logging/LogLevel.cs b/Ryujinx.HLE/Logging/LogLevel.cs similarity index 100% rename from Ryujinx.Core/Logging/LogLevel.cs rename to Ryujinx.HLE/Logging/LogLevel.cs diff --git a/Ryujinx.Core/Logging/Logger.cs b/Ryujinx.HLE/Logging/Logger.cs similarity index 100% rename from Ryujinx.Core/Logging/Logger.cs rename to Ryujinx.HLE/Logging/Logger.cs diff --git a/Ryujinx.Core/OsHle/AppletStateMgr.cs b/Ryujinx.HLE/OsHle/AppletStateMgr.cs similarity index 100% rename from Ryujinx.Core/OsHle/AppletStateMgr.cs rename to Ryujinx.HLE/OsHle/AppletStateMgr.cs diff --git a/Ryujinx.Core/OsHle/Diagnostics/Demangler.cs b/Ryujinx.HLE/OsHle/Diagnostics/Demangler.cs similarity index 100% rename from Ryujinx.Core/OsHle/Diagnostics/Demangler.cs rename to Ryujinx.HLE/OsHle/Diagnostics/Demangler.cs diff --git a/Ryujinx.Core/OsHle/ErrorCode.cs b/Ryujinx.HLE/OsHle/ErrorCode.cs similarity index 100% rename from Ryujinx.Core/OsHle/ErrorCode.cs rename to Ryujinx.HLE/OsHle/ErrorCode.cs diff --git a/Ryujinx.Core/OsHle/ErrorModule.cs b/Ryujinx.HLE/OsHle/ErrorModule.cs similarity index 100% rename from Ryujinx.Core/OsHle/ErrorModule.cs rename to Ryujinx.HLE/OsHle/ErrorModule.cs diff --git a/Ryujinx.Core/OsHle/Exceptions/GuestBrokeExecutionException.cs b/Ryujinx.HLE/OsHle/Exceptions/GuestBrokeExecutionException.cs similarity index 100% rename from Ryujinx.Core/OsHle/Exceptions/GuestBrokeExecutionException.cs rename to Ryujinx.HLE/OsHle/Exceptions/GuestBrokeExecutionException.cs diff --git a/Ryujinx.Core/OsHle/Exceptions/UndefinedInstructionException.cs b/Ryujinx.HLE/OsHle/Exceptions/UndefinedInstructionException.cs similarity index 100% rename from Ryujinx.Core/OsHle/Exceptions/UndefinedInstructionException.cs rename to Ryujinx.HLE/OsHle/Exceptions/UndefinedInstructionException.cs diff --git a/Ryujinx.Core/OsHle/GlobalStateTable.cs b/Ryujinx.HLE/OsHle/GlobalStateTable.cs similarity index 100% rename from Ryujinx.Core/OsHle/GlobalStateTable.cs rename to Ryujinx.HLE/OsHle/GlobalStateTable.cs diff --git a/Ryujinx.Core/OsHle/Handles/HSharedMem.cs b/Ryujinx.HLE/OsHle/Handles/HSharedMem.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/HSharedMem.cs rename to Ryujinx.HLE/OsHle/Handles/HSharedMem.cs diff --git a/Ryujinx.Core/OsHle/Handles/HTransferMem.cs b/Ryujinx.HLE/OsHle/Handles/HTransferMem.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/HTransferMem.cs rename to Ryujinx.HLE/OsHle/Handles/HTransferMem.cs diff --git a/Ryujinx.Core/OsHle/Handles/KEvent.cs b/Ryujinx.HLE/OsHle/Handles/KEvent.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/KEvent.cs rename to Ryujinx.HLE/OsHle/Handles/KEvent.cs diff --git a/Ryujinx.Core/OsHle/Handles/KProcessHandleTable.cs b/Ryujinx.HLE/OsHle/Handles/KProcessHandleTable.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/KProcessHandleTable.cs rename to Ryujinx.HLE/OsHle/Handles/KProcessHandleTable.cs diff --git a/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs b/Ryujinx.HLE/OsHle/Handles/KProcessScheduler.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs rename to Ryujinx.HLE/OsHle/Handles/KProcessScheduler.cs diff --git a/Ryujinx.Core/OsHle/Handles/KSession.cs b/Ryujinx.HLE/OsHle/Handles/KSession.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/KSession.cs rename to Ryujinx.HLE/OsHle/Handles/KSession.cs diff --git a/Ryujinx.Core/OsHle/Handles/KSynchronizationObject.cs b/Ryujinx.HLE/OsHle/Handles/KSynchronizationObject.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/KSynchronizationObject.cs rename to Ryujinx.HLE/OsHle/Handles/KSynchronizationObject.cs diff --git a/Ryujinx.Core/OsHle/Handles/KThread.cs b/Ryujinx.HLE/OsHle/Handles/KThread.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/KThread.cs rename to Ryujinx.HLE/OsHle/Handles/KThread.cs diff --git a/Ryujinx.Core/OsHle/Handles/SchedulerThread.cs b/Ryujinx.HLE/OsHle/Handles/SchedulerThread.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/SchedulerThread.cs rename to Ryujinx.HLE/OsHle/Handles/SchedulerThread.cs diff --git a/Ryujinx.Core/OsHle/Handles/ThreadQueue.cs b/Ryujinx.HLE/OsHle/Handles/ThreadQueue.cs similarity index 100% rename from Ryujinx.Core/OsHle/Handles/ThreadQueue.cs rename to Ryujinx.HLE/OsHle/Handles/ThreadQueue.cs diff --git a/Ryujinx.Core/OsHle/Homebrew.cs b/Ryujinx.HLE/OsHle/Homebrew.cs similarity index 100% rename from Ryujinx.Core/OsHle/Homebrew.cs rename to Ryujinx.HLE/OsHle/Homebrew.cs diff --git a/Ryujinx.Core/OsHle/Horizon.cs b/Ryujinx.HLE/OsHle/Horizon.cs similarity index 100% rename from Ryujinx.Core/OsHle/Horizon.cs rename to Ryujinx.HLE/OsHle/Horizon.cs diff --git a/Ryujinx.Core/OsHle/IdDictionary.cs b/Ryujinx.HLE/OsHle/IdDictionary.cs similarity index 100% rename from Ryujinx.Core/OsHle/IdDictionary.cs rename to Ryujinx.HLE/OsHle/IdDictionary.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcBuffDesc.cs b/Ryujinx.HLE/OsHle/Ipc/IpcBuffDesc.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcBuffDesc.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcBuffDesc.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcHandleDesc.cs b/Ryujinx.HLE/OsHle/Ipc/IpcHandleDesc.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcHandleDesc.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcHandleDesc.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcHandler.cs b/Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcHandler.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcMagic.cs b/Ryujinx.HLE/OsHle/Ipc/IpcMagic.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcMagic.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcMagic.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcMessage.cs b/Ryujinx.HLE/OsHle/Ipc/IpcMessage.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcMessage.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcMessage.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcMessageType.cs b/Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcMessageType.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcPtrBuffDesc.cs b/Ryujinx.HLE/OsHle/Ipc/IpcPtrBuffDesc.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcPtrBuffDesc.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcPtrBuffDesc.cs diff --git a/Ryujinx.Core/OsHle/Ipc/IpcRecvListBuffDesc.cs b/Ryujinx.HLE/OsHle/Ipc/IpcRecvListBuffDesc.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/IpcRecvListBuffDesc.cs rename to Ryujinx.HLE/OsHle/Ipc/IpcRecvListBuffDesc.cs diff --git a/Ryujinx.Core/OsHle/Ipc/ServiceProcessRequest.cs b/Ryujinx.HLE/OsHle/Ipc/ServiceProcessRequest.cs similarity index 100% rename from Ryujinx.Core/OsHle/Ipc/ServiceProcessRequest.cs rename to Ryujinx.HLE/OsHle/Ipc/ServiceProcessRequest.cs diff --git a/Ryujinx.Core/OsHle/Kernel/KernelErr.cs b/Ryujinx.HLE/OsHle/Kernel/KernelErr.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/KernelErr.cs rename to Ryujinx.HLE/OsHle/Kernel/KernelErr.cs diff --git a/Ryujinx.Core/OsHle/Kernel/NsTimeConverter.cs b/Ryujinx.HLE/OsHle/Kernel/NsTimeConverter.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/NsTimeConverter.cs rename to Ryujinx.HLE/OsHle/Kernel/NsTimeConverter.cs diff --git a/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs b/Ryujinx.HLE/OsHle/Kernel/SvcHandler.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/SvcHandler.cs rename to Ryujinx.HLE/OsHle/Kernel/SvcHandler.cs diff --git a/Ryujinx.Core/OsHle/Kernel/SvcMemory.cs b/Ryujinx.HLE/OsHle/Kernel/SvcMemory.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/SvcMemory.cs rename to Ryujinx.HLE/OsHle/Kernel/SvcMemory.cs diff --git a/Ryujinx.Core/OsHle/Kernel/SvcSystem.cs b/Ryujinx.HLE/OsHle/Kernel/SvcSystem.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/SvcSystem.cs rename to Ryujinx.HLE/OsHle/Kernel/SvcSystem.cs diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThread.cs b/Ryujinx.HLE/OsHle/Kernel/SvcThread.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/SvcThread.cs rename to Ryujinx.HLE/OsHle/Kernel/SvcThread.cs diff --git a/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs b/Ryujinx.HLE/OsHle/Kernel/SvcThreadSync.cs similarity index 100% rename from Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs rename to Ryujinx.HLE/OsHle/Kernel/SvcThreadSync.cs diff --git a/Ryujinx.Core/OsHle/MemoryAllocator.cs b/Ryujinx.HLE/OsHle/MemoryAllocator.cs similarity index 100% rename from Ryujinx.Core/OsHle/MemoryAllocator.cs rename to Ryujinx.HLE/OsHle/MemoryAllocator.cs diff --git a/Ryujinx.Core/OsHle/MemoryRegions.cs b/Ryujinx.HLE/OsHle/MemoryRegions.cs similarity index 100% rename from Ryujinx.Core/OsHle/MemoryRegions.cs rename to Ryujinx.HLE/OsHle/MemoryRegions.cs diff --git a/Ryujinx.Core/OsHle/MemoryType.cs b/Ryujinx.HLE/OsHle/MemoryType.cs similarity index 100% rename from Ryujinx.Core/OsHle/MemoryType.cs rename to Ryujinx.HLE/OsHle/MemoryType.cs diff --git a/Ryujinx.Core/OsHle/Process.cs b/Ryujinx.HLE/OsHle/Process.cs similarity index 100% rename from Ryujinx.Core/OsHle/Process.cs rename to Ryujinx.HLE/OsHle/Process.cs diff --git a/Ryujinx.Core/OsHle/ServiceCtx.cs b/Ryujinx.HLE/OsHle/ServiceCtx.cs similarity index 100% rename from Ryujinx.Core/OsHle/ServiceCtx.cs rename to Ryujinx.HLE/OsHle/ServiceCtx.cs diff --git a/Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs b/Ryujinx.HLE/OsHle/Services/Acc/IAccountServiceForApplication.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs rename to Ryujinx.HLE/OsHle/Services/Acc/IAccountServiceForApplication.cs diff --git a/Ryujinx.Core/OsHle/Services/Acc/IManagerForApplication.cs b/Ryujinx.HLE/OsHle/Services/Acc/IManagerForApplication.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Acc/IManagerForApplication.cs rename to Ryujinx.HLE/OsHle/Services/Acc/IManagerForApplication.cs diff --git a/Ryujinx.Core/OsHle/Services/Acc/IProfile.cs b/Ryujinx.HLE/OsHle/Services/Acc/IProfile.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Acc/IProfile.cs rename to Ryujinx.HLE/OsHle/Services/Acc/IProfile.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/AmErr.cs b/Ryujinx.HLE/OsHle/Services/Am/AmErr.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/AmErr.cs rename to Ryujinx.HLE/OsHle/Services/Am/AmErr.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/FocusState.cs b/Ryujinx.HLE/OsHle/Services/Am/FocusState.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/FocusState.cs rename to Ryujinx.HLE/OsHle/Services/Am/FocusState.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IAllSystemAppletProxiesService.cs b/Ryujinx.HLE/OsHle/Services/Am/IAllSystemAppletProxiesService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IAllSystemAppletProxiesService.cs rename to Ryujinx.HLE/OsHle/Services/Am/IAllSystemAppletProxiesService.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IApplicationCreator.cs b/Ryujinx.HLE/OsHle/Services/Am/IApplicationCreator.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IApplicationCreator.cs rename to Ryujinx.HLE/OsHle/Services/Am/IApplicationCreator.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs b/Ryujinx.HLE/OsHle/Services/Am/IApplicationFunctions.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs rename to Ryujinx.HLE/OsHle/Services/Am/IApplicationFunctions.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IApplicationProxy.cs b/Ryujinx.HLE/OsHle/Services/Am/IApplicationProxy.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IApplicationProxy.cs rename to Ryujinx.HLE/OsHle/Services/Am/IApplicationProxy.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IApplicationProxyService.cs b/Ryujinx.HLE/OsHle/Services/Am/IApplicationProxyService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IApplicationProxyService.cs rename to Ryujinx.HLE/OsHle/Services/Am/IApplicationProxyService.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IAudioController.cs b/Ryujinx.HLE/OsHle/Services/Am/IAudioController.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IAudioController.cs rename to Ryujinx.HLE/OsHle/Services/Am/IAudioController.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs b/Ryujinx.HLE/OsHle/Services/Am/ICommonStateGetter.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs rename to Ryujinx.HLE/OsHle/Services/Am/ICommonStateGetter.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IDebugFunctions.cs b/Ryujinx.HLE/OsHle/Services/Am/IDebugFunctions.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IDebugFunctions.cs rename to Ryujinx.HLE/OsHle/Services/Am/IDebugFunctions.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IDisplayController.cs b/Ryujinx.HLE/OsHle/Services/Am/IDisplayController.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IDisplayController.cs rename to Ryujinx.HLE/OsHle/Services/Am/IDisplayController.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IGlobalStateController.cs b/Ryujinx.HLE/OsHle/Services/Am/IGlobalStateController.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IGlobalStateController.cs rename to Ryujinx.HLE/OsHle/Services/Am/IGlobalStateController.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IHomeMenuFunctions.cs b/Ryujinx.HLE/OsHle/Services/Am/IHomeMenuFunctions.cs similarity index 96% rename from Ryujinx.Core/OsHle/Services/Am/IHomeMenuFunctions.cs rename to Ryujinx.HLE/OsHle/Services/Am/IHomeMenuFunctions.cs index b516c0e363..07eeac05f2 100644 --- a/Ryujinx.Core/OsHle/Services/Am/IHomeMenuFunctions.cs +++ b/Ryujinx.HLE/OsHle/Services/Am/IHomeMenuFunctions.cs @@ -1,46 +1,46 @@ -using Ryujinx.Core.Logging; -using Ryujinx.Core.OsHle.Handles; -using Ryujinx.Core.OsHle.Ipc; -using System.Collections.Generic; - -namespace Ryujinx.Core.OsHle.Services.Am -{ - class IHomeMenuFunctions : IpcService - { - private Dictionary m_Commands; - - public override IReadOnlyDictionary Commands => m_Commands; - - private KEvent ChannelEvent; - - public IHomeMenuFunctions() - { - m_Commands = new Dictionary() - { - { 10, RequestToGetForeground }, - { 21, GetPopFromGeneralChannelEvent } - }; - - //ToDo: Signal this Event somewhere in future. - ChannelEvent = new KEvent(); - } - - public long RequestToGetForeground(ServiceCtx Context) - { - Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); - - return 0; - } - - public long GetPopFromGeneralChannelEvent(ServiceCtx Context) - { - int Handle = Context.Process.HandleTable.OpenHandle(ChannelEvent); - - Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); - - Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); - - return 0; - } - } -} +using Ryujinx.Core.Logging; +using Ryujinx.Core.OsHle.Handles; +using Ryujinx.Core.OsHle.Ipc; +using System.Collections.Generic; + +namespace Ryujinx.Core.OsHle.Services.Am +{ + class IHomeMenuFunctions : IpcService + { + private Dictionary m_Commands; + + public override IReadOnlyDictionary Commands => m_Commands; + + private KEvent ChannelEvent; + + public IHomeMenuFunctions() + { + m_Commands = new Dictionary() + { + { 10, RequestToGetForeground }, + { 21, GetPopFromGeneralChannelEvent } + }; + + //ToDo: Signal this Event somewhere in future. + ChannelEvent = new KEvent(); + } + + public long RequestToGetForeground(ServiceCtx Context) + { + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + + return 0; + } + + public long GetPopFromGeneralChannelEvent(ServiceCtx Context) + { + int Handle = Context.Process.HandleTable.OpenHandle(ChannelEvent); + + Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); + + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + + return 0; + } + } +} diff --git a/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs b/Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletAccessor.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs rename to Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletAccessor.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs b/Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletCreator.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs rename to Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletCreator.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/ISelfController.cs b/Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/ISelfController.cs rename to Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IStorage.cs b/Ryujinx.HLE/OsHle/Services/Am/IStorage.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IStorage.cs rename to Ryujinx.HLE/OsHle/Services/Am/IStorage.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs b/Ryujinx.HLE/OsHle/Services/Am/IStorageAccessor.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs rename to Ryujinx.HLE/OsHle/Services/Am/IStorageAccessor.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/ISystemAppletProxy.cs b/Ryujinx.HLE/OsHle/Services/Am/ISystemAppletProxy.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/ISystemAppletProxy.cs rename to Ryujinx.HLE/OsHle/Services/Am/ISystemAppletProxy.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/IWindowController.cs b/Ryujinx.HLE/OsHle/Services/Am/IWindowController.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/IWindowController.cs rename to Ryujinx.HLE/OsHle/Services/Am/IWindowController.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/MessageInfo.cs b/Ryujinx.HLE/OsHle/Services/Am/MessageInfo.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/MessageInfo.cs rename to Ryujinx.HLE/OsHle/Services/Am/MessageInfo.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/OperationMode.cs b/Ryujinx.HLE/OsHle/Services/Am/OperationMode.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/OperationMode.cs rename to Ryujinx.HLE/OsHle/Services/Am/OperationMode.cs diff --git a/Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs b/Ryujinx.HLE/OsHle/Services/Am/StorageHelper.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs rename to Ryujinx.HLE/OsHle/Services/Am/StorageHelper.cs diff --git a/Ryujinx.Core/OsHle/Services/Apm/IManager.cs b/Ryujinx.HLE/OsHle/Services/Apm/IManager.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Apm/IManager.cs rename to Ryujinx.HLE/OsHle/Services/Apm/IManager.cs diff --git a/Ryujinx.Core/OsHle/Services/Apm/ISession.cs b/Ryujinx.HLE/OsHle/Services/Apm/ISession.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Apm/ISession.cs rename to Ryujinx.HLE/OsHle/Services/Apm/ISession.cs diff --git a/Ryujinx.Core/OsHle/Services/Apm/PerformanceConfiguration.cs b/Ryujinx.HLE/OsHle/Services/Apm/PerformanceConfiguration.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Apm/PerformanceConfiguration.cs rename to Ryujinx.HLE/OsHle/Services/Apm/PerformanceConfiguration.cs diff --git a/Ryujinx.Core/OsHle/Services/Apm/PerformanceMode.cs b/Ryujinx.HLE/OsHle/Services/Apm/PerformanceMode.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Apm/PerformanceMode.cs rename to Ryujinx.HLE/OsHle/Services/Apm/PerformanceMode.cs diff --git a/Ryujinx.Core/OsHle/Services/Aud/AudioOutData.cs b/Ryujinx.HLE/OsHle/Services/Aud/AudioOutData.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Aud/AudioOutData.cs rename to Ryujinx.HLE/OsHle/Services/Aud/AudioOutData.cs diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs b/Ryujinx.HLE/OsHle/Services/Aud/IAudioDevice.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs rename to Ryujinx.HLE/OsHle/Services/Aud/IAudioDevice.cs diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs b/Ryujinx.HLE/OsHle/Services/Aud/IAudioOut.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs rename to Ryujinx.HLE/OsHle/Services/Aud/IAudioOut.cs diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs b/Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs rename to Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioRenderer.cs b/Ryujinx.HLE/OsHle/Services/Aud/IAudioRenderer.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Aud/IAudioRenderer.cs rename to Ryujinx.HLE/OsHle/Services/Aud/IAudioRenderer.cs diff --git a/Ryujinx.Core/OsHle/Services/Aud/IAudioRendererManager.cs b/Ryujinx.HLE/OsHle/Services/Aud/IAudioRendererManager.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Aud/IAudioRendererManager.cs rename to Ryujinx.HLE/OsHle/Services/Aud/IAudioRendererManager.cs diff --git a/Ryujinx.Core/OsHle/Services/Bsd/BsdError.cs b/Ryujinx.HLE/OsHle/Services/Bsd/BsdError.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Bsd/BsdError.cs rename to Ryujinx.HLE/OsHle/Services/Bsd/BsdError.cs diff --git a/Ryujinx.Core/OsHle/Services/Bsd/BsdSocket.cs b/Ryujinx.HLE/OsHle/Services/Bsd/BsdSocket.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Bsd/BsdSocket.cs rename to Ryujinx.HLE/OsHle/Services/Bsd/BsdSocket.cs diff --git a/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs b/Ryujinx.HLE/OsHle/Services/Bsd/IClient.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Bsd/IClient.cs rename to Ryujinx.HLE/OsHle/Services/Bsd/IClient.cs diff --git a/Ryujinx.Core/OsHle/Services/Caps/IAlbumAccessorService.cs b/Ryujinx.HLE/OsHle/Services/Caps/IAlbumAccessorService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Caps/IAlbumAccessorService.cs rename to Ryujinx.HLE/OsHle/Services/Caps/IAlbumAccessorService.cs diff --git a/Ryujinx.Core/OsHle/Services/Caps/IScreenshotService.cs b/Ryujinx.HLE/OsHle/Services/Caps/IScreenshotService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Caps/IScreenshotService.cs rename to Ryujinx.HLE/OsHle/Services/Caps/IScreenshotService.cs diff --git a/Ryujinx.Core/OsHle/Services/Friend/IFriendService.cs b/Ryujinx.HLE/OsHle/Services/Friend/IFriendService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Friend/IFriendService.cs rename to Ryujinx.HLE/OsHle/Services/Friend/IFriendService.cs diff --git a/Ryujinx.Core/OsHle/Services/Friend/IServiceCreator.cs b/Ryujinx.HLE/OsHle/Services/Friend/IServiceCreator.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Friend/IServiceCreator.cs rename to Ryujinx.HLE/OsHle/Services/Friend/IServiceCreator.cs diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/FsErr.cs b/Ryujinx.HLE/OsHle/Services/FspSrv/FsErr.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/FspSrv/FsErr.cs rename to Ryujinx.HLE/OsHle/Services/FspSrv/FsErr.cs diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs b/Ryujinx.HLE/OsHle/Services/FspSrv/IDirectory.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs rename to Ryujinx.HLE/OsHle/Services/FspSrv/IDirectory.cs diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs b/Ryujinx.HLE/OsHle/Services/FspSrv/IFile.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs rename to Ryujinx.HLE/OsHle/Services/FspSrv/IFile.cs diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs b/Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystem.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs rename to Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystem.cs diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystemProxy.cs b/Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystemProxy.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/FspSrv/IFileSystemProxy.cs rename to Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystemProxy.cs diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs b/Ryujinx.HLE/OsHle/Services/FspSrv/IStorage.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs rename to Ryujinx.HLE/OsHle/Services/FspSrv/IStorage.cs diff --git a/Ryujinx.Core/OsHle/Services/Hid/IActiveVibrationDeviceList.cs b/Ryujinx.HLE/OsHle/Services/Hid/IActiveVibrationDeviceList.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Hid/IActiveVibrationDeviceList.cs rename to Ryujinx.HLE/OsHle/Services/Hid/IActiveVibrationDeviceList.cs diff --git a/Ryujinx.Core/OsHle/Services/Hid/IAppletResource.cs b/Ryujinx.HLE/OsHle/Services/Hid/IAppletResource.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Hid/IAppletResource.cs rename to Ryujinx.HLE/OsHle/Services/Hid/IAppletResource.cs diff --git a/Ryujinx.Core/OsHle/Services/Hid/IHidServer.cs b/Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Hid/IHidServer.cs rename to Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs diff --git a/Ryujinx.Core/OsHle/Services/IIpcService.cs b/Ryujinx.HLE/OsHle/Services/IIpcService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/IIpcService.cs rename to Ryujinx.HLE/OsHle/Services/IIpcService.cs diff --git a/Ryujinx.Core/OsHle/Services/IpcService.cs b/Ryujinx.HLE/OsHle/Services/IpcService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/IpcService.cs rename to Ryujinx.HLE/OsHle/Services/IpcService.cs diff --git a/Ryujinx.Core/OsHle/Services/Lm/ILogService.cs b/Ryujinx.HLE/OsHle/Services/Lm/ILogService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Lm/ILogService.cs rename to Ryujinx.HLE/OsHle/Services/Lm/ILogService.cs diff --git a/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs b/Ryujinx.HLE/OsHle/Services/Lm/ILogger.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Lm/ILogger.cs rename to Ryujinx.HLE/OsHle/Services/Lm/ILogger.cs diff --git a/Ryujinx.Core/OsHle/Services/Lm/LmLogField.cs b/Ryujinx.HLE/OsHle/Services/Lm/LmLogField.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Lm/LmLogField.cs rename to Ryujinx.HLE/OsHle/Services/Lm/LmLogField.cs diff --git a/Ryujinx.Core/OsHle/Services/Lm/LmLogLevel.cs b/Ryujinx.HLE/OsHle/Services/Lm/LmLogLevel.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Lm/LmLogLevel.cs rename to Ryujinx.HLE/OsHle/Services/Lm/LmLogLevel.cs diff --git a/Ryujinx.Core/OsHle/Services/Mm/IRequest.cs b/Ryujinx.HLE/OsHle/Services/Mm/IRequest.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Mm/IRequest.cs rename to Ryujinx.HLE/OsHle/Services/Mm/IRequest.cs diff --git a/Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs b/Ryujinx.HLE/OsHle/Services/Nfp/DeviceState.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs rename to Ryujinx.HLE/OsHle/Services/Nfp/DeviceState.cs diff --git a/Ryujinx.Core/OsHle/Services/Nfp/IUser.cs b/Ryujinx.HLE/OsHle/Services/Nfp/IUser.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nfp/IUser.cs rename to Ryujinx.HLE/OsHle/Services/Nfp/IUser.cs diff --git a/Ryujinx.Core/OsHle/Services/Nfp/IUserManager.cs b/Ryujinx.HLE/OsHle/Services/Nfp/IUserManager.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nfp/IUserManager.cs rename to Ryujinx.HLE/OsHle/Services/Nfp/IUserManager.cs diff --git a/Ryujinx.Core/OsHle/Services/Nfp/State.cs b/Ryujinx.HLE/OsHle/Services/Nfp/State.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nfp/State.cs rename to Ryujinx.HLE/OsHle/Services/Nfp/State.cs diff --git a/Ryujinx.Core/OsHle/Services/Nifm/IGeneralService.cs b/Ryujinx.HLE/OsHle/Services/Nifm/IGeneralService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nifm/IGeneralService.cs rename to Ryujinx.HLE/OsHle/Services/Nifm/IGeneralService.cs diff --git a/Ryujinx.Core/OsHle/Services/Nifm/IRequest.cs b/Ryujinx.HLE/OsHle/Services/Nifm/IRequest.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nifm/IRequest.cs rename to Ryujinx.HLE/OsHle/Services/Nifm/IRequest.cs diff --git a/Ryujinx.Core/OsHle/Services/Nifm/IStaticService.cs b/Ryujinx.HLE/OsHle/Services/Nifm/IStaticService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nifm/IStaticService.cs rename to Ryujinx.HLE/OsHle/Services/Nifm/IStaticService.cs diff --git a/Ryujinx.Core/OsHle/Services/Ns/IAddOnContentManager.cs b/Ryujinx.HLE/OsHle/Services/Ns/IAddOnContentManager.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Ns/IAddOnContentManager.cs rename to Ryujinx.HLE/OsHle/Services/Ns/IAddOnContentManager.cs diff --git a/Ryujinx.Core/OsHle/Services/Ns/IServiceGetterInterface.cs b/Ryujinx.HLE/OsHle/Services/Ns/IServiceGetterInterface.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Ns/IServiceGetterInterface.cs rename to Ryujinx.HLE/OsHle/Services/Ns/IServiceGetterInterface.cs diff --git a/Ryujinx.Core/OsHle/Services/Ns/ISystemUpdateInterface.cs b/Ryujinx.HLE/OsHle/Services/Ns/ISystemUpdateInterface.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Ns/ISystemUpdateInterface.cs rename to Ryujinx.HLE/OsHle/Services/Ns/ISystemUpdateInterface.cs diff --git a/Ryujinx.Core/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs b/Ryujinx.HLE/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs rename to Ryujinx.HLE/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs b/Ryujinx.HLE/OsHle/Services/Nv/INvDrvServices.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs rename to Ryujinx.HLE/OsHle/Services/Nv/INvDrvServices.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvFd.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvFd.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvFd.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvFd.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHelper.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHelper.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHelper.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHelper.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapAlloc.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapAlloc.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapAlloc.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapAlloc.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapCreate.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapCreate.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapCreate.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapCreate.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFree.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFree.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFree.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFree.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFromId.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFromId.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFromId.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFromId.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapGetId.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapGetId.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapGetId.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapGetId.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandle.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandle.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandle.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandle.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapIoctl.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapIoctl.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapIoctl.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapIoctl.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapParam.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapParam.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapParam.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapParam.cs diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvResult.cs b/Ryujinx.HLE/OsHle/Services/Nv/NvResult.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Nv/NvResult.cs rename to Ryujinx.HLE/OsHle/Services/Nv/NvResult.cs diff --git a/Ryujinx.Core/OsHle/Services/Pctl/IParentalControlService.cs b/Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Pctl/IParentalControlService.cs rename to Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlService.cs diff --git a/Ryujinx.Core/OsHle/Services/Pctl/IParentalControlServiceFactory.cs b/Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlServiceFactory.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Pctl/IParentalControlServiceFactory.cs rename to Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlServiceFactory.cs diff --git a/Ryujinx.Core/OsHle/Services/Pl/ISharedFontManager.cs b/Ryujinx.HLE/OsHle/Services/Pl/ISharedFontManager.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Pl/ISharedFontManager.cs rename to Ryujinx.HLE/OsHle/Services/Pl/ISharedFontManager.cs diff --git a/Ryujinx.Core/OsHle/Services/Pl/SharedFontType.cs b/Ryujinx.HLE/OsHle/Services/Pl/SharedFontType.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Pl/SharedFontType.cs rename to Ryujinx.HLE/OsHle/Services/Pl/SharedFontType.cs diff --git a/Ryujinx.Core/OsHle/Services/Prepo/IPrepoService.cs b/Ryujinx.HLE/OsHle/Services/Prepo/IPrepoService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Prepo/IPrepoService.cs rename to Ryujinx.HLE/OsHle/Services/Prepo/IPrepoService.cs diff --git a/Ryujinx.Core/OsHle/Services/ServiceFactory.cs b/Ryujinx.HLE/OsHle/Services/ServiceFactory.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/ServiceFactory.cs rename to Ryujinx.HLE/OsHle/Services/ServiceFactory.cs diff --git a/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs b/Ryujinx.HLE/OsHle/Services/Set/ISettingsServer.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs rename to Ryujinx.HLE/OsHle/Services/Set/ISettingsServer.cs diff --git a/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs b/Ryujinx.HLE/OsHle/Services/Set/ISystemSettingsServer.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs rename to Ryujinx.HLE/OsHle/Services/Set/ISystemSettingsServer.cs diff --git a/Ryujinx.Core/OsHle/Services/Set/NxSettings.cs b/Ryujinx.HLE/OsHle/Services/Set/NxSettings.cs similarity index 97% rename from Ryujinx.Core/OsHle/Services/Set/NxSettings.cs rename to Ryujinx.HLE/OsHle/Services/Set/NxSettings.cs index d7f1a1ffd3..7efcb57a7e 100644 --- a/Ryujinx.Core/OsHle/Services/Set/NxSettings.cs +++ b/Ryujinx.HLE/OsHle/Services/Set/NxSettings.cs @@ -1,1711 +1,1711 @@ -using System.Collections.Generic; - -namespace Ryujinx.Core.OsHle.Services.Set -{ - static class NxSettings - { - //Generated automatically from a Switch 3.0 config file (Tid: 0100000000000818). - public static Dictionary Settings = new Dictionary() - { - { "account!na_required_for_network_service", true }, - { "account.daemon!background_awaking_periodicity", 10800 }, - { "account.daemon!schedule_periodicity", 3600 }, - { "account.daemon!profile_sync_interval", 18000 }, - { "account.daemon!na_info_refresh_interval", 46800 }, - { "am.display!transition_layer_enabled", true }, - { "am.gpu!gpu_scheduling_enabled", true }, - { "am.gpu!gpu_scheduling_frame_time_us", 116666 }, - { "am.gpu!gpu_scheduling_fg_app_us", 116166 }, - { "am.gpu!gpu_scheduling_bg_app_us", 104500 }, - { "am.gpu!gpu_scheduling_oa_us", 500 }, - { "am.gpu!gpu_scheduling_fg_sa_us", 11666 }, - { "am.gpu!gpu_scheduling_bg_sa_us", 0 }, - { "am.gpu!gpu_scheduling_fg_la_us", 11666 }, - { "am.gpu!gpu_scheduling_partial_fg_la_us", 2000 }, - { "am.gpu!gpu_scheduling_bg_la_us", 0 }, - { "audio!audren_log_enabled", false }, - { "audio!audout_log_enabled", false }, - { "audio!audin_log_enabled", false }, - { "audio!hwopus_log_enabled", false }, - { "audio!adsp_log_enabled", false }, - { "audio!suspend_for_debugger_enabled", false }, - { "audio!uac_speaker_enabled", false }, - { "bgtc!enable_halfawake", 1 }, - { "bgtc!enable_battery_saver", 1 }, - { "bgtc!leaving_halfawake_margin", 3 }, - { "bgtc!battery_threshold_save", 20 }, - { "bgtc!battery_threshold_stop", 20 }, - { "bgtc!minimum_interval_normal", 1800 }, - { "bgtc!minimum_interval_save", 86400 }, - { "boot!force_maintenance", false }, - { "capsrv!screenshot_layerstack", "screenshot" }, - { "capsrv!enable_album_screenshot_filedata_verification", true }, - { "devmenu!enable_application_update", true }, - { "devmenu!enable_exhibition_mode", false }, - { "eclct!analytics_override", false }, - { "eclct!analytics_pollperiod", 86400 }, - { "err!applet_auto_close", false }, - { "friends!background_processing", true }, - { "htc!disconnection_emulation", false }, - { "idle!dim_level_percent_lcd", 10 }, - { "idle!dim_level_percent_tv", 70 }, - { "lbl!force_disable_als", false }, - { "lm!enable_sd_card_logging", false }, - { "lm!sd_card_log_output_directory", "NxBinLogs" }, - { "mii!is_db_test_mode_enabled", false }, - { "news!system_version", 2 }, - { "nfp!not_locked_tag", true }, - { "nfp!play_report", false }, - { "nifm!is_communication_control_enabled_for_test", false }, - { "nifm!connection_test_timeout", 45000 }, - { "nifm!apply_config_timeout", 30000 }, - { "nifm!ethernet_adapter_standby_time", 10000 }, - { "nim.install!prefer_delta_evenif_inefficient", false }, - { "nim.install!apply_delta_stress_storage", 0 }, - { "ns.notification!retry_interval", 60 }, - { "ns.notification!enable_network_update", true }, - { "ns.notification!enable_download_task_list", true }, - { "ns.notification!enable_version_list", true }, - { "ns.notification!enable_random_wait", true }, - { "ns.notification!debug_waiting_limit", 0 }, - { "ns.notification!enable_request_on_cold_boot", true }, - { "ns.sdcard!mount_sdcard", true }, - { "ns.sdcard!compare_sdcard", 0 }, - { "ns.gamecard!mount_gamecard_result_value", 0 }, - { "ns.gamecard!try_gamecard_access_result_value", 0 }, - { "nv!00008600", "" }, - { "nv!0007b25e", "" }, - { "nv!0083e1", "" }, - { "nv!01621887", "" }, - { "nv!03134743", "" }, - { "nv!0356afd0", "" }, - { "nv!0356afd1", "" }, - { "nv!0356afd2", "" }, - { "nv!0356afd3", "" }, - { "nv!094313", "" }, - { "nv!0x04dc09", "" }, - { "nv!0x111133", "" }, - { "nv!0x1aa483", "" }, - { "nv!0x1cb1cf", "" }, - { "nv!0x1cb1d0", "" }, - { "nv!0x1e3221", "" }, - { "nv!0x300fc8", "" }, - { "nv!0x301fc8", "" }, - { "nv!0x302fc8", "" }, - { "nv!0x3eec59", "" }, - { "nv!0x46b3ed", "" }, - { "nv!0x523dc0", "" }, - { "nv!0x523dc1", "" }, - { "nv!0x523dc2", "" }, - { "nv!0x523dc3", "" }, - { "nv!0x523dc4", "" }, - { "nv!0x523dc5", "" }, - { "nv!0x523dc6", "" }, - { "nv!0x523dd0", "" }, - { "nv!0x523dd1", "" }, - { "nv!0x523dd3", "" }, - { "nv!0x5344bb", "" }, - { "nv!0x555237", "" }, - { "nv!0x58a234", "" }, - { "nv!0x7b4428", "" }, - { "nv!0x923dc0", "" }, - { "nv!0x923dc1", "" }, - { "nv!0x923dc2", "" }, - { "nv!0x923dc3", "" }, - { "nv!0x923dc4", "" }, - { "nv!0x923dd3", "" }, - { "nv!0x9abdc5", "" }, - { "nv!0x9abdc6", "" }, - { "nv!0xaaa36c", "" }, - { "nv!0xb09da0", "" }, - { "nv!0xb09da1", "" }, - { "nv!0xb09da2", "" }, - { "nv!0xb09da3", "" }, - { "nv!0xb09da4", "" }, - { "nv!0xb09da5", "" }, - { "nv!0xb0b348", "" }, - { "nv!0xb0b349", "" }, - { "nv!0xbb558f", "" }, - { "nv!0xbd10fb", "" }, - { "nv!0xc32ad3", "" }, - { "nv!0xce2348", "" }, - { "nv!0xcfd81f", "" }, - { "nv!0xe0036b", "" }, - { "nv!0xe01f2d", "" }, - { "nv!0xe17212", "" }, - { "nv!0xeae966", "" }, - { "nv!0xed4f82", "" }, - { "nv!0xf12335", "" }, - { "nv!0xf12336", "" }, - { "nv!10261989", "" }, - { "nv!1042d483", "" }, - { "nv!10572898", "" }, - { "nv!115631", "" }, - { "nv!12950094", "" }, - { "nv!1314f311", "" }, - { "nv!1314f312", "" }, - { "nv!13279512", "" }, - { "nv!13813496", "" }, - { "nv!14507179", "" }, - { "nv!15694569", "" }, - { "nv!16936964", "" }, - { "nv!17aa230c", "" }, - { "nv!182054", "" }, - { "nv!18273275", "" }, - { "nv!18273276", "" }, - { "nv!1854d03b", "" }, - { "nv!18add00d", "" }, - { "nv!19156670", "" }, - { "nv!19286545", "" }, - { "nv!1a298e9f", "" }, - { "nv!1acf43fe", "" }, - { "nv!1bda43fe", "" }, - { "nv!1c3b92", "" }, - { "nv!21509920", "" }, - { "nv!215323457", "" }, - { "nv!2165ad", "" }, - { "nv!2165ae", "" }, - { "nv!21be9c", "" }, - { "nv!233264316", "" }, - { "nv!234557580", "" }, - { "nv!23cd0e", "" }, - { "nv!24189123", "" }, - { "nv!2443266", "" }, - { "nv!25025519", "" }, - { "nv!255e39", "" }, - { "nv!2583364", "" }, - { "nv!2888c1", "" }, - { "nv!28ca3e", "" }, - { "nv!29871243", "" }, - { "nv!2a1f64", "" }, - { "nv!2dc432", "" }, - { "nv!2de437", "" }, - { "nv!2f3bb89c", "" }, - { "nv!2fd652", "" }, - { "nv!3001ac", "" }, - { "nv!31298772", "" }, - { "nv!313233", "" }, - { "nv!31f7d603", "" }, - { "nv!320ce4", "" }, - { "nv!32153248", "" }, - { "nv!32153249", "" }, - { "nv!335bca", "" }, - { "nv!342abb", "" }, - { "nv!34dfe6", "" }, - { "nv!34dfe7", "" }, - { "nv!34dfe8", "" }, - { "nv!34dfe9", "" }, - { "nv!35201578", "" }, - { "nv!359278", "" }, - { "nv!37f53a", "" }, - { "nv!38144972", "" }, - { "nv!38542646", "" }, - { "nv!3b74c9", "" }, - { "nv!3c136f", "" }, - { "nv!3cf72823", "" }, - { "nv!3d7af029", "" }, - { "nv!3ff34782", "" }, - { "nv!4129618", "" }, - { "nv!4189fac3", "" }, - { "nv!420bd4", "" }, - { "nv!42a699", "" }, - { "nv!441369", "" }, - { "nv!4458713e", "" }, - { "nv!4554b6", "" }, - { "nv!457425", "" }, - { "nv!4603b207", "" }, - { "nv!46574957", "" }, - { "nv!46574958", "" }, - { "nv!46813529", "" }, - { "nv!46f1e13d", "" }, - { "nv!47534c43", "" }, - { "nv!48550336", "" }, - { "nv!48576893", "" }, - { "nv!48576894", "" }, - { "nv!4889ac02", "" }, - { "nv!49005740", "" }, - { "nv!49867584", "" }, - { "nv!49960973", "" }, - { "nv!4a5341", "" }, - { "nv!4f4e48", "" }, - { "nv!4f8a0a", "" }, - { "nv!50299698", "" }, - { "nv!50299699", "" }, - { "nv!50361291", "" }, - { "nv!5242ae", "" }, - { "nv!53d30c", "" }, - { "nv!56347a", "" }, - { "nv!563a95f1", "" }, - { "nv!573823", "" }, - { "nv!58027529", "" }, - { "nv!5d2d63", "" }, - { "nv!5f7e3b", "" }, - { "nv!60461793", "" }, - { "nv!60d355", "" }, - { "nv!616627aa", "" }, - { "nv!62317182", "" }, - { "nv!6253fa2e", "" }, - { "nv!64100768", "" }, - { "nv!64100769", "" }, - { "nv!64100770", "" }, - { "nv!647395", "" }, - { "nv!66543234", "" }, - { "nv!67674763", "" }, - { "nv!67739784", "" }, - { "nv!68fb9c", "" }, - { "nv!69801276", "" }, - { "nv!6af9fa2f", "" }, - { "nv!6af9fa3f", "" }, - { "nv!6af9fa4f", "" }, - { "nv!6bd8c7", "" }, - { "nv!6c7691", "" }, - { "nv!6d4296ce", "" }, - { "nv!6dd7e7", "" }, - { "nv!6dd7e8", "" }, - { "nv!6fe11ec1", "" }, - { "nv!716511763", "" }, - { "nv!72504593", "" }, - { "nv!73304097", "" }, - { "nv!73314098", "" }, - { "nv!74095213", "" }, - { "nv!74095213a", "" }, - { "nv!74095213b", "" }, - { "nv!74095214", "" }, - { "nv!748f9649", "" }, - { "nv!75494732", "" }, - { "nv!78452832", "" }, - { "nv!784561", "" }, - { "nv!78e16b9c", "" }, - { "nv!79251225", "" }, - { "nv!7c128b", "" }, - { "nv!7ccd93", "" }, - { "nv!7df8d1", "" }, - { "nv!800c2310", "" }, - { "nv!80546710", "" }, - { "nv!80772310", "" }, - { "nv!808ee280", "" }, - { "nv!81131154", "" }, - { "nv!81274457", "" }, - { "nv!8292291f", "" }, - { "nv!83498426", "" }, - { "nv!84993794", "" }, - { "nv!84995585", "" }, - { "nv!84a0a0", "" }, - { "nv!852142", "" }, - { "nv!85612309", "" }, - { "nv!85612310", "" }, - { "nv!85612311", "" }, - { "nv!85612312", "" }, - { "nv!8623ff27", "" }, - { "nv!87364952", "" }, - { "nv!87f6275666", "" }, - { "nv!886748", "" }, - { "nv!89894423", "" }, - { "nv!8ad8a75", "" }, - { "nv!8ad8ad00", "" }, - { "nv!8bb815", "" }, - { "nv!8bb817", "" }, - { "nv!8bb818", "" }, - { "nv!8bb819", "" }, - { "nv!8e640cd1", "" }, - { "nv!8f34971a", "" }, - { "nv!8f773984", "" }, - { "nv!8f7a7d", "" }, - { "nv!902486209", "" }, - { "nv!90482571", "" }, - { "nv!91214835", "" }, - { "nv!912848290", "" }, - { "nv!915e56", "" }, - { "nv!92179063", "" }, - { "nv!92179064", "" }, - { "nv!92179065", "" }, - { "nv!92179066", "" }, - { "nv!92350358", "" }, - { "nv!92809063", "" }, - { "nv!92809064", "" }, - { "nv!92809065", "" }, - { "nv!92809066", "" }, - { "nv!92920143", "" }, - { "nv!93a89b12", "" }, - { "nv!93a89c0b", "" }, - { "nv!94812574", "" }, - { "nv!95282304", "" }, - { "nv!95394027", "" }, - { "nv!959b1f", "" }, - { "nv!9638af", "" }, - { "nv!96fd59", "" }, - { "nv!97f6275666", "" }, - { "nv!97f6275667", "" }, - { "nv!97f6275668", "" }, - { "nv!97f6275669", "" }, - { "nv!97f627566a", "" }, - { "nv!97f627566b", "" }, - { "nv!97f627566d", "" }, - { "nv!97f627566e", "" }, - { "nv!97f627566f", "" }, - { "nv!97f6275670", "" }, - { "nv!97f6275671", "" }, - { "nv!97f727566e", "" }, - { "nv!98480775", "" }, - { "nv!98480776", "" }, - { "nv!98480777", "" }, - { "nv!992431", "" }, - { "nv!9aa29065", "" }, - { "nv!9af32c", "" }, - { "nv!9af32d", "" }, - { "nv!9af32e", "" }, - { "nv!9c108b71", "" }, - { "nv!9f279065", "" }, - { "nv!a01bc728", "" }, - { "nv!a13b46c80", "" }, - { "nv!a22eb0", "" }, - { "nv!a2fb451e", "" }, - { "nv!a3456abe", "" }, - { "nv!a7044887", "" }, - { "nv!a7149200", "" }, - { "nv!a766215670", "" }, - { "nv!aac_drc_boost", "" }, - { "nv!aac_drc_cut", "" }, - { "nv!aac_drc_enc_target_level", "" }, - { "nv!aac_drc_heavy", "" }, - { "nv!aac_drc_reference_level", "" }, - { "nv!aalinegamma", "" }, - { "nv!aalinetweaks", "" }, - { "nv!ab34ee01", "" }, - { "nv!ab34ee02", "" }, - { "nv!ab34ee03", "" }, - { "nv!ac0274", "" }, - { "nv!af73c63e", "" }, - { "nv!af73c63f", "" }, - { "nv!af9927", "" }, - { "nv!afoverride", "" }, - { "nv!allocdeviceevents", "" }, - { "nv!applicationkey", "" }, - { "nv!appreturnonlybasicglsltype", "" }, - { "nv!app_softimage", "" }, - { "nv!app_supportbits2", "" }, - { "nv!assumetextureismipmappedatcreation", "" }, - { "nv!b1fb0f01", "" }, - { "nv!b3edd5", "" }, - { "nv!b40d9e03d", "" }, - { "nv!b7f6275666", "" }, - { "nv!b812c1", "" }, - { "nv!ba14ba1a", "" }, - { "nv!ba14ba1b", "" }, - { "nv!bd7559", "" }, - { "nv!bd755a", "" }, - { "nv!bd755c", "" }, - { "nv!bd755d", "" }, - { "nv!be58bb", "" }, - { "nv!be92cb", "" }, - { "nv!beefcba3", "" }, - { "nv!beefcba4", "" }, - { "nv!c023777f", "" }, - { "nv!c09dc8", "" }, - { "nv!c0d340", "" }, - { "nv!c2ff374c", "" }, - { "nv!c5e9d7a3", "" }, - { "nv!c5e9d7a4", "" }, - { "nv!c5e9d7b4", "" }, - { "nv!c618f9", "" }, - { "nv!ca345840", "" }, - { "nv!cachedisable", "" }, - { "nv!cast.on", "" }, - { "nv!cde", "" }, - { "nv!channelpriorityoverride", "" }, - { "nv!cleardatastorevidmem", "" }, - { "nv!cmdbufmemoryspaceenables", "" }, - { "nv!cmdbufminwords", "" }, - { "nv!cmdbufsizewords", "" }, - { "nv!conformantblitframebufferscissor", "" }, - { "nv!conformantincompletetextures", "" }, - { "nv!copybuffermethod", "" }, - { "nv!cubemapaniso", "" }, - { "nv!cubemapfiltering", "" }, - { "nv!d0e9a4d7", "" }, - { "nv!d13733f12", "" }, - { "nv!d1b399", "" }, - { "nv!d2983c32", "" }, - { "nv!d2983c33", "" }, - { "nv!d2e71b", "" }, - { "nv!d377dc", "" }, - { "nv!d377dd", "" }, - { "nv!d489f4", "" }, - { "nv!d4bce1", "" }, - { "nv!d518cb", "" }, - { "nv!d518cd", "" }, - { "nv!d518ce", "" }, - { "nv!d518d0", "" }, - { "nv!d518d1", "" }, - { "nv!d518d2", "" }, - { "nv!d518d3", "" }, - { "nv!d518d4", "" }, - { "nv!d518d5", "" }, - { "nv!d59eda", "" }, - { "nv!d83cbd", "" }, - { "nv!d8e777", "" }, - { "nv!debug_level", "" }, - { "nv!debug_mask", "" }, - { "nv!debug_options", "" }, - { "nv!devshmpageableallocations", "" }, - { "nv!df1f9812", "" }, - { "nv!df783c", "" }, - { "nv!diagenable", "" }, - { "nv!disallowcemask", "" }, - { "nv!disallowz16", "" }, - { "nv!dlmemoryspaceenables", "" }, - { "nv!e0bfec", "" }, - { "nv!e433456d", "" }, - { "nv!e435563f", "" }, - { "nv!e4cd9c", "" }, - { "nv!e5c972", "" }, - { "nv!e639ef", "" }, - { "nv!e802af", "" }, - { "nv!eae964", "" }, - { "nv!earlytexturehwallocation", "" }, - { "nv!eb92a3", "" }, - { "nv!ebca56", "" }, - { "nv!enable-noaud", "" }, - { "nv!enable-noavs", "" }, - { "nv!enable-prof", "" }, - { "nv!enable-sxesmode", "" }, - { "nv!enable-ulld", "" }, - { "nv!expert_detail_level", "" }, - { "nv!expert_output_mask", "" }, - { "nv!expert_report_mask", "" }, - { "nv!extensionstringnvarch", "" }, - { "nv!extensionstringversion", "" }, - { "nv!f00f1938", "" }, - { "nv!f10736", "" }, - { "nv!f1846870", "" }, - { "nv!f33bc370", "" }, - { "nv!f392a874", "" }, - { "nv!f49ae8", "" }, - { "nv!fa345cce", "" }, - { "nv!fa35cc4", "" }, - { "nv!faa14a", "" }, - { "nv!faf8a723", "" }, - { "nv!fastgs", "" }, - { "nv!fbf4ac45", "" }, - { "nv!fbo_blit_ignore_srgb", "" }, - { "nv!fc64c7", "" }, - { "nv!ff54ec97", "" }, - { "nv!ff54ec98", "" }, - { "nv!forceexitprocessdetach", "" }, - { "nv!forcerequestedesversion", "" }, - { "nv!__gl_", "" }, - { "nv!__gl_00008600", "" }, - { "nv!__gl_0007b25e", "" }, - { "nv!__gl_0083e1", "" }, - { "nv!__gl_01621887", "" }, - { "nv!__gl_03134743", "" }, - { "nv!__gl_0356afd0", "" }, - { "nv!__gl_0356afd1", "" }, - { "nv!__gl_0356afd2", "" }, - { "nv!__gl_0356afd3", "" }, - { "nv!__gl_094313", "" }, - { "nv!__gl_0x04dc09", "" }, - { "nv!__gl_0x111133", "" }, - { "nv!__gl_0x1aa483", "" }, - { "nv!__gl_0x1cb1cf", "" }, - { "nv!__gl_0x1cb1d0", "" }, - { "nv!__gl_0x1e3221", "" }, - { "nv!__gl_0x300fc8", "" }, - { "nv!__gl_0x301fc8", "" }, - { "nv!__gl_0x302fc8", "" }, - { "nv!__gl_0x3eec59", "" }, - { "nv!__gl_0x46b3ed", "" }, - { "nv!__gl_0x523dc0", "" }, - { "nv!__gl_0x523dc1", "" }, - { "nv!__gl_0x523dc2", "" }, - { "nv!__gl_0x523dc3", "" }, - { "nv!__gl_0x523dc4", "" }, - { "nv!__gl_0x523dc5", "" }, - { "nv!__gl_0x523dc6", "" }, - { "nv!__gl_0x523dd0", "" }, - { "nv!__gl_0x523dd1", "" }, - { "nv!__gl_0x523dd3", "" }, - { "nv!__gl_0x5344bb", "" }, - { "nv!__gl_0x555237", "" }, - { "nv!__gl_0x58a234", "" }, - { "nv!__gl_0x7b4428", "" }, - { "nv!__gl_0x923dc0", "" }, - { "nv!__gl_0x923dc1", "" }, - { "nv!__gl_0x923dc2", "" }, - { "nv!__gl_0x923dc3", "" }, - { "nv!__gl_0x923dc4", "" }, - { "nv!__gl_0x923dd3", "" }, - { "nv!__gl_0x9abdc5", "" }, - { "nv!__gl_0x9abdc6", "" }, - { "nv!__gl_0xaaa36c", "" }, - { "nv!__gl_0xb09da0", "" }, - { "nv!__gl_0xb09da1", "" }, - { "nv!__gl_0xb09da2", "" }, - { "nv!__gl_0xb09da3", "" }, - { "nv!__gl_0xb09da4", "" }, - { "nv!__gl_0xb09da5", "" }, - { "nv!__gl_0xb0b348", "" }, - { "nv!__gl_0xb0b349", "" }, - { "nv!__gl_0xbb558f", "" }, - { "nv!__gl_0xbd10fb", "" }, - { "nv!__gl_0xc32ad3", "" }, - { "nv!__gl_0xce2348", "" }, - { "nv!__gl_0xcfd81f", "" }, - { "nv!__gl_0xe0036b", "" }, - { "nv!__gl_0xe01f2d", "" }, - { "nv!__gl_0xe17212", "" }, - { "nv!__gl_0xeae966", "" }, - { "nv!__gl_0xed4f82", "" }, - { "nv!__gl_0xf12335", "" }, - { "nv!__gl_0xf12336", "" }, - { "nv!__gl_10261989", "" }, - { "nv!__gl_1042d483", "" }, - { "nv!__gl_10572898", "" }, - { "nv!__gl_115631", "" }, - { "nv!__gl_12950094", "" }, - { "nv!__gl_1314f311", "" }, - { "nv!__gl_1314f312", "" }, - { "nv!__gl_13279512", "" }, - { "nv!__gl_13813496", "" }, - { "nv!__gl_14507179", "" }, - { "nv!__gl_15694569", "" }, - { "nv!__gl_16936964", "" }, - { "nv!__gl_17aa230c", "" }, - { "nv!__gl_182054", "" }, - { "nv!__gl_18273275", "" }, - { "nv!__gl_18273276", "" }, - { "nv!__gl_1854d03b", "" }, - { "nv!__gl_18add00d", "" }, - { "nv!__gl_19156670", "" }, - { "nv!__gl_19286545", "" }, - { "nv!__gl_1a298e9f", "" }, - { "nv!__gl_1acf43fe", "" }, - { "nv!__gl_1bda43fe", "" }, - { "nv!__gl_1c3b92", "" }, - { "nv!__gl_21509920", "" }, - { "nv!__gl_215323457", "" }, - { "nv!__gl_2165ad", "" }, - { "nv!__gl_2165ae", "" }, - { "nv!__gl_21be9c", "" }, - { "nv!__gl_233264316", "" }, - { "nv!__gl_234557580", "" }, - { "nv!__gl_23cd0e", "" }, - { "nv!__gl_24189123", "" }, - { "nv!__gl_2443266", "" }, - { "nv!__gl_25025519", "" }, - { "nv!__gl_255e39", "" }, - { "nv!__gl_2583364", "" }, - { "nv!__gl_2888c1", "" }, - { "nv!__gl_28ca3e", "" }, - { "nv!__gl_29871243", "" }, - { "nv!__gl_2a1f64", "" }, - { "nv!__gl_2dc432", "" }, - { "nv!__gl_2de437", "" }, - { "nv!__gl_2f3bb89c", "" }, - { "nv!__gl_2fd652", "" }, - { "nv!__gl_3001ac", "" }, - { "nv!__gl_31298772", "" }, - { "nv!__gl_313233", "" }, - { "nv!__gl_31f7d603", "" }, - { "nv!__gl_320ce4", "" }, - { "nv!__gl_32153248", "" }, - { "nv!__gl_32153249", "" }, - { "nv!__gl_335bca", "" }, - { "nv!__gl_342abb", "" }, - { "nv!__gl_34dfe6", "" }, - { "nv!__gl_34dfe7", "" }, - { "nv!__gl_34dfe8", "" }, - { "nv!__gl_34dfe9", "" }, - { "nv!__gl_35201578", "" }, - { "nv!__gl_359278", "" }, - { "nv!__gl_37f53a", "" }, - { "nv!__gl_38144972", "" }, - { "nv!__gl_38542646", "" }, - { "nv!__gl_3b74c9", "" }, - { "nv!__gl_3c136f", "" }, - { "nv!__gl_3cf72823", "" }, - { "nv!__gl_3d7af029", "" }, - { "nv!__gl_3ff34782", "" }, - { "nv!__gl_4129618", "" }, - { "nv!__gl_4189fac3", "" }, - { "nv!__gl_420bd4", "" }, - { "nv!__gl_42a699", "" }, - { "nv!__gl_441369", "" }, - { "nv!__gl_4458713e", "" }, - { "nv!__gl_4554b6", "" }, - { "nv!__gl_457425", "" }, - { "nv!__gl_4603b207", "" }, - { "nv!__gl_46574957", "" }, - { "nv!__gl_46574958", "" }, - { "nv!__gl_46813529", "" }, - { "nv!__gl_46f1e13d", "" }, - { "nv!__gl_47534c43", "" }, - { "nv!__gl_48550336", "" }, - { "nv!__gl_48576893", "" }, - { "nv!__gl_48576894", "" }, - { "nv!__gl_4889ac02", "" }, - { "nv!__gl_49005740", "" }, - { "nv!__gl_49867584", "" }, - { "nv!__gl_49960973", "" }, - { "nv!__gl_4a5341", "" }, - { "nv!__gl_4f4e48", "" }, - { "nv!__gl_4f8a0a", "" }, - { "nv!__gl_50299698", "" }, - { "nv!__gl_50299699", "" }, - { "nv!__gl_50361291", "" }, - { "nv!__gl_5242ae", "" }, - { "nv!__gl_53d30c", "" }, - { "nv!__gl_56347a", "" }, - { "nv!__gl_563a95f1", "" }, - { "nv!__gl_573823", "" }, - { "nv!__gl_58027529", "" }, - { "nv!__gl_5d2d63", "" }, - { "nv!__gl_5f7e3b", "" }, - { "nv!__gl_60461793", "" }, - { "nv!__gl_60d355", "" }, - { "nv!__gl_616627aa", "" }, - { "nv!__gl_62317182", "" }, - { "nv!__gl_6253fa2e", "" }, - { "nv!__gl_64100768", "" }, - { "nv!__gl_64100769", "" }, - { "nv!__gl_64100770", "" }, - { "nv!__gl_647395", "" }, - { "nv!__gl_66543234", "" }, - { "nv!__gl_67674763", "" }, - { "nv!__gl_67739784", "" }, - { "nv!__gl_68fb9c", "" }, - { "nv!__gl_69801276", "" }, - { "nv!__gl_6af9fa2f", "" }, - { "nv!__gl_6af9fa3f", "" }, - { "nv!__gl_6af9fa4f", "" }, - { "nv!__gl_6bd8c7", "" }, - { "nv!__gl_6c7691", "" }, - { "nv!__gl_6d4296ce", "" }, - { "nv!__gl_6dd7e7", "" }, - { "nv!__gl_6dd7e8", "" }, - { "nv!__gl_6fe11ec1", "" }, - { "nv!__gl_716511763", "" }, - { "nv!__gl_72504593", "" }, - { "nv!__gl_73304097", "" }, - { "nv!__gl_73314098", "" }, - { "nv!__gl_74095213", "" }, - { "nv!__gl_74095213a", "" }, - { "nv!__gl_74095213b", "" }, - { "nv!__gl_74095214", "" }, - { "nv!__gl_748f9649", "" }, - { "nv!__gl_75494732", "" }, - { "nv!__gl_78452832", "" }, - { "nv!__gl_784561", "" }, - { "nv!__gl_78e16b9c", "" }, - { "nv!__gl_79251225", "" }, - { "nv!__gl_7c128b", "" }, - { "nv!__gl_7ccd93", "" }, - { "nv!__gl_7df8d1", "" }, - { "nv!__gl_800c2310", "" }, - { "nv!__gl_80546710", "" }, - { "nv!__gl_80772310", "" }, - { "nv!__gl_808ee280", "" }, - { "nv!__gl_81131154", "" }, - { "nv!__gl_81274457", "" }, - { "nv!__gl_8292291f", "" }, - { "nv!__gl_83498426", "" }, - { "nv!__gl_84993794", "" }, - { "nv!__gl_84995585", "" }, - { "nv!__gl_84a0a0", "" }, - { "nv!__gl_852142", "" }, - { "nv!__gl_85612309", "" }, - { "nv!__gl_85612310", "" }, - { "nv!__gl_85612311", "" }, - { "nv!__gl_85612312", "" }, - { "nv!__gl_8623ff27", "" }, - { "nv!__gl_87364952", "" }, - { "nv!__gl_87f6275666", "" }, - { "nv!__gl_886748", "" }, - { "nv!__gl_89894423", "" }, - { "nv!__gl_8ad8a75", "" }, - { "nv!__gl_8ad8ad00", "" }, - { "nv!__gl_8bb815", "" }, - { "nv!__gl_8bb817", "" }, - { "nv!__gl_8bb818", "" }, - { "nv!__gl_8bb819", "" }, - { "nv!__gl_8e640cd1", "" }, - { "nv!__gl_8f34971a", "" }, - { "nv!__gl_8f773984", "" }, - { "nv!__gl_8f7a7d", "" }, - { "nv!__gl_902486209", "" }, - { "nv!__gl_90482571", "" }, - { "nv!__gl_91214835", "" }, - { "nv!__gl_912848290", "" }, - { "nv!__gl_915e56", "" }, - { "nv!__gl_92179063", "" }, - { "nv!__gl_92179064", "" }, - { "nv!__gl_92179065", "" }, - { "nv!__gl_92179066", "" }, - { "nv!__gl_92350358", "" }, - { "nv!__gl_92809063", "" }, - { "nv!__gl_92809064", "" }, - { "nv!__gl_92809065", "" }, - { "nv!__gl_92809066", "" }, - { "nv!__gl_92920143", "" }, - { "nv!__gl_93a89b12", "" }, - { "nv!__gl_93a89c0b", "" }, - { "nv!__gl_94812574", "" }, - { "nv!__gl_95282304", "" }, - { "nv!__gl_95394027", "" }, - { "nv!__gl_959b1f", "" }, - { "nv!__gl_9638af", "" }, - { "nv!__gl_96fd59", "" }, - { "nv!__gl_97f6275666", "" }, - { "nv!__gl_97f6275667", "" }, - { "nv!__gl_97f6275668", "" }, - { "nv!__gl_97f6275669", "" }, - { "nv!__gl_97f627566a", "" }, - { "nv!__gl_97f627566b", "" }, - { "nv!__gl_97f627566d", "" }, - { "nv!__gl_97f627566e", "" }, - { "nv!__gl_97f627566f", "" }, - { "nv!__gl_97f6275670", "" }, - { "nv!__gl_97f6275671", "" }, - { "nv!__gl_97f727566e", "" }, - { "nv!__gl_98480775", "" }, - { "nv!__gl_98480776", "" }, - { "nv!__gl_98480777", "" }, - { "nv!__gl_992431", "" }, - { "nv!__gl_9aa29065", "" }, - { "nv!__gl_9af32c", "" }, - { "nv!__gl_9af32d", "" }, - { "nv!__gl_9af32e", "" }, - { "nv!__gl_9c108b71", "" }, - { "nv!__gl_9f279065", "" }, - { "nv!__gl_a01bc728", "" }, - { "nv!__gl_a13b46c80", "" }, - { "nv!__gl_a22eb0", "" }, - { "nv!__gl_a2fb451e", "" }, - { "nv!__gl_a3456abe", "" }, - { "nv!__gl_a7044887", "" }, - { "nv!__gl_a7149200", "" }, - { "nv!__gl_a766215670", "" }, - { "nv!__gl_aalinegamma", "" }, - { "nv!__gl_aalinetweaks", "" }, - { "nv!__gl_ab34ee01", "" }, - { "nv!__gl_ab34ee02", "" }, - { "nv!__gl_ab34ee03", "" }, - { "nv!__gl_ac0274", "" }, - { "nv!__gl_af73c63e", "" }, - { "nv!__gl_af73c63f", "" }, - { "nv!__gl_af9927", "" }, - { "nv!__gl_afoverride", "" }, - { "nv!__gl_allocdeviceevents", "" }, - { "nv!__gl_applicationkey", "" }, - { "nv!__gl_appreturnonlybasicglsltype", "" }, - { "nv!__gl_app_softimage", "" }, - { "nv!__gl_app_supportbits2", "" }, - { "nv!__gl_assumetextureismipmappedatcreation", "" }, - { "nv!__gl_b1fb0f01", "" }, - { "nv!__gl_b3edd5", "" }, - { "nv!__gl_b40d9e03d", "" }, - { "nv!__gl_b7f6275666", "" }, - { "nv!__gl_b812c1", "" }, - { "nv!__gl_ba14ba1a", "" }, - { "nv!__gl_ba14ba1b", "" }, - { "nv!__gl_bd7559", "" }, - { "nv!__gl_bd755a", "" }, - { "nv!__gl_bd755c", "" }, - { "nv!__gl_bd755d", "" }, - { "nv!__gl_be58bb", "" }, - { "nv!__gl_be92cb", "" }, - { "nv!__gl_beefcba3", "" }, - { "nv!__gl_beefcba4", "" }, - { "nv!__gl_c023777f", "" }, - { "nv!__gl_c09dc8", "" }, - { "nv!__gl_c0d340", "" }, - { "nv!__gl_c2ff374c", "" }, - { "nv!__gl_c5e9d7a3", "" }, - { "nv!__gl_c5e9d7a4", "" }, - { "nv!__gl_c5e9d7b4", "" }, - { "nv!__gl_c618f9", "" }, - { "nv!__gl_ca345840", "" }, - { "nv!__gl_cachedisable", "" }, - { "nv!__gl_channelpriorityoverride", "" }, - { "nv!__gl_cleardatastorevidmem", "" }, - { "nv!__gl_cmdbufmemoryspaceenables", "" }, - { "nv!__gl_cmdbufminwords", "" }, - { "nv!__gl_cmdbufsizewords", "" }, - { "nv!__gl_conformantblitframebufferscissor", "" }, - { "nv!__gl_conformantincompletetextures", "" }, - { "nv!__gl_copybuffermethod", "" }, - { "nv!__gl_cubemapaniso", "" }, - { "nv!__gl_cubemapfiltering", "" }, - { "nv!__gl_d0e9a4d7", "" }, - { "nv!__gl_d13733f12", "" }, - { "nv!__gl_d1b399", "" }, - { "nv!__gl_d2983c32", "" }, - { "nv!__gl_d2983c33", "" }, - { "nv!__gl_d2e71b", "" }, - { "nv!__gl_d377dc", "" }, - { "nv!__gl_d377dd", "" }, - { "nv!__gl_d489f4", "" }, - { "nv!__gl_d4bce1", "" }, - { "nv!__gl_d518cb", "" }, - { "nv!__gl_d518cd", "" }, - { "nv!__gl_d518ce", "" }, - { "nv!__gl_d518d0", "" }, - { "nv!__gl_d518d1", "" }, - { "nv!__gl_d518d2", "" }, - { "nv!__gl_d518d3", "" }, - { "nv!__gl_d518d4", "" }, - { "nv!__gl_d518d5", "" }, - { "nv!__gl_d59eda", "" }, - { "nv!__gl_d83cbd", "" }, - { "nv!__gl_d8e777", "" }, - { "nv!__gl_debug_level", "" }, - { "nv!__gl_debug_mask", "" }, - { "nv!__gl_debug_options", "" }, - { "nv!__gl_devshmpageableallocations", "" }, - { "nv!__gl_df1f9812", "" }, - { "nv!__gl_df783c", "" }, - { "nv!__gl_diagenable", "" }, - { "nv!__gl_disallowcemask", "" }, - { "nv!__gl_disallowz16", "" }, - { "nv!__gl_dlmemoryspaceenables", "" }, - { "nv!__gl_e0bfec", "" }, - { "nv!__gl_e433456d", "" }, - { "nv!__gl_e435563f", "" }, - { "nv!__gl_e4cd9c", "" }, - { "nv!__gl_e5c972", "" }, - { "nv!__gl_e639ef", "" }, - { "nv!__gl_e802af", "" }, - { "nv!__gl_eae964", "" }, - { "nv!__gl_earlytexturehwallocation", "" }, - { "nv!__gl_eb92a3", "" }, - { "nv!__gl_ebca56", "" }, - { "nv!__gl_expert_detail_level", "" }, - { "nv!__gl_expert_output_mask", "" }, - { "nv!__gl_expert_report_mask", "" }, - { "nv!__gl_extensionstringnvarch", "" }, - { "nv!__gl_extensionstringversion", "" }, - { "nv!__gl_f00f1938", "" }, - { "nv!__gl_f10736", "" }, - { "nv!__gl_f1846870", "" }, - { "nv!__gl_f33bc370", "" }, - { "nv!__gl_f392a874", "" }, - { "nv!__gl_f49ae8", "" }, - { "nv!__gl_fa345cce", "" }, - { "nv!__gl_fa35cc4", "" }, - { "nv!__gl_faa14a", "" }, - { "nv!__gl_faf8a723", "" }, - { "nv!__gl_fastgs", "" }, - { "nv!__gl_fbf4ac45", "" }, - { "nv!__gl_fbo_blit_ignore_srgb", "" }, - { "nv!__gl_fc64c7", "" }, - { "nv!__gl_ff54ec97", "" }, - { "nv!__gl_ff54ec98", "" }, - { "nv!__gl_forceexitprocessdetach", "" }, - { "nv!__gl_forcerequestedesversion", "" }, - { "nv!__gl_glsynctovblank", "" }, - { "nv!__gl_gvitimeoutcontrol", "" }, - { "nv!__gl_hcctrl", "" }, - { "nv!__gl_hwstate_per_ctx", "" }, - { "nv!__gl_machinecachelimit", "" }, - { "nv!__gl_maxframesallowed", "" }, - { "nv!__gl_memmgrcachedalloclimit", "" }, - { "nv!__gl_memmgrcachedalloclimitratio", "" }, - { "nv!__gl_memmgrsysheapalloclimit", "" }, - { "nv!__gl_memmgrsysheapalloclimitratio", "" }, - { "nv!__gl_memmgrvidheapalloclimit", "" }, - { "nv!__gl_mosaic_clip_to_subdev", "" }, - { "nv!__gl_mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!__gl_mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!__gl_overlaymergeblittimerms", "" }, - { "nv!__gl_perfmon_mode", "" }, - { "nv!__gl_pixbar_mode", "" }, - { "nv!__gl_qualityenhancements", "" }, - { "nv!__gl_r27s18q28", "" }, - { "nv!__gl_r2d7c1d8", "" }, - { "nv!__gl_renderer", "" }, - { "nv!__gl_renderqualityflags", "" }, - { "nv!__gl_s3tcquality", "" }, - { "nv!__gl_shaderatomics", "" }, - { "nv!__gl_shadercacheinitsize", "" }, - { "nv!__gl_shader_disk_cache_path", "" }, - { "nv!__gl_shader_disk_cache_read_only", "" }, - { "nv!__gl_shaderobjects", "" }, - { "nv!__gl_shaderportabilitywarnings", "" }, - { "nv!__gl_shaderwarningsaserrors", "" }, - { "nv!__gl_skiptexturehostcopies", "" }, - { "nv!__glslc_debug_level", "" }, - { "nv!__glslc_debug_mask", "" }, - { "nv!__glslc_debug_options", "" }, - { "nv!__glslc_debug_filename", "" }, - { "nv!__gl_sli_dli_control", "" }, - { "nv!__gl_sparsetexture", "" }, - { "nv!__gl_spinlooptimeout", "" }, - { "nv!__gl_sync_to_vblank", "" }, - { "nv!glsynctovblank", "" }, - { "nv!__gl_sysheapreuseratio", "" }, - { "nv!__gl_sysmemtexturepromotion", "" }, - { "nv!__gl_targetflushcount", "" }, - { "nv!__gl_tearingfreeswappresent", "" }, - { "nv!__gl_texclampbehavior", "" }, - { "nv!__gl_texlodbias", "" }, - { "nv!__gl_texmemoryspaceenables", "" }, - { "nv!__gl_textureprecache", "" }, - { "nv!__gl_threadcontrol", "" }, - { "nv!__gl_threadcontrol2", "" }, - { "nv!__gl_usegvievents", "" }, - { "nv!__gl_vbomemoryspaceenables", "" }, - { "nv!__gl_vertexlimit", "" }, - { "nv!__gl_vidheapreuseratio", "" }, - { "nv!__gl_vpipe", "" }, - { "nv!__gl_vpipeformatbloatlimit", "" }, - { "nv!__gl_wglmessageboxonabort", "" }, - { "nv!__gl_writeinfolog", "" }, - { "nv!__gl_writeprogramobjectassembly", "" }, - { "nv!__gl_writeprogramobjectsource", "" }, - { "nv!__gl_xnvadapterpresent", "" }, - { "nv!__gl_yield", "" }, - { "nv!__gl_yieldfunction", "" }, - { "nv!__gl_yieldfunctionfast", "" }, - { "nv!__gl_yieldfunctionslow", "" }, - { "nv!__gl_yieldfunctionwaitfordcqueue", "" }, - { "nv!__gl_yieldfunctionwaitforframe", "" }, - { "nv!__gl_yieldfunctionwaitforgpu", "" }, - { "nv!__gl_zbctableaddhysteresis", "" }, - { "nv!gpu_debug_mode", "" }, - { "nv!gpu_stay_on", "" }, - { "nv!gpu_timeout_ms_max", "" }, - { "nv!gvitimeoutcontrol", "" }, - { "nv!hcctrl", "" }, - { "nv!hwstate_per_ctx", "" }, - { "nv!libandroid_enable_log", "" }, - { "nv!machinecachelimit", "" }, - { "nv!maxframesallowed", "" }, - { "nv!media.aac_51_output_enabled", "" }, - { "nv!memmgrcachedalloclimit", "" }, - { "nv!memmgrcachedalloclimitratio", "" }, - { "nv!memmgrsysheapalloclimit", "" }, - { "nv!memmgrsysheapalloclimitratio", "" }, - { "nv!memmgrvidheapalloclimit", "" }, - { "nv!mosaic_clip_to_subdev", "" }, - { "nv!mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!nvblit.dump", "" }, - { "nv!nvblit.profile", "" }, - { "nv!nvblit.twod", "" }, - { "nv!nvblit.vic", "" }, - { "nv!nvddk_vic_prevent_use", "" }, - { "nv!nv_decompression", "" }, - { "nv!nvdisp_bl_ctrl", "0" }, - { "nv!nvdisp_debug_mask", "" }, - { "nv!nvdisp_enable_ts", "0" }, - { "nv!nvhdcp_timeout_ms", "12000" }, - { "nv!nvhdcp_max_retries", "5" }, - { "nv!nv_emc_dvfs_test", "" }, - { "nv!nv_emc_init_rate_hz", "" }, - { "nv!nv_gmmu_va_page_split", "" }, - { "nv!nv_gmmu_va_range", "" }, - { "nv!nvhost_debug_mask", "" }, - { "nv!nvidia.hwc.dump_config", "" }, - { "nv!nvidia.hwc.dump_layerlist", "" }, - { "nv!nvidia.hwc.dump_windows", "" }, - { "nv!nvidia.hwc.enable_disp_trans", "" }, - { "nv!nvidia.hwc.ftrace_enable", "" }, - { "nv!nvidia.hwc.hdcp_enable", "" }, - { "nv!nvidia.hwc.hidden_window_mask0", "" }, - { "nv!nvidia.hwc.hidden_window_mask1", "" }, - { "nv!nvidia.hwc.immediate_modeset", "" }, - { "nv!nvidia.hwc.imp_enable", "" }, - { "nv!nvidia.hwc.no_egl", "" }, - { "nv!nvidia.hwc.no_scratchblit", "" }, - { "nv!nvidia.hwc.no_vic", "" }, - { "nv!nvidia.hwc.null_display", "" }, - { "nv!nvidia.hwc.scan_props", "" }, - { "nv!nvidia.hwc.swap_interval", "" }, - { "nv!nvidia.hwc.war_1515812", "0" }, - { "nv!nvmap_debug_mask", "" }, - { "nv!nv_memory_profiler", "" }, - { "nv!nvnflinger_enable_log", "" }, - { "nv!nvnflinger_flip_policy", "" }, - { "nv!nvnflinger_hotplug_autoswitch", "0" }, - { "nv!nvnflinger_prefer_primary_layer", "0" }, - { "nv!nvnflinger_service_priority", "" }, - { "nv!nvnflinger_service_threads", "" }, - { "nv!nvnflinger_swap_interval", "" }, - { "nv!nvnflinger_track_perf", "" }, - { "nv!nvnflinger_virtualdisplay_policy", "60hz" }, - { "nv!nvn_no_vsync_capability", false }, - { "nv!nvn_through_opengl", "" }, - { "nv!nv_pllcx_always_on", "" }, - { "nv!nv_pllcx_safe_div", "" }, - { "nv!nvrm_gpu_channel_interleave", "" }, - { "nv!nvrm_gpu_channel_priority", "" }, - { "nv!nvrm_gpu_channel_timeslice", "" }, - { "nv!nvrm_gpu_default_device_index", "" }, - { "nv!nvrm_gpu_dummy", "" }, - { "nv!nvrm_gpu_help", "" }, - { "nv!nvrm_gpu_nvgpu_disable", "" }, - { "nv!nvrm_gpu_nvgpu_do_nfa_partial_map", "" }, - { "nv!nvrm_gpu_nvgpu_ecc_overrides", "" }, - { "nv!nvrm_gpu_nvgpu_no_as_get_va_regions", "" }, - { "nv!nvrm_gpu_nvgpu_no_channel_abort", "" }, - { "nv!nvrm_gpu_nvgpu_no_cyclestats", "" }, - { "nv!nvrm_gpu_nvgpu_no_fixed", "" }, - { "nv!nvrm_gpu_nvgpu_no_gpu_characteristics", "" }, - { "nv!nvrm_gpu_nvgpu_no_ioctl_mutex", "" }, - { "nv!nvrm_gpu_nvgpu_no_map_buffer_ex", "" }, - { "nv!nvrm_gpu_nvgpu_no_robustness", "" }, - { "nv!nvrm_gpu_nvgpu_no_sparse", "" }, - { "nv!nvrm_gpu_nvgpu_no_syncpoints", "" }, - { "nv!nvrm_gpu_nvgpu_no_tsg", "" }, - { "nv!nvrm_gpu_nvgpu_no_zbc", "" }, - { "nv!nvrm_gpu_nvgpu_no_zcull", "" }, - { "nv!nvrm_gpu_nvgpu_wrap_channels_in_tsgs", "" }, - { "nv!nvrm_gpu_prevent_use", "" }, - { "nv!nvrm_gpu_trace", "" }, - { "nv!nvsched_debug_mask", "" }, - { "nv!nvsched_force_enable", "" }, - { "nv!nvsched_force_log", "" }, - { "nv!nv_usb_plls_hw_ctrl", "" }, - { "nv!nv_winsys", "" }, - { "nv!nvwsi_dump", "" }, - { "nv!nvwsi_fill", "" }, - { "nv!ogl_", "" }, - { "nv!ogl_0356afd0", "" }, - { "nv!ogl_0356afd1", "" }, - { "nv!ogl_0356afd2", "" }, - { "nv!ogl_0356afd3", "" }, - { "nv!ogl_0x923dc0", "" }, - { "nv!ogl_0x923dc1", "" }, - { "nv!ogl_0x923dc2", "" }, - { "nv!ogl_0x923dc3", "" }, - { "nv!ogl_0x923dc4", "" }, - { "nv!ogl_0x923dd3", "" }, - { "nv!ogl_0x9abdc5", "" }, - { "nv!ogl_0x9abdc6", "" }, - { "nv!ogl_0xbd10fb", "" }, - { "nv!ogl_0xce2348", "" }, - { "nv!ogl_10261989", "" }, - { "nv!ogl_1042d483", "" }, - { "nv!ogl_10572898", "" }, - { "nv!ogl_115631", "" }, - { "nv!ogl_12950094", "" }, - { "nv!ogl_1314f311", "" }, - { "nv!ogl_1314f312", "" }, - { "nv!ogl_13279512", "" }, - { "nv!ogl_13813496", "" }, - { "nv!ogl_14507179", "" }, - { "nv!ogl_15694569", "" }, - { "nv!ogl_16936964", "" }, - { "nv!ogl_17aa230c", "" }, - { "nv!ogl_182054", "" }, - { "nv!ogl_18273275", "" }, - { "nv!ogl_18273276", "" }, - { "nv!ogl_1854d03b", "" }, - { "nv!ogl_18add00d", "" }, - { "nv!ogl_19156670", "" }, - { "nv!ogl_19286545", "" }, - { "nv!ogl_1a298e9f", "" }, - { "nv!ogl_1acf43fe", "" }, - { "nv!ogl_1bda43fe", "" }, - { "nv!ogl_1c3b92", "" }, - { "nv!ogl_21509920", "" }, - { "nv!ogl_215323457", "" }, - { "nv!ogl_2165ad", "" }, - { "nv!ogl_2165ae", "" }, - { "nv!ogl_21be9c", "" }, - { "nv!ogl_233264316", "" }, - { "nv!ogl_234557580", "" }, - { "nv!ogl_23cd0e", "" }, - { "nv!ogl_24189123", "" }, - { "nv!ogl_2443266", "" }, - { "nv!ogl_25025519", "" }, - { "nv!ogl_255e39", "" }, - { "nv!ogl_2583364", "" }, - { "nv!ogl_2888c1", "" }, - { "nv!ogl_28ca3e", "" }, - { "nv!ogl_29871243", "" }, - { "nv!ogl_2a1f64", "" }, - { "nv!ogl_2dc432", "" }, - { "nv!ogl_2de437", "" }, - { "nv!ogl_2f3bb89c", "" }, - { "nv!ogl_2fd652", "" }, - { "nv!ogl_3001ac", "" }, - { "nv!ogl_31298772", "" }, - { "nv!ogl_313233", "" }, - { "nv!ogl_31f7d603", "" }, - { "nv!ogl_320ce4", "" }, - { "nv!ogl_32153248", "" }, - { "nv!ogl_32153249", "" }, - { "nv!ogl_335bca", "" }, - { "nv!ogl_342abb", "" }, - { "nv!ogl_34dfe6", "" }, - { "nv!ogl_34dfe7", "" }, - { "nv!ogl_34dfe8", "" }, - { "nv!ogl_34dfe9", "" }, - { "nv!ogl_35201578", "" }, - { "nv!ogl_359278", "" }, - { "nv!ogl_37f53a", "" }, - { "nv!ogl_38144972", "" }, - { "nv!ogl_38542646", "" }, - { "nv!ogl_3b74c9", "" }, - { "nv!ogl_3c136f", "" }, - { "nv!ogl_3cf72823", "" }, - { "nv!ogl_3d7af029", "" }, - { "nv!ogl_3ff34782", "" }, - { "nv!ogl_4129618", "" }, - { "nv!ogl_4189fac3", "" }, - { "nv!ogl_420bd4", "" }, - { "nv!ogl_42a699", "" }, - { "nv!ogl_441369", "" }, - { "nv!ogl_4458713e", "" }, - { "nv!ogl_4554b6", "" }, - { "nv!ogl_457425", "" }, - { "nv!ogl_4603b207", "" }, - { "nv!ogl_46574957", "" }, - { "nv!ogl_46574958", "" }, - { "nv!ogl_46813529", "" }, - { "nv!ogl_46f1e13d", "" }, - { "nv!ogl_47534c43", "" }, - { "nv!ogl_48550336", "" }, - { "nv!ogl_48576893", "" }, - { "nv!ogl_48576894", "" }, - { "nv!ogl_4889ac02", "" }, - { "nv!ogl_49005740", "" }, - { "nv!ogl_49867584", "" }, - { "nv!ogl_49960973", "" }, - { "nv!ogl_4a5341", "" }, - { "nv!ogl_4f4e48", "" }, - { "nv!ogl_4f8a0a", "" }, - { "nv!ogl_50299698", "" }, - { "nv!ogl_50299699", "" }, - { "nv!ogl_50361291", "" }, - { "nv!ogl_5242ae", "" }, - { "nv!ogl_53d30c", "" }, - { "nv!ogl_56347a", "" }, - { "nv!ogl_563a95f1", "" }, - { "nv!ogl_573823", "" }, - { "nv!ogl_58027529", "" }, - { "nv!ogl_5d2d63", "" }, - { "nv!ogl_5f7e3b", "" }, - { "nv!ogl_60461793", "" }, - { "nv!ogl_60d355", "" }, - { "nv!ogl_616627aa", "" }, - { "nv!ogl_62317182", "" }, - { "nv!ogl_6253fa2e", "" }, - { "nv!ogl_64100768", "" }, - { "nv!ogl_64100769", "" }, - { "nv!ogl_64100770", "" }, - { "nv!ogl_647395", "" }, - { "nv!ogl_66543234", "" }, - { "nv!ogl_67674763", "" }, - { "nv!ogl_67739784", "" }, - { "nv!ogl_68fb9c", "" }, - { "nv!ogl_69801276", "" }, - { "nv!ogl_6af9fa2f", "" }, - { "nv!ogl_6af9fa3f", "" }, - { "nv!ogl_6af9fa4f", "" }, - { "nv!ogl_6bd8c7", "" }, - { "nv!ogl_6c7691", "" }, - { "nv!ogl_6d4296ce", "" }, - { "nv!ogl_6dd7e7", "" }, - { "nv!ogl_6dd7e8", "" }, - { "nv!ogl_6fe11ec1", "" }, - { "nv!ogl_716511763", "" }, - { "nv!ogl_72504593", "" }, - { "nv!ogl_73304097", "" }, - { "nv!ogl_73314098", "" }, - { "nv!ogl_74095213", "" }, - { "nv!ogl_74095213a", "" }, - { "nv!ogl_74095213b", "" }, - { "nv!ogl_74095214", "" }, - { "nv!ogl_748f9649", "" }, - { "nv!ogl_75494732", "" }, - { "nv!ogl_78452832", "" }, - { "nv!ogl_784561", "" }, - { "nv!ogl_78e16b9c", "" }, - { "nv!ogl_79251225", "" }, - { "nv!ogl_7c128b", "" }, - { "nv!ogl_7ccd93", "" }, - { "nv!ogl_7df8d1", "" }, - { "nv!ogl_800c2310", "" }, - { "nv!ogl_80546710", "" }, - { "nv!ogl_80772310", "" }, - { "nv!ogl_808ee280", "" }, - { "nv!ogl_81131154", "" }, - { "nv!ogl_81274457", "" }, - { "nv!ogl_8292291f", "" }, - { "nv!ogl_83498426", "" }, - { "nv!ogl_84993794", "" }, - { "nv!ogl_84995585", "" }, - { "nv!ogl_84a0a0", "" }, - { "nv!ogl_852142", "" }, - { "nv!ogl_85612309", "" }, - { "nv!ogl_85612310", "" }, - { "nv!ogl_85612311", "" }, - { "nv!ogl_85612312", "" }, - { "nv!ogl_8623ff27", "" }, - { "nv!ogl_87364952", "" }, - { "nv!ogl_87f6275666", "" }, - { "nv!ogl_886748", "" }, - { "nv!ogl_89894423", "" }, - { "nv!ogl_8ad8a75", "" }, - { "nv!ogl_8ad8ad00", "" }, - { "nv!ogl_8bb815", "" }, - { "nv!ogl_8bb817", "" }, - { "nv!ogl_8bb818", "" }, - { "nv!ogl_8bb819", "" }, - { "nv!ogl_8e640cd1", "" }, - { "nv!ogl_8f34971a", "" }, - { "nv!ogl_8f773984", "" }, - { "nv!ogl_8f7a7d", "" }, - { "nv!ogl_902486209", "" }, - { "nv!ogl_90482571", "" }, - { "nv!ogl_91214835", "" }, - { "nv!ogl_912848290", "" }, - { "nv!ogl_915e56", "" }, - { "nv!ogl_92179063", "" }, - { "nv!ogl_92179064", "" }, - { "nv!ogl_92179065", "" }, - { "nv!ogl_92179066", "" }, - { "nv!ogl_92350358", "" }, - { "nv!ogl_92809063", "" }, - { "nv!ogl_92809064", "" }, - { "nv!ogl_92809065", "" }, - { "nv!ogl_92809066", "" }, - { "nv!ogl_92920143", "" }, - { "nv!ogl_93a89b12", "" }, - { "nv!ogl_93a89c0b", "" }, - { "nv!ogl_94812574", "" }, - { "nv!ogl_95282304", "" }, - { "nv!ogl_95394027", "" }, - { "nv!ogl_959b1f", "" }, - { "nv!ogl_9638af", "" }, - { "nv!ogl_96fd59", "" }, - { "nv!ogl_97f6275666", "" }, - { "nv!ogl_97f6275667", "" }, - { "nv!ogl_97f6275668", "" }, - { "nv!ogl_97f6275669", "" }, - { "nv!ogl_97f627566a", "" }, - { "nv!ogl_97f627566b", "" }, - { "nv!ogl_97f627566d", "" }, - { "nv!ogl_97f627566e", "" }, - { "nv!ogl_97f627566f", "" }, - { "nv!ogl_97f6275670", "" }, - { "nv!ogl_97f6275671", "" }, - { "nv!ogl_97f727566e", "" }, - { "nv!ogl_98480775", "" }, - { "nv!ogl_98480776", "" }, - { "nv!ogl_98480777", "" }, - { "nv!ogl_992431", "" }, - { "nv!ogl_9aa29065", "" }, - { "nv!ogl_9af32c", "" }, - { "nv!ogl_9af32d", "" }, - { "nv!ogl_9af32e", "" }, - { "nv!ogl_9c108b71", "" }, - { "nv!ogl_9f279065", "" }, - { "nv!ogl_a01bc728", "" }, - { "nv!ogl_a13b46c80", "" }, - { "nv!ogl_a22eb0", "" }, - { "nv!ogl_a2fb451e", "" }, - { "nv!ogl_a3456abe", "" }, - { "nv!ogl_a7044887", "" }, - { "nv!ogl_a7149200", "" }, - { "nv!ogl_a766215670", "" }, - { "nv!ogl_aalinegamma", "" }, - { "nv!ogl_aalinetweaks", "" }, - { "nv!ogl_ab34ee01", "" }, - { "nv!ogl_ab34ee02", "" }, - { "nv!ogl_ab34ee03", "" }, - { "nv!ogl_ac0274", "" }, - { "nv!ogl_af73c63e", "" }, - { "nv!ogl_af73c63f", "" }, - { "nv!ogl_af9927", "" }, - { "nv!ogl_afoverride", "" }, - { "nv!ogl_allocdeviceevents", "" }, - { "nv!ogl_applicationkey", "" }, - { "nv!ogl_appreturnonlybasicglsltype", "" }, - { "nv!ogl_app_softimage", "" }, - { "nv!ogl_app_supportbits2", "" }, - { "nv!ogl_assumetextureismipmappedatcreation", "" }, - { "nv!ogl_b1fb0f01", "" }, - { "nv!ogl_b3edd5", "" }, - { "nv!ogl_b40d9e03d", "" }, - { "nv!ogl_b7f6275666", "" }, - { "nv!ogl_b812c1", "" }, - { "nv!ogl_ba14ba1a", "" }, - { "nv!ogl_ba14ba1b", "" }, - { "nv!ogl_bd7559", "" }, - { "nv!ogl_bd755a", "" }, - { "nv!ogl_bd755c", "" }, - { "nv!ogl_bd755d", "" }, - { "nv!ogl_be58bb", "" }, - { "nv!ogl_be92cb", "" }, - { "nv!ogl_beefcba3", "" }, - { "nv!ogl_beefcba4", "" }, - { "nv!ogl_c023777f", "" }, - { "nv!ogl_c09dc8", "" }, - { "nv!ogl_c0d340", "" }, - { "nv!ogl_c2ff374c", "" }, - { "nv!ogl_c5e9d7a3", "" }, - { "nv!ogl_c5e9d7a4", "" }, - { "nv!ogl_c5e9d7b4", "" }, - { "nv!ogl_c618f9", "" }, - { "nv!ogl_ca345840", "" }, - { "nv!ogl_cachedisable", "" }, - { "nv!ogl_channelpriorityoverride", "" }, - { "nv!ogl_cleardatastorevidmem", "" }, - { "nv!ogl_cmdbufmemoryspaceenables", "" }, - { "nv!ogl_cmdbufminwords", "" }, - { "nv!ogl_cmdbufsizewords", "" }, - { "nv!ogl_conformantblitframebufferscissor", "" }, - { "nv!ogl_conformantincompletetextures", "" }, - { "nv!ogl_copybuffermethod", "" }, - { "nv!ogl_cubemapaniso", "" }, - { "nv!ogl_cubemapfiltering", "" }, - { "nv!ogl_d0e9a4d7", "" }, - { "nv!ogl_d13733f12", "" }, - { "nv!ogl_d1b399", "" }, - { "nv!ogl_d2983c32", "" }, - { "nv!ogl_d2983c33", "" }, - { "nv!ogl_d2e71b", "" }, - { "nv!ogl_d377dc", "" }, - { "nv!ogl_d377dd", "" }, - { "nv!ogl_d489f4", "" }, - { "nv!ogl_d4bce1", "" }, - { "nv!ogl_d518cb", "" }, - { "nv!ogl_d518cd", "" }, - { "nv!ogl_d518ce", "" }, - { "nv!ogl_d518d0", "" }, - { "nv!ogl_d518d1", "" }, - { "nv!ogl_d518d2", "" }, - { "nv!ogl_d518d3", "" }, - { "nv!ogl_d518d4", "" }, - { "nv!ogl_d518d5", "" }, - { "nv!ogl_d59eda", "" }, - { "nv!ogl_d83cbd", "" }, - { "nv!ogl_d8e777", "" }, - { "nv!ogl_debug_level", "" }, - { "nv!ogl_debug_mask", "" }, - { "nv!ogl_debug_options", "" }, - { "nv!ogl_devshmpageableallocations", "" }, - { "nv!ogl_df1f9812", "" }, - { "nv!ogl_df783c", "" }, - { "nv!ogl_diagenable", "" }, - { "nv!ogl_disallowcemask", "" }, - { "nv!ogl_disallowz16", "" }, - { "nv!ogl_dlmemoryspaceenables", "" }, - { "nv!ogl_e0bfec", "" }, - { "nv!ogl_e433456d", "" }, - { "nv!ogl_e435563f", "" }, - { "nv!ogl_e4cd9c", "" }, - { "nv!ogl_e5c972", "" }, - { "nv!ogl_e639ef", "" }, - { "nv!ogl_e802af", "" }, - { "nv!ogl_eae964", "" }, - { "nv!ogl_earlytexturehwallocation", "" }, - { "nv!ogl_eb92a3", "" }, - { "nv!ogl_ebca56", "" }, - { "nv!ogl_expert_detail_level", "" }, - { "nv!ogl_expert_output_mask", "" }, - { "nv!ogl_expert_report_mask", "" }, - { "nv!ogl_extensionstringnvarch", "" }, - { "nv!ogl_extensionstringversion", "" }, - { "nv!ogl_f00f1938", "" }, - { "nv!ogl_f10736", "" }, - { "nv!ogl_f1846870", "" }, - { "nv!ogl_f33bc370", "" }, - { "nv!ogl_f392a874", "" }, - { "nv!ogl_f49ae8", "" }, - { "nv!ogl_fa345cce", "" }, - { "nv!ogl_fa35cc4", "" }, - { "nv!ogl_faa14a", "" }, - { "nv!ogl_faf8a723", "" }, - { "nv!ogl_fastgs", "" }, - { "nv!ogl_fbf4ac45", "" }, - { "nv!ogl_fbo_blit_ignore_srgb", "" }, - { "nv!ogl_fc64c7", "" }, - { "nv!ogl_ff54ec97", "" }, - { "nv!ogl_ff54ec98", "" }, - { "nv!ogl_forceexitprocessdetach", "" }, - { "nv!ogl_forcerequestedesversion", "" }, - { "nv!ogl_glsynctovblank", "" }, - { "nv!ogl_gvitimeoutcontrol", "" }, - { "nv!ogl_hcctrl", "" }, - { "nv!ogl_hwstate_per_ctx", "" }, - { "nv!ogl_machinecachelimit", "" }, - { "nv!ogl_maxframesallowed", "" }, - { "nv!ogl_memmgrcachedalloclimit", "" }, - { "nv!ogl_memmgrcachedalloclimitratio", "" }, - { "nv!ogl_memmgrsysheapalloclimit", "" }, - { "nv!ogl_memmgrsysheapalloclimitratio", "" }, - { "nv!ogl_memmgrvidheapalloclimit", "" }, - { "nv!ogl_mosaic_clip_to_subdev", "" }, - { "nv!ogl_mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!ogl_mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!ogl_overlaymergeblittimerms", "" }, - { "nv!ogl_perfmon_mode", "" }, - { "nv!ogl_pixbar_mode", "" }, - { "nv!ogl_qualityenhancements", "" }, - { "nv!ogl_r27s18q28", "" }, - { "nv!ogl_r2d7c1d8", "" }, - { "nv!ogl_renderer", "" }, - { "nv!ogl_renderqualityflags", "" }, - { "nv!ogl_s3tcquality", "" }, - { "nv!ogl_shaderatomics", "" }, - { "nv!ogl_shadercacheinitsize", "" }, - { "nv!ogl_shader_disk_cache_path", "" }, - { "nv!ogl_shader_disk_cache_read_only", "" }, - { "nv!ogl_shaderobjects", "" }, - { "nv!ogl_shaderportabilitywarnings", "" }, - { "nv!ogl_shaderwarningsaserrors", "" }, - { "nv!ogl_skiptexturehostcopies", "" }, - { "nv!ogl_sli_dli_control", "" }, - { "nv!ogl_sparsetexture", "" }, - { "nv!ogl_spinlooptimeout", "" }, - { "nv!ogl_sync_to_vblank", "" }, - { "nv!ogl_sysheapreuseratio", "" }, - { "nv!ogl_sysmemtexturepromotion", "" }, - { "nv!ogl_targetflushcount", "" }, - { "nv!ogl_tearingfreeswappresent", "" }, - { "nv!ogl_texclampbehavior", "" }, - { "nv!ogl_texlodbias", "" }, - { "nv!ogl_texmemoryspaceenables", "" }, - { "nv!ogl_textureprecache", "" }, - { "nv!ogl_threadcontrol", "" }, - { "nv!ogl_threadcontrol2", "" }, - { "nv!ogl_usegvievents", "" }, - { "nv!ogl_vbomemoryspaceenables", "" }, - { "nv!ogl_vertexlimit", "" }, - { "nv!ogl_vidheapreuseratio", "" }, - { "nv!ogl_vpipe", "" }, - { "nv!ogl_vpipeformatbloatlimit", "" }, - { "nv!ogl_wglmessageboxonabort", "" }, - { "nv!ogl_writeinfolog", "" }, - { "nv!ogl_writeprogramobjectassembly", "" }, - { "nv!ogl_writeprogramobjectsource", "" }, - { "nv!ogl_xnvadapterpresent", "" }, - { "nv!ogl_yield", "" }, - { "nv!ogl_yieldfunction", "" }, - { "nv!ogl_yieldfunctionfast", "" }, - { "nv!ogl_yieldfunctionslow", "" }, - { "nv!ogl_yieldfunctionwaitfordcqueue", "" }, - { "nv!ogl_yieldfunctionwaitforframe", "" }, - { "nv!ogl_yieldfunctionwaitforgpu", "" }, - { "nv!ogl_zbctableaddhysteresis", "" }, - { "nv!overlaymergeblittimerms", "" }, - { "nv!perfmon_mode", "" }, - { "nv!persist.sys.display.resolution", "" }, - { "nv!persist.tegra.composite.fallb", "" }, - { "nv!persist.tegra.composite.policy", "" }, - { "nv!persist.tegra.composite.range", "" }, - { "nv!persist.tegra.compositor", "" }, - { "nv!persist.tegra.compositor.virt", "" }, - { "nv!persist.tegra.compression", "" }, - { "nv!persist.tegra.cursor.enable", "" }, - { "nv!persist.tegra.didim.enable", "" }, - { "nv!persist.tegra.didim.normal", "" }, - { "nv!persist.tegra.didim.video", "" }, - { "nv!persist.tegra.disp.heads", "" }, - { "nv!persist.tegra.gamma_correction", "" }, - { "nv!persist.tegra.gpu_mapping_cache", "" }, - { "nv!persist.tegra.grlayout", "" }, - { "nv!persist.tegra.hdmi.2020.10", "" }, - { "nv!persist.tegra.hdmi.2020.fake", "" }, - { "nv!persist.tegra.hdmi.2020.force", "" }, - { "nv!persist.tegra.hdmi.autorotate", "" }, - { "nv!persist.tegra.hdmi.hdr.fake", "" }, - { "nv!persist.tegra.hdmi.ignore_ratio", "" }, - { "nv!persist.tegra.hdmi.limit.clock", "" }, - { "nv!persist.tegra.hdmi.only_16_9", "" }, - { "nv!persist.tegra.hdmi.range", "" }, - { "nv!persist.tegra.hdmi.resolution", "" }, - { "nv!persist.tegra.hdmi.underscan", "" }, - { "nv!persist.tegra.hdmi.yuv.422", "" }, - { "nv!persist.tegra.hdmi.yuv.444", "" }, - { "nv!persist.tegra.hdmi.yuv.enable", "" }, - { "nv!persist.tegra.hdmi.yuv.force", "" }, - { "nv!persist.tegra.hwc.nvdc", "" }, - { "nv!persist.tegra.idle.minimum_fps", "" }, - { "nv!persist.tegra.panel.rotation", "" }, - { "nv!persist.tegra.scan_props", "" }, - { "nv!persist.tegra.stb.mode", "" }, - { "nv!persist.tegra.zbc_override", "" }, - { "nv!pixbar_mode", "" }, - { "nv!qualityenhancements", "" }, - { "nv!r27s18q28", "" }, - { "nv!r2d7c1d8", "" }, - { "nv!renderer", "" }, - { "nv!renderqualityflags", "" }, - { "nv!rmos_debug_mask", "" }, - { "nv!rmos_set_production_mode", "" }, - { "nv!s3tcquality", "" }, - { "nv!shaderatomics", "" }, - { "nv!shadercacheinitsize", "" }, - { "nv!shader_disk_cache_path", "" }, - { "nv!shader_disk_cache_read_only", "" }, - { "nv!shaderobjects", "" }, - { "nv!shaderportabilitywarnings", "" }, - { "nv!shaderwarningsaserrors", "" }, - { "nv!skiptexturehostcopies", "" }, - { "nv!sli_dli_control", "" }, - { "nv!sparsetexture", "" }, - { "nv!spinlooptimeout", "" }, - { "nv!sync_to_vblank", "" }, - { "nv!sysheapreuseratio", "" }, - { "nv!sysmemtexturepromotion", "" }, - { "nv!targetflushcount", "" }, - { "nv!tearingfreeswappresent", "" }, - { "nv!tegra.refresh", "" }, - { "nv!texclampbehavior", "" }, - { "nv!texlodbias", "" }, - { "nv!texmemoryspaceenables", "" }, - { "nv!textureprecache", "" }, - { "nv!threadcontrol", "" }, - { "nv!threadcontrol2", "" }, - { "nv!tvmr.avp.logs", "" }, - { "nv!tvmr.buffer.logs", "" }, - { "nv!tvmr.dec.prof", "" }, - { "nv!tvmr.deint.logs", "" }, - { "nv!tvmr.dfs.logs", "" }, - { "nv!tvmr.ffprof.logs", "" }, - { "nv!tvmr.game.stream", "" }, - { "nv!tvmr.general.logs", "" }, - { "nv!tvmr.input.dump", "" }, - { "nv!tvmr.seeking.logs", "" }, - { "nv!tvmr.ts_pulldown", "" }, - { "nv!usegvievents", "" }, - { "nv!vbomemoryspaceenables", "" }, - { "nv!vcc_debug_ip", "" }, - { "nv!vcc_verbose_level", "" }, - { "nv!vertexlimit", "" }, - { "nv!viccomposer.filter", "" }, - { "nv!videostats-enable", "" }, - { "nv!vidheapreuseratio", "" }, - { "nv!vpipe", "" }, - { "nv!vpipeformatbloatlimit", "" }, - { "nv!wglmessageboxonabort", "" }, - { "nv!writeinfolog", "" }, - { "nv!writeprogramobjectassembly", "" }, - { "nv!writeprogramobjectsource", "" }, - { "nv!xnvadapterpresent", "" }, - { "nv!yield", "" }, - { "nv!yieldfunction", "" }, - { "nv!yieldfunctionfast", "" }, - { "nv!yieldfunctionslow", "" }, - { "nv!yieldfunctionwaitfordcqueue", "" }, - { "nv!yieldfunctionwaitforframe", "" }, - { "nv!yieldfunctionwaitforgpu", "" }, - { "nv!zbctableaddhysteresis", "" }, - { "pcm!enable", true }, - { "pctl!intermittent_task_interval_seconds", 21600 }, - { "prepo!devmenu_prepo_page_view", false }, - { "prepo!background_processing", true }, - { "prepo!transmission_interval_min", 10 }, - { "prepo!transmission_retry_interval", 3600 }, - { "psm!evaluation_log_enabled", false }, - { "snap_shot_dump!auto_dump", false }, - { "snap_shot_dump!output_dir", "%USERPROFILE%/Documents/Nintendo/NXDMP" }, - { "snap_shot_dump!full_dump", false }, - { "systemconfig!field_testing", false }, - { "systemconfig!exhivision", false }, - { "systempowerstate!always_reboot", false }, - { "systempowerstate!power_state_message_emulation_trigger_time", 0 }, - { "systempowerstate!power_state_message_to_emulate", 0 }, - { "target_manager!device_name", "" }, - { "vulnerability!needs_update_vulnerability_policy", 0 }, - { "apm!performance_mode_policy", "auto" }, - { "apm!sdev_throttling_enabled", true }, - { "apm!sdev_throttling_additional_delay_us", 16000 }, - { "apm!battery_draining_enabled", false }, - { "apm!sdev_cpu_overclock_enabled", false }, - { "bcat!production_mode", true }, - { "bpc!enable_quasi_off", true }, - { "bsp0!usb", "UDS" }, - { "bsp0!tm_transport", "USB" }, - { "bluetooth_debug!skip_boot", false }, - { "contents_delivery!enable_debug_api", false }, - { "eupld!upload_enabled", true }, - { "fatal!transition_to_fatal", true }, - { "fatal!show_extra_info", false }, - { "gpu_core_dump!auto_dump", false }, - { "hid_debug!enables_debugpad", false }, - { "hid_debug!manages_devices", true }, - { "hid_debug!emulate_future_device", false }, - { "hid_debug!emulate_firmware_update_failure", false }, - { "hid_debug!emulate_mcu_hardware_error", false }, - { "hid_debug!firmware_update_failure_emulation_mode", 0 }, - { "jit_debug!enable_jit_debug", false }, - { "npns!background_processing", true }, - { "npns!logmanager_redirection", true }, - { "npns!sleep_processing_timeout", 30 }, - { "npns!sleep_periodic_interval", 10800 }, - { "npns!sleep_max_try_count", 5 }, - { "npns!test_mode", false }, - { "ns.applet!overlay_applet_id", "0x010000000000100c" }, - { "ns.applet!system_applet_id", "0x0100000000001000" }, - { "ns.applet!shop_applet_id", "0x010000000000100b" }, - { "ns.autoboot!enabled", true }, - { "ns.pseudodeviceid!reset_pseudo_device_id", false }, - { "nsd!environment_identifier", "lp1" }, - { "nsd!test_mode", false }, - { "ntc!is_autonomic_correction_enabled", true }, - { "ntc!autonomic_correction_interval_seconds", 432000 }, - { "ntc!autonomic_correction_failed_retry_interval_seconds", 1800 }, - { "ntc!autonomic_correction_immediate_try_count_max", 4 }, - { "ntc!autonomic_correction_immediate_try_interval_milliseconds", 5000 }, - { "nv!nv_graphics_firmware_memory_margin", false }, - { "omm!operation_mode_policy", "auto" }, - { "omm!sleep_fade_in_ms", 50 }, - { "omm!sleep_fade_out_ms", 100 }, - { "omm!charging_sign_ms", 3000 }, - { "omm!low_battery_sign_ms", 3000 }, - { "omm!sign_fade_in_ms", 0 }, - { "omm!sign_fade_out_ms", 400 }, - { "omm!sign_wait_layer_visible_ms", 100 }, - { "omm!startup_fade_in_ms", 200 }, - { "omm!startup_fade_out_ms", 400 }, - { "omm!backlight_off_ms_on_handheld_switch", 150 }, - { "omm!sleep_on_ac_ok_boot", true }, - { "pdm!save_playlog", true }, - { "productinfo!product_name", "Nintendo Switch" }, - { "productinfo!cec_osd_name", "NintendoSwitch" }, - { "ro!ease_nro_restriction", false }, - { "settings_debug!is_debug_mode_enabled", false }, - { "systemreport!enabled", true }, - { "systemsleep!enter_sleep", true }, - { "systemsleep!enter_sc7", true }, - { "systemsleep!keep_vdd_core", true }, - { "systemsleep!disable_tma_sleep", false }, - { "systemsleep!disable_auto_sleep", false }, - { "systemsleep!override_auto_sleep_time", 0 }, - { "systemsleep!sleep_pending_time_ms", 15000 }, - { "systemsleep!hush_time_after_brief_power_button_press_ms", 1000 }, - { "systemsleep!transition_timeout_sec", 60 }, - { "systemsleep!dummy_event_auto_wake", false }, - { "systemupdate!debug_id", "0x0000000000000000" }, - { "systemupdate!debug_version", 0 }, - { "systemupdate!bgnup_retry_seconds", 60 }, - { "systemupdate!enable_background_download_stress_testing", false }, - { "systemupdate!debug_id_for_content_delivery", "0x0000000000000000" }, - { "systemupdate!debug_version_for_content_delivery", 0 }, - { "systemupdate!assumed_system_applet_version", 0 }, - { "tc!iir_filter_gain_soc", 100 }, - { "tc!iir_filter_gain_pcb", 100 }, - { "tc!tskin_soc_coefficients_handheld", "[5464, 174190]" }, - { "tc!tskin_soc_coefficients_console", "[6182, 112480]" }, - { "tc!tskin_pcb_coefficients_handheld", "[5464, 174190]" }, - { "tc!tskin_pcb_coefficients_console", "[6182, 112480]" }, - { "tc!tskin_select", "both" }, - { "tc!tskin_rate_table_handheld", "[[-1000000, 40000, 0, 0], [36000, 43000, 51, 51], [43000, 48000, 51, 102], [48000, 53000, 102, 153], [53000, 1000000, 153, 153], [48000, 1000000, 153, 153]]" }, - { "tc!tskin_rate_table_console", "[[-1000000, 43000, 51, 51], [43000, 53000, 51, 153], [53000, 58000, 153, 255], [58000, 1000000, 255, 255]]" }, - { "tc!rate_select", "both" }, - { "tc!log_enabled", false }, - { "tc!sleep_enabled", true }, - { "time!standard_steady_clock_test_offset_minutes", 0 }, - { "time!standard_steady_clock_rtc_update_interval_minutes", 5 }, - { "time!standard_network_clock_sufficient_accuracy_minutes", 43200 }, - { "usb!usb30_force_enabled", false }, - { "wlan_debug!skip_wlan_boot", false }, - }; - } -} +using System.Collections.Generic; + +namespace Ryujinx.Core.OsHle.Services.Set +{ + static class NxSettings + { + //Generated automatically from a Switch 3.0 config file (Tid: 0100000000000818). + public static Dictionary Settings = new Dictionary() + { + { "account!na_required_for_network_service", true }, + { "account.daemon!background_awaking_periodicity", 10800 }, + { "account.daemon!schedule_periodicity", 3600 }, + { "account.daemon!profile_sync_interval", 18000 }, + { "account.daemon!na_info_refresh_interval", 46800 }, + { "am.display!transition_layer_enabled", true }, + { "am.gpu!gpu_scheduling_enabled", true }, + { "am.gpu!gpu_scheduling_frame_time_us", 116666 }, + { "am.gpu!gpu_scheduling_fg_app_us", 116166 }, + { "am.gpu!gpu_scheduling_bg_app_us", 104500 }, + { "am.gpu!gpu_scheduling_oa_us", 500 }, + { "am.gpu!gpu_scheduling_fg_sa_us", 11666 }, + { "am.gpu!gpu_scheduling_bg_sa_us", 0 }, + { "am.gpu!gpu_scheduling_fg_la_us", 11666 }, + { "am.gpu!gpu_scheduling_partial_fg_la_us", 2000 }, + { "am.gpu!gpu_scheduling_bg_la_us", 0 }, + { "audio!audren_log_enabled", false }, + { "audio!audout_log_enabled", false }, + { "audio!audin_log_enabled", false }, + { "audio!hwopus_log_enabled", false }, + { "audio!adsp_log_enabled", false }, + { "audio!suspend_for_debugger_enabled", false }, + { "audio!uac_speaker_enabled", false }, + { "bgtc!enable_halfawake", 1 }, + { "bgtc!enable_battery_saver", 1 }, + { "bgtc!leaving_halfawake_margin", 3 }, + { "bgtc!battery_threshold_save", 20 }, + { "bgtc!battery_threshold_stop", 20 }, + { "bgtc!minimum_interval_normal", 1800 }, + { "bgtc!minimum_interval_save", 86400 }, + { "boot!force_maintenance", false }, + { "capsrv!screenshot_layerstack", "screenshot" }, + { "capsrv!enable_album_screenshot_filedata_verification", true }, + { "devmenu!enable_application_update", true }, + { "devmenu!enable_exhibition_mode", false }, + { "eclct!analytics_override", false }, + { "eclct!analytics_pollperiod", 86400 }, + { "err!applet_auto_close", false }, + { "friends!background_processing", true }, + { "htc!disconnection_emulation", false }, + { "idle!dim_level_percent_lcd", 10 }, + { "idle!dim_level_percent_tv", 70 }, + { "lbl!force_disable_als", false }, + { "lm!enable_sd_card_logging", false }, + { "lm!sd_card_log_output_directory", "NxBinLogs" }, + { "mii!is_db_test_mode_enabled", false }, + { "news!system_version", 2 }, + { "nfp!not_locked_tag", true }, + { "nfp!play_report", false }, + { "nifm!is_communication_control_enabled_for_test", false }, + { "nifm!connection_test_timeout", 45000 }, + { "nifm!apply_config_timeout", 30000 }, + { "nifm!ethernet_adapter_standby_time", 10000 }, + { "nim.install!prefer_delta_evenif_inefficient", false }, + { "nim.install!apply_delta_stress_storage", 0 }, + { "ns.notification!retry_interval", 60 }, + { "ns.notification!enable_network_update", true }, + { "ns.notification!enable_download_task_list", true }, + { "ns.notification!enable_version_list", true }, + { "ns.notification!enable_random_wait", true }, + { "ns.notification!debug_waiting_limit", 0 }, + { "ns.notification!enable_request_on_cold_boot", true }, + { "ns.sdcard!mount_sdcard", true }, + { "ns.sdcard!compare_sdcard", 0 }, + { "ns.gamecard!mount_gamecard_result_value", 0 }, + { "ns.gamecard!try_gamecard_access_result_value", 0 }, + { "nv!00008600", "" }, + { "nv!0007b25e", "" }, + { "nv!0083e1", "" }, + { "nv!01621887", "" }, + { "nv!03134743", "" }, + { "nv!0356afd0", "" }, + { "nv!0356afd1", "" }, + { "nv!0356afd2", "" }, + { "nv!0356afd3", "" }, + { "nv!094313", "" }, + { "nv!0x04dc09", "" }, + { "nv!0x111133", "" }, + { "nv!0x1aa483", "" }, + { "nv!0x1cb1cf", "" }, + { "nv!0x1cb1d0", "" }, + { "nv!0x1e3221", "" }, + { "nv!0x300fc8", "" }, + { "nv!0x301fc8", "" }, + { "nv!0x302fc8", "" }, + { "nv!0x3eec59", "" }, + { "nv!0x46b3ed", "" }, + { "nv!0x523dc0", "" }, + { "nv!0x523dc1", "" }, + { "nv!0x523dc2", "" }, + { "nv!0x523dc3", "" }, + { "nv!0x523dc4", "" }, + { "nv!0x523dc5", "" }, + { "nv!0x523dc6", "" }, + { "nv!0x523dd0", "" }, + { "nv!0x523dd1", "" }, + { "nv!0x523dd3", "" }, + { "nv!0x5344bb", "" }, + { "nv!0x555237", "" }, + { "nv!0x58a234", "" }, + { "nv!0x7b4428", "" }, + { "nv!0x923dc0", "" }, + { "nv!0x923dc1", "" }, + { "nv!0x923dc2", "" }, + { "nv!0x923dc3", "" }, + { "nv!0x923dc4", "" }, + { "nv!0x923dd3", "" }, + { "nv!0x9abdc5", "" }, + { "nv!0x9abdc6", "" }, + { "nv!0xaaa36c", "" }, + { "nv!0xb09da0", "" }, + { "nv!0xb09da1", "" }, + { "nv!0xb09da2", "" }, + { "nv!0xb09da3", "" }, + { "nv!0xb09da4", "" }, + { "nv!0xb09da5", "" }, + { "nv!0xb0b348", "" }, + { "nv!0xb0b349", "" }, + { "nv!0xbb558f", "" }, + { "nv!0xbd10fb", "" }, + { "nv!0xc32ad3", "" }, + { "nv!0xce2348", "" }, + { "nv!0xcfd81f", "" }, + { "nv!0xe0036b", "" }, + { "nv!0xe01f2d", "" }, + { "nv!0xe17212", "" }, + { "nv!0xeae966", "" }, + { "nv!0xed4f82", "" }, + { "nv!0xf12335", "" }, + { "nv!0xf12336", "" }, + { "nv!10261989", "" }, + { "nv!1042d483", "" }, + { "nv!10572898", "" }, + { "nv!115631", "" }, + { "nv!12950094", "" }, + { "nv!1314f311", "" }, + { "nv!1314f312", "" }, + { "nv!13279512", "" }, + { "nv!13813496", "" }, + { "nv!14507179", "" }, + { "nv!15694569", "" }, + { "nv!16936964", "" }, + { "nv!17aa230c", "" }, + { "nv!182054", "" }, + { "nv!18273275", "" }, + { "nv!18273276", "" }, + { "nv!1854d03b", "" }, + { "nv!18add00d", "" }, + { "nv!19156670", "" }, + { "nv!19286545", "" }, + { "nv!1a298e9f", "" }, + { "nv!1acf43fe", "" }, + { "nv!1bda43fe", "" }, + { "nv!1c3b92", "" }, + { "nv!21509920", "" }, + { "nv!215323457", "" }, + { "nv!2165ad", "" }, + { "nv!2165ae", "" }, + { "nv!21be9c", "" }, + { "nv!233264316", "" }, + { "nv!234557580", "" }, + { "nv!23cd0e", "" }, + { "nv!24189123", "" }, + { "nv!2443266", "" }, + { "nv!25025519", "" }, + { "nv!255e39", "" }, + { "nv!2583364", "" }, + { "nv!2888c1", "" }, + { "nv!28ca3e", "" }, + { "nv!29871243", "" }, + { "nv!2a1f64", "" }, + { "nv!2dc432", "" }, + { "nv!2de437", "" }, + { "nv!2f3bb89c", "" }, + { "nv!2fd652", "" }, + { "nv!3001ac", "" }, + { "nv!31298772", "" }, + { "nv!313233", "" }, + { "nv!31f7d603", "" }, + { "nv!320ce4", "" }, + { "nv!32153248", "" }, + { "nv!32153249", "" }, + { "nv!335bca", "" }, + { "nv!342abb", "" }, + { "nv!34dfe6", "" }, + { "nv!34dfe7", "" }, + { "nv!34dfe8", "" }, + { "nv!34dfe9", "" }, + { "nv!35201578", "" }, + { "nv!359278", "" }, + { "nv!37f53a", "" }, + { "nv!38144972", "" }, + { "nv!38542646", "" }, + { "nv!3b74c9", "" }, + { "nv!3c136f", "" }, + { "nv!3cf72823", "" }, + { "nv!3d7af029", "" }, + { "nv!3ff34782", "" }, + { "nv!4129618", "" }, + { "nv!4189fac3", "" }, + { "nv!420bd4", "" }, + { "nv!42a699", "" }, + { "nv!441369", "" }, + { "nv!4458713e", "" }, + { "nv!4554b6", "" }, + { "nv!457425", "" }, + { "nv!4603b207", "" }, + { "nv!46574957", "" }, + { "nv!46574958", "" }, + { "nv!46813529", "" }, + { "nv!46f1e13d", "" }, + { "nv!47534c43", "" }, + { "nv!48550336", "" }, + { "nv!48576893", "" }, + { "nv!48576894", "" }, + { "nv!4889ac02", "" }, + { "nv!49005740", "" }, + { "nv!49867584", "" }, + { "nv!49960973", "" }, + { "nv!4a5341", "" }, + { "nv!4f4e48", "" }, + { "nv!4f8a0a", "" }, + { "nv!50299698", "" }, + { "nv!50299699", "" }, + { "nv!50361291", "" }, + { "nv!5242ae", "" }, + { "nv!53d30c", "" }, + { "nv!56347a", "" }, + { "nv!563a95f1", "" }, + { "nv!573823", "" }, + { "nv!58027529", "" }, + { "nv!5d2d63", "" }, + { "nv!5f7e3b", "" }, + { "nv!60461793", "" }, + { "nv!60d355", "" }, + { "nv!616627aa", "" }, + { "nv!62317182", "" }, + { "nv!6253fa2e", "" }, + { "nv!64100768", "" }, + { "nv!64100769", "" }, + { "nv!64100770", "" }, + { "nv!647395", "" }, + { "nv!66543234", "" }, + { "nv!67674763", "" }, + { "nv!67739784", "" }, + { "nv!68fb9c", "" }, + { "nv!69801276", "" }, + { "nv!6af9fa2f", "" }, + { "nv!6af9fa3f", "" }, + { "nv!6af9fa4f", "" }, + { "nv!6bd8c7", "" }, + { "nv!6c7691", "" }, + { "nv!6d4296ce", "" }, + { "nv!6dd7e7", "" }, + { "nv!6dd7e8", "" }, + { "nv!6fe11ec1", "" }, + { "nv!716511763", "" }, + { "nv!72504593", "" }, + { "nv!73304097", "" }, + { "nv!73314098", "" }, + { "nv!74095213", "" }, + { "nv!74095213a", "" }, + { "nv!74095213b", "" }, + { "nv!74095214", "" }, + { "nv!748f9649", "" }, + { "nv!75494732", "" }, + { "nv!78452832", "" }, + { "nv!784561", "" }, + { "nv!78e16b9c", "" }, + { "nv!79251225", "" }, + { "nv!7c128b", "" }, + { "nv!7ccd93", "" }, + { "nv!7df8d1", "" }, + { "nv!800c2310", "" }, + { "nv!80546710", "" }, + { "nv!80772310", "" }, + { "nv!808ee280", "" }, + { "nv!81131154", "" }, + { "nv!81274457", "" }, + { "nv!8292291f", "" }, + { "nv!83498426", "" }, + { "nv!84993794", "" }, + { "nv!84995585", "" }, + { "nv!84a0a0", "" }, + { "nv!852142", "" }, + { "nv!85612309", "" }, + { "nv!85612310", "" }, + { "nv!85612311", "" }, + { "nv!85612312", "" }, + { "nv!8623ff27", "" }, + { "nv!87364952", "" }, + { "nv!87f6275666", "" }, + { "nv!886748", "" }, + { "nv!89894423", "" }, + { "nv!8ad8a75", "" }, + { "nv!8ad8ad00", "" }, + { "nv!8bb815", "" }, + { "nv!8bb817", "" }, + { "nv!8bb818", "" }, + { "nv!8bb819", "" }, + { "nv!8e640cd1", "" }, + { "nv!8f34971a", "" }, + { "nv!8f773984", "" }, + { "nv!8f7a7d", "" }, + { "nv!902486209", "" }, + { "nv!90482571", "" }, + { "nv!91214835", "" }, + { "nv!912848290", "" }, + { "nv!915e56", "" }, + { "nv!92179063", "" }, + { "nv!92179064", "" }, + { "nv!92179065", "" }, + { "nv!92179066", "" }, + { "nv!92350358", "" }, + { "nv!92809063", "" }, + { "nv!92809064", "" }, + { "nv!92809065", "" }, + { "nv!92809066", "" }, + { "nv!92920143", "" }, + { "nv!93a89b12", "" }, + { "nv!93a89c0b", "" }, + { "nv!94812574", "" }, + { "nv!95282304", "" }, + { "nv!95394027", "" }, + { "nv!959b1f", "" }, + { "nv!9638af", "" }, + { "nv!96fd59", "" }, + { "nv!97f6275666", "" }, + { "nv!97f6275667", "" }, + { "nv!97f6275668", "" }, + { "nv!97f6275669", "" }, + { "nv!97f627566a", "" }, + { "nv!97f627566b", "" }, + { "nv!97f627566d", "" }, + { "nv!97f627566e", "" }, + { "nv!97f627566f", "" }, + { "nv!97f6275670", "" }, + { "nv!97f6275671", "" }, + { "nv!97f727566e", "" }, + { "nv!98480775", "" }, + { "nv!98480776", "" }, + { "nv!98480777", "" }, + { "nv!992431", "" }, + { "nv!9aa29065", "" }, + { "nv!9af32c", "" }, + { "nv!9af32d", "" }, + { "nv!9af32e", "" }, + { "nv!9c108b71", "" }, + { "nv!9f279065", "" }, + { "nv!a01bc728", "" }, + { "nv!a13b46c80", "" }, + { "nv!a22eb0", "" }, + { "nv!a2fb451e", "" }, + { "nv!a3456abe", "" }, + { "nv!a7044887", "" }, + { "nv!a7149200", "" }, + { "nv!a766215670", "" }, + { "nv!aac_drc_boost", "" }, + { "nv!aac_drc_cut", "" }, + { "nv!aac_drc_enc_target_level", "" }, + { "nv!aac_drc_heavy", "" }, + { "nv!aac_drc_reference_level", "" }, + { "nv!aalinegamma", "" }, + { "nv!aalinetweaks", "" }, + { "nv!ab34ee01", "" }, + { "nv!ab34ee02", "" }, + { "nv!ab34ee03", "" }, + { "nv!ac0274", "" }, + { "nv!af73c63e", "" }, + { "nv!af73c63f", "" }, + { "nv!af9927", "" }, + { "nv!afoverride", "" }, + { "nv!allocdeviceevents", "" }, + { "nv!applicationkey", "" }, + { "nv!appreturnonlybasicglsltype", "" }, + { "nv!app_softimage", "" }, + { "nv!app_supportbits2", "" }, + { "nv!assumetextureismipmappedatcreation", "" }, + { "nv!b1fb0f01", "" }, + { "nv!b3edd5", "" }, + { "nv!b40d9e03d", "" }, + { "nv!b7f6275666", "" }, + { "nv!b812c1", "" }, + { "nv!ba14ba1a", "" }, + { "nv!ba14ba1b", "" }, + { "nv!bd7559", "" }, + { "nv!bd755a", "" }, + { "nv!bd755c", "" }, + { "nv!bd755d", "" }, + { "nv!be58bb", "" }, + { "nv!be92cb", "" }, + { "nv!beefcba3", "" }, + { "nv!beefcba4", "" }, + { "nv!c023777f", "" }, + { "nv!c09dc8", "" }, + { "nv!c0d340", "" }, + { "nv!c2ff374c", "" }, + { "nv!c5e9d7a3", "" }, + { "nv!c5e9d7a4", "" }, + { "nv!c5e9d7b4", "" }, + { "nv!c618f9", "" }, + { "nv!ca345840", "" }, + { "nv!cachedisable", "" }, + { "nv!cast.on", "" }, + { "nv!cde", "" }, + { "nv!channelpriorityoverride", "" }, + { "nv!cleardatastorevidmem", "" }, + { "nv!cmdbufmemoryspaceenables", "" }, + { "nv!cmdbufminwords", "" }, + { "nv!cmdbufsizewords", "" }, + { "nv!conformantblitframebufferscissor", "" }, + { "nv!conformantincompletetextures", "" }, + { "nv!copybuffermethod", "" }, + { "nv!cubemapaniso", "" }, + { "nv!cubemapfiltering", "" }, + { "nv!d0e9a4d7", "" }, + { "nv!d13733f12", "" }, + { "nv!d1b399", "" }, + { "nv!d2983c32", "" }, + { "nv!d2983c33", "" }, + { "nv!d2e71b", "" }, + { "nv!d377dc", "" }, + { "nv!d377dd", "" }, + { "nv!d489f4", "" }, + { "nv!d4bce1", "" }, + { "nv!d518cb", "" }, + { "nv!d518cd", "" }, + { "nv!d518ce", "" }, + { "nv!d518d0", "" }, + { "nv!d518d1", "" }, + { "nv!d518d2", "" }, + { "nv!d518d3", "" }, + { "nv!d518d4", "" }, + { "nv!d518d5", "" }, + { "nv!d59eda", "" }, + { "nv!d83cbd", "" }, + { "nv!d8e777", "" }, + { "nv!debug_level", "" }, + { "nv!debug_mask", "" }, + { "nv!debug_options", "" }, + { "nv!devshmpageableallocations", "" }, + { "nv!df1f9812", "" }, + { "nv!df783c", "" }, + { "nv!diagenable", "" }, + { "nv!disallowcemask", "" }, + { "nv!disallowz16", "" }, + { "nv!dlmemoryspaceenables", "" }, + { "nv!e0bfec", "" }, + { "nv!e433456d", "" }, + { "nv!e435563f", "" }, + { "nv!e4cd9c", "" }, + { "nv!e5c972", "" }, + { "nv!e639ef", "" }, + { "nv!e802af", "" }, + { "nv!eae964", "" }, + { "nv!earlytexturehwallocation", "" }, + { "nv!eb92a3", "" }, + { "nv!ebca56", "" }, + { "nv!enable-noaud", "" }, + { "nv!enable-noavs", "" }, + { "nv!enable-prof", "" }, + { "nv!enable-sxesmode", "" }, + { "nv!enable-ulld", "" }, + { "nv!expert_detail_level", "" }, + { "nv!expert_output_mask", "" }, + { "nv!expert_report_mask", "" }, + { "nv!extensionstringnvarch", "" }, + { "nv!extensionstringversion", "" }, + { "nv!f00f1938", "" }, + { "nv!f10736", "" }, + { "nv!f1846870", "" }, + { "nv!f33bc370", "" }, + { "nv!f392a874", "" }, + { "nv!f49ae8", "" }, + { "nv!fa345cce", "" }, + { "nv!fa35cc4", "" }, + { "nv!faa14a", "" }, + { "nv!faf8a723", "" }, + { "nv!fastgs", "" }, + { "nv!fbf4ac45", "" }, + { "nv!fbo_blit_ignore_srgb", "" }, + { "nv!fc64c7", "" }, + { "nv!ff54ec97", "" }, + { "nv!ff54ec98", "" }, + { "nv!forceexitprocessdetach", "" }, + { "nv!forcerequestedesversion", "" }, + { "nv!__gl_", "" }, + { "nv!__gl_00008600", "" }, + { "nv!__gl_0007b25e", "" }, + { "nv!__gl_0083e1", "" }, + { "nv!__gl_01621887", "" }, + { "nv!__gl_03134743", "" }, + { "nv!__gl_0356afd0", "" }, + { "nv!__gl_0356afd1", "" }, + { "nv!__gl_0356afd2", "" }, + { "nv!__gl_0356afd3", "" }, + { "nv!__gl_094313", "" }, + { "nv!__gl_0x04dc09", "" }, + { "nv!__gl_0x111133", "" }, + { "nv!__gl_0x1aa483", "" }, + { "nv!__gl_0x1cb1cf", "" }, + { "nv!__gl_0x1cb1d0", "" }, + { "nv!__gl_0x1e3221", "" }, + { "nv!__gl_0x300fc8", "" }, + { "nv!__gl_0x301fc8", "" }, + { "nv!__gl_0x302fc8", "" }, + { "nv!__gl_0x3eec59", "" }, + { "nv!__gl_0x46b3ed", "" }, + { "nv!__gl_0x523dc0", "" }, + { "nv!__gl_0x523dc1", "" }, + { "nv!__gl_0x523dc2", "" }, + { "nv!__gl_0x523dc3", "" }, + { "nv!__gl_0x523dc4", "" }, + { "nv!__gl_0x523dc5", "" }, + { "nv!__gl_0x523dc6", "" }, + { "nv!__gl_0x523dd0", "" }, + { "nv!__gl_0x523dd1", "" }, + { "nv!__gl_0x523dd3", "" }, + { "nv!__gl_0x5344bb", "" }, + { "nv!__gl_0x555237", "" }, + { "nv!__gl_0x58a234", "" }, + { "nv!__gl_0x7b4428", "" }, + { "nv!__gl_0x923dc0", "" }, + { "nv!__gl_0x923dc1", "" }, + { "nv!__gl_0x923dc2", "" }, + { "nv!__gl_0x923dc3", "" }, + { "nv!__gl_0x923dc4", "" }, + { "nv!__gl_0x923dd3", "" }, + { "nv!__gl_0x9abdc5", "" }, + { "nv!__gl_0x9abdc6", "" }, + { "nv!__gl_0xaaa36c", "" }, + { "nv!__gl_0xb09da0", "" }, + { "nv!__gl_0xb09da1", "" }, + { "nv!__gl_0xb09da2", "" }, + { "nv!__gl_0xb09da3", "" }, + { "nv!__gl_0xb09da4", "" }, + { "nv!__gl_0xb09da5", "" }, + { "nv!__gl_0xb0b348", "" }, + { "nv!__gl_0xb0b349", "" }, + { "nv!__gl_0xbb558f", "" }, + { "nv!__gl_0xbd10fb", "" }, + { "nv!__gl_0xc32ad3", "" }, + { "nv!__gl_0xce2348", "" }, + { "nv!__gl_0xcfd81f", "" }, + { "nv!__gl_0xe0036b", "" }, + { "nv!__gl_0xe01f2d", "" }, + { "nv!__gl_0xe17212", "" }, + { "nv!__gl_0xeae966", "" }, + { "nv!__gl_0xed4f82", "" }, + { "nv!__gl_0xf12335", "" }, + { "nv!__gl_0xf12336", "" }, + { "nv!__gl_10261989", "" }, + { "nv!__gl_1042d483", "" }, + { "nv!__gl_10572898", "" }, + { "nv!__gl_115631", "" }, + { "nv!__gl_12950094", "" }, + { "nv!__gl_1314f311", "" }, + { "nv!__gl_1314f312", "" }, + { "nv!__gl_13279512", "" }, + { "nv!__gl_13813496", "" }, + { "nv!__gl_14507179", "" }, + { "nv!__gl_15694569", "" }, + { "nv!__gl_16936964", "" }, + { "nv!__gl_17aa230c", "" }, + { "nv!__gl_182054", "" }, + { "nv!__gl_18273275", "" }, + { "nv!__gl_18273276", "" }, + { "nv!__gl_1854d03b", "" }, + { "nv!__gl_18add00d", "" }, + { "nv!__gl_19156670", "" }, + { "nv!__gl_19286545", "" }, + { "nv!__gl_1a298e9f", "" }, + { "nv!__gl_1acf43fe", "" }, + { "nv!__gl_1bda43fe", "" }, + { "nv!__gl_1c3b92", "" }, + { "nv!__gl_21509920", "" }, + { "nv!__gl_215323457", "" }, + { "nv!__gl_2165ad", "" }, + { "nv!__gl_2165ae", "" }, + { "nv!__gl_21be9c", "" }, + { "nv!__gl_233264316", "" }, + { "nv!__gl_234557580", "" }, + { "nv!__gl_23cd0e", "" }, + { "nv!__gl_24189123", "" }, + { "nv!__gl_2443266", "" }, + { "nv!__gl_25025519", "" }, + { "nv!__gl_255e39", "" }, + { "nv!__gl_2583364", "" }, + { "nv!__gl_2888c1", "" }, + { "nv!__gl_28ca3e", "" }, + { "nv!__gl_29871243", "" }, + { "nv!__gl_2a1f64", "" }, + { "nv!__gl_2dc432", "" }, + { "nv!__gl_2de437", "" }, + { "nv!__gl_2f3bb89c", "" }, + { "nv!__gl_2fd652", "" }, + { "nv!__gl_3001ac", "" }, + { "nv!__gl_31298772", "" }, + { "nv!__gl_313233", "" }, + { "nv!__gl_31f7d603", "" }, + { "nv!__gl_320ce4", "" }, + { "nv!__gl_32153248", "" }, + { "nv!__gl_32153249", "" }, + { "nv!__gl_335bca", "" }, + { "nv!__gl_342abb", "" }, + { "nv!__gl_34dfe6", "" }, + { "nv!__gl_34dfe7", "" }, + { "nv!__gl_34dfe8", "" }, + { "nv!__gl_34dfe9", "" }, + { "nv!__gl_35201578", "" }, + { "nv!__gl_359278", "" }, + { "nv!__gl_37f53a", "" }, + { "nv!__gl_38144972", "" }, + { "nv!__gl_38542646", "" }, + { "nv!__gl_3b74c9", "" }, + { "nv!__gl_3c136f", "" }, + { "nv!__gl_3cf72823", "" }, + { "nv!__gl_3d7af029", "" }, + { "nv!__gl_3ff34782", "" }, + { "nv!__gl_4129618", "" }, + { "nv!__gl_4189fac3", "" }, + { "nv!__gl_420bd4", "" }, + { "nv!__gl_42a699", "" }, + { "nv!__gl_441369", "" }, + { "nv!__gl_4458713e", "" }, + { "nv!__gl_4554b6", "" }, + { "nv!__gl_457425", "" }, + { "nv!__gl_4603b207", "" }, + { "nv!__gl_46574957", "" }, + { "nv!__gl_46574958", "" }, + { "nv!__gl_46813529", "" }, + { "nv!__gl_46f1e13d", "" }, + { "nv!__gl_47534c43", "" }, + { "nv!__gl_48550336", "" }, + { "nv!__gl_48576893", "" }, + { "nv!__gl_48576894", "" }, + { "nv!__gl_4889ac02", "" }, + { "nv!__gl_49005740", "" }, + { "nv!__gl_49867584", "" }, + { "nv!__gl_49960973", "" }, + { "nv!__gl_4a5341", "" }, + { "nv!__gl_4f4e48", "" }, + { "nv!__gl_4f8a0a", "" }, + { "nv!__gl_50299698", "" }, + { "nv!__gl_50299699", "" }, + { "nv!__gl_50361291", "" }, + { "nv!__gl_5242ae", "" }, + { "nv!__gl_53d30c", "" }, + { "nv!__gl_56347a", "" }, + { "nv!__gl_563a95f1", "" }, + { "nv!__gl_573823", "" }, + { "nv!__gl_58027529", "" }, + { "nv!__gl_5d2d63", "" }, + { "nv!__gl_5f7e3b", "" }, + { "nv!__gl_60461793", "" }, + { "nv!__gl_60d355", "" }, + { "nv!__gl_616627aa", "" }, + { "nv!__gl_62317182", "" }, + { "nv!__gl_6253fa2e", "" }, + { "nv!__gl_64100768", "" }, + { "nv!__gl_64100769", "" }, + { "nv!__gl_64100770", "" }, + { "nv!__gl_647395", "" }, + { "nv!__gl_66543234", "" }, + { "nv!__gl_67674763", "" }, + { "nv!__gl_67739784", "" }, + { "nv!__gl_68fb9c", "" }, + { "nv!__gl_69801276", "" }, + { "nv!__gl_6af9fa2f", "" }, + { "nv!__gl_6af9fa3f", "" }, + { "nv!__gl_6af9fa4f", "" }, + { "nv!__gl_6bd8c7", "" }, + { "nv!__gl_6c7691", "" }, + { "nv!__gl_6d4296ce", "" }, + { "nv!__gl_6dd7e7", "" }, + { "nv!__gl_6dd7e8", "" }, + { "nv!__gl_6fe11ec1", "" }, + { "nv!__gl_716511763", "" }, + { "nv!__gl_72504593", "" }, + { "nv!__gl_73304097", "" }, + { "nv!__gl_73314098", "" }, + { "nv!__gl_74095213", "" }, + { "nv!__gl_74095213a", "" }, + { "nv!__gl_74095213b", "" }, + { "nv!__gl_74095214", "" }, + { "nv!__gl_748f9649", "" }, + { "nv!__gl_75494732", "" }, + { "nv!__gl_78452832", "" }, + { "nv!__gl_784561", "" }, + { "nv!__gl_78e16b9c", "" }, + { "nv!__gl_79251225", "" }, + { "nv!__gl_7c128b", "" }, + { "nv!__gl_7ccd93", "" }, + { "nv!__gl_7df8d1", "" }, + { "nv!__gl_800c2310", "" }, + { "nv!__gl_80546710", "" }, + { "nv!__gl_80772310", "" }, + { "nv!__gl_808ee280", "" }, + { "nv!__gl_81131154", "" }, + { "nv!__gl_81274457", "" }, + { "nv!__gl_8292291f", "" }, + { "nv!__gl_83498426", "" }, + { "nv!__gl_84993794", "" }, + { "nv!__gl_84995585", "" }, + { "nv!__gl_84a0a0", "" }, + { "nv!__gl_852142", "" }, + { "nv!__gl_85612309", "" }, + { "nv!__gl_85612310", "" }, + { "nv!__gl_85612311", "" }, + { "nv!__gl_85612312", "" }, + { "nv!__gl_8623ff27", "" }, + { "nv!__gl_87364952", "" }, + { "nv!__gl_87f6275666", "" }, + { "nv!__gl_886748", "" }, + { "nv!__gl_89894423", "" }, + { "nv!__gl_8ad8a75", "" }, + { "nv!__gl_8ad8ad00", "" }, + { "nv!__gl_8bb815", "" }, + { "nv!__gl_8bb817", "" }, + { "nv!__gl_8bb818", "" }, + { "nv!__gl_8bb819", "" }, + { "nv!__gl_8e640cd1", "" }, + { "nv!__gl_8f34971a", "" }, + { "nv!__gl_8f773984", "" }, + { "nv!__gl_8f7a7d", "" }, + { "nv!__gl_902486209", "" }, + { "nv!__gl_90482571", "" }, + { "nv!__gl_91214835", "" }, + { "nv!__gl_912848290", "" }, + { "nv!__gl_915e56", "" }, + { "nv!__gl_92179063", "" }, + { "nv!__gl_92179064", "" }, + { "nv!__gl_92179065", "" }, + { "nv!__gl_92179066", "" }, + { "nv!__gl_92350358", "" }, + { "nv!__gl_92809063", "" }, + { "nv!__gl_92809064", "" }, + { "nv!__gl_92809065", "" }, + { "nv!__gl_92809066", "" }, + { "nv!__gl_92920143", "" }, + { "nv!__gl_93a89b12", "" }, + { "nv!__gl_93a89c0b", "" }, + { "nv!__gl_94812574", "" }, + { "nv!__gl_95282304", "" }, + { "nv!__gl_95394027", "" }, + { "nv!__gl_959b1f", "" }, + { "nv!__gl_9638af", "" }, + { "nv!__gl_96fd59", "" }, + { "nv!__gl_97f6275666", "" }, + { "nv!__gl_97f6275667", "" }, + { "nv!__gl_97f6275668", "" }, + { "nv!__gl_97f6275669", "" }, + { "nv!__gl_97f627566a", "" }, + { "nv!__gl_97f627566b", "" }, + { "nv!__gl_97f627566d", "" }, + { "nv!__gl_97f627566e", "" }, + { "nv!__gl_97f627566f", "" }, + { "nv!__gl_97f6275670", "" }, + { "nv!__gl_97f6275671", "" }, + { "nv!__gl_97f727566e", "" }, + { "nv!__gl_98480775", "" }, + { "nv!__gl_98480776", "" }, + { "nv!__gl_98480777", "" }, + { "nv!__gl_992431", "" }, + { "nv!__gl_9aa29065", "" }, + { "nv!__gl_9af32c", "" }, + { "nv!__gl_9af32d", "" }, + { "nv!__gl_9af32e", "" }, + { "nv!__gl_9c108b71", "" }, + { "nv!__gl_9f279065", "" }, + { "nv!__gl_a01bc728", "" }, + { "nv!__gl_a13b46c80", "" }, + { "nv!__gl_a22eb0", "" }, + { "nv!__gl_a2fb451e", "" }, + { "nv!__gl_a3456abe", "" }, + { "nv!__gl_a7044887", "" }, + { "nv!__gl_a7149200", "" }, + { "nv!__gl_a766215670", "" }, + { "nv!__gl_aalinegamma", "" }, + { "nv!__gl_aalinetweaks", "" }, + { "nv!__gl_ab34ee01", "" }, + { "nv!__gl_ab34ee02", "" }, + { "nv!__gl_ab34ee03", "" }, + { "nv!__gl_ac0274", "" }, + { "nv!__gl_af73c63e", "" }, + { "nv!__gl_af73c63f", "" }, + { "nv!__gl_af9927", "" }, + { "nv!__gl_afoverride", "" }, + { "nv!__gl_allocdeviceevents", "" }, + { "nv!__gl_applicationkey", "" }, + { "nv!__gl_appreturnonlybasicglsltype", "" }, + { "nv!__gl_app_softimage", "" }, + { "nv!__gl_app_supportbits2", "" }, + { "nv!__gl_assumetextureismipmappedatcreation", "" }, + { "nv!__gl_b1fb0f01", "" }, + { "nv!__gl_b3edd5", "" }, + { "nv!__gl_b40d9e03d", "" }, + { "nv!__gl_b7f6275666", "" }, + { "nv!__gl_b812c1", "" }, + { "nv!__gl_ba14ba1a", "" }, + { "nv!__gl_ba14ba1b", "" }, + { "nv!__gl_bd7559", "" }, + { "nv!__gl_bd755a", "" }, + { "nv!__gl_bd755c", "" }, + { "nv!__gl_bd755d", "" }, + { "nv!__gl_be58bb", "" }, + { "nv!__gl_be92cb", "" }, + { "nv!__gl_beefcba3", "" }, + { "nv!__gl_beefcba4", "" }, + { "nv!__gl_c023777f", "" }, + { "nv!__gl_c09dc8", "" }, + { "nv!__gl_c0d340", "" }, + { "nv!__gl_c2ff374c", "" }, + { "nv!__gl_c5e9d7a3", "" }, + { "nv!__gl_c5e9d7a4", "" }, + { "nv!__gl_c5e9d7b4", "" }, + { "nv!__gl_c618f9", "" }, + { "nv!__gl_ca345840", "" }, + { "nv!__gl_cachedisable", "" }, + { "nv!__gl_channelpriorityoverride", "" }, + { "nv!__gl_cleardatastorevidmem", "" }, + { "nv!__gl_cmdbufmemoryspaceenables", "" }, + { "nv!__gl_cmdbufminwords", "" }, + { "nv!__gl_cmdbufsizewords", "" }, + { "nv!__gl_conformantblitframebufferscissor", "" }, + { "nv!__gl_conformantincompletetextures", "" }, + { "nv!__gl_copybuffermethod", "" }, + { "nv!__gl_cubemapaniso", "" }, + { "nv!__gl_cubemapfiltering", "" }, + { "nv!__gl_d0e9a4d7", "" }, + { "nv!__gl_d13733f12", "" }, + { "nv!__gl_d1b399", "" }, + { "nv!__gl_d2983c32", "" }, + { "nv!__gl_d2983c33", "" }, + { "nv!__gl_d2e71b", "" }, + { "nv!__gl_d377dc", "" }, + { "nv!__gl_d377dd", "" }, + { "nv!__gl_d489f4", "" }, + { "nv!__gl_d4bce1", "" }, + { "nv!__gl_d518cb", "" }, + { "nv!__gl_d518cd", "" }, + { "nv!__gl_d518ce", "" }, + { "nv!__gl_d518d0", "" }, + { "nv!__gl_d518d1", "" }, + { "nv!__gl_d518d2", "" }, + { "nv!__gl_d518d3", "" }, + { "nv!__gl_d518d4", "" }, + { "nv!__gl_d518d5", "" }, + { "nv!__gl_d59eda", "" }, + { "nv!__gl_d83cbd", "" }, + { "nv!__gl_d8e777", "" }, + { "nv!__gl_debug_level", "" }, + { "nv!__gl_debug_mask", "" }, + { "nv!__gl_debug_options", "" }, + { "nv!__gl_devshmpageableallocations", "" }, + { "nv!__gl_df1f9812", "" }, + { "nv!__gl_df783c", "" }, + { "nv!__gl_diagenable", "" }, + { "nv!__gl_disallowcemask", "" }, + { "nv!__gl_disallowz16", "" }, + { "nv!__gl_dlmemoryspaceenables", "" }, + { "nv!__gl_e0bfec", "" }, + { "nv!__gl_e433456d", "" }, + { "nv!__gl_e435563f", "" }, + { "nv!__gl_e4cd9c", "" }, + { "nv!__gl_e5c972", "" }, + { "nv!__gl_e639ef", "" }, + { "nv!__gl_e802af", "" }, + { "nv!__gl_eae964", "" }, + { "nv!__gl_earlytexturehwallocation", "" }, + { "nv!__gl_eb92a3", "" }, + { "nv!__gl_ebca56", "" }, + { "nv!__gl_expert_detail_level", "" }, + { "nv!__gl_expert_output_mask", "" }, + { "nv!__gl_expert_report_mask", "" }, + { "nv!__gl_extensionstringnvarch", "" }, + { "nv!__gl_extensionstringversion", "" }, + { "nv!__gl_f00f1938", "" }, + { "nv!__gl_f10736", "" }, + { "nv!__gl_f1846870", "" }, + { "nv!__gl_f33bc370", "" }, + { "nv!__gl_f392a874", "" }, + { "nv!__gl_f49ae8", "" }, + { "nv!__gl_fa345cce", "" }, + { "nv!__gl_fa35cc4", "" }, + { "nv!__gl_faa14a", "" }, + { "nv!__gl_faf8a723", "" }, + { "nv!__gl_fastgs", "" }, + { "nv!__gl_fbf4ac45", "" }, + { "nv!__gl_fbo_blit_ignore_srgb", "" }, + { "nv!__gl_fc64c7", "" }, + { "nv!__gl_ff54ec97", "" }, + { "nv!__gl_ff54ec98", "" }, + { "nv!__gl_forceexitprocessdetach", "" }, + { "nv!__gl_forcerequestedesversion", "" }, + { "nv!__gl_glsynctovblank", "" }, + { "nv!__gl_gvitimeoutcontrol", "" }, + { "nv!__gl_hcctrl", "" }, + { "nv!__gl_hwstate_per_ctx", "" }, + { "nv!__gl_machinecachelimit", "" }, + { "nv!__gl_maxframesallowed", "" }, + { "nv!__gl_memmgrcachedalloclimit", "" }, + { "nv!__gl_memmgrcachedalloclimitratio", "" }, + { "nv!__gl_memmgrsysheapalloclimit", "" }, + { "nv!__gl_memmgrsysheapalloclimitratio", "" }, + { "nv!__gl_memmgrvidheapalloclimit", "" }, + { "nv!__gl_mosaic_clip_to_subdev", "" }, + { "nv!__gl_mosaic_clip_to_subdev_h_overlap", "" }, + { "nv!__gl_mosaic_clip_to_subdev_v_overlap", "" }, + { "nv!__gl_overlaymergeblittimerms", "" }, + { "nv!__gl_perfmon_mode", "" }, + { "nv!__gl_pixbar_mode", "" }, + { "nv!__gl_qualityenhancements", "" }, + { "nv!__gl_r27s18q28", "" }, + { "nv!__gl_r2d7c1d8", "" }, + { "nv!__gl_renderer", "" }, + { "nv!__gl_renderqualityflags", "" }, + { "nv!__gl_s3tcquality", "" }, + { "nv!__gl_shaderatomics", "" }, + { "nv!__gl_shadercacheinitsize", "" }, + { "nv!__gl_shader_disk_cache_path", "" }, + { "nv!__gl_shader_disk_cache_read_only", "" }, + { "nv!__gl_shaderobjects", "" }, + { "nv!__gl_shaderportabilitywarnings", "" }, + { "nv!__gl_shaderwarningsaserrors", "" }, + { "nv!__gl_skiptexturehostcopies", "" }, + { "nv!__glslc_debug_level", "" }, + { "nv!__glslc_debug_mask", "" }, + { "nv!__glslc_debug_options", "" }, + { "nv!__glslc_debug_filename", "" }, + { "nv!__gl_sli_dli_control", "" }, + { "nv!__gl_sparsetexture", "" }, + { "nv!__gl_spinlooptimeout", "" }, + { "nv!__gl_sync_to_vblank", "" }, + { "nv!glsynctovblank", "" }, + { "nv!__gl_sysheapreuseratio", "" }, + { "nv!__gl_sysmemtexturepromotion", "" }, + { "nv!__gl_targetflushcount", "" }, + { "nv!__gl_tearingfreeswappresent", "" }, + { "nv!__gl_texclampbehavior", "" }, + { "nv!__gl_texlodbias", "" }, + { "nv!__gl_texmemoryspaceenables", "" }, + { "nv!__gl_textureprecache", "" }, + { "nv!__gl_threadcontrol", "" }, + { "nv!__gl_threadcontrol2", "" }, + { "nv!__gl_usegvievents", "" }, + { "nv!__gl_vbomemoryspaceenables", "" }, + { "nv!__gl_vertexlimit", "" }, + { "nv!__gl_vidheapreuseratio", "" }, + { "nv!__gl_vpipe", "" }, + { "nv!__gl_vpipeformatbloatlimit", "" }, + { "nv!__gl_wglmessageboxonabort", "" }, + { "nv!__gl_writeinfolog", "" }, + { "nv!__gl_writeprogramobjectassembly", "" }, + { "nv!__gl_writeprogramobjectsource", "" }, + { "nv!__gl_xnvadapterpresent", "" }, + { "nv!__gl_yield", "" }, + { "nv!__gl_yieldfunction", "" }, + { "nv!__gl_yieldfunctionfast", "" }, + { "nv!__gl_yieldfunctionslow", "" }, + { "nv!__gl_yieldfunctionwaitfordcqueue", "" }, + { "nv!__gl_yieldfunctionwaitforframe", "" }, + { "nv!__gl_yieldfunctionwaitforgpu", "" }, + { "nv!__gl_zbctableaddhysteresis", "" }, + { "nv!gpu_debug_mode", "" }, + { "nv!gpu_stay_on", "" }, + { "nv!gpu_timeout_ms_max", "" }, + { "nv!gvitimeoutcontrol", "" }, + { "nv!hcctrl", "" }, + { "nv!hwstate_per_ctx", "" }, + { "nv!libandroid_enable_log", "" }, + { "nv!machinecachelimit", "" }, + { "nv!maxframesallowed", "" }, + { "nv!media.aac_51_output_enabled", "" }, + { "nv!memmgrcachedalloclimit", "" }, + { "nv!memmgrcachedalloclimitratio", "" }, + { "nv!memmgrsysheapalloclimit", "" }, + { "nv!memmgrsysheapalloclimitratio", "" }, + { "nv!memmgrvidheapalloclimit", "" }, + { "nv!mosaic_clip_to_subdev", "" }, + { "nv!mosaic_clip_to_subdev_h_overlap", "" }, + { "nv!mosaic_clip_to_subdev_v_overlap", "" }, + { "nv!nvblit.dump", "" }, + { "nv!nvblit.profile", "" }, + { "nv!nvblit.twod", "" }, + { "nv!nvblit.vic", "" }, + { "nv!nvddk_vic_prevent_use", "" }, + { "nv!nv_decompression", "" }, + { "nv!nvdisp_bl_ctrl", "0" }, + { "nv!nvdisp_debug_mask", "" }, + { "nv!nvdisp_enable_ts", "0" }, + { "nv!nvhdcp_timeout_ms", "12000" }, + { "nv!nvhdcp_max_retries", "5" }, + { "nv!nv_emc_dvfs_test", "" }, + { "nv!nv_emc_init_rate_hz", "" }, + { "nv!nv_gmmu_va_page_split", "" }, + { "nv!nv_gmmu_va_range", "" }, + { "nv!nvhost_debug_mask", "" }, + { "nv!nvidia.hwc.dump_config", "" }, + { "nv!nvidia.hwc.dump_layerlist", "" }, + { "nv!nvidia.hwc.dump_windows", "" }, + { "nv!nvidia.hwc.enable_disp_trans", "" }, + { "nv!nvidia.hwc.ftrace_enable", "" }, + { "nv!nvidia.hwc.hdcp_enable", "" }, + { "nv!nvidia.hwc.hidden_window_mask0", "" }, + { "nv!nvidia.hwc.hidden_window_mask1", "" }, + { "nv!nvidia.hwc.immediate_modeset", "" }, + { "nv!nvidia.hwc.imp_enable", "" }, + { "nv!nvidia.hwc.no_egl", "" }, + { "nv!nvidia.hwc.no_scratchblit", "" }, + { "nv!nvidia.hwc.no_vic", "" }, + { "nv!nvidia.hwc.null_display", "" }, + { "nv!nvidia.hwc.scan_props", "" }, + { "nv!nvidia.hwc.swap_interval", "" }, + { "nv!nvidia.hwc.war_1515812", "0" }, + { "nv!nvmap_debug_mask", "" }, + { "nv!nv_memory_profiler", "" }, + { "nv!nvnflinger_enable_log", "" }, + { "nv!nvnflinger_flip_policy", "" }, + { "nv!nvnflinger_hotplug_autoswitch", "0" }, + { "nv!nvnflinger_prefer_primary_layer", "0" }, + { "nv!nvnflinger_service_priority", "" }, + { "nv!nvnflinger_service_threads", "" }, + { "nv!nvnflinger_swap_interval", "" }, + { "nv!nvnflinger_track_perf", "" }, + { "nv!nvnflinger_virtualdisplay_policy", "60hz" }, + { "nv!nvn_no_vsync_capability", false }, + { "nv!nvn_through_opengl", "" }, + { "nv!nv_pllcx_always_on", "" }, + { "nv!nv_pllcx_safe_div", "" }, + { "nv!nvrm_gpu_channel_interleave", "" }, + { "nv!nvrm_gpu_channel_priority", "" }, + { "nv!nvrm_gpu_channel_timeslice", "" }, + { "nv!nvrm_gpu_default_device_index", "" }, + { "nv!nvrm_gpu_dummy", "" }, + { "nv!nvrm_gpu_help", "" }, + { "nv!nvrm_gpu_nvgpu_disable", "" }, + { "nv!nvrm_gpu_nvgpu_do_nfa_partial_map", "" }, + { "nv!nvrm_gpu_nvgpu_ecc_overrides", "" }, + { "nv!nvrm_gpu_nvgpu_no_as_get_va_regions", "" }, + { "nv!nvrm_gpu_nvgpu_no_channel_abort", "" }, + { "nv!nvrm_gpu_nvgpu_no_cyclestats", "" }, + { "nv!nvrm_gpu_nvgpu_no_fixed", "" }, + { "nv!nvrm_gpu_nvgpu_no_gpu_characteristics", "" }, + { "nv!nvrm_gpu_nvgpu_no_ioctl_mutex", "" }, + { "nv!nvrm_gpu_nvgpu_no_map_buffer_ex", "" }, + { "nv!nvrm_gpu_nvgpu_no_robustness", "" }, + { "nv!nvrm_gpu_nvgpu_no_sparse", "" }, + { "nv!nvrm_gpu_nvgpu_no_syncpoints", "" }, + { "nv!nvrm_gpu_nvgpu_no_tsg", "" }, + { "nv!nvrm_gpu_nvgpu_no_zbc", "" }, + { "nv!nvrm_gpu_nvgpu_no_zcull", "" }, + { "nv!nvrm_gpu_nvgpu_wrap_channels_in_tsgs", "" }, + { "nv!nvrm_gpu_prevent_use", "" }, + { "nv!nvrm_gpu_trace", "" }, + { "nv!nvsched_debug_mask", "" }, + { "nv!nvsched_force_enable", "" }, + { "nv!nvsched_force_log", "" }, + { "nv!nv_usb_plls_hw_ctrl", "" }, + { "nv!nv_winsys", "" }, + { "nv!nvwsi_dump", "" }, + { "nv!nvwsi_fill", "" }, + { "nv!ogl_", "" }, + { "nv!ogl_0356afd0", "" }, + { "nv!ogl_0356afd1", "" }, + { "nv!ogl_0356afd2", "" }, + { "nv!ogl_0356afd3", "" }, + { "nv!ogl_0x923dc0", "" }, + { "nv!ogl_0x923dc1", "" }, + { "nv!ogl_0x923dc2", "" }, + { "nv!ogl_0x923dc3", "" }, + { "nv!ogl_0x923dc4", "" }, + { "nv!ogl_0x923dd3", "" }, + { "nv!ogl_0x9abdc5", "" }, + { "nv!ogl_0x9abdc6", "" }, + { "nv!ogl_0xbd10fb", "" }, + { "nv!ogl_0xce2348", "" }, + { "nv!ogl_10261989", "" }, + { "nv!ogl_1042d483", "" }, + { "nv!ogl_10572898", "" }, + { "nv!ogl_115631", "" }, + { "nv!ogl_12950094", "" }, + { "nv!ogl_1314f311", "" }, + { "nv!ogl_1314f312", "" }, + { "nv!ogl_13279512", "" }, + { "nv!ogl_13813496", "" }, + { "nv!ogl_14507179", "" }, + { "nv!ogl_15694569", "" }, + { "nv!ogl_16936964", "" }, + { "nv!ogl_17aa230c", "" }, + { "nv!ogl_182054", "" }, + { "nv!ogl_18273275", "" }, + { "nv!ogl_18273276", "" }, + { "nv!ogl_1854d03b", "" }, + { "nv!ogl_18add00d", "" }, + { "nv!ogl_19156670", "" }, + { "nv!ogl_19286545", "" }, + { "nv!ogl_1a298e9f", "" }, + { "nv!ogl_1acf43fe", "" }, + { "nv!ogl_1bda43fe", "" }, + { "nv!ogl_1c3b92", "" }, + { "nv!ogl_21509920", "" }, + { "nv!ogl_215323457", "" }, + { "nv!ogl_2165ad", "" }, + { "nv!ogl_2165ae", "" }, + { "nv!ogl_21be9c", "" }, + { "nv!ogl_233264316", "" }, + { "nv!ogl_234557580", "" }, + { "nv!ogl_23cd0e", "" }, + { "nv!ogl_24189123", "" }, + { "nv!ogl_2443266", "" }, + { "nv!ogl_25025519", "" }, + { "nv!ogl_255e39", "" }, + { "nv!ogl_2583364", "" }, + { "nv!ogl_2888c1", "" }, + { "nv!ogl_28ca3e", "" }, + { "nv!ogl_29871243", "" }, + { "nv!ogl_2a1f64", "" }, + { "nv!ogl_2dc432", "" }, + { "nv!ogl_2de437", "" }, + { "nv!ogl_2f3bb89c", "" }, + { "nv!ogl_2fd652", "" }, + { "nv!ogl_3001ac", "" }, + { "nv!ogl_31298772", "" }, + { "nv!ogl_313233", "" }, + { "nv!ogl_31f7d603", "" }, + { "nv!ogl_320ce4", "" }, + { "nv!ogl_32153248", "" }, + { "nv!ogl_32153249", "" }, + { "nv!ogl_335bca", "" }, + { "nv!ogl_342abb", "" }, + { "nv!ogl_34dfe6", "" }, + { "nv!ogl_34dfe7", "" }, + { "nv!ogl_34dfe8", "" }, + { "nv!ogl_34dfe9", "" }, + { "nv!ogl_35201578", "" }, + { "nv!ogl_359278", "" }, + { "nv!ogl_37f53a", "" }, + { "nv!ogl_38144972", "" }, + { "nv!ogl_38542646", "" }, + { "nv!ogl_3b74c9", "" }, + { "nv!ogl_3c136f", "" }, + { "nv!ogl_3cf72823", "" }, + { "nv!ogl_3d7af029", "" }, + { "nv!ogl_3ff34782", "" }, + { "nv!ogl_4129618", "" }, + { "nv!ogl_4189fac3", "" }, + { "nv!ogl_420bd4", "" }, + { "nv!ogl_42a699", "" }, + { "nv!ogl_441369", "" }, + { "nv!ogl_4458713e", "" }, + { "nv!ogl_4554b6", "" }, + { "nv!ogl_457425", "" }, + { "nv!ogl_4603b207", "" }, + { "nv!ogl_46574957", "" }, + { "nv!ogl_46574958", "" }, + { "nv!ogl_46813529", "" }, + { "nv!ogl_46f1e13d", "" }, + { "nv!ogl_47534c43", "" }, + { "nv!ogl_48550336", "" }, + { "nv!ogl_48576893", "" }, + { "nv!ogl_48576894", "" }, + { "nv!ogl_4889ac02", "" }, + { "nv!ogl_49005740", "" }, + { "nv!ogl_49867584", "" }, + { "nv!ogl_49960973", "" }, + { "nv!ogl_4a5341", "" }, + { "nv!ogl_4f4e48", "" }, + { "nv!ogl_4f8a0a", "" }, + { "nv!ogl_50299698", "" }, + { "nv!ogl_50299699", "" }, + { "nv!ogl_50361291", "" }, + { "nv!ogl_5242ae", "" }, + { "nv!ogl_53d30c", "" }, + { "nv!ogl_56347a", "" }, + { "nv!ogl_563a95f1", "" }, + { "nv!ogl_573823", "" }, + { "nv!ogl_58027529", "" }, + { "nv!ogl_5d2d63", "" }, + { "nv!ogl_5f7e3b", "" }, + { "nv!ogl_60461793", "" }, + { "nv!ogl_60d355", "" }, + { "nv!ogl_616627aa", "" }, + { "nv!ogl_62317182", "" }, + { "nv!ogl_6253fa2e", "" }, + { "nv!ogl_64100768", "" }, + { "nv!ogl_64100769", "" }, + { "nv!ogl_64100770", "" }, + { "nv!ogl_647395", "" }, + { "nv!ogl_66543234", "" }, + { "nv!ogl_67674763", "" }, + { "nv!ogl_67739784", "" }, + { "nv!ogl_68fb9c", "" }, + { "nv!ogl_69801276", "" }, + { "nv!ogl_6af9fa2f", "" }, + { "nv!ogl_6af9fa3f", "" }, + { "nv!ogl_6af9fa4f", "" }, + { "nv!ogl_6bd8c7", "" }, + { "nv!ogl_6c7691", "" }, + { "nv!ogl_6d4296ce", "" }, + { "nv!ogl_6dd7e7", "" }, + { "nv!ogl_6dd7e8", "" }, + { "nv!ogl_6fe11ec1", "" }, + { "nv!ogl_716511763", "" }, + { "nv!ogl_72504593", "" }, + { "nv!ogl_73304097", "" }, + { "nv!ogl_73314098", "" }, + { "nv!ogl_74095213", "" }, + { "nv!ogl_74095213a", "" }, + { "nv!ogl_74095213b", "" }, + { "nv!ogl_74095214", "" }, + { "nv!ogl_748f9649", "" }, + { "nv!ogl_75494732", "" }, + { "nv!ogl_78452832", "" }, + { "nv!ogl_784561", "" }, + { "nv!ogl_78e16b9c", "" }, + { "nv!ogl_79251225", "" }, + { "nv!ogl_7c128b", "" }, + { "nv!ogl_7ccd93", "" }, + { "nv!ogl_7df8d1", "" }, + { "nv!ogl_800c2310", "" }, + { "nv!ogl_80546710", "" }, + { "nv!ogl_80772310", "" }, + { "nv!ogl_808ee280", "" }, + { "nv!ogl_81131154", "" }, + { "nv!ogl_81274457", "" }, + { "nv!ogl_8292291f", "" }, + { "nv!ogl_83498426", "" }, + { "nv!ogl_84993794", "" }, + { "nv!ogl_84995585", "" }, + { "nv!ogl_84a0a0", "" }, + { "nv!ogl_852142", "" }, + { "nv!ogl_85612309", "" }, + { "nv!ogl_85612310", "" }, + { "nv!ogl_85612311", "" }, + { "nv!ogl_85612312", "" }, + { "nv!ogl_8623ff27", "" }, + { "nv!ogl_87364952", "" }, + { "nv!ogl_87f6275666", "" }, + { "nv!ogl_886748", "" }, + { "nv!ogl_89894423", "" }, + { "nv!ogl_8ad8a75", "" }, + { "nv!ogl_8ad8ad00", "" }, + { "nv!ogl_8bb815", "" }, + { "nv!ogl_8bb817", "" }, + { "nv!ogl_8bb818", "" }, + { "nv!ogl_8bb819", "" }, + { "nv!ogl_8e640cd1", "" }, + { "nv!ogl_8f34971a", "" }, + { "nv!ogl_8f773984", "" }, + { "nv!ogl_8f7a7d", "" }, + { "nv!ogl_902486209", "" }, + { "nv!ogl_90482571", "" }, + { "nv!ogl_91214835", "" }, + { "nv!ogl_912848290", "" }, + { "nv!ogl_915e56", "" }, + { "nv!ogl_92179063", "" }, + { "nv!ogl_92179064", "" }, + { "nv!ogl_92179065", "" }, + { "nv!ogl_92179066", "" }, + { "nv!ogl_92350358", "" }, + { "nv!ogl_92809063", "" }, + { "nv!ogl_92809064", "" }, + { "nv!ogl_92809065", "" }, + { "nv!ogl_92809066", "" }, + { "nv!ogl_92920143", "" }, + { "nv!ogl_93a89b12", "" }, + { "nv!ogl_93a89c0b", "" }, + { "nv!ogl_94812574", "" }, + { "nv!ogl_95282304", "" }, + { "nv!ogl_95394027", "" }, + { "nv!ogl_959b1f", "" }, + { "nv!ogl_9638af", "" }, + { "nv!ogl_96fd59", "" }, + { "nv!ogl_97f6275666", "" }, + { "nv!ogl_97f6275667", "" }, + { "nv!ogl_97f6275668", "" }, + { "nv!ogl_97f6275669", "" }, + { "nv!ogl_97f627566a", "" }, + { "nv!ogl_97f627566b", "" }, + { "nv!ogl_97f627566d", "" }, + { "nv!ogl_97f627566e", "" }, + { "nv!ogl_97f627566f", "" }, + { "nv!ogl_97f6275670", "" }, + { "nv!ogl_97f6275671", "" }, + { "nv!ogl_97f727566e", "" }, + { "nv!ogl_98480775", "" }, + { "nv!ogl_98480776", "" }, + { "nv!ogl_98480777", "" }, + { "nv!ogl_992431", "" }, + { "nv!ogl_9aa29065", "" }, + { "nv!ogl_9af32c", "" }, + { "nv!ogl_9af32d", "" }, + { "nv!ogl_9af32e", "" }, + { "nv!ogl_9c108b71", "" }, + { "nv!ogl_9f279065", "" }, + { "nv!ogl_a01bc728", "" }, + { "nv!ogl_a13b46c80", "" }, + { "nv!ogl_a22eb0", "" }, + { "nv!ogl_a2fb451e", "" }, + { "nv!ogl_a3456abe", "" }, + { "nv!ogl_a7044887", "" }, + { "nv!ogl_a7149200", "" }, + { "nv!ogl_a766215670", "" }, + { "nv!ogl_aalinegamma", "" }, + { "nv!ogl_aalinetweaks", "" }, + { "nv!ogl_ab34ee01", "" }, + { "nv!ogl_ab34ee02", "" }, + { "nv!ogl_ab34ee03", "" }, + { "nv!ogl_ac0274", "" }, + { "nv!ogl_af73c63e", "" }, + { "nv!ogl_af73c63f", "" }, + { "nv!ogl_af9927", "" }, + { "nv!ogl_afoverride", "" }, + { "nv!ogl_allocdeviceevents", "" }, + { "nv!ogl_applicationkey", "" }, + { "nv!ogl_appreturnonlybasicglsltype", "" }, + { "nv!ogl_app_softimage", "" }, + { "nv!ogl_app_supportbits2", "" }, + { "nv!ogl_assumetextureismipmappedatcreation", "" }, + { "nv!ogl_b1fb0f01", "" }, + { "nv!ogl_b3edd5", "" }, + { "nv!ogl_b40d9e03d", "" }, + { "nv!ogl_b7f6275666", "" }, + { "nv!ogl_b812c1", "" }, + { "nv!ogl_ba14ba1a", "" }, + { "nv!ogl_ba14ba1b", "" }, + { "nv!ogl_bd7559", "" }, + { "nv!ogl_bd755a", "" }, + { "nv!ogl_bd755c", "" }, + { "nv!ogl_bd755d", "" }, + { "nv!ogl_be58bb", "" }, + { "nv!ogl_be92cb", "" }, + { "nv!ogl_beefcba3", "" }, + { "nv!ogl_beefcba4", "" }, + { "nv!ogl_c023777f", "" }, + { "nv!ogl_c09dc8", "" }, + { "nv!ogl_c0d340", "" }, + { "nv!ogl_c2ff374c", "" }, + { "nv!ogl_c5e9d7a3", "" }, + { "nv!ogl_c5e9d7a4", "" }, + { "nv!ogl_c5e9d7b4", "" }, + { "nv!ogl_c618f9", "" }, + { "nv!ogl_ca345840", "" }, + { "nv!ogl_cachedisable", "" }, + { "nv!ogl_channelpriorityoverride", "" }, + { "nv!ogl_cleardatastorevidmem", "" }, + { "nv!ogl_cmdbufmemoryspaceenables", "" }, + { "nv!ogl_cmdbufminwords", "" }, + { "nv!ogl_cmdbufsizewords", "" }, + { "nv!ogl_conformantblitframebufferscissor", "" }, + { "nv!ogl_conformantincompletetextures", "" }, + { "nv!ogl_copybuffermethod", "" }, + { "nv!ogl_cubemapaniso", "" }, + { "nv!ogl_cubemapfiltering", "" }, + { "nv!ogl_d0e9a4d7", "" }, + { "nv!ogl_d13733f12", "" }, + { "nv!ogl_d1b399", "" }, + { "nv!ogl_d2983c32", "" }, + { "nv!ogl_d2983c33", "" }, + { "nv!ogl_d2e71b", "" }, + { "nv!ogl_d377dc", "" }, + { "nv!ogl_d377dd", "" }, + { "nv!ogl_d489f4", "" }, + { "nv!ogl_d4bce1", "" }, + { "nv!ogl_d518cb", "" }, + { "nv!ogl_d518cd", "" }, + { "nv!ogl_d518ce", "" }, + { "nv!ogl_d518d0", "" }, + { "nv!ogl_d518d1", "" }, + { "nv!ogl_d518d2", "" }, + { "nv!ogl_d518d3", "" }, + { "nv!ogl_d518d4", "" }, + { "nv!ogl_d518d5", "" }, + { "nv!ogl_d59eda", "" }, + { "nv!ogl_d83cbd", "" }, + { "nv!ogl_d8e777", "" }, + { "nv!ogl_debug_level", "" }, + { "nv!ogl_debug_mask", "" }, + { "nv!ogl_debug_options", "" }, + { "nv!ogl_devshmpageableallocations", "" }, + { "nv!ogl_df1f9812", "" }, + { "nv!ogl_df783c", "" }, + { "nv!ogl_diagenable", "" }, + { "nv!ogl_disallowcemask", "" }, + { "nv!ogl_disallowz16", "" }, + { "nv!ogl_dlmemoryspaceenables", "" }, + { "nv!ogl_e0bfec", "" }, + { "nv!ogl_e433456d", "" }, + { "nv!ogl_e435563f", "" }, + { "nv!ogl_e4cd9c", "" }, + { "nv!ogl_e5c972", "" }, + { "nv!ogl_e639ef", "" }, + { "nv!ogl_e802af", "" }, + { "nv!ogl_eae964", "" }, + { "nv!ogl_earlytexturehwallocation", "" }, + { "nv!ogl_eb92a3", "" }, + { "nv!ogl_ebca56", "" }, + { "nv!ogl_expert_detail_level", "" }, + { "nv!ogl_expert_output_mask", "" }, + { "nv!ogl_expert_report_mask", "" }, + { "nv!ogl_extensionstringnvarch", "" }, + { "nv!ogl_extensionstringversion", "" }, + { "nv!ogl_f00f1938", "" }, + { "nv!ogl_f10736", "" }, + { "nv!ogl_f1846870", "" }, + { "nv!ogl_f33bc370", "" }, + { "nv!ogl_f392a874", "" }, + { "nv!ogl_f49ae8", "" }, + { "nv!ogl_fa345cce", "" }, + { "nv!ogl_fa35cc4", "" }, + { "nv!ogl_faa14a", "" }, + { "nv!ogl_faf8a723", "" }, + { "nv!ogl_fastgs", "" }, + { "nv!ogl_fbf4ac45", "" }, + { "nv!ogl_fbo_blit_ignore_srgb", "" }, + { "nv!ogl_fc64c7", "" }, + { "nv!ogl_ff54ec97", "" }, + { "nv!ogl_ff54ec98", "" }, + { "nv!ogl_forceexitprocessdetach", "" }, + { "nv!ogl_forcerequestedesversion", "" }, + { "nv!ogl_glsynctovblank", "" }, + { "nv!ogl_gvitimeoutcontrol", "" }, + { "nv!ogl_hcctrl", "" }, + { "nv!ogl_hwstate_per_ctx", "" }, + { "nv!ogl_machinecachelimit", "" }, + { "nv!ogl_maxframesallowed", "" }, + { "nv!ogl_memmgrcachedalloclimit", "" }, + { "nv!ogl_memmgrcachedalloclimitratio", "" }, + { "nv!ogl_memmgrsysheapalloclimit", "" }, + { "nv!ogl_memmgrsysheapalloclimitratio", "" }, + { "nv!ogl_memmgrvidheapalloclimit", "" }, + { "nv!ogl_mosaic_clip_to_subdev", "" }, + { "nv!ogl_mosaic_clip_to_subdev_h_overlap", "" }, + { "nv!ogl_mosaic_clip_to_subdev_v_overlap", "" }, + { "nv!ogl_overlaymergeblittimerms", "" }, + { "nv!ogl_perfmon_mode", "" }, + { "nv!ogl_pixbar_mode", "" }, + { "nv!ogl_qualityenhancements", "" }, + { "nv!ogl_r27s18q28", "" }, + { "nv!ogl_r2d7c1d8", "" }, + { "nv!ogl_renderer", "" }, + { "nv!ogl_renderqualityflags", "" }, + { "nv!ogl_s3tcquality", "" }, + { "nv!ogl_shaderatomics", "" }, + { "nv!ogl_shadercacheinitsize", "" }, + { "nv!ogl_shader_disk_cache_path", "" }, + { "nv!ogl_shader_disk_cache_read_only", "" }, + { "nv!ogl_shaderobjects", "" }, + { "nv!ogl_shaderportabilitywarnings", "" }, + { "nv!ogl_shaderwarningsaserrors", "" }, + { "nv!ogl_skiptexturehostcopies", "" }, + { "nv!ogl_sli_dli_control", "" }, + { "nv!ogl_sparsetexture", "" }, + { "nv!ogl_spinlooptimeout", "" }, + { "nv!ogl_sync_to_vblank", "" }, + { "nv!ogl_sysheapreuseratio", "" }, + { "nv!ogl_sysmemtexturepromotion", "" }, + { "nv!ogl_targetflushcount", "" }, + { "nv!ogl_tearingfreeswappresent", "" }, + { "nv!ogl_texclampbehavior", "" }, + { "nv!ogl_texlodbias", "" }, + { "nv!ogl_texmemoryspaceenables", "" }, + { "nv!ogl_textureprecache", "" }, + { "nv!ogl_threadcontrol", "" }, + { "nv!ogl_threadcontrol2", "" }, + { "nv!ogl_usegvievents", "" }, + { "nv!ogl_vbomemoryspaceenables", "" }, + { "nv!ogl_vertexlimit", "" }, + { "nv!ogl_vidheapreuseratio", "" }, + { "nv!ogl_vpipe", "" }, + { "nv!ogl_vpipeformatbloatlimit", "" }, + { "nv!ogl_wglmessageboxonabort", "" }, + { "nv!ogl_writeinfolog", "" }, + { "nv!ogl_writeprogramobjectassembly", "" }, + { "nv!ogl_writeprogramobjectsource", "" }, + { "nv!ogl_xnvadapterpresent", "" }, + { "nv!ogl_yield", "" }, + { "nv!ogl_yieldfunction", "" }, + { "nv!ogl_yieldfunctionfast", "" }, + { "nv!ogl_yieldfunctionslow", "" }, + { "nv!ogl_yieldfunctionwaitfordcqueue", "" }, + { "nv!ogl_yieldfunctionwaitforframe", "" }, + { "nv!ogl_yieldfunctionwaitforgpu", "" }, + { "nv!ogl_zbctableaddhysteresis", "" }, + { "nv!overlaymergeblittimerms", "" }, + { "nv!perfmon_mode", "" }, + { "nv!persist.sys.display.resolution", "" }, + { "nv!persist.tegra.composite.fallb", "" }, + { "nv!persist.tegra.composite.policy", "" }, + { "nv!persist.tegra.composite.range", "" }, + { "nv!persist.tegra.compositor", "" }, + { "nv!persist.tegra.compositor.virt", "" }, + { "nv!persist.tegra.compression", "" }, + { "nv!persist.tegra.cursor.enable", "" }, + { "nv!persist.tegra.didim.enable", "" }, + { "nv!persist.tegra.didim.normal", "" }, + { "nv!persist.tegra.didim.video", "" }, + { "nv!persist.tegra.disp.heads", "" }, + { "nv!persist.tegra.gamma_correction", "" }, + { "nv!persist.tegra.gpu_mapping_cache", "" }, + { "nv!persist.tegra.grlayout", "" }, + { "nv!persist.tegra.hdmi.2020.10", "" }, + { "nv!persist.tegra.hdmi.2020.fake", "" }, + { "nv!persist.tegra.hdmi.2020.force", "" }, + { "nv!persist.tegra.hdmi.autorotate", "" }, + { "nv!persist.tegra.hdmi.hdr.fake", "" }, + { "nv!persist.tegra.hdmi.ignore_ratio", "" }, + { "nv!persist.tegra.hdmi.limit.clock", "" }, + { "nv!persist.tegra.hdmi.only_16_9", "" }, + { "nv!persist.tegra.hdmi.range", "" }, + { "nv!persist.tegra.hdmi.resolution", "" }, + { "nv!persist.tegra.hdmi.underscan", "" }, + { "nv!persist.tegra.hdmi.yuv.422", "" }, + { "nv!persist.tegra.hdmi.yuv.444", "" }, + { "nv!persist.tegra.hdmi.yuv.enable", "" }, + { "nv!persist.tegra.hdmi.yuv.force", "" }, + { "nv!persist.tegra.hwc.nvdc", "" }, + { "nv!persist.tegra.idle.minimum_fps", "" }, + { "nv!persist.tegra.panel.rotation", "" }, + { "nv!persist.tegra.scan_props", "" }, + { "nv!persist.tegra.stb.mode", "" }, + { "nv!persist.tegra.zbc_override", "" }, + { "nv!pixbar_mode", "" }, + { "nv!qualityenhancements", "" }, + { "nv!r27s18q28", "" }, + { "nv!r2d7c1d8", "" }, + { "nv!renderer", "" }, + { "nv!renderqualityflags", "" }, + { "nv!rmos_debug_mask", "" }, + { "nv!rmos_set_production_mode", "" }, + { "nv!s3tcquality", "" }, + { "nv!shaderatomics", "" }, + { "nv!shadercacheinitsize", "" }, + { "nv!shader_disk_cache_path", "" }, + { "nv!shader_disk_cache_read_only", "" }, + { "nv!shaderobjects", "" }, + { "nv!shaderportabilitywarnings", "" }, + { "nv!shaderwarningsaserrors", "" }, + { "nv!skiptexturehostcopies", "" }, + { "nv!sli_dli_control", "" }, + { "nv!sparsetexture", "" }, + { "nv!spinlooptimeout", "" }, + { "nv!sync_to_vblank", "" }, + { "nv!sysheapreuseratio", "" }, + { "nv!sysmemtexturepromotion", "" }, + { "nv!targetflushcount", "" }, + { "nv!tearingfreeswappresent", "" }, + { "nv!tegra.refresh", "" }, + { "nv!texclampbehavior", "" }, + { "nv!texlodbias", "" }, + { "nv!texmemoryspaceenables", "" }, + { "nv!textureprecache", "" }, + { "nv!threadcontrol", "" }, + { "nv!threadcontrol2", "" }, + { "nv!tvmr.avp.logs", "" }, + { "nv!tvmr.buffer.logs", "" }, + { "nv!tvmr.dec.prof", "" }, + { "nv!tvmr.deint.logs", "" }, + { "nv!tvmr.dfs.logs", "" }, + { "nv!tvmr.ffprof.logs", "" }, + { "nv!tvmr.game.stream", "" }, + { "nv!tvmr.general.logs", "" }, + { "nv!tvmr.input.dump", "" }, + { "nv!tvmr.seeking.logs", "" }, + { "nv!tvmr.ts_pulldown", "" }, + { "nv!usegvievents", "" }, + { "nv!vbomemoryspaceenables", "" }, + { "nv!vcc_debug_ip", "" }, + { "nv!vcc_verbose_level", "" }, + { "nv!vertexlimit", "" }, + { "nv!viccomposer.filter", "" }, + { "nv!videostats-enable", "" }, + { "nv!vidheapreuseratio", "" }, + { "nv!vpipe", "" }, + { "nv!vpipeformatbloatlimit", "" }, + { "nv!wglmessageboxonabort", "" }, + { "nv!writeinfolog", "" }, + { "nv!writeprogramobjectassembly", "" }, + { "nv!writeprogramobjectsource", "" }, + { "nv!xnvadapterpresent", "" }, + { "nv!yield", "" }, + { "nv!yieldfunction", "" }, + { "nv!yieldfunctionfast", "" }, + { "nv!yieldfunctionslow", "" }, + { "nv!yieldfunctionwaitfordcqueue", "" }, + { "nv!yieldfunctionwaitforframe", "" }, + { "nv!yieldfunctionwaitforgpu", "" }, + { "nv!zbctableaddhysteresis", "" }, + { "pcm!enable", true }, + { "pctl!intermittent_task_interval_seconds", 21600 }, + { "prepo!devmenu_prepo_page_view", false }, + { "prepo!background_processing", true }, + { "prepo!transmission_interval_min", 10 }, + { "prepo!transmission_retry_interval", 3600 }, + { "psm!evaluation_log_enabled", false }, + { "snap_shot_dump!auto_dump", false }, + { "snap_shot_dump!output_dir", "%USERPROFILE%/Documents/Nintendo/NXDMP" }, + { "snap_shot_dump!full_dump", false }, + { "systemconfig!field_testing", false }, + { "systemconfig!exhivision", false }, + { "systempowerstate!always_reboot", false }, + { "systempowerstate!power_state_message_emulation_trigger_time", 0 }, + { "systempowerstate!power_state_message_to_emulate", 0 }, + { "target_manager!device_name", "" }, + { "vulnerability!needs_update_vulnerability_policy", 0 }, + { "apm!performance_mode_policy", "auto" }, + { "apm!sdev_throttling_enabled", true }, + { "apm!sdev_throttling_additional_delay_us", 16000 }, + { "apm!battery_draining_enabled", false }, + { "apm!sdev_cpu_overclock_enabled", false }, + { "bcat!production_mode", true }, + { "bpc!enable_quasi_off", true }, + { "bsp0!usb", "UDS" }, + { "bsp0!tm_transport", "USB" }, + { "bluetooth_debug!skip_boot", false }, + { "contents_delivery!enable_debug_api", false }, + { "eupld!upload_enabled", true }, + { "fatal!transition_to_fatal", true }, + { "fatal!show_extra_info", false }, + { "gpu_core_dump!auto_dump", false }, + { "hid_debug!enables_debugpad", false }, + { "hid_debug!manages_devices", true }, + { "hid_debug!emulate_future_device", false }, + { "hid_debug!emulate_firmware_update_failure", false }, + { "hid_debug!emulate_mcu_hardware_error", false }, + { "hid_debug!firmware_update_failure_emulation_mode", 0 }, + { "jit_debug!enable_jit_debug", false }, + { "npns!background_processing", true }, + { "npns!logmanager_redirection", true }, + { "npns!sleep_processing_timeout", 30 }, + { "npns!sleep_periodic_interval", 10800 }, + { "npns!sleep_max_try_count", 5 }, + { "npns!test_mode", false }, + { "ns.applet!overlay_applet_id", "0x010000000000100c" }, + { "ns.applet!system_applet_id", "0x0100000000001000" }, + { "ns.applet!shop_applet_id", "0x010000000000100b" }, + { "ns.autoboot!enabled", true }, + { "ns.pseudodeviceid!reset_pseudo_device_id", false }, + { "nsd!environment_identifier", "lp1" }, + { "nsd!test_mode", false }, + { "ntc!is_autonomic_correction_enabled", true }, + { "ntc!autonomic_correction_interval_seconds", 432000 }, + { "ntc!autonomic_correction_failed_retry_interval_seconds", 1800 }, + { "ntc!autonomic_correction_immediate_try_count_max", 4 }, + { "ntc!autonomic_correction_immediate_try_interval_milliseconds", 5000 }, + { "nv!nv_graphics_firmware_memory_margin", false }, + { "omm!operation_mode_policy", "auto" }, + { "omm!sleep_fade_in_ms", 50 }, + { "omm!sleep_fade_out_ms", 100 }, + { "omm!charging_sign_ms", 3000 }, + { "omm!low_battery_sign_ms", 3000 }, + { "omm!sign_fade_in_ms", 0 }, + { "omm!sign_fade_out_ms", 400 }, + { "omm!sign_wait_layer_visible_ms", 100 }, + { "omm!startup_fade_in_ms", 200 }, + { "omm!startup_fade_out_ms", 400 }, + { "omm!backlight_off_ms_on_handheld_switch", 150 }, + { "omm!sleep_on_ac_ok_boot", true }, + { "pdm!save_playlog", true }, + { "productinfo!product_name", "Nintendo Switch" }, + { "productinfo!cec_osd_name", "NintendoSwitch" }, + { "ro!ease_nro_restriction", false }, + { "settings_debug!is_debug_mode_enabled", false }, + { "systemreport!enabled", true }, + { "systemsleep!enter_sleep", true }, + { "systemsleep!enter_sc7", true }, + { "systemsleep!keep_vdd_core", true }, + { "systemsleep!disable_tma_sleep", false }, + { "systemsleep!disable_auto_sleep", false }, + { "systemsleep!override_auto_sleep_time", 0 }, + { "systemsleep!sleep_pending_time_ms", 15000 }, + { "systemsleep!hush_time_after_brief_power_button_press_ms", 1000 }, + { "systemsleep!transition_timeout_sec", 60 }, + { "systemsleep!dummy_event_auto_wake", false }, + { "systemupdate!debug_id", "0x0000000000000000" }, + { "systemupdate!debug_version", 0 }, + { "systemupdate!bgnup_retry_seconds", 60 }, + { "systemupdate!enable_background_download_stress_testing", false }, + { "systemupdate!debug_id_for_content_delivery", "0x0000000000000000" }, + { "systemupdate!debug_version_for_content_delivery", 0 }, + { "systemupdate!assumed_system_applet_version", 0 }, + { "tc!iir_filter_gain_soc", 100 }, + { "tc!iir_filter_gain_pcb", 100 }, + { "tc!tskin_soc_coefficients_handheld", "[5464, 174190]" }, + { "tc!tskin_soc_coefficients_console", "[6182, 112480]" }, + { "tc!tskin_pcb_coefficients_handheld", "[5464, 174190]" }, + { "tc!tskin_pcb_coefficients_console", "[6182, 112480]" }, + { "tc!tskin_select", "both" }, + { "tc!tskin_rate_table_handheld", "[[-1000000, 40000, 0, 0], [36000, 43000, 51, 51], [43000, 48000, 51, 102], [48000, 53000, 102, 153], [53000, 1000000, 153, 153], [48000, 1000000, 153, 153]]" }, + { "tc!tskin_rate_table_console", "[[-1000000, 43000, 51, 51], [43000, 53000, 51, 153], [53000, 58000, 153, 255], [58000, 1000000, 255, 255]]" }, + { "tc!rate_select", "both" }, + { "tc!log_enabled", false }, + { "tc!sleep_enabled", true }, + { "time!standard_steady_clock_test_offset_minutes", 0 }, + { "time!standard_steady_clock_rtc_update_interval_minutes", 5 }, + { "time!standard_network_clock_sufficient_accuracy_minutes", 43200 }, + { "usb!usb30_force_enabled", false }, + { "wlan_debug!skip_wlan_boot", false }, + }; + } +} diff --git a/Ryujinx.Core/OsHle/Services/Sfdnsres/IResolver.cs b/Ryujinx.HLE/OsHle/Services/Sfdnsres/IResolver.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Sfdnsres/IResolver.cs rename to Ryujinx.HLE/OsHle/Services/Sfdnsres/IResolver.cs diff --git a/Ryujinx.Core/OsHle/Services/Sm/IUserInterface.cs b/Ryujinx.HLE/OsHle/Services/Sm/IUserInterface.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Sm/IUserInterface.cs rename to Ryujinx.HLE/OsHle/Services/Sm/IUserInterface.cs diff --git a/Ryujinx.Core/OsHle/Services/Ssl/ISslService.cs b/Ryujinx.HLE/OsHle/Services/Ssl/ISslService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Ssl/ISslService.cs rename to Ryujinx.HLE/OsHle/Services/Ssl/ISslService.cs diff --git a/Ryujinx.Core/OsHle/Services/Time/IStaticService.cs b/Ryujinx.HLE/OsHle/Services/Time/IStaticService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Time/IStaticService.cs rename to Ryujinx.HLE/OsHle/Services/Time/IStaticService.cs diff --git a/Ryujinx.Core/OsHle/Services/Time/ISteadyClock.cs b/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Time/ISteadyClock.cs rename to Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs diff --git a/Ryujinx.Core/OsHle/Services/Time/ISystemClock.cs b/Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Time/ISystemClock.cs rename to Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs diff --git a/Ryujinx.Core/OsHle/Services/Time/ITimeZoneService.cs b/Ryujinx.HLE/OsHle/Services/Time/ITimeZoneService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Time/ITimeZoneService.cs rename to Ryujinx.HLE/OsHle/Services/Time/ITimeZoneService.cs diff --git a/Ryujinx.Core/OsHle/Services/Time/SystemClockType.cs b/Ryujinx.HLE/OsHle/Services/Time/SystemClockType.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Time/SystemClockType.cs rename to Ryujinx.HLE/OsHle/Services/Time/SystemClockType.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/Display.cs b/Ryujinx.HLE/OsHle/Services/Vi/Display.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/Display.cs rename to Ryujinx.HLE/OsHle/Services/Vi/Display.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/GbpBuffer.cs b/Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/GbpBuffer.cs rename to Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs b/Ryujinx.HLE/OsHle/Services/Vi/IApplicationDisplayService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs rename to Ryujinx.HLE/OsHle/Services/Vi/IApplicationDisplayService.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/IApplicationRootService.cs b/Ryujinx.HLE/OsHle/Services/Vi/IApplicationRootService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/IApplicationRootService.cs rename to Ryujinx.HLE/OsHle/Services/Vi/IApplicationRootService.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs b/Ryujinx.HLE/OsHle/Services/Vi/IHOSBinderDriver.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs rename to Ryujinx.HLE/OsHle/Services/Vi/IHOSBinderDriver.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/IManagerDisplayService.cs b/Ryujinx.HLE/OsHle/Services/Vi/IManagerDisplayService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/IManagerDisplayService.cs rename to Ryujinx.HLE/OsHle/Services/Vi/IManagerDisplayService.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/IManagerRootService.cs b/Ryujinx.HLE/OsHle/Services/Vi/IManagerRootService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/IManagerRootService.cs rename to Ryujinx.HLE/OsHle/Services/Vi/IManagerRootService.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/ISystemDisplayService.cs b/Ryujinx.HLE/OsHle/Services/Vi/ISystemDisplayService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/ISystemDisplayService.cs rename to Ryujinx.HLE/OsHle/Services/Vi/ISystemDisplayService.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/ISystemRootService.cs b/Ryujinx.HLE/OsHle/Services/Vi/ISystemRootService.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/ISystemRootService.cs rename to Ryujinx.HLE/OsHle/Services/Vi/ISystemRootService.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs b/Ryujinx.HLE/OsHle/Services/Vi/NvFlinger.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs rename to Ryujinx.HLE/OsHle/Services/Vi/NvFlinger.cs diff --git a/Ryujinx.Core/OsHle/Services/Vi/Parcel.cs b/Ryujinx.HLE/OsHle/Services/Vi/Parcel.cs similarity index 100% rename from Ryujinx.Core/OsHle/Services/Vi/Parcel.cs rename to Ryujinx.HLE/OsHle/Services/Vi/Parcel.cs diff --git a/Ryujinx.Core/OsHle/SystemLanguage.cs b/Ryujinx.HLE/OsHle/SystemLanguage.cs similarity index 100% rename from Ryujinx.Core/OsHle/SystemLanguage.cs rename to Ryujinx.HLE/OsHle/SystemLanguage.cs diff --git a/Ryujinx.Core/OsHle/SystemStateMgr.cs b/Ryujinx.HLE/OsHle/SystemStateMgr.cs similarity index 100% rename from Ryujinx.Core/OsHle/SystemStateMgr.cs rename to Ryujinx.HLE/OsHle/SystemStateMgr.cs diff --git a/Ryujinx.Core/OsHle/Utilities/EndianSwap.cs b/Ryujinx.HLE/OsHle/Utilities/EndianSwap.cs similarity index 100% rename from Ryujinx.Core/OsHle/Utilities/EndianSwap.cs rename to Ryujinx.HLE/OsHle/Utilities/EndianSwap.cs diff --git a/Ryujinx.Core/OsHle/Utilities/IntUtils.cs b/Ryujinx.HLE/OsHle/Utilities/IntUtils.cs similarity index 100% rename from Ryujinx.Core/OsHle/Utilities/IntUtils.cs rename to Ryujinx.HLE/OsHle/Utilities/IntUtils.cs diff --git a/Ryujinx.Core/PerformanceStatistics.cs b/Ryujinx.HLE/PerformanceStatistics.cs similarity index 100% rename from Ryujinx.Core/PerformanceStatistics.cs rename to Ryujinx.HLE/PerformanceStatistics.cs diff --git a/Ryujinx.Core/Ryujinx.Core.csproj b/Ryujinx.HLE/Ryujinx.Core.csproj similarity index 100% rename from Ryujinx.Core/Ryujinx.Core.csproj rename to Ryujinx.HLE/Ryujinx.Core.csproj diff --git a/Ryujinx.Core/Settings/ColorSet.cs b/Ryujinx.HLE/Settings/ColorSet.cs similarity index 100% rename from Ryujinx.Core/Settings/ColorSet.cs rename to Ryujinx.HLE/Settings/ColorSet.cs diff --git a/Ryujinx.Core/Settings/SystemSettings.cs b/Ryujinx.HLE/Settings/SystemSettings.cs similarity index 100% rename from Ryujinx.Core/Settings/SystemSettings.cs rename to Ryujinx.HLE/Settings/SystemSettings.cs diff --git a/Ryujinx.Core/Switch.cs b/Ryujinx.HLE/Switch.cs similarity index 100% rename from Ryujinx.Core/Switch.cs rename to Ryujinx.HLE/Switch.cs diff --git a/Ryujinx.Core/VirtualFileSystem.cs b/Ryujinx.HLE/VirtualFileSystem.cs similarity index 100% rename from Ryujinx.Core/VirtualFileSystem.cs rename to Ryujinx.HLE/VirtualFileSystem.cs From 676a185dbdd366130a9f7c57ad796dc30e51aec8 Mon Sep 17 00:00:00 2001 From: greggameplayer <33609333+greggameplayer@users.noreply.github.com> Date: Mon, 11 Jun 2018 03:21:05 +0200 Subject: [PATCH 15/15] Revert "Correct conflict" This reverts commit a3f466e62b988306ca98e04092c64fd382986ddd. --- .../Gpu/BlockLinearSwizzle.cs | 0 .../Gpu/INvGpuEngine.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Gpu/ISwizzle.cs | 0 .../Gpu/LinearSwizzle.cs | 0 .../Gpu/MacroInterpreter.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpu.cs | 0 .../Gpu/NvGpuBufferType.cs | 0 .../Gpu/NvGpuEngine.cs | 0 .../Gpu/NvGpuEngine2d.cs | 0 .../Gpu/NvGpuEngine2dReg.cs | 0 .../Gpu/NvGpuEngine3d.cs | 0 .../Gpu/NvGpuEngine3dReg.cs | 0 .../Gpu/NvGpuFifo.cs | 0 .../Gpu/NvGpuFifoMeth.cs | 0 .../Gpu/NvGpuMethod.cs | 0 .../Gpu/NvGpuPBEntry.cs | 0 .../Gpu/NvGpuPushBuffer.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuVmm.cs | 0 .../Gpu/NvGpuVmmCache.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Gpu/Texture.cs | 0 .../Gpu/TextureFactory.cs | 0 .../Gpu/TextureHelper.cs | 0 .../Gpu/TextureReader.cs | 0 .../Gpu/TextureSwizzle.cs | 0 .../Gpu/TextureWriter.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Hid/Hid.cs | 0 .../Hid/HidControllerButtons.cs | 0 .../Hid/HidControllerColorDesc.cs | 0 .../Hid/HidControllerConnState.cs | 0 .../Hid/HidControllerId.cs | 0 .../Hid/HidControllerLayouts.cs | 0 .../Hid/HidControllerType.cs | 0 .../Hid/HidJoystickPosition.cs | 0 .../Hid/HidTouchPoint.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Hid/JoyCon.cs | 0 .../Hid/JoyConColor.cs | 0 .../Loaders/Compression/Lz4.cs | 0 .../Loaders/ElfDyn.cs | 0 .../Loaders/ElfDynTag.cs | 0 .../Loaders/ElfRel.cs | 0 .../Loaders/ElfRelType.cs | 0 .../Loaders/ElfSym.cs | 0 .../Loaders/ElfSymBinding.cs | 0 .../Loaders/ElfSymType.cs | 0 .../Loaders/ElfSymVisibility.cs | 0 .../Loaders/Executable.cs | 0 .../Loaders/Executables/IExecutable.cs | 0 .../Loaders/Executables/Nro.cs | 0 .../Loaders/Executables/Nso.cs | 0 .../Logging/LogClass.cs | 0 .../Logging/LogEventArgs.cs | 0 .../Logging/LogLevel.cs | 0 .../Logging/Logger.cs | 0 .../OsHle/AppletStateMgr.cs | 0 .../OsHle/Diagnostics/Demangler.cs | 0 .../OsHle/ErrorCode.cs | 0 .../OsHle/ErrorModule.cs | 0 .../GuestBrokeExecutionException.cs | 0 .../UndefinedInstructionException.cs | 0 .../OsHle/GlobalStateTable.cs | 0 .../OsHle/Handles/HSharedMem.cs | 0 .../OsHle/Handles/HTransferMem.cs | 0 .../OsHle/Handles/KEvent.cs | 0 .../OsHle/Handles/KProcessHandleTable.cs | 0 .../OsHle/Handles/KProcessScheduler.cs | 0 .../OsHle/Handles/KSession.cs | 0 .../OsHle/Handles/KSynchronizationObject.cs | 0 .../OsHle/Handles/KThread.cs | 0 .../OsHle/Handles/SchedulerThread.cs | 0 .../OsHle/Handles/ThreadQueue.cs | 0 .../OsHle/Homebrew.cs | 0 .../OsHle/Horizon.cs | 0 .../OsHle/IdDictionary.cs | 0 .../OsHle/Ipc/IpcBuffDesc.cs | 0 .../OsHle/Ipc/IpcHandleDesc.cs | 0 .../OsHle/Ipc/IpcHandler.cs | 0 .../OsHle/Ipc/IpcMagic.cs | 0 .../OsHle/Ipc/IpcMessage.cs | 0 .../OsHle/Ipc/IpcMessageType.cs | 0 .../OsHle/Ipc/IpcPtrBuffDesc.cs | 0 .../OsHle/Ipc/IpcRecvListBuffDesc.cs | 0 .../OsHle/Ipc/ServiceProcessRequest.cs | 0 .../OsHle/Kernel/KernelErr.cs | 0 .../OsHle/Kernel/NsTimeConverter.cs | 0 .../OsHle/Kernel/SvcHandler.cs | 0 .../OsHle/Kernel/SvcMemory.cs | 0 .../OsHle/Kernel/SvcSystem.cs | 0 .../OsHle/Kernel/SvcThread.cs | 0 .../OsHle/Kernel/SvcThreadSync.cs | 0 .../OsHle/MemoryAllocator.cs | 0 .../OsHle/MemoryRegions.cs | 0 .../OsHle/MemoryType.cs | 0 .../OsHle/Process.cs | 0 .../OsHle/ServiceCtx.cs | 0 .../Acc/IAccountServiceForApplication.cs | 0 .../Services/Acc/IManagerForApplication.cs | 0 .../OsHle/Services/Acc/IProfile.cs | 0 .../OsHle/Services/Am/AmErr.cs | 0 .../OsHle/Services/Am/FocusState.cs | 0 .../Am/IAllSystemAppletProxiesService.cs | 0 .../OsHle/Services/Am/IApplicationCreator.cs | 0 .../Services/Am/IApplicationFunctions.cs | 0 .../OsHle/Services/Am/IApplicationProxy.cs | 0 .../Services/Am/IApplicationProxyService.cs | 0 .../OsHle/Services/Am/IAudioController.cs | 0 .../OsHle/Services/Am/ICommonStateGetter.cs | 0 .../OsHle/Services/Am/IDebugFunctions.cs | 0 .../OsHle/Services/Am/IDisplayController.cs | 0 .../Services/Am/IGlobalStateController.cs | 0 .../OsHle/Services/Am/IHomeMenuFunctions.cs | 92 +- .../Services/Am/ILibraryAppletAccessor.cs | 0 .../Services/Am/ILibraryAppletCreator.cs | 0 .../OsHle/Services/Am/ISelfController.cs | 0 .../OsHle/Services/Am/IStorage.cs | 0 .../OsHle/Services/Am/IStorageAccessor.cs | 0 .../OsHle/Services/Am/ISystemAppletProxy.cs | 0 .../OsHle/Services/Am/IWindowController.cs | 0 .../OsHle/Services/Am/MessageInfo.cs | 0 .../OsHle/Services/Am/OperationMode.cs | 0 .../OsHle/Services/Am/StorageHelper.cs | 0 .../OsHle/Services/Apm/IManager.cs | 0 .../OsHle/Services/Apm/ISession.cs | 0 .../Services/Apm/PerformanceConfiguration.cs | 0 .../OsHle/Services/Apm/PerformanceMode.cs | 0 .../OsHle/Services/Aud/AudioOutData.cs | 0 .../OsHle/Services/Aud/IAudioDevice.cs | 0 .../OsHle/Services/Aud/IAudioOut.cs | 0 .../OsHle/Services/Aud/IAudioOutManager.cs | 0 .../OsHle/Services/Aud/IAudioRenderer.cs | 0 .../Services/Aud/IAudioRendererManager.cs | 0 .../OsHle/Services/Bsd/BsdError.cs | 0 .../OsHle/Services/Bsd/BsdSocket.cs | 0 .../OsHle/Services/Bsd/IClient.cs | 0 .../Services/Caps/IAlbumAccessorService.cs | 0 .../OsHle/Services/Caps/IScreenshotService.cs | 0 .../OsHle/Services/Friend/IFriendService.cs | 0 .../OsHle/Services/Friend/IServiceCreator.cs | 0 .../OsHle/Services/FspSrv/FsErr.cs | 0 .../OsHle/Services/FspSrv/IDirectory.cs | 0 .../OsHle/Services/FspSrv/IFile.cs | 0 .../OsHle/Services/FspSrv/IFileSystem.cs | 0 .../OsHle/Services/FspSrv/IFileSystemProxy.cs | 0 .../OsHle/Services/FspSrv/IStorage.cs | 0 .../Hid/IActiveVibrationDeviceList.cs | 0 .../OsHle/Services/Hid/IAppletResource.cs | 0 .../OsHle/Services/Hid/IHidServer.cs | 0 .../OsHle/Services/IIpcService.cs | 0 .../OsHle/Services/IpcService.cs | 0 .../OsHle/Services/Lm/ILogService.cs | 0 .../OsHle/Services/Lm/ILogger.cs | 0 .../OsHle/Services/Lm/LmLogField.cs | 0 .../OsHle/Services/Lm/LmLogLevel.cs | 0 .../OsHle/Services/Mm/IRequest.cs | 0 .../OsHle/Services/Nfp/DeviceState.cs | 0 .../OsHle/Services/Nfp/IUser.cs | 0 .../OsHle/Services/Nfp/IUserManager.cs | 0 .../OsHle/Services/Nfp/State.cs | 0 .../OsHle/Services/Nifm/IGeneralService.cs | 0 .../OsHle/Services/Nifm/IRequest.cs | 0 .../OsHle/Services/Nifm/IStaticService.cs | 0 .../OsHle/Services/Ns/IAddOnContentManager.cs | 0 .../Services/Ns/IServiceGetterInterface.cs | 0 .../Services/Ns/ISystemUpdateInterface.cs | 0 .../Ns/IVulnerabilityManagerInterface.cs | 0 .../OsHle/Services/Nv/INvDrvServices.cs | 0 .../OsHle/Services/Nv/NvFd.cs | 0 .../Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs | 0 .../OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs | 0 .../Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs | 0 .../OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs | 0 .../Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs | 0 .../Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs | 0 .../Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs | 0 .../OsHle/Services/Nv/NvHelper.cs | 0 .../Nv/NvHostChannel/NvHostChannelIoctl.cs | 0 .../NvHostChannelSubmitGpfifo.cs | 0 .../Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs | 0 .../Nv/NvHostCtrl/NvHostCtrlUserCtx.cs | 0 .../Services/Nv/NvHostCtrl/NvHostEvent.cs | 0 .../Nv/NvHostCtrl/NvHostEventState.cs | 0 .../Services/Nv/NvHostCtrl/NvHostSyncPt.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapAlloc.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapCreate.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapFree.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapFromId.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapGetId.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapHandle.cs | 0 .../Services/Nv/NvMap/NvMapHandleParam.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapIoctl.cs | 0 .../OsHle/Services/Nv/NvMap/NvMapParam.cs | 0 .../OsHle/Services/Nv/NvResult.cs | 0 .../Services/Pctl/IParentalControlService.cs | 0 .../Pctl/IParentalControlServiceFactory.cs | 0 .../OsHle/Services/Pl/ISharedFontManager.cs | 0 .../OsHle/Services/Pl/SharedFontType.cs | 0 .../OsHle/Services/Prepo/IPrepoService.cs | 0 .../OsHle/Services/ServiceFactory.cs | 0 .../OsHle/Services/Set/ISettingsServer.cs | 0 .../Services/Set/ISystemSettingsServer.cs | 0 .../OsHle/Services/Set/NxSettings.cs | 3422 ++++++++--------- .../OsHle/Services/Sfdnsres/IResolver.cs | 0 .../OsHle/Services/Sm/IUserInterface.cs | 0 .../OsHle/Services/Ssl/ISslService.cs | 0 .../OsHle/Services/Time/IStaticService.cs | 0 .../OsHle/Services/Time/ISteadyClock.cs | 0 .../OsHle/Services/Time/ISystemClock.cs | 0 .../OsHle/Services/Time/ITimeZoneService.cs | 0 .../OsHle/Services/Time/SystemClockType.cs | 0 .../OsHle/Services/Vi/Display.cs | 0 .../OsHle/Services/Vi/GbpBuffer.cs | 0 .../Services/Vi/IApplicationDisplayService.cs | 0 .../Services/Vi/IApplicationRootService.cs | 0 .../OsHle/Services/Vi/IHOSBinderDriver.cs | 0 .../Services/Vi/IManagerDisplayService.cs | 0 .../OsHle/Services/Vi/IManagerRootService.cs | 0 .../Services/Vi/ISystemDisplayService.cs | 0 .../OsHle/Services/Vi/ISystemRootService.cs | 0 .../OsHle/Services/Vi/NvFlinger.cs | 0 .../OsHle/Services/Vi/Parcel.cs | 0 .../OsHle/SystemLanguage.cs | 0 .../OsHle/SystemStateMgr.cs | 0 .../OsHle/Utilities/EndianSwap.cs | 0 .../OsHle/Utilities/IntUtils.cs | 0 .../PerformanceStatistics.cs | 0 .../Ryujinx.Core.csproj | 0 .../Settings/ColorSet.cs | 0 .../Settings/SystemSettings.cs | 0 {Ryujinx.HLE => Ryujinx.Core}/Switch.cs | 0 .../VirtualFileSystem.cs | 0 236 files changed, 1757 insertions(+), 1757 deletions(-) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/BlockLinearSwizzle.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/INvGpuEngine.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/ISwizzle.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/LinearSwizzle.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/MacroInterpreter.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpu.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuBufferType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuEngine.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuEngine2d.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuEngine2dReg.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuEngine3d.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuEngine3dReg.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuFifo.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuFifoMeth.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuMethod.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuPBEntry.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuPushBuffer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuVmm.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/NvGpuVmmCache.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/Texture.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/TextureFactory.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/TextureHelper.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/TextureReader.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/TextureSwizzle.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Gpu/TextureWriter.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/Hid.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidControllerButtons.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidControllerColorDesc.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidControllerConnState.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidControllerId.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidControllerLayouts.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidControllerType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidJoystickPosition.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/HidTouchPoint.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/JoyCon.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Hid/JoyConColor.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/Compression/Lz4.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfDyn.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfDynTag.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfRel.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfRelType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfSym.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfSymBinding.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfSymType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/ElfSymVisibility.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/Executable.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/Executables/IExecutable.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/Executables/Nro.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Loaders/Executables/Nso.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Logging/LogClass.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Logging/LogEventArgs.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Logging/LogLevel.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Logging/Logger.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/AppletStateMgr.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Diagnostics/Demangler.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/ErrorCode.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/ErrorModule.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Exceptions/GuestBrokeExecutionException.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Exceptions/UndefinedInstructionException.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/GlobalStateTable.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/HSharedMem.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/HTransferMem.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/KEvent.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/KProcessHandleTable.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/KProcessScheduler.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/KSession.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/KSynchronizationObject.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/KThread.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/SchedulerThread.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Handles/ThreadQueue.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Homebrew.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Horizon.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/IdDictionary.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcBuffDesc.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcHandleDesc.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcHandler.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcMagic.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcMessage.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcMessageType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcPtrBuffDesc.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/IpcRecvListBuffDesc.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Ipc/ServiceProcessRequest.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/KernelErr.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/NsTimeConverter.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/SvcHandler.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/SvcMemory.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/SvcSystem.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/SvcThread.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Kernel/SvcThreadSync.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/MemoryAllocator.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/MemoryRegions.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/MemoryType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Process.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/ServiceCtx.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Acc/IAccountServiceForApplication.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Acc/IManagerForApplication.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Acc/IProfile.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/AmErr.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/FocusState.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IAllSystemAppletProxiesService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IApplicationCreator.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IApplicationFunctions.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IApplicationProxy.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IApplicationProxyService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IAudioController.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/ICommonStateGetter.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IDebugFunctions.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IDisplayController.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IGlobalStateController.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IHomeMenuFunctions.cs (96%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/ILibraryAppletAccessor.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/ILibraryAppletCreator.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/ISelfController.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IStorage.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IStorageAccessor.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/ISystemAppletProxy.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/IWindowController.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/MessageInfo.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/OperationMode.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Am/StorageHelper.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Apm/IManager.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Apm/ISession.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Apm/PerformanceConfiguration.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Apm/PerformanceMode.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Aud/AudioOutData.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Aud/IAudioDevice.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Aud/IAudioOut.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Aud/IAudioOutManager.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Aud/IAudioRenderer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Aud/IAudioRendererManager.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Bsd/BsdError.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Bsd/BsdSocket.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Bsd/IClient.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Caps/IAlbumAccessorService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Caps/IScreenshotService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Friend/IFriendService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Friend/IServiceCreator.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/FspSrv/FsErr.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/FspSrv/IDirectory.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/FspSrv/IFile.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/FspSrv/IFileSystem.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/FspSrv/IFileSystemProxy.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/FspSrv/IStorage.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Hid/IActiveVibrationDeviceList.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Hid/IAppletResource.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Hid/IHidServer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/IIpcService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/IpcService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Lm/ILogService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Lm/ILogger.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Lm/LmLogField.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Lm/LmLogLevel.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Mm/IRequest.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nfp/DeviceState.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nfp/IUser.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nfp/IUserManager.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nfp/State.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nifm/IGeneralService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nifm/IRequest.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nifm/IStaticService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Ns/IAddOnContentManager.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Ns/IServiceGetterInterface.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Ns/ISystemUpdateInterface.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/INvDrvServices.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvFd.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHelper.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapAlloc.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapCreate.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapFree.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapFromId.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapGetId.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapHandle.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapIoctl.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvMap/NvMapParam.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Nv/NvResult.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Pctl/IParentalControlService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Pctl/IParentalControlServiceFactory.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Pl/ISharedFontManager.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Pl/SharedFontType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Prepo/IPrepoService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/ServiceFactory.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Set/ISettingsServer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Set/ISystemSettingsServer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Set/NxSettings.cs (97%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Sfdnsres/IResolver.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Sm/IUserInterface.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Ssl/ISslService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Time/IStaticService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Time/ISteadyClock.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Time/ISystemClock.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Time/ITimeZoneService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Time/SystemClockType.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/Display.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/GbpBuffer.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/IApplicationDisplayService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/IApplicationRootService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/IHOSBinderDriver.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/IManagerDisplayService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/IManagerRootService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/ISystemDisplayService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/ISystemRootService.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/NvFlinger.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Services/Vi/Parcel.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/SystemLanguage.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/SystemStateMgr.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Utilities/EndianSwap.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/OsHle/Utilities/IntUtils.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/PerformanceStatistics.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Ryujinx.Core.csproj (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Settings/ColorSet.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Settings/SystemSettings.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/Switch.cs (100%) rename {Ryujinx.HLE => Ryujinx.Core}/VirtualFileSystem.cs (100%) diff --git a/Ryujinx.HLE/Gpu/BlockLinearSwizzle.cs b/Ryujinx.Core/Gpu/BlockLinearSwizzle.cs similarity index 100% rename from Ryujinx.HLE/Gpu/BlockLinearSwizzle.cs rename to Ryujinx.Core/Gpu/BlockLinearSwizzle.cs diff --git a/Ryujinx.HLE/Gpu/INvGpuEngine.cs b/Ryujinx.Core/Gpu/INvGpuEngine.cs similarity index 100% rename from Ryujinx.HLE/Gpu/INvGpuEngine.cs rename to Ryujinx.Core/Gpu/INvGpuEngine.cs diff --git a/Ryujinx.HLE/Gpu/ISwizzle.cs b/Ryujinx.Core/Gpu/ISwizzle.cs similarity index 100% rename from Ryujinx.HLE/Gpu/ISwizzle.cs rename to Ryujinx.Core/Gpu/ISwizzle.cs diff --git a/Ryujinx.HLE/Gpu/LinearSwizzle.cs b/Ryujinx.Core/Gpu/LinearSwizzle.cs similarity index 100% rename from Ryujinx.HLE/Gpu/LinearSwizzle.cs rename to Ryujinx.Core/Gpu/LinearSwizzle.cs diff --git a/Ryujinx.HLE/Gpu/MacroInterpreter.cs b/Ryujinx.Core/Gpu/MacroInterpreter.cs similarity index 100% rename from Ryujinx.HLE/Gpu/MacroInterpreter.cs rename to Ryujinx.Core/Gpu/MacroInterpreter.cs diff --git a/Ryujinx.HLE/Gpu/NvGpu.cs b/Ryujinx.Core/Gpu/NvGpu.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpu.cs rename to Ryujinx.Core/Gpu/NvGpu.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuBufferType.cs b/Ryujinx.Core/Gpu/NvGpuBufferType.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuBufferType.cs rename to Ryujinx.Core/Gpu/NvGpuBufferType.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuEngine.cs b/Ryujinx.Core/Gpu/NvGpuEngine.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuEngine.cs rename to Ryujinx.Core/Gpu/NvGpuEngine.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuEngine2d.cs b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuEngine2d.cs rename to Ryujinx.Core/Gpu/NvGpuEngine2d.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuEngine2dReg.cs b/Ryujinx.Core/Gpu/NvGpuEngine2dReg.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuEngine2dReg.cs rename to Ryujinx.Core/Gpu/NvGpuEngine2dReg.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuEngine3d.cs b/Ryujinx.Core/Gpu/NvGpuEngine3d.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuEngine3d.cs rename to Ryujinx.Core/Gpu/NvGpuEngine3d.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuEngine3dReg.cs b/Ryujinx.Core/Gpu/NvGpuEngine3dReg.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuEngine3dReg.cs rename to Ryujinx.Core/Gpu/NvGpuEngine3dReg.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuFifo.cs b/Ryujinx.Core/Gpu/NvGpuFifo.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuFifo.cs rename to Ryujinx.Core/Gpu/NvGpuFifo.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuFifoMeth.cs b/Ryujinx.Core/Gpu/NvGpuFifoMeth.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuFifoMeth.cs rename to Ryujinx.Core/Gpu/NvGpuFifoMeth.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuMethod.cs b/Ryujinx.Core/Gpu/NvGpuMethod.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuMethod.cs rename to Ryujinx.Core/Gpu/NvGpuMethod.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuPBEntry.cs b/Ryujinx.Core/Gpu/NvGpuPBEntry.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuPBEntry.cs rename to Ryujinx.Core/Gpu/NvGpuPBEntry.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuPushBuffer.cs b/Ryujinx.Core/Gpu/NvGpuPushBuffer.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuPushBuffer.cs rename to Ryujinx.Core/Gpu/NvGpuPushBuffer.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuVmm.cs b/Ryujinx.Core/Gpu/NvGpuVmm.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuVmm.cs rename to Ryujinx.Core/Gpu/NvGpuVmm.cs diff --git a/Ryujinx.HLE/Gpu/NvGpuVmmCache.cs b/Ryujinx.Core/Gpu/NvGpuVmmCache.cs similarity index 100% rename from Ryujinx.HLE/Gpu/NvGpuVmmCache.cs rename to Ryujinx.Core/Gpu/NvGpuVmmCache.cs diff --git a/Ryujinx.HLE/Gpu/Texture.cs b/Ryujinx.Core/Gpu/Texture.cs similarity index 100% rename from Ryujinx.HLE/Gpu/Texture.cs rename to Ryujinx.Core/Gpu/Texture.cs diff --git a/Ryujinx.HLE/Gpu/TextureFactory.cs b/Ryujinx.Core/Gpu/TextureFactory.cs similarity index 100% rename from Ryujinx.HLE/Gpu/TextureFactory.cs rename to Ryujinx.Core/Gpu/TextureFactory.cs diff --git a/Ryujinx.HLE/Gpu/TextureHelper.cs b/Ryujinx.Core/Gpu/TextureHelper.cs similarity index 100% rename from Ryujinx.HLE/Gpu/TextureHelper.cs rename to Ryujinx.Core/Gpu/TextureHelper.cs diff --git a/Ryujinx.HLE/Gpu/TextureReader.cs b/Ryujinx.Core/Gpu/TextureReader.cs similarity index 100% rename from Ryujinx.HLE/Gpu/TextureReader.cs rename to Ryujinx.Core/Gpu/TextureReader.cs diff --git a/Ryujinx.HLE/Gpu/TextureSwizzle.cs b/Ryujinx.Core/Gpu/TextureSwizzle.cs similarity index 100% rename from Ryujinx.HLE/Gpu/TextureSwizzle.cs rename to Ryujinx.Core/Gpu/TextureSwizzle.cs diff --git a/Ryujinx.HLE/Gpu/TextureWriter.cs b/Ryujinx.Core/Gpu/TextureWriter.cs similarity index 100% rename from Ryujinx.HLE/Gpu/TextureWriter.cs rename to Ryujinx.Core/Gpu/TextureWriter.cs diff --git a/Ryujinx.HLE/Hid/Hid.cs b/Ryujinx.Core/Hid/Hid.cs similarity index 100% rename from Ryujinx.HLE/Hid/Hid.cs rename to Ryujinx.Core/Hid/Hid.cs diff --git a/Ryujinx.HLE/Hid/HidControllerButtons.cs b/Ryujinx.Core/Hid/HidControllerButtons.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidControllerButtons.cs rename to Ryujinx.Core/Hid/HidControllerButtons.cs diff --git a/Ryujinx.HLE/Hid/HidControllerColorDesc.cs b/Ryujinx.Core/Hid/HidControllerColorDesc.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidControllerColorDesc.cs rename to Ryujinx.Core/Hid/HidControllerColorDesc.cs diff --git a/Ryujinx.HLE/Hid/HidControllerConnState.cs b/Ryujinx.Core/Hid/HidControllerConnState.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidControllerConnState.cs rename to Ryujinx.Core/Hid/HidControllerConnState.cs diff --git a/Ryujinx.HLE/Hid/HidControllerId.cs b/Ryujinx.Core/Hid/HidControllerId.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidControllerId.cs rename to Ryujinx.Core/Hid/HidControllerId.cs diff --git a/Ryujinx.HLE/Hid/HidControllerLayouts.cs b/Ryujinx.Core/Hid/HidControllerLayouts.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidControllerLayouts.cs rename to Ryujinx.Core/Hid/HidControllerLayouts.cs diff --git a/Ryujinx.HLE/Hid/HidControllerType.cs b/Ryujinx.Core/Hid/HidControllerType.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidControllerType.cs rename to Ryujinx.Core/Hid/HidControllerType.cs diff --git a/Ryujinx.HLE/Hid/HidJoystickPosition.cs b/Ryujinx.Core/Hid/HidJoystickPosition.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidJoystickPosition.cs rename to Ryujinx.Core/Hid/HidJoystickPosition.cs diff --git a/Ryujinx.HLE/Hid/HidTouchPoint.cs b/Ryujinx.Core/Hid/HidTouchPoint.cs similarity index 100% rename from Ryujinx.HLE/Hid/HidTouchPoint.cs rename to Ryujinx.Core/Hid/HidTouchPoint.cs diff --git a/Ryujinx.HLE/Hid/JoyCon.cs b/Ryujinx.Core/Hid/JoyCon.cs similarity index 100% rename from Ryujinx.HLE/Hid/JoyCon.cs rename to Ryujinx.Core/Hid/JoyCon.cs diff --git a/Ryujinx.HLE/Hid/JoyConColor.cs b/Ryujinx.Core/Hid/JoyConColor.cs similarity index 100% rename from Ryujinx.HLE/Hid/JoyConColor.cs rename to Ryujinx.Core/Hid/JoyConColor.cs diff --git a/Ryujinx.HLE/Loaders/Compression/Lz4.cs b/Ryujinx.Core/Loaders/Compression/Lz4.cs similarity index 100% rename from Ryujinx.HLE/Loaders/Compression/Lz4.cs rename to Ryujinx.Core/Loaders/Compression/Lz4.cs diff --git a/Ryujinx.HLE/Loaders/ElfDyn.cs b/Ryujinx.Core/Loaders/ElfDyn.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfDyn.cs rename to Ryujinx.Core/Loaders/ElfDyn.cs diff --git a/Ryujinx.HLE/Loaders/ElfDynTag.cs b/Ryujinx.Core/Loaders/ElfDynTag.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfDynTag.cs rename to Ryujinx.Core/Loaders/ElfDynTag.cs diff --git a/Ryujinx.HLE/Loaders/ElfRel.cs b/Ryujinx.Core/Loaders/ElfRel.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfRel.cs rename to Ryujinx.Core/Loaders/ElfRel.cs diff --git a/Ryujinx.HLE/Loaders/ElfRelType.cs b/Ryujinx.Core/Loaders/ElfRelType.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfRelType.cs rename to Ryujinx.Core/Loaders/ElfRelType.cs diff --git a/Ryujinx.HLE/Loaders/ElfSym.cs b/Ryujinx.Core/Loaders/ElfSym.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfSym.cs rename to Ryujinx.Core/Loaders/ElfSym.cs diff --git a/Ryujinx.HLE/Loaders/ElfSymBinding.cs b/Ryujinx.Core/Loaders/ElfSymBinding.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfSymBinding.cs rename to Ryujinx.Core/Loaders/ElfSymBinding.cs diff --git a/Ryujinx.HLE/Loaders/ElfSymType.cs b/Ryujinx.Core/Loaders/ElfSymType.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfSymType.cs rename to Ryujinx.Core/Loaders/ElfSymType.cs diff --git a/Ryujinx.HLE/Loaders/ElfSymVisibility.cs b/Ryujinx.Core/Loaders/ElfSymVisibility.cs similarity index 100% rename from Ryujinx.HLE/Loaders/ElfSymVisibility.cs rename to Ryujinx.Core/Loaders/ElfSymVisibility.cs diff --git a/Ryujinx.HLE/Loaders/Executable.cs b/Ryujinx.Core/Loaders/Executable.cs similarity index 100% rename from Ryujinx.HLE/Loaders/Executable.cs rename to Ryujinx.Core/Loaders/Executable.cs diff --git a/Ryujinx.HLE/Loaders/Executables/IExecutable.cs b/Ryujinx.Core/Loaders/Executables/IExecutable.cs similarity index 100% rename from Ryujinx.HLE/Loaders/Executables/IExecutable.cs rename to Ryujinx.Core/Loaders/Executables/IExecutable.cs diff --git a/Ryujinx.HLE/Loaders/Executables/Nro.cs b/Ryujinx.Core/Loaders/Executables/Nro.cs similarity index 100% rename from Ryujinx.HLE/Loaders/Executables/Nro.cs rename to Ryujinx.Core/Loaders/Executables/Nro.cs diff --git a/Ryujinx.HLE/Loaders/Executables/Nso.cs b/Ryujinx.Core/Loaders/Executables/Nso.cs similarity index 100% rename from Ryujinx.HLE/Loaders/Executables/Nso.cs rename to Ryujinx.Core/Loaders/Executables/Nso.cs diff --git a/Ryujinx.HLE/Logging/LogClass.cs b/Ryujinx.Core/Logging/LogClass.cs similarity index 100% rename from Ryujinx.HLE/Logging/LogClass.cs rename to Ryujinx.Core/Logging/LogClass.cs diff --git a/Ryujinx.HLE/Logging/LogEventArgs.cs b/Ryujinx.Core/Logging/LogEventArgs.cs similarity index 100% rename from Ryujinx.HLE/Logging/LogEventArgs.cs rename to Ryujinx.Core/Logging/LogEventArgs.cs diff --git a/Ryujinx.HLE/Logging/LogLevel.cs b/Ryujinx.Core/Logging/LogLevel.cs similarity index 100% rename from Ryujinx.HLE/Logging/LogLevel.cs rename to Ryujinx.Core/Logging/LogLevel.cs diff --git a/Ryujinx.HLE/Logging/Logger.cs b/Ryujinx.Core/Logging/Logger.cs similarity index 100% rename from Ryujinx.HLE/Logging/Logger.cs rename to Ryujinx.Core/Logging/Logger.cs diff --git a/Ryujinx.HLE/OsHle/AppletStateMgr.cs b/Ryujinx.Core/OsHle/AppletStateMgr.cs similarity index 100% rename from Ryujinx.HLE/OsHle/AppletStateMgr.cs rename to Ryujinx.Core/OsHle/AppletStateMgr.cs diff --git a/Ryujinx.HLE/OsHle/Diagnostics/Demangler.cs b/Ryujinx.Core/OsHle/Diagnostics/Demangler.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Diagnostics/Demangler.cs rename to Ryujinx.Core/OsHle/Diagnostics/Demangler.cs diff --git a/Ryujinx.HLE/OsHle/ErrorCode.cs b/Ryujinx.Core/OsHle/ErrorCode.cs similarity index 100% rename from Ryujinx.HLE/OsHle/ErrorCode.cs rename to Ryujinx.Core/OsHle/ErrorCode.cs diff --git a/Ryujinx.HLE/OsHle/ErrorModule.cs b/Ryujinx.Core/OsHle/ErrorModule.cs similarity index 100% rename from Ryujinx.HLE/OsHle/ErrorModule.cs rename to Ryujinx.Core/OsHle/ErrorModule.cs diff --git a/Ryujinx.HLE/OsHle/Exceptions/GuestBrokeExecutionException.cs b/Ryujinx.Core/OsHle/Exceptions/GuestBrokeExecutionException.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Exceptions/GuestBrokeExecutionException.cs rename to Ryujinx.Core/OsHle/Exceptions/GuestBrokeExecutionException.cs diff --git a/Ryujinx.HLE/OsHle/Exceptions/UndefinedInstructionException.cs b/Ryujinx.Core/OsHle/Exceptions/UndefinedInstructionException.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Exceptions/UndefinedInstructionException.cs rename to Ryujinx.Core/OsHle/Exceptions/UndefinedInstructionException.cs diff --git a/Ryujinx.HLE/OsHle/GlobalStateTable.cs b/Ryujinx.Core/OsHle/GlobalStateTable.cs similarity index 100% rename from Ryujinx.HLE/OsHle/GlobalStateTable.cs rename to Ryujinx.Core/OsHle/GlobalStateTable.cs diff --git a/Ryujinx.HLE/OsHle/Handles/HSharedMem.cs b/Ryujinx.Core/OsHle/Handles/HSharedMem.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/HSharedMem.cs rename to Ryujinx.Core/OsHle/Handles/HSharedMem.cs diff --git a/Ryujinx.HLE/OsHle/Handles/HTransferMem.cs b/Ryujinx.Core/OsHle/Handles/HTransferMem.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/HTransferMem.cs rename to Ryujinx.Core/OsHle/Handles/HTransferMem.cs diff --git a/Ryujinx.HLE/OsHle/Handles/KEvent.cs b/Ryujinx.Core/OsHle/Handles/KEvent.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/KEvent.cs rename to Ryujinx.Core/OsHle/Handles/KEvent.cs diff --git a/Ryujinx.HLE/OsHle/Handles/KProcessHandleTable.cs b/Ryujinx.Core/OsHle/Handles/KProcessHandleTable.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/KProcessHandleTable.cs rename to Ryujinx.Core/OsHle/Handles/KProcessHandleTable.cs diff --git a/Ryujinx.HLE/OsHle/Handles/KProcessScheduler.cs b/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/KProcessScheduler.cs rename to Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs diff --git a/Ryujinx.HLE/OsHle/Handles/KSession.cs b/Ryujinx.Core/OsHle/Handles/KSession.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/KSession.cs rename to Ryujinx.Core/OsHle/Handles/KSession.cs diff --git a/Ryujinx.HLE/OsHle/Handles/KSynchronizationObject.cs b/Ryujinx.Core/OsHle/Handles/KSynchronizationObject.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/KSynchronizationObject.cs rename to Ryujinx.Core/OsHle/Handles/KSynchronizationObject.cs diff --git a/Ryujinx.HLE/OsHle/Handles/KThread.cs b/Ryujinx.Core/OsHle/Handles/KThread.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/KThread.cs rename to Ryujinx.Core/OsHle/Handles/KThread.cs diff --git a/Ryujinx.HLE/OsHle/Handles/SchedulerThread.cs b/Ryujinx.Core/OsHle/Handles/SchedulerThread.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/SchedulerThread.cs rename to Ryujinx.Core/OsHle/Handles/SchedulerThread.cs diff --git a/Ryujinx.HLE/OsHle/Handles/ThreadQueue.cs b/Ryujinx.Core/OsHle/Handles/ThreadQueue.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Handles/ThreadQueue.cs rename to Ryujinx.Core/OsHle/Handles/ThreadQueue.cs diff --git a/Ryujinx.HLE/OsHle/Homebrew.cs b/Ryujinx.Core/OsHle/Homebrew.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Homebrew.cs rename to Ryujinx.Core/OsHle/Homebrew.cs diff --git a/Ryujinx.HLE/OsHle/Horizon.cs b/Ryujinx.Core/OsHle/Horizon.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Horizon.cs rename to Ryujinx.Core/OsHle/Horizon.cs diff --git a/Ryujinx.HLE/OsHle/IdDictionary.cs b/Ryujinx.Core/OsHle/IdDictionary.cs similarity index 100% rename from Ryujinx.HLE/OsHle/IdDictionary.cs rename to Ryujinx.Core/OsHle/IdDictionary.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcBuffDesc.cs b/Ryujinx.Core/OsHle/Ipc/IpcBuffDesc.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcBuffDesc.cs rename to Ryujinx.Core/OsHle/Ipc/IpcBuffDesc.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcHandleDesc.cs b/Ryujinx.Core/OsHle/Ipc/IpcHandleDesc.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcHandleDesc.cs rename to Ryujinx.Core/OsHle/Ipc/IpcHandleDesc.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs b/Ryujinx.Core/OsHle/Ipc/IpcHandler.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs rename to Ryujinx.Core/OsHle/Ipc/IpcHandler.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcMagic.cs b/Ryujinx.Core/OsHle/Ipc/IpcMagic.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcMagic.cs rename to Ryujinx.Core/OsHle/Ipc/IpcMagic.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcMessage.cs b/Ryujinx.Core/OsHle/Ipc/IpcMessage.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcMessage.cs rename to Ryujinx.Core/OsHle/Ipc/IpcMessage.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs b/Ryujinx.Core/OsHle/Ipc/IpcMessageType.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs rename to Ryujinx.Core/OsHle/Ipc/IpcMessageType.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcPtrBuffDesc.cs b/Ryujinx.Core/OsHle/Ipc/IpcPtrBuffDesc.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcPtrBuffDesc.cs rename to Ryujinx.Core/OsHle/Ipc/IpcPtrBuffDesc.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcRecvListBuffDesc.cs b/Ryujinx.Core/OsHle/Ipc/IpcRecvListBuffDesc.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/IpcRecvListBuffDesc.cs rename to Ryujinx.Core/OsHle/Ipc/IpcRecvListBuffDesc.cs diff --git a/Ryujinx.HLE/OsHle/Ipc/ServiceProcessRequest.cs b/Ryujinx.Core/OsHle/Ipc/ServiceProcessRequest.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Ipc/ServiceProcessRequest.cs rename to Ryujinx.Core/OsHle/Ipc/ServiceProcessRequest.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/KernelErr.cs b/Ryujinx.Core/OsHle/Kernel/KernelErr.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/KernelErr.cs rename to Ryujinx.Core/OsHle/Kernel/KernelErr.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/NsTimeConverter.cs b/Ryujinx.Core/OsHle/Kernel/NsTimeConverter.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/NsTimeConverter.cs rename to Ryujinx.Core/OsHle/Kernel/NsTimeConverter.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/SvcHandler.cs b/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/SvcHandler.cs rename to Ryujinx.Core/OsHle/Kernel/SvcHandler.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/SvcMemory.cs b/Ryujinx.Core/OsHle/Kernel/SvcMemory.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/SvcMemory.cs rename to Ryujinx.Core/OsHle/Kernel/SvcMemory.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/SvcSystem.cs b/Ryujinx.Core/OsHle/Kernel/SvcSystem.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/SvcSystem.cs rename to Ryujinx.Core/OsHle/Kernel/SvcSystem.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/SvcThread.cs b/Ryujinx.Core/OsHle/Kernel/SvcThread.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/SvcThread.cs rename to Ryujinx.Core/OsHle/Kernel/SvcThread.cs diff --git a/Ryujinx.HLE/OsHle/Kernel/SvcThreadSync.cs b/Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Kernel/SvcThreadSync.cs rename to Ryujinx.Core/OsHle/Kernel/SvcThreadSync.cs diff --git a/Ryujinx.HLE/OsHle/MemoryAllocator.cs b/Ryujinx.Core/OsHle/MemoryAllocator.cs similarity index 100% rename from Ryujinx.HLE/OsHle/MemoryAllocator.cs rename to Ryujinx.Core/OsHle/MemoryAllocator.cs diff --git a/Ryujinx.HLE/OsHle/MemoryRegions.cs b/Ryujinx.Core/OsHle/MemoryRegions.cs similarity index 100% rename from Ryujinx.HLE/OsHle/MemoryRegions.cs rename to Ryujinx.Core/OsHle/MemoryRegions.cs diff --git a/Ryujinx.HLE/OsHle/MemoryType.cs b/Ryujinx.Core/OsHle/MemoryType.cs similarity index 100% rename from Ryujinx.HLE/OsHle/MemoryType.cs rename to Ryujinx.Core/OsHle/MemoryType.cs diff --git a/Ryujinx.HLE/OsHle/Process.cs b/Ryujinx.Core/OsHle/Process.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Process.cs rename to Ryujinx.Core/OsHle/Process.cs diff --git a/Ryujinx.HLE/OsHle/ServiceCtx.cs b/Ryujinx.Core/OsHle/ServiceCtx.cs similarity index 100% rename from Ryujinx.HLE/OsHle/ServiceCtx.cs rename to Ryujinx.Core/OsHle/ServiceCtx.cs diff --git a/Ryujinx.HLE/OsHle/Services/Acc/IAccountServiceForApplication.cs b/Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Acc/IAccountServiceForApplication.cs rename to Ryujinx.Core/OsHle/Services/Acc/IAccountServiceForApplication.cs diff --git a/Ryujinx.HLE/OsHle/Services/Acc/IManagerForApplication.cs b/Ryujinx.Core/OsHle/Services/Acc/IManagerForApplication.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Acc/IManagerForApplication.cs rename to Ryujinx.Core/OsHle/Services/Acc/IManagerForApplication.cs diff --git a/Ryujinx.HLE/OsHle/Services/Acc/IProfile.cs b/Ryujinx.Core/OsHle/Services/Acc/IProfile.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Acc/IProfile.cs rename to Ryujinx.Core/OsHle/Services/Acc/IProfile.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/AmErr.cs b/Ryujinx.Core/OsHle/Services/Am/AmErr.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/AmErr.cs rename to Ryujinx.Core/OsHle/Services/Am/AmErr.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/FocusState.cs b/Ryujinx.Core/OsHle/Services/Am/FocusState.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/FocusState.cs rename to Ryujinx.Core/OsHle/Services/Am/FocusState.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IAllSystemAppletProxiesService.cs b/Ryujinx.Core/OsHle/Services/Am/IAllSystemAppletProxiesService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IAllSystemAppletProxiesService.cs rename to Ryujinx.Core/OsHle/Services/Am/IAllSystemAppletProxiesService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IApplicationCreator.cs b/Ryujinx.Core/OsHle/Services/Am/IApplicationCreator.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IApplicationCreator.cs rename to Ryujinx.Core/OsHle/Services/Am/IApplicationCreator.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IApplicationFunctions.cs b/Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IApplicationFunctions.cs rename to Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IApplicationProxy.cs b/Ryujinx.Core/OsHle/Services/Am/IApplicationProxy.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IApplicationProxy.cs rename to Ryujinx.Core/OsHle/Services/Am/IApplicationProxy.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IApplicationProxyService.cs b/Ryujinx.Core/OsHle/Services/Am/IApplicationProxyService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IApplicationProxyService.cs rename to Ryujinx.Core/OsHle/Services/Am/IApplicationProxyService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IAudioController.cs b/Ryujinx.Core/OsHle/Services/Am/IAudioController.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IAudioController.cs rename to Ryujinx.Core/OsHle/Services/Am/IAudioController.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/ICommonStateGetter.cs b/Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/ICommonStateGetter.cs rename to Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IDebugFunctions.cs b/Ryujinx.Core/OsHle/Services/Am/IDebugFunctions.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IDebugFunctions.cs rename to Ryujinx.Core/OsHle/Services/Am/IDebugFunctions.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IDisplayController.cs b/Ryujinx.Core/OsHle/Services/Am/IDisplayController.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IDisplayController.cs rename to Ryujinx.Core/OsHle/Services/Am/IDisplayController.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IGlobalStateController.cs b/Ryujinx.Core/OsHle/Services/Am/IGlobalStateController.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IGlobalStateController.cs rename to Ryujinx.Core/OsHle/Services/Am/IGlobalStateController.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IHomeMenuFunctions.cs b/Ryujinx.Core/OsHle/Services/Am/IHomeMenuFunctions.cs similarity index 96% rename from Ryujinx.HLE/OsHle/Services/Am/IHomeMenuFunctions.cs rename to Ryujinx.Core/OsHle/Services/Am/IHomeMenuFunctions.cs index 07eeac05f2..b516c0e363 100644 --- a/Ryujinx.HLE/OsHle/Services/Am/IHomeMenuFunctions.cs +++ b/Ryujinx.Core/OsHle/Services/Am/IHomeMenuFunctions.cs @@ -1,46 +1,46 @@ -using Ryujinx.Core.Logging; -using Ryujinx.Core.OsHle.Handles; -using Ryujinx.Core.OsHle.Ipc; -using System.Collections.Generic; - -namespace Ryujinx.Core.OsHle.Services.Am -{ - class IHomeMenuFunctions : IpcService - { - private Dictionary m_Commands; - - public override IReadOnlyDictionary Commands => m_Commands; - - private KEvent ChannelEvent; - - public IHomeMenuFunctions() - { - m_Commands = new Dictionary() - { - { 10, RequestToGetForeground }, - { 21, GetPopFromGeneralChannelEvent } - }; - - //ToDo: Signal this Event somewhere in future. - ChannelEvent = new KEvent(); - } - - public long RequestToGetForeground(ServiceCtx Context) - { - Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); - - return 0; - } - - public long GetPopFromGeneralChannelEvent(ServiceCtx Context) - { - int Handle = Context.Process.HandleTable.OpenHandle(ChannelEvent); - - Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); - - Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); - - return 0; - } - } -} +using Ryujinx.Core.Logging; +using Ryujinx.Core.OsHle.Handles; +using Ryujinx.Core.OsHle.Ipc; +using System.Collections.Generic; + +namespace Ryujinx.Core.OsHle.Services.Am +{ + class IHomeMenuFunctions : IpcService + { + private Dictionary m_Commands; + + public override IReadOnlyDictionary Commands => m_Commands; + + private KEvent ChannelEvent; + + public IHomeMenuFunctions() + { + m_Commands = new Dictionary() + { + { 10, RequestToGetForeground }, + { 21, GetPopFromGeneralChannelEvent } + }; + + //ToDo: Signal this Event somewhere in future. + ChannelEvent = new KEvent(); + } + + public long RequestToGetForeground(ServiceCtx Context) + { + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + + return 0; + } + + public long GetPopFromGeneralChannelEvent(ServiceCtx Context) + { + int Handle = Context.Process.HandleTable.OpenHandle(ChannelEvent); + + Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); + + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + + return 0; + } + } +} diff --git a/Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletAccessor.cs b/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletAccessor.cs rename to Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletCreator.cs b/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/ILibraryAppletCreator.cs rename to Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs b/Ryujinx.Core/OsHle/Services/Am/ISelfController.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs rename to Ryujinx.Core/OsHle/Services/Am/ISelfController.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IStorage.cs b/Ryujinx.Core/OsHle/Services/Am/IStorage.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IStorage.cs rename to Ryujinx.Core/OsHle/Services/Am/IStorage.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IStorageAccessor.cs b/Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IStorageAccessor.cs rename to Ryujinx.Core/OsHle/Services/Am/IStorageAccessor.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/ISystemAppletProxy.cs b/Ryujinx.Core/OsHle/Services/Am/ISystemAppletProxy.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/ISystemAppletProxy.cs rename to Ryujinx.Core/OsHle/Services/Am/ISystemAppletProxy.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/IWindowController.cs b/Ryujinx.Core/OsHle/Services/Am/IWindowController.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/IWindowController.cs rename to Ryujinx.Core/OsHle/Services/Am/IWindowController.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/MessageInfo.cs b/Ryujinx.Core/OsHle/Services/Am/MessageInfo.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/MessageInfo.cs rename to Ryujinx.Core/OsHle/Services/Am/MessageInfo.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/OperationMode.cs b/Ryujinx.Core/OsHle/Services/Am/OperationMode.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/OperationMode.cs rename to Ryujinx.Core/OsHle/Services/Am/OperationMode.cs diff --git a/Ryujinx.HLE/OsHle/Services/Am/StorageHelper.cs b/Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Am/StorageHelper.cs rename to Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs diff --git a/Ryujinx.HLE/OsHle/Services/Apm/IManager.cs b/Ryujinx.Core/OsHle/Services/Apm/IManager.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Apm/IManager.cs rename to Ryujinx.Core/OsHle/Services/Apm/IManager.cs diff --git a/Ryujinx.HLE/OsHle/Services/Apm/ISession.cs b/Ryujinx.Core/OsHle/Services/Apm/ISession.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Apm/ISession.cs rename to Ryujinx.Core/OsHle/Services/Apm/ISession.cs diff --git a/Ryujinx.HLE/OsHle/Services/Apm/PerformanceConfiguration.cs b/Ryujinx.Core/OsHle/Services/Apm/PerformanceConfiguration.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Apm/PerformanceConfiguration.cs rename to Ryujinx.Core/OsHle/Services/Apm/PerformanceConfiguration.cs diff --git a/Ryujinx.HLE/OsHle/Services/Apm/PerformanceMode.cs b/Ryujinx.Core/OsHle/Services/Apm/PerformanceMode.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Apm/PerformanceMode.cs rename to Ryujinx.Core/OsHle/Services/Apm/PerformanceMode.cs diff --git a/Ryujinx.HLE/OsHle/Services/Aud/AudioOutData.cs b/Ryujinx.Core/OsHle/Services/Aud/AudioOutData.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Aud/AudioOutData.cs rename to Ryujinx.Core/OsHle/Services/Aud/AudioOutData.cs diff --git a/Ryujinx.HLE/OsHle/Services/Aud/IAudioDevice.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Aud/IAudioDevice.cs rename to Ryujinx.Core/OsHle/Services/Aud/IAudioDevice.cs diff --git a/Ryujinx.HLE/OsHle/Services/Aud/IAudioOut.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Aud/IAudioOut.cs rename to Ryujinx.Core/OsHle/Services/Aud/IAudioOut.cs diff --git a/Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs rename to Ryujinx.Core/OsHle/Services/Aud/IAudioOutManager.cs diff --git a/Ryujinx.HLE/OsHle/Services/Aud/IAudioRenderer.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioRenderer.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Aud/IAudioRenderer.cs rename to Ryujinx.Core/OsHle/Services/Aud/IAudioRenderer.cs diff --git a/Ryujinx.HLE/OsHle/Services/Aud/IAudioRendererManager.cs b/Ryujinx.Core/OsHle/Services/Aud/IAudioRendererManager.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Aud/IAudioRendererManager.cs rename to Ryujinx.Core/OsHle/Services/Aud/IAudioRendererManager.cs diff --git a/Ryujinx.HLE/OsHle/Services/Bsd/BsdError.cs b/Ryujinx.Core/OsHle/Services/Bsd/BsdError.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Bsd/BsdError.cs rename to Ryujinx.Core/OsHle/Services/Bsd/BsdError.cs diff --git a/Ryujinx.HLE/OsHle/Services/Bsd/BsdSocket.cs b/Ryujinx.Core/OsHle/Services/Bsd/BsdSocket.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Bsd/BsdSocket.cs rename to Ryujinx.Core/OsHle/Services/Bsd/BsdSocket.cs diff --git a/Ryujinx.HLE/OsHle/Services/Bsd/IClient.cs b/Ryujinx.Core/OsHle/Services/Bsd/IClient.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Bsd/IClient.cs rename to Ryujinx.Core/OsHle/Services/Bsd/IClient.cs diff --git a/Ryujinx.HLE/OsHle/Services/Caps/IAlbumAccessorService.cs b/Ryujinx.Core/OsHle/Services/Caps/IAlbumAccessorService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Caps/IAlbumAccessorService.cs rename to Ryujinx.Core/OsHle/Services/Caps/IAlbumAccessorService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Caps/IScreenshotService.cs b/Ryujinx.Core/OsHle/Services/Caps/IScreenshotService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Caps/IScreenshotService.cs rename to Ryujinx.Core/OsHle/Services/Caps/IScreenshotService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Friend/IFriendService.cs b/Ryujinx.Core/OsHle/Services/Friend/IFriendService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Friend/IFriendService.cs rename to Ryujinx.Core/OsHle/Services/Friend/IFriendService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Friend/IServiceCreator.cs b/Ryujinx.Core/OsHle/Services/Friend/IServiceCreator.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Friend/IServiceCreator.cs rename to Ryujinx.Core/OsHle/Services/Friend/IServiceCreator.cs diff --git a/Ryujinx.HLE/OsHle/Services/FspSrv/FsErr.cs b/Ryujinx.Core/OsHle/Services/FspSrv/FsErr.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/FspSrv/FsErr.cs rename to Ryujinx.Core/OsHle/Services/FspSrv/FsErr.cs diff --git a/Ryujinx.HLE/OsHle/Services/FspSrv/IDirectory.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/FspSrv/IDirectory.cs rename to Ryujinx.Core/OsHle/Services/FspSrv/IDirectory.cs diff --git a/Ryujinx.HLE/OsHle/Services/FspSrv/IFile.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/FspSrv/IFile.cs rename to Ryujinx.Core/OsHle/Services/FspSrv/IFile.cs diff --git a/Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystem.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystem.cs rename to Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs diff --git a/Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystemProxy.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystemProxy.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/FspSrv/IFileSystemProxy.cs rename to Ryujinx.Core/OsHle/Services/FspSrv/IFileSystemProxy.cs diff --git a/Ryujinx.HLE/OsHle/Services/FspSrv/IStorage.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/FspSrv/IStorage.cs rename to Ryujinx.Core/OsHle/Services/FspSrv/IStorage.cs diff --git a/Ryujinx.HLE/OsHle/Services/Hid/IActiveVibrationDeviceList.cs b/Ryujinx.Core/OsHle/Services/Hid/IActiveVibrationDeviceList.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Hid/IActiveVibrationDeviceList.cs rename to Ryujinx.Core/OsHle/Services/Hid/IActiveVibrationDeviceList.cs diff --git a/Ryujinx.HLE/OsHle/Services/Hid/IAppletResource.cs b/Ryujinx.Core/OsHle/Services/Hid/IAppletResource.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Hid/IAppletResource.cs rename to Ryujinx.Core/OsHle/Services/Hid/IAppletResource.cs diff --git a/Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs b/Ryujinx.Core/OsHle/Services/Hid/IHidServer.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs rename to Ryujinx.Core/OsHle/Services/Hid/IHidServer.cs diff --git a/Ryujinx.HLE/OsHle/Services/IIpcService.cs b/Ryujinx.Core/OsHle/Services/IIpcService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/IIpcService.cs rename to Ryujinx.Core/OsHle/Services/IIpcService.cs diff --git a/Ryujinx.HLE/OsHle/Services/IpcService.cs b/Ryujinx.Core/OsHle/Services/IpcService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/IpcService.cs rename to Ryujinx.Core/OsHle/Services/IpcService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Lm/ILogService.cs b/Ryujinx.Core/OsHle/Services/Lm/ILogService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Lm/ILogService.cs rename to Ryujinx.Core/OsHle/Services/Lm/ILogService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Lm/ILogger.cs b/Ryujinx.Core/OsHle/Services/Lm/ILogger.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Lm/ILogger.cs rename to Ryujinx.Core/OsHle/Services/Lm/ILogger.cs diff --git a/Ryujinx.HLE/OsHle/Services/Lm/LmLogField.cs b/Ryujinx.Core/OsHle/Services/Lm/LmLogField.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Lm/LmLogField.cs rename to Ryujinx.Core/OsHle/Services/Lm/LmLogField.cs diff --git a/Ryujinx.HLE/OsHle/Services/Lm/LmLogLevel.cs b/Ryujinx.Core/OsHle/Services/Lm/LmLogLevel.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Lm/LmLogLevel.cs rename to Ryujinx.Core/OsHle/Services/Lm/LmLogLevel.cs diff --git a/Ryujinx.HLE/OsHle/Services/Mm/IRequest.cs b/Ryujinx.Core/OsHle/Services/Mm/IRequest.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Mm/IRequest.cs rename to Ryujinx.Core/OsHle/Services/Mm/IRequest.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nfp/DeviceState.cs b/Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nfp/DeviceState.cs rename to Ryujinx.Core/OsHle/Services/Nfp/DeviceState.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nfp/IUser.cs b/Ryujinx.Core/OsHle/Services/Nfp/IUser.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nfp/IUser.cs rename to Ryujinx.Core/OsHle/Services/Nfp/IUser.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nfp/IUserManager.cs b/Ryujinx.Core/OsHle/Services/Nfp/IUserManager.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nfp/IUserManager.cs rename to Ryujinx.Core/OsHle/Services/Nfp/IUserManager.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nfp/State.cs b/Ryujinx.Core/OsHle/Services/Nfp/State.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nfp/State.cs rename to Ryujinx.Core/OsHle/Services/Nfp/State.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nifm/IGeneralService.cs b/Ryujinx.Core/OsHle/Services/Nifm/IGeneralService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nifm/IGeneralService.cs rename to Ryujinx.Core/OsHle/Services/Nifm/IGeneralService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nifm/IRequest.cs b/Ryujinx.Core/OsHle/Services/Nifm/IRequest.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nifm/IRequest.cs rename to Ryujinx.Core/OsHle/Services/Nifm/IRequest.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nifm/IStaticService.cs b/Ryujinx.Core/OsHle/Services/Nifm/IStaticService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nifm/IStaticService.cs rename to Ryujinx.Core/OsHle/Services/Nifm/IStaticService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Ns/IAddOnContentManager.cs b/Ryujinx.Core/OsHle/Services/Ns/IAddOnContentManager.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Ns/IAddOnContentManager.cs rename to Ryujinx.Core/OsHle/Services/Ns/IAddOnContentManager.cs diff --git a/Ryujinx.HLE/OsHle/Services/Ns/IServiceGetterInterface.cs b/Ryujinx.Core/OsHle/Services/Ns/IServiceGetterInterface.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Ns/IServiceGetterInterface.cs rename to Ryujinx.Core/OsHle/Services/Ns/IServiceGetterInterface.cs diff --git a/Ryujinx.HLE/OsHle/Services/Ns/ISystemUpdateInterface.cs b/Ryujinx.Core/OsHle/Services/Ns/ISystemUpdateInterface.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Ns/ISystemUpdateInterface.cs rename to Ryujinx.Core/OsHle/Services/Ns/ISystemUpdateInterface.cs diff --git a/Ryujinx.HLE/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs b/Ryujinx.Core/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs rename to Ryujinx.Core/OsHle/Services/Ns/IVulnerabilityManagerInterface.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/INvDrvServices.cs b/Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/INvDrvServices.cs rename to Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvFd.cs b/Ryujinx.Core/OsHle/Services/Nv/NvFd.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvFd.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvFd.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASRemap.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHelper.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHelper.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHelper.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHelper.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEvent.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostEventState.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs b/Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvHostCtrl/NvHostSyncPt.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapAlloc.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapAlloc.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapAlloc.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapAlloc.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapCreate.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapCreate.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapCreate.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapCreate.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFree.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFree.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFree.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFree.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFromId.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFromId.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapFromId.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapFromId.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapGetId.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapGetId.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapGetId.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapGetId.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandle.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandle.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandle.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandle.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapHandleParam.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapIoctl.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapIoctl.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapIoctl.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapParam.cs b/Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapParam.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvMap/NvMapParam.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvMap/NvMapParam.cs diff --git a/Ryujinx.HLE/OsHle/Services/Nv/NvResult.cs b/Ryujinx.Core/OsHle/Services/Nv/NvResult.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Nv/NvResult.cs rename to Ryujinx.Core/OsHle/Services/Nv/NvResult.cs diff --git a/Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlService.cs b/Ryujinx.Core/OsHle/Services/Pctl/IParentalControlService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlService.cs rename to Ryujinx.Core/OsHle/Services/Pctl/IParentalControlService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlServiceFactory.cs b/Ryujinx.Core/OsHle/Services/Pctl/IParentalControlServiceFactory.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlServiceFactory.cs rename to Ryujinx.Core/OsHle/Services/Pctl/IParentalControlServiceFactory.cs diff --git a/Ryujinx.HLE/OsHle/Services/Pl/ISharedFontManager.cs b/Ryujinx.Core/OsHle/Services/Pl/ISharedFontManager.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Pl/ISharedFontManager.cs rename to Ryujinx.Core/OsHle/Services/Pl/ISharedFontManager.cs diff --git a/Ryujinx.HLE/OsHle/Services/Pl/SharedFontType.cs b/Ryujinx.Core/OsHle/Services/Pl/SharedFontType.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Pl/SharedFontType.cs rename to Ryujinx.Core/OsHle/Services/Pl/SharedFontType.cs diff --git a/Ryujinx.HLE/OsHle/Services/Prepo/IPrepoService.cs b/Ryujinx.Core/OsHle/Services/Prepo/IPrepoService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Prepo/IPrepoService.cs rename to Ryujinx.Core/OsHle/Services/Prepo/IPrepoService.cs diff --git a/Ryujinx.HLE/OsHle/Services/ServiceFactory.cs b/Ryujinx.Core/OsHle/Services/ServiceFactory.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/ServiceFactory.cs rename to Ryujinx.Core/OsHle/Services/ServiceFactory.cs diff --git a/Ryujinx.HLE/OsHle/Services/Set/ISettingsServer.cs b/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Set/ISettingsServer.cs rename to Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs diff --git a/Ryujinx.HLE/OsHle/Services/Set/ISystemSettingsServer.cs b/Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Set/ISystemSettingsServer.cs rename to Ryujinx.Core/OsHle/Services/Set/ISystemSettingsServer.cs diff --git a/Ryujinx.HLE/OsHle/Services/Set/NxSettings.cs b/Ryujinx.Core/OsHle/Services/Set/NxSettings.cs similarity index 97% rename from Ryujinx.HLE/OsHle/Services/Set/NxSettings.cs rename to Ryujinx.Core/OsHle/Services/Set/NxSettings.cs index 7efcb57a7e..d7f1a1ffd3 100644 --- a/Ryujinx.HLE/OsHle/Services/Set/NxSettings.cs +++ b/Ryujinx.Core/OsHle/Services/Set/NxSettings.cs @@ -1,1711 +1,1711 @@ -using System.Collections.Generic; - -namespace Ryujinx.Core.OsHle.Services.Set -{ - static class NxSettings - { - //Generated automatically from a Switch 3.0 config file (Tid: 0100000000000818). - public static Dictionary Settings = new Dictionary() - { - { "account!na_required_for_network_service", true }, - { "account.daemon!background_awaking_periodicity", 10800 }, - { "account.daemon!schedule_periodicity", 3600 }, - { "account.daemon!profile_sync_interval", 18000 }, - { "account.daemon!na_info_refresh_interval", 46800 }, - { "am.display!transition_layer_enabled", true }, - { "am.gpu!gpu_scheduling_enabled", true }, - { "am.gpu!gpu_scheduling_frame_time_us", 116666 }, - { "am.gpu!gpu_scheduling_fg_app_us", 116166 }, - { "am.gpu!gpu_scheduling_bg_app_us", 104500 }, - { "am.gpu!gpu_scheduling_oa_us", 500 }, - { "am.gpu!gpu_scheduling_fg_sa_us", 11666 }, - { "am.gpu!gpu_scheduling_bg_sa_us", 0 }, - { "am.gpu!gpu_scheduling_fg_la_us", 11666 }, - { "am.gpu!gpu_scheduling_partial_fg_la_us", 2000 }, - { "am.gpu!gpu_scheduling_bg_la_us", 0 }, - { "audio!audren_log_enabled", false }, - { "audio!audout_log_enabled", false }, - { "audio!audin_log_enabled", false }, - { "audio!hwopus_log_enabled", false }, - { "audio!adsp_log_enabled", false }, - { "audio!suspend_for_debugger_enabled", false }, - { "audio!uac_speaker_enabled", false }, - { "bgtc!enable_halfawake", 1 }, - { "bgtc!enable_battery_saver", 1 }, - { "bgtc!leaving_halfawake_margin", 3 }, - { "bgtc!battery_threshold_save", 20 }, - { "bgtc!battery_threshold_stop", 20 }, - { "bgtc!minimum_interval_normal", 1800 }, - { "bgtc!minimum_interval_save", 86400 }, - { "boot!force_maintenance", false }, - { "capsrv!screenshot_layerstack", "screenshot" }, - { "capsrv!enable_album_screenshot_filedata_verification", true }, - { "devmenu!enable_application_update", true }, - { "devmenu!enable_exhibition_mode", false }, - { "eclct!analytics_override", false }, - { "eclct!analytics_pollperiod", 86400 }, - { "err!applet_auto_close", false }, - { "friends!background_processing", true }, - { "htc!disconnection_emulation", false }, - { "idle!dim_level_percent_lcd", 10 }, - { "idle!dim_level_percent_tv", 70 }, - { "lbl!force_disable_als", false }, - { "lm!enable_sd_card_logging", false }, - { "lm!sd_card_log_output_directory", "NxBinLogs" }, - { "mii!is_db_test_mode_enabled", false }, - { "news!system_version", 2 }, - { "nfp!not_locked_tag", true }, - { "nfp!play_report", false }, - { "nifm!is_communication_control_enabled_for_test", false }, - { "nifm!connection_test_timeout", 45000 }, - { "nifm!apply_config_timeout", 30000 }, - { "nifm!ethernet_adapter_standby_time", 10000 }, - { "nim.install!prefer_delta_evenif_inefficient", false }, - { "nim.install!apply_delta_stress_storage", 0 }, - { "ns.notification!retry_interval", 60 }, - { "ns.notification!enable_network_update", true }, - { "ns.notification!enable_download_task_list", true }, - { "ns.notification!enable_version_list", true }, - { "ns.notification!enable_random_wait", true }, - { "ns.notification!debug_waiting_limit", 0 }, - { "ns.notification!enable_request_on_cold_boot", true }, - { "ns.sdcard!mount_sdcard", true }, - { "ns.sdcard!compare_sdcard", 0 }, - { "ns.gamecard!mount_gamecard_result_value", 0 }, - { "ns.gamecard!try_gamecard_access_result_value", 0 }, - { "nv!00008600", "" }, - { "nv!0007b25e", "" }, - { "nv!0083e1", "" }, - { "nv!01621887", "" }, - { "nv!03134743", "" }, - { "nv!0356afd0", "" }, - { "nv!0356afd1", "" }, - { "nv!0356afd2", "" }, - { "nv!0356afd3", "" }, - { "nv!094313", "" }, - { "nv!0x04dc09", "" }, - { "nv!0x111133", "" }, - { "nv!0x1aa483", "" }, - { "nv!0x1cb1cf", "" }, - { "nv!0x1cb1d0", "" }, - { "nv!0x1e3221", "" }, - { "nv!0x300fc8", "" }, - { "nv!0x301fc8", "" }, - { "nv!0x302fc8", "" }, - { "nv!0x3eec59", "" }, - { "nv!0x46b3ed", "" }, - { "nv!0x523dc0", "" }, - { "nv!0x523dc1", "" }, - { "nv!0x523dc2", "" }, - { "nv!0x523dc3", "" }, - { "nv!0x523dc4", "" }, - { "nv!0x523dc5", "" }, - { "nv!0x523dc6", "" }, - { "nv!0x523dd0", "" }, - { "nv!0x523dd1", "" }, - { "nv!0x523dd3", "" }, - { "nv!0x5344bb", "" }, - { "nv!0x555237", "" }, - { "nv!0x58a234", "" }, - { "nv!0x7b4428", "" }, - { "nv!0x923dc0", "" }, - { "nv!0x923dc1", "" }, - { "nv!0x923dc2", "" }, - { "nv!0x923dc3", "" }, - { "nv!0x923dc4", "" }, - { "nv!0x923dd3", "" }, - { "nv!0x9abdc5", "" }, - { "nv!0x9abdc6", "" }, - { "nv!0xaaa36c", "" }, - { "nv!0xb09da0", "" }, - { "nv!0xb09da1", "" }, - { "nv!0xb09da2", "" }, - { "nv!0xb09da3", "" }, - { "nv!0xb09da4", "" }, - { "nv!0xb09da5", "" }, - { "nv!0xb0b348", "" }, - { "nv!0xb0b349", "" }, - { "nv!0xbb558f", "" }, - { "nv!0xbd10fb", "" }, - { "nv!0xc32ad3", "" }, - { "nv!0xce2348", "" }, - { "nv!0xcfd81f", "" }, - { "nv!0xe0036b", "" }, - { "nv!0xe01f2d", "" }, - { "nv!0xe17212", "" }, - { "nv!0xeae966", "" }, - { "nv!0xed4f82", "" }, - { "nv!0xf12335", "" }, - { "nv!0xf12336", "" }, - { "nv!10261989", "" }, - { "nv!1042d483", "" }, - { "nv!10572898", "" }, - { "nv!115631", "" }, - { "nv!12950094", "" }, - { "nv!1314f311", "" }, - { "nv!1314f312", "" }, - { "nv!13279512", "" }, - { "nv!13813496", "" }, - { "nv!14507179", "" }, - { "nv!15694569", "" }, - { "nv!16936964", "" }, - { "nv!17aa230c", "" }, - { "nv!182054", "" }, - { "nv!18273275", "" }, - { "nv!18273276", "" }, - { "nv!1854d03b", "" }, - { "nv!18add00d", "" }, - { "nv!19156670", "" }, - { "nv!19286545", "" }, - { "nv!1a298e9f", "" }, - { "nv!1acf43fe", "" }, - { "nv!1bda43fe", "" }, - { "nv!1c3b92", "" }, - { "nv!21509920", "" }, - { "nv!215323457", "" }, - { "nv!2165ad", "" }, - { "nv!2165ae", "" }, - { "nv!21be9c", "" }, - { "nv!233264316", "" }, - { "nv!234557580", "" }, - { "nv!23cd0e", "" }, - { "nv!24189123", "" }, - { "nv!2443266", "" }, - { "nv!25025519", "" }, - { "nv!255e39", "" }, - { "nv!2583364", "" }, - { "nv!2888c1", "" }, - { "nv!28ca3e", "" }, - { "nv!29871243", "" }, - { "nv!2a1f64", "" }, - { "nv!2dc432", "" }, - { "nv!2de437", "" }, - { "nv!2f3bb89c", "" }, - { "nv!2fd652", "" }, - { "nv!3001ac", "" }, - { "nv!31298772", "" }, - { "nv!313233", "" }, - { "nv!31f7d603", "" }, - { "nv!320ce4", "" }, - { "nv!32153248", "" }, - { "nv!32153249", "" }, - { "nv!335bca", "" }, - { "nv!342abb", "" }, - { "nv!34dfe6", "" }, - { "nv!34dfe7", "" }, - { "nv!34dfe8", "" }, - { "nv!34dfe9", "" }, - { "nv!35201578", "" }, - { "nv!359278", "" }, - { "nv!37f53a", "" }, - { "nv!38144972", "" }, - { "nv!38542646", "" }, - { "nv!3b74c9", "" }, - { "nv!3c136f", "" }, - { "nv!3cf72823", "" }, - { "nv!3d7af029", "" }, - { "nv!3ff34782", "" }, - { "nv!4129618", "" }, - { "nv!4189fac3", "" }, - { "nv!420bd4", "" }, - { "nv!42a699", "" }, - { "nv!441369", "" }, - { "nv!4458713e", "" }, - { "nv!4554b6", "" }, - { "nv!457425", "" }, - { "nv!4603b207", "" }, - { "nv!46574957", "" }, - { "nv!46574958", "" }, - { "nv!46813529", "" }, - { "nv!46f1e13d", "" }, - { "nv!47534c43", "" }, - { "nv!48550336", "" }, - { "nv!48576893", "" }, - { "nv!48576894", "" }, - { "nv!4889ac02", "" }, - { "nv!49005740", "" }, - { "nv!49867584", "" }, - { "nv!49960973", "" }, - { "nv!4a5341", "" }, - { "nv!4f4e48", "" }, - { "nv!4f8a0a", "" }, - { "nv!50299698", "" }, - { "nv!50299699", "" }, - { "nv!50361291", "" }, - { "nv!5242ae", "" }, - { "nv!53d30c", "" }, - { "nv!56347a", "" }, - { "nv!563a95f1", "" }, - { "nv!573823", "" }, - { "nv!58027529", "" }, - { "nv!5d2d63", "" }, - { "nv!5f7e3b", "" }, - { "nv!60461793", "" }, - { "nv!60d355", "" }, - { "nv!616627aa", "" }, - { "nv!62317182", "" }, - { "nv!6253fa2e", "" }, - { "nv!64100768", "" }, - { "nv!64100769", "" }, - { "nv!64100770", "" }, - { "nv!647395", "" }, - { "nv!66543234", "" }, - { "nv!67674763", "" }, - { "nv!67739784", "" }, - { "nv!68fb9c", "" }, - { "nv!69801276", "" }, - { "nv!6af9fa2f", "" }, - { "nv!6af9fa3f", "" }, - { "nv!6af9fa4f", "" }, - { "nv!6bd8c7", "" }, - { "nv!6c7691", "" }, - { "nv!6d4296ce", "" }, - { "nv!6dd7e7", "" }, - { "nv!6dd7e8", "" }, - { "nv!6fe11ec1", "" }, - { "nv!716511763", "" }, - { "nv!72504593", "" }, - { "nv!73304097", "" }, - { "nv!73314098", "" }, - { "nv!74095213", "" }, - { "nv!74095213a", "" }, - { "nv!74095213b", "" }, - { "nv!74095214", "" }, - { "nv!748f9649", "" }, - { "nv!75494732", "" }, - { "nv!78452832", "" }, - { "nv!784561", "" }, - { "nv!78e16b9c", "" }, - { "nv!79251225", "" }, - { "nv!7c128b", "" }, - { "nv!7ccd93", "" }, - { "nv!7df8d1", "" }, - { "nv!800c2310", "" }, - { "nv!80546710", "" }, - { "nv!80772310", "" }, - { "nv!808ee280", "" }, - { "nv!81131154", "" }, - { "nv!81274457", "" }, - { "nv!8292291f", "" }, - { "nv!83498426", "" }, - { "nv!84993794", "" }, - { "nv!84995585", "" }, - { "nv!84a0a0", "" }, - { "nv!852142", "" }, - { "nv!85612309", "" }, - { "nv!85612310", "" }, - { "nv!85612311", "" }, - { "nv!85612312", "" }, - { "nv!8623ff27", "" }, - { "nv!87364952", "" }, - { "nv!87f6275666", "" }, - { "nv!886748", "" }, - { "nv!89894423", "" }, - { "nv!8ad8a75", "" }, - { "nv!8ad8ad00", "" }, - { "nv!8bb815", "" }, - { "nv!8bb817", "" }, - { "nv!8bb818", "" }, - { "nv!8bb819", "" }, - { "nv!8e640cd1", "" }, - { "nv!8f34971a", "" }, - { "nv!8f773984", "" }, - { "nv!8f7a7d", "" }, - { "nv!902486209", "" }, - { "nv!90482571", "" }, - { "nv!91214835", "" }, - { "nv!912848290", "" }, - { "nv!915e56", "" }, - { "nv!92179063", "" }, - { "nv!92179064", "" }, - { "nv!92179065", "" }, - { "nv!92179066", "" }, - { "nv!92350358", "" }, - { "nv!92809063", "" }, - { "nv!92809064", "" }, - { "nv!92809065", "" }, - { "nv!92809066", "" }, - { "nv!92920143", "" }, - { "nv!93a89b12", "" }, - { "nv!93a89c0b", "" }, - { "nv!94812574", "" }, - { "nv!95282304", "" }, - { "nv!95394027", "" }, - { "nv!959b1f", "" }, - { "nv!9638af", "" }, - { "nv!96fd59", "" }, - { "nv!97f6275666", "" }, - { "nv!97f6275667", "" }, - { "nv!97f6275668", "" }, - { "nv!97f6275669", "" }, - { "nv!97f627566a", "" }, - { "nv!97f627566b", "" }, - { "nv!97f627566d", "" }, - { "nv!97f627566e", "" }, - { "nv!97f627566f", "" }, - { "nv!97f6275670", "" }, - { "nv!97f6275671", "" }, - { "nv!97f727566e", "" }, - { "nv!98480775", "" }, - { "nv!98480776", "" }, - { "nv!98480777", "" }, - { "nv!992431", "" }, - { "nv!9aa29065", "" }, - { "nv!9af32c", "" }, - { "nv!9af32d", "" }, - { "nv!9af32e", "" }, - { "nv!9c108b71", "" }, - { "nv!9f279065", "" }, - { "nv!a01bc728", "" }, - { "nv!a13b46c80", "" }, - { "nv!a22eb0", "" }, - { "nv!a2fb451e", "" }, - { "nv!a3456abe", "" }, - { "nv!a7044887", "" }, - { "nv!a7149200", "" }, - { "nv!a766215670", "" }, - { "nv!aac_drc_boost", "" }, - { "nv!aac_drc_cut", "" }, - { "nv!aac_drc_enc_target_level", "" }, - { "nv!aac_drc_heavy", "" }, - { "nv!aac_drc_reference_level", "" }, - { "nv!aalinegamma", "" }, - { "nv!aalinetweaks", "" }, - { "nv!ab34ee01", "" }, - { "nv!ab34ee02", "" }, - { "nv!ab34ee03", "" }, - { "nv!ac0274", "" }, - { "nv!af73c63e", "" }, - { "nv!af73c63f", "" }, - { "nv!af9927", "" }, - { "nv!afoverride", "" }, - { "nv!allocdeviceevents", "" }, - { "nv!applicationkey", "" }, - { "nv!appreturnonlybasicglsltype", "" }, - { "nv!app_softimage", "" }, - { "nv!app_supportbits2", "" }, - { "nv!assumetextureismipmappedatcreation", "" }, - { "nv!b1fb0f01", "" }, - { "nv!b3edd5", "" }, - { "nv!b40d9e03d", "" }, - { "nv!b7f6275666", "" }, - { "nv!b812c1", "" }, - { "nv!ba14ba1a", "" }, - { "nv!ba14ba1b", "" }, - { "nv!bd7559", "" }, - { "nv!bd755a", "" }, - { "nv!bd755c", "" }, - { "nv!bd755d", "" }, - { "nv!be58bb", "" }, - { "nv!be92cb", "" }, - { "nv!beefcba3", "" }, - { "nv!beefcba4", "" }, - { "nv!c023777f", "" }, - { "nv!c09dc8", "" }, - { "nv!c0d340", "" }, - { "nv!c2ff374c", "" }, - { "nv!c5e9d7a3", "" }, - { "nv!c5e9d7a4", "" }, - { "nv!c5e9d7b4", "" }, - { "nv!c618f9", "" }, - { "nv!ca345840", "" }, - { "nv!cachedisable", "" }, - { "nv!cast.on", "" }, - { "nv!cde", "" }, - { "nv!channelpriorityoverride", "" }, - { "nv!cleardatastorevidmem", "" }, - { "nv!cmdbufmemoryspaceenables", "" }, - { "nv!cmdbufminwords", "" }, - { "nv!cmdbufsizewords", "" }, - { "nv!conformantblitframebufferscissor", "" }, - { "nv!conformantincompletetextures", "" }, - { "nv!copybuffermethod", "" }, - { "nv!cubemapaniso", "" }, - { "nv!cubemapfiltering", "" }, - { "nv!d0e9a4d7", "" }, - { "nv!d13733f12", "" }, - { "nv!d1b399", "" }, - { "nv!d2983c32", "" }, - { "nv!d2983c33", "" }, - { "nv!d2e71b", "" }, - { "nv!d377dc", "" }, - { "nv!d377dd", "" }, - { "nv!d489f4", "" }, - { "nv!d4bce1", "" }, - { "nv!d518cb", "" }, - { "nv!d518cd", "" }, - { "nv!d518ce", "" }, - { "nv!d518d0", "" }, - { "nv!d518d1", "" }, - { "nv!d518d2", "" }, - { "nv!d518d3", "" }, - { "nv!d518d4", "" }, - { "nv!d518d5", "" }, - { "nv!d59eda", "" }, - { "nv!d83cbd", "" }, - { "nv!d8e777", "" }, - { "nv!debug_level", "" }, - { "nv!debug_mask", "" }, - { "nv!debug_options", "" }, - { "nv!devshmpageableallocations", "" }, - { "nv!df1f9812", "" }, - { "nv!df783c", "" }, - { "nv!diagenable", "" }, - { "nv!disallowcemask", "" }, - { "nv!disallowz16", "" }, - { "nv!dlmemoryspaceenables", "" }, - { "nv!e0bfec", "" }, - { "nv!e433456d", "" }, - { "nv!e435563f", "" }, - { "nv!e4cd9c", "" }, - { "nv!e5c972", "" }, - { "nv!e639ef", "" }, - { "nv!e802af", "" }, - { "nv!eae964", "" }, - { "nv!earlytexturehwallocation", "" }, - { "nv!eb92a3", "" }, - { "nv!ebca56", "" }, - { "nv!enable-noaud", "" }, - { "nv!enable-noavs", "" }, - { "nv!enable-prof", "" }, - { "nv!enable-sxesmode", "" }, - { "nv!enable-ulld", "" }, - { "nv!expert_detail_level", "" }, - { "nv!expert_output_mask", "" }, - { "nv!expert_report_mask", "" }, - { "nv!extensionstringnvarch", "" }, - { "nv!extensionstringversion", "" }, - { "nv!f00f1938", "" }, - { "nv!f10736", "" }, - { "nv!f1846870", "" }, - { "nv!f33bc370", "" }, - { "nv!f392a874", "" }, - { "nv!f49ae8", "" }, - { "nv!fa345cce", "" }, - { "nv!fa35cc4", "" }, - { "nv!faa14a", "" }, - { "nv!faf8a723", "" }, - { "nv!fastgs", "" }, - { "nv!fbf4ac45", "" }, - { "nv!fbo_blit_ignore_srgb", "" }, - { "nv!fc64c7", "" }, - { "nv!ff54ec97", "" }, - { "nv!ff54ec98", "" }, - { "nv!forceexitprocessdetach", "" }, - { "nv!forcerequestedesversion", "" }, - { "nv!__gl_", "" }, - { "nv!__gl_00008600", "" }, - { "nv!__gl_0007b25e", "" }, - { "nv!__gl_0083e1", "" }, - { "nv!__gl_01621887", "" }, - { "nv!__gl_03134743", "" }, - { "nv!__gl_0356afd0", "" }, - { "nv!__gl_0356afd1", "" }, - { "nv!__gl_0356afd2", "" }, - { "nv!__gl_0356afd3", "" }, - { "nv!__gl_094313", "" }, - { "nv!__gl_0x04dc09", "" }, - { "nv!__gl_0x111133", "" }, - { "nv!__gl_0x1aa483", "" }, - { "nv!__gl_0x1cb1cf", "" }, - { "nv!__gl_0x1cb1d0", "" }, - { "nv!__gl_0x1e3221", "" }, - { "nv!__gl_0x300fc8", "" }, - { "nv!__gl_0x301fc8", "" }, - { "nv!__gl_0x302fc8", "" }, - { "nv!__gl_0x3eec59", "" }, - { "nv!__gl_0x46b3ed", "" }, - { "nv!__gl_0x523dc0", "" }, - { "nv!__gl_0x523dc1", "" }, - { "nv!__gl_0x523dc2", "" }, - { "nv!__gl_0x523dc3", "" }, - { "nv!__gl_0x523dc4", "" }, - { "nv!__gl_0x523dc5", "" }, - { "nv!__gl_0x523dc6", "" }, - { "nv!__gl_0x523dd0", "" }, - { "nv!__gl_0x523dd1", "" }, - { "nv!__gl_0x523dd3", "" }, - { "nv!__gl_0x5344bb", "" }, - { "nv!__gl_0x555237", "" }, - { "nv!__gl_0x58a234", "" }, - { "nv!__gl_0x7b4428", "" }, - { "nv!__gl_0x923dc0", "" }, - { "nv!__gl_0x923dc1", "" }, - { "nv!__gl_0x923dc2", "" }, - { "nv!__gl_0x923dc3", "" }, - { "nv!__gl_0x923dc4", "" }, - { "nv!__gl_0x923dd3", "" }, - { "nv!__gl_0x9abdc5", "" }, - { "nv!__gl_0x9abdc6", "" }, - { "nv!__gl_0xaaa36c", "" }, - { "nv!__gl_0xb09da0", "" }, - { "nv!__gl_0xb09da1", "" }, - { "nv!__gl_0xb09da2", "" }, - { "nv!__gl_0xb09da3", "" }, - { "nv!__gl_0xb09da4", "" }, - { "nv!__gl_0xb09da5", "" }, - { "nv!__gl_0xb0b348", "" }, - { "nv!__gl_0xb0b349", "" }, - { "nv!__gl_0xbb558f", "" }, - { "nv!__gl_0xbd10fb", "" }, - { "nv!__gl_0xc32ad3", "" }, - { "nv!__gl_0xce2348", "" }, - { "nv!__gl_0xcfd81f", "" }, - { "nv!__gl_0xe0036b", "" }, - { "nv!__gl_0xe01f2d", "" }, - { "nv!__gl_0xe17212", "" }, - { "nv!__gl_0xeae966", "" }, - { "nv!__gl_0xed4f82", "" }, - { "nv!__gl_0xf12335", "" }, - { "nv!__gl_0xf12336", "" }, - { "nv!__gl_10261989", "" }, - { "nv!__gl_1042d483", "" }, - { "nv!__gl_10572898", "" }, - { "nv!__gl_115631", "" }, - { "nv!__gl_12950094", "" }, - { "nv!__gl_1314f311", "" }, - { "nv!__gl_1314f312", "" }, - { "nv!__gl_13279512", "" }, - { "nv!__gl_13813496", "" }, - { "nv!__gl_14507179", "" }, - { "nv!__gl_15694569", "" }, - { "nv!__gl_16936964", "" }, - { "nv!__gl_17aa230c", "" }, - { "nv!__gl_182054", "" }, - { "nv!__gl_18273275", "" }, - { "nv!__gl_18273276", "" }, - { "nv!__gl_1854d03b", "" }, - { "nv!__gl_18add00d", "" }, - { "nv!__gl_19156670", "" }, - { "nv!__gl_19286545", "" }, - { "nv!__gl_1a298e9f", "" }, - { "nv!__gl_1acf43fe", "" }, - { "nv!__gl_1bda43fe", "" }, - { "nv!__gl_1c3b92", "" }, - { "nv!__gl_21509920", "" }, - { "nv!__gl_215323457", "" }, - { "nv!__gl_2165ad", "" }, - { "nv!__gl_2165ae", "" }, - { "nv!__gl_21be9c", "" }, - { "nv!__gl_233264316", "" }, - { "nv!__gl_234557580", "" }, - { "nv!__gl_23cd0e", "" }, - { "nv!__gl_24189123", "" }, - { "nv!__gl_2443266", "" }, - { "nv!__gl_25025519", "" }, - { "nv!__gl_255e39", "" }, - { "nv!__gl_2583364", "" }, - { "nv!__gl_2888c1", "" }, - { "nv!__gl_28ca3e", "" }, - { "nv!__gl_29871243", "" }, - { "nv!__gl_2a1f64", "" }, - { "nv!__gl_2dc432", "" }, - { "nv!__gl_2de437", "" }, - { "nv!__gl_2f3bb89c", "" }, - { "nv!__gl_2fd652", "" }, - { "nv!__gl_3001ac", "" }, - { "nv!__gl_31298772", "" }, - { "nv!__gl_313233", "" }, - { "nv!__gl_31f7d603", "" }, - { "nv!__gl_320ce4", "" }, - { "nv!__gl_32153248", "" }, - { "nv!__gl_32153249", "" }, - { "nv!__gl_335bca", "" }, - { "nv!__gl_342abb", "" }, - { "nv!__gl_34dfe6", "" }, - { "nv!__gl_34dfe7", "" }, - { "nv!__gl_34dfe8", "" }, - { "nv!__gl_34dfe9", "" }, - { "nv!__gl_35201578", "" }, - { "nv!__gl_359278", "" }, - { "nv!__gl_37f53a", "" }, - { "nv!__gl_38144972", "" }, - { "nv!__gl_38542646", "" }, - { "nv!__gl_3b74c9", "" }, - { "nv!__gl_3c136f", "" }, - { "nv!__gl_3cf72823", "" }, - { "nv!__gl_3d7af029", "" }, - { "nv!__gl_3ff34782", "" }, - { "nv!__gl_4129618", "" }, - { "nv!__gl_4189fac3", "" }, - { "nv!__gl_420bd4", "" }, - { "nv!__gl_42a699", "" }, - { "nv!__gl_441369", "" }, - { "nv!__gl_4458713e", "" }, - { "nv!__gl_4554b6", "" }, - { "nv!__gl_457425", "" }, - { "nv!__gl_4603b207", "" }, - { "nv!__gl_46574957", "" }, - { "nv!__gl_46574958", "" }, - { "nv!__gl_46813529", "" }, - { "nv!__gl_46f1e13d", "" }, - { "nv!__gl_47534c43", "" }, - { "nv!__gl_48550336", "" }, - { "nv!__gl_48576893", "" }, - { "nv!__gl_48576894", "" }, - { "nv!__gl_4889ac02", "" }, - { "nv!__gl_49005740", "" }, - { "nv!__gl_49867584", "" }, - { "nv!__gl_49960973", "" }, - { "nv!__gl_4a5341", "" }, - { "nv!__gl_4f4e48", "" }, - { "nv!__gl_4f8a0a", "" }, - { "nv!__gl_50299698", "" }, - { "nv!__gl_50299699", "" }, - { "nv!__gl_50361291", "" }, - { "nv!__gl_5242ae", "" }, - { "nv!__gl_53d30c", "" }, - { "nv!__gl_56347a", "" }, - { "nv!__gl_563a95f1", "" }, - { "nv!__gl_573823", "" }, - { "nv!__gl_58027529", "" }, - { "nv!__gl_5d2d63", "" }, - { "nv!__gl_5f7e3b", "" }, - { "nv!__gl_60461793", "" }, - { "nv!__gl_60d355", "" }, - { "nv!__gl_616627aa", "" }, - { "nv!__gl_62317182", "" }, - { "nv!__gl_6253fa2e", "" }, - { "nv!__gl_64100768", "" }, - { "nv!__gl_64100769", "" }, - { "nv!__gl_64100770", "" }, - { "nv!__gl_647395", "" }, - { "nv!__gl_66543234", "" }, - { "nv!__gl_67674763", "" }, - { "nv!__gl_67739784", "" }, - { "nv!__gl_68fb9c", "" }, - { "nv!__gl_69801276", "" }, - { "nv!__gl_6af9fa2f", "" }, - { "nv!__gl_6af9fa3f", "" }, - { "nv!__gl_6af9fa4f", "" }, - { "nv!__gl_6bd8c7", "" }, - { "nv!__gl_6c7691", "" }, - { "nv!__gl_6d4296ce", "" }, - { "nv!__gl_6dd7e7", "" }, - { "nv!__gl_6dd7e8", "" }, - { "nv!__gl_6fe11ec1", "" }, - { "nv!__gl_716511763", "" }, - { "nv!__gl_72504593", "" }, - { "nv!__gl_73304097", "" }, - { "nv!__gl_73314098", "" }, - { "nv!__gl_74095213", "" }, - { "nv!__gl_74095213a", "" }, - { "nv!__gl_74095213b", "" }, - { "nv!__gl_74095214", "" }, - { "nv!__gl_748f9649", "" }, - { "nv!__gl_75494732", "" }, - { "nv!__gl_78452832", "" }, - { "nv!__gl_784561", "" }, - { "nv!__gl_78e16b9c", "" }, - { "nv!__gl_79251225", "" }, - { "nv!__gl_7c128b", "" }, - { "nv!__gl_7ccd93", "" }, - { "nv!__gl_7df8d1", "" }, - { "nv!__gl_800c2310", "" }, - { "nv!__gl_80546710", "" }, - { "nv!__gl_80772310", "" }, - { "nv!__gl_808ee280", "" }, - { "nv!__gl_81131154", "" }, - { "nv!__gl_81274457", "" }, - { "nv!__gl_8292291f", "" }, - { "nv!__gl_83498426", "" }, - { "nv!__gl_84993794", "" }, - { "nv!__gl_84995585", "" }, - { "nv!__gl_84a0a0", "" }, - { "nv!__gl_852142", "" }, - { "nv!__gl_85612309", "" }, - { "nv!__gl_85612310", "" }, - { "nv!__gl_85612311", "" }, - { "nv!__gl_85612312", "" }, - { "nv!__gl_8623ff27", "" }, - { "nv!__gl_87364952", "" }, - { "nv!__gl_87f6275666", "" }, - { "nv!__gl_886748", "" }, - { "nv!__gl_89894423", "" }, - { "nv!__gl_8ad8a75", "" }, - { "nv!__gl_8ad8ad00", "" }, - { "nv!__gl_8bb815", "" }, - { "nv!__gl_8bb817", "" }, - { "nv!__gl_8bb818", "" }, - { "nv!__gl_8bb819", "" }, - { "nv!__gl_8e640cd1", "" }, - { "nv!__gl_8f34971a", "" }, - { "nv!__gl_8f773984", "" }, - { "nv!__gl_8f7a7d", "" }, - { "nv!__gl_902486209", "" }, - { "nv!__gl_90482571", "" }, - { "nv!__gl_91214835", "" }, - { "nv!__gl_912848290", "" }, - { "nv!__gl_915e56", "" }, - { "nv!__gl_92179063", "" }, - { "nv!__gl_92179064", "" }, - { "nv!__gl_92179065", "" }, - { "nv!__gl_92179066", "" }, - { "nv!__gl_92350358", "" }, - { "nv!__gl_92809063", "" }, - { "nv!__gl_92809064", "" }, - { "nv!__gl_92809065", "" }, - { "nv!__gl_92809066", "" }, - { "nv!__gl_92920143", "" }, - { "nv!__gl_93a89b12", "" }, - { "nv!__gl_93a89c0b", "" }, - { "nv!__gl_94812574", "" }, - { "nv!__gl_95282304", "" }, - { "nv!__gl_95394027", "" }, - { "nv!__gl_959b1f", "" }, - { "nv!__gl_9638af", "" }, - { "nv!__gl_96fd59", "" }, - { "nv!__gl_97f6275666", "" }, - { "nv!__gl_97f6275667", "" }, - { "nv!__gl_97f6275668", "" }, - { "nv!__gl_97f6275669", "" }, - { "nv!__gl_97f627566a", "" }, - { "nv!__gl_97f627566b", "" }, - { "nv!__gl_97f627566d", "" }, - { "nv!__gl_97f627566e", "" }, - { "nv!__gl_97f627566f", "" }, - { "nv!__gl_97f6275670", "" }, - { "nv!__gl_97f6275671", "" }, - { "nv!__gl_97f727566e", "" }, - { "nv!__gl_98480775", "" }, - { "nv!__gl_98480776", "" }, - { "nv!__gl_98480777", "" }, - { "nv!__gl_992431", "" }, - { "nv!__gl_9aa29065", "" }, - { "nv!__gl_9af32c", "" }, - { "nv!__gl_9af32d", "" }, - { "nv!__gl_9af32e", "" }, - { "nv!__gl_9c108b71", "" }, - { "nv!__gl_9f279065", "" }, - { "nv!__gl_a01bc728", "" }, - { "nv!__gl_a13b46c80", "" }, - { "nv!__gl_a22eb0", "" }, - { "nv!__gl_a2fb451e", "" }, - { "nv!__gl_a3456abe", "" }, - { "nv!__gl_a7044887", "" }, - { "nv!__gl_a7149200", "" }, - { "nv!__gl_a766215670", "" }, - { "nv!__gl_aalinegamma", "" }, - { "nv!__gl_aalinetweaks", "" }, - { "nv!__gl_ab34ee01", "" }, - { "nv!__gl_ab34ee02", "" }, - { "nv!__gl_ab34ee03", "" }, - { "nv!__gl_ac0274", "" }, - { "nv!__gl_af73c63e", "" }, - { "nv!__gl_af73c63f", "" }, - { "nv!__gl_af9927", "" }, - { "nv!__gl_afoverride", "" }, - { "nv!__gl_allocdeviceevents", "" }, - { "nv!__gl_applicationkey", "" }, - { "nv!__gl_appreturnonlybasicglsltype", "" }, - { "nv!__gl_app_softimage", "" }, - { "nv!__gl_app_supportbits2", "" }, - { "nv!__gl_assumetextureismipmappedatcreation", "" }, - { "nv!__gl_b1fb0f01", "" }, - { "nv!__gl_b3edd5", "" }, - { "nv!__gl_b40d9e03d", "" }, - { "nv!__gl_b7f6275666", "" }, - { "nv!__gl_b812c1", "" }, - { "nv!__gl_ba14ba1a", "" }, - { "nv!__gl_ba14ba1b", "" }, - { "nv!__gl_bd7559", "" }, - { "nv!__gl_bd755a", "" }, - { "nv!__gl_bd755c", "" }, - { "nv!__gl_bd755d", "" }, - { "nv!__gl_be58bb", "" }, - { "nv!__gl_be92cb", "" }, - { "nv!__gl_beefcba3", "" }, - { "nv!__gl_beefcba4", "" }, - { "nv!__gl_c023777f", "" }, - { "nv!__gl_c09dc8", "" }, - { "nv!__gl_c0d340", "" }, - { "nv!__gl_c2ff374c", "" }, - { "nv!__gl_c5e9d7a3", "" }, - { "nv!__gl_c5e9d7a4", "" }, - { "nv!__gl_c5e9d7b4", "" }, - { "nv!__gl_c618f9", "" }, - { "nv!__gl_ca345840", "" }, - { "nv!__gl_cachedisable", "" }, - { "nv!__gl_channelpriorityoverride", "" }, - { "nv!__gl_cleardatastorevidmem", "" }, - { "nv!__gl_cmdbufmemoryspaceenables", "" }, - { "nv!__gl_cmdbufminwords", "" }, - { "nv!__gl_cmdbufsizewords", "" }, - { "nv!__gl_conformantblitframebufferscissor", "" }, - { "nv!__gl_conformantincompletetextures", "" }, - { "nv!__gl_copybuffermethod", "" }, - { "nv!__gl_cubemapaniso", "" }, - { "nv!__gl_cubemapfiltering", "" }, - { "nv!__gl_d0e9a4d7", "" }, - { "nv!__gl_d13733f12", "" }, - { "nv!__gl_d1b399", "" }, - { "nv!__gl_d2983c32", "" }, - { "nv!__gl_d2983c33", "" }, - { "nv!__gl_d2e71b", "" }, - { "nv!__gl_d377dc", "" }, - { "nv!__gl_d377dd", "" }, - { "nv!__gl_d489f4", "" }, - { "nv!__gl_d4bce1", "" }, - { "nv!__gl_d518cb", "" }, - { "nv!__gl_d518cd", "" }, - { "nv!__gl_d518ce", "" }, - { "nv!__gl_d518d0", "" }, - { "nv!__gl_d518d1", "" }, - { "nv!__gl_d518d2", "" }, - { "nv!__gl_d518d3", "" }, - { "nv!__gl_d518d4", "" }, - { "nv!__gl_d518d5", "" }, - { "nv!__gl_d59eda", "" }, - { "nv!__gl_d83cbd", "" }, - { "nv!__gl_d8e777", "" }, - { "nv!__gl_debug_level", "" }, - { "nv!__gl_debug_mask", "" }, - { "nv!__gl_debug_options", "" }, - { "nv!__gl_devshmpageableallocations", "" }, - { "nv!__gl_df1f9812", "" }, - { "nv!__gl_df783c", "" }, - { "nv!__gl_diagenable", "" }, - { "nv!__gl_disallowcemask", "" }, - { "nv!__gl_disallowz16", "" }, - { "nv!__gl_dlmemoryspaceenables", "" }, - { "nv!__gl_e0bfec", "" }, - { "nv!__gl_e433456d", "" }, - { "nv!__gl_e435563f", "" }, - { "nv!__gl_e4cd9c", "" }, - { "nv!__gl_e5c972", "" }, - { "nv!__gl_e639ef", "" }, - { "nv!__gl_e802af", "" }, - { "nv!__gl_eae964", "" }, - { "nv!__gl_earlytexturehwallocation", "" }, - { "nv!__gl_eb92a3", "" }, - { "nv!__gl_ebca56", "" }, - { "nv!__gl_expert_detail_level", "" }, - { "nv!__gl_expert_output_mask", "" }, - { "nv!__gl_expert_report_mask", "" }, - { "nv!__gl_extensionstringnvarch", "" }, - { "nv!__gl_extensionstringversion", "" }, - { "nv!__gl_f00f1938", "" }, - { "nv!__gl_f10736", "" }, - { "nv!__gl_f1846870", "" }, - { "nv!__gl_f33bc370", "" }, - { "nv!__gl_f392a874", "" }, - { "nv!__gl_f49ae8", "" }, - { "nv!__gl_fa345cce", "" }, - { "nv!__gl_fa35cc4", "" }, - { "nv!__gl_faa14a", "" }, - { "nv!__gl_faf8a723", "" }, - { "nv!__gl_fastgs", "" }, - { "nv!__gl_fbf4ac45", "" }, - { "nv!__gl_fbo_blit_ignore_srgb", "" }, - { "nv!__gl_fc64c7", "" }, - { "nv!__gl_ff54ec97", "" }, - { "nv!__gl_ff54ec98", "" }, - { "nv!__gl_forceexitprocessdetach", "" }, - { "nv!__gl_forcerequestedesversion", "" }, - { "nv!__gl_glsynctovblank", "" }, - { "nv!__gl_gvitimeoutcontrol", "" }, - { "nv!__gl_hcctrl", "" }, - { "nv!__gl_hwstate_per_ctx", "" }, - { "nv!__gl_machinecachelimit", "" }, - { "nv!__gl_maxframesallowed", "" }, - { "nv!__gl_memmgrcachedalloclimit", "" }, - { "nv!__gl_memmgrcachedalloclimitratio", "" }, - { "nv!__gl_memmgrsysheapalloclimit", "" }, - { "nv!__gl_memmgrsysheapalloclimitratio", "" }, - { "nv!__gl_memmgrvidheapalloclimit", "" }, - { "nv!__gl_mosaic_clip_to_subdev", "" }, - { "nv!__gl_mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!__gl_mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!__gl_overlaymergeblittimerms", "" }, - { "nv!__gl_perfmon_mode", "" }, - { "nv!__gl_pixbar_mode", "" }, - { "nv!__gl_qualityenhancements", "" }, - { "nv!__gl_r27s18q28", "" }, - { "nv!__gl_r2d7c1d8", "" }, - { "nv!__gl_renderer", "" }, - { "nv!__gl_renderqualityflags", "" }, - { "nv!__gl_s3tcquality", "" }, - { "nv!__gl_shaderatomics", "" }, - { "nv!__gl_shadercacheinitsize", "" }, - { "nv!__gl_shader_disk_cache_path", "" }, - { "nv!__gl_shader_disk_cache_read_only", "" }, - { "nv!__gl_shaderobjects", "" }, - { "nv!__gl_shaderportabilitywarnings", "" }, - { "nv!__gl_shaderwarningsaserrors", "" }, - { "nv!__gl_skiptexturehostcopies", "" }, - { "nv!__glslc_debug_level", "" }, - { "nv!__glslc_debug_mask", "" }, - { "nv!__glslc_debug_options", "" }, - { "nv!__glslc_debug_filename", "" }, - { "nv!__gl_sli_dli_control", "" }, - { "nv!__gl_sparsetexture", "" }, - { "nv!__gl_spinlooptimeout", "" }, - { "nv!__gl_sync_to_vblank", "" }, - { "nv!glsynctovblank", "" }, - { "nv!__gl_sysheapreuseratio", "" }, - { "nv!__gl_sysmemtexturepromotion", "" }, - { "nv!__gl_targetflushcount", "" }, - { "nv!__gl_tearingfreeswappresent", "" }, - { "nv!__gl_texclampbehavior", "" }, - { "nv!__gl_texlodbias", "" }, - { "nv!__gl_texmemoryspaceenables", "" }, - { "nv!__gl_textureprecache", "" }, - { "nv!__gl_threadcontrol", "" }, - { "nv!__gl_threadcontrol2", "" }, - { "nv!__gl_usegvievents", "" }, - { "nv!__gl_vbomemoryspaceenables", "" }, - { "nv!__gl_vertexlimit", "" }, - { "nv!__gl_vidheapreuseratio", "" }, - { "nv!__gl_vpipe", "" }, - { "nv!__gl_vpipeformatbloatlimit", "" }, - { "nv!__gl_wglmessageboxonabort", "" }, - { "nv!__gl_writeinfolog", "" }, - { "nv!__gl_writeprogramobjectassembly", "" }, - { "nv!__gl_writeprogramobjectsource", "" }, - { "nv!__gl_xnvadapterpresent", "" }, - { "nv!__gl_yield", "" }, - { "nv!__gl_yieldfunction", "" }, - { "nv!__gl_yieldfunctionfast", "" }, - { "nv!__gl_yieldfunctionslow", "" }, - { "nv!__gl_yieldfunctionwaitfordcqueue", "" }, - { "nv!__gl_yieldfunctionwaitforframe", "" }, - { "nv!__gl_yieldfunctionwaitforgpu", "" }, - { "nv!__gl_zbctableaddhysteresis", "" }, - { "nv!gpu_debug_mode", "" }, - { "nv!gpu_stay_on", "" }, - { "nv!gpu_timeout_ms_max", "" }, - { "nv!gvitimeoutcontrol", "" }, - { "nv!hcctrl", "" }, - { "nv!hwstate_per_ctx", "" }, - { "nv!libandroid_enable_log", "" }, - { "nv!machinecachelimit", "" }, - { "nv!maxframesallowed", "" }, - { "nv!media.aac_51_output_enabled", "" }, - { "nv!memmgrcachedalloclimit", "" }, - { "nv!memmgrcachedalloclimitratio", "" }, - { "nv!memmgrsysheapalloclimit", "" }, - { "nv!memmgrsysheapalloclimitratio", "" }, - { "nv!memmgrvidheapalloclimit", "" }, - { "nv!mosaic_clip_to_subdev", "" }, - { "nv!mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!nvblit.dump", "" }, - { "nv!nvblit.profile", "" }, - { "nv!nvblit.twod", "" }, - { "nv!nvblit.vic", "" }, - { "nv!nvddk_vic_prevent_use", "" }, - { "nv!nv_decompression", "" }, - { "nv!nvdisp_bl_ctrl", "0" }, - { "nv!nvdisp_debug_mask", "" }, - { "nv!nvdisp_enable_ts", "0" }, - { "nv!nvhdcp_timeout_ms", "12000" }, - { "nv!nvhdcp_max_retries", "5" }, - { "nv!nv_emc_dvfs_test", "" }, - { "nv!nv_emc_init_rate_hz", "" }, - { "nv!nv_gmmu_va_page_split", "" }, - { "nv!nv_gmmu_va_range", "" }, - { "nv!nvhost_debug_mask", "" }, - { "nv!nvidia.hwc.dump_config", "" }, - { "nv!nvidia.hwc.dump_layerlist", "" }, - { "nv!nvidia.hwc.dump_windows", "" }, - { "nv!nvidia.hwc.enable_disp_trans", "" }, - { "nv!nvidia.hwc.ftrace_enable", "" }, - { "nv!nvidia.hwc.hdcp_enable", "" }, - { "nv!nvidia.hwc.hidden_window_mask0", "" }, - { "nv!nvidia.hwc.hidden_window_mask1", "" }, - { "nv!nvidia.hwc.immediate_modeset", "" }, - { "nv!nvidia.hwc.imp_enable", "" }, - { "nv!nvidia.hwc.no_egl", "" }, - { "nv!nvidia.hwc.no_scratchblit", "" }, - { "nv!nvidia.hwc.no_vic", "" }, - { "nv!nvidia.hwc.null_display", "" }, - { "nv!nvidia.hwc.scan_props", "" }, - { "nv!nvidia.hwc.swap_interval", "" }, - { "nv!nvidia.hwc.war_1515812", "0" }, - { "nv!nvmap_debug_mask", "" }, - { "nv!nv_memory_profiler", "" }, - { "nv!nvnflinger_enable_log", "" }, - { "nv!nvnflinger_flip_policy", "" }, - { "nv!nvnflinger_hotplug_autoswitch", "0" }, - { "nv!nvnflinger_prefer_primary_layer", "0" }, - { "nv!nvnflinger_service_priority", "" }, - { "nv!nvnflinger_service_threads", "" }, - { "nv!nvnflinger_swap_interval", "" }, - { "nv!nvnflinger_track_perf", "" }, - { "nv!nvnflinger_virtualdisplay_policy", "60hz" }, - { "nv!nvn_no_vsync_capability", false }, - { "nv!nvn_through_opengl", "" }, - { "nv!nv_pllcx_always_on", "" }, - { "nv!nv_pllcx_safe_div", "" }, - { "nv!nvrm_gpu_channel_interleave", "" }, - { "nv!nvrm_gpu_channel_priority", "" }, - { "nv!nvrm_gpu_channel_timeslice", "" }, - { "nv!nvrm_gpu_default_device_index", "" }, - { "nv!nvrm_gpu_dummy", "" }, - { "nv!nvrm_gpu_help", "" }, - { "nv!nvrm_gpu_nvgpu_disable", "" }, - { "nv!nvrm_gpu_nvgpu_do_nfa_partial_map", "" }, - { "nv!nvrm_gpu_nvgpu_ecc_overrides", "" }, - { "nv!nvrm_gpu_nvgpu_no_as_get_va_regions", "" }, - { "nv!nvrm_gpu_nvgpu_no_channel_abort", "" }, - { "nv!nvrm_gpu_nvgpu_no_cyclestats", "" }, - { "nv!nvrm_gpu_nvgpu_no_fixed", "" }, - { "nv!nvrm_gpu_nvgpu_no_gpu_characteristics", "" }, - { "nv!nvrm_gpu_nvgpu_no_ioctl_mutex", "" }, - { "nv!nvrm_gpu_nvgpu_no_map_buffer_ex", "" }, - { "nv!nvrm_gpu_nvgpu_no_robustness", "" }, - { "nv!nvrm_gpu_nvgpu_no_sparse", "" }, - { "nv!nvrm_gpu_nvgpu_no_syncpoints", "" }, - { "nv!nvrm_gpu_nvgpu_no_tsg", "" }, - { "nv!nvrm_gpu_nvgpu_no_zbc", "" }, - { "nv!nvrm_gpu_nvgpu_no_zcull", "" }, - { "nv!nvrm_gpu_nvgpu_wrap_channels_in_tsgs", "" }, - { "nv!nvrm_gpu_prevent_use", "" }, - { "nv!nvrm_gpu_trace", "" }, - { "nv!nvsched_debug_mask", "" }, - { "nv!nvsched_force_enable", "" }, - { "nv!nvsched_force_log", "" }, - { "nv!nv_usb_plls_hw_ctrl", "" }, - { "nv!nv_winsys", "" }, - { "nv!nvwsi_dump", "" }, - { "nv!nvwsi_fill", "" }, - { "nv!ogl_", "" }, - { "nv!ogl_0356afd0", "" }, - { "nv!ogl_0356afd1", "" }, - { "nv!ogl_0356afd2", "" }, - { "nv!ogl_0356afd3", "" }, - { "nv!ogl_0x923dc0", "" }, - { "nv!ogl_0x923dc1", "" }, - { "nv!ogl_0x923dc2", "" }, - { "nv!ogl_0x923dc3", "" }, - { "nv!ogl_0x923dc4", "" }, - { "nv!ogl_0x923dd3", "" }, - { "nv!ogl_0x9abdc5", "" }, - { "nv!ogl_0x9abdc6", "" }, - { "nv!ogl_0xbd10fb", "" }, - { "nv!ogl_0xce2348", "" }, - { "nv!ogl_10261989", "" }, - { "nv!ogl_1042d483", "" }, - { "nv!ogl_10572898", "" }, - { "nv!ogl_115631", "" }, - { "nv!ogl_12950094", "" }, - { "nv!ogl_1314f311", "" }, - { "nv!ogl_1314f312", "" }, - { "nv!ogl_13279512", "" }, - { "nv!ogl_13813496", "" }, - { "nv!ogl_14507179", "" }, - { "nv!ogl_15694569", "" }, - { "nv!ogl_16936964", "" }, - { "nv!ogl_17aa230c", "" }, - { "nv!ogl_182054", "" }, - { "nv!ogl_18273275", "" }, - { "nv!ogl_18273276", "" }, - { "nv!ogl_1854d03b", "" }, - { "nv!ogl_18add00d", "" }, - { "nv!ogl_19156670", "" }, - { "nv!ogl_19286545", "" }, - { "nv!ogl_1a298e9f", "" }, - { "nv!ogl_1acf43fe", "" }, - { "nv!ogl_1bda43fe", "" }, - { "nv!ogl_1c3b92", "" }, - { "nv!ogl_21509920", "" }, - { "nv!ogl_215323457", "" }, - { "nv!ogl_2165ad", "" }, - { "nv!ogl_2165ae", "" }, - { "nv!ogl_21be9c", "" }, - { "nv!ogl_233264316", "" }, - { "nv!ogl_234557580", "" }, - { "nv!ogl_23cd0e", "" }, - { "nv!ogl_24189123", "" }, - { "nv!ogl_2443266", "" }, - { "nv!ogl_25025519", "" }, - { "nv!ogl_255e39", "" }, - { "nv!ogl_2583364", "" }, - { "nv!ogl_2888c1", "" }, - { "nv!ogl_28ca3e", "" }, - { "nv!ogl_29871243", "" }, - { "nv!ogl_2a1f64", "" }, - { "nv!ogl_2dc432", "" }, - { "nv!ogl_2de437", "" }, - { "nv!ogl_2f3bb89c", "" }, - { "nv!ogl_2fd652", "" }, - { "nv!ogl_3001ac", "" }, - { "nv!ogl_31298772", "" }, - { "nv!ogl_313233", "" }, - { "nv!ogl_31f7d603", "" }, - { "nv!ogl_320ce4", "" }, - { "nv!ogl_32153248", "" }, - { "nv!ogl_32153249", "" }, - { "nv!ogl_335bca", "" }, - { "nv!ogl_342abb", "" }, - { "nv!ogl_34dfe6", "" }, - { "nv!ogl_34dfe7", "" }, - { "nv!ogl_34dfe8", "" }, - { "nv!ogl_34dfe9", "" }, - { "nv!ogl_35201578", "" }, - { "nv!ogl_359278", "" }, - { "nv!ogl_37f53a", "" }, - { "nv!ogl_38144972", "" }, - { "nv!ogl_38542646", "" }, - { "nv!ogl_3b74c9", "" }, - { "nv!ogl_3c136f", "" }, - { "nv!ogl_3cf72823", "" }, - { "nv!ogl_3d7af029", "" }, - { "nv!ogl_3ff34782", "" }, - { "nv!ogl_4129618", "" }, - { "nv!ogl_4189fac3", "" }, - { "nv!ogl_420bd4", "" }, - { "nv!ogl_42a699", "" }, - { "nv!ogl_441369", "" }, - { "nv!ogl_4458713e", "" }, - { "nv!ogl_4554b6", "" }, - { "nv!ogl_457425", "" }, - { "nv!ogl_4603b207", "" }, - { "nv!ogl_46574957", "" }, - { "nv!ogl_46574958", "" }, - { "nv!ogl_46813529", "" }, - { "nv!ogl_46f1e13d", "" }, - { "nv!ogl_47534c43", "" }, - { "nv!ogl_48550336", "" }, - { "nv!ogl_48576893", "" }, - { "nv!ogl_48576894", "" }, - { "nv!ogl_4889ac02", "" }, - { "nv!ogl_49005740", "" }, - { "nv!ogl_49867584", "" }, - { "nv!ogl_49960973", "" }, - { "nv!ogl_4a5341", "" }, - { "nv!ogl_4f4e48", "" }, - { "nv!ogl_4f8a0a", "" }, - { "nv!ogl_50299698", "" }, - { "nv!ogl_50299699", "" }, - { "nv!ogl_50361291", "" }, - { "nv!ogl_5242ae", "" }, - { "nv!ogl_53d30c", "" }, - { "nv!ogl_56347a", "" }, - { "nv!ogl_563a95f1", "" }, - { "nv!ogl_573823", "" }, - { "nv!ogl_58027529", "" }, - { "nv!ogl_5d2d63", "" }, - { "nv!ogl_5f7e3b", "" }, - { "nv!ogl_60461793", "" }, - { "nv!ogl_60d355", "" }, - { "nv!ogl_616627aa", "" }, - { "nv!ogl_62317182", "" }, - { "nv!ogl_6253fa2e", "" }, - { "nv!ogl_64100768", "" }, - { "nv!ogl_64100769", "" }, - { "nv!ogl_64100770", "" }, - { "nv!ogl_647395", "" }, - { "nv!ogl_66543234", "" }, - { "nv!ogl_67674763", "" }, - { "nv!ogl_67739784", "" }, - { "nv!ogl_68fb9c", "" }, - { "nv!ogl_69801276", "" }, - { "nv!ogl_6af9fa2f", "" }, - { "nv!ogl_6af9fa3f", "" }, - { "nv!ogl_6af9fa4f", "" }, - { "nv!ogl_6bd8c7", "" }, - { "nv!ogl_6c7691", "" }, - { "nv!ogl_6d4296ce", "" }, - { "nv!ogl_6dd7e7", "" }, - { "nv!ogl_6dd7e8", "" }, - { "nv!ogl_6fe11ec1", "" }, - { "nv!ogl_716511763", "" }, - { "nv!ogl_72504593", "" }, - { "nv!ogl_73304097", "" }, - { "nv!ogl_73314098", "" }, - { "nv!ogl_74095213", "" }, - { "nv!ogl_74095213a", "" }, - { "nv!ogl_74095213b", "" }, - { "nv!ogl_74095214", "" }, - { "nv!ogl_748f9649", "" }, - { "nv!ogl_75494732", "" }, - { "nv!ogl_78452832", "" }, - { "nv!ogl_784561", "" }, - { "nv!ogl_78e16b9c", "" }, - { "nv!ogl_79251225", "" }, - { "nv!ogl_7c128b", "" }, - { "nv!ogl_7ccd93", "" }, - { "nv!ogl_7df8d1", "" }, - { "nv!ogl_800c2310", "" }, - { "nv!ogl_80546710", "" }, - { "nv!ogl_80772310", "" }, - { "nv!ogl_808ee280", "" }, - { "nv!ogl_81131154", "" }, - { "nv!ogl_81274457", "" }, - { "nv!ogl_8292291f", "" }, - { "nv!ogl_83498426", "" }, - { "nv!ogl_84993794", "" }, - { "nv!ogl_84995585", "" }, - { "nv!ogl_84a0a0", "" }, - { "nv!ogl_852142", "" }, - { "nv!ogl_85612309", "" }, - { "nv!ogl_85612310", "" }, - { "nv!ogl_85612311", "" }, - { "nv!ogl_85612312", "" }, - { "nv!ogl_8623ff27", "" }, - { "nv!ogl_87364952", "" }, - { "nv!ogl_87f6275666", "" }, - { "nv!ogl_886748", "" }, - { "nv!ogl_89894423", "" }, - { "nv!ogl_8ad8a75", "" }, - { "nv!ogl_8ad8ad00", "" }, - { "nv!ogl_8bb815", "" }, - { "nv!ogl_8bb817", "" }, - { "nv!ogl_8bb818", "" }, - { "nv!ogl_8bb819", "" }, - { "nv!ogl_8e640cd1", "" }, - { "nv!ogl_8f34971a", "" }, - { "nv!ogl_8f773984", "" }, - { "nv!ogl_8f7a7d", "" }, - { "nv!ogl_902486209", "" }, - { "nv!ogl_90482571", "" }, - { "nv!ogl_91214835", "" }, - { "nv!ogl_912848290", "" }, - { "nv!ogl_915e56", "" }, - { "nv!ogl_92179063", "" }, - { "nv!ogl_92179064", "" }, - { "nv!ogl_92179065", "" }, - { "nv!ogl_92179066", "" }, - { "nv!ogl_92350358", "" }, - { "nv!ogl_92809063", "" }, - { "nv!ogl_92809064", "" }, - { "nv!ogl_92809065", "" }, - { "nv!ogl_92809066", "" }, - { "nv!ogl_92920143", "" }, - { "nv!ogl_93a89b12", "" }, - { "nv!ogl_93a89c0b", "" }, - { "nv!ogl_94812574", "" }, - { "nv!ogl_95282304", "" }, - { "nv!ogl_95394027", "" }, - { "nv!ogl_959b1f", "" }, - { "nv!ogl_9638af", "" }, - { "nv!ogl_96fd59", "" }, - { "nv!ogl_97f6275666", "" }, - { "nv!ogl_97f6275667", "" }, - { "nv!ogl_97f6275668", "" }, - { "nv!ogl_97f6275669", "" }, - { "nv!ogl_97f627566a", "" }, - { "nv!ogl_97f627566b", "" }, - { "nv!ogl_97f627566d", "" }, - { "nv!ogl_97f627566e", "" }, - { "nv!ogl_97f627566f", "" }, - { "nv!ogl_97f6275670", "" }, - { "nv!ogl_97f6275671", "" }, - { "nv!ogl_97f727566e", "" }, - { "nv!ogl_98480775", "" }, - { "nv!ogl_98480776", "" }, - { "nv!ogl_98480777", "" }, - { "nv!ogl_992431", "" }, - { "nv!ogl_9aa29065", "" }, - { "nv!ogl_9af32c", "" }, - { "nv!ogl_9af32d", "" }, - { "nv!ogl_9af32e", "" }, - { "nv!ogl_9c108b71", "" }, - { "nv!ogl_9f279065", "" }, - { "nv!ogl_a01bc728", "" }, - { "nv!ogl_a13b46c80", "" }, - { "nv!ogl_a22eb0", "" }, - { "nv!ogl_a2fb451e", "" }, - { "nv!ogl_a3456abe", "" }, - { "nv!ogl_a7044887", "" }, - { "nv!ogl_a7149200", "" }, - { "nv!ogl_a766215670", "" }, - { "nv!ogl_aalinegamma", "" }, - { "nv!ogl_aalinetweaks", "" }, - { "nv!ogl_ab34ee01", "" }, - { "nv!ogl_ab34ee02", "" }, - { "nv!ogl_ab34ee03", "" }, - { "nv!ogl_ac0274", "" }, - { "nv!ogl_af73c63e", "" }, - { "nv!ogl_af73c63f", "" }, - { "nv!ogl_af9927", "" }, - { "nv!ogl_afoverride", "" }, - { "nv!ogl_allocdeviceevents", "" }, - { "nv!ogl_applicationkey", "" }, - { "nv!ogl_appreturnonlybasicglsltype", "" }, - { "nv!ogl_app_softimage", "" }, - { "nv!ogl_app_supportbits2", "" }, - { "nv!ogl_assumetextureismipmappedatcreation", "" }, - { "nv!ogl_b1fb0f01", "" }, - { "nv!ogl_b3edd5", "" }, - { "nv!ogl_b40d9e03d", "" }, - { "nv!ogl_b7f6275666", "" }, - { "nv!ogl_b812c1", "" }, - { "nv!ogl_ba14ba1a", "" }, - { "nv!ogl_ba14ba1b", "" }, - { "nv!ogl_bd7559", "" }, - { "nv!ogl_bd755a", "" }, - { "nv!ogl_bd755c", "" }, - { "nv!ogl_bd755d", "" }, - { "nv!ogl_be58bb", "" }, - { "nv!ogl_be92cb", "" }, - { "nv!ogl_beefcba3", "" }, - { "nv!ogl_beefcba4", "" }, - { "nv!ogl_c023777f", "" }, - { "nv!ogl_c09dc8", "" }, - { "nv!ogl_c0d340", "" }, - { "nv!ogl_c2ff374c", "" }, - { "nv!ogl_c5e9d7a3", "" }, - { "nv!ogl_c5e9d7a4", "" }, - { "nv!ogl_c5e9d7b4", "" }, - { "nv!ogl_c618f9", "" }, - { "nv!ogl_ca345840", "" }, - { "nv!ogl_cachedisable", "" }, - { "nv!ogl_channelpriorityoverride", "" }, - { "nv!ogl_cleardatastorevidmem", "" }, - { "nv!ogl_cmdbufmemoryspaceenables", "" }, - { "nv!ogl_cmdbufminwords", "" }, - { "nv!ogl_cmdbufsizewords", "" }, - { "nv!ogl_conformantblitframebufferscissor", "" }, - { "nv!ogl_conformantincompletetextures", "" }, - { "nv!ogl_copybuffermethod", "" }, - { "nv!ogl_cubemapaniso", "" }, - { "nv!ogl_cubemapfiltering", "" }, - { "nv!ogl_d0e9a4d7", "" }, - { "nv!ogl_d13733f12", "" }, - { "nv!ogl_d1b399", "" }, - { "nv!ogl_d2983c32", "" }, - { "nv!ogl_d2983c33", "" }, - { "nv!ogl_d2e71b", "" }, - { "nv!ogl_d377dc", "" }, - { "nv!ogl_d377dd", "" }, - { "nv!ogl_d489f4", "" }, - { "nv!ogl_d4bce1", "" }, - { "nv!ogl_d518cb", "" }, - { "nv!ogl_d518cd", "" }, - { "nv!ogl_d518ce", "" }, - { "nv!ogl_d518d0", "" }, - { "nv!ogl_d518d1", "" }, - { "nv!ogl_d518d2", "" }, - { "nv!ogl_d518d3", "" }, - { "nv!ogl_d518d4", "" }, - { "nv!ogl_d518d5", "" }, - { "nv!ogl_d59eda", "" }, - { "nv!ogl_d83cbd", "" }, - { "nv!ogl_d8e777", "" }, - { "nv!ogl_debug_level", "" }, - { "nv!ogl_debug_mask", "" }, - { "nv!ogl_debug_options", "" }, - { "nv!ogl_devshmpageableallocations", "" }, - { "nv!ogl_df1f9812", "" }, - { "nv!ogl_df783c", "" }, - { "nv!ogl_diagenable", "" }, - { "nv!ogl_disallowcemask", "" }, - { "nv!ogl_disallowz16", "" }, - { "nv!ogl_dlmemoryspaceenables", "" }, - { "nv!ogl_e0bfec", "" }, - { "nv!ogl_e433456d", "" }, - { "nv!ogl_e435563f", "" }, - { "nv!ogl_e4cd9c", "" }, - { "nv!ogl_e5c972", "" }, - { "nv!ogl_e639ef", "" }, - { "nv!ogl_e802af", "" }, - { "nv!ogl_eae964", "" }, - { "nv!ogl_earlytexturehwallocation", "" }, - { "nv!ogl_eb92a3", "" }, - { "nv!ogl_ebca56", "" }, - { "nv!ogl_expert_detail_level", "" }, - { "nv!ogl_expert_output_mask", "" }, - { "nv!ogl_expert_report_mask", "" }, - { "nv!ogl_extensionstringnvarch", "" }, - { "nv!ogl_extensionstringversion", "" }, - { "nv!ogl_f00f1938", "" }, - { "nv!ogl_f10736", "" }, - { "nv!ogl_f1846870", "" }, - { "nv!ogl_f33bc370", "" }, - { "nv!ogl_f392a874", "" }, - { "nv!ogl_f49ae8", "" }, - { "nv!ogl_fa345cce", "" }, - { "nv!ogl_fa35cc4", "" }, - { "nv!ogl_faa14a", "" }, - { "nv!ogl_faf8a723", "" }, - { "nv!ogl_fastgs", "" }, - { "nv!ogl_fbf4ac45", "" }, - { "nv!ogl_fbo_blit_ignore_srgb", "" }, - { "nv!ogl_fc64c7", "" }, - { "nv!ogl_ff54ec97", "" }, - { "nv!ogl_ff54ec98", "" }, - { "nv!ogl_forceexitprocessdetach", "" }, - { "nv!ogl_forcerequestedesversion", "" }, - { "nv!ogl_glsynctovblank", "" }, - { "nv!ogl_gvitimeoutcontrol", "" }, - { "nv!ogl_hcctrl", "" }, - { "nv!ogl_hwstate_per_ctx", "" }, - { "nv!ogl_machinecachelimit", "" }, - { "nv!ogl_maxframesallowed", "" }, - { "nv!ogl_memmgrcachedalloclimit", "" }, - { "nv!ogl_memmgrcachedalloclimitratio", "" }, - { "nv!ogl_memmgrsysheapalloclimit", "" }, - { "nv!ogl_memmgrsysheapalloclimitratio", "" }, - { "nv!ogl_memmgrvidheapalloclimit", "" }, - { "nv!ogl_mosaic_clip_to_subdev", "" }, - { "nv!ogl_mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!ogl_mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!ogl_overlaymergeblittimerms", "" }, - { "nv!ogl_perfmon_mode", "" }, - { "nv!ogl_pixbar_mode", "" }, - { "nv!ogl_qualityenhancements", "" }, - { "nv!ogl_r27s18q28", "" }, - { "nv!ogl_r2d7c1d8", "" }, - { "nv!ogl_renderer", "" }, - { "nv!ogl_renderqualityflags", "" }, - { "nv!ogl_s3tcquality", "" }, - { "nv!ogl_shaderatomics", "" }, - { "nv!ogl_shadercacheinitsize", "" }, - { "nv!ogl_shader_disk_cache_path", "" }, - { "nv!ogl_shader_disk_cache_read_only", "" }, - { "nv!ogl_shaderobjects", "" }, - { "nv!ogl_shaderportabilitywarnings", "" }, - { "nv!ogl_shaderwarningsaserrors", "" }, - { "nv!ogl_skiptexturehostcopies", "" }, - { "nv!ogl_sli_dli_control", "" }, - { "nv!ogl_sparsetexture", "" }, - { "nv!ogl_spinlooptimeout", "" }, - { "nv!ogl_sync_to_vblank", "" }, - { "nv!ogl_sysheapreuseratio", "" }, - { "nv!ogl_sysmemtexturepromotion", "" }, - { "nv!ogl_targetflushcount", "" }, - { "nv!ogl_tearingfreeswappresent", "" }, - { "nv!ogl_texclampbehavior", "" }, - { "nv!ogl_texlodbias", "" }, - { "nv!ogl_texmemoryspaceenables", "" }, - { "nv!ogl_textureprecache", "" }, - { "nv!ogl_threadcontrol", "" }, - { "nv!ogl_threadcontrol2", "" }, - { "nv!ogl_usegvievents", "" }, - { "nv!ogl_vbomemoryspaceenables", "" }, - { "nv!ogl_vertexlimit", "" }, - { "nv!ogl_vidheapreuseratio", "" }, - { "nv!ogl_vpipe", "" }, - { "nv!ogl_vpipeformatbloatlimit", "" }, - { "nv!ogl_wglmessageboxonabort", "" }, - { "nv!ogl_writeinfolog", "" }, - { "nv!ogl_writeprogramobjectassembly", "" }, - { "nv!ogl_writeprogramobjectsource", "" }, - { "nv!ogl_xnvadapterpresent", "" }, - { "nv!ogl_yield", "" }, - { "nv!ogl_yieldfunction", "" }, - { "nv!ogl_yieldfunctionfast", "" }, - { "nv!ogl_yieldfunctionslow", "" }, - { "nv!ogl_yieldfunctionwaitfordcqueue", "" }, - { "nv!ogl_yieldfunctionwaitforframe", "" }, - { "nv!ogl_yieldfunctionwaitforgpu", "" }, - { "nv!ogl_zbctableaddhysteresis", "" }, - { "nv!overlaymergeblittimerms", "" }, - { "nv!perfmon_mode", "" }, - { "nv!persist.sys.display.resolution", "" }, - { "nv!persist.tegra.composite.fallb", "" }, - { "nv!persist.tegra.composite.policy", "" }, - { "nv!persist.tegra.composite.range", "" }, - { "nv!persist.tegra.compositor", "" }, - { "nv!persist.tegra.compositor.virt", "" }, - { "nv!persist.tegra.compression", "" }, - { "nv!persist.tegra.cursor.enable", "" }, - { "nv!persist.tegra.didim.enable", "" }, - { "nv!persist.tegra.didim.normal", "" }, - { "nv!persist.tegra.didim.video", "" }, - { "nv!persist.tegra.disp.heads", "" }, - { "nv!persist.tegra.gamma_correction", "" }, - { "nv!persist.tegra.gpu_mapping_cache", "" }, - { "nv!persist.tegra.grlayout", "" }, - { "nv!persist.tegra.hdmi.2020.10", "" }, - { "nv!persist.tegra.hdmi.2020.fake", "" }, - { "nv!persist.tegra.hdmi.2020.force", "" }, - { "nv!persist.tegra.hdmi.autorotate", "" }, - { "nv!persist.tegra.hdmi.hdr.fake", "" }, - { "nv!persist.tegra.hdmi.ignore_ratio", "" }, - { "nv!persist.tegra.hdmi.limit.clock", "" }, - { "nv!persist.tegra.hdmi.only_16_9", "" }, - { "nv!persist.tegra.hdmi.range", "" }, - { "nv!persist.tegra.hdmi.resolution", "" }, - { "nv!persist.tegra.hdmi.underscan", "" }, - { "nv!persist.tegra.hdmi.yuv.422", "" }, - { "nv!persist.tegra.hdmi.yuv.444", "" }, - { "nv!persist.tegra.hdmi.yuv.enable", "" }, - { "nv!persist.tegra.hdmi.yuv.force", "" }, - { "nv!persist.tegra.hwc.nvdc", "" }, - { "nv!persist.tegra.idle.minimum_fps", "" }, - { "nv!persist.tegra.panel.rotation", "" }, - { "nv!persist.tegra.scan_props", "" }, - { "nv!persist.tegra.stb.mode", "" }, - { "nv!persist.tegra.zbc_override", "" }, - { "nv!pixbar_mode", "" }, - { "nv!qualityenhancements", "" }, - { "nv!r27s18q28", "" }, - { "nv!r2d7c1d8", "" }, - { "nv!renderer", "" }, - { "nv!renderqualityflags", "" }, - { "nv!rmos_debug_mask", "" }, - { "nv!rmos_set_production_mode", "" }, - { "nv!s3tcquality", "" }, - { "nv!shaderatomics", "" }, - { "nv!shadercacheinitsize", "" }, - { "nv!shader_disk_cache_path", "" }, - { "nv!shader_disk_cache_read_only", "" }, - { "nv!shaderobjects", "" }, - { "nv!shaderportabilitywarnings", "" }, - { "nv!shaderwarningsaserrors", "" }, - { "nv!skiptexturehostcopies", "" }, - { "nv!sli_dli_control", "" }, - { "nv!sparsetexture", "" }, - { "nv!spinlooptimeout", "" }, - { "nv!sync_to_vblank", "" }, - { "nv!sysheapreuseratio", "" }, - { "nv!sysmemtexturepromotion", "" }, - { "nv!targetflushcount", "" }, - { "nv!tearingfreeswappresent", "" }, - { "nv!tegra.refresh", "" }, - { "nv!texclampbehavior", "" }, - { "nv!texlodbias", "" }, - { "nv!texmemoryspaceenables", "" }, - { "nv!textureprecache", "" }, - { "nv!threadcontrol", "" }, - { "nv!threadcontrol2", "" }, - { "nv!tvmr.avp.logs", "" }, - { "nv!tvmr.buffer.logs", "" }, - { "nv!tvmr.dec.prof", "" }, - { "nv!tvmr.deint.logs", "" }, - { "nv!tvmr.dfs.logs", "" }, - { "nv!tvmr.ffprof.logs", "" }, - { "nv!tvmr.game.stream", "" }, - { "nv!tvmr.general.logs", "" }, - { "nv!tvmr.input.dump", "" }, - { "nv!tvmr.seeking.logs", "" }, - { "nv!tvmr.ts_pulldown", "" }, - { "nv!usegvievents", "" }, - { "nv!vbomemoryspaceenables", "" }, - { "nv!vcc_debug_ip", "" }, - { "nv!vcc_verbose_level", "" }, - { "nv!vertexlimit", "" }, - { "nv!viccomposer.filter", "" }, - { "nv!videostats-enable", "" }, - { "nv!vidheapreuseratio", "" }, - { "nv!vpipe", "" }, - { "nv!vpipeformatbloatlimit", "" }, - { "nv!wglmessageboxonabort", "" }, - { "nv!writeinfolog", "" }, - { "nv!writeprogramobjectassembly", "" }, - { "nv!writeprogramobjectsource", "" }, - { "nv!xnvadapterpresent", "" }, - { "nv!yield", "" }, - { "nv!yieldfunction", "" }, - { "nv!yieldfunctionfast", "" }, - { "nv!yieldfunctionslow", "" }, - { "nv!yieldfunctionwaitfordcqueue", "" }, - { "nv!yieldfunctionwaitforframe", "" }, - { "nv!yieldfunctionwaitforgpu", "" }, - { "nv!zbctableaddhysteresis", "" }, - { "pcm!enable", true }, - { "pctl!intermittent_task_interval_seconds", 21600 }, - { "prepo!devmenu_prepo_page_view", false }, - { "prepo!background_processing", true }, - { "prepo!transmission_interval_min", 10 }, - { "prepo!transmission_retry_interval", 3600 }, - { "psm!evaluation_log_enabled", false }, - { "snap_shot_dump!auto_dump", false }, - { "snap_shot_dump!output_dir", "%USERPROFILE%/Documents/Nintendo/NXDMP" }, - { "snap_shot_dump!full_dump", false }, - { "systemconfig!field_testing", false }, - { "systemconfig!exhivision", false }, - { "systempowerstate!always_reboot", false }, - { "systempowerstate!power_state_message_emulation_trigger_time", 0 }, - { "systempowerstate!power_state_message_to_emulate", 0 }, - { "target_manager!device_name", "" }, - { "vulnerability!needs_update_vulnerability_policy", 0 }, - { "apm!performance_mode_policy", "auto" }, - { "apm!sdev_throttling_enabled", true }, - { "apm!sdev_throttling_additional_delay_us", 16000 }, - { "apm!battery_draining_enabled", false }, - { "apm!sdev_cpu_overclock_enabled", false }, - { "bcat!production_mode", true }, - { "bpc!enable_quasi_off", true }, - { "bsp0!usb", "UDS" }, - { "bsp0!tm_transport", "USB" }, - { "bluetooth_debug!skip_boot", false }, - { "contents_delivery!enable_debug_api", false }, - { "eupld!upload_enabled", true }, - { "fatal!transition_to_fatal", true }, - { "fatal!show_extra_info", false }, - { "gpu_core_dump!auto_dump", false }, - { "hid_debug!enables_debugpad", false }, - { "hid_debug!manages_devices", true }, - { "hid_debug!emulate_future_device", false }, - { "hid_debug!emulate_firmware_update_failure", false }, - { "hid_debug!emulate_mcu_hardware_error", false }, - { "hid_debug!firmware_update_failure_emulation_mode", 0 }, - { "jit_debug!enable_jit_debug", false }, - { "npns!background_processing", true }, - { "npns!logmanager_redirection", true }, - { "npns!sleep_processing_timeout", 30 }, - { "npns!sleep_periodic_interval", 10800 }, - { "npns!sleep_max_try_count", 5 }, - { "npns!test_mode", false }, - { "ns.applet!overlay_applet_id", "0x010000000000100c" }, - { "ns.applet!system_applet_id", "0x0100000000001000" }, - { "ns.applet!shop_applet_id", "0x010000000000100b" }, - { "ns.autoboot!enabled", true }, - { "ns.pseudodeviceid!reset_pseudo_device_id", false }, - { "nsd!environment_identifier", "lp1" }, - { "nsd!test_mode", false }, - { "ntc!is_autonomic_correction_enabled", true }, - { "ntc!autonomic_correction_interval_seconds", 432000 }, - { "ntc!autonomic_correction_failed_retry_interval_seconds", 1800 }, - { "ntc!autonomic_correction_immediate_try_count_max", 4 }, - { "ntc!autonomic_correction_immediate_try_interval_milliseconds", 5000 }, - { "nv!nv_graphics_firmware_memory_margin", false }, - { "omm!operation_mode_policy", "auto" }, - { "omm!sleep_fade_in_ms", 50 }, - { "omm!sleep_fade_out_ms", 100 }, - { "omm!charging_sign_ms", 3000 }, - { "omm!low_battery_sign_ms", 3000 }, - { "omm!sign_fade_in_ms", 0 }, - { "omm!sign_fade_out_ms", 400 }, - { "omm!sign_wait_layer_visible_ms", 100 }, - { "omm!startup_fade_in_ms", 200 }, - { "omm!startup_fade_out_ms", 400 }, - { "omm!backlight_off_ms_on_handheld_switch", 150 }, - { "omm!sleep_on_ac_ok_boot", true }, - { "pdm!save_playlog", true }, - { "productinfo!product_name", "Nintendo Switch" }, - { "productinfo!cec_osd_name", "NintendoSwitch" }, - { "ro!ease_nro_restriction", false }, - { "settings_debug!is_debug_mode_enabled", false }, - { "systemreport!enabled", true }, - { "systemsleep!enter_sleep", true }, - { "systemsleep!enter_sc7", true }, - { "systemsleep!keep_vdd_core", true }, - { "systemsleep!disable_tma_sleep", false }, - { "systemsleep!disable_auto_sleep", false }, - { "systemsleep!override_auto_sleep_time", 0 }, - { "systemsleep!sleep_pending_time_ms", 15000 }, - { "systemsleep!hush_time_after_brief_power_button_press_ms", 1000 }, - { "systemsleep!transition_timeout_sec", 60 }, - { "systemsleep!dummy_event_auto_wake", false }, - { "systemupdate!debug_id", "0x0000000000000000" }, - { "systemupdate!debug_version", 0 }, - { "systemupdate!bgnup_retry_seconds", 60 }, - { "systemupdate!enable_background_download_stress_testing", false }, - { "systemupdate!debug_id_for_content_delivery", "0x0000000000000000" }, - { "systemupdate!debug_version_for_content_delivery", 0 }, - { "systemupdate!assumed_system_applet_version", 0 }, - { "tc!iir_filter_gain_soc", 100 }, - { "tc!iir_filter_gain_pcb", 100 }, - { "tc!tskin_soc_coefficients_handheld", "[5464, 174190]" }, - { "tc!tskin_soc_coefficients_console", "[6182, 112480]" }, - { "tc!tskin_pcb_coefficients_handheld", "[5464, 174190]" }, - { "tc!tskin_pcb_coefficients_console", "[6182, 112480]" }, - { "tc!tskin_select", "both" }, - { "tc!tskin_rate_table_handheld", "[[-1000000, 40000, 0, 0], [36000, 43000, 51, 51], [43000, 48000, 51, 102], [48000, 53000, 102, 153], [53000, 1000000, 153, 153], [48000, 1000000, 153, 153]]" }, - { "tc!tskin_rate_table_console", "[[-1000000, 43000, 51, 51], [43000, 53000, 51, 153], [53000, 58000, 153, 255], [58000, 1000000, 255, 255]]" }, - { "tc!rate_select", "both" }, - { "tc!log_enabled", false }, - { "tc!sleep_enabled", true }, - { "time!standard_steady_clock_test_offset_minutes", 0 }, - { "time!standard_steady_clock_rtc_update_interval_minutes", 5 }, - { "time!standard_network_clock_sufficient_accuracy_minutes", 43200 }, - { "usb!usb30_force_enabled", false }, - { "wlan_debug!skip_wlan_boot", false }, - }; - } -} +using System.Collections.Generic; + +namespace Ryujinx.Core.OsHle.Services.Set +{ + static class NxSettings + { + //Generated automatically from a Switch 3.0 config file (Tid: 0100000000000818). + public static Dictionary Settings = new Dictionary() + { + { "account!na_required_for_network_service", true }, + { "account.daemon!background_awaking_periodicity", 10800 }, + { "account.daemon!schedule_periodicity", 3600 }, + { "account.daemon!profile_sync_interval", 18000 }, + { "account.daemon!na_info_refresh_interval", 46800 }, + { "am.display!transition_layer_enabled", true }, + { "am.gpu!gpu_scheduling_enabled", true }, + { "am.gpu!gpu_scheduling_frame_time_us", 116666 }, + { "am.gpu!gpu_scheduling_fg_app_us", 116166 }, + { "am.gpu!gpu_scheduling_bg_app_us", 104500 }, + { "am.gpu!gpu_scheduling_oa_us", 500 }, + { "am.gpu!gpu_scheduling_fg_sa_us", 11666 }, + { "am.gpu!gpu_scheduling_bg_sa_us", 0 }, + { "am.gpu!gpu_scheduling_fg_la_us", 11666 }, + { "am.gpu!gpu_scheduling_partial_fg_la_us", 2000 }, + { "am.gpu!gpu_scheduling_bg_la_us", 0 }, + { "audio!audren_log_enabled", false }, + { "audio!audout_log_enabled", false }, + { "audio!audin_log_enabled", false }, + { "audio!hwopus_log_enabled", false }, + { "audio!adsp_log_enabled", false }, + { "audio!suspend_for_debugger_enabled", false }, + { "audio!uac_speaker_enabled", false }, + { "bgtc!enable_halfawake", 1 }, + { "bgtc!enable_battery_saver", 1 }, + { "bgtc!leaving_halfawake_margin", 3 }, + { "bgtc!battery_threshold_save", 20 }, + { "bgtc!battery_threshold_stop", 20 }, + { "bgtc!minimum_interval_normal", 1800 }, + { "bgtc!minimum_interval_save", 86400 }, + { "boot!force_maintenance", false }, + { "capsrv!screenshot_layerstack", "screenshot" }, + { "capsrv!enable_album_screenshot_filedata_verification", true }, + { "devmenu!enable_application_update", true }, + { "devmenu!enable_exhibition_mode", false }, + { "eclct!analytics_override", false }, + { "eclct!analytics_pollperiod", 86400 }, + { "err!applet_auto_close", false }, + { "friends!background_processing", true }, + { "htc!disconnection_emulation", false }, + { "idle!dim_level_percent_lcd", 10 }, + { "idle!dim_level_percent_tv", 70 }, + { "lbl!force_disable_als", false }, + { "lm!enable_sd_card_logging", false }, + { "lm!sd_card_log_output_directory", "NxBinLogs" }, + { "mii!is_db_test_mode_enabled", false }, + { "news!system_version", 2 }, + { "nfp!not_locked_tag", true }, + { "nfp!play_report", false }, + { "nifm!is_communication_control_enabled_for_test", false }, + { "nifm!connection_test_timeout", 45000 }, + { "nifm!apply_config_timeout", 30000 }, + { "nifm!ethernet_adapter_standby_time", 10000 }, + { "nim.install!prefer_delta_evenif_inefficient", false }, + { "nim.install!apply_delta_stress_storage", 0 }, + { "ns.notification!retry_interval", 60 }, + { "ns.notification!enable_network_update", true }, + { "ns.notification!enable_download_task_list", true }, + { "ns.notification!enable_version_list", true }, + { "ns.notification!enable_random_wait", true }, + { "ns.notification!debug_waiting_limit", 0 }, + { "ns.notification!enable_request_on_cold_boot", true }, + { "ns.sdcard!mount_sdcard", true }, + { "ns.sdcard!compare_sdcard", 0 }, + { "ns.gamecard!mount_gamecard_result_value", 0 }, + { "ns.gamecard!try_gamecard_access_result_value", 0 }, + { "nv!00008600", "" }, + { "nv!0007b25e", "" }, + { "nv!0083e1", "" }, + { "nv!01621887", "" }, + { "nv!03134743", "" }, + { "nv!0356afd0", "" }, + { "nv!0356afd1", "" }, + { "nv!0356afd2", "" }, + { "nv!0356afd3", "" }, + { "nv!094313", "" }, + { "nv!0x04dc09", "" }, + { "nv!0x111133", "" }, + { "nv!0x1aa483", "" }, + { "nv!0x1cb1cf", "" }, + { "nv!0x1cb1d0", "" }, + { "nv!0x1e3221", "" }, + { "nv!0x300fc8", "" }, + { "nv!0x301fc8", "" }, + { "nv!0x302fc8", "" }, + { "nv!0x3eec59", "" }, + { "nv!0x46b3ed", "" }, + { "nv!0x523dc0", "" }, + { "nv!0x523dc1", "" }, + { "nv!0x523dc2", "" }, + { "nv!0x523dc3", "" }, + { "nv!0x523dc4", "" }, + { "nv!0x523dc5", "" }, + { "nv!0x523dc6", "" }, + { "nv!0x523dd0", "" }, + { "nv!0x523dd1", "" }, + { "nv!0x523dd3", "" }, + { "nv!0x5344bb", "" }, + { "nv!0x555237", "" }, + { "nv!0x58a234", "" }, + { "nv!0x7b4428", "" }, + { "nv!0x923dc0", "" }, + { "nv!0x923dc1", "" }, + { "nv!0x923dc2", "" }, + { "nv!0x923dc3", "" }, + { "nv!0x923dc4", "" }, + { "nv!0x923dd3", "" }, + { "nv!0x9abdc5", "" }, + { "nv!0x9abdc6", "" }, + { "nv!0xaaa36c", "" }, + { "nv!0xb09da0", "" }, + { "nv!0xb09da1", "" }, + { "nv!0xb09da2", "" }, + { "nv!0xb09da3", "" }, + { "nv!0xb09da4", "" }, + { "nv!0xb09da5", "" }, + { "nv!0xb0b348", "" }, + { "nv!0xb0b349", "" }, + { "nv!0xbb558f", "" }, + { "nv!0xbd10fb", "" }, + { "nv!0xc32ad3", "" }, + { "nv!0xce2348", "" }, + { "nv!0xcfd81f", "" }, + { "nv!0xe0036b", "" }, + { "nv!0xe01f2d", "" }, + { "nv!0xe17212", "" }, + { "nv!0xeae966", "" }, + { "nv!0xed4f82", "" }, + { "nv!0xf12335", "" }, + { "nv!0xf12336", "" }, + { "nv!10261989", "" }, + { "nv!1042d483", "" }, + { "nv!10572898", "" }, + { "nv!115631", "" }, + { "nv!12950094", "" }, + { "nv!1314f311", "" }, + { "nv!1314f312", "" }, + { "nv!13279512", "" }, + { "nv!13813496", "" }, + { "nv!14507179", "" }, + { "nv!15694569", "" }, + { "nv!16936964", "" }, + { "nv!17aa230c", "" }, + { "nv!182054", "" }, + { "nv!18273275", "" }, + { "nv!18273276", "" }, + { "nv!1854d03b", "" }, + { "nv!18add00d", "" }, + { "nv!19156670", "" }, + { "nv!19286545", "" }, + { "nv!1a298e9f", "" }, + { "nv!1acf43fe", "" }, + { "nv!1bda43fe", "" }, + { "nv!1c3b92", "" }, + { "nv!21509920", "" }, + { "nv!215323457", "" }, + { "nv!2165ad", "" }, + { "nv!2165ae", "" }, + { "nv!21be9c", "" }, + { "nv!233264316", "" }, + { "nv!234557580", "" }, + { "nv!23cd0e", "" }, + { "nv!24189123", "" }, + { "nv!2443266", "" }, + { "nv!25025519", "" }, + { "nv!255e39", "" }, + { "nv!2583364", "" }, + { "nv!2888c1", "" }, + { "nv!28ca3e", "" }, + { "nv!29871243", "" }, + { "nv!2a1f64", "" }, + { "nv!2dc432", "" }, + { "nv!2de437", "" }, + { "nv!2f3bb89c", "" }, + { "nv!2fd652", "" }, + { "nv!3001ac", "" }, + { "nv!31298772", "" }, + { "nv!313233", "" }, + { "nv!31f7d603", "" }, + { "nv!320ce4", "" }, + { "nv!32153248", "" }, + { "nv!32153249", "" }, + { "nv!335bca", "" }, + { "nv!342abb", "" }, + { "nv!34dfe6", "" }, + { "nv!34dfe7", "" }, + { "nv!34dfe8", "" }, + { "nv!34dfe9", "" }, + { "nv!35201578", "" }, + { "nv!359278", "" }, + { "nv!37f53a", "" }, + { "nv!38144972", "" }, + { "nv!38542646", "" }, + { "nv!3b74c9", "" }, + { "nv!3c136f", "" }, + { "nv!3cf72823", "" }, + { "nv!3d7af029", "" }, + { "nv!3ff34782", "" }, + { "nv!4129618", "" }, + { "nv!4189fac3", "" }, + { "nv!420bd4", "" }, + { "nv!42a699", "" }, + { "nv!441369", "" }, + { "nv!4458713e", "" }, + { "nv!4554b6", "" }, + { "nv!457425", "" }, + { "nv!4603b207", "" }, + { "nv!46574957", "" }, + { "nv!46574958", "" }, + { "nv!46813529", "" }, + { "nv!46f1e13d", "" }, + { "nv!47534c43", "" }, + { "nv!48550336", "" }, + { "nv!48576893", "" }, + { "nv!48576894", "" }, + { "nv!4889ac02", "" }, + { "nv!49005740", "" }, + { "nv!49867584", "" }, + { "nv!49960973", "" }, + { "nv!4a5341", "" }, + { "nv!4f4e48", "" }, + { "nv!4f8a0a", "" }, + { "nv!50299698", "" }, + { "nv!50299699", "" }, + { "nv!50361291", "" }, + { "nv!5242ae", "" }, + { "nv!53d30c", "" }, + { "nv!56347a", "" }, + { "nv!563a95f1", "" }, + { "nv!573823", "" }, + { "nv!58027529", "" }, + { "nv!5d2d63", "" }, + { "nv!5f7e3b", "" }, + { "nv!60461793", "" }, + { "nv!60d355", "" }, + { "nv!616627aa", "" }, + { "nv!62317182", "" }, + { "nv!6253fa2e", "" }, + { "nv!64100768", "" }, + { "nv!64100769", "" }, + { "nv!64100770", "" }, + { "nv!647395", "" }, + { "nv!66543234", "" }, + { "nv!67674763", "" }, + { "nv!67739784", "" }, + { "nv!68fb9c", "" }, + { "nv!69801276", "" }, + { "nv!6af9fa2f", "" }, + { "nv!6af9fa3f", "" }, + { "nv!6af9fa4f", "" }, + { "nv!6bd8c7", "" }, + { "nv!6c7691", "" }, + { "nv!6d4296ce", "" }, + { "nv!6dd7e7", "" }, + { "nv!6dd7e8", "" }, + { "nv!6fe11ec1", "" }, + { "nv!716511763", "" }, + { "nv!72504593", "" }, + { "nv!73304097", "" }, + { "nv!73314098", "" }, + { "nv!74095213", "" }, + { "nv!74095213a", "" }, + { "nv!74095213b", "" }, + { "nv!74095214", "" }, + { "nv!748f9649", "" }, + { "nv!75494732", "" }, + { "nv!78452832", "" }, + { "nv!784561", "" }, + { "nv!78e16b9c", "" }, + { "nv!79251225", "" }, + { "nv!7c128b", "" }, + { "nv!7ccd93", "" }, + { "nv!7df8d1", "" }, + { "nv!800c2310", "" }, + { "nv!80546710", "" }, + { "nv!80772310", "" }, + { "nv!808ee280", "" }, + { "nv!81131154", "" }, + { "nv!81274457", "" }, + { "nv!8292291f", "" }, + { "nv!83498426", "" }, + { "nv!84993794", "" }, + { "nv!84995585", "" }, + { "nv!84a0a0", "" }, + { "nv!852142", "" }, + { "nv!85612309", "" }, + { "nv!85612310", "" }, + { "nv!85612311", "" }, + { "nv!85612312", "" }, + { "nv!8623ff27", "" }, + { "nv!87364952", "" }, + { "nv!87f6275666", "" }, + { "nv!886748", "" }, + { "nv!89894423", "" }, + { "nv!8ad8a75", "" }, + { "nv!8ad8ad00", "" }, + { "nv!8bb815", "" }, + { "nv!8bb817", "" }, + { "nv!8bb818", "" }, + { "nv!8bb819", "" }, + { "nv!8e640cd1", "" }, + { "nv!8f34971a", "" }, + { "nv!8f773984", "" }, + { "nv!8f7a7d", "" }, + { "nv!902486209", "" }, + { "nv!90482571", "" }, + { "nv!91214835", "" }, + { "nv!912848290", "" }, + { "nv!915e56", "" }, + { "nv!92179063", "" }, + { "nv!92179064", "" }, + { "nv!92179065", "" }, + { "nv!92179066", "" }, + { "nv!92350358", "" }, + { "nv!92809063", "" }, + { "nv!92809064", "" }, + { "nv!92809065", "" }, + { "nv!92809066", "" }, + { "nv!92920143", "" }, + { "nv!93a89b12", "" }, + { "nv!93a89c0b", "" }, + { "nv!94812574", "" }, + { "nv!95282304", "" }, + { "nv!95394027", "" }, + { "nv!959b1f", "" }, + { "nv!9638af", "" }, + { "nv!96fd59", "" }, + { "nv!97f6275666", "" }, + { "nv!97f6275667", "" }, + { "nv!97f6275668", "" }, + { "nv!97f6275669", "" }, + { "nv!97f627566a", "" }, + { "nv!97f627566b", "" }, + { "nv!97f627566d", "" }, + { "nv!97f627566e", "" }, + { "nv!97f627566f", "" }, + { "nv!97f6275670", "" }, + { "nv!97f6275671", "" }, + { "nv!97f727566e", "" }, + { "nv!98480775", "" }, + { "nv!98480776", "" }, + { "nv!98480777", "" }, + { "nv!992431", "" }, + { "nv!9aa29065", "" }, + { "nv!9af32c", "" }, + { "nv!9af32d", "" }, + { "nv!9af32e", "" }, + { "nv!9c108b71", "" }, + { "nv!9f279065", "" }, + { "nv!a01bc728", "" }, + { "nv!a13b46c80", "" }, + { "nv!a22eb0", "" }, + { "nv!a2fb451e", "" }, + { "nv!a3456abe", "" }, + { "nv!a7044887", "" }, + { "nv!a7149200", "" }, + { "nv!a766215670", "" }, + { "nv!aac_drc_boost", "" }, + { "nv!aac_drc_cut", "" }, + { "nv!aac_drc_enc_target_level", "" }, + { "nv!aac_drc_heavy", "" }, + { "nv!aac_drc_reference_level", "" }, + { "nv!aalinegamma", "" }, + { "nv!aalinetweaks", "" }, + { "nv!ab34ee01", "" }, + { "nv!ab34ee02", "" }, + { "nv!ab34ee03", "" }, + { "nv!ac0274", "" }, + { "nv!af73c63e", "" }, + { "nv!af73c63f", "" }, + { "nv!af9927", "" }, + { "nv!afoverride", "" }, + { "nv!allocdeviceevents", "" }, + { "nv!applicationkey", "" }, + { "nv!appreturnonlybasicglsltype", "" }, + { "nv!app_softimage", "" }, + { "nv!app_supportbits2", "" }, + { "nv!assumetextureismipmappedatcreation", "" }, + { "nv!b1fb0f01", "" }, + { "nv!b3edd5", "" }, + { "nv!b40d9e03d", "" }, + { "nv!b7f6275666", "" }, + { "nv!b812c1", "" }, + { "nv!ba14ba1a", "" }, + { "nv!ba14ba1b", "" }, + { "nv!bd7559", "" }, + { "nv!bd755a", "" }, + { "nv!bd755c", "" }, + { "nv!bd755d", "" }, + { "nv!be58bb", "" }, + { "nv!be92cb", "" }, + { "nv!beefcba3", "" }, + { "nv!beefcba4", "" }, + { "nv!c023777f", "" }, + { "nv!c09dc8", "" }, + { "nv!c0d340", "" }, + { "nv!c2ff374c", "" }, + { "nv!c5e9d7a3", "" }, + { "nv!c5e9d7a4", "" }, + { "nv!c5e9d7b4", "" }, + { "nv!c618f9", "" }, + { "nv!ca345840", "" }, + { "nv!cachedisable", "" }, + { "nv!cast.on", "" }, + { "nv!cde", "" }, + { "nv!channelpriorityoverride", "" }, + { "nv!cleardatastorevidmem", "" }, + { "nv!cmdbufmemoryspaceenables", "" }, + { "nv!cmdbufminwords", "" }, + { "nv!cmdbufsizewords", "" }, + { "nv!conformantblitframebufferscissor", "" }, + { "nv!conformantincompletetextures", "" }, + { "nv!copybuffermethod", "" }, + { "nv!cubemapaniso", "" }, + { "nv!cubemapfiltering", "" }, + { "nv!d0e9a4d7", "" }, + { "nv!d13733f12", "" }, + { "nv!d1b399", "" }, + { "nv!d2983c32", "" }, + { "nv!d2983c33", "" }, + { "nv!d2e71b", "" }, + { "nv!d377dc", "" }, + { "nv!d377dd", "" }, + { "nv!d489f4", "" }, + { "nv!d4bce1", "" }, + { "nv!d518cb", "" }, + { "nv!d518cd", "" }, + { "nv!d518ce", "" }, + { "nv!d518d0", "" }, + { "nv!d518d1", "" }, + { "nv!d518d2", "" }, + { "nv!d518d3", "" }, + { "nv!d518d4", "" }, + { "nv!d518d5", "" }, + { "nv!d59eda", "" }, + { "nv!d83cbd", "" }, + { "nv!d8e777", "" }, + { "nv!debug_level", "" }, + { "nv!debug_mask", "" }, + { "nv!debug_options", "" }, + { "nv!devshmpageableallocations", "" }, + { "nv!df1f9812", "" }, + { "nv!df783c", "" }, + { "nv!diagenable", "" }, + { "nv!disallowcemask", "" }, + { "nv!disallowz16", "" }, + { "nv!dlmemoryspaceenables", "" }, + { "nv!e0bfec", "" }, + { "nv!e433456d", "" }, + { "nv!e435563f", "" }, + { "nv!e4cd9c", "" }, + { "nv!e5c972", "" }, + { "nv!e639ef", "" }, + { "nv!e802af", "" }, + { "nv!eae964", "" }, + { "nv!earlytexturehwallocation", "" }, + { "nv!eb92a3", "" }, + { "nv!ebca56", "" }, + { "nv!enable-noaud", "" }, + { "nv!enable-noavs", "" }, + { "nv!enable-prof", "" }, + { "nv!enable-sxesmode", "" }, + { "nv!enable-ulld", "" }, + { "nv!expert_detail_level", "" }, + { "nv!expert_output_mask", "" }, + { "nv!expert_report_mask", "" }, + { "nv!extensionstringnvarch", "" }, + { "nv!extensionstringversion", "" }, + { "nv!f00f1938", "" }, + { "nv!f10736", "" }, + { "nv!f1846870", "" }, + { "nv!f33bc370", "" }, + { "nv!f392a874", "" }, + { "nv!f49ae8", "" }, + { "nv!fa345cce", "" }, + { "nv!fa35cc4", "" }, + { "nv!faa14a", "" }, + { "nv!faf8a723", "" }, + { "nv!fastgs", "" }, + { "nv!fbf4ac45", "" }, + { "nv!fbo_blit_ignore_srgb", "" }, + { "nv!fc64c7", "" }, + { "nv!ff54ec97", "" }, + { "nv!ff54ec98", "" }, + { "nv!forceexitprocessdetach", "" }, + { "nv!forcerequestedesversion", "" }, + { "nv!__gl_", "" }, + { "nv!__gl_00008600", "" }, + { "nv!__gl_0007b25e", "" }, + { "nv!__gl_0083e1", "" }, + { "nv!__gl_01621887", "" }, + { "nv!__gl_03134743", "" }, + { "nv!__gl_0356afd0", "" }, + { "nv!__gl_0356afd1", "" }, + { "nv!__gl_0356afd2", "" }, + { "nv!__gl_0356afd3", "" }, + { "nv!__gl_094313", "" }, + { "nv!__gl_0x04dc09", "" }, + { "nv!__gl_0x111133", "" }, + { "nv!__gl_0x1aa483", "" }, + { "nv!__gl_0x1cb1cf", "" }, + { "nv!__gl_0x1cb1d0", "" }, + { "nv!__gl_0x1e3221", "" }, + { "nv!__gl_0x300fc8", "" }, + { "nv!__gl_0x301fc8", "" }, + { "nv!__gl_0x302fc8", "" }, + { "nv!__gl_0x3eec59", "" }, + { "nv!__gl_0x46b3ed", "" }, + { "nv!__gl_0x523dc0", "" }, + { "nv!__gl_0x523dc1", "" }, + { "nv!__gl_0x523dc2", "" }, + { "nv!__gl_0x523dc3", "" }, + { "nv!__gl_0x523dc4", "" }, + { "nv!__gl_0x523dc5", "" }, + { "nv!__gl_0x523dc6", "" }, + { "nv!__gl_0x523dd0", "" }, + { "nv!__gl_0x523dd1", "" }, + { "nv!__gl_0x523dd3", "" }, + { "nv!__gl_0x5344bb", "" }, + { "nv!__gl_0x555237", "" }, + { "nv!__gl_0x58a234", "" }, + { "nv!__gl_0x7b4428", "" }, + { "nv!__gl_0x923dc0", "" }, + { "nv!__gl_0x923dc1", "" }, + { "nv!__gl_0x923dc2", "" }, + { "nv!__gl_0x923dc3", "" }, + { "nv!__gl_0x923dc4", "" }, + { "nv!__gl_0x923dd3", "" }, + { "nv!__gl_0x9abdc5", "" }, + { "nv!__gl_0x9abdc6", "" }, + { "nv!__gl_0xaaa36c", "" }, + { "nv!__gl_0xb09da0", "" }, + { "nv!__gl_0xb09da1", "" }, + { "nv!__gl_0xb09da2", "" }, + { "nv!__gl_0xb09da3", "" }, + { "nv!__gl_0xb09da4", "" }, + { "nv!__gl_0xb09da5", "" }, + { "nv!__gl_0xb0b348", "" }, + { "nv!__gl_0xb0b349", "" }, + { "nv!__gl_0xbb558f", "" }, + { "nv!__gl_0xbd10fb", "" }, + { "nv!__gl_0xc32ad3", "" }, + { "nv!__gl_0xce2348", "" }, + { "nv!__gl_0xcfd81f", "" }, + { "nv!__gl_0xe0036b", "" }, + { "nv!__gl_0xe01f2d", "" }, + { "nv!__gl_0xe17212", "" }, + { "nv!__gl_0xeae966", "" }, + { "nv!__gl_0xed4f82", "" }, + { "nv!__gl_0xf12335", "" }, + { "nv!__gl_0xf12336", "" }, + { "nv!__gl_10261989", "" }, + { "nv!__gl_1042d483", "" }, + { "nv!__gl_10572898", "" }, + { "nv!__gl_115631", "" }, + { "nv!__gl_12950094", "" }, + { "nv!__gl_1314f311", "" }, + { "nv!__gl_1314f312", "" }, + { "nv!__gl_13279512", "" }, + { "nv!__gl_13813496", "" }, + { "nv!__gl_14507179", "" }, + { "nv!__gl_15694569", "" }, + { "nv!__gl_16936964", "" }, + { "nv!__gl_17aa230c", "" }, + { "nv!__gl_182054", "" }, + { "nv!__gl_18273275", "" }, + { "nv!__gl_18273276", "" }, + { "nv!__gl_1854d03b", "" }, + { "nv!__gl_18add00d", "" }, + { "nv!__gl_19156670", "" }, + { "nv!__gl_19286545", "" }, + { "nv!__gl_1a298e9f", "" }, + { "nv!__gl_1acf43fe", "" }, + { "nv!__gl_1bda43fe", "" }, + { "nv!__gl_1c3b92", "" }, + { "nv!__gl_21509920", "" }, + { "nv!__gl_215323457", "" }, + { "nv!__gl_2165ad", "" }, + { "nv!__gl_2165ae", "" }, + { "nv!__gl_21be9c", "" }, + { "nv!__gl_233264316", "" }, + { "nv!__gl_234557580", "" }, + { "nv!__gl_23cd0e", "" }, + { "nv!__gl_24189123", "" }, + { "nv!__gl_2443266", "" }, + { "nv!__gl_25025519", "" }, + { "nv!__gl_255e39", "" }, + { "nv!__gl_2583364", "" }, + { "nv!__gl_2888c1", "" }, + { "nv!__gl_28ca3e", "" }, + { "nv!__gl_29871243", "" }, + { "nv!__gl_2a1f64", "" }, + { "nv!__gl_2dc432", "" }, + { "nv!__gl_2de437", "" }, + { "nv!__gl_2f3bb89c", "" }, + { "nv!__gl_2fd652", "" }, + { "nv!__gl_3001ac", "" }, + { "nv!__gl_31298772", "" }, + { "nv!__gl_313233", "" }, + { "nv!__gl_31f7d603", "" }, + { "nv!__gl_320ce4", "" }, + { "nv!__gl_32153248", "" }, + { "nv!__gl_32153249", "" }, + { "nv!__gl_335bca", "" }, + { "nv!__gl_342abb", "" }, + { "nv!__gl_34dfe6", "" }, + { "nv!__gl_34dfe7", "" }, + { "nv!__gl_34dfe8", "" }, + { "nv!__gl_34dfe9", "" }, + { "nv!__gl_35201578", "" }, + { "nv!__gl_359278", "" }, + { "nv!__gl_37f53a", "" }, + { "nv!__gl_38144972", "" }, + { "nv!__gl_38542646", "" }, + { "nv!__gl_3b74c9", "" }, + { "nv!__gl_3c136f", "" }, + { "nv!__gl_3cf72823", "" }, + { "nv!__gl_3d7af029", "" }, + { "nv!__gl_3ff34782", "" }, + { "nv!__gl_4129618", "" }, + { "nv!__gl_4189fac3", "" }, + { "nv!__gl_420bd4", "" }, + { "nv!__gl_42a699", "" }, + { "nv!__gl_441369", "" }, + { "nv!__gl_4458713e", "" }, + { "nv!__gl_4554b6", "" }, + { "nv!__gl_457425", "" }, + { "nv!__gl_4603b207", "" }, + { "nv!__gl_46574957", "" }, + { "nv!__gl_46574958", "" }, + { "nv!__gl_46813529", "" }, + { "nv!__gl_46f1e13d", "" }, + { "nv!__gl_47534c43", "" }, + { "nv!__gl_48550336", "" }, + { "nv!__gl_48576893", "" }, + { "nv!__gl_48576894", "" }, + { "nv!__gl_4889ac02", "" }, + { "nv!__gl_49005740", "" }, + { "nv!__gl_49867584", "" }, + { "nv!__gl_49960973", "" }, + { "nv!__gl_4a5341", "" }, + { "nv!__gl_4f4e48", "" }, + { "nv!__gl_4f8a0a", "" }, + { "nv!__gl_50299698", "" }, + { "nv!__gl_50299699", "" }, + { "nv!__gl_50361291", "" }, + { "nv!__gl_5242ae", "" }, + { "nv!__gl_53d30c", "" }, + { "nv!__gl_56347a", "" }, + { "nv!__gl_563a95f1", "" }, + { "nv!__gl_573823", "" }, + { "nv!__gl_58027529", "" }, + { "nv!__gl_5d2d63", "" }, + { "nv!__gl_5f7e3b", "" }, + { "nv!__gl_60461793", "" }, + { "nv!__gl_60d355", "" }, + { "nv!__gl_616627aa", "" }, + { "nv!__gl_62317182", "" }, + { "nv!__gl_6253fa2e", "" }, + { "nv!__gl_64100768", "" }, + { "nv!__gl_64100769", "" }, + { "nv!__gl_64100770", "" }, + { "nv!__gl_647395", "" }, + { "nv!__gl_66543234", "" }, + { "nv!__gl_67674763", "" }, + { "nv!__gl_67739784", "" }, + { "nv!__gl_68fb9c", "" }, + { "nv!__gl_69801276", "" }, + { "nv!__gl_6af9fa2f", "" }, + { "nv!__gl_6af9fa3f", "" }, + { "nv!__gl_6af9fa4f", "" }, + { "nv!__gl_6bd8c7", "" }, + { "nv!__gl_6c7691", "" }, + { "nv!__gl_6d4296ce", "" }, + { "nv!__gl_6dd7e7", "" }, + { "nv!__gl_6dd7e8", "" }, + { "nv!__gl_6fe11ec1", "" }, + { "nv!__gl_716511763", "" }, + { "nv!__gl_72504593", "" }, + { "nv!__gl_73304097", "" }, + { "nv!__gl_73314098", "" }, + { "nv!__gl_74095213", "" }, + { "nv!__gl_74095213a", "" }, + { "nv!__gl_74095213b", "" }, + { "nv!__gl_74095214", "" }, + { "nv!__gl_748f9649", "" }, + { "nv!__gl_75494732", "" }, + { "nv!__gl_78452832", "" }, + { "nv!__gl_784561", "" }, + { "nv!__gl_78e16b9c", "" }, + { "nv!__gl_79251225", "" }, + { "nv!__gl_7c128b", "" }, + { "nv!__gl_7ccd93", "" }, + { "nv!__gl_7df8d1", "" }, + { "nv!__gl_800c2310", "" }, + { "nv!__gl_80546710", "" }, + { "nv!__gl_80772310", "" }, + { "nv!__gl_808ee280", "" }, + { "nv!__gl_81131154", "" }, + { "nv!__gl_81274457", "" }, + { "nv!__gl_8292291f", "" }, + { "nv!__gl_83498426", "" }, + { "nv!__gl_84993794", "" }, + { "nv!__gl_84995585", "" }, + { "nv!__gl_84a0a0", "" }, + { "nv!__gl_852142", "" }, + { "nv!__gl_85612309", "" }, + { "nv!__gl_85612310", "" }, + { "nv!__gl_85612311", "" }, + { "nv!__gl_85612312", "" }, + { "nv!__gl_8623ff27", "" }, + { "nv!__gl_87364952", "" }, + { "nv!__gl_87f6275666", "" }, + { "nv!__gl_886748", "" }, + { "nv!__gl_89894423", "" }, + { "nv!__gl_8ad8a75", "" }, + { "nv!__gl_8ad8ad00", "" }, + { "nv!__gl_8bb815", "" }, + { "nv!__gl_8bb817", "" }, + { "nv!__gl_8bb818", "" }, + { "nv!__gl_8bb819", "" }, + { "nv!__gl_8e640cd1", "" }, + { "nv!__gl_8f34971a", "" }, + { "nv!__gl_8f773984", "" }, + { "nv!__gl_8f7a7d", "" }, + { "nv!__gl_902486209", "" }, + { "nv!__gl_90482571", "" }, + { "nv!__gl_91214835", "" }, + { "nv!__gl_912848290", "" }, + { "nv!__gl_915e56", "" }, + { "nv!__gl_92179063", "" }, + { "nv!__gl_92179064", "" }, + { "nv!__gl_92179065", "" }, + { "nv!__gl_92179066", "" }, + { "nv!__gl_92350358", "" }, + { "nv!__gl_92809063", "" }, + { "nv!__gl_92809064", "" }, + { "nv!__gl_92809065", "" }, + { "nv!__gl_92809066", "" }, + { "nv!__gl_92920143", "" }, + { "nv!__gl_93a89b12", "" }, + { "nv!__gl_93a89c0b", "" }, + { "nv!__gl_94812574", "" }, + { "nv!__gl_95282304", "" }, + { "nv!__gl_95394027", "" }, + { "nv!__gl_959b1f", "" }, + { "nv!__gl_9638af", "" }, + { "nv!__gl_96fd59", "" }, + { "nv!__gl_97f6275666", "" }, + { "nv!__gl_97f6275667", "" }, + { "nv!__gl_97f6275668", "" }, + { "nv!__gl_97f6275669", "" }, + { "nv!__gl_97f627566a", "" }, + { "nv!__gl_97f627566b", "" }, + { "nv!__gl_97f627566d", "" }, + { "nv!__gl_97f627566e", "" }, + { "nv!__gl_97f627566f", "" }, + { "nv!__gl_97f6275670", "" }, + { "nv!__gl_97f6275671", "" }, + { "nv!__gl_97f727566e", "" }, + { "nv!__gl_98480775", "" }, + { "nv!__gl_98480776", "" }, + { "nv!__gl_98480777", "" }, + { "nv!__gl_992431", "" }, + { "nv!__gl_9aa29065", "" }, + { "nv!__gl_9af32c", "" }, + { "nv!__gl_9af32d", "" }, + { "nv!__gl_9af32e", "" }, + { "nv!__gl_9c108b71", "" }, + { "nv!__gl_9f279065", "" }, + { "nv!__gl_a01bc728", "" }, + { "nv!__gl_a13b46c80", "" }, + { "nv!__gl_a22eb0", "" }, + { "nv!__gl_a2fb451e", "" }, + { "nv!__gl_a3456abe", "" }, + { "nv!__gl_a7044887", "" }, + { "nv!__gl_a7149200", "" }, + { "nv!__gl_a766215670", "" }, + { "nv!__gl_aalinegamma", "" }, + { "nv!__gl_aalinetweaks", "" }, + { "nv!__gl_ab34ee01", "" }, + { "nv!__gl_ab34ee02", "" }, + { "nv!__gl_ab34ee03", "" }, + { "nv!__gl_ac0274", "" }, + { "nv!__gl_af73c63e", "" }, + { "nv!__gl_af73c63f", "" }, + { "nv!__gl_af9927", "" }, + { "nv!__gl_afoverride", "" }, + { "nv!__gl_allocdeviceevents", "" }, + { "nv!__gl_applicationkey", "" }, + { "nv!__gl_appreturnonlybasicglsltype", "" }, + { "nv!__gl_app_softimage", "" }, + { "nv!__gl_app_supportbits2", "" }, + { "nv!__gl_assumetextureismipmappedatcreation", "" }, + { "nv!__gl_b1fb0f01", "" }, + { "nv!__gl_b3edd5", "" }, + { "nv!__gl_b40d9e03d", "" }, + { "nv!__gl_b7f6275666", "" }, + { "nv!__gl_b812c1", "" }, + { "nv!__gl_ba14ba1a", "" }, + { "nv!__gl_ba14ba1b", "" }, + { "nv!__gl_bd7559", "" }, + { "nv!__gl_bd755a", "" }, + { "nv!__gl_bd755c", "" }, + { "nv!__gl_bd755d", "" }, + { "nv!__gl_be58bb", "" }, + { "nv!__gl_be92cb", "" }, + { "nv!__gl_beefcba3", "" }, + { "nv!__gl_beefcba4", "" }, + { "nv!__gl_c023777f", "" }, + { "nv!__gl_c09dc8", "" }, + { "nv!__gl_c0d340", "" }, + { "nv!__gl_c2ff374c", "" }, + { "nv!__gl_c5e9d7a3", "" }, + { "nv!__gl_c5e9d7a4", "" }, + { "nv!__gl_c5e9d7b4", "" }, + { "nv!__gl_c618f9", "" }, + { "nv!__gl_ca345840", "" }, + { "nv!__gl_cachedisable", "" }, + { "nv!__gl_channelpriorityoverride", "" }, + { "nv!__gl_cleardatastorevidmem", "" }, + { "nv!__gl_cmdbufmemoryspaceenables", "" }, + { "nv!__gl_cmdbufminwords", "" }, + { "nv!__gl_cmdbufsizewords", "" }, + { "nv!__gl_conformantblitframebufferscissor", "" }, + { "nv!__gl_conformantincompletetextures", "" }, + { "nv!__gl_copybuffermethod", "" }, + { "nv!__gl_cubemapaniso", "" }, + { "nv!__gl_cubemapfiltering", "" }, + { "nv!__gl_d0e9a4d7", "" }, + { "nv!__gl_d13733f12", "" }, + { "nv!__gl_d1b399", "" }, + { "nv!__gl_d2983c32", "" }, + { "nv!__gl_d2983c33", "" }, + { "nv!__gl_d2e71b", "" }, + { "nv!__gl_d377dc", "" }, + { "nv!__gl_d377dd", "" }, + { "nv!__gl_d489f4", "" }, + { "nv!__gl_d4bce1", "" }, + { "nv!__gl_d518cb", "" }, + { "nv!__gl_d518cd", "" }, + { "nv!__gl_d518ce", "" }, + { "nv!__gl_d518d0", "" }, + { "nv!__gl_d518d1", "" }, + { "nv!__gl_d518d2", "" }, + { "nv!__gl_d518d3", "" }, + { "nv!__gl_d518d4", "" }, + { "nv!__gl_d518d5", "" }, + { "nv!__gl_d59eda", "" }, + { "nv!__gl_d83cbd", "" }, + { "nv!__gl_d8e777", "" }, + { "nv!__gl_debug_level", "" }, + { "nv!__gl_debug_mask", "" }, + { "nv!__gl_debug_options", "" }, + { "nv!__gl_devshmpageableallocations", "" }, + { "nv!__gl_df1f9812", "" }, + { "nv!__gl_df783c", "" }, + { "nv!__gl_diagenable", "" }, + { "nv!__gl_disallowcemask", "" }, + { "nv!__gl_disallowz16", "" }, + { "nv!__gl_dlmemoryspaceenables", "" }, + { "nv!__gl_e0bfec", "" }, + { "nv!__gl_e433456d", "" }, + { "nv!__gl_e435563f", "" }, + { "nv!__gl_e4cd9c", "" }, + { "nv!__gl_e5c972", "" }, + { "nv!__gl_e639ef", "" }, + { "nv!__gl_e802af", "" }, + { "nv!__gl_eae964", "" }, + { "nv!__gl_earlytexturehwallocation", "" }, + { "nv!__gl_eb92a3", "" }, + { "nv!__gl_ebca56", "" }, + { "nv!__gl_expert_detail_level", "" }, + { "nv!__gl_expert_output_mask", "" }, + { "nv!__gl_expert_report_mask", "" }, + { "nv!__gl_extensionstringnvarch", "" }, + { "nv!__gl_extensionstringversion", "" }, + { "nv!__gl_f00f1938", "" }, + { "nv!__gl_f10736", "" }, + { "nv!__gl_f1846870", "" }, + { "nv!__gl_f33bc370", "" }, + { "nv!__gl_f392a874", "" }, + { "nv!__gl_f49ae8", "" }, + { "nv!__gl_fa345cce", "" }, + { "nv!__gl_fa35cc4", "" }, + { "nv!__gl_faa14a", "" }, + { "nv!__gl_faf8a723", "" }, + { "nv!__gl_fastgs", "" }, + { "nv!__gl_fbf4ac45", "" }, + { "nv!__gl_fbo_blit_ignore_srgb", "" }, + { "nv!__gl_fc64c7", "" }, + { "nv!__gl_ff54ec97", "" }, + { "nv!__gl_ff54ec98", "" }, + { "nv!__gl_forceexitprocessdetach", "" }, + { "nv!__gl_forcerequestedesversion", "" }, + { "nv!__gl_glsynctovblank", "" }, + { "nv!__gl_gvitimeoutcontrol", "" }, + { "nv!__gl_hcctrl", "" }, + { "nv!__gl_hwstate_per_ctx", "" }, + { "nv!__gl_machinecachelimit", "" }, + { "nv!__gl_maxframesallowed", "" }, + { "nv!__gl_memmgrcachedalloclimit", "" }, + { "nv!__gl_memmgrcachedalloclimitratio", "" }, + { "nv!__gl_memmgrsysheapalloclimit", "" }, + { "nv!__gl_memmgrsysheapalloclimitratio", "" }, + { "nv!__gl_memmgrvidheapalloclimit", "" }, + { "nv!__gl_mosaic_clip_to_subdev", "" }, + { "nv!__gl_mosaic_clip_to_subdev_h_overlap", "" }, + { "nv!__gl_mosaic_clip_to_subdev_v_overlap", "" }, + { "nv!__gl_overlaymergeblittimerms", "" }, + { "nv!__gl_perfmon_mode", "" }, + { "nv!__gl_pixbar_mode", "" }, + { "nv!__gl_qualityenhancements", "" }, + { "nv!__gl_r27s18q28", "" }, + { "nv!__gl_r2d7c1d8", "" }, + { "nv!__gl_renderer", "" }, + { "nv!__gl_renderqualityflags", "" }, + { "nv!__gl_s3tcquality", "" }, + { "nv!__gl_shaderatomics", "" }, + { "nv!__gl_shadercacheinitsize", "" }, + { "nv!__gl_shader_disk_cache_path", "" }, + { "nv!__gl_shader_disk_cache_read_only", "" }, + { "nv!__gl_shaderobjects", "" }, + { "nv!__gl_shaderportabilitywarnings", "" }, + { "nv!__gl_shaderwarningsaserrors", "" }, + { "nv!__gl_skiptexturehostcopies", "" }, + { "nv!__glslc_debug_level", "" }, + { "nv!__glslc_debug_mask", "" }, + { "nv!__glslc_debug_options", "" }, + { "nv!__glslc_debug_filename", "" }, + { "nv!__gl_sli_dli_control", "" }, + { "nv!__gl_sparsetexture", "" }, + { "nv!__gl_spinlooptimeout", "" }, + { "nv!__gl_sync_to_vblank", "" }, + { "nv!glsynctovblank", "" }, + { "nv!__gl_sysheapreuseratio", "" }, + { "nv!__gl_sysmemtexturepromotion", "" }, + { "nv!__gl_targetflushcount", "" }, + { "nv!__gl_tearingfreeswappresent", "" }, + { "nv!__gl_texclampbehavior", "" }, + { "nv!__gl_texlodbias", "" }, + { "nv!__gl_texmemoryspaceenables", "" }, + { "nv!__gl_textureprecache", "" }, + { "nv!__gl_threadcontrol", "" }, + { "nv!__gl_threadcontrol2", "" }, + { "nv!__gl_usegvievents", "" }, + { "nv!__gl_vbomemoryspaceenables", "" }, + { "nv!__gl_vertexlimit", "" }, + { "nv!__gl_vidheapreuseratio", "" }, + { "nv!__gl_vpipe", "" }, + { "nv!__gl_vpipeformatbloatlimit", "" }, + { "nv!__gl_wglmessageboxonabort", "" }, + { "nv!__gl_writeinfolog", "" }, + { "nv!__gl_writeprogramobjectassembly", "" }, + { "nv!__gl_writeprogramobjectsource", "" }, + { "nv!__gl_xnvadapterpresent", "" }, + { "nv!__gl_yield", "" }, + { "nv!__gl_yieldfunction", "" }, + { "nv!__gl_yieldfunctionfast", "" }, + { "nv!__gl_yieldfunctionslow", "" }, + { "nv!__gl_yieldfunctionwaitfordcqueue", "" }, + { "nv!__gl_yieldfunctionwaitforframe", "" }, + { "nv!__gl_yieldfunctionwaitforgpu", "" }, + { "nv!__gl_zbctableaddhysteresis", "" }, + { "nv!gpu_debug_mode", "" }, + { "nv!gpu_stay_on", "" }, + { "nv!gpu_timeout_ms_max", "" }, + { "nv!gvitimeoutcontrol", "" }, + { "nv!hcctrl", "" }, + { "nv!hwstate_per_ctx", "" }, + { "nv!libandroid_enable_log", "" }, + { "nv!machinecachelimit", "" }, + { "nv!maxframesallowed", "" }, + { "nv!media.aac_51_output_enabled", "" }, + { "nv!memmgrcachedalloclimit", "" }, + { "nv!memmgrcachedalloclimitratio", "" }, + { "nv!memmgrsysheapalloclimit", "" }, + { "nv!memmgrsysheapalloclimitratio", "" }, + { "nv!memmgrvidheapalloclimit", "" }, + { "nv!mosaic_clip_to_subdev", "" }, + { "nv!mosaic_clip_to_subdev_h_overlap", "" }, + { "nv!mosaic_clip_to_subdev_v_overlap", "" }, + { "nv!nvblit.dump", "" }, + { "nv!nvblit.profile", "" }, + { "nv!nvblit.twod", "" }, + { "nv!nvblit.vic", "" }, + { "nv!nvddk_vic_prevent_use", "" }, + { "nv!nv_decompression", "" }, + { "nv!nvdisp_bl_ctrl", "0" }, + { "nv!nvdisp_debug_mask", "" }, + { "nv!nvdisp_enable_ts", "0" }, + { "nv!nvhdcp_timeout_ms", "12000" }, + { "nv!nvhdcp_max_retries", "5" }, + { "nv!nv_emc_dvfs_test", "" }, + { "nv!nv_emc_init_rate_hz", "" }, + { "nv!nv_gmmu_va_page_split", "" }, + { "nv!nv_gmmu_va_range", "" }, + { "nv!nvhost_debug_mask", "" }, + { "nv!nvidia.hwc.dump_config", "" }, + { "nv!nvidia.hwc.dump_layerlist", "" }, + { "nv!nvidia.hwc.dump_windows", "" }, + { "nv!nvidia.hwc.enable_disp_trans", "" }, + { "nv!nvidia.hwc.ftrace_enable", "" }, + { "nv!nvidia.hwc.hdcp_enable", "" }, + { "nv!nvidia.hwc.hidden_window_mask0", "" }, + { "nv!nvidia.hwc.hidden_window_mask1", "" }, + { "nv!nvidia.hwc.immediate_modeset", "" }, + { "nv!nvidia.hwc.imp_enable", "" }, + { "nv!nvidia.hwc.no_egl", "" }, + { "nv!nvidia.hwc.no_scratchblit", "" }, + { "nv!nvidia.hwc.no_vic", "" }, + { "nv!nvidia.hwc.null_display", "" }, + { "nv!nvidia.hwc.scan_props", "" }, + { "nv!nvidia.hwc.swap_interval", "" }, + { "nv!nvidia.hwc.war_1515812", "0" }, + { "nv!nvmap_debug_mask", "" }, + { "nv!nv_memory_profiler", "" }, + { "nv!nvnflinger_enable_log", "" }, + { "nv!nvnflinger_flip_policy", "" }, + { "nv!nvnflinger_hotplug_autoswitch", "0" }, + { "nv!nvnflinger_prefer_primary_layer", "0" }, + { "nv!nvnflinger_service_priority", "" }, + { "nv!nvnflinger_service_threads", "" }, + { "nv!nvnflinger_swap_interval", "" }, + { "nv!nvnflinger_track_perf", "" }, + { "nv!nvnflinger_virtualdisplay_policy", "60hz" }, + { "nv!nvn_no_vsync_capability", false }, + { "nv!nvn_through_opengl", "" }, + { "nv!nv_pllcx_always_on", "" }, + { "nv!nv_pllcx_safe_div", "" }, + { "nv!nvrm_gpu_channel_interleave", "" }, + { "nv!nvrm_gpu_channel_priority", "" }, + { "nv!nvrm_gpu_channel_timeslice", "" }, + { "nv!nvrm_gpu_default_device_index", "" }, + { "nv!nvrm_gpu_dummy", "" }, + { "nv!nvrm_gpu_help", "" }, + { "nv!nvrm_gpu_nvgpu_disable", "" }, + { "nv!nvrm_gpu_nvgpu_do_nfa_partial_map", "" }, + { "nv!nvrm_gpu_nvgpu_ecc_overrides", "" }, + { "nv!nvrm_gpu_nvgpu_no_as_get_va_regions", "" }, + { "nv!nvrm_gpu_nvgpu_no_channel_abort", "" }, + { "nv!nvrm_gpu_nvgpu_no_cyclestats", "" }, + { "nv!nvrm_gpu_nvgpu_no_fixed", "" }, + { "nv!nvrm_gpu_nvgpu_no_gpu_characteristics", "" }, + { "nv!nvrm_gpu_nvgpu_no_ioctl_mutex", "" }, + { "nv!nvrm_gpu_nvgpu_no_map_buffer_ex", "" }, + { "nv!nvrm_gpu_nvgpu_no_robustness", "" }, + { "nv!nvrm_gpu_nvgpu_no_sparse", "" }, + { "nv!nvrm_gpu_nvgpu_no_syncpoints", "" }, + { "nv!nvrm_gpu_nvgpu_no_tsg", "" }, + { "nv!nvrm_gpu_nvgpu_no_zbc", "" }, + { "nv!nvrm_gpu_nvgpu_no_zcull", "" }, + { "nv!nvrm_gpu_nvgpu_wrap_channels_in_tsgs", "" }, + { "nv!nvrm_gpu_prevent_use", "" }, + { "nv!nvrm_gpu_trace", "" }, + { "nv!nvsched_debug_mask", "" }, + { "nv!nvsched_force_enable", "" }, + { "nv!nvsched_force_log", "" }, + { "nv!nv_usb_plls_hw_ctrl", "" }, + { "nv!nv_winsys", "" }, + { "nv!nvwsi_dump", "" }, + { "nv!nvwsi_fill", "" }, + { "nv!ogl_", "" }, + { "nv!ogl_0356afd0", "" }, + { "nv!ogl_0356afd1", "" }, + { "nv!ogl_0356afd2", "" }, + { "nv!ogl_0356afd3", "" }, + { "nv!ogl_0x923dc0", "" }, + { "nv!ogl_0x923dc1", "" }, + { "nv!ogl_0x923dc2", "" }, + { "nv!ogl_0x923dc3", "" }, + { "nv!ogl_0x923dc4", "" }, + { "nv!ogl_0x923dd3", "" }, + { "nv!ogl_0x9abdc5", "" }, + { "nv!ogl_0x9abdc6", "" }, + { "nv!ogl_0xbd10fb", "" }, + { "nv!ogl_0xce2348", "" }, + { "nv!ogl_10261989", "" }, + { "nv!ogl_1042d483", "" }, + { "nv!ogl_10572898", "" }, + { "nv!ogl_115631", "" }, + { "nv!ogl_12950094", "" }, + { "nv!ogl_1314f311", "" }, + { "nv!ogl_1314f312", "" }, + { "nv!ogl_13279512", "" }, + { "nv!ogl_13813496", "" }, + { "nv!ogl_14507179", "" }, + { "nv!ogl_15694569", "" }, + { "nv!ogl_16936964", "" }, + { "nv!ogl_17aa230c", "" }, + { "nv!ogl_182054", "" }, + { "nv!ogl_18273275", "" }, + { "nv!ogl_18273276", "" }, + { "nv!ogl_1854d03b", "" }, + { "nv!ogl_18add00d", "" }, + { "nv!ogl_19156670", "" }, + { "nv!ogl_19286545", "" }, + { "nv!ogl_1a298e9f", "" }, + { "nv!ogl_1acf43fe", "" }, + { "nv!ogl_1bda43fe", "" }, + { "nv!ogl_1c3b92", "" }, + { "nv!ogl_21509920", "" }, + { "nv!ogl_215323457", "" }, + { "nv!ogl_2165ad", "" }, + { "nv!ogl_2165ae", "" }, + { "nv!ogl_21be9c", "" }, + { "nv!ogl_233264316", "" }, + { "nv!ogl_234557580", "" }, + { "nv!ogl_23cd0e", "" }, + { "nv!ogl_24189123", "" }, + { "nv!ogl_2443266", "" }, + { "nv!ogl_25025519", "" }, + { "nv!ogl_255e39", "" }, + { "nv!ogl_2583364", "" }, + { "nv!ogl_2888c1", "" }, + { "nv!ogl_28ca3e", "" }, + { "nv!ogl_29871243", "" }, + { "nv!ogl_2a1f64", "" }, + { "nv!ogl_2dc432", "" }, + { "nv!ogl_2de437", "" }, + { "nv!ogl_2f3bb89c", "" }, + { "nv!ogl_2fd652", "" }, + { "nv!ogl_3001ac", "" }, + { "nv!ogl_31298772", "" }, + { "nv!ogl_313233", "" }, + { "nv!ogl_31f7d603", "" }, + { "nv!ogl_320ce4", "" }, + { "nv!ogl_32153248", "" }, + { "nv!ogl_32153249", "" }, + { "nv!ogl_335bca", "" }, + { "nv!ogl_342abb", "" }, + { "nv!ogl_34dfe6", "" }, + { "nv!ogl_34dfe7", "" }, + { "nv!ogl_34dfe8", "" }, + { "nv!ogl_34dfe9", "" }, + { "nv!ogl_35201578", "" }, + { "nv!ogl_359278", "" }, + { "nv!ogl_37f53a", "" }, + { "nv!ogl_38144972", "" }, + { "nv!ogl_38542646", "" }, + { "nv!ogl_3b74c9", "" }, + { "nv!ogl_3c136f", "" }, + { "nv!ogl_3cf72823", "" }, + { "nv!ogl_3d7af029", "" }, + { "nv!ogl_3ff34782", "" }, + { "nv!ogl_4129618", "" }, + { "nv!ogl_4189fac3", "" }, + { "nv!ogl_420bd4", "" }, + { "nv!ogl_42a699", "" }, + { "nv!ogl_441369", "" }, + { "nv!ogl_4458713e", "" }, + { "nv!ogl_4554b6", "" }, + { "nv!ogl_457425", "" }, + { "nv!ogl_4603b207", "" }, + { "nv!ogl_46574957", "" }, + { "nv!ogl_46574958", "" }, + { "nv!ogl_46813529", "" }, + { "nv!ogl_46f1e13d", "" }, + { "nv!ogl_47534c43", "" }, + { "nv!ogl_48550336", "" }, + { "nv!ogl_48576893", "" }, + { "nv!ogl_48576894", "" }, + { "nv!ogl_4889ac02", "" }, + { "nv!ogl_49005740", "" }, + { "nv!ogl_49867584", "" }, + { "nv!ogl_49960973", "" }, + { "nv!ogl_4a5341", "" }, + { "nv!ogl_4f4e48", "" }, + { "nv!ogl_4f8a0a", "" }, + { "nv!ogl_50299698", "" }, + { "nv!ogl_50299699", "" }, + { "nv!ogl_50361291", "" }, + { "nv!ogl_5242ae", "" }, + { "nv!ogl_53d30c", "" }, + { "nv!ogl_56347a", "" }, + { "nv!ogl_563a95f1", "" }, + { "nv!ogl_573823", "" }, + { "nv!ogl_58027529", "" }, + { "nv!ogl_5d2d63", "" }, + { "nv!ogl_5f7e3b", "" }, + { "nv!ogl_60461793", "" }, + { "nv!ogl_60d355", "" }, + { "nv!ogl_616627aa", "" }, + { "nv!ogl_62317182", "" }, + { "nv!ogl_6253fa2e", "" }, + { "nv!ogl_64100768", "" }, + { "nv!ogl_64100769", "" }, + { "nv!ogl_64100770", "" }, + { "nv!ogl_647395", "" }, + { "nv!ogl_66543234", "" }, + { "nv!ogl_67674763", "" }, + { "nv!ogl_67739784", "" }, + { "nv!ogl_68fb9c", "" }, + { "nv!ogl_69801276", "" }, + { "nv!ogl_6af9fa2f", "" }, + { "nv!ogl_6af9fa3f", "" }, + { "nv!ogl_6af9fa4f", "" }, + { "nv!ogl_6bd8c7", "" }, + { "nv!ogl_6c7691", "" }, + { "nv!ogl_6d4296ce", "" }, + { "nv!ogl_6dd7e7", "" }, + { "nv!ogl_6dd7e8", "" }, + { "nv!ogl_6fe11ec1", "" }, + { "nv!ogl_716511763", "" }, + { "nv!ogl_72504593", "" }, + { "nv!ogl_73304097", "" }, + { "nv!ogl_73314098", "" }, + { "nv!ogl_74095213", "" }, + { "nv!ogl_74095213a", "" }, + { "nv!ogl_74095213b", "" }, + { "nv!ogl_74095214", "" }, + { "nv!ogl_748f9649", "" }, + { "nv!ogl_75494732", "" }, + { "nv!ogl_78452832", "" }, + { "nv!ogl_784561", "" }, + { "nv!ogl_78e16b9c", "" }, + { "nv!ogl_79251225", "" }, + { "nv!ogl_7c128b", "" }, + { "nv!ogl_7ccd93", "" }, + { "nv!ogl_7df8d1", "" }, + { "nv!ogl_800c2310", "" }, + { "nv!ogl_80546710", "" }, + { "nv!ogl_80772310", "" }, + { "nv!ogl_808ee280", "" }, + { "nv!ogl_81131154", "" }, + { "nv!ogl_81274457", "" }, + { "nv!ogl_8292291f", "" }, + { "nv!ogl_83498426", "" }, + { "nv!ogl_84993794", "" }, + { "nv!ogl_84995585", "" }, + { "nv!ogl_84a0a0", "" }, + { "nv!ogl_852142", "" }, + { "nv!ogl_85612309", "" }, + { "nv!ogl_85612310", "" }, + { "nv!ogl_85612311", "" }, + { "nv!ogl_85612312", "" }, + { "nv!ogl_8623ff27", "" }, + { "nv!ogl_87364952", "" }, + { "nv!ogl_87f6275666", "" }, + { "nv!ogl_886748", "" }, + { "nv!ogl_89894423", "" }, + { "nv!ogl_8ad8a75", "" }, + { "nv!ogl_8ad8ad00", "" }, + { "nv!ogl_8bb815", "" }, + { "nv!ogl_8bb817", "" }, + { "nv!ogl_8bb818", "" }, + { "nv!ogl_8bb819", "" }, + { "nv!ogl_8e640cd1", "" }, + { "nv!ogl_8f34971a", "" }, + { "nv!ogl_8f773984", "" }, + { "nv!ogl_8f7a7d", "" }, + { "nv!ogl_902486209", "" }, + { "nv!ogl_90482571", "" }, + { "nv!ogl_91214835", "" }, + { "nv!ogl_912848290", "" }, + { "nv!ogl_915e56", "" }, + { "nv!ogl_92179063", "" }, + { "nv!ogl_92179064", "" }, + { "nv!ogl_92179065", "" }, + { "nv!ogl_92179066", "" }, + { "nv!ogl_92350358", "" }, + { "nv!ogl_92809063", "" }, + { "nv!ogl_92809064", "" }, + { "nv!ogl_92809065", "" }, + { "nv!ogl_92809066", "" }, + { "nv!ogl_92920143", "" }, + { "nv!ogl_93a89b12", "" }, + { "nv!ogl_93a89c0b", "" }, + { "nv!ogl_94812574", "" }, + { "nv!ogl_95282304", "" }, + { "nv!ogl_95394027", "" }, + { "nv!ogl_959b1f", "" }, + { "nv!ogl_9638af", "" }, + { "nv!ogl_96fd59", "" }, + { "nv!ogl_97f6275666", "" }, + { "nv!ogl_97f6275667", "" }, + { "nv!ogl_97f6275668", "" }, + { "nv!ogl_97f6275669", "" }, + { "nv!ogl_97f627566a", "" }, + { "nv!ogl_97f627566b", "" }, + { "nv!ogl_97f627566d", "" }, + { "nv!ogl_97f627566e", "" }, + { "nv!ogl_97f627566f", "" }, + { "nv!ogl_97f6275670", "" }, + { "nv!ogl_97f6275671", "" }, + { "nv!ogl_97f727566e", "" }, + { "nv!ogl_98480775", "" }, + { "nv!ogl_98480776", "" }, + { "nv!ogl_98480777", "" }, + { "nv!ogl_992431", "" }, + { "nv!ogl_9aa29065", "" }, + { "nv!ogl_9af32c", "" }, + { "nv!ogl_9af32d", "" }, + { "nv!ogl_9af32e", "" }, + { "nv!ogl_9c108b71", "" }, + { "nv!ogl_9f279065", "" }, + { "nv!ogl_a01bc728", "" }, + { "nv!ogl_a13b46c80", "" }, + { "nv!ogl_a22eb0", "" }, + { "nv!ogl_a2fb451e", "" }, + { "nv!ogl_a3456abe", "" }, + { "nv!ogl_a7044887", "" }, + { "nv!ogl_a7149200", "" }, + { "nv!ogl_a766215670", "" }, + { "nv!ogl_aalinegamma", "" }, + { "nv!ogl_aalinetweaks", "" }, + { "nv!ogl_ab34ee01", "" }, + { "nv!ogl_ab34ee02", "" }, + { "nv!ogl_ab34ee03", "" }, + { "nv!ogl_ac0274", "" }, + { "nv!ogl_af73c63e", "" }, + { "nv!ogl_af73c63f", "" }, + { "nv!ogl_af9927", "" }, + { "nv!ogl_afoverride", "" }, + { "nv!ogl_allocdeviceevents", "" }, + { "nv!ogl_applicationkey", "" }, + { "nv!ogl_appreturnonlybasicglsltype", "" }, + { "nv!ogl_app_softimage", "" }, + { "nv!ogl_app_supportbits2", "" }, + { "nv!ogl_assumetextureismipmappedatcreation", "" }, + { "nv!ogl_b1fb0f01", "" }, + { "nv!ogl_b3edd5", "" }, + { "nv!ogl_b40d9e03d", "" }, + { "nv!ogl_b7f6275666", "" }, + { "nv!ogl_b812c1", "" }, + { "nv!ogl_ba14ba1a", "" }, + { "nv!ogl_ba14ba1b", "" }, + { "nv!ogl_bd7559", "" }, + { "nv!ogl_bd755a", "" }, + { "nv!ogl_bd755c", "" }, + { "nv!ogl_bd755d", "" }, + { "nv!ogl_be58bb", "" }, + { "nv!ogl_be92cb", "" }, + { "nv!ogl_beefcba3", "" }, + { "nv!ogl_beefcba4", "" }, + { "nv!ogl_c023777f", "" }, + { "nv!ogl_c09dc8", "" }, + { "nv!ogl_c0d340", "" }, + { "nv!ogl_c2ff374c", "" }, + { "nv!ogl_c5e9d7a3", "" }, + { "nv!ogl_c5e9d7a4", "" }, + { "nv!ogl_c5e9d7b4", "" }, + { "nv!ogl_c618f9", "" }, + { "nv!ogl_ca345840", "" }, + { "nv!ogl_cachedisable", "" }, + { "nv!ogl_channelpriorityoverride", "" }, + { "nv!ogl_cleardatastorevidmem", "" }, + { "nv!ogl_cmdbufmemoryspaceenables", "" }, + { "nv!ogl_cmdbufminwords", "" }, + { "nv!ogl_cmdbufsizewords", "" }, + { "nv!ogl_conformantblitframebufferscissor", "" }, + { "nv!ogl_conformantincompletetextures", "" }, + { "nv!ogl_copybuffermethod", "" }, + { "nv!ogl_cubemapaniso", "" }, + { "nv!ogl_cubemapfiltering", "" }, + { "nv!ogl_d0e9a4d7", "" }, + { "nv!ogl_d13733f12", "" }, + { "nv!ogl_d1b399", "" }, + { "nv!ogl_d2983c32", "" }, + { "nv!ogl_d2983c33", "" }, + { "nv!ogl_d2e71b", "" }, + { "nv!ogl_d377dc", "" }, + { "nv!ogl_d377dd", "" }, + { "nv!ogl_d489f4", "" }, + { "nv!ogl_d4bce1", "" }, + { "nv!ogl_d518cb", "" }, + { "nv!ogl_d518cd", "" }, + { "nv!ogl_d518ce", "" }, + { "nv!ogl_d518d0", "" }, + { "nv!ogl_d518d1", "" }, + { "nv!ogl_d518d2", "" }, + { "nv!ogl_d518d3", "" }, + { "nv!ogl_d518d4", "" }, + { "nv!ogl_d518d5", "" }, + { "nv!ogl_d59eda", "" }, + { "nv!ogl_d83cbd", "" }, + { "nv!ogl_d8e777", "" }, + { "nv!ogl_debug_level", "" }, + { "nv!ogl_debug_mask", "" }, + { "nv!ogl_debug_options", "" }, + { "nv!ogl_devshmpageableallocations", "" }, + { "nv!ogl_df1f9812", "" }, + { "nv!ogl_df783c", "" }, + { "nv!ogl_diagenable", "" }, + { "nv!ogl_disallowcemask", "" }, + { "nv!ogl_disallowz16", "" }, + { "nv!ogl_dlmemoryspaceenables", "" }, + { "nv!ogl_e0bfec", "" }, + { "nv!ogl_e433456d", "" }, + { "nv!ogl_e435563f", "" }, + { "nv!ogl_e4cd9c", "" }, + { "nv!ogl_e5c972", "" }, + { "nv!ogl_e639ef", "" }, + { "nv!ogl_e802af", "" }, + { "nv!ogl_eae964", "" }, + { "nv!ogl_earlytexturehwallocation", "" }, + { "nv!ogl_eb92a3", "" }, + { "nv!ogl_ebca56", "" }, + { "nv!ogl_expert_detail_level", "" }, + { "nv!ogl_expert_output_mask", "" }, + { "nv!ogl_expert_report_mask", "" }, + { "nv!ogl_extensionstringnvarch", "" }, + { "nv!ogl_extensionstringversion", "" }, + { "nv!ogl_f00f1938", "" }, + { "nv!ogl_f10736", "" }, + { "nv!ogl_f1846870", "" }, + { "nv!ogl_f33bc370", "" }, + { "nv!ogl_f392a874", "" }, + { "nv!ogl_f49ae8", "" }, + { "nv!ogl_fa345cce", "" }, + { "nv!ogl_fa35cc4", "" }, + { "nv!ogl_faa14a", "" }, + { "nv!ogl_faf8a723", "" }, + { "nv!ogl_fastgs", "" }, + { "nv!ogl_fbf4ac45", "" }, + { "nv!ogl_fbo_blit_ignore_srgb", "" }, + { "nv!ogl_fc64c7", "" }, + { "nv!ogl_ff54ec97", "" }, + { "nv!ogl_ff54ec98", "" }, + { "nv!ogl_forceexitprocessdetach", "" }, + { "nv!ogl_forcerequestedesversion", "" }, + { "nv!ogl_glsynctovblank", "" }, + { "nv!ogl_gvitimeoutcontrol", "" }, + { "nv!ogl_hcctrl", "" }, + { "nv!ogl_hwstate_per_ctx", "" }, + { "nv!ogl_machinecachelimit", "" }, + { "nv!ogl_maxframesallowed", "" }, + { "nv!ogl_memmgrcachedalloclimit", "" }, + { "nv!ogl_memmgrcachedalloclimitratio", "" }, + { "nv!ogl_memmgrsysheapalloclimit", "" }, + { "nv!ogl_memmgrsysheapalloclimitratio", "" }, + { "nv!ogl_memmgrvidheapalloclimit", "" }, + { "nv!ogl_mosaic_clip_to_subdev", "" }, + { "nv!ogl_mosaic_clip_to_subdev_h_overlap", "" }, + { "nv!ogl_mosaic_clip_to_subdev_v_overlap", "" }, + { "nv!ogl_overlaymergeblittimerms", "" }, + { "nv!ogl_perfmon_mode", "" }, + { "nv!ogl_pixbar_mode", "" }, + { "nv!ogl_qualityenhancements", "" }, + { "nv!ogl_r27s18q28", "" }, + { "nv!ogl_r2d7c1d8", "" }, + { "nv!ogl_renderer", "" }, + { "nv!ogl_renderqualityflags", "" }, + { "nv!ogl_s3tcquality", "" }, + { "nv!ogl_shaderatomics", "" }, + { "nv!ogl_shadercacheinitsize", "" }, + { "nv!ogl_shader_disk_cache_path", "" }, + { "nv!ogl_shader_disk_cache_read_only", "" }, + { "nv!ogl_shaderobjects", "" }, + { "nv!ogl_shaderportabilitywarnings", "" }, + { "nv!ogl_shaderwarningsaserrors", "" }, + { "nv!ogl_skiptexturehostcopies", "" }, + { "nv!ogl_sli_dli_control", "" }, + { "nv!ogl_sparsetexture", "" }, + { "nv!ogl_spinlooptimeout", "" }, + { "nv!ogl_sync_to_vblank", "" }, + { "nv!ogl_sysheapreuseratio", "" }, + { "nv!ogl_sysmemtexturepromotion", "" }, + { "nv!ogl_targetflushcount", "" }, + { "nv!ogl_tearingfreeswappresent", "" }, + { "nv!ogl_texclampbehavior", "" }, + { "nv!ogl_texlodbias", "" }, + { "nv!ogl_texmemoryspaceenables", "" }, + { "nv!ogl_textureprecache", "" }, + { "nv!ogl_threadcontrol", "" }, + { "nv!ogl_threadcontrol2", "" }, + { "nv!ogl_usegvievents", "" }, + { "nv!ogl_vbomemoryspaceenables", "" }, + { "nv!ogl_vertexlimit", "" }, + { "nv!ogl_vidheapreuseratio", "" }, + { "nv!ogl_vpipe", "" }, + { "nv!ogl_vpipeformatbloatlimit", "" }, + { "nv!ogl_wglmessageboxonabort", "" }, + { "nv!ogl_writeinfolog", "" }, + { "nv!ogl_writeprogramobjectassembly", "" }, + { "nv!ogl_writeprogramobjectsource", "" }, + { "nv!ogl_xnvadapterpresent", "" }, + { "nv!ogl_yield", "" }, + { "nv!ogl_yieldfunction", "" }, + { "nv!ogl_yieldfunctionfast", "" }, + { "nv!ogl_yieldfunctionslow", "" }, + { "nv!ogl_yieldfunctionwaitfordcqueue", "" }, + { "nv!ogl_yieldfunctionwaitforframe", "" }, + { "nv!ogl_yieldfunctionwaitforgpu", "" }, + { "nv!ogl_zbctableaddhysteresis", "" }, + { "nv!overlaymergeblittimerms", "" }, + { "nv!perfmon_mode", "" }, + { "nv!persist.sys.display.resolution", "" }, + { "nv!persist.tegra.composite.fallb", "" }, + { "nv!persist.tegra.composite.policy", "" }, + { "nv!persist.tegra.composite.range", "" }, + { "nv!persist.tegra.compositor", "" }, + { "nv!persist.tegra.compositor.virt", "" }, + { "nv!persist.tegra.compression", "" }, + { "nv!persist.tegra.cursor.enable", "" }, + { "nv!persist.tegra.didim.enable", "" }, + { "nv!persist.tegra.didim.normal", "" }, + { "nv!persist.tegra.didim.video", "" }, + { "nv!persist.tegra.disp.heads", "" }, + { "nv!persist.tegra.gamma_correction", "" }, + { "nv!persist.tegra.gpu_mapping_cache", "" }, + { "nv!persist.tegra.grlayout", "" }, + { "nv!persist.tegra.hdmi.2020.10", "" }, + { "nv!persist.tegra.hdmi.2020.fake", "" }, + { "nv!persist.tegra.hdmi.2020.force", "" }, + { "nv!persist.tegra.hdmi.autorotate", "" }, + { "nv!persist.tegra.hdmi.hdr.fake", "" }, + { "nv!persist.tegra.hdmi.ignore_ratio", "" }, + { "nv!persist.tegra.hdmi.limit.clock", "" }, + { "nv!persist.tegra.hdmi.only_16_9", "" }, + { "nv!persist.tegra.hdmi.range", "" }, + { "nv!persist.tegra.hdmi.resolution", "" }, + { "nv!persist.tegra.hdmi.underscan", "" }, + { "nv!persist.tegra.hdmi.yuv.422", "" }, + { "nv!persist.tegra.hdmi.yuv.444", "" }, + { "nv!persist.tegra.hdmi.yuv.enable", "" }, + { "nv!persist.tegra.hdmi.yuv.force", "" }, + { "nv!persist.tegra.hwc.nvdc", "" }, + { "nv!persist.tegra.idle.minimum_fps", "" }, + { "nv!persist.tegra.panel.rotation", "" }, + { "nv!persist.tegra.scan_props", "" }, + { "nv!persist.tegra.stb.mode", "" }, + { "nv!persist.tegra.zbc_override", "" }, + { "nv!pixbar_mode", "" }, + { "nv!qualityenhancements", "" }, + { "nv!r27s18q28", "" }, + { "nv!r2d7c1d8", "" }, + { "nv!renderer", "" }, + { "nv!renderqualityflags", "" }, + { "nv!rmos_debug_mask", "" }, + { "nv!rmos_set_production_mode", "" }, + { "nv!s3tcquality", "" }, + { "nv!shaderatomics", "" }, + { "nv!shadercacheinitsize", "" }, + { "nv!shader_disk_cache_path", "" }, + { "nv!shader_disk_cache_read_only", "" }, + { "nv!shaderobjects", "" }, + { "nv!shaderportabilitywarnings", "" }, + { "nv!shaderwarningsaserrors", "" }, + { "nv!skiptexturehostcopies", "" }, + { "nv!sli_dli_control", "" }, + { "nv!sparsetexture", "" }, + { "nv!spinlooptimeout", "" }, + { "nv!sync_to_vblank", "" }, + { "nv!sysheapreuseratio", "" }, + { "nv!sysmemtexturepromotion", "" }, + { "nv!targetflushcount", "" }, + { "nv!tearingfreeswappresent", "" }, + { "nv!tegra.refresh", "" }, + { "nv!texclampbehavior", "" }, + { "nv!texlodbias", "" }, + { "nv!texmemoryspaceenables", "" }, + { "nv!textureprecache", "" }, + { "nv!threadcontrol", "" }, + { "nv!threadcontrol2", "" }, + { "nv!tvmr.avp.logs", "" }, + { "nv!tvmr.buffer.logs", "" }, + { "nv!tvmr.dec.prof", "" }, + { "nv!tvmr.deint.logs", "" }, + { "nv!tvmr.dfs.logs", "" }, + { "nv!tvmr.ffprof.logs", "" }, + { "nv!tvmr.game.stream", "" }, + { "nv!tvmr.general.logs", "" }, + { "nv!tvmr.input.dump", "" }, + { "nv!tvmr.seeking.logs", "" }, + { "nv!tvmr.ts_pulldown", "" }, + { "nv!usegvievents", "" }, + { "nv!vbomemoryspaceenables", "" }, + { "nv!vcc_debug_ip", "" }, + { "nv!vcc_verbose_level", "" }, + { "nv!vertexlimit", "" }, + { "nv!viccomposer.filter", "" }, + { "nv!videostats-enable", "" }, + { "nv!vidheapreuseratio", "" }, + { "nv!vpipe", "" }, + { "nv!vpipeformatbloatlimit", "" }, + { "nv!wglmessageboxonabort", "" }, + { "nv!writeinfolog", "" }, + { "nv!writeprogramobjectassembly", "" }, + { "nv!writeprogramobjectsource", "" }, + { "nv!xnvadapterpresent", "" }, + { "nv!yield", "" }, + { "nv!yieldfunction", "" }, + { "nv!yieldfunctionfast", "" }, + { "nv!yieldfunctionslow", "" }, + { "nv!yieldfunctionwaitfordcqueue", "" }, + { "nv!yieldfunctionwaitforframe", "" }, + { "nv!yieldfunctionwaitforgpu", "" }, + { "nv!zbctableaddhysteresis", "" }, + { "pcm!enable", true }, + { "pctl!intermittent_task_interval_seconds", 21600 }, + { "prepo!devmenu_prepo_page_view", false }, + { "prepo!background_processing", true }, + { "prepo!transmission_interval_min", 10 }, + { "prepo!transmission_retry_interval", 3600 }, + { "psm!evaluation_log_enabled", false }, + { "snap_shot_dump!auto_dump", false }, + { "snap_shot_dump!output_dir", "%USERPROFILE%/Documents/Nintendo/NXDMP" }, + { "snap_shot_dump!full_dump", false }, + { "systemconfig!field_testing", false }, + { "systemconfig!exhivision", false }, + { "systempowerstate!always_reboot", false }, + { "systempowerstate!power_state_message_emulation_trigger_time", 0 }, + { "systempowerstate!power_state_message_to_emulate", 0 }, + { "target_manager!device_name", "" }, + { "vulnerability!needs_update_vulnerability_policy", 0 }, + { "apm!performance_mode_policy", "auto" }, + { "apm!sdev_throttling_enabled", true }, + { "apm!sdev_throttling_additional_delay_us", 16000 }, + { "apm!battery_draining_enabled", false }, + { "apm!sdev_cpu_overclock_enabled", false }, + { "bcat!production_mode", true }, + { "bpc!enable_quasi_off", true }, + { "bsp0!usb", "UDS" }, + { "bsp0!tm_transport", "USB" }, + { "bluetooth_debug!skip_boot", false }, + { "contents_delivery!enable_debug_api", false }, + { "eupld!upload_enabled", true }, + { "fatal!transition_to_fatal", true }, + { "fatal!show_extra_info", false }, + { "gpu_core_dump!auto_dump", false }, + { "hid_debug!enables_debugpad", false }, + { "hid_debug!manages_devices", true }, + { "hid_debug!emulate_future_device", false }, + { "hid_debug!emulate_firmware_update_failure", false }, + { "hid_debug!emulate_mcu_hardware_error", false }, + { "hid_debug!firmware_update_failure_emulation_mode", 0 }, + { "jit_debug!enable_jit_debug", false }, + { "npns!background_processing", true }, + { "npns!logmanager_redirection", true }, + { "npns!sleep_processing_timeout", 30 }, + { "npns!sleep_periodic_interval", 10800 }, + { "npns!sleep_max_try_count", 5 }, + { "npns!test_mode", false }, + { "ns.applet!overlay_applet_id", "0x010000000000100c" }, + { "ns.applet!system_applet_id", "0x0100000000001000" }, + { "ns.applet!shop_applet_id", "0x010000000000100b" }, + { "ns.autoboot!enabled", true }, + { "ns.pseudodeviceid!reset_pseudo_device_id", false }, + { "nsd!environment_identifier", "lp1" }, + { "nsd!test_mode", false }, + { "ntc!is_autonomic_correction_enabled", true }, + { "ntc!autonomic_correction_interval_seconds", 432000 }, + { "ntc!autonomic_correction_failed_retry_interval_seconds", 1800 }, + { "ntc!autonomic_correction_immediate_try_count_max", 4 }, + { "ntc!autonomic_correction_immediate_try_interval_milliseconds", 5000 }, + { "nv!nv_graphics_firmware_memory_margin", false }, + { "omm!operation_mode_policy", "auto" }, + { "omm!sleep_fade_in_ms", 50 }, + { "omm!sleep_fade_out_ms", 100 }, + { "omm!charging_sign_ms", 3000 }, + { "omm!low_battery_sign_ms", 3000 }, + { "omm!sign_fade_in_ms", 0 }, + { "omm!sign_fade_out_ms", 400 }, + { "omm!sign_wait_layer_visible_ms", 100 }, + { "omm!startup_fade_in_ms", 200 }, + { "omm!startup_fade_out_ms", 400 }, + { "omm!backlight_off_ms_on_handheld_switch", 150 }, + { "omm!sleep_on_ac_ok_boot", true }, + { "pdm!save_playlog", true }, + { "productinfo!product_name", "Nintendo Switch" }, + { "productinfo!cec_osd_name", "NintendoSwitch" }, + { "ro!ease_nro_restriction", false }, + { "settings_debug!is_debug_mode_enabled", false }, + { "systemreport!enabled", true }, + { "systemsleep!enter_sleep", true }, + { "systemsleep!enter_sc7", true }, + { "systemsleep!keep_vdd_core", true }, + { "systemsleep!disable_tma_sleep", false }, + { "systemsleep!disable_auto_sleep", false }, + { "systemsleep!override_auto_sleep_time", 0 }, + { "systemsleep!sleep_pending_time_ms", 15000 }, + { "systemsleep!hush_time_after_brief_power_button_press_ms", 1000 }, + { "systemsleep!transition_timeout_sec", 60 }, + { "systemsleep!dummy_event_auto_wake", false }, + { "systemupdate!debug_id", "0x0000000000000000" }, + { "systemupdate!debug_version", 0 }, + { "systemupdate!bgnup_retry_seconds", 60 }, + { "systemupdate!enable_background_download_stress_testing", false }, + { "systemupdate!debug_id_for_content_delivery", "0x0000000000000000" }, + { "systemupdate!debug_version_for_content_delivery", 0 }, + { "systemupdate!assumed_system_applet_version", 0 }, + { "tc!iir_filter_gain_soc", 100 }, + { "tc!iir_filter_gain_pcb", 100 }, + { "tc!tskin_soc_coefficients_handheld", "[5464, 174190]" }, + { "tc!tskin_soc_coefficients_console", "[6182, 112480]" }, + { "tc!tskin_pcb_coefficients_handheld", "[5464, 174190]" }, + { "tc!tskin_pcb_coefficients_console", "[6182, 112480]" }, + { "tc!tskin_select", "both" }, + { "tc!tskin_rate_table_handheld", "[[-1000000, 40000, 0, 0], [36000, 43000, 51, 51], [43000, 48000, 51, 102], [48000, 53000, 102, 153], [53000, 1000000, 153, 153], [48000, 1000000, 153, 153]]" }, + { "tc!tskin_rate_table_console", "[[-1000000, 43000, 51, 51], [43000, 53000, 51, 153], [53000, 58000, 153, 255], [58000, 1000000, 255, 255]]" }, + { "tc!rate_select", "both" }, + { "tc!log_enabled", false }, + { "tc!sleep_enabled", true }, + { "time!standard_steady_clock_test_offset_minutes", 0 }, + { "time!standard_steady_clock_rtc_update_interval_minutes", 5 }, + { "time!standard_network_clock_sufficient_accuracy_minutes", 43200 }, + { "usb!usb30_force_enabled", false }, + { "wlan_debug!skip_wlan_boot", false }, + }; + } +} diff --git a/Ryujinx.HLE/OsHle/Services/Sfdnsres/IResolver.cs b/Ryujinx.Core/OsHle/Services/Sfdnsres/IResolver.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Sfdnsres/IResolver.cs rename to Ryujinx.Core/OsHle/Services/Sfdnsres/IResolver.cs diff --git a/Ryujinx.HLE/OsHle/Services/Sm/IUserInterface.cs b/Ryujinx.Core/OsHle/Services/Sm/IUserInterface.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Sm/IUserInterface.cs rename to Ryujinx.Core/OsHle/Services/Sm/IUserInterface.cs diff --git a/Ryujinx.HLE/OsHle/Services/Ssl/ISslService.cs b/Ryujinx.Core/OsHle/Services/Ssl/ISslService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Ssl/ISslService.cs rename to Ryujinx.Core/OsHle/Services/Ssl/ISslService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Time/IStaticService.cs b/Ryujinx.Core/OsHle/Services/Time/IStaticService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Time/IStaticService.cs rename to Ryujinx.Core/OsHle/Services/Time/IStaticService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs b/Ryujinx.Core/OsHle/Services/Time/ISteadyClock.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs rename to Ryujinx.Core/OsHle/Services/Time/ISteadyClock.cs diff --git a/Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs b/Ryujinx.Core/OsHle/Services/Time/ISystemClock.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs rename to Ryujinx.Core/OsHle/Services/Time/ISystemClock.cs diff --git a/Ryujinx.HLE/OsHle/Services/Time/ITimeZoneService.cs b/Ryujinx.Core/OsHle/Services/Time/ITimeZoneService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Time/ITimeZoneService.cs rename to Ryujinx.Core/OsHle/Services/Time/ITimeZoneService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Time/SystemClockType.cs b/Ryujinx.Core/OsHle/Services/Time/SystemClockType.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Time/SystemClockType.cs rename to Ryujinx.Core/OsHle/Services/Time/SystemClockType.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/Display.cs b/Ryujinx.Core/OsHle/Services/Vi/Display.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/Display.cs rename to Ryujinx.Core/OsHle/Services/Vi/Display.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs b/Ryujinx.Core/OsHle/Services/Vi/GbpBuffer.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs rename to Ryujinx.Core/OsHle/Services/Vi/GbpBuffer.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/IApplicationDisplayService.cs b/Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/IApplicationDisplayService.cs rename to Ryujinx.Core/OsHle/Services/Vi/IApplicationDisplayService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/IApplicationRootService.cs b/Ryujinx.Core/OsHle/Services/Vi/IApplicationRootService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/IApplicationRootService.cs rename to Ryujinx.Core/OsHle/Services/Vi/IApplicationRootService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/IHOSBinderDriver.cs b/Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/IHOSBinderDriver.cs rename to Ryujinx.Core/OsHle/Services/Vi/IHOSBinderDriver.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/IManagerDisplayService.cs b/Ryujinx.Core/OsHle/Services/Vi/IManagerDisplayService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/IManagerDisplayService.cs rename to Ryujinx.Core/OsHle/Services/Vi/IManagerDisplayService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/IManagerRootService.cs b/Ryujinx.Core/OsHle/Services/Vi/IManagerRootService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/IManagerRootService.cs rename to Ryujinx.Core/OsHle/Services/Vi/IManagerRootService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/ISystemDisplayService.cs b/Ryujinx.Core/OsHle/Services/Vi/ISystemDisplayService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/ISystemDisplayService.cs rename to Ryujinx.Core/OsHle/Services/Vi/ISystemDisplayService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/ISystemRootService.cs b/Ryujinx.Core/OsHle/Services/Vi/ISystemRootService.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/ISystemRootService.cs rename to Ryujinx.Core/OsHle/Services/Vi/ISystemRootService.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/NvFlinger.cs b/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/NvFlinger.cs rename to Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs diff --git a/Ryujinx.HLE/OsHle/Services/Vi/Parcel.cs b/Ryujinx.Core/OsHle/Services/Vi/Parcel.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Services/Vi/Parcel.cs rename to Ryujinx.Core/OsHle/Services/Vi/Parcel.cs diff --git a/Ryujinx.HLE/OsHle/SystemLanguage.cs b/Ryujinx.Core/OsHle/SystemLanguage.cs similarity index 100% rename from Ryujinx.HLE/OsHle/SystemLanguage.cs rename to Ryujinx.Core/OsHle/SystemLanguage.cs diff --git a/Ryujinx.HLE/OsHle/SystemStateMgr.cs b/Ryujinx.Core/OsHle/SystemStateMgr.cs similarity index 100% rename from Ryujinx.HLE/OsHle/SystemStateMgr.cs rename to Ryujinx.Core/OsHle/SystemStateMgr.cs diff --git a/Ryujinx.HLE/OsHle/Utilities/EndianSwap.cs b/Ryujinx.Core/OsHle/Utilities/EndianSwap.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Utilities/EndianSwap.cs rename to Ryujinx.Core/OsHle/Utilities/EndianSwap.cs diff --git a/Ryujinx.HLE/OsHle/Utilities/IntUtils.cs b/Ryujinx.Core/OsHle/Utilities/IntUtils.cs similarity index 100% rename from Ryujinx.HLE/OsHle/Utilities/IntUtils.cs rename to Ryujinx.Core/OsHle/Utilities/IntUtils.cs diff --git a/Ryujinx.HLE/PerformanceStatistics.cs b/Ryujinx.Core/PerformanceStatistics.cs similarity index 100% rename from Ryujinx.HLE/PerformanceStatistics.cs rename to Ryujinx.Core/PerformanceStatistics.cs diff --git a/Ryujinx.HLE/Ryujinx.Core.csproj b/Ryujinx.Core/Ryujinx.Core.csproj similarity index 100% rename from Ryujinx.HLE/Ryujinx.Core.csproj rename to Ryujinx.Core/Ryujinx.Core.csproj diff --git a/Ryujinx.HLE/Settings/ColorSet.cs b/Ryujinx.Core/Settings/ColorSet.cs similarity index 100% rename from Ryujinx.HLE/Settings/ColorSet.cs rename to Ryujinx.Core/Settings/ColorSet.cs diff --git a/Ryujinx.HLE/Settings/SystemSettings.cs b/Ryujinx.Core/Settings/SystemSettings.cs similarity index 100% rename from Ryujinx.HLE/Settings/SystemSettings.cs rename to Ryujinx.Core/Settings/SystemSettings.cs diff --git a/Ryujinx.HLE/Switch.cs b/Ryujinx.Core/Switch.cs similarity index 100% rename from Ryujinx.HLE/Switch.cs rename to Ryujinx.Core/Switch.cs diff --git a/Ryujinx.HLE/VirtualFileSystem.cs b/Ryujinx.Core/VirtualFileSystem.cs similarity index 100% rename from Ryujinx.HLE/VirtualFileSystem.cs rename to Ryujinx.Core/VirtualFileSystem.cs