[Project64] Skip frozen Dlist only in HLE gfx

This commit is contained in:
zilmar 2017-08-31 08:58:26 +10:00
parent 1b699418f4
commit c428d71e75
3 changed files with 34 additions and 30 deletions

View File

@ -1982,7 +1982,7 @@ void CN64System::RunRSP()
if (m_RspBroke)
{
g_MMU->LW_VAddr(0xA4000FC0, Task);
if (Task == 1 && (m_Reg.DPC_STATUS_REG & DPC_STATUS_FREEZE) != 0)
if (Task == 1 && UseHleGfx() && (m_Reg.DPC_STATUS_REG & DPC_STATUS_FREEZE) != 0)
{
WriteTrace(TraceRSP, TraceDebug, "Dlist that is frozen");
return;

View File

@ -13,6 +13,7 @@
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/Settings/GameSettings.h>
bool CGameSettings::m_UseHleGfx = true;
bool CGameSettings::m_bSMM_StoreInstruc;
bool CGameSettings::m_bSMM_Protect;
bool CGameSettings::m_bSMM_ValidFunc;
@ -42,6 +43,7 @@ uint32_t CGameSettings::m_OverClockModifier = 1;
void CGameSettings::RefreshGameSettings()
{
WriteTrace(TraceN64System, TraceDebug, "start");
m_UseHleGfx = g_Settings->LoadBool(Game_UseHleGfx);
m_bSMM_StoreInstruc = false /*g_Settings->LoadBool(Game_SMM_StoreInstruc)*/;
m_bSMM_Protect = g_Settings->LoadBool(Game_SMM_Protect);
m_bSMM_ValidFunc = g_Settings->LoadBool(Game_SMM_ValidFunc);

View File

@ -17,6 +17,7 @@ class CGameSettings
public:
void RefreshGameSettings(void);
inline static bool UseHleGfx(void) { return m_UseHleGfx; }
inline static bool bRomInMemory(void) { return m_bRomInMemory; }
inline static bool bRegCaching(void) { return m_RegCaching; }
inline static bool bLinkBlocks(void) { return m_bLinkBlocks; }
@ -47,6 +48,7 @@ protected:
private:
//Settings that can be changed on the fly
static bool m_UseHleGfx;
static bool m_bRomInMemory;
static bool m_RegCaching;
static bool m_bLinkBlocks;