Oh well, a problem with the T/D flag code made the bios screw up.

Since it can't be fixed without further code in superVU, full revert for now :/

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@888 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2009-04-02 22:01:16 +00:00
parent 35655edb47
commit e39dec6ddb
4 changed files with 1 additions and 9 deletions

View File

@ -76,14 +76,12 @@ static void _vu0Exec(VURegs* VU)
VU0.VI[REG_VPU_STAT].UL|= 0x2;
hwIntcIrq(INTC_VU0);
}
VU->ebit = 1;
}
if (ptr[1] & 0x08000000) { /* T flag */
if (VU0.VI[REG_FBRST].UL & 0x8) {
VU0.VI[REG_VPU_STAT].UL|= 0x4;
hwIntcIrq(INTC_VU0);
}
VU->ebit = 1;
}
VU->code = ptr[1];

View File

@ -71,14 +71,12 @@ static void _vu1Exec(VURegs* VU)
VU0.VI[REG_VPU_STAT].UL|= 0x200;
hwIntcIrq(INTC_VU1);
}
VU->ebit = 1;
}
if (ptr[1] & 0x08000000) { /* T flag */
if (VU0.VI[REG_FBRST].UL & 0x800) {
VU0.VI[REG_VPU_STAT].UL|= 0x400;
hwIntcIrq(INTC_VU1);
}
VU->ebit = 1;
}
VUM_LOG("VU->cycle = %d (flags st=%x;mac=%x;clip=%x,q=%f)", VU->cycle, VU->statusflag, VU->macflag, VU->clipflag, VU->q.F);

View File

@ -473,10 +473,6 @@ void SuperVUAnalyzeOp(VURegs *VU, _vuopinfo *info, _VURegsNum* pCodeRegs)
if (ptr[1] & 0x40000000) { // EOP
branch |= 8;
}
if (ptr[1] & 0x18000000) { // T/D flags
branch |= 16 | 8; //stop right after this instruction
}
VU->code = ptr[1];

View File

@ -1246,7 +1246,7 @@ static VuBaseBlock* SuperVUBuildBlocks(VuBaseBlock* parent, u32 startpc, const V
if( pinst->info.p&VUOP_WRITE )
pinst->pqcycles = PWaitTimes[pinst->info.pqinst]+1;
if( prevbranch || (branch & 16)) {
if( prevbranch ) {
break;
}