Okay, that was hard... Update on Shadow of the Colossus overbrightening bug:
I made some changes (wild guess) in gstexturecache.cpp... You can easily find this block of code... Take a look:
Code:
GSTexture* st = src->m_texture ? src->m_texture : dst->m_texture;
if (TEX0.PSM < 48) //to prevent Z-garbage
{
w += 1;
h += 1;
printf("Modified width and height by 1. \n");
}
GSTexture* dt = m_renderer->m_dev->CreateRenderTarget(w, h, false);
Hardware mode, original GSDX:
[
attachment=23207]
Hardware mode, hacked RenderTarget resolution:
[
attachment=23208]
Compare to Software mode:
[
attachment=23209]
But now I have slight problems with shadows and DoF effect positioning...
Here's what I think:
It seems that SotC NEEDS thin black border around the screen (RenderTarget) which takes part in this "whole screen bloom" calculation by... hmmm... I don't know how exactly... Maybe you will be able to find correct solution...
UPDATE: Now I do this "hack" only for TEX0.TBP0 == 0x03d00
Here's the result:
[
attachment=23210]
No problems with shadows, blur, DoF or screen border... Much less overbrightening... The game looks almost fine... The only problem is Bloom misplacement, because I've added pixels to the right and bottom sides...
I think that if you manage to add black border (all four sides) to the TEX0.TBP0 == 0x03d00, the "overbrightening bug" will be fixed...
UPDATE2 (last one for today):
Those "shadow creatures" seem to be rendered in TEX0.TBP0 == 0x03d00 too... Very consistent bug I have with my Hack... But everything else seems to be fine now...
[
attachment=23211]
This hack does not seem to work in Progressive mode at all... I guess it has a bit different TBP0 to fix...