using System; namespace Ryujinx.Common { public static class EndianSwap { public static ushort Swap16(ushort value) => (ushort)(((value >> 8) & 0xff) | (value << 8)); public static int Swap32(int value) { uint uintVal = (uint)value; return (int)(((uintVal >> 24) & 0x000000ff) | ((uintVal >> 8) & 0x0000ff00) | ((uintVal << 8) & 0x00ff0000) | ((uintVal << 24) & 0xff000000)); } public static uint FromBigEndianToPlatformEndian(uint value) { uint result = value; if (BitConverter.IsLittleEndian) { result = (uint)EndianSwap.Swap32((int)result); } return result; } } }