diff --git a/plugins/GSdx/GSCrc.cpp b/plugins/GSdx/GSCrc.cpp index b55978635e..7e27702525 100644 --- a/plugins/GSdx/GSCrc.cpp +++ b/plugins/GSdx/GSCrc.cpp @@ -28,6 +28,7 @@ CRC::Game CRC::m_games[] = {0x2113EA2E, MetalSlug6, Unknown}, {0x42E05BAF, TomoyoAfter, JP}, {0x7800DC84, Clannad, JP}, + {0xA6167B59, Lamune, JP}, {0xa39517ab, FFX, EU}, {0xa39517ae, FFX, FR}, {0x941bb7d9, FFX, DE}, diff --git a/plugins/GSdx/GSCrc.h b/plugins/GSdx/GSCrc.h index cc64037f8f..b47362e690 100644 --- a/plugins/GSdx/GSCrc.h +++ b/plugins/GSdx/GSCrc.h @@ -30,6 +30,7 @@ public: MetalSlug6, TomoyoAfter, Clannad, + Lamune, FFX, FFX2, FFXII, diff --git a/plugins/GSdx/GSDrawScanlineCodeGenerator.cpp b/plugins/GSdx/GSDrawScanlineCodeGenerator.cpp index 6d61fb2b5b..cb1d003a72 100644 --- a/plugins/GSdx/GSDrawScanlineCodeGenerator.cpp +++ b/plugins/GSdx/GSDrawScanlineCodeGenerator.cpp @@ -707,18 +707,17 @@ void GSDrawScanlineCodeGenerator::TestZ(const Xmm& temp1, const Xmm& temp2) switch(m_sel.ztst) { case ZTST_GEQUAL: - // test |= zso < zdo; + // test |= zso < zdo; // ~(zso >= zdo) pcmpgtd(xmm1, xmm0); por(xmm7, xmm1); break; - case ZTST_GREATER: - // test |= zso <= zdo; - movdqa(xmm4, xmm1); - pcmpgtd(xmm1, xmm0); - por(xmm7, xmm1); - pcmpeqd(xmm4, xmm0); - por(xmm7, xmm1); + case ZTST_GREATER: // TODO: tidus hair and chocobo wings only appear fully when this is tested as ZTST_GEQUAL + // test |= zso <= zdo; // ~(zso > zdo) + pcmpgtd(xmm0, xmm1); + pcmpeqd(xmm4, xmm4); + pxor(xmm0, xmm4); + por(xmm7, xmm0); break; } diff --git a/plugins/GSdx/GSRendererHW.h b/plugins/GSdx/GSRendererHW.h index aea77663f3..f58aa4e787 100644 --- a/plugins/GSdx/GSRendererHW.h +++ b/plugins/GSdx/GSRendererHW.h @@ -494,9 +494,9 @@ protected: #pragma endregion - #pragma region tomoyo after, clannad (palette uploaded in a point list, pure genius...) + #pragma region tomoyo after, clannad, lamune (palette uploaded in a point list, pure genius...) - if(m_game.title == CRC::TomoyoAfter || m_game.title == CRC::Clannad) + if(m_game.title == CRC::TomoyoAfter || m_game.title == CRC::Clannad || m_game.title == CRC::Lamune) { if(prim == GS_POINTLIST && !PRIM->TME) {