Align sprite doesn't work in latest PCSX2
#11
Here a quick try on tekken5

4x:
   

And with the merge sprite hack (and only this one), picture feels nicer except the ghosting Wink
   

Could worth to investigate it further.

Here the same with the Half-Pixel Offset hack too (so both hack)
   

Picture is rather nice Smile
Reply

Sponsored links

#12
What's the speed like though? Tongue
[Image: ref-sig-anim.gif]

Reply
#13
My guess is very close of the normal speed. Above screenshot was done on dev build and mono-thread. And I guess my GPU doesn't 4x too well. The hack is quite small
Code:
#if defined(ENABLE_OGL_DEBUG) || 1
    {
        if (1 && (!m_channel_shuffle && m_vt.m_primclass == GS_SPRITE_CLASS) && tex && tex->m_target && PRIM->FST && (m_vt.m_eq.value & 0xCFFFF) == 0xCFFFF) {
            //const GSVector4 delta_p = m_vt.m_max.p - m_vt.m_min.p;
            //const GSVector4 delta_t = m_vt.m_max.t - m_vt.m_min.t;
            //GL_INS("SAMPLER: Dp %f %f Dt %f %f", delta_p.x, delta_p.y, delta_t.x, delta_t.y);
            //fprintf(stderr, "SAMPLER: Dp %f %f Dt %f %f\n", delta_p.x, delta_p.y, delta_t.x, delta_t.y);

            GSVertex* s = &m_vertex.buff[0];
            //fprintf(stderr, "Before %d %d => %d %d \n", s[0].XYZ.X, s[0].XYZ.Y, s[1].XYZ.Y, s[1].XYZ.Y);
            //fprintf(stderr, "SAMPLER: p %f %f OFFSET %d\n", m_vt.m_min.p.x, m_vt.m_max.p.x, m_context->XYOFFSET.OFX);

            s[0].XYZ.X = (16.0f * m_vt.m_min.p.x) + m_context->XYOFFSET.OFX;
            s[1].XYZ.X = (16.0f * m_vt.m_max.p.x) + m_context->XYOFFSET.OFX;
            s[0].XYZ.Y = (16.0f * m_vt.m_min.p.y) + m_context->XYOFFSET.OFY;
            s[1].XYZ.Y = (16.0f * m_vt.m_max.p.y) + m_context->XYOFFSET.OFY;

            //fprintf(stderr, "After %d %d => %d %d \n", s[0].XYZ.X, s[0].XYZ.Y, s[1].XYZ.Y, s[1].XYZ.Y);

            //fprintf(stderr, "Before %d %d => %d %d \n", s[0].U, s[0].V, s[1].U, s[1].V);

            s[0].U     = 16.0f * m_vt.m_min.t.x;
            s[0].V     = 16.0f * m_vt.m_min.t.y;
            s[1].U     = 16.0f * m_vt.m_max.t.x;
            s[1].V     = 16.0f * m_vt.m_max.t.y;

            //fprintf(stderr, "After %d %d => %d %d \n", s[0].U, s[0].V, s[1].U, s[1].V);

            m_vertex.head = m_vertex.tail = m_vertex.next = 2;
            m_index.tail = 2;
            //exit(0);
        }
    }
#endif
However it could break games that do strange post-processing.
Reply
#14
Edit: And I think we also need to fix the texture cache downsampling too.

Typically here (2x):
Game generate 1280x896 framebuffer
Texture cache will rescale it to 800x896
To finally render it to 1280x896

IMHO, we could avoid the middle step (bonus on perf) and avoid sucky interpolation.
Reply
#15
That would be great Smile
[Image: ref-sig-anim.gif]

Reply
#16
That'd be impressive if this kind of thing could be fixed! I think especially SO3 would look gorgeous upscaled to 4x or so but that weird render to texture business currently wrecks it. Also thanks for the explanations!
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#17
Can screen shaking be fix in tekken 5 with Progressive mode?
Reply
#18
@tabnk, seriously stop dreaming Tongue2 I can't do better

@others, You can try the new experimental hack with this option.
Code:
UserHacks_merge_pp_sprite = 1
Be aware of the interaction with others scaling hack.
Reply
#19
Only visible bug left for Tekken 5 is shaking screen if it can fix than it is almost perfect Smile
Reply
#20
It works great on the moonlit wilderness stage, but it completely removes the heat effect on the burning temple stage.
Reply




Users browsing this thread: 1 Guest(s)