From 6a4159d73eb11a9d5a0001510b669996980b8b8a Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Sat, 21 Oct 2023 06:50:24 +0200
Subject: [PATCH] add fallback solution for 32bit texture format

---
 src/render_d3d9.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/src/render_d3d9.c b/src/render_d3d9.c
index ead6db2..daf7393 100644
--- a/src/render_d3d9.c
+++ b/src/render_d3d9.c
@@ -304,6 +304,35 @@ static BOOL d3d9_create_resources()
                         0));
             }
         }
+        else if (g_ddraw->bpp == 32)
+        {
+            BOOL error = FAILED(
+                IDirect3DDevice9_CreateTexture(
+                    g_d3d9.device,
+                    g_d3d9.tex_width,
+                    g_d3d9.tex_height,
+                    1,
+                    0,
+                    D3DFMT_X8R8G8B8,
+                    D3DPOOL_MANAGED,
+                    &g_d3d9.surface_tex[i],
+                    0));
+
+            if (error)
+            {
+                err = err || FAILED(
+                    IDirect3DDevice9_CreateTexture(
+                        g_d3d9.device,
+                        g_d3d9.tex_width,
+                        g_d3d9.tex_height,
+                        1,
+                        0,
+                        D3DFMT_A8R8G8B8,
+                        D3DPOOL_MANAGED,
+                        &g_d3d9.surface_tex[i],
+                        0));
+            }
+        }
         else
         {
             err = err || FAILED(
@@ -313,7 +342,7 @@ static BOOL d3d9_create_resources()
                     g_d3d9.tex_height,
                     1,
                     0,
-                    g_ddraw->bpp == 16 ? D3DFMT_R5G6B5 : g_ddraw->bpp == 32 ? D3DFMT_X8R8G8B8 : D3DFMT_L8,
+                    g_ddraw->bpp == 16 ? D3DFMT_R5G6B5 : D3DFMT_L8,
                     D3DPOOL_MANAGED,
                     &g_d3d9.surface_tex[i],
                     0));