This commit is contained in:
gabest
2009-01-26 23:36:58 +00:00
parent f5457868a6
commit eda35928ff
3 changed files with 24 additions and 8 deletions

View File

@@ -104,8 +104,8 @@ bool GSClut::WriteTest(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT)
case 1: break;
case 2: m_CBP[0] = TEX0.CBP; break;
case 3: m_CBP[1] = TEX0.CBP; break;
case 4: if(m_CBP[0] == TEX0.CBP) return false; break;
case 5: if(m_CBP[1] == TEX0.CBP) return false; 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 7: ASSERT(0); return false;
default: __assume(0);

View File

@@ -2568,6 +2568,22 @@ GSDrawScanline::GSDrawScanlineMap::GSDrawScanlineMap()
// xenosaga
InitDS_Sel(0x1fe38054); // 60.59%
InitDS_Sel(0x1fe38074); // 25.26%
InitDS_Sel(0x4c468064); // 23.70%
InitDS_Sel(0x4c818134); // 7.20%
InitDS_Sel(0x4c868864); // 11.57%
InitDS_Sel(0x4c938064); // 53.69%
InitDS_Sel(0x4d004864); // 8.70%
InitDS_Sel(0x4d084864); // 13.85%
InitDS_Sel(0x5fe04074); // 52.81%
InitDS_Sel(0x9fe19074); // 16.94%
InitDS_Sel(0x9fe39174); // 21.89%
InitDS_Sel(0xcc819074); // 20.62%
InitDS_Sel(0xcc839074); // 26.80%
InitDS_Sel(0xd5204064); // 14.16%
InitDS_Sel(0xdfe04074); // 14.86%
// mgs3s1
InitDS_Sel(0x484e8864); // 14.51%

View File

@@ -247,12 +247,10 @@ protected:
return true;
}
void GetScanlineParam(GSScanlineParam& p)
void GetScanlineParam(GSScanlineParam& p, GS_PRIM_CLASS primclass)
{
const GSDrawingEnvironment& env = m_env;
const GSDrawingContext* context = m_context;
const GS_PRIM prim = (GS_PRIM)PRIM->PRIM;
const GS_PRIM_CLASS primclass = GSUtil::GetPrimClass(prim);
p.vm = m_mem.m_vm32;
@@ -350,7 +348,7 @@ protected:
m_vtrace.max.t *= w;
}
}
else if(prim == GS_SPRITE)
else if(primclass == GS_SPRITE_CLASS)
{
p.sel.fst = 1;
@@ -486,9 +484,11 @@ protected:
{
m_vtrace.Update();
GS_PRIM_CLASS primclass = GSUtil::GetPrimClass(PRIM->PRIM);
GSScanlineParam p;
GetScanlineParam(p);
GetScanlineParam(p, primclass);
if((p.fm & p.zm) != 0xffffffff)
{
@@ -507,7 +507,7 @@ protected:
data.scissor = GSVector4i(m_context->scissor.in);
data.scissor.z = min(data.scissor.z, (int)m_context->FRAME.FBW * 64); // TODO: find a game that overflows and check which one is the right behaviour
data.primclass = GSUtil::GetPrimClass(PRIM->PRIM);
data.primclass = primclass;
data.vertices = m_vertices;
data.count = m_count;
data.param = &p;