aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.ShaderTools/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.ShaderTools/Program.cs')
-rw-r--r--Ryujinx.ShaderTools/Program.cs18
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);
}