mirror of https://github.com/PCSX2/pcsx2.git
Bugfix for rounding/clamping mode patches not being applied (and possibly some other obscure cpu settings bugs as well).
Cause: there were accidentally 2 instances of 'Recompiler' in the Pcsx2 emulator settings structure. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3843 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
c7257797a1
commit
f6a7c33559
|
@ -240,7 +240,7 @@ struct Pcsx2Config
|
||||||
return !OpEqu( bitset );
|
return !OpEqu( bitset );
|
||||||
}
|
}
|
||||||
|
|
||||||
} Recompiler;
|
};
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
struct CpuOptions
|
struct CpuOptions
|
||||||
|
|
|
@ -128,8 +128,7 @@ void SysCoreThread::ApplySettings( const Pcsx2Config& src )
|
||||||
|
|
||||||
if( !pxAssertDev( IsPaused(), "CoreThread is not paused; settings cannot be applied." ) ) return;
|
if( !pxAssertDev( IsPaused(), "CoreThread is not paused; settings cannot be applied." ) ) return;
|
||||||
|
|
||||||
m_resetRecompilers = ( src.Cpu != EmuConfig.Cpu ) || ( src.Recompiler != EmuConfig.Recompiler ) ||
|
m_resetRecompilers = ( src.Cpu != EmuConfig.Cpu ) || ( src.Gamefixes != EmuConfig.Gamefixes ) || ( src.Speedhacks != EmuConfig.Speedhacks );
|
||||||
( src.Gamefixes != EmuConfig.Gamefixes ) || ( src.Speedhacks != EmuConfig.Speedhacks );
|
|
||||||
m_resetProfilers = ( src.Profiler != EmuConfig.Profiler );
|
m_resetProfilers = ( src.Profiler != EmuConfig.Profiler );
|
||||||
m_resetVsyncTimers = ( src.GS != EmuConfig.GS );
|
m_resetVsyncTimers = ( src.GS != EmuConfig.GS );
|
||||||
|
|
||||||
|
|
|
@ -221,18 +221,18 @@ static int loadGameSettings(Pcsx2Config& dest, const Game_Data& game, bool verbo
|
||||||
if (game.keyExists("eeClampMode")) {
|
if (game.keyExists("eeClampMode")) {
|
||||||
int clampMode = game.getInt("eeClampMode");
|
int clampMode = game.getInt("eeClampMode");
|
||||||
if(verbose) 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.Cpu.Recompiler.fpuOverflow = (clampMode >= 1);
|
||||||
dest.Recompiler.fpuExtraOverflow = (clampMode >= 2);
|
dest.Cpu.Recompiler.fpuExtraOverflow = (clampMode >= 2);
|
||||||
dest.Recompiler.fpuFullMode = (clampMode >= 3);
|
dest.Cpu.Recompiler.fpuFullMode = (clampMode >= 3);
|
||||||
gf++;
|
gf++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (game.keyExists("vuClampMode")) {
|
if (game.keyExists("vuClampMode")) {
|
||||||
int clampMode = game.getInt("vuClampMode");
|
int clampMode = game.getInt("vuClampMode");
|
||||||
if(verbose) 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.Cpu.Recompiler.vuOverflow = (clampMode >= 1);
|
||||||
dest.Recompiler.vuExtraOverflow = (clampMode >= 2);
|
dest.Cpu.Recompiler.vuExtraOverflow = (clampMode >= 2);
|
||||||
dest.Recompiler.vuSignOverflow = (clampMode >= 3);
|
dest.Cpu.Recompiler.vuSignOverflow = (clampMode >= 3);
|
||||||
gf++;
|
gf++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -280,44 +280,46 @@ void Pcsx2App::AllocateCoreStuffs()
|
||||||
exconf += 6;
|
exconf += 6;
|
||||||
exconf += scrollableTextArea | pxExpand.Border(wxALL, 16);
|
exconf += scrollableTextArea | pxExpand.Border(wxALL, 16);
|
||||||
|
|
||||||
|
Pcsx2Config::RecompilerOptions& recOps = g_Conf->EmuOptions.Cpu.Recompiler;
|
||||||
|
|
||||||
if( BaseException* ex = m_CpuProviders->GetException_EE() )
|
if( BaseException* ex = m_CpuProviders->GetException_EE() )
|
||||||
{
|
{
|
||||||
scrollableTextArea->AppendText( L"* R5900 (EE)\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
scrollableTextArea->AppendText( L"* R5900 (EE)\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
||||||
g_Conf->EmuOptions.Recompiler.EnableEE = false;
|
recOps.EnableEE = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( BaseException* ex = m_CpuProviders->GetException_IOP() )
|
if( BaseException* ex = m_CpuProviders->GetException_IOP() )
|
||||||
{
|
{
|
||||||
scrollableTextArea->AppendText( L"* R3000A (IOP)\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
scrollableTextArea->AppendText( L"* R3000A (IOP)\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
||||||
g_Conf->EmuOptions.Recompiler.EnableIOP = false;
|
recOps.EnableIOP = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( BaseException* ex = m_CpuProviders->GetException_MicroVU0() )
|
if( BaseException* ex = m_CpuProviders->GetException_MicroVU0() )
|
||||||
{
|
{
|
||||||
scrollableTextArea->AppendText( L"* microVU0\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
scrollableTextArea->AppendText( L"* microVU0\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
||||||
g_Conf->EmuOptions.Recompiler.UseMicroVU0 = false;
|
recOps.UseMicroVU0 = false;
|
||||||
g_Conf->EmuOptions.Recompiler.EnableVU0 = g_Conf->EmuOptions.Recompiler.EnableVU0 && m_CpuProviders->IsRecAvailable_SuperVU0();
|
recOps.EnableVU0 = recOps.EnableVU0 && m_CpuProviders->IsRecAvailable_SuperVU0();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( BaseException* ex = m_CpuProviders->GetException_MicroVU1() )
|
if( BaseException* ex = m_CpuProviders->GetException_MicroVU1() )
|
||||||
{
|
{
|
||||||
scrollableTextArea->AppendText( L"* microVU1\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
scrollableTextArea->AppendText( L"* microVU1\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
||||||
g_Conf->EmuOptions.Recompiler.UseMicroVU1 = false;
|
recOps.UseMicroVU1 = false;
|
||||||
g_Conf->EmuOptions.Recompiler.EnableVU1 = g_Conf->EmuOptions.Recompiler.EnableVU1 && m_CpuProviders->IsRecAvailable_SuperVU1();
|
recOps.EnableVU1 = recOps.EnableVU1 && m_CpuProviders->IsRecAvailable_SuperVU1();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( BaseException* ex = m_CpuProviders->GetException_SuperVU0() )
|
if( BaseException* ex = m_CpuProviders->GetException_SuperVU0() )
|
||||||
{
|
{
|
||||||
scrollableTextArea->AppendText( L"* SuperVU0\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
scrollableTextArea->AppendText( L"* SuperVU0\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
||||||
g_Conf->EmuOptions.Recompiler.UseMicroVU0 = m_CpuProviders->IsRecAvailable_MicroVU0();
|
recOps.UseMicroVU0 = m_CpuProviders->IsRecAvailable_MicroVU0();
|
||||||
g_Conf->EmuOptions.Recompiler.EnableVU0 = g_Conf->EmuOptions.Recompiler.EnableVU0 && g_Conf->EmuOptions.Recompiler.UseMicroVU0;
|
recOps.EnableVU0 = recOps.EnableVU0 && recOps.UseMicroVU0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( BaseException* ex = m_CpuProviders->GetException_SuperVU1() )
|
if( BaseException* ex = m_CpuProviders->GetException_SuperVU1() )
|
||||||
{
|
{
|
||||||
scrollableTextArea->AppendText( L"* SuperVU1\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
scrollableTextArea->AppendText( L"* SuperVU1\n\t" + ex->FormatDiagnosticMessage() + L"\n\n" );
|
||||||
g_Conf->EmuOptions.Recompiler.UseMicroVU1 = m_CpuProviders->IsRecAvailable_MicroVU1();
|
recOps.UseMicroVU1 = m_CpuProviders->IsRecAvailable_MicroVU1();
|
||||||
g_Conf->EmuOptions.Recompiler.EnableVU1 = g_Conf->EmuOptions.Recompiler.EnableVU1 && g_Conf->EmuOptions.Recompiler.UseMicroVU1;
|
recOps.EnableVU1 = recOps.EnableVU1 && recOps.UseMicroVU1;
|
||||||
}
|
}
|
||||||
|
|
||||||
exconf += exconf.Heading( pxE(".Popup:RecompilerInit:Footer",
|
exconf += exconf.Heading( pxE(".Popup:RecompilerInit:Footer",
|
||||||
|
|
|
@ -370,7 +370,7 @@ static void __fastcall StackFrameCheckFailed( int espORebp, int regval )
|
||||||
|
|
||||||
static void _DynGen_StackFrameCheck()
|
static void _DynGen_StackFrameCheck()
|
||||||
{
|
{
|
||||||
if( !EmuConfig.Recompiler.StackFrameChecks ) return;
|
if( !EmuConfig.Cpu.Recompiler.StackFrameChecks ) return;
|
||||||
|
|
||||||
// --------- EBP Here -----------
|
// --------- EBP Here -----------
|
||||||
|
|
||||||
|
@ -1400,7 +1400,7 @@ static void __fastcall recRecompile( const u32 startpc )
|
||||||
_initXMMregs();
|
_initXMMregs();
|
||||||
_initMMXregs();
|
_initMMXregs();
|
||||||
|
|
||||||
if( EmuConfig.Recompiler.PreBlockCheckEE )
|
if( EmuConfig.Cpu.Recompiler.PreBlockCheckEE )
|
||||||
{
|
{
|
||||||
// per-block dump checks, for debugging purposes.
|
// per-block dump checks, for debugging purposes.
|
||||||
// [TODO] : These must be enabled from the GUI or INI to be used, otherwise the
|
// [TODO] : These must be enabled from the GUI or INI to be used, otherwise the
|
||||||
|
|
Loading…
Reference in New Issue