mirror of
https://github.com/PCSX2/gsdx-sourceforge.git
synced 2026-02-04 03:11:19 +01:00
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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%
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user