clang-format Config.h and Pcsx2Config.cpp

This commit is contained in:
Connor McLaughlin 2021-10-05 11:59:03 +10:00 committed by refractionpcsx2
parent 3c522a0e60
commit d440360906
2 changed files with 323 additions and 280 deletions

View File

@ -106,12 +106,12 @@ typename std::underlying_type<Enumeration>::type enum_cast(Enumeration E)
return static_cast<typename std::underlying_type<Enumeration>::type>(E);
}
ImplementEnumOperators( GamefixId );
ImplementEnumOperators( SpeedhackId );
ImplementEnumOperators(GamefixId);
ImplementEnumOperators(SpeedhackId);
//------------ DEFAULT sseMXCSR VALUES ---------------
#define DEFAULT_sseMXCSR 0xffc0 //FPU rounding > DaZ, FtZ, "chop"
#define DEFAULT_sseVUMXCSR 0xffc0 //VU rounding > DaZ, FtZ, "chop"
#define DEFAULT_sseMXCSR 0xffc0 //FPU rounding > DaZ, FtZ, "chop"
#define DEFAULT_sseVUMXCSR 0xffc0 //VU rounding > DaZ, FtZ, "chop"
// --------------------------------------------------------------------------------------
// TraceFiltersEE
@ -120,10 +120,10 @@ struct TraceFiltersEE
{
BITFIELD32()
bool
m_EnableAll :1, // Master Enable switch (if false, no logs at all)
m_EnableDisasm :1,
m_EnableRegisters:1,
m_EnableEvents :1; // Enables logging of event-driven activity -- counters, DMAs, etc.
m_EnableAll : 1, // Master Enable switch (if false, no logs at all)
m_EnableDisasm : 1,
m_EnableRegisters : 1,
m_EnableEvents : 1; // Enables logging of event-driven activity -- counters, DMAs, etc.
BITFIELD_END
TraceFiltersEE()
@ -131,14 +131,14 @@ struct TraceFiltersEE
bitset = 0;
}
bool operator ==( const TraceFiltersEE& right ) const
bool operator==(const TraceFiltersEE& right) const
{
return OpEqu( bitset );
return OpEqu(bitset);
}
bool operator !=( const TraceFiltersEE& right ) const
bool operator!=(const TraceFiltersEE& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
@ -149,10 +149,10 @@ struct TraceFiltersIOP
{
BITFIELD32()
bool
m_EnableAll :1, // Master Enable switch (if false, no logs at all)
m_EnableDisasm :1,
m_EnableRegisters:1,
m_EnableEvents :1; // Enables logging of event-driven activity -- counters, DMAs, etc.
m_EnableAll : 1, // Master Enable switch (if false, no logs at all)
m_EnableDisasm : 1,
m_EnableRegisters : 1,
m_EnableEvents : 1; // Enables logging of event-driven activity -- counters, DMAs, etc.
BITFIELD_END
TraceFiltersIOP()
@ -160,14 +160,14 @@ struct TraceFiltersIOP
bitset = 0;
}
bool operator ==( const TraceFiltersIOP& right ) const
bool operator==(const TraceFiltersIOP& right) const
{
return OpEqu( bitset );
return OpEqu(bitset);
}
bool operator !=( const TraceFiltersIOP& right ) const
bool operator!=(const TraceFiltersIOP& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
@ -182,26 +182,26 @@ struct TraceLogFilters
// *very* high volume, and debug builds get noticably slower if they have to invoke
// methods/accessors to test the log enable bits. Debug builds are slow enough already,
// so I prefer this to help keep them usable.
bool Enabled;
bool Enabled;
TraceFiltersEE EE;
TraceFiltersIOP IOP;
TraceFiltersEE EE;
TraceFiltersIOP IOP;
TraceLogFilters()
{
Enabled = false;
Enabled = false;
}
void LoadSave( SettingsWrapper& ini );
void LoadSave(SettingsWrapper& ini);
bool operator ==( const TraceLogFilters& right ) const
bool operator==(const TraceLogFilters& right) const
{
return OpEqu( Enabled ) && OpEqu( EE ) && OpEqu( IOP );
return OpEqu(Enabled) && OpEqu(EE) && OpEqu(IOP);
}
bool operator !=( const TraceLogFilters& right ) const
bool operator!=(const TraceLogFilters& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
@ -221,26 +221,29 @@ struct Pcsx2Config
struct ProfilerOptions
{
BITFIELD32()
bool
Enabled:1, // universal toggle for the profiler.
RecBlocks_EE:1, // Enables per-block profiling for the EE recompiler [unimplemented]
RecBlocks_IOP:1, // Enables per-block profiling for the IOP recompiler [unimplemented]
RecBlocks_VU0:1, // Enables per-block profiling for the VU0 recompiler [unimplemented]
RecBlocks_VU1:1; // Enables per-block profiling for the VU1 recompiler [unimplemented]
bool
Enabled : 1, // universal toggle for the profiler.
RecBlocks_EE : 1, // Enables per-block profiling for the EE recompiler [unimplemented]
RecBlocks_IOP : 1, // Enables per-block profiling for the IOP recompiler [unimplemented]
RecBlocks_VU0 : 1, // Enables per-block profiling for the VU0 recompiler [unimplemented]
RecBlocks_VU1 : 1; // Enables per-block profiling for the VU1 recompiler [unimplemented]
BITFIELD_END
// Default is Disabled, with all recs enabled underneath.
ProfilerOptions() : bitset( 0xfffffffe ) {}
void LoadSave( SettingsWrapper& wrap);
bool operator ==( const ProfilerOptions& right ) const
ProfilerOptions()
: bitset(0xfffffffe)
{
return OpEqu( bitset );
}
void LoadSave(SettingsWrapper& wrap);
bool operator==(const ProfilerOptions& right) const
{
return OpEqu(bitset);
}
bool operator !=( const ProfilerOptions& right ) const
bool operator!=(const ProfilerOptions& right) const
{
return !OpEqu( bitset );
return !OpEqu(bitset);
}
};
@ -248,46 +251,45 @@ struct Pcsx2Config
struct RecompilerOptions
{
BITFIELD32()
bool
EnableEE :1,
EnableIOP :1,
EnableVU0 :1,
EnableVU1 :1;
bool
EnableEE : 1,
EnableIOP : 1,
EnableVU0 : 1,
EnableVU1 : 1;
bool
vuOverflow :1,
vuExtraOverflow :1,
vuSignOverflow :1,
vuUnderflow :1;
bool
vuOverflow : 1,
vuExtraOverflow : 1,
vuSignOverflow : 1,
vuUnderflow : 1;
bool
fpuOverflow :1,
fpuExtraOverflow:1,
fpuFullMode :1;
bool
fpuOverflow : 1,
fpuExtraOverflow : 1,
fpuFullMode : 1;
bool
StackFrameChecks:1,
PreBlockCheckEE :1,
PreBlockCheckIOP:1;
bool
EnableEECache :1;
bool
StackFrameChecks : 1,
PreBlockCheckEE : 1,
PreBlockCheckIOP : 1;
bool
EnableEECache : 1;
BITFIELD_END
RecompilerOptions();
void ApplySanityCheck();
void LoadSave( SettingsWrapper& wrap);
void LoadSave(SettingsWrapper& wrap);
bool operator ==( const RecompilerOptions& right ) const
bool operator==(const RecompilerOptions& right) const
{
return OpEqu( bitset );
return OpEqu(bitset);
}
bool operator !=( const RecompilerOptions& right ) const
bool operator!=(const RecompilerOptions& right) const
{
return !OpEqu( bitset );
return !OpEqu(bitset);
}
};
// ------------------------------------------------------------------------
@ -299,39 +301,39 @@ struct Pcsx2Config
SSE_MXCSR sseVUMXCSR;
CpuOptions();
void LoadSave( SettingsWrapper& wrap);
void LoadSave(SettingsWrapper& wrap);
void ApplySanityCheck();
bool operator ==( const CpuOptions& right ) const
bool operator==(const CpuOptions& right) const
{
return OpEqu( sseMXCSR ) && OpEqu( sseVUMXCSR ) && OpEqu( Recompiler );
return OpEqu(sseMXCSR) && OpEqu(sseVUMXCSR) && OpEqu(Recompiler);
}
bool operator !=( const CpuOptions& right ) const
bool operator!=(const CpuOptions& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
// ------------------------------------------------------------------------
struct GSOptions
{
int VsyncQueueSize{ 2 };
int VsyncQueueSize{2};
// forces the MTGS to execute tags/tasks in fully blocking/synchronous
// style. Useful for debugging potential bugs in the MTGS pipeline.
bool SynchronousMTGS{ false };
bool FrameLimitEnable{ true };
bool FrameSkipEnable{ false };
bool SynchronousMTGS{false};
bool FrameLimitEnable{true};
bool FrameSkipEnable{false};
VsyncMode VsyncEnable{ VsyncMode::Off };
VsyncMode VsyncEnable{VsyncMode::Off};
int FramesToDraw{ 2 }; // number of consecutive frames (fields) to render
int FramesToSkip{ 2 }; // number of consecutive frames (fields) to skip
int FramesToDraw{2}; // number of consecutive frames (fields) to render
int FramesToSkip{2}; // number of consecutive frames (fields) to skip
double LimitScalar{ 1.0 };
double FramerateNTSC{ 59.94 };
double FrameratePAL{ 50.00 };
double LimitScalar{1.0};
double FramerateNTSC{59.94};
double FrameratePAL{50.00};
AspectRatioType AspectRatio{AspectRatioType::R4_3};
FMVAspectRatioSwitchType FMVAspectRatioSwitch{FMVAspectRatioSwitchType::Off};
@ -341,33 +343,31 @@ struct Pcsx2Config
double OffsetX{0.0};
double OffsetY{0.0};
void LoadSave( SettingsWrapper& wrap);
void LoadSave(SettingsWrapper& wrap);
int GetVsync() const;
bool operator ==( const GSOptions& right ) const
bool operator==(const GSOptions& right) const
{
return
OpEqu( SynchronousMTGS ) &&
OpEqu( VsyncQueueSize ) &&
OpEqu( FrameSkipEnable ) &&
OpEqu( FrameLimitEnable ) &&
OpEqu( VsyncEnable ) &&
return OpEqu(SynchronousMTGS) &&
OpEqu(VsyncQueueSize) &&
OpEqu( LimitScalar ) &&
OpEqu( FramerateNTSC ) &&
OpEqu( FrameratePAL ) &&
OpEqu(FrameSkipEnable) &&
OpEqu(FrameLimitEnable) &&
OpEqu(VsyncEnable) &&
OpEqu( FramesToDraw ) &&
OpEqu( FramesToSkip );
OpEqu(LimitScalar) &&
OpEqu(FramerateNTSC) &&
OpEqu(FrameratePAL) &&
OpEqu(FramesToDraw) &&
OpEqu(FramesToSkip);
}
bool operator !=( const GSOptions& right ) const
bool operator!=(const GSOptions& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
// ------------------------------------------------------------------------
@ -375,43 +375,43 @@ struct Pcsx2Config
struct GamefixOptions
{
BITFIELD32()
bool
FpuMulHack : 1, // Tales of Destiny hangs.
FpuNegDivHack : 1, // Gundam games messed up camera-view.
GoemonTlbHack : 1, // Gomeon tlb miss hack. The game need to access unmapped virtual address. Instead to handle it as exception, tlb are preloaded at startup
SkipMPEGHack : 1, // Skips MPEG videos (Katamari and other games need this)
OPHFlagHack : 1, // Bleach Blade Battlers
EETimingHack : 1, // General purpose timing hack.
DMABusyHack : 1, // Denies writes to the DMAC when it's busy. This is correct behaviour but bad timing can cause problems.
GIFFIFOHack : 1, // Enabled the GIF FIFO (more correct but slower)
VIFFIFOHack : 1, // Pretends to fill the non-existant VIF FIFO Buffer.
VIF1StallHack : 1, // Like above, processes FIFO data before the stall is allowed (to make sure data goes over).
VuAddSubHack : 1, // Tri-ace games, they use an encryption algorithm that requires VU ADDI opcode to be bit-accurate.
IbitHack : 1, // I bit hack. Needed to stop constant VU recompilation in some games
VUKickstartHack : 1, // Gives new VU programs a slight head start and runs VU's ahead of EE to avoid VU register reading/writing issues
VUOverflowHack : 1, // Tries to simulate overflow flag checks (not really possible on x86 without soft floats)
XgKickHack : 1; // Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics, but breaks Tri-ace games and others.
bool
FpuMulHack : 1, // Tales of Destiny hangs.
FpuNegDivHack : 1, // Gundam games messed up camera-view.
GoemonTlbHack : 1, // Gomeon tlb miss hack. The game need to access unmapped virtual address. Instead to handle it as exception, tlb are preloaded at startup
SkipMPEGHack : 1, // Skips MPEG videos (Katamari and other games need this)
OPHFlagHack : 1, // Bleach Blade Battlers
EETimingHack : 1, // General purpose timing hack.
DMABusyHack : 1, // Denies writes to the DMAC when it's busy. This is correct behaviour but bad timing can cause problems.
GIFFIFOHack : 1, // Enabled the GIF FIFO (more correct but slower)
VIFFIFOHack : 1, // Pretends to fill the non-existant VIF FIFO Buffer.
VIF1StallHack : 1, // Like above, processes FIFO data before the stall is allowed (to make sure data goes over).
VuAddSubHack : 1, // Tri-ace games, they use an encryption algorithm that requires VU ADDI opcode to be bit-accurate.
IbitHack : 1, // I bit hack. Needed to stop constant VU recompilation in some games
VUKickstartHack : 1, // Gives new VU programs a slight head start and runs VU's ahead of EE to avoid VU register reading/writing issues
VUOverflowHack : 1, // Tries to simulate overflow flag checks (not really possible on x86 without soft floats)
XgKickHack : 1; // Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics, but breaks Tri-ace games and others.
BITFIELD_END
GamefixOptions();
void LoadSave( SettingsWrapper& wrap);
void LoadSave(SettingsWrapper& wrap);
GamefixOptions& DisableAll();
void Set( const wxString& list, bool enabled=true );
void Clear( const wxString& list ) { Set( list, false ); }
void Set(const wxString& list, bool enabled = true);
void Clear(const wxString& list) { Set(list, false); }
bool Get( GamefixId id ) const;
void Set( GamefixId id, bool enabled=true );
void Clear( GamefixId id ) { Set( id, false ); }
bool Get(GamefixId id) const;
void Set(GamefixId id, bool enabled = true);
void Clear(GamefixId id) { Set(id, false); }
bool operator ==( const GamefixOptions& right ) const
bool operator==(const GamefixOptions& right) const
{
return OpEqu( bitset );
return OpEqu(bitset);
}
bool operator !=( const GamefixOptions& right ) const
bool operator!=(const GamefixOptions& right) const
{
return !OpEqu( bitset );
return !OpEqu(bitset);
}
};
@ -419,17 +419,17 @@ struct Pcsx2Config
struct SpeedhackOptions
{
BITFIELD32()
bool
fastCDVD :1, // enables fast CDVD access
IntcStat :1, // tells Pcsx2 to fast-forward through intc_stat waits.
WaitLoop :1, // enables constant loop detection and fast-forwarding
vuFlagHack :1, // microVU specific flag hack
vuThread :1, // Enable Threaded VU1
vu1Instant :1; // Enable Instant VU1 (Without MTVU only)
bool
fastCDVD : 1, // enables fast CDVD access
IntcStat : 1, // tells Pcsx2 to fast-forward through intc_stat waits.
WaitLoop : 1, // enables constant loop detection and fast-forwarding
vuFlagHack : 1, // microVU specific flag hack
vuThread : 1, // Enable Threaded VU1
vu1Instant : 1; // Enable Instant VU1 (Without MTVU only)
BITFIELD_END
s8 EECycleRate; // EE cycle rate selector (1.0, 1.5, 2.0)
u8 EECycleSkip; // EE Cycle skip factor (0, 1, 2, or 3)
s8 EECycleRate; // EE cycle rate selector (1.0, 1.5, 2.0)
u8 EECycleSkip; // EE Cycle skip factor (0, 1, 2, or 3)
SpeedhackOptions();
void LoadSave(SettingsWrapper& conf);
@ -437,24 +437,24 @@ struct Pcsx2Config
void Set(SpeedhackId id, bool enabled = true);
bool operator ==( const SpeedhackOptions& right ) const
bool operator==(const SpeedhackOptions& right) const
{
return OpEqu( bitset ) && OpEqu( EECycleRate ) && OpEqu( EECycleSkip );
return OpEqu(bitset) && OpEqu(EECycleRate) && OpEqu(EECycleSkip);
}
bool operator !=( const SpeedhackOptions& right ) const
bool operator!=(const SpeedhackOptions& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
struct DebugOptions
{
BITFIELD32()
bool
ShowDebuggerOnStart :1;
bool
AlignMemoryWindowStart :1;
bool
ShowDebuggerOnStart : 1;
bool
AlignMemoryWindowStart : 1;
BITFIELD_END
u8 FontWidth;
@ -464,17 +464,16 @@ struct Pcsx2Config
u32 MemoryViewBytesPerRow;
DebugOptions();
void LoadSave( SettingsWrapper& wrap);
bool operator ==( const DebugOptions& right ) const
void LoadSave(SettingsWrapper& wrap);
bool operator==(const DebugOptions& right) const
{
return OpEqu( bitset ) && OpEqu( FontWidth ) && OpEqu( FontHeight )
&& OpEqu( WindowWidth ) && OpEqu( WindowHeight ) && OpEqu( MemoryViewBytesPerRow );
return OpEqu(bitset) && OpEqu(FontWidth) && OpEqu(FontHeight) && OpEqu(WindowWidth) && OpEqu(WindowHeight) && OpEqu(MemoryViewBytesPerRow);
}
bool operator !=( const DebugOptions& right ) const
bool operator!=(const DebugOptions& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
};
@ -526,51 +525,51 @@ struct Pcsx2Config
//
struct McdOptions
{
std::string Filename; // user-configured location of this memory card
bool Enabled; // memory card enabled (if false, memcard will not show up in-game)
MemoryCardType Type; // the memory card implementation that should be used
std::string Filename; // user-configured location of this memory card
bool Enabled; // memory card enabled (if false, memcard will not show up in-game)
MemoryCardType Type; // the memory card implementation that should be used
};
BITFIELD32()
bool
CdvdVerboseReads :1, // enables cdvd read activity verbosely dumped to the console
CdvdDumpBlocks :1, // enables cdvd block dumping
CdvdShareWrite :1, // allows the iso to be modified while it's loaded
EnablePatches :1, // enables patch detection and application
EnableCheats :1, // enables cheat detection and application
EnableIPC :1, // enables inter-process communication
EnableWideScreenPatches :1,
bool
CdvdVerboseReads : 1, // enables cdvd read activity verbosely dumped to the console
CdvdDumpBlocks : 1, // enables cdvd block dumping
CdvdShareWrite : 1, // allows the iso to be modified while it's loaded
EnablePatches : 1, // enables patch detection and application
EnableCheats : 1, // enables cheat detection and application
EnableIPC : 1, // enables inter-process communication
EnableWideScreenPatches : 1,
#ifndef DISABLE_RECORDING
EnableRecordingTools :1,
EnableRecordingTools : 1,
#endif
// when enabled uses BOOT2 injection, skipping sony bios splashes
UseBOOT2Injection :1,
BackupSavestate :1,
UseBOOT2Injection : 1,
BackupSavestate : 1,
// enables simulated ejection of memory cards when loading savestates
McdEnableEjection :1,
McdFolderAutoManage :1,
McdEnableEjection : 1,
McdFolderAutoManage : 1,
MultitapPort0_Enabled:1,
MultitapPort1_Enabled:1,
MultitapPort0_Enabled : 1,
MultitapPort1_Enabled : 1,
ConsoleToStdio :1,
HostFs :1;
ConsoleToStdio : 1,
HostFs : 1;
// uses automatic ntfs compression when creating new memory cards (Win32 only)
// uses automatic ntfs compression when creating new memory cards (Win32 only)
#ifdef __WXMSW__
bool McdCompressNTFS;
bool McdCompressNTFS;
#endif
BITFIELD_END
CpuOptions Cpu;
GSOptions GS;
SpeedhackOptions Speedhacks;
GamefixOptions Gamefixes;
ProfilerOptions Profiler;
DebugOptions Debugger;
FramerateOptions Framerate;
CpuOptions Cpu;
GSOptions GS;
SpeedhackOptions Speedhacks;
GamefixOptions Gamefixes;
ProfilerOptions Profiler;
DebugOptions Debugger;
FramerateOptions Framerate;
TraceLogFilters Trace;
TraceLogFilters Trace;
FilenameOptions BaseFilenames;
@ -594,12 +593,12 @@ struct Pcsx2Config
wxString FullpathToBios() const;
wxString FullpathToMcd(uint slot) const;
bool MultitapEnabled( uint port ) const;
bool MultitapEnabled(uint port) const;
bool operator ==(const Pcsx2Config& right) const;
bool operator !=( const Pcsx2Config& right ) const
bool operator==(const Pcsx2Config& right) const;
bool operator!=(const Pcsx2Config& right) const
{
return !this->operator ==( right );
return !this->operator==(right);
}
// You shouldn't assign to this class, because it'll mess with the runtime variables (Current...).
@ -620,7 +619,7 @@ namespace EmuFolders
extern wxDirName Logs;
extern wxDirName Cheats;
extern wxDirName CheatsWS;
}
} // namespace EmuFolders
/////////////////////////////////////////////////////////////////////////////////////////
// Helper Macros for Reading Emu Configurations.
@ -628,42 +627,42 @@ namespace EmuFolders
// ------------ CPU / Recompiler Options ---------------
#define THREAD_VU1 (EmuConfig.Cpu.Recompiler.EnableVU1 && EmuConfig.Speedhacks.vuThread)
#define INSTANT_VU1 (EmuConfig.Speedhacks.vu1Instant)
#define CHECK_EEREC (EmuConfig.Cpu.Recompiler.EnableEE)
#define CHECK_CACHE (EmuConfig.Cpu.Recompiler.EnableEECache)
#define CHECK_IOPREC (EmuConfig.Cpu.Recompiler.EnableIOP)
#define THREAD_VU1 (EmuConfig.Cpu.Recompiler.EnableVU1 && EmuConfig.Speedhacks.vuThread)
#define INSTANT_VU1 (EmuConfig.Speedhacks.vu1Instant)
#define CHECK_EEREC (EmuConfig.Cpu.Recompiler.EnableEE)
#define CHECK_CACHE (EmuConfig.Cpu.Recompiler.EnableEECache)
#define CHECK_IOPREC (EmuConfig.Cpu.Recompiler.EnableIOP)
//------------ SPECIAL GAME FIXES!!! ---------------
#define CHECK_VUADDSUBHACK (EmuConfig.Gamefixes.VuAddSubHack) // Special Fix for Tri-ace games, they use an encryption algorithm that requires VU addi opcode to be bit-accurate.
#define CHECK_FPUMULHACK (EmuConfig.Gamefixes.FpuMulHack) // Special Fix for Tales of Destiny hangs.
#define CHECK_FPUNEGDIVHACK (EmuConfig.Gamefixes.FpuNegDivHack) // Special Fix for Gundam games messed up camera-view.
#define CHECK_XGKICKHACK (EmuConfig.Gamefixes.XgKickHack) // Special Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics.
#define CHECK_EETIMINGHACK (EmuConfig.Gamefixes.EETimingHack) // Fix all scheduled events to happen in 1 cycle.
#define CHECK_SKIPMPEGHACK (EmuConfig.Gamefixes.SkipMPEGHack) // Finds sceMpegIsEnd pattern to tell the game the mpeg is finished (Katamari and a lot of games need this)
#define CHECK_OPHFLAGHACK (EmuConfig.Gamefixes.OPHFlagHack) // Bleach Blade Battlers
#define CHECK_DMABUSYHACK (EmuConfig.Gamefixes.DMABusyHack) // Denies writes to the DMAC when it's busy. This is correct behaviour but bad timing can cause problems.
#define CHECK_VIFFIFOHACK (EmuConfig.Gamefixes.VIFFIFOHack) // Pretends to fill the non-existant VIF FIFO Buffer.
#define CHECK_VIF1STALLHACK (EmuConfig.Gamefixes.VIF1StallHack) // Like above, processes FIFO data before the stall is allowed (to make sure data goes over).
#define CHECK_GIFFIFOHACK (EmuConfig.Gamefixes.GIFFIFOHack) // Enabled the GIF FIFO (more correct but slower)
#define CHECK_VUOVERFLOWHACK (EmuConfig.Gamefixes.VUOverflowHack) // Special Fix for Superman Returns, they check for overflows on PS2 floats which we can't do without soft floats.
#define CHECK_VUADDSUBHACK (EmuConfig.Gamefixes.VuAddSubHack) // Special Fix for Tri-ace games, they use an encryption algorithm that requires VU addi opcode to be bit-accurate.
#define CHECK_FPUMULHACK (EmuConfig.Gamefixes.FpuMulHack) // Special Fix for Tales of Destiny hangs.
#define CHECK_FPUNEGDIVHACK (EmuConfig.Gamefixes.FpuNegDivHack) // Special Fix for Gundam games messed up camera-view.
#define CHECK_XGKICKHACK (EmuConfig.Gamefixes.XgKickHack) // Special Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics.
#define CHECK_EETIMINGHACK (EmuConfig.Gamefixes.EETimingHack) // Fix all scheduled events to happen in 1 cycle.
#define CHECK_SKIPMPEGHACK (EmuConfig.Gamefixes.SkipMPEGHack) // Finds sceMpegIsEnd pattern to tell the game the mpeg is finished (Katamari and a lot of games need this)
#define CHECK_OPHFLAGHACK (EmuConfig.Gamefixes.OPHFlagHack) // Bleach Blade Battlers
#define CHECK_DMABUSYHACK (EmuConfig.Gamefixes.DMABusyHack) // Denies writes to the DMAC when it's busy. This is correct behaviour but bad timing can cause problems.
#define CHECK_VIFFIFOHACK (EmuConfig.Gamefixes.VIFFIFOHack) // Pretends to fill the non-existant VIF FIFO Buffer.
#define CHECK_VIF1STALLHACK (EmuConfig.Gamefixes.VIF1StallHack) // Like above, processes FIFO data before the stall is allowed (to make sure data goes over).
#define CHECK_GIFFIFOHACK (EmuConfig.Gamefixes.GIFFIFOHack) // Enabled the GIF FIFO (more correct but slower)
#define CHECK_VUOVERFLOWHACK (EmuConfig.Gamefixes.VUOverflowHack) // Special Fix for Superman Returns, they check for overflows on PS2 floats which we can't do without soft floats.
//------------ Advanced Options!!! ---------------
#define CHECK_VU_OVERFLOW (EmuConfig.Cpu.Recompiler.vuOverflow)
#define CHECK_VU_EXTRA_OVERFLOW (EmuConfig.Cpu.Recompiler.vuExtraOverflow) // If enabled, Operands are clamped before being used in the VU recs
#define CHECK_VU_SIGN_OVERFLOW (EmuConfig.Cpu.Recompiler.vuSignOverflow)
#define CHECK_VU_UNDERFLOW (EmuConfig.Cpu.Recompiler.vuUnderflow)
#define CHECK_VU_EXTRA_FLAGS 0 // Always disabled now // Sets correct flags in the sVU recs
#define CHECK_VU_OVERFLOW (EmuConfig.Cpu.Recompiler.vuOverflow)
#define CHECK_VU_EXTRA_OVERFLOW (EmuConfig.Cpu.Recompiler.vuExtraOverflow) // If enabled, Operands are clamped before being used in the VU recs
#define CHECK_VU_SIGN_OVERFLOW (EmuConfig.Cpu.Recompiler.vuSignOverflow)
#define CHECK_VU_UNDERFLOW (EmuConfig.Cpu.Recompiler.vuUnderflow)
#define CHECK_VU_EXTRA_FLAGS 0 // Always disabled now // Sets correct flags in the sVU recs
#define CHECK_FPU_OVERFLOW (EmuConfig.Cpu.Recompiler.fpuOverflow)
#define CHECK_FPU_EXTRA_OVERFLOW (EmuConfig.Cpu.Recompiler.fpuExtraOverflow) // If enabled, Operands are checked for infinities before being used in the FPU recs
#define CHECK_FPU_EXTRA_FLAGS 1 // Always enabled now // Sets D/I flags on FPU instructions
#define CHECK_FPU_FULL (EmuConfig.Cpu.Recompiler.fpuFullMode)
#define CHECK_FPU_OVERFLOW (EmuConfig.Cpu.Recompiler.fpuOverflow)
#define CHECK_FPU_EXTRA_OVERFLOW (EmuConfig.Cpu.Recompiler.fpuExtraOverflow) // If enabled, Operands are checked for infinities before being used in the FPU recs
#define CHECK_FPU_EXTRA_FLAGS 1 // Always enabled now // Sets D/I flags on FPU instructions
#define CHECK_FPU_FULL (EmuConfig.Cpu.Recompiler.fpuFullMode)
//------------ EE Recompiler defines - Comment to disable a recompiler ---------------
#define SHIFT_RECOMPILE // Speed majorly reduced if disabled
#define BRANCH_RECOMPILE // Speed extremely reduced if disabled - more then shift
#define SHIFT_RECOMPILE // Speed majorly reduced if disabled
#define BRANCH_RECOMPILE // Speed extremely reduced if disabled - more then shift
// Disabling all the recompilers in this block is interesting, as it still runs at a reasonable rate.
// It also adds a few glitches. Really reminds me of the old Linux 64-bit version. --arcum42

View File

@ -243,7 +243,7 @@ void Pcsx2Config::GSOptions::LoadSave(SettingsWrapper& wrap)
{
SettingsWrapSection("EmuCore/GS");
#ifdef PCSX2_DEVBUILD
#ifdef PCSX2_DEVBUILD
SettingsWrapEntry(SynchronousMTGS);
#endif
SettingsWrapEntry(VsyncQueueSize);
@ -304,26 +304,25 @@ int Pcsx2Config::GSOptions::GetVsync() const
}
}
const wxChar *const tbl_GamefixNames[] =
{
L"FpuMul",
L"FpuNegDiv",
L"GoemonTlb",
L"SkipMPEG",
L"OPHFlag",
L"EETiming",
L"DMABusy",
L"GIFFIFO",
L"VIFFIFO",
L"VIF1Stall",
L"VuAddSub",
L"Ibit",
L"VUKickstart",
L"VUOverflow",
L"XGKick"
};
const wxChar* const tbl_GamefixNames[] =
{
L"FpuMul",
L"FpuNegDiv",
L"GoemonTlb",
L"SkipMPEG",
L"OPHFlag",
L"EETiming",
L"DMABusy",
L"GIFFIFO",
L"VIFFIFO",
L"VIF1Stall",
L"VuAddSub",
L"Ibit",
L"VUKickstart",
L"VUOverflow",
L"XGKick"};
const __fi wxChar* EnumToString( GamefixId id )
const __fi wxChar* EnumToString(GamefixId id)
{
return tbl_GamefixNames[id];
}
@ -369,22 +368,52 @@ void Pcsx2Config::GamefixOptions::Set(GamefixId id, bool enabled)
EnumAssert(id);
switch (id)
{
case Fix_VuAddSub: VuAddSubHack = enabled; break;
case Fix_FpuMultiply: FpuMulHack = enabled; break;
case Fix_FpuNegDiv: FpuNegDivHack = enabled; break;
case Fix_XGKick: XgKickHack = enabled; break;
case Fix_EETiming: EETimingHack = enabled; break;
case Fix_SkipMpeg: SkipMPEGHack = enabled; break;
case Fix_OPHFlag: OPHFlagHack = enabled; break;
case Fix_DMABusy: DMABusyHack = enabled; break;
case Fix_VIFFIFO: VIFFIFOHack = enabled; break;
case Fix_VIF1Stall: VIF1StallHack = enabled; break;
case Fix_GIFFIFO: GIFFIFOHack = enabled; break;
case Fix_GoemonTlbMiss: GoemonTlbHack = enabled; break;
case Fix_Ibit: IbitHack = enabled; break;
case Fix_VUKickstart: VUKickstartHack = enabled; break;
case Fix_VUOverflow: VUOverflowHack = enabled; break;
jNO_DEFAULT;
case Fix_VuAddSub:
VuAddSubHack = enabled;
break;
case Fix_FpuMultiply:
FpuMulHack = enabled;
break;
case Fix_FpuNegDiv:
FpuNegDivHack = enabled;
break;
case Fix_XGKick:
XgKickHack = enabled;
break;
case Fix_EETiming:
EETimingHack = enabled;
break;
case Fix_SkipMpeg:
SkipMPEGHack = enabled;
break;
case Fix_OPHFlag:
OPHFlagHack = enabled;
break;
case Fix_DMABusy:
DMABusyHack = enabled;
break;
case Fix_VIFFIFO:
VIFFIFOHack = enabled;
break;
case Fix_VIF1Stall:
VIF1StallHack = enabled;
break;
case Fix_GIFFIFO:
GIFFIFOHack = enabled;
break;
case Fix_GoemonTlbMiss:
GoemonTlbHack = enabled;
break;
case Fix_Ibit:
IbitHack = enabled;
break;
case Fix_VUKickstart:
VUKickstartHack = enabled;
break;
case Fix_VUOverflow:
VUOverflowHack = enabled;
break;
jNO_DEFAULT;
}
}
@ -393,22 +422,37 @@ bool Pcsx2Config::GamefixOptions::Get(GamefixId id) const
EnumAssert(id);
switch (id)
{
case Fix_VuAddSub: return VuAddSubHack;
case Fix_FpuMultiply: return FpuMulHack;
case Fix_FpuNegDiv: return FpuNegDivHack;
case Fix_XGKick: return XgKickHack;
case Fix_EETiming: return EETimingHack;
case Fix_SkipMpeg: return SkipMPEGHack;
case Fix_OPHFlag: return OPHFlagHack;
case Fix_DMABusy: return DMABusyHack;
case Fix_VIFFIFO: return VIFFIFOHack;
case Fix_VIF1Stall: return VIF1StallHack;
case Fix_GIFFIFO: return GIFFIFOHack;
case Fix_GoemonTlbMiss: return GoemonTlbHack;
case Fix_Ibit: return IbitHack;
case Fix_VUKickstart: return VUKickstartHack;
case Fix_VUOverflow: return VUOverflowHack;
jNO_DEFAULT;
case Fix_VuAddSub:
return VuAddSubHack;
case Fix_FpuMultiply:
return FpuMulHack;
case Fix_FpuNegDiv:
return FpuNegDivHack;
case Fix_XGKick:
return XgKickHack;
case Fix_EETiming:
return EETimingHack;
case Fix_SkipMpeg:
return SkipMPEGHack;
case Fix_OPHFlag:
return OPHFlagHack;
case Fix_DMABusy:
return DMABusyHack;
case Fix_VIFFIFO:
return VIFFIFOHack;
case Fix_VIF1Stall:
return VIF1StallHack;
case Fix_GIFFIFO:
return GIFFIFOHack;
case Fix_GoemonTlbMiss:
return GoemonTlbHack;
case Fix_Ibit:
return IbitHack;
case Fix_VUKickstart:
return VUKickstartHack;
case Fix_VUOverflow:
return VUOverflowHack;
jNO_DEFAULT;
}
return false; // unreachable, but we still need to suppress warnings >_<
}
@ -417,21 +461,21 @@ void Pcsx2Config::GamefixOptions::LoadSave(SettingsWrapper& wrap)
{
SettingsWrapSection("EmuCore/Gamefixes");
SettingsWrapBitBool( VuAddSubHack );
SettingsWrapBitBool( FpuMulHack );
SettingsWrapBitBool( FpuNegDivHack );
SettingsWrapBitBool( XgKickHack );
SettingsWrapBitBool( EETimingHack );
SettingsWrapBitBool( SkipMPEGHack );
SettingsWrapBitBool( OPHFlagHack );
SettingsWrapBitBool( DMABusyHack );
SettingsWrapBitBool( VIFFIFOHack );
SettingsWrapBitBool( VIF1StallHack );
SettingsWrapBitBool( GIFFIFOHack );
SettingsWrapBitBool( GoemonTlbHack );
SettingsWrapBitBool( IbitHack );
SettingsWrapBitBool( VUKickstartHack );
SettingsWrapBitBool( VUOverflowHack );
SettingsWrapBitBool(VuAddSubHack);
SettingsWrapBitBool(FpuMulHack);
SettingsWrapBitBool(FpuNegDivHack);
SettingsWrapBitBool(XgKickHack);
SettingsWrapBitBool(EETimingHack);
SettingsWrapBitBool(SkipMPEGHack);
SettingsWrapBitBool(OPHFlagHack);
SettingsWrapBitBool(DMABusyHack);
SettingsWrapBitBool(VIFFIFOHack);
SettingsWrapBitBool(VIF1StallHack);
SettingsWrapBitBool(GIFFIFOHack);
SettingsWrapBitBool(GoemonTlbHack);
SettingsWrapBitBool(IbitHack);
SettingsWrapBitBool(VUKickstartHack);
SettingsWrapBitBool(VUOverflowHack);
}