pcsx2
pcsx2 copied to clipboard
Colin McRae Rally 2005 - Game looks too dark, green and purple in GSdx HW
-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

GS Dump: CMR 2005.zip
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:

High+ blending:

High+ and autoflush:

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

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.
issue_1546.zip updated GS dump
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)
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.
Setting the weather condition to Rain the game does render everything correctly for some reasons, without any graphical bugs
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
Fixed in https://github.com/PCSX2/pcsx2/pull/13142