mirror of https://github.com/PCSX2/pcsx2.git
GregMiscellaneous: zzogl-pg: Remove the Gust hack from Mana Khemia. A few misc changes.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GregMiscellaneous@3966 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
b199b57a76
commit
8219ed5527
|
@ -374,8 +374,10 @@ static const Game_Info crc_game_list[] =
|
||||||
//{0x4437F4B1, ArTonelico1, US, GAME_GUSTHACK, -1, -1},
|
//{0x4437F4B1, ArTonelico1, US, GAME_GUSTHACK, -1, -1},
|
||||||
{0xF95F37EE, ArTonelico2, US, GAME_GUSTHACK, -1, -1},
|
{0xF95F37EE, ArTonelico2, US, GAME_GUSTHACK, -1, -1},
|
||||||
{0xF46142D3, ArTonelico2, JPUNDUB, GAME_GUSTHACK, -1, -1},
|
{0xF46142D3, ArTonelico2, JPUNDUB, GAME_GUSTHACK, -1, -1},
|
||||||
{0x77b0236f, ManaKhemia1, US, GAME_GUSTHACK , -1, -1},
|
|
||||||
{0x433951e7, ManaKhemia2, US, GAME_GUSTHACK, -1, -1},
|
// According to Zeydlitz, Mana Khemia no longer needs the Gust Hack.
|
||||||
|
//{0x77b0236f, ManaKhemia1, US, GAME_GUSTHACK, -1, -1},
|
||||||
|
//{0x433951e7, ManaKhemia2, US, GAME_GUSTHACK, -1, -1},
|
||||||
//{0xda11c6d4, AtelierJudie, JP, GAME_GUSTHACK, -1, -1},
|
//{0xda11c6d4, AtelierJudie, JP, GAME_GUSTHACK, -1, -1},
|
||||||
//{0x3e72c085, AtelierLilie, JP, GAME_GUSTHACK, -1, -1},
|
//{0x3e72c085, AtelierLilie, JP, GAME_GUSTHACK, -1, -1},
|
||||||
//{0x6eac076b, AtelierViorate, JP, GAME_GUSTHACK, -1, -1},
|
//{0x6eac076b, AtelierViorate, JP, GAME_GUSTHACK, -1, -1},
|
||||||
|
|
|
@ -70,9 +70,11 @@ void __forceinline Kick::KickVertex(bool adc)
|
||||||
|
|
||||||
void Kick::SET_VERTEX(VertexGPU *p, int i)
|
void Kick::SET_VERTEX(VertexGPU *p, int i)
|
||||||
{
|
{
|
||||||
p->move_x(gs.gsvertex[i], vb[prim->ctxt].offset.x);
|
VB& curvb = vb[prim->ctxt];
|
||||||
p->move_y(gs.gsvertex[i], vb[prim->ctxt].offset.y);
|
|
||||||
p->move_z(gs.gsvertex[i], vb[prim->ctxt].zprimmask);
|
p->move_x(gs.gsvertex[i], curvb.offset.x);
|
||||||
|
p->move_y(gs.gsvertex[i], curvb.offset.y);
|
||||||
|
p->move_z(gs.gsvertex[i], curvb.zprimmask);
|
||||||
p->move_fog(gs.gsvertex[i]);
|
p->move_fog(gs.gsvertex[i]);
|
||||||
|
|
||||||
p->rgba = prim->iip ? gs.gsvertex[i].rgba : gs.rgba;
|
p->rgba = prim->iip ? gs.gsvertex[i].rgba : gs.rgba;
|
||||||
|
|
|
@ -770,8 +770,7 @@ inline void AfterRendererUnimportantJob()
|
||||||
|
|
||||||
AfterRenderCountStatistics();
|
AfterRenderCountStatistics();
|
||||||
|
|
||||||
if (s_nNewWidth >= 0 && s_nNewHeight >= 0)
|
if (s_nNewWidth >= 0 && s_nNewHeight >= 0) AfterRendererResizeWindow();
|
||||||
AfterRendererResizeWindow();
|
|
||||||
|
|
||||||
maxmin = 608;
|
maxmin = 608;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,122 +27,122 @@
|
||||||
|
|
||||||
extern const GLenum primtype[8];
|
extern const GLenum primtype[8];
|
||||||
|
|
||||||
struct VB
|
class VB
|
||||||
{
|
{
|
||||||
VB();
|
public:
|
||||||
~VB();
|
VB();
|
||||||
|
~VB();
|
||||||
|
|
||||||
void Destroy();
|
void Destroy();
|
||||||
|
|
||||||
inline bool CheckPrim()
|
inline bool CheckPrim()
|
||||||
{
|
|
||||||
static const int PRIMMASK = 0x0e; // for now ignore 0x10 (AA)
|
|
||||||
|
|
||||||
if ((PRIMMASK & prim->_val) != (PRIMMASK & curprim._val) || primtype[prim->prim] != primtype[curprim.prim])
|
|
||||||
return nCount > 0;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CheckFrame(int tbp);
|
|
||||||
|
|
||||||
// context specific state
|
|
||||||
Point offset;
|
|
||||||
Rect2 scissor;
|
|
||||||
tex0Info tex0;
|
|
||||||
tex1Info tex1;
|
|
||||||
miptbpInfo miptbp0;
|
|
||||||
miptbpInfo miptbp1;
|
|
||||||
alphaInfo alpha;
|
|
||||||
fbaInfo fba;
|
|
||||||
clampInfo clamp;
|
|
||||||
pixTest test;
|
|
||||||
u32 ptexClamp[2]; // textures for x and y dir region clamping
|
|
||||||
|
|
||||||
public:
|
|
||||||
void FlushTexData();
|
|
||||||
inline int CheckFrameAddConstraints(int tbp);
|
|
||||||
inline void CheckScissors(int maxpos);
|
|
||||||
inline void CheckFrame32bitRes(int maxpos);
|
|
||||||
inline int FindMinimalMemoryConstrain(int tbp, int maxpos);
|
|
||||||
inline int FindZbufferMemoryConstrain(int tbp, int maxpos);
|
|
||||||
inline int FindMinimalHeightConstrain(int maxpos);
|
|
||||||
|
|
||||||
inline int CheckFrameResolveRender(int tbp);
|
|
||||||
inline void CheckFrame16vs32Conversion();
|
|
||||||
inline int CheckFrameResolveDepth(int tbp);
|
|
||||||
|
|
||||||
inline void FlushTexUnchangedClutDontUpdate() ;
|
|
||||||
inline void FlushTexClutDontUpdate() ;
|
|
||||||
inline void FlushTexClutting() ;
|
|
||||||
inline void FlushTexSetNewVars(u32 psm) ;
|
|
||||||
|
|
||||||
// Increase the size of pbuf
|
|
||||||
void IncreaseVertexBuffer()
|
|
||||||
{
|
|
||||||
assert(pBufferData != NULL && nCount > nNumVertices);
|
|
||||||
VertexGPU* ptemp = (VertexGPU*)_aligned_malloc(sizeof(VertexGPU) * nNumVertices * 2, 256);
|
|
||||||
memcpy_amd(ptemp, pBufferData, sizeof(VertexGPU) * nCount);
|
|
||||||
nNumVertices *= 2;
|
|
||||||
assert(nCount <= nNumVertices);
|
|
||||||
_aligned_free(pBufferData);
|
|
||||||
pBufferData = ptemp;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Init(int nVerts)
|
|
||||||
{
|
|
||||||
if (pBufferData == NULL && nVerts > 0)
|
|
||||||
{
|
{
|
||||||
pBufferData = (VertexGPU*)_aligned_malloc(sizeof(VertexGPU) * nVerts, 256);
|
static const int PRIMMASK = 0x0e; // for now ignore 0x10 (AA)
|
||||||
nNumVertices = nVerts;
|
|
||||||
|
if ((PRIMMASK & prim->_val) != (PRIMMASK & curprim._val) || primtype[prim->prim] != primtype[curprim.prim])
|
||||||
|
return nCount > 0;
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
nCount = 0;
|
void CheckFrame(int tbp);
|
||||||
}
|
|
||||||
|
|
||||||
u8 bNeedFrameCheck;
|
// context specific state
|
||||||
u8 bNeedZCheck;
|
Point offset;
|
||||||
u8 bNeedTexCheck;
|
Rect2 scissor;
|
||||||
u8 dummy0;
|
tex0Info tex0;
|
||||||
|
tex1Info tex1;
|
||||||
|
miptbpInfo miptbp0;
|
||||||
|
miptbpInfo miptbp1;
|
||||||
|
alphaInfo alpha;
|
||||||
|
fbaInfo fba;
|
||||||
|
clampInfo clamp;
|
||||||
|
pixTest test;
|
||||||
|
u32 ptexClamp[2]; // textures for x and y dir region clamping
|
||||||
|
|
||||||
union
|
void FlushTexData();
|
||||||
{
|
inline int CheckFrameAddConstraints(int tbp);
|
||||||
struct
|
inline void CheckScissors(int maxpos);
|
||||||
|
inline void CheckFrame32bitRes(int maxpos);
|
||||||
|
inline int FindMinimalMemoryConstrain(int tbp, int maxpos);
|
||||||
|
inline int FindZbufferMemoryConstrain(int tbp, int maxpos);
|
||||||
|
inline int FindMinimalHeightConstrain(int maxpos);
|
||||||
|
|
||||||
|
inline int CheckFrameResolveRender(int tbp);
|
||||||
|
inline void CheckFrame16vs32Conversion();
|
||||||
|
inline int CheckFrameResolveDepth(int tbp);
|
||||||
|
|
||||||
|
inline void FlushTexUnchangedClutDontUpdate() ;
|
||||||
|
inline void FlushTexClutDontUpdate() ;
|
||||||
|
inline void FlushTexClutting() ;
|
||||||
|
inline void FlushTexSetNewVars(u32 psm) ;
|
||||||
|
|
||||||
|
// Increase the size of pbuf
|
||||||
|
void IncreaseVertexBuffer()
|
||||||
{
|
{
|
||||||
u8 bTexConstsSync; // only pixel shader constants that context owns
|
assert(pBufferData != NULL && nCount > nNumVertices);
|
||||||
u8 bVarsTexSync; // texture info
|
nNumVertices *= 2;
|
||||||
u8 bVarsSetTarg;
|
VertexGPU* ptemp = (VertexGPU*)_aligned_malloc(sizeof(VertexGPU) * nNumVertices, 256);
|
||||||
u8 dummy1;
|
memcpy_amd(ptemp, pBufferData, sizeof(VertexGPU) * nCount);
|
||||||
|
assert(nCount <= nNumVertices);
|
||||||
|
_aligned_free(pBufferData);
|
||||||
|
pBufferData = ptemp;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Init(int nVerts)
|
||||||
|
{
|
||||||
|
if (pBufferData == NULL && nVerts > 0)
|
||||||
|
{
|
||||||
|
pBufferData = (VertexGPU*)_aligned_malloc(sizeof(VertexGPU) * nVerts, 256);
|
||||||
|
nNumVertices = nVerts;
|
||||||
|
}
|
||||||
|
|
||||||
|
nCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 bNeedFrameCheck;
|
||||||
|
u8 bNeedZCheck;
|
||||||
|
u8 bNeedTexCheck;
|
||||||
|
u8 dummy0;
|
||||||
|
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
u8 bTexConstsSync; // only pixel shader constants that context owns
|
||||||
|
u8 bVarsTexSync; // texture info
|
||||||
|
u8 bVarsSetTarg;
|
||||||
|
u8 dummy1;
|
||||||
|
};
|
||||||
|
|
||||||
|
u32 bSyncVars;
|
||||||
};
|
};
|
||||||
|
|
||||||
u32 bSyncVars;
|
int ictx;
|
||||||
};
|
VertexGPU* pBufferData; // current allocated data
|
||||||
|
|
||||||
int ictx;
|
int nNumVertices; // size of pBufferData in terms of VertexGPU objects
|
||||||
VertexGPU* pBufferData; // current allocated data
|
int nCount;
|
||||||
|
primInfo curprim; // the previous prim the current buffers are set to
|
||||||
|
|
||||||
int nNumVertices; // size of pBufferData in terms of VertexGPU objects
|
zbufInfo zbuf;
|
||||||
int nCount;
|
frameInfo gsfb; // the real info set by FRAME cmd
|
||||||
primInfo curprim; // the previous prim the current buffers are set to
|
frameInfo frame;
|
||||||
|
int zprimmask; // zmask for incoming points
|
||||||
|
|
||||||
zbufInfo zbuf;
|
union
|
||||||
frameInfo gsfb; // the real info set by FRAME cmd
|
{
|
||||||
frameInfo frame;
|
u32 uCurTex0Data[2]; // current tex0 data
|
||||||
int zprimmask; // zmask for incoming points
|
GIFRegTEX0 uCurTex0;
|
||||||
|
};
|
||||||
|
u32 uNextTex0Data[2]; // tex0 data that has to be applied if bNeedTexCheck is 1
|
||||||
|
|
||||||
union
|
//int nFrameHeights[8]; // frame heights for the past frame changes
|
||||||
{
|
int nNextFrameHeight;
|
||||||
u32 uCurTex0Data[2]; // current tex0 data
|
|
||||||
GIFRegTEX0 uCurTex0;
|
|
||||||
};
|
|
||||||
u32 uNextTex0Data[2]; // tex0 data that has to be applied if bNeedTexCheck is 1
|
|
||||||
|
|
||||||
//int nFrameHeights[8]; // frame heights for the past frame changes
|
CMemoryTarget* pmemtarg; // the current mem target set
|
||||||
int nNextFrameHeight;
|
CRenderTarget* prndr;
|
||||||
|
CDepthTarget* pdepth;
|
||||||
CMemoryTarget* pmemtarg; // the current mem target set
|
|
||||||
CRenderTarget* prndr;
|
|
||||||
CDepthTarget* pdepth;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue