psx_gpu: texture cache fix2
authorExophase <exophase@gmail.com>
Fri, 23 Dec 2011 00:43:58 +0000 (02:43 +0200)
committernotaz <notasas@gmail.com>
Fri, 23 Dec 2011 00:47:31 +0000 (02:47 +0200)
plugins/gpu_neon/psx_gpu/psx_gpu.c
plugins/gpu_neon/psx_gpu/psx_gpu_parse.c

index 2acfedc..5c49b22 100644 (file)
@@ -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)                                      \
index fc9f3fb..2ef823d 100644 (file)
@@ -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;