diff options
Diffstat (limited to 'Ryujinx.ShaderTools/Program.cs')
-rw-r--r-- | Ryujinx.ShaderTools/Program.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Ryujinx.ShaderTools/Program.cs b/Ryujinx.ShaderTools/Program.cs index 25ac8d2a..567083e4 100644 --- a/Ryujinx.ShaderTools/Program.cs +++ b/Ryujinx.ShaderTools/Program.cs @@ -2,11 +2,27 @@ using Ryujinx.Graphics.Shader.Translation; using System; using System.IO; +using System.Runtime.InteropServices; namespace Ryujinx.ShaderTools { class Program { + private class GpuAccessor : IGpuAccessor + { + private readonly byte[] _data; + + public GpuAccessor(byte[] data) + { + _data = data; + } + + public T MemoryRead<T>(ulong address) where T : unmanaged + { + return MemoryMarshal.Cast<byte, T>(new ReadOnlySpan<byte>(_data).Slice((int)address))[0]; + } + } + static void Main(string[] args) { if (args.Length == 1 || args.Length == 2) @@ -20,7 +36,7 @@ namespace Ryujinx.ShaderTools byte[] data = File.ReadAllBytes(args[^1]); - string code = Translator.Translate(data, new TranslatorCallbacks(null, null), flags).Code; + string code = Translator.Translate(0, new GpuAccessor(data), flags).Code; Console.WriteLine(code); } |