Pcsx2 now correctly sends CRC info to the GS plugin when using Run->Execute to boot games through the BIOS. And, Omg! The X button in the about box was broken! Thank goodness I fixed it before someone got hurt! ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@500 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-02-15 12:31:49 +00:00
parent c0407f42d7
commit 11abea2d5a
4 changed files with 24 additions and 14 deletions

View File

@ -529,9 +529,12 @@ void cdvdReadKey(u8 arg0, u16 arg1, u32 arg2, u8* key) {
// Now's a good time to reload the ELF info...
if( ElfCRC == 0 )
{
FreezeMMXRegs(1);
ElfCRC = loadElfCRC( str );
ElfApplyPatches();
LoadGameSpecificSettings();
GSsetGameCRC( ElfCRC, 0 );
FreezeMMXRegs(0);
}
}

View File

@ -98,7 +98,7 @@ void SysDetect()
if( sysInitialized ) return;
sysInitialized = true;
Notice("PCSX2 " PCSX2_VERSION " - compiled on %s", params __DATE__ );
Notice("PCSX2 " PCSX2_VERSION " - compiled on " __DATE__ );
Notice("Savestate version: %x", params g_SaveVersion);
// fixme: This line is here for the purpose of creating external ASM code. Yah. >_<

View File

@ -27,9 +27,10 @@
HWND hW;
HBITMAP hBMP, hSilverBMP;
LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg) {
LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
hBMP = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(SPLASH_LOGO));
hSilverBMP = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_PS2SILVER));
@ -46,12 +47,17 @@ LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
return TRUE;
case WM_COMMAND:
switch(wParam) {
switch(wParam)
{
case IDOK:
EndDialog( hDlg, TRUE );
return TRUE;
}
break;
return FALSE;
case WM_CLOSE:
EndDialog( hDlg, TRUE );
return TRUE;
}
return FALSE;
}

View File

@ -49,7 +49,7 @@ static void _setupBranchTest()
_eeFlushAllUnused();
// COP0 branch conditionals are based on the following equation:
// (((psHu16(DMAC_STAT) & psHu16(DMAC_PCR)) & 0x3ff) == (psHu16(DMAC_PCR) & 0x3ff))
// (((psHu16(DMAC_STAT) | ~psHu16(DMAC_PCR)) & 0x3ff) == 0x3ff)
// BC0F checks if the statement is false, BC0T checks if the statement is true.
// note: We only want to compare the 16 bit values of DMAC_STAT and PCR.
@ -57,10 +57,11 @@ static void _setupBranchTest()
// everything except the lower 10 bits away.
MOV32MtoR( EAX, (uptr)&psHu32(DMAC_PCR) );
MOV32ItoR( ECX, 0x3ff ); // ECX is our 10-bit mask var
NOT32R( EAX );
OR32MtoR( EAX, (uptr)&psHu32(DMAC_STAT) );
AND32ItoR( EAX, 0x3ff );
CMP32ItoR( EAX, 0x3ff);
AND32RtoR( EAX, ECX );
CMP32RtoR( EAX, ECX );
}
void recBC0F()
@ -72,7 +73,7 @@ void recBC0F()
void recBC0T()
{
_setupBranchTest();
recDoBranchImm(JL32(0));
recDoBranchImm(JNE32(0));
}
void recBC0FL()
@ -84,7 +85,7 @@ void recBC0FL()
void recBC0TL()
{
_setupBranchTest();
recDoBranchImm_Likely(JL32(0));
recDoBranchImm_Likely(JNE32(0));
}
void recTLBR() { recCall( Interp::TLBR, -1 ); }