diff --git a/pcsx2/Patch.cpp b/pcsx2/Patch.cpp index bf00f86140..c2e9bb2783 100644 --- a/pcsx2/Patch.cpp +++ b/pcsx2/Patch.cpp @@ -149,12 +149,7 @@ int InitPatches(const wxString& crc, const Game_Data& game) } } - if (patchFound) { - Console.WriteLn(Color_Green, "Patch found in the Database!"); - TrimPatches(patch); - Console.WriteLn(Color_Green, "Patches Loaded: %d", patchnumber); - } - else Console.WriteLn(Color_Gray, "No patch for this game in the Database."); + if (patchFound) TrimPatches(patch); return patchnumber; } diff --git a/pcsx2/gui/AppCoreThread.cpp b/pcsx2/gui/AppCoreThread.cpp index e9c177ec6d..3e6d7f1317 100644 --- a/pcsx2/gui/AppCoreThread.cpp +++ b/pcsx2/gui/AppCoreThread.cpp @@ -190,7 +190,7 @@ void AppCoreThread::OnResumeReady() // Load Game Settings found in database // (game fixes, round modes, clamp modes, etc...) // Returns number of gamefixes set -static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { +static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game, bool verbose = true) { if( !game.IsOk() ) return 0; int gf = 0; @@ -200,7 +200,7 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { SSE_RoundMode eeRM = (SSE_RoundMode)game.getInt("eeRoundMode"); if (EnumIsValid(eeRM)) { - Console.WriteLn("(GameDB) Changing EE/FPU roundmode to %d [%s]", eeRM, EnumToString(eeRM)); + if(verbose) Console.WriteLn("(GameDB) Changing EE/FPU roundmode to %d [%s]", eeRM, EnumToString(eeRM)); dest.Cpu.sseMXCSR.SetRoundMode(eeRM); ++gf; } @@ -211,7 +211,7 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { SSE_RoundMode vuRM = (SSE_RoundMode)game.getInt("vuRoundMode"); if (EnumIsValid(vuRM)) { - Console.WriteLn("(GameDB) Changing VU0/VU1 roundmode to %d [%s]", vuRM, EnumToString(vuRM)); + if(verbose) Console.WriteLn("(GameDB) Changing VU0/VU1 roundmode to %d [%s]", vuRM, EnumToString(vuRM)); dest.Cpu.sseVUMXCSR.SetRoundMode(vuRM); ++gf; } @@ -219,7 +219,7 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { if (game.keyExists("eeClampMode")) { int clampMode = game.getInt("eeClampMode"); - Console.WriteLn("(GameDB) Changing EE/FPU clamp mode [mode=%d]", clampMode); + if(verbose) Console.WriteLn("(GameDB) Changing EE/FPU clamp mode [mode=%d]", clampMode); dest.Recompiler.fpuOverflow = (clampMode >= 1); dest.Recompiler.fpuExtraOverflow = (clampMode >= 2); dest.Recompiler.fpuFullMode = (clampMode >= 3); @@ -228,7 +228,7 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { if (game.keyExists("vuClampMode")) { int clampMode = game.getInt("vuClampMode"); - Console.WriteLn("(GameDB) Changing VU0/VU1 clamp mode [mode=%d]", clampMode); + if(verbose) Console.WriteLn("(GameDB) Changing VU0/VU1 clamp mode [mode=%d]", clampMode); dest.Recompiler.vuOverflow = (clampMode >= 1); dest.Recompiler.vuExtraOverflow = (clampMode >= 2); dest.Recompiler.vuSignOverflow = (clampMode >= 3); @@ -244,7 +244,7 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { { bool enableIt = game.getBool(key); dest.Gamefixes.Set(id, enableIt); - Console.WriteLn(L"(GameDB) %s Gamefix: " + key, enableIt ? L"Enabled" : L"Disabled" ); + if(verbose) Console.WriteLn(L"(GameDB) %s Gamefix: " + key, enableIt ? L"Enabled" : L"Disabled" ); gf++; } } @@ -254,6 +254,11 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game) { void AppCoreThread::ApplySettings( const Pcsx2Config& src ) { + // Used to track the current game serial/id, and used to disable verbose logging of + // applied patches if the game info hasn't changed. (avoids spam when suspending/resuming + // or using TAB or other things). + static wxString curGameKey; + // 'fixup' is the EmuConfig we're going to upload to the emulator, which very well may // differ from the user-configured EmuConfig settings. So we make a copy here and then // we apply the commandline overrides and database gamefixes, and then upload 'fixup' @@ -289,10 +294,13 @@ void AppCoreThread::ApplySettings( const Pcsx2Config& src ) if (ElfCRC) gameCRC.Printf( L"%8.8x", ElfCRC ); if (!DiscSerial.IsEmpty()) gameSerial = L" [" + DiscSerial + L"]"; + const wxString newGameKey( SysGetDiscID() ); + const bool verbose( newGameKey != curGameKey ); + if (IGameDatabase* GameDB = AppHost_GetGameDatabase() ) { Game_Data game; - if (GameDB->findGame(game, SysGetDiscID())) { + if (GameDB->findGame(game, curGameKey)) { int compat = game.getInt("Compat"); gameName = game.getString("Name"); gameName += L" (" + game.getString("Region") + L")"; @@ -302,8 +310,9 @@ void AppCoreThread::ApplySettings( const Pcsx2Config& src ) if (EmuConfig.EnablePatches) { if (int patches = InitPatches(gameCRC, game)) { gamePatch.Printf(L" [%d Patches]", patches); + if (verbose) Console.WriteLn(Color_Green, "(GameDB) Patches Loaded: %d", patches); } - if (int fixes = loadGameSettings(fixup, game)) { + if (int fixes = loadGameSettings(fixup, game, verbose)) { gameFixes.Printf(L" [%d Fixes]", fixes); } } @@ -315,6 +324,8 @@ void AppCoreThread::ApplySettings( const Pcsx2Config& src ) } } + curGameKey = newGameKey; + Console.SetTitle(gameName+gameSerial+gameCompat+gameFixes+gamePatch+gameCheats); // Re-entry guard protects against cases where code wants to manually set core settings diff --git a/pcsx2/x86/ix86-32/iR5900Arit.cpp b/pcsx2/x86/ix86-32/iR5900Arit.cpp index 5955fb757d..d24859b860 100644 --- a/pcsx2/x86/ix86-32/iR5900Arit.cpp +++ b/pcsx2/x86/ix86-32/iR5900Arit.cpp @@ -587,19 +587,19 @@ void recSLTs_const(int info, int sign, int st) GPR_reg64 cval = g_cpuConstRegs[st ? _Rt_ : _Rs_]; xMOV(eax, 1); - { - xCMP(ptr32[&cpuRegs.GPR.r[st ? _Rs_ : _Rt_].UL[1]], cval.UL[1]); - xSmartJump pass1(st ? (sign ? Jcc_Less : Jcc_Below) : (sign ? Jcc_Greater : Jcc_Above)); - xForwardJump fail(st ? (sign ? Jcc_Greater : Jcc_Above) : (sign ? Jcc_Less : Jcc_Below)); - { - xCMP(ptr32[&cpuRegs.GPR.r[st ? _Rs_ : _Rt_].UL[0]], cval.UL[0]); - xForwardJump pass2(st ? Jcc_Below : Jcc_Above); - fail.SetTarget(); - xMOV(eax, 0); - pass2.SetTarget(); - } + xCMP(ptr32[&cpuRegs.GPR.r[st ? _Rs_ : _Rt_].UL[1]], cval.UL[1]); + xForwardJump8 pass1(st ? (sign ? Jcc_Less : Jcc_Below) : (sign ? Jcc_Greater : Jcc_Above)); + xForwardJump8 fail(st ? (sign ? Jcc_Greater : Jcc_Above) : (sign ? Jcc_Less : Jcc_Below)); + { + xCMP(ptr32[&cpuRegs.GPR.r[st ? _Rs_ : _Rt_].UL[0]], cval.UL[0]); + xForwardJump8 pass2(st ? Jcc_Below : Jcc_Above); + + fail.SetTarget(); + xMOV(eax, 0); + pass2.SetTarget(); } + pass1.SetTarget(); xMOV(ptr32[&cpuRegs.GPR.r[_Rd_].UL[0]], eax); xMOV(ptr32[&cpuRegs.GPR.r[_Rd_].UL[1]], 0); @@ -610,21 +610,21 @@ void recSLTs_(int info, int sign) pxAssert( !(info & PROCESS_EE_XMM) ); xMOV(eax, 1); - { - xMOV(edx, ptr32[&cpuRegs.GPR.r[_Rs_].UL[1]]); - xCMP(edx, ptr32[&cpuRegs.GPR.r[_Rt_].UL[1]]); - xSmartJump pass1(sign ? Jcc_Less : Jcc_Below); - xForwardJump fail(sign ? Jcc_Greater : Jcc_Above); - { - xMOV(edx, ptr32[&cpuRegs.GPR.r[_Rs_].UL[0]]); - xCMP(edx, ptr32[&cpuRegs.GPR.r[_Rt_].UL[0]]); - xForwardJump pass2(Jcc_Below); - fail.SetTarget(); - xMOV(eax, 0); - pass2.SetTarget(); - } + xMOV(edx, ptr32[&cpuRegs.GPR.r[_Rs_].UL[1]]); + xCMP(edx, ptr32[&cpuRegs.GPR.r[_Rt_].UL[1]]); + xForwardJump8 pass1(sign ? Jcc_Less : Jcc_Below); + xForwardJump8 fail(sign ? Jcc_Greater : Jcc_Above); + { + xMOV(edx, ptr32[&cpuRegs.GPR.r[_Rs_].UL[0]]); + xCMP(edx, ptr32[&cpuRegs.GPR.r[_Rt_].UL[0]]); + xForwardJump8 pass2(Jcc_Below); + + fail.SetTarget(); + xMOV(eax, 0); + pass2.SetTarget(); } + pass1.SetTarget(); xMOV(ptr32[&cpuRegs.GPR.r[_Rd_].UL[0]], eax); xMOV(ptr32[&cpuRegs.GPR.r[_Rd_].UL[1]], 0);