diff options
Diffstat (limited to 'src/Ryujinx.HLE/Loaders/Mods')
-rw-r--r-- | src/Ryujinx.HLE/Loaders/Mods/IPSPatcher.cs | 27 | ||||
-rw-r--r-- | src/Ryujinx.HLE/Loaders/Mods/IPSwitchPatcher.cs | 50 | ||||
-rw-r--r-- | src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs | 6 |
3 files changed, 44 insertions, 39 deletions
diff --git a/src/Ryujinx.HLE/Loaders/Mods/IPSPatcher.cs b/src/Ryujinx.HLE/Loaders/Mods/IPSPatcher.cs index 510fec05..cf316b56 100644 --- a/src/Ryujinx.HLE/Loaders/Mods/IPSPatcher.cs +++ b/src/Ryujinx.HLE/Loaders/Mods/IPSPatcher.cs @@ -1,13 +1,12 @@ using Ryujinx.Common.Logging; using System; using System.IO; -using System.Text; namespace Ryujinx.HLE.Loaders.Mods { class IpsPatcher { - MemPatch _patches; + readonly MemPatch _patches; public IpsPatcher(BinaryReader reader) { @@ -20,15 +19,15 @@ namespace Ryujinx.HLE.Loaders.Mods private static MemPatch ParseIps(BinaryReader reader) { - ReadOnlySpan<byte> IpsHeaderMagic = "PATCH"u8; - ReadOnlySpan<byte> IpsTailMagic = "EOF"u8; - ReadOnlySpan<byte> Ips32HeaderMagic = "IPS32"u8; - ReadOnlySpan<byte> Ips32TailMagic = "EEOF"u8; + ReadOnlySpan<byte> ipsHeaderMagic = "PATCH"u8; + ReadOnlySpan<byte> ipsTailMagic = "EOF"u8; + ReadOnlySpan<byte> ips32HeaderMagic = "IPS32"u8; + ReadOnlySpan<byte> ips32TailMagic = "EEOF"u8; - MemPatch patches = new MemPatch(); - var header = reader.ReadBytes(IpsHeaderMagic.Length).AsSpan(); + MemPatch patches = new(); + var header = reader.ReadBytes(ipsHeaderMagic.Length).AsSpan(); - if (header.Length != IpsHeaderMagic.Length) + if (header.Length != ipsHeaderMagic.Length) { return null; } @@ -36,15 +35,15 @@ namespace Ryujinx.HLE.Loaders.Mods bool is32; ReadOnlySpan<byte> tailSpan; - if (header.SequenceEqual(IpsHeaderMagic)) + if (header.SequenceEqual(ipsHeaderMagic)) { is32 = false; - tailSpan = IpsTailMagic; + tailSpan = ipsTailMagic; } - else if (header.SequenceEqual(Ips32HeaderMagic)) + else if (header.SequenceEqual(ips32HeaderMagic)) { is32 = true; - tailSpan = Ips32TailMagic; + tailSpan = ips32TailMagic; } else { @@ -114,4 +113,4 @@ namespace Ryujinx.HLE.Loaders.Mods patches.AddFrom(_patches); } } -}
\ No newline at end of file +} diff --git a/src/Ryujinx.HLE/Loaders/Mods/IPSwitchPatcher.cs b/src/Ryujinx.HLE/Loaders/Mods/IPSwitchPatcher.cs index 416fc1b4..693e0388 100644 --- a/src/Ryujinx.HLE/Loaders/Mods/IPSwitchPatcher.cs +++ b/src/Ryujinx.HLE/Loaders/Mods/IPSwitchPatcher.cs @@ -14,7 +14,7 @@ namespace Ryujinx.HLE.Loaders.Mods Normal, String, EscapeChar, - Comment + Comment, } private readonly StreamReader _reader; @@ -31,13 +31,13 @@ namespace Ryujinx.HLE.Loaders.Mods } _reader = reader; - BuildId = header.Substring(BidHeader.Length).TrimEnd().TrimEnd('0'); + BuildId = header[BidHeader.Length..].TrimEnd().TrimEnd('0'); } // Uncomments line and unescapes C style strings within private static string PreprocessLine(string line) { - StringBuilder str = new StringBuilder(); + StringBuilder str = new(); Token state = Token.Normal; for (int i = 0; i < line.Length; ++i) @@ -56,29 +56,32 @@ namespace Ryujinx.HLE.Loaders.Mods case Token.String: state = c switch { - '"' => Token.Normal, + '"' => Token.Normal, '\\' => Token.EscapeChar, - _ => Token.String + _ => Token.String, }; break; case Token.EscapeChar: state = Token.String; c = c switch { - 'a' => '\a', - 'b' => '\b', - 'f' => '\f', - 'n' => '\n', - 'r' => '\r', - 't' => '\t', - 'v' => '\v', + 'a' => '\a', + 'b' => '\b', + 'f' => '\f', + 'n' => '\n', + 'r' => '\r', + 't' => '\t', + 'v' => '\v', '\\' => '\\', - _ => '?' + _ => '?', }; break; } - if (state == Token.Comment) break; + if (state == Token.Comment) + { + break; + } if (state < Token.EscapeChar) { @@ -112,14 +115,17 @@ namespace Ryujinx.HLE.Loaders.Mods // Big Endian static byte[] Hex2ByteArrayBE(string hexstr) { - if ((hexstr.Length & 1) == 1) return null; + if ((hexstr.Length & 1) == 1) + { + return null; + } byte[] bytes = new byte[hexstr.Length >> 1]; for (int i = 0; i < hexstr.Length; i += 2) { int high = ParseHexByte((byte)hexstr[i]); - int low = ParseHexByte((byte)hexstr[i + 1]); + int low = ParseHexByte((byte)hexstr[i + 1]); bytes[i >> 1] = (byte)((high << 4) | low); } @@ -147,11 +153,11 @@ namespace Ryujinx.HLE.Loaders.Mods return null; } - MemPatch patches = new MemPatch(); + MemPatch patches = new(); - bool enabled = false; + bool enabled = false; bool printValues = false; - int offset_shift = 0; + int offsetShift = 0; string line; int lineNum = 0; @@ -205,7 +211,7 @@ namespace Ryujinx.HLE.Loaders.Mods if (tokens[1] == "offset_shift") { - if (tokens.Length != 3 || !ParseInt(tokens[2], out offset_shift)) + if (tokens.Length != 3 || !ParseInt(tokens[2], out offsetShift)) { ParseWarn(); @@ -244,7 +250,7 @@ namespace Ryujinx.HLE.Loaders.Mods continue; } - offset += offset_shift; + offset += offsetShift; if (printValues) { @@ -272,4 +278,4 @@ namespace Ryujinx.HLE.Loaders.Mods patches.AddFrom(Parse()); } } -}
\ No newline at end of file +} diff --git a/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs b/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs index f9db7c69..0a1f12b1 100644 --- a/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs +++ b/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs @@ -7,7 +7,7 @@ namespace Ryujinx.HLE.Loaders.Mods { public class MemPatch { - readonly Dictionary<uint, byte[]> _patches = new Dictionary<uint, byte[]>(); + readonly Dictionary<uint, byte[]> _patches = new(); /// <summary> /// Adds a patch to specified offset. Overwrites if already present. @@ -69,7 +69,7 @@ namespace Ryujinx.HLE.Loaders.Mods foreach (var (offset, patch) in _patches.OrderBy(item => item.Key)) { int patchOffset = (int)offset; - int patchSize = patch.Length; + int patchSize = patch.Length; if (patchOffset < protectedOffset || patchOffset > memory.Length) { @@ -93,4 +93,4 @@ namespace Ryujinx.HLE.Loaders.Mods return count; } } -}
\ No newline at end of file +} |