Posts: 6.069
Threads: 68
Joined: May 2010
Reputation:
167
Location: Grenoble, France
05-09-2016, 11:23 PM
(This post was last modified: 05-09-2016, 11:28 PM by gregory.)
Here a quick try on tekken5
4x:
And with the merge sprite hack (and only this one), picture feels nicer except the ghosting
Could worth to investigate it further.
Here the same with the Half-Pixel Offset hack too (so both hack)
Picture is rather nice
Sponsored links
Posts: 20.326
Threads: 405
Joined: Aug 2005
Reputation:
554
Location: England
What's the speed like though?
Posts: 6.069
Threads: 68
Joined: May 2010
Reputation:
167
Location: Grenoble, France
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.
Posts: 6.069
Threads: 68
Joined: May 2010
Reputation:
167
Location: Grenoble, France
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.
Posts: 20.326
Threads: 405
Joined: Aug 2005
Reputation:
554
Location: England
That would be great
Posts: 21.718
Threads: 401
Joined: Sep 2013
Reputation:
476
Location: 私の夢の中
05-10-2016, 01:57 AM
(This post was last modified: 05-10-2016, 06:16 AM by Blyss Sarania.)
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!
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Posts: 63
Threads: 6
Joined: Jul 2015
Reputation:
0
05-10-2016, 09:10 AM
(This post was last modified: 05-10-2016, 09:10 AM by tabnk.)
Can screen shaking be fix in tekken 5 with Progressive mode?
Posts: 6.069
Threads: 68
Joined: May 2010
Reputation:
167
Location: Grenoble, France
@tabnk, seriously stop dreaming 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.
Posts: 63
Threads: 6
Joined: Jul 2015
Reputation:
0
Only visible bug left for Tekken 5 is shaking screen if it can fix than it is almost perfect
Posts: 3.031
Threads: 4
Joined: Aug 2015
Reputation:
134
05-10-2016, 11:50 AM
(This post was last modified: 05-10-2016, 11:50 AM by FlatOut.)
It works great on the moonlit wilderness stage, but it completely removes the heat effect on the burning temple stage.
|