mirror of https://github.com/PCSX2/pcsx2.git
Super VU:
- Implemented setting of GIF status regs for PATH1 transfers at execution time instead of at recompile time on XGkick instructions. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1435 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
b75e504fba
commit
ac7f3bc19d
|
@ -1983,7 +1983,7 @@ void VU1XGKICK_MTGSTransfer(u32 *pMem, u32 addr)
|
|||
// Chances are this should be a "loops around memory" situation, and the packet
|
||||
// should be continued starting at addr zero (0).
|
||||
|
||||
size = mtgsThread->PrepDataPacket( GIF_PATH_1, data, (0x4000-(addr&0x3fff)) >> 4);
|
||||
size = mtgsThread->PrepDataPacket(GIF_PATH_1, data, (0x4000-(addr&0x3fff)) >> 4);
|
||||
jASSUME( size > 0 );
|
||||
|
||||
//if( size > 0 )
|
||||
|
|
|
@ -4376,18 +4376,15 @@ void recVUMI_XGKICK_(VURegs *VU)
|
|||
_freeX86regs();
|
||||
_freeXMMregs();
|
||||
|
||||
OR32ItoM((uptr)&psHu32(GIF_STAT), (GIF_STAT_APATH1 | GIF_STAT_OPH)); // Set PATH1 GIF Status Flags
|
||||
PUSH32R(s_XGKICKReg);
|
||||
PUSH32I((uptr)VU->Mem);
|
||||
|
||||
//CALLFunc((u32)countfn);
|
||||
|
||||
if (mtgsThread != NULL)
|
||||
{
|
||||
if (mtgsThread) {
|
||||
CALLFunc((uptr)VU1XGKICK_MTGSTransfer);
|
||||
ADD32ItoR(ESP, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
#ifdef PCSX2_DEVBUILD
|
||||
CALLFunc((uptr)vu1xgkick);
|
||||
ADD32ItoR(ESP, 8);
|
||||
|
@ -4395,14 +4392,13 @@ void recVUMI_XGKICK_(VURegs *VU)
|
|||
CALLFunc((uptr)GSgifTransfer1);
|
||||
#endif
|
||||
}
|
||||
psHu32(GIF_STAT) &= ~(GIF_STAT_APATH1 | GIF_STAT_OPH); //Probably should be in the recompilation but im a rec nab :( (Refraction)
|
||||
AND32ItoM((uptr)&psHu32(GIF_STAT), ~(GIF_STAT_APATH1 | GIF_STAT_OPH)); // Clear PATH1 GIF Status Flags
|
||||
s_ScheduleXGKICK = 0;
|
||||
}
|
||||
|
||||
void recVUMI_XGKICK(VURegs *VU, int info)
|
||||
{
|
||||
if (s_ScheduleXGKICK)
|
||||
{
|
||||
if (s_ScheduleXGKICK) {
|
||||
// second xgkick, so launch the first
|
||||
recVUMI_XGKICK_(VU);
|
||||
}
|
||||
|
@ -4416,15 +4412,11 @@ void recVUMI_XGKICK(VURegs *VU, int info)
|
|||
SHL32ItoR(isreg, 4);
|
||||
AND32ItoR(isreg, 0x3fff);
|
||||
s_XGKICKReg = isreg;
|
||||
psHu32(GIF_STAT) |= (GIF_STAT_APATH1 | GIF_STAT_OPH); //Probably should be in the recompilation but im a rec nab :( (Refraction)
|
||||
|
||||
|
||||
if (!SUPERVU_XGKICKDELAY || pc == s_pCurBlock->endpc)
|
||||
{
|
||||
|
||||
if (!SUPERVU_XGKICKDELAY || pc == s_pCurBlock->endpc) {
|
||||
recVUMI_XGKICK_(VU);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
// Erementar Gerad hack.
|
||||
// Corrects the color of some graphics on a game that has somewhat scrambled graphics either way, and only works with ZeroGS. Not even ZZOgl. :)
|
||||
if (g_VUGameFixes & VUFIX_XGKICKDELAY2)
|
||||
|
|
Loading…
Reference in New Issue