mirror of https://github.com/PCSX2/pcsx2.git
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:
parent
c0407f42d7
commit
11abea2d5a
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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. >_<
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 ); }
|
||||||
|
|
Loading…
Reference in New Issue