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... // Now's a good time to reload the ELF info...
if( ElfCRC == 0 ) if( ElfCRC == 0 )
{ {
FreezeMMXRegs(1);
ElfCRC = loadElfCRC( str ); ElfCRC = loadElfCRC( str );
ElfApplyPatches(); ElfApplyPatches();
LoadGameSpecificSettings(); LoadGameSpecificSettings();
GSsetGameCRC( ElfCRC, 0 );
FreezeMMXRegs(0);
} }
} }

View File

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

View File

@ -27,9 +27,10 @@
HWND hW; HWND hW;
HBITMAP hBMP, hSilverBMP; HBITMAP hBMP, hSilverBMP;
LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg) { switch(uMsg)
{
case WM_INITDIALOG: case WM_INITDIALOG:
hBMP = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(SPLASH_LOGO)); hBMP = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(SPLASH_LOGO));
hSilverBMP = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_PS2SILVER)); hSilverBMP = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_PS2SILVER));
@ -43,15 +44,20 @@ LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Button_SetText(GetDlgItem(hDlg, IDOK), _("OK")); Button_SetText(GetDlgItem(hDlg, IDOK), _("OK"));
Static_SetText(GetDlgItem(hDlg, IDC_PCSX_ABOUT_AUTHORS), _(LabelAuthors)); Static_SetText(GetDlgItem(hDlg, IDC_PCSX_ABOUT_AUTHORS), _(LabelAuthors));
Static_SetText(GetDlgItem(hDlg, IDC_PCSX_ABOUT_GREETS), _(LabelGreets)); Static_SetText(GetDlgItem(hDlg, IDC_PCSX_ABOUT_GREETS), _(LabelGreets));
return TRUE; return TRUE;
case WM_COMMAND: case WM_COMMAND:
switch(wParam) { switch(wParam)
{
case IDOK: case IDOK:
EndDialog(hDlg, TRUE ); EndDialog( hDlg, TRUE );
return TRUE; return TRUE;
} }
break; return FALSE;
case WM_CLOSE:
EndDialog( hDlg, TRUE );
return TRUE;
} }
return FALSE; return FALSE;
} }

View File

@ -49,7 +49,7 @@ static void _setupBranchTest()
_eeFlushAllUnused(); _eeFlushAllUnused();
// COP0 branch conditionals are based on the following equation: // 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. // 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. // 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. // everything except the lower 10 bits away.
MOV32MtoR( EAX, (uptr)&psHu32(DMAC_PCR) ); MOV32MtoR( EAX, (uptr)&psHu32(DMAC_PCR) );
MOV32ItoR( ECX, 0x3ff ); // ECX is our 10-bit mask var
NOT32R( EAX ); NOT32R( EAX );
OR32MtoR( EAX, (uptr)&psHu32(DMAC_STAT) ); OR32MtoR( EAX, (uptr)&psHu32(DMAC_STAT) );
AND32ItoR( EAX, 0x3ff ); AND32RtoR( EAX, ECX );
CMP32ItoR( EAX, 0x3ff); CMP32RtoR( EAX, ECX );
} }
void recBC0F() void recBC0F()
@ -72,7 +73,7 @@ void recBC0F()
void recBC0T() void recBC0T()
{ {
_setupBranchTest(); _setupBranchTest();
recDoBranchImm(JL32(0)); recDoBranchImm(JNE32(0));
} }
void recBC0FL() void recBC0FL()
@ -84,7 +85,7 @@ void recBC0FL()
void recBC0TL() void recBC0TL()
{ {
_setupBranchTest(); _setupBranchTest();
recDoBranchImm_Likely(JL32(0)); recDoBranchImm_Likely(JNE32(0));
} }
void recTLBR() { recCall( Interp::TLBR, -1 ); } void recTLBR() { recCall( Interp::TLBR, -1 ); }