Cache Disk Seek Timing Type into a global variable for optimization

This commit is contained in:
LuigiBlood 2021-01-30 00:29:09 +01:00
parent 5bdc3e11b1
commit 90d68dae52
3 changed files with 7 additions and 2 deletions

View File

@ -11,6 +11,7 @@
// Based from MAME's N64DD driver code by Happy_
#include "stdafx.h"
#include "Disk.h"
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/N64DiskClass.h>
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/RegisterClass.h>
@ -107,7 +108,7 @@ void DiskCommand()
if (isSeek)
{
if ((DISK_SEEK_TYPE)g_Settings->LoadDword(Game_DiskSeekTiming) == DiskSeek_Turbo)
if (g_System->DiskSeekTimingType() == DiskSeek_Turbo)
{
//Instant Response for Turbo
@ -117,7 +118,7 @@ void DiskCommand()
//Set timer for motor
g_SystemTimer->SetTimer(g_SystemTimer->DDMotorTimer, 0, false);
}
else /* if ((DISK_SEEK_TYPE)g_Settings->LoadDword(Game_DiskSeekTiming) == DiskSeek_Slow) */
else /* if (g_System->DiskSeekTimingType() == DiskSeek_Slow) */
{
//Emulate Seek Times, send interrupt later
uint32_t seektime = 0;

View File

@ -40,6 +40,7 @@ uint32_t CGameSettings::m_LookUpMode; //FUNC_LOOKUP_METHOD
SYSTEM_TYPE CGameSettings::m_SystemType = SYSTEM_NTSC;
CPU_TYPE CGameSettings::m_CpuType = CPU_Recompiler;
uint32_t CGameSettings::m_OverClockModifier = 1;
DISK_SEEK_TYPE CGameSettings::m_DiskSeekTimingType = DiskSeek_Turbo;
void CGameSettings::RefreshGameSettings()
{
@ -80,6 +81,7 @@ void CGameSettings::RefreshGameSettings()
}
if (m_OverClockModifier < 1) { m_OverClockModifier = 1; }
if (m_OverClockModifier > 20) { m_OverClockModifier = 20; }
m_DiskSeekTimingType = (DISK_SEEK_TYPE)g_Settings->LoadDword(Game_DiskSeekTiming);
RefreshSyncToAudio();
WriteTrace(TraceN64System, TraceDebug, "Done");
}

View File

@ -45,6 +45,7 @@ public:
inline static SYSTEM_TYPE SystemType(void) { return m_SystemType; }
inline static CPU_TYPE CpuType(void) { return m_CpuType; }
inline static uint32_t OverClockModifier(void) { return m_OverClockModifier; }
inline static DISK_SEEK_TYPE DiskSeekTimingType(void) { return m_DiskSeekTimingType; };
void RefreshSyncToAudio(void);
@ -80,4 +81,5 @@ private:
static SYSTEM_TYPE m_SystemType;
static CPU_TYPE m_CpuType;
static uint32_t m_OverClockModifier;
static DISK_SEEK_TYPE m_DiskSeekTimingType;
};