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:
arcum42 2010-10-24 04:09:42 +00:00
parent b199b57a76
commit 8219ed5527
4 changed files with 110 additions and 107 deletions

View File

@ -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},

View File

@ -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;

View File

@ -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;
} }

View File

@ -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;
}; };