mirror of https://github.com/PCSX2/pcsx2.git
GSdx: trying to fix gaps between sprites that may still appear with d3d in native res
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1402 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
edd6b785c1
commit
df8c611084
|
@ -167,7 +167,7 @@ GSSource : public CBaseFilter, private CCritSec, public IGSSource
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
CAutoPtr<GSSourceOutputPin> m_output;
|
GSSourceOutputPin* m_output;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -178,12 +178,17 @@ public:
|
||||||
, m_atpf(10000000i64 / fps)
|
, m_atpf(10000000i64 / fps)
|
||||||
, m_now(0)
|
, m_now(0)
|
||||||
{
|
{
|
||||||
m_output.Attach(new GSSourceOutputPin(m_size, m_atpf, this, this, hr));
|
m_output = new GSSourceOutputPin(m_size, m_atpf, this, this, hr);
|
||||||
|
|
||||||
// FIXME
|
// FIXME
|
||||||
if(fps == 60) m_atpf = 166834; // = 10000000i64 / 59.94
|
if(fps == 60) m_atpf = 166834; // = 10000000i64 / 59.94
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ~GSSource()
|
||||||
|
{
|
||||||
|
delete m_output;
|
||||||
|
}
|
||||||
|
|
||||||
DECLARE_IUNKNOWN;
|
DECLARE_IUNKNOWN;
|
||||||
|
|
||||||
int GetPinCount()
|
int GetPinCount()
|
||||||
|
@ -193,7 +198,7 @@ public:
|
||||||
|
|
||||||
CBasePin* GetPin(int n)
|
CBasePin* GetPin(int n)
|
||||||
{
|
{
|
||||||
return n == 0 ? m_output.m_p : NULL;
|
return n == 0 ? m_output : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IGSSource
|
// IGSSource
|
||||||
|
|
|
@ -29,6 +29,7 @@ CRC::Game CRC::m_games[] =
|
||||||
{0x42E05BAF, TomoyoAfter, JP},
|
{0x42E05BAF, TomoyoAfter, JP},
|
||||||
{0x7800DC84, Clannad, JP},
|
{0x7800DC84, Clannad, JP},
|
||||||
{0xA6167B59, Lamune, JP},
|
{0xA6167B59, Lamune, JP},
|
||||||
|
{0xDDB59F46, KyuuketsuKitanMoonties, JP},
|
||||||
{0xa39517ab, FFX, EU},
|
{0xa39517ab, FFX, EU},
|
||||||
{0xa39517ae, FFX, FR},
|
{0xa39517ae, FFX, FR},
|
||||||
{0x941bb7d9, FFX, DE},
|
{0x941bb7d9, FFX, DE},
|
||||||
|
|
|
@ -31,6 +31,7 @@ public:
|
||||||
TomoyoAfter,
|
TomoyoAfter,
|
||||||
Clannad,
|
Clannad,
|
||||||
Lamune,
|
Lamune,
|
||||||
|
KyuuketsuKitanMoonties,
|
||||||
FFX,
|
FFX,
|
||||||
FFX2,
|
FFX2,
|
||||||
FFXII,
|
FFXII,
|
||||||
|
|
|
@ -35,6 +35,8 @@ GSRenderer::GSRenderer(uint8* base, bool mt, void (*irq)(), GSDevice* dev)
|
||||||
m_aa1 = !!theApp.GetConfig("aa1", 0);
|
m_aa1 = !!theApp.GetConfig("aa1", 0);
|
||||||
m_blur = !!theApp.GetConfig("blur", 0);
|
m_blur = !!theApp.GetConfig("blur", 0);
|
||||||
|
|
||||||
|
if(m_nativeres) m_filter = 2;
|
||||||
|
|
||||||
s_n = 0;
|
s_n = 0;
|
||||||
s_dump = !!theApp.GetConfig("dump", 0);
|
s_dump = !!theApp.GetConfig("dump", 0);
|
||||||
s_save = !!theApp.GetConfig("save", 0);
|
s_save = !!theApp.GetConfig("save", 0);
|
||||||
|
|
|
@ -494,9 +494,9 @@ protected:
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region tomoyo after, clannad, lamune (palette uploaded in a point list, pure genius...)
|
#pragma region palette uploaded in a point list, pure genius...
|
||||||
|
|
||||||
if(m_game.title == CRC::TomoyoAfter || m_game.title == CRC::Clannad || m_game.title == CRC::Lamune)
|
if(m_game.title == CRC::TomoyoAfter || m_game.title == CRC::Clannad || m_game.title == CRC::Lamune || m_game.title == CRC::KyuuketsuKitanMoonties)
|
||||||
{
|
{
|
||||||
if(prim == GS_POINTLIST && !PRIM->TME)
|
if(prim == GS_POINTLIST && !PRIM->TME)
|
||||||
{
|
{
|
||||||
|
|
|
@ -211,6 +211,7 @@ void GSSettingsDlg::UpdateControls()
|
||||||
EnableWindow(GetDlgItem(m_hWnd, IDC_RESY), hw && !native);
|
EnableWindow(GetDlgItem(m_hWnd, IDC_RESY), hw && !native);
|
||||||
EnableWindow(GetDlgItem(m_hWnd, IDC_RESY_EDIT), hw && !native);
|
EnableWindow(GetDlgItem(m_hWnd, IDC_RESY_EDIT), hw && !native);
|
||||||
EnableWindow(GetDlgItem(m_hWnd, IDC_NATIVERES), hw);
|
EnableWindow(GetDlgItem(m_hWnd, IDC_NATIVERES), hw);
|
||||||
|
EnableWindow(GetDlgItem(m_hWnd, IDC_FILTER), hw && !native);
|
||||||
EnableWindow(GetDlgItem(m_hWnd, IDC_LOGZ), dx9 && hw);
|
EnableWindow(GetDlgItem(m_hWnd, IDC_LOGZ), dx9 && hw);
|
||||||
EnableWindow(GetDlgItem(m_hWnd, IDC_FBA), dx9 && hw);
|
EnableWindow(GetDlgItem(m_hWnd, IDC_FBA), dx9 && hw);
|
||||||
EnableWindow(GetDlgItem(m_hWnd, IDC_AA1), sw);
|
EnableWindow(GetDlgItem(m_hWnd, IDC_AA1), sw);
|
||||||
|
|
|
@ -46,8 +46,15 @@ VS_OUTPUT vs_main(VS_INPUT input)
|
||||||
}
|
}
|
||||||
|
|
||||||
VS_OUTPUT output;
|
VS_OUTPUT output;
|
||||||
|
|
||||||
|
// pos -= 0.05 (1/320 pixel) helps avoiding rounding problems (integral part of pos is usually 5 digits, 0.05 is about as low as we can go)
|
||||||
|
// example: ceil(afterseveralvertextransformations(y = 133)) => 134 => line 133 stays empty
|
||||||
|
// input granularity is 1/16 pixel, anything smaller than that won't step drawing up/left by one pixel
|
||||||
|
// example: 133.0625 (133 + 1/16) should start from line 134, ceil(133.0625 - 0.05) still above 133
|
||||||
|
|
||||||
|
float4 p = float4(input.p, input.z, 0) - float4(0.05f, 0.05f, 0, 0);
|
||||||
|
|
||||||
output.p = float4(input.p, input.z, 0) * VertexScale - VertexOffset;
|
output.p = p * VertexScale - VertexOffset;
|
||||||
|
|
||||||
if(VS_TME == 1)
|
if(VS_TME == 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,8 +38,15 @@ VS_OUTPUT vs_main(VS_INPUT input)
|
||||||
}
|
}
|
||||||
|
|
||||||
VS_OUTPUT output;
|
VS_OUTPUT output;
|
||||||
|
|
||||||
|
// pos -= 0.05 (1/320 pixel) helps avoiding rounding problems (integral part of pos is usually 5 digits, 0.05 is about as low as we can go)
|
||||||
|
// example: ceil(afterseveralvertextransformations(y = 133)) => 134 => line 133 stays empty
|
||||||
|
// input granularity is 1/16 pixel, anything smaller than that won't step drawing up/left by one pixel
|
||||||
|
// example: 133.0625 (133 + 1/16) should start from line 134, ceil(133.0625 - 0.05) still above 133
|
||||||
|
|
||||||
|
float4 p = input.p - float4(0.05f, 0.05f, 0, 0);
|
||||||
|
|
||||||
output.p = input.p * VertexScale - VertexOffset;
|
output.p = p * VertexScale - VertexOffset;
|
||||||
|
|
||||||
if(VS_LOGZ == 1)
|
if(VS_LOGZ == 1)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue