pcsx2 icon indicating copy to clipboard operation
pcsx2 copied to clipboard

Colin McRae Rally 2005 - Game looks too dark, green and purple in GSdx HW

Open FlatOutPS2 opened this issue 9 years ago • 5 comments

-PCSX2 version: 1.5.0-dev-1230 2016-09-03 12:17:59

-PCSX2 options: Defaults, no settings modifications affect the issue

-Plugins used: GSdx, SPU2-X, LilyPad, Gigaherz CDVD, the rest are null plugins

-Plugin settings: All renderers

-Description: Some effects are making the game look too dark with distinct green and purple tints in all Hardware modes. The ground and sky textures are black in D3D HW renderers unless CRC Hack Level is set to Partial or lower, with Partial (and with OGL HW) the textures are visible but still very dark. It improves further with Blending Unit Accuracy set to High or above. Skipdraw set to 3 brightens the world to appropriate levels, but green/purple tints remain, along with other odd effects and black some black textures. The cars, trees and other 3D objects are always shown correctly.

In software mode, the game does not have the green/purple effects, but instead the game looks way too bright. EDIT: This software mode issue has since been resolved.

-How to replicate: Boot the game and start a rally.

-Last known version to work: Unknown, probably never worked

-PC specifications: CPU: Intel Core i5 GPU: AMD Radeon HD 6000 OS: Windows 7 64-bit

cmr

GS Dump: CMR 2005.zip

FlatOutPS2 avatar Sep 03 '16 17:09 FlatOutPS2

Tested in r2779 for changes. Not much is different since this bug report was started. No wonder this was among the titles I didn't bother before to even rip, such a shitty game all around with its floaty cars.

Rant aside, here's the findings.

Basic blending: unknown

High+ blending: unknown

High+ and autoflush: unknown

All of the above + skipdraw 1-3 (removes lots of shadows): unknown

No gamehacks or EE/VU round/clamp modes made a difference in graphics or gameplay. The timing issues with the cameras are still present too. Did not notice any issues with the co-driver, as per the wiki, in him being weird and repeating lines. The ghost itself appears to launch on time and drive normally but I couldn't be bothered to test that part extensively.

Whatever this game is doing, it's evil.

janitor-raus avatar Jan 27 '22 13:01 janitor-raus

issue_1546.zip updated GS dump

Mrlinkwii avatar Jan 09 '24 16:01 Mrlinkwii

still mostly an issue as of v2.1.194 , but their is a small change with a stripe to the left (at-least in the gs dump provided) Image

Mrlinkwii avatar Oct 09 '24 20:10 Mrlinkwii

The band on the left seen earlier only occurs at Native resolution, it disappears if any upscaling is applied. It is related to the Align Sprite fix. The brightness has to do with blending, seems the game requires a minimum of High. The rest is as broken as we remember it.

Image

janitor-raus avatar Oct 10 '24 10:10 janitor-raus

Image Setting the weather condition to Rain the game does render everything correctly for some reasons, without any graphical bugs

ShephardB3 avatar Nov 09 '24 22:11 ShephardB3

Explanation from ref what's happening here:

draw 60 FBMSK 0x3fff so write to G A draw 16->0 (7->0) texture read 0->16 (0->7) Shuffle is G<->A in 16bit point 0, 0 (pixel 0 RG) 102 142 -> 164 142

point 7,0 (pixel 7 RG) 102 141 -> 162 141

point 8,0 (pixel 0 BA) 162 178 -> 102 178

point 15,0 (pixel 7 BA) 164 178 -> 102 178

Okay to explain what's going on here, the draw goes from 16->0 and the texture goes from 0->16 which is pixels 0-7 in real 32bit space so the colours as swaped 0 with 7, 1 with 6, 2 with 5 etc, this example shows 0 and 7

in 32bit A B G R A B G R point 0,0 - 102 178 164 142 -> 162 178 102 142 point 7,0 - 102 178 162 141 -> 164 178 102 141

as you can see, point 7's alpha becomes the green from point 0, green becomes alpha from point 0, same other way for point 0

draw 61 FBMSK 0x3fff so write to G A draw 0->7 (0->7 RG) texture read 8->0 (7->0 RG) Shuffle is G<->G in 16bit

The purpose of this shuffle is to just swap the greens back to their correct pixels

hypothesis: They are backing up the green in to the alpha channel


draw 140 Repeat of draw 60 - alpha is still reversed here from 60-61, so alpha gets moved in to green the "right" way around. and the newer green becomes the alpha the wrong way around.

draw 141 FBMSK 0x3fff so write to G A draw 15->8 (7->0 BA) texture read 8->15 (0->7 BA)

The purpose of this shuffle is to just swap the alphas back to their correct pixels

lightningterror avatar May 14 '25 20:05 lightningterror

Fixed in https://github.com/PCSX2/pcsx2/pull/13142

lightningterror avatar Aug 28 '25 16:08 lightningterror