From b7ed06327bf625bdc1aa55899665f544757e9b76 Mon Sep 17 00:00:00 2001
From: Exophase <exophase@gmail.com>
Date: Fri, 23 Dec 2011 02:43:58 +0200
Subject: [PATCH] psx_gpu: texture cache fix2

---
 plugins/gpu_neon/psx_gpu/psx_gpu.c       | 5 +++++
 plugins/gpu_neon/psx_gpu/psx_gpu_parse.c | 3 +--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu.c b/plugins/gpu_neon/psx_gpu/psx_gpu.c
index 2acfedc6..5c49b228 100644
--- a/plugins/gpu_neon/psx_gpu/psx_gpu.c
+++ b/plugins/gpu_neon/psx_gpu/psx_gpu.c
@@ -281,6 +281,7 @@ void update_texture_4bpp_cache(psx_gpu_struct *psx_gpu)
         while(sub_x)
         {
           texel_block = *vram_ptr;
+
           texture_page_ptr[0] = texel_block & 0xF;
           texture_page_ptr[1] = (texel_block >> 4) & 0xF;
           texture_page_ptr[2] = (texel_block >> 8) & 0xF;
@@ -2017,6 +2018,10 @@ void texture_blocks_16bpp(psx_gpu_struct *psx_gpu)
 
 
 #define shade_blocks_textured_false_modulated_check_dithered(target)           \
+  if(psx_gpu->triangle_color == 0x808080)                                      \
+  {                                                                            \
+    false_modulated_blocks += num_blocks;                                      \
+  }                                                                            \
 
 #define shade_blocks_textured_false_modulated_check_undithered(target)         \
   if(psx_gpu->triangle_color == 0x808080)                                      \
diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu_parse.c b/plugins/gpu_neon/psx_gpu/psx_gpu_parse.c
index fc9f3fba..2ef823d7 100644
--- a/plugins/gpu_neon/psx_gpu/psx_gpu_parse.c
+++ b/plugins/gpu_neon/psx_gpu/psx_gpu_parse.c
@@ -96,8 +96,7 @@ void set_texture(psx_gpu_struct *psx_gpu, u32 texture_settings)
     u32 texture_mode = (texture_settings >> 7) & 0x3;
     u32 render_state_base = psx_gpu->render_state_base;
 
-    if(psx_gpu->current_texture_page != new_texture_page)
-      flush_render_block_buffer(psx_gpu);
+    flush_render_block_buffer(psx_gpu);
 
     render_state_base &= ~(0xF << 6);
     render_state_base |= ((texture_settings >> 5) & 0xF) << 6;
-- 
2.39.5