diff --git a/Ryujinx.Graphics/Gal/GalTextureFormat.cs b/Ryujinx.Graphics/Gal/GalTextureFormat.cs
index 7d19dc26d..1a0cab77e 100644
--- a/Ryujinx.Graphics/Gal/GalTextureFormat.cs
+++ b/Ryujinx.Graphics/Gal/GalTextureFormat.cs
@@ -5,6 +5,7 @@ namespace Ryujinx.Graphics.Gal
         R32G32B32A32 = 0x1,
         R16G16B16A16 = 0x3,
         A8B8G8R8     = 0x8,
+        A2B10G10R10  = 0x9,
         R32          = 0xf,
         A1B5G5R5     = 0x14,
         B5G6R5       = 0x15,
diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
index 349c695e5..3fdcc4cce 100644
--- a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
+++ b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
@@ -73,6 +73,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL
                 case GalTextureFormat.R32G32B32A32: return (PixelFormat.Rgba, PixelType.Float);
                 case GalTextureFormat.R16G16B16A16: return (PixelFormat.Rgba, PixelType.HalfFloat);
                 case GalTextureFormat.A8B8G8R8:     return (PixelFormat.Rgba, PixelType.UnsignedByte);
+                case GalTextureFormat.A2B10G10R10:  return (PixelFormat.Rgba, PixelType.UnsignedInt2101010Reversed);
                 case GalTextureFormat.R32:          return (PixelFormat.Red,  PixelType.Float);
                 case GalTextureFormat.A1B5G5R5:     return (PixelFormat.Rgba, PixelType.UnsignedShort5551);
                 case GalTextureFormat.B5G6R5:       return (PixelFormat.Rgb,  PixelType.UnsignedShort565);
@@ -204,4 +205,4 @@ namespace Ryujinx.Graphics.Gal.OpenGL
             throw new ArgumentException(nameof(BlendFactor));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs b/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs
index ac8f75c5f..951010df6 100644
--- a/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs
+++ b/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs
@@ -31,6 +31,7 @@ namespace Ryujinx.HLE.Gpu.Texture
                 case GalTextureFormat.R32G32B32A32: return Texture.Width * Texture.Height * 16;
                 case GalTextureFormat.R16G16B16A16: return Texture.Width * Texture.Height * 8;
                 case GalTextureFormat.A8B8G8R8:     return Texture.Width * Texture.Height * 4;
+                case GalTextureFormat.A2B10G10R10:  return Texture.Width * Texture.Height * 4;
                 case GalTextureFormat.R32:          return Texture.Width * Texture.Height * 4;
                 case GalTextureFormat.A1B5G5R5:     return Texture.Width * Texture.Height * 2;
                 case GalTextureFormat.B5G6R5:       return Texture.Width * Texture.Height * 2;
diff --git a/Ryujinx.HLE/Gpu/Texture/TextureReader.cs b/Ryujinx.HLE/Gpu/Texture/TextureReader.cs
index 48bf1a90f..cbd93891b 100644
--- a/Ryujinx.HLE/Gpu/Texture/TextureReader.cs
+++ b/Ryujinx.HLE/Gpu/Texture/TextureReader.cs
@@ -13,6 +13,7 @@ namespace Ryujinx.HLE.Gpu.Texture
                 case GalTextureFormat.R32G32B32A32: return Read16Bpp   (Memory, Texture);
                 case GalTextureFormat.R16G16B16A16: return Read8Bpp    (Memory, Texture);
                 case GalTextureFormat.A8B8G8R8:     return Read4Bpp    (Memory, Texture);
+                case GalTextureFormat.A2B10G10R10:  return Read4Bpp    (Memory, Texture);
                 case GalTextureFormat.R32:          return Read4Bpp    (Memory, Texture);
                 case GalTextureFormat.A1B5G5R5:     return Read5551    (Memory, Texture);
                 case GalTextureFormat.B5G6R5:       return Read565     (Memory, Texture);