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: