mirror of https://github.com/PCSX2/pcsx2.git
UI bugfix for speedhacks being improperly applied even when speedhacks were disabled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3857 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
a02057292b
commit
21a147563e
|
@ -338,9 +338,9 @@ struct Pcsx2Config
|
||||||
OPHFlagHack :1; // Skips MPEG videos (Katamari and other games need this)
|
OPHFlagHack :1; // Skips MPEG videos (Katamari and other games need this)
|
||||||
BITFIELD_END
|
BITFIELD_END
|
||||||
|
|
||||||
// all gamefixes are disabled by default.
|
GamefixOptions();
|
||||||
GamefixOptions() : bitset( 0 ) {}
|
|
||||||
void LoadSave( IniInterface& conf );
|
void LoadSave( IniInterface& conf );
|
||||||
|
GamefixOptions& DisableAll();
|
||||||
|
|
||||||
void Set( const wxString& list, bool enabled=true );
|
void Set( const wxString& list, bool enabled=true );
|
||||||
void Clear( const wxString& list ) { Set( list, false ); }
|
void Clear( const wxString& list ) { Set( list, false ); }
|
||||||
|
@ -378,6 +378,7 @@ struct Pcsx2Config
|
||||||
|
|
||||||
SpeedhackOptions();
|
SpeedhackOptions();
|
||||||
void LoadSave( IniInterface& conf );
|
void LoadSave( IniInterface& conf );
|
||||||
|
SpeedhackOptions& DisableAll();
|
||||||
|
|
||||||
bool operator ==( const SpeedhackOptions& right ) const
|
bool operator ==( const SpeedhackOptions& right ) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,9 +37,7 @@ void TraceLogFilters::LoadSave( IniInterface& ini )
|
||||||
|
|
||||||
Pcsx2Config::SpeedhackOptions::SpeedhackOptions()
|
Pcsx2Config::SpeedhackOptions::SpeedhackOptions()
|
||||||
{
|
{
|
||||||
bitset = 0;
|
DisableAll();
|
||||||
EECycleRate = 0;
|
|
||||||
VUCycleSteal = 0;
|
|
||||||
|
|
||||||
// Set recommended speedhacks to enabled by default. They'll still be off globally on resets.
|
// Set recommended speedhacks to enabled by default. They'll still be off globally on resets.
|
||||||
WaitLoop = true;
|
WaitLoop = true;
|
||||||
|
@ -47,6 +45,15 @@ Pcsx2Config::SpeedhackOptions::SpeedhackOptions()
|
||||||
vuFlagHack = true;
|
vuFlagHack = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Pcsx2Config::SpeedhackOptions& Pcsx2Config::SpeedhackOptions::DisableAll()
|
||||||
|
{
|
||||||
|
bitset = 0;
|
||||||
|
EECycleRate = 0;
|
||||||
|
VUCycleSteal = 0;
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
void Pcsx2Config::SpeedhackOptions::LoadSave( IniInterface& ini )
|
void Pcsx2Config::SpeedhackOptions::LoadSave( IniInterface& ini )
|
||||||
{
|
{
|
||||||
SpeedhackOptions defaults;
|
SpeedhackOptions defaults;
|
||||||
|
@ -255,6 +262,18 @@ const __fi wxChar* EnumToString( GamefixId id )
|
||||||
return tbl_GamefixNames[id];
|
return tbl_GamefixNames[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// all gamefixes are disabled by default.
|
||||||
|
Pcsx2Config::GamefixOptions::GamefixOptions()
|
||||||
|
{
|
||||||
|
DisableAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
Pcsx2Config::GamefixOptions& Pcsx2Config::GamefixOptions::DisableAll()
|
||||||
|
{
|
||||||
|
bitset = 0;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
// Enables a full list of gamefixes. The list can be either comma or pipe-delimited.
|
// Enables a full list of gamefixes. The list can be either comma or pipe-delimited.
|
||||||
// Example: "XGKick,IpuWait" or "EEtiming,FpuCompare"
|
// Example: "XGKick,IpuWait" or "EEtiming,FpuCompare"
|
||||||
// If an unrecognized tag is encountered, a warning is printed to the console, but no error
|
// If an unrecognized tag is encountered, a warning is printed to the console, but no error
|
||||||
|
|
|
@ -174,18 +174,6 @@ static __fi void IopTestEvent( IopEventId n, void (*callback)() )
|
||||||
psxSetNextBranch( psxRegs.sCycle[n], psxRegs.eCycle[n] );
|
psxSetNextBranch( psxRegs.sCycle[n], psxRegs.eCycle[n] );
|
||||||
}
|
}
|
||||||
|
|
||||||
static __fi void sifHackInterrupt()
|
|
||||||
{
|
|
||||||
// No reason -- just that sometimes the SIF fell asleep, and this wakes it up.
|
|
||||||
|
|
||||||
iopIntcIrq( 3 ); // IOP DMAC int
|
|
||||||
//hwIntcIrq(INTC_SBUS); // EE's SIF BUS notifier... maybe or maybe not needed?
|
|
||||||
|
|
||||||
// hack is rescheduled as needed by the event handler (depending on if it's actively
|
|
||||||
// signalling an interrupt or not).. better there than here.
|
|
||||||
//PSX_INT( IopEvt_SIFhack, 128 );
|
|
||||||
}
|
|
||||||
|
|
||||||
static __fi void _psxTestInterrupts()
|
static __fi void _psxTestInterrupts()
|
||||||
{
|
{
|
||||||
IopTestEvent(IopEvt_SIF0, sif0Interrupt); // SIF0
|
IopTestEvent(IopEvt_SIF0, sif0Interrupt); // SIF0
|
||||||
|
|
|
@ -272,7 +272,7 @@ void AppCoreThread::ApplySettings( const Pcsx2Config& src )
|
||||||
|
|
||||||
const CommandlineOverrides& overrides( wxGetApp().Overrides );
|
const CommandlineOverrides& overrides( wxGetApp().Overrides );
|
||||||
if( overrides.DisableSpeedhacks || !g_Conf->EnableSpeedHacks )
|
if( overrides.DisableSpeedhacks || !g_Conf->EnableSpeedHacks )
|
||||||
fixup.Speedhacks = Pcsx2Config::SpeedhackOptions();
|
fixup.Speedhacks = Pcsx2Config::SpeedhackOptions().DisableAll();
|
||||||
|
|
||||||
if( overrides.ApplyCustomGamefixes )
|
if( overrides.ApplyCustomGamefixes )
|
||||||
{
|
{
|
||||||
|
@ -280,7 +280,7 @@ void AppCoreThread::ApplySettings( const Pcsx2Config& src )
|
||||||
fixup.Gamefixes.Set( id, overrides.Gamefixes.Get(id) );
|
fixup.Gamefixes.Set( id, overrides.Gamefixes.Get(id) );
|
||||||
}
|
}
|
||||||
else if( !g_Conf->EnableGameFixes )
|
else if( !g_Conf->EnableGameFixes )
|
||||||
fixup.Gamefixes = Pcsx2Config::GamefixOptions();
|
fixup.Gamefixes = Pcsx2Config::GamefixOptions().DisableAll();
|
||||||
|
|
||||||
wxString gameCRC;
|
wxString gameCRC;
|
||||||
wxString gameSerial;
|
wxString gameSerial;
|
||||||
|
|
Loading…
Reference in New Issue