unai: Preserve MSB in light routines
[pcsx_rearmed.git] / plugins / gpu_unai / gpu_inner_light.h
index f90e8ec..f4f685b 100644 (file)
@@ -172,7 +172,8 @@ GPU_INLINE uint_fast16_t gpuLightingTXTGeneric(uint_fast16_t uSrc, u8 r5, u8 g5,
 {
        return (gpu_unai.LightLUT[((uSrc&0x7C00)>>5) | b5] << 10) |
               (gpu_unai.LightLUT[ (uSrc&0x03E0)     | g5] <<  5) |
-              (gpu_unai.LightLUT[((uSrc&0x001F)<<5) | r5]      );
+              (gpu_unai.LightLUT[((uSrc&0x001F)<<5) | r5]      ) |
+              (uSrc & 0x8000);
 }
 
 
@@ -194,7 +195,8 @@ GPU_INLINE uint_fast16_t gpuLightingTXTGouraudGeneric(uint_fast16_t uSrc, u32 gC
 {
        return (gpu_unai.LightLUT[((uSrc&0x7C00)>>5) | ((gCol>> 5)&0x1F)]<<10) |
               (gpu_unai.LightLUT[ (uSrc&0x03E0)     | ((gCol>>16)&0x1F)]<< 5) |
-              (gpu_unai.LightLUT[((uSrc&0x001F)<<5) |  (gCol>>27)      ]    );
+              (gpu_unai.LightLUT[((uSrc&0x001F)<<5) |  (gCol>>27)      ]) |
+              (uSrc & 0x8000);
 }