GSdx: fixes for ffx2 menu

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1412 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
gabest11 2009-06-20 20:28:36 +00:00
parent d3f01bc572
commit 5f45219eb9
4 changed files with 27 additions and 12 deletions

View File

@ -106,7 +106,7 @@ bool GSClut::WriteTest(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT)
case 3: m_CBP[1] = TEX0.CBP; break;
case 4: if(m_CBP[0] == TEX0.CBP) return false; m_CBP[0] = TEX0.CBP; break;
case 5: if(m_CBP[1] == TEX0.CBP) return false; m_CBP[1] = TEX0.CBP; break;
case 6: ASSERT(0); return false;
case 6: ASSERT(0); return false; // ffx2 menu
case 7: ASSERT(0); return false;
default: __assume(0);
}

View File

@ -76,7 +76,8 @@ CRC::Game CRC::m_games[] =
{0x35AA84D1, DBZBT2, Unknown},
{0x428113C2, DBZBT3, US},
{0xA422BB13, DBZBT3, EU},
{0x983c53d2, DBZBT3, Unknown},
{0x983C53D2, DBZBT3, Unknown},
{0x983C53D3, DBZBT3, Unknown},
{0x72B3802A, SFEX3, US},
{0x71521863, SFEX3, US},
{0x28703748, Bully, US},

View File

@ -298,19 +298,25 @@ void GSDrawScanline::DrawSolidRectT(const GSVector4i* row, int* col, const GSVec
color = color.andnot(mask);
GSVector4i bm(8 * 4 / sizeof(T) - 1, 8 - 1);
GSVector4i br = (r + bm).andnot(bm.xyxy());
GSVector4i br = r.ralign<GSVector4i::Inside>(GSVector2i(8 * 4 / sizeof(T), 8));
FillRect<T, masked>(row, col, GSVector4i(r.x, r.y, r.z, br.y), c, m);
FillRect<T, masked>(row, col, GSVector4i(r.x, br.w, r.z, r.w), c, m);
if(r.x < br.x || br.z < r.z)
if(!br.rempty())
{
FillRect<T, masked>(row, col, GSVector4i(r.x, br.y, br.x, br.w), c, m);
FillRect<T, masked>(row, col, GSVector4i(br.z, br.y, r.z, br.w), c, m);
}
FillRect<T, masked>(row, col, GSVector4i(r.x, r.y, r.z, br.y), c, m);
FillRect<T, masked>(row, col, GSVector4i(r.x, br.w, r.z, r.w), c, m);
FillBlock<T, masked>(row, col, br, color, mask);
if(r.x < br.x || br.z < r.z)
{
FillRect<T, masked>(row, col, GSVector4i(r.x, br.y, br.x, br.w), c, m);
FillRect<T, masked>(row, col, GSVector4i(br.z, br.y, r.z, br.w), c, m);
}
FillBlock<T, masked>(row, col, br, color, mask);
}
else
{
FillRect<T, masked>(row, col, r, c, m);
}
}
template<class T, bool masked>

View File

@ -286,6 +286,8 @@ GSTextureCache::GSCachedTexture* GSTextureCache::GetTexture()
t = t2;
m_tex.splice(m_tex.begin(), m_tex, i);
break;
}
if(t == NULL)
@ -727,7 +729,13 @@ void GSTextureCache::GSDepthStencil::Update()
{
__super::Update();
GSVector4i r = m_dirty.GetDirtyRectAndClear(m_TEX0, m_texture->GetSize());
if(r.rempty()) return;
// TODO
m_renderer->m_dev->ClearDepth(m_texture, 0);
}
// GSTextureCache::GSCachedTexture