pcsx2
pcsx2 copied to clipboard
[BUG]: FOG Inaccuracy

Our SW renderer currently does the equivalent of (Color * Fog + FogColor * (0x100 - Fog) + 0x80) >> 8. The GS appears to be doing (Color * Fog + FogColor * (0x100 - Fog)) >> 8
Additional GS Test Results
| VERT | FOGCOL | FOG | Output |
|---|---|---|---|
| 0 | 128 | 0 | 128 |
| 0 | 255 | 0 | 255 |
| 255 | 0 | 0 | 0 |
| 0 | 128 | 128 | 64 |
| 0 | 255 | 128 | 127 |
| 255 | 0 | 128 | 127 |
| 0 | 128 | 255 | 0 |
| 0 | 255 | 255 | 0 |
| 255 | 0 | 255 | 254 |
| 0 | 128 | 1 | 127 |
| 0 | 255 | 1 | 254 |
| 255 | 0 | 1 | 0 |
| 0 | 128 | 129 | 63 |
| 0 | 255 | 129 | 126 |
| 255 | 0 | 129 | 128 |
| 0 | 127 | 121 | 66 |
| 255 | 127 | 121 | 187 |
| 129 | 0 | 121 | 60 |
| 0 | 127 | 128 | 63 |
| 255 | 127 | 128 | 191 |
| 129 | 0 | 128 | 64 |
| 0 | 127 | 129 | 63 |
| 255 | 127 | 129 | 191 |
| 129 | 0 | 129 | 65 |
| 0 | 127 | 127 | 63 |
| 255 | 127 | 127 | 190 |
| 129 | 0 | 127 | 63 |
| 128 | 0 | 255 | 127 |
| 128 | 127 | 255 | 127 |
| 128 | 128 | 255 | 128 |