The last update was too aggressive, some games didn't save states anymore. This does nearly the same, but saves work again.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@140 a6443dda-0b58-4228-96e9-037be469359c
This commit is contained in:
ramapcsx2 2008-09-23 08:21:47 +00:00 committed by Gregory Hainaut
parent 4b192421b1
commit 5eb9108814
3 changed files with 16 additions and 17 deletions

View File

@ -221,22 +221,21 @@ void gsInit()
#endif #endif
} }
} }
//commented out for the time, as this costs fps, breaks savestates a bit (ZeroSPU2)
//and doesn't seem to help anything (rama)
void gsWaitGS() void gsWaitGS()
{ {
// if( CHECK_DUALCORE ) { if( CHECK_DUALCORE ) {
// while( *(volatile PU8*)&g_pGSRingPos != *(volatile PU8*)&g_pGSWritePos ); while( *(volatile PU8*)&g_pGSRingPos != *(volatile PU8*)&g_pGSWritePos );
// } }
// else { else {
// while( g_pGSRingPos != g_pGSWritePos ) { while( g_pGSRingPos != g_pGSWritePos ) {
//#ifdef _WIN32 #ifdef _WIN32
// Sleep(1); Sleep(1);
//#else #else
// usleep(500); usleep(500);
//#endif #endif
// } }
// } }
} }
void gsShutdown() void gsShutdown()

View File

@ -636,7 +636,7 @@ int LoadState(char *file) {
} }
// stop and reset the system first // stop and reset the system first
gsWaitGS(); //gsWaitGS();
for (i=0; i<48; i++) ClearTLB(i); for (i=0; i<48; i++) ClearTLB(i);
@ -716,7 +716,7 @@ int LoadState(char *file) {
// have to call in thread, otherwise weird stuff will start happening // have to call in thread, otherwise weird stuff will start happening
u64 uf = (uptr)f; u64 uf = (uptr)f;
GSRingBufSimplePacket(GS_RINGTYPE_LOAD, (u32)(uf&0xffffffff), (u32)(uf>>32), 0); GSRingBufSimplePacket(GS_RINGTYPE_LOAD, (u32)(uf&0xffffffff), (u32)(uf>>32), 0);
gsWaitGS(); // gsWaitGS();
} }
else { else {
_PS2Eload(GS); _PS2Eload(GS);

View File

@ -419,7 +419,7 @@ void cpuBranchTest()
// stall mtgs if it is taking too long // stall mtgs if it is taking too long
if( g_MTGSVifCount > 0 ) { if( g_MTGSVifCount > 0 ) {
if( cpuRegs.cycle-g_MTGSVifStart > g_MTGSVifCount ) { if( cpuRegs.cycle-g_MTGSVifStart > g_MTGSVifCount ) {
gsWaitGS(); // gsWaitGS();
g_MTGSVifCount = 0; g_MTGSVifCount = 0;
} }
} }