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:
Jake.Stine 2010-09-29 13:48:36 +00:00
parent a02057292b
commit 21a147563e
4 changed files with 28 additions and 20 deletions

View File

@ -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
{ {

View File

@ -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

View File

@ -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

View File

@ -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;