Core: Remove the option to turn off tlb
This commit is contained in:
parent
5d82837984
commit
30a40ea0a8
|
@ -526,7 +526,6 @@ Internal Name=LAMBORGHINI
|
||||||
Status=Compatible
|
Status=Compatible
|
||||||
32bit=Yes
|
32bit=Yes
|
||||||
RDRAM Size=4
|
RDRAM Size=4
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[41B25DC4-1B726786-C:45]
|
[41B25DC4-1B726786-C:45]
|
||||||
Good Name=Automobili Lamborghini (U)
|
Good Name=Automobili Lamborghini (U)
|
||||||
|
@ -534,7 +533,6 @@ Internal Name=LAMBORGHINI
|
||||||
Status=Compatible
|
Status=Compatible
|
||||||
32bit=Yes
|
32bit=Yes
|
||||||
RDRAM Size=4
|
RDRAM Size=4
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
//================ B ================
|
//================ B ================
|
||||||
[E340A49C-74318D41-C:4A]
|
[E340A49C-74318D41-C:4A]
|
||||||
|
@ -4799,7 +4797,6 @@ SMM-Cache=0
|
||||||
SMM-FUNC=0
|
SMM-FUNC=0
|
||||||
SMM-PI DMA=0
|
SMM-PI DMA=0
|
||||||
SMM-TLB=0
|
SMM-TLB=0
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[09CC4801-E42EE491-C:4A]
|
[09CC4801-E42EE491-C:4A]
|
||||||
Good Name=Pilotwings 64 (J)
|
Good Name=Pilotwings 64 (J)
|
||||||
|
@ -4813,7 +4810,6 @@ SMM-Cache=0
|
||||||
SMM-FUNC=0
|
SMM-FUNC=0
|
||||||
SMM-PI DMA=0
|
SMM-PI DMA=0
|
||||||
SMM-TLB=0
|
SMM-TLB=0
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[C851961C-78FCAAFA-C:45]
|
[C851961C-78FCAAFA-C:45]
|
||||||
Good Name=Pilotwings 64 (U)
|
Good Name=Pilotwings 64 (U)
|
||||||
|
@ -4828,7 +4824,6 @@ SMM-Cache=0
|
||||||
SMM-FUNC=0
|
SMM-FUNC=0
|
||||||
SMM-PI DMA=0
|
SMM-PI DMA=0
|
||||||
SMM-TLB=0
|
SMM-TLB=0
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[4A1CD153-D830AEF8-C:50]
|
[4A1CD153-D830AEF8-C:50]
|
||||||
Good Name=Pokemon Puzzle League (E)
|
Good Name=Pokemon Puzzle League (E)
|
||||||
|
@ -5339,7 +5334,6 @@ Status=Issues (core)
|
||||||
32bit=Yes
|
32bit=Yes
|
||||||
RDRAM Size=4
|
RDRAM Size=4
|
||||||
SMM-FUNC=0
|
SMM-FUNC=0
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[0304C48E-AC4001B8-C:45]
|
[0304C48E-AC4001B8-C:45]
|
||||||
Good Name=Rat Attack (U) (M6)
|
Good Name=Rat Attack (U) (M6)
|
||||||
|
@ -5348,7 +5342,6 @@ Status=Issues (core)
|
||||||
32bit=Yes
|
32bit=Yes
|
||||||
RDRAM Size=4
|
RDRAM Size=4
|
||||||
SMM-FUNC=0
|
SMM-FUNC=0
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[60D5E10B-8BEDED46-C:50]
|
[60D5E10B-8BEDED46-C:50]
|
||||||
Good Name=Rayman 2 - The Great Escape (E) (M5)
|
Good Name=Rayman 2 - The Great Escape (E) (M5)
|
||||||
|
@ -6301,7 +6294,6 @@ Internal Name=SUPER SPEED RACE 64
|
||||||
Status=Compatible
|
Status=Compatible
|
||||||
32bit=Yes
|
32bit=Yes
|
||||||
RDRAM Size=4
|
RDRAM Size=4
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[2CBB127F-09C2BFD8-C:50]
|
[2CBB127F-09C2BFD8-C:50]
|
||||||
Good Name=Supercross 2000 (E) (M3)
|
Good Name=Supercross 2000 (E) (M3)
|
||||||
|
@ -8110,7 +8102,6 @@ Status=Compatible
|
||||||
32bit=Yes
|
32bit=Yes
|
||||||
CPU Type=Interpreter
|
CPU Type=Interpreter
|
||||||
RDRAM Size=4
|
RDRAM Size=4
|
||||||
Use TLB=No
|
|
||||||
|
|
||||||
[EDA1A0C7-58EE0464-C:0]
|
[EDA1A0C7-58EE0464-C:0]
|
||||||
Good Name=Chaos 89 Demo (PD)
|
Good Name=Chaos 89 Demo (PD)
|
||||||
|
|
|
@ -273,7 +273,6 @@
|
||||||
#524# "Default save type:"
|
#524# "Default save type:"
|
||||||
#525# "Counter factor:"
|
#525# "Counter factor:"
|
||||||
#526# "Larger compile buffer"
|
#526# "Larger compile buffer"
|
||||||
#527# "Use TLB"
|
|
||||||
#528# "Register caching"
|
#528# "Register caching"
|
||||||
#529# "Delay SI interrupt"
|
#529# "Delay SI interrupt"
|
||||||
#530# "Fast SP"
|
#530# "Fast SP"
|
||||||
|
|
|
@ -74,7 +74,6 @@ CJniBridegSettings::CJniBridegSettings()
|
||||||
// Default settings
|
// Default settings
|
||||||
ADD_SETTING(Default_RDRamSize);
|
ADD_SETTING(Default_RDRamSize);
|
||||||
ADD_SETTING(Default_UseHleGfx);
|
ADD_SETTING(Default_UseHleGfx);
|
||||||
ADD_SETTING(Default_UseTlb);
|
|
||||||
ADD_SETTING(Default_ViRefreshRate);
|
ADD_SETTING(Default_ViRefreshRate);
|
||||||
ADD_SETTING(Default_AiCountPerBytes);
|
ADD_SETTING(Default_AiCountPerBytes);
|
||||||
ADD_SETTING(Default_CounterFactor);
|
ADD_SETTING(Default_CounterFactor);
|
||||||
|
@ -92,7 +91,6 @@ CJniBridegSettings::CJniBridegSettings()
|
||||||
ADD_SETTING(Rdb_CpuType);
|
ADD_SETTING(Rdb_CpuType);
|
||||||
ADD_SETTING(Rdb_RDRamSize);
|
ADD_SETTING(Rdb_RDRamSize);
|
||||||
ADD_SETTING(Rdb_CounterFactor);
|
ADD_SETTING(Rdb_CounterFactor);
|
||||||
ADD_SETTING(Rdb_UseTlb);
|
|
||||||
ADD_SETTING(Rdb_DelayDP);
|
ADD_SETTING(Rdb_DelayDP);
|
||||||
ADD_SETTING(Rdb_DelaySi);
|
ADD_SETTING(Rdb_DelaySi);
|
||||||
ADD_SETTING(Rdb_32Bit);
|
ADD_SETTING(Rdb_32Bit);
|
||||||
|
@ -158,7 +156,6 @@ CJniBridegSettings::CJniBridegSettings()
|
||||||
ADD_SETTING(Game_LastSaveTime);
|
ADD_SETTING(Game_LastSaveTime);
|
||||||
ADD_SETTING(Game_RDRamSize);
|
ADD_SETTING(Game_RDRamSize);
|
||||||
ADD_SETTING(Game_CounterFactor);
|
ADD_SETTING(Game_CounterFactor);
|
||||||
ADD_SETTING(Game_UseTlb);
|
|
||||||
ADD_SETTING(Game_DelayDP);
|
ADD_SETTING(Game_DelayDP);
|
||||||
ADD_SETTING(Game_DelaySI);
|
ADD_SETTING(Game_DelaySI);
|
||||||
ADD_SETTING(Game_FastSP);
|
ADD_SETTING(Game_FastSP);
|
||||||
|
|
|
@ -310,7 +310,6 @@ enum LanguageStringID
|
||||||
ROM_SAVE_TYPE = 524,
|
ROM_SAVE_TYPE = 524,
|
||||||
ROM_COUNTER_FACTOR = 525,
|
ROM_COUNTER_FACTOR = 525,
|
||||||
ROM_LARGE_BUFFER = 526,
|
ROM_LARGE_BUFFER = 526,
|
||||||
ROM_USE_TLB = 527,
|
|
||||||
ROM_REG_CACHE = 528,
|
ROM_REG_CACHE = 528,
|
||||||
ROM_DELAY_SI = 529,
|
ROM_DELAY_SI = 529,
|
||||||
ROM_FAST_SP = 530,
|
ROM_FAST_SP = 530,
|
||||||
|
|
|
@ -257,7 +257,6 @@ void CLanguage::LoadDefaultStrings(void)
|
||||||
DEF_STR(ROM_SAVE_TYPE, "Default save type:");
|
DEF_STR(ROM_SAVE_TYPE, "Default save type:");
|
||||||
DEF_STR(ROM_COUNTER_FACTOR, "Counter factor:");
|
DEF_STR(ROM_COUNTER_FACTOR, "Counter factor:");
|
||||||
DEF_STR(ROM_LARGE_BUFFER, "Larger compile buffer");
|
DEF_STR(ROM_LARGE_BUFFER, "Larger compile buffer");
|
||||||
DEF_STR(ROM_USE_TLB, "Use TLB");
|
|
||||||
DEF_STR(ROM_REG_CACHE, "Register caching");
|
DEF_STR(ROM_REG_CACHE, "Register caching");
|
||||||
DEF_STR(ROM_DELAY_SI, "Delay SI interrupt");
|
DEF_STR(ROM_DELAY_SI, "Delay SI interrupt");
|
||||||
DEF_STR(ROM_FAST_SP, "Fast SP");
|
DEF_STR(ROM_FAST_SP, "Fast SP");
|
||||||
|
|
|
@ -2353,37 +2353,21 @@ void R4300iOp::COP0_MT()
|
||||||
|
|
||||||
void R4300iOp::COP0_CO_TLBR()
|
void R4300iOp::COP0_CO_TLBR()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_TLB->ReadEntry();
|
g_TLB->ReadEntry();
|
||||||
}
|
}
|
||||||
|
|
||||||
void R4300iOp::COP0_CO_TLBWI()
|
void R4300iOp::COP0_CO_TLBWI()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_TLB->WriteEntry(g_Reg->INDEX_REGISTER & 0x1F, false);
|
g_TLB->WriteEntry(g_Reg->INDEX_REGISTER & 0x1F, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void R4300iOp::COP0_CO_TLBWR()
|
void R4300iOp::COP0_CO_TLBWR()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_TLB->WriteEntry(g_Reg->RANDOM_REGISTER & 0x1F, true);
|
g_TLB->WriteEntry(g_Reg->RANDOM_REGISTER & 0x1F, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void R4300iOp::COP0_CO_TLBP()
|
void R4300iOp::COP0_CO_TLBP()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_TLB->Probe();
|
g_TLB->Probe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2194,22 +2194,15 @@ void CArmRecompilerOps::LB()
|
||||||
TempRegAddress = Map_TempReg(Arm_Any, m_Opcode.base, false);
|
TempRegAddress = Map_TempReg(Arm_Any, m_Opcode.base, false);
|
||||||
AddConstToArmReg(TempRegAddress, (int16_t)m_Opcode.immediate);
|
AddConstToArmReg(TempRegAddress, (int16_t)m_Opcode.immediate);
|
||||||
}
|
}
|
||||||
if (g_System->bUseTlb())
|
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
||||||
{
|
ShiftRightUnsignImmed(TempReg, TempRegAddress, 12);
|
||||||
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
ArmReg ReadMapReg = Map_Variable(CArmRegInfo::VARIABLE_TLB_READMAP);
|
||||||
ShiftRightUnsignImmed(TempReg, TempRegAddress, 12);
|
LoadArmRegPointerToArmReg(TempReg, ReadMapReg, TempReg, 2);
|
||||||
ArmReg ReadMapReg = Map_Variable(CArmRegInfo::VARIABLE_TLB_READMAP);
|
CompileReadTLBMiss(TempRegAddress, TempReg);
|
||||||
LoadArmRegPointerToArmReg(TempReg, ReadMapReg, TempReg, 2);
|
XorConstToArmReg(TempRegAddress, 3);
|
||||||
CompileReadTLBMiss(TempRegAddress, TempReg);
|
Map_GPR_32bit(m_Opcode.rt, true, -1);
|
||||||
XorConstToArmReg(TempRegAddress, 3);
|
LoadArmRegPointerByteToArmReg(GetMipsRegMapLo(m_Opcode.rt), TempReg, TempRegAddress, 0);
|
||||||
Map_GPR_32bit(m_Opcode.rt, true, -1);
|
SignExtendByte(GetMipsRegMapLo(m_Opcode.rt));
|
||||||
LoadArmRegPointerByteToArmReg(GetMipsRegMapLo(m_Opcode.rt), TempReg, TempRegAddress, 0);
|
|
||||||
SignExtendByte(GetMipsRegMapLo(m_Opcode.rt));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CArmRecompilerOps::LH()
|
void CArmRecompilerOps::LH()
|
||||||
|
@ -2270,7 +2263,7 @@ void CArmRecompilerOps::LW(bool ResultSigned, bool bRecordLLBit)
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_System->bUseTlb())
|
else
|
||||||
{
|
{
|
||||||
if (IsMapped(m_Opcode.rt))
|
if (IsMapped(m_Opcode.rt))
|
||||||
{
|
{
|
||||||
|
@ -2307,34 +2300,6 @@ void CArmRecompilerOps::LW(bool ResultSigned, bool bRecordLLBit)
|
||||||
MoveConstToVariable(1, _LLBit, "LLBit");
|
MoveConstToVariable(1, _LLBit, "LLBit");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
/*if (IsMapped(m_Opcode.base))
|
|
||||||
{
|
|
||||||
ProtectGPR(m_Opcode.base);
|
|
||||||
if (m_Opcode.offset != 0)
|
|
||||||
{
|
|
||||||
Map_GPR_32bit(m_Opcode.rt, ResultSigned, -1);
|
|
||||||
LeaSourceAndOffset(GetMipsRegMapLo(m_Opcode.rt), GetMipsRegMapLo(m_Opcode.base), (int16_t)m_Opcode.offset);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Map_GPR_32bit(m_Opcode.rt, ResultSigned, m_Opcode.base);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Map_GPR_32bit(m_Opcode.rt, ResultSigned, m_Opcode.base);
|
|
||||||
AddConstToX86Reg(GetMipsRegMapLo(m_Opcode.rt), (int16_t)m_Opcode.immediate);
|
|
||||||
}
|
|
||||||
AndConstToX86Reg(GetMipsRegMapLo(m_Opcode.rt), 0x1FFFFFFF);
|
|
||||||
MoveN64MemToX86reg(GetMipsRegMapLo(m_Opcode.rt), GetMipsRegMapLo(m_Opcode.rt));
|
|
||||||
if (bRecordLLBit)
|
|
||||||
{
|
|
||||||
MoveConstToVariable(1, _LLBit, "LLBit");
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
if (g_System->bFastSP() && m_Opcode.rt == 29)
|
if (g_System->bFastSP() && m_Opcode.rt == 29)
|
||||||
{
|
{
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||||
|
@ -2488,60 +2453,31 @@ void CArmRecompilerOps::SW(bool bCheckLLbit)
|
||||||
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + g_System->CountPerOp());
|
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + g_System->CountPerOp());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_System->bUseTlb())
|
if (IsMapped(m_Opcode.base)) { ProtectGPR(m_Opcode.base); }
|
||||||
|
ArmReg TempRegAddress = Map_TempReg(Arm_Any, IsMapped(m_Opcode.base) ? -1 : m_Opcode.base, false);
|
||||||
|
if (IsMapped(m_Opcode.base))
|
||||||
{
|
{
|
||||||
if (IsMapped(m_Opcode.base)) { ProtectGPR(m_Opcode.base); }
|
AddConstToArmReg(TempRegAddress, GetMipsRegMapLo(m_Opcode.base), (int16_t)m_Opcode.immediate);
|
||||||
ArmReg TempRegAddress = Map_TempReg(Arm_Any, IsMapped(m_Opcode.base) ? -1 : m_Opcode.base, false);
|
|
||||||
if (IsMapped(m_Opcode.base))
|
|
||||||
{
|
|
||||||
AddConstToArmReg(TempRegAddress, GetMipsRegMapLo(m_Opcode.base), (int16_t)m_Opcode.immediate);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AddConstToArmReg(TempRegAddress, (int16_t)m_Opcode.immediate);
|
|
||||||
}
|
|
||||||
|
|
||||||
ArmReg TempRegValue = Arm_Unknown;
|
|
||||||
if (g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
|
||||||
ShiftRightUnsignImmed(TempReg, TempRegAddress, 12);
|
|
||||||
ArmReg WriteMapReg = Map_Variable(CArmRegInfo::VARIABLE_TLB_WRITEMAP);
|
|
||||||
LoadArmRegPointerToArmReg(TempReg, WriteMapReg, TempReg, 2);
|
|
||||||
CompileWriteTLBMiss(TempRegAddress, TempReg);
|
|
||||||
if (bCheckLLbit)
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
}
|
|
||||||
StoreArmRegToArmRegPointer(IsMapped(m_Opcode.rt) ? GetMipsRegMapLo(m_Opcode.rt) : Map_TempReg(Arm_Any, m_Opcode.rt, false), TempReg, TempRegAddress, 0);
|
|
||||||
if (bCheckLLbit)
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (HaveDebugger())
|
AddConstToArmReg(TempRegAddress, (int16_t)m_Opcode.immediate);
|
||||||
{
|
}
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
}
|
|
||||||
UnProtectGPR(m_Opcode.rt);
|
|
||||||
|
|
||||||
if (m_Opcode.base != 0) { UnMap_GPR(m_Opcode.base, true); }
|
ArmReg TempRegValue = Arm_Unknown;
|
||||||
if (m_Opcode.rt != 0) { UnMap_GPR(m_Opcode.rt, true); }
|
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
||||||
if (g_Settings->LoadBool(Game_32Bit))
|
ShiftRightUnsignImmed(TempReg, TempRegAddress, 12);
|
||||||
{
|
ArmReg WriteMapReg = Map_Variable(CArmRegInfo::VARIABLE_TLB_WRITEMAP);
|
||||||
CompileInterpterCall((void *)R4300iOp32::SW, "R4300iOp32::SW");
|
LoadArmRegPointerToArmReg(TempReg, WriteMapReg, TempReg, 2);
|
||||||
}
|
CompileWriteTLBMiss(TempRegAddress, TempReg);
|
||||||
else
|
if (bCheckLLbit)
|
||||||
{
|
{
|
||||||
CompileInterpterCall((void *)R4300iOp::SW, "R4300iOp::SW");
|
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||||
}
|
}
|
||||||
|
StoreArmRegToArmRegPointer(IsMapped(m_Opcode.rt) ? GetMipsRegMapLo(m_Opcode.rt) : Map_TempReg(Arm_Any, m_Opcode.rt, false), TempReg, TempRegAddress, 0);
|
||||||
|
if (bCheckLLbit)
|
||||||
|
{
|
||||||
|
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2671,29 +2607,17 @@ void CArmRecompilerOps::LWC1()
|
||||||
}
|
}
|
||||||
|
|
||||||
ArmReg TempRegValue = Arm_Unknown;
|
ArmReg TempRegValue = Arm_Unknown;
|
||||||
if (g_System->bUseTlb())
|
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
||||||
{
|
ShiftRightUnsignImmed(TempReg, TempRegAddress, 12);
|
||||||
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
ArmReg ReadMapReg = Map_Variable(CArmRegInfo::VARIABLE_TLB_READMAP);
|
||||||
ShiftRightUnsignImmed(TempReg, TempRegAddress, 12);
|
LoadArmRegPointerToArmReg(TempReg, ReadMapReg, TempReg, 2);
|
||||||
ArmReg ReadMapReg = Map_Variable(CArmRegInfo::VARIABLE_TLB_READMAP);
|
CompileReadTLBMiss(TempRegAddress, TempReg);
|
||||||
LoadArmRegPointerToArmReg(TempReg, ReadMapReg, TempReg, 2);
|
|
||||||
CompileReadTLBMiss(TempRegAddress, TempReg);
|
|
||||||
|
|
||||||
//12: 4408 add r0, r1
|
//12: 4408 add r0, r1
|
||||||
//14: ed90 7a00 vldr s14, [r0]
|
//14: ed90 7a00 vldr s14, [r0]
|
||||||
|
|
||||||
TempRegValue = TempReg;
|
TempRegValue = TempReg;
|
||||||
LoadArmRegPointerToArmReg(TempRegValue, TempReg, TempRegAddress, 0);
|
LoadArmRegPointerToArmReg(TempRegValue, TempReg, TempRegAddress, 0);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
#ifdef tofix
|
|
||||||
AndConstToX86Reg(TempReg1, 0x1FFFFFFF);
|
|
||||||
TempReg3 = Map_TempReg(x86_Any, -1, false);
|
|
||||||
MoveN64MemToX86reg(TempReg3, TempReg1);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
ArmReg FprReg = Map_Variable(CArmRegInfo::VARIABLE_FPR);
|
ArmReg FprReg = Map_Variable(CArmRegInfo::VARIABLE_FPR);
|
||||||
LoadArmRegPointerToArmReg(TempRegAddress, FprReg, (uint8_t)(m_Opcode.ft << 2));
|
LoadArmRegPointerToArmReg(TempRegAddress, FprReg, (uint8_t)(m_Opcode.ft << 2));
|
||||||
StoreArmRegToArmRegPointer(TempRegValue, TempRegAddress, 0);
|
StoreArmRegToArmRegPointer(TempRegValue, TempRegAddress, 0);
|
||||||
|
@ -4002,7 +3926,6 @@ void CArmRecompilerOps::COP0_MT()
|
||||||
|
|
||||||
void CArmRecompilerOps::COP0_CO_TLBR()
|
void CArmRecompilerOps::COP0_CO_TLBR()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb()) { return; }
|
|
||||||
if (g_Settings->LoadBool(Game_32Bit))
|
if (g_Settings->LoadBool(Game_32Bit))
|
||||||
{
|
{
|
||||||
CompileInterpterCall((void *)R4300iOp32::COP0_CO_TLBR, "R4300iOp32::COP0_CO_TLBR");
|
CompileInterpterCall((void *)R4300iOp32::COP0_CO_TLBR, "R4300iOp32::COP0_CO_TLBR");
|
||||||
|
@ -4015,7 +3938,6 @@ void CArmRecompilerOps::COP0_CO_TLBR()
|
||||||
|
|
||||||
void CArmRecompilerOps::COP0_CO_TLBWI()
|
void CArmRecompilerOps::COP0_CO_TLBWI()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb()) { return; }
|
|
||||||
if (g_Settings->LoadBool(Game_32Bit))
|
if (g_Settings->LoadBool(Game_32Bit))
|
||||||
{
|
{
|
||||||
CompileInterpterCall((void *)R4300iOp32::COP0_CO_TLBWI, "R4300iOp32::COP0_CO_TLBWI");
|
CompileInterpterCall((void *)R4300iOp32::COP0_CO_TLBWI, "R4300iOp32::COP0_CO_TLBWI");
|
||||||
|
@ -4028,8 +3950,6 @@ void CArmRecompilerOps::COP0_CO_TLBWI()
|
||||||
|
|
||||||
void CArmRecompilerOps::COP0_CO_TLBWR()
|
void CArmRecompilerOps::COP0_CO_TLBWR()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb()) { return; }
|
|
||||||
|
|
||||||
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() - g_System->CountPerOp());
|
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() - g_System->CountPerOp());
|
||||||
UpdateCounters(m_RegWorkingSet, false, true);
|
UpdateCounters(m_RegWorkingSet, false, true);
|
||||||
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + g_System->CountPerOp());
|
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + g_System->CountPerOp());
|
||||||
|
@ -4047,7 +3967,6 @@ void CArmRecompilerOps::COP0_CO_TLBWR()
|
||||||
|
|
||||||
void CArmRecompilerOps::COP0_CO_TLBP()
|
void CArmRecompilerOps::COP0_CO_TLBP()
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb()) { return; }
|
|
||||||
if (g_Settings->LoadBool(Game_32Bit))
|
if (g_Settings->LoadBool(Game_32Bit))
|
||||||
{
|
{
|
||||||
CompileInterpterCall((void *)R4300iOp32::COP0_CO_TLBP, "R4300iOp32::COP0_CO_TLBP");
|
CompileInterpterCall((void *)R4300iOp32::COP0_CO_TLBP, "R4300iOp32::COP0_CO_TLBP");
|
||||||
|
@ -6594,12 +6513,6 @@ void CArmRecompilerOps::SW_Register(ArmReg Reg, uint32_t VAddr)
|
||||||
{
|
{
|
||||||
m_RegWorkingSet.SetArmRegProtected(Reg, true);
|
m_RegWorkingSet.SetArmRegProtected(Reg, true);
|
||||||
|
|
||||||
if (!g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
||||||
ArmReg TempRegAddress = Map_TempReg(Arm_Any, -1, false);
|
ArmReg TempRegAddress = Map_TempReg(Arm_Any, -1, false);
|
||||||
MoveConstToArmReg(TempRegAddress, VAddr);
|
MoveConstToArmReg(TempRegAddress, VAddr);
|
||||||
|
@ -7100,12 +7013,6 @@ void CArmRecompilerOps::LW_KnownAddress(ArmReg Reg, uint32_t VAddr)
|
||||||
|
|
||||||
if (VAddr < 0x80000000 || VAddr >= 0xC0000000)
|
if (VAddr < 0x80000000 || VAddr >= 0xC0000000)
|
||||||
{
|
{
|
||||||
if (!g_System->bUseTlb())
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
ArmReg TempReg = Map_TempReg(Arm_Any, -1, false);
|
||||||
ArmReg TempRegAddress = Map_TempReg(Arm_Any, -1, false);
|
ArmReg TempRegAddress = Map_TempReg(Arm_Any, -1, false);
|
||||||
MoveConstToArmReg(TempRegAddress, VAddr);
|
MoveConstToArmReg(TempRegAddress, VAddr);
|
||||||
|
|
|
@ -62,27 +62,13 @@ void CRecompiler::Run()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (g_System->bUseTlb())
|
if (g_System->bSMM_ValidFunc())
|
||||||
{
|
{
|
||||||
if (g_System->bSMM_ValidFunc())
|
RecompilerMain_Lookup_validate();
|
||||||
{
|
|
||||||
RecompilerMain_Lookup_validate_TLB();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
RecompilerMain_Lookup_TLB();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (g_System->bSMM_ValidFunc())
|
RecompilerMain_Lookup();
|
||||||
{
|
|
||||||
RecompilerMain_Lookup_validate();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
RecompilerMain_Lookup();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,48 +142,6 @@ void CRecompiler::RecompilerMain_VirtualTable_validate()
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRecompiler::RecompilerMain_Lookup()
|
void CRecompiler::RecompilerMain_Lookup()
|
||||||
{
|
|
||||||
while (!m_EndEmulation)
|
|
||||||
{
|
|
||||||
uint32_t PhysicalAddr = PROGRAM_COUNTER & 0x1FFFFFFF;
|
|
||||||
if (PhysicalAddr < g_System->RdramSize())
|
|
||||||
{
|
|
||||||
CCompiledFunc * info = JumpTable()[PhysicalAddr >> 2];
|
|
||||||
if (info == nullptr)
|
|
||||||
{
|
|
||||||
info = CompileCode();
|
|
||||||
if (info == nullptr || m_EndEmulation)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (g_System->bSMM_Protect())
|
|
||||||
{
|
|
||||||
m_MMU.ProtectMemory(PROGRAM_COUNTER & ~0xFFF, PROGRAM_COUNTER | 0xFFF);
|
|
||||||
}
|
|
||||||
JumpTable()[PhysicalAddr >> 2] = info;
|
|
||||||
}
|
|
||||||
(info->Function())();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
uint32_t opsExecuted = 0;
|
|
||||||
|
|
||||||
while (m_MMU.TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr) && PhysicalAddr >= g_System->RdramSize())
|
|
||||||
{
|
|
||||||
CInterpreterCPU::ExecuteOps(g_System->CountPerOp());
|
|
||||||
opsExecuted += g_System->CountPerOp();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_SyncSystem)
|
|
||||||
{
|
|
||||||
g_System->UpdateSyncCPU(g_SyncSystem, opsExecuted);
|
|
||||||
g_System->SyncCPU(g_SyncSystem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CRecompiler::RecompilerMain_Lookup_TLB()
|
|
||||||
{
|
{
|
||||||
uint32_t PhysicalAddr;
|
uint32_t PhysicalAddr;
|
||||||
|
|
||||||
|
@ -251,171 +195,6 @@ void CRecompiler::RecompilerMain_Lookup_TLB()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRecompiler::RecompilerMain_Lookup_validate()
|
|
||||||
{
|
|
||||||
while (!m_EndEmulation)
|
|
||||||
{
|
|
||||||
uint32_t PhysicalAddr = PROGRAM_COUNTER & 0x1FFFFFFF;
|
|
||||||
if (PhysicalAddr < g_System->RdramSize())
|
|
||||||
{
|
|
||||||
CCompiledFunc * info = JumpTable()[PhysicalAddr >> 2];
|
|
||||||
if (info == nullptr)
|
|
||||||
{
|
|
||||||
info = CompileCode();
|
|
||||||
if (info == nullptr || m_EndEmulation)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (g_System->bSMM_Protect())
|
|
||||||
{
|
|
||||||
m_MMU.ProtectMemory(PROGRAM_COUNTER & ~0xFFF, PROGRAM_COUNTER | 0xFFF);
|
|
||||||
}
|
|
||||||
JumpTable()[PhysicalAddr >> 2] = info;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (*(info->MemLocation(0)) != info->MemContents(0) ||
|
|
||||||
*(info->MemLocation(1)) != info->MemContents(1))
|
|
||||||
{
|
|
||||||
ClearRecompCode_Virt((info->EnterPC() - 0x1000) & ~0xFFF, 0x3000, Remove_ValidateFunc);
|
|
||||||
info = nullptr;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(info->Function())();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
uint32_t opsExecuted = 0;
|
|
||||||
|
|
||||||
while (m_MMU.TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr) && PhysicalAddr >= g_System->RdramSize())
|
|
||||||
{
|
|
||||||
CInterpreterCPU::ExecuteOps(g_System->CountPerOp());
|
|
||||||
opsExecuted += g_System->CountPerOp();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_SyncSystem)
|
|
||||||
{
|
|
||||||
g_System->UpdateSyncCPU(g_SyncSystem, opsExecuted);
|
|
||||||
g_System->SyncCPU(g_SyncSystem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CRecompiler::RecompilerMain_Lookup_validate_TLB()
|
|
||||||
{
|
|
||||||
WriteTrace(TraceRecompiler, TraceInfo, "Start");
|
|
||||||
bool & Done = m_EndEmulation;
|
|
||||||
uint32_t & PC = PROGRAM_COUNTER;
|
|
||||||
|
|
||||||
uint32_t PhysicalAddr;
|
|
||||||
|
|
||||||
while (!Done)
|
|
||||||
{
|
|
||||||
if (!m_MMU.TranslateVaddr(PC, PhysicalAddr))
|
|
||||||
{
|
|
||||||
m_Registers.DoTLBReadMiss(false, PC);
|
|
||||||
if (!m_MMU.TranslateVaddr(PC, PhysicalAddr))
|
|
||||||
{
|
|
||||||
g_Notify->DisplayError(stdstr_f("Failed to translate PC to a PAddr: %X\n\nEmulation stopped", PC).c_str());
|
|
||||||
Done = true;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (PhysicalAddr < g_System->RdramSize())
|
|
||||||
{
|
|
||||||
CCompiledFunc * info = JumpTable()[PhysicalAddr >> 2];
|
|
||||||
|
|
||||||
if (info == nullptr)
|
|
||||||
{
|
|
||||||
info = CompileCode();
|
|
||||||
if (info == nullptr || m_EndEmulation)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (g_System->bSMM_Protect())
|
|
||||||
{
|
|
||||||
m_MMU.ProtectMemory(PC & ~0xFFF, PC | 0xFFF);
|
|
||||||
}
|
|
||||||
JumpTable()[PhysicalAddr >> 2] = info;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (*(info->MemLocation(0)) != info->MemContents(0) ||
|
|
||||||
*(info->MemLocation(1)) != info->MemContents(1))
|
|
||||||
{
|
|
||||||
if (PhysicalAddr > 0x1000)
|
|
||||||
{
|
|
||||||
ClearRecompCode_Phys((PhysicalAddr - 0x1000) & ~0xFFF, 0x3000, Remove_ValidateFunc);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ClearRecompCode_Phys(0, 0x2000, Remove_ValidateFunc);
|
|
||||||
}
|
|
||||||
info = JumpTable()[PhysicalAddr >> 2];
|
|
||||||
if (info != nullptr)
|
|
||||||
{
|
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
|
||||||
info = nullptr;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bRecordExecutionTimes())
|
|
||||||
{
|
|
||||||
uint64_t PreNonCPUTime = g_System->m_CPU_Usage.NonCPUTime();
|
|
||||||
HighResTimeStamp StartTime, EndTime;
|
|
||||||
StartTime.SetToNow();
|
|
||||||
(info->Function())();
|
|
||||||
EndTime.SetToNow();
|
|
||||||
uint64_t PostNonCPUTime = g_System->m_CPU_Usage.NonCPUTime();
|
|
||||||
uint64_t TimeTaken = EndTime.GetMicroSeconds() - StartTime.GetMicroSeconds();
|
|
||||||
if (PostNonCPUTime >= PreNonCPUTime)
|
|
||||||
{
|
|
||||||
TimeTaken -= PostNonCPUTime - PreNonCPUTime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TimeTaken -= PostNonCPUTime;
|
|
||||||
}
|
|
||||||
FUNCTION_PROFILE::iterator itr = m_BlockProfile.find(info->Function());
|
|
||||||
if (itr == m_BlockProfile.end())
|
|
||||||
{
|
|
||||||
FUNCTION_PROFILE_DATA data = { 0 };
|
|
||||||
data.Address = info->EnterPC();
|
|
||||||
std::pair<FUNCTION_PROFILE::iterator, bool> res = m_BlockProfile.insert(FUNCTION_PROFILE::value_type(info->Function(), data));
|
|
||||||
itr = res.first;
|
|
||||||
}
|
|
||||||
WriteTrace(TraceN64System, TraceNotice, "EndTime: %X StartTime: %X TimeTaken: %X", (uint32_t)(EndTime.GetMicroSeconds() & 0xFFFFFFFF), (uint32_t)(StartTime.GetMicroSeconds() & 0xFFFFFFFF), (uint32_t)TimeTaken);
|
|
||||||
itr->second.TimeTaken += TimeTaken;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
(info->Function())();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
uint32_t opsExecuted = 0;
|
|
||||||
|
|
||||||
while (m_MMU.TranslateVaddr(PC, PhysicalAddr) && PhysicalAddr >= g_System->RdramSize())
|
|
||||||
{
|
|
||||||
CInterpreterCPU::ExecuteOps(g_System->CountPerOp());
|
|
||||||
opsExecuted += g_System->CountPerOp();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_SyncSystem)
|
|
||||||
{
|
|
||||||
g_System->UpdateSyncCPU(g_SyncSystem, opsExecuted);
|
|
||||||
g_System->SyncCPU(g_SyncSystem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WriteTrace(TraceRecompiler, TraceDebug, "Done");
|
|
||||||
}
|
|
||||||
|
|
||||||
void CRecompiler::Reset()
|
void CRecompiler::Reset()
|
||||||
{
|
{
|
||||||
WriteTrace(TraceRecompiler, TraceDebug, "Start");
|
WriteTrace(TraceRecompiler, TraceDebug, "Start");
|
||||||
|
@ -542,14 +321,11 @@ void CRecompiler::ClearRecompCode_Phys(uint32_t Address, int length, REMOVE_REAS
|
||||||
ClearRecompCode_Virt(Address + 0x80000000, length, Reason);
|
ClearRecompCode_Virt(Address + 0x80000000, length, Reason);
|
||||||
ClearRecompCode_Virt(Address + 0xA0000000, length, Reason);
|
ClearRecompCode_Virt(Address + 0xA0000000, length, Reason);
|
||||||
|
|
||||||
if (g_System->bUseTlb())
|
uint32_t VAddr, Index = 0;
|
||||||
|
while (g_TLB->PAddrToVAddr(Address, VAddr, Index))
|
||||||
{
|
{
|
||||||
uint32_t VAddr, Index = 0;
|
WriteTrace(TraceRecompiler, TraceInfo, "ClearRecompCode Vaddr %X len: %d", VAddr, length);
|
||||||
while (g_TLB->PAddrToVAddr(Address, VAddr, Index))
|
ClearRecompCode_Virt(VAddr, length, Reason);
|
||||||
{
|
|
||||||
WriteTrace(TraceRecompiler, TraceInfo, "ClearRecompCode Vaddr %X len: %d", VAddr, length);
|
|
||||||
ClearRecompCode_Virt(VAddr, length, Reason);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_System->LookUpMode() == FuncFind_PhysicalLookup)
|
else if (g_System->LookUpMode() == FuncFind_PhysicalLookup)
|
||||||
|
|
|
@ -65,22 +65,17 @@ private:
|
||||||
|
|
||||||
typedef std::map <CCompiledFunc::Func, FUNCTION_PROFILE_DATA> FUNCTION_PROFILE;
|
typedef std::map <CCompiledFunc::Func, FUNCTION_PROFILE_DATA> FUNCTION_PROFILE;
|
||||||
|
|
||||||
// Main loops for the different look up methods
|
|
||||||
void RecompilerMain_VirtualTable();
|
void RecompilerMain_VirtualTable();
|
||||||
void RecompilerMain_VirtualTable_validate();
|
void RecompilerMain_VirtualTable_validate();
|
||||||
void RecompilerMain_ChangeMemory();
|
void RecompilerMain_ChangeMemory();
|
||||||
void RecompilerMain_Lookup();
|
void RecompilerMain_Lookup();
|
||||||
void RecompilerMain_Lookup_TLB();
|
|
||||||
void RecompilerMain_Lookup_validate();
|
void RecompilerMain_Lookup_validate();
|
||||||
void RecompilerMain_Lookup_validate_TLB();
|
|
||||||
|
|
||||||
CCompiledFuncList m_Functions;
|
CCompiledFuncList m_Functions;
|
||||||
CMipsMemoryVM & m_MMU;
|
CMipsMemoryVM & m_MMU;
|
||||||
CRegisters & m_Registers;
|
CRegisters & m_Registers;
|
||||||
bool & m_EndEmulation;
|
bool & m_EndEmulation;
|
||||||
uint32_t m_MemoryStack;
|
uint32_t m_MemoryStack;
|
||||||
FUNCTION_PROFILE m_BlockProfile;
|
FUNCTION_PROFILE m_BlockProfile;
|
||||||
|
uint32_t & PROGRAM_COUNTER;
|
||||||
// Quick access to registers
|
|
||||||
uint32_t & PROGRAM_COUNTER;
|
|
||||||
};
|
};
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -188,6 +188,7 @@
|
||||||
<ClInclude Include="N64System\Recompiler\FunctionMap.h" />
|
<ClInclude Include="N64System\Recompiler\FunctionMap.h" />
|
||||||
<ClInclude Include="N64System\Recompiler\JumpInfo.h" />
|
<ClInclude Include="N64System\Recompiler\JumpInfo.h" />
|
||||||
<ClInclude Include="N64System\Recompiler\LoopAnalysis.h" />
|
<ClInclude Include="N64System\Recompiler\LoopAnalysis.h" />
|
||||||
|
<ClInclude Include="N64System\Recompiler\Recompiler.h" />
|
||||||
<ClInclude Include="N64System\Recompiler\RecompilerCodeLog.h" />
|
<ClInclude Include="N64System\Recompiler\RecompilerCodeLog.h" />
|
||||||
<ClInclude Include="N64System\Recompiler\RecompilerMemory.h" />
|
<ClInclude Include="N64System\Recompiler\RecompilerMemory.h" />
|
||||||
<ClInclude Include="N64System\Recompiler\RecompilerOps.h" />
|
<ClInclude Include="N64System\Recompiler\RecompilerOps.h" />
|
||||||
|
|
|
@ -689,6 +689,9 @@
|
||||||
<ClInclude Include="N64System\MemoryHandler\PeripheralInterfaceHandler.h">
|
<ClInclude Include="N64System\MemoryHandler\PeripheralInterfaceHandler.h">
|
||||||
<Filter>Header Files\N64 System\MemoryHandler</Filter>
|
<Filter>Header Files\N64 System\MemoryHandler</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="N64System\Recompiler\Recompiler.h">
|
||||||
|
<Filter>Header Files\N64 System\Recompiler</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Version.h.in">
|
<None Include="Version.h.in">
|
||||||
|
|
|
@ -129,7 +129,6 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
|
||||||
|
|
||||||
AddHandler(Default_RDRamSize, new CSettingTypeApplication("Defaults", "RDRAM Size", 0x800000u));
|
AddHandler(Default_RDRamSize, new CSettingTypeApplication("Defaults", "RDRAM Size", 0x800000u));
|
||||||
AddHandler(Default_UseHleGfx, new CSettingTypeApplication("Defaults", "HLE GFX Default", true));
|
AddHandler(Default_UseHleGfx, new CSettingTypeApplication("Defaults", "HLE GFX Default", true));
|
||||||
AddHandler(Default_UseTlb, new CSettingTypeApplication("Defaults", "Use TLB", true));
|
|
||||||
AddHandler(Default_ViRefreshRate, new CSettingTypeApplication("Defaults", "ViRefresh", 1500u));
|
AddHandler(Default_ViRefreshRate, new CSettingTypeApplication("Defaults", "ViRefresh", 1500u));
|
||||||
AddHandler(Default_AiCountPerBytes, new CSettingTypeApplication("Defaults", "AiCountPerBytes", 0u));
|
AddHandler(Default_AiCountPerBytes, new CSettingTypeApplication("Defaults", "AiCountPerBytes", 0u));
|
||||||
AddHandler(Default_CounterFactor, new CSettingTypeApplication("Defaults", "Counter Factor", 2u));
|
AddHandler(Default_CounterFactor, new CSettingTypeApplication("Defaults", "Counter Factor", 2u));
|
||||||
|
@ -147,7 +146,6 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
|
||||||
AddHandler(Rdb_CpuType, new CSettingTypeRDBCpuType("CPU Type", CPU_Recompiler));
|
AddHandler(Rdb_CpuType, new CSettingTypeRDBCpuType("CPU Type", CPU_Recompiler));
|
||||||
AddHandler(Rdb_RDRamSize, new CSettingTypeRDBRDRamSize("RDRAM Size", Default_RDRamSize));
|
AddHandler(Rdb_RDRamSize, new CSettingTypeRDBRDRamSize("RDRAM Size", Default_RDRamSize));
|
||||||
AddHandler(Rdb_CounterFactor, new CSettingTypeRomDatabase("Counter Factor", Default_CounterFactor));
|
AddHandler(Rdb_CounterFactor, new CSettingTypeRomDatabase("Counter Factor", Default_CounterFactor));
|
||||||
AddHandler(Rdb_UseTlb, new CSettingTypeRDBYesNo("Use TLB", Default_UseTlb));
|
|
||||||
AddHandler(Rdb_DelayDP, new CSettingTypeRDBYesNo("Delay DP", true));
|
AddHandler(Rdb_DelayDP, new CSettingTypeRDBYesNo("Delay DP", true));
|
||||||
AddHandler(Rdb_DelaySi, new CSettingTypeRDBYesNo("Delay SI", false));
|
AddHandler(Rdb_DelaySi, new CSettingTypeRDBYesNo("Delay SI", false));
|
||||||
AddHandler(Rdb_32Bit, new CSettingTypeRDBYesNo("32bit", Default_32Bit));
|
AddHandler(Rdb_32Bit, new CSettingTypeRDBYesNo("32bit", Default_32Bit));
|
||||||
|
@ -205,7 +203,6 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
|
||||||
AddHandler(Game_FixedAudio, new CSettingTypeGame("Fixed Audio", Rdb_FixedAudio));
|
AddHandler(Game_FixedAudio, new CSettingTypeGame("Fixed Audio", Rdb_FixedAudio));
|
||||||
AddHandler(Game_RDRamSize, new CSettingTypeGame("RDRamSize", Rdb_RDRamSize));
|
AddHandler(Game_RDRamSize, new CSettingTypeGame("RDRamSize", Rdb_RDRamSize));
|
||||||
AddHandler(Game_CounterFactor, new CSettingTypeGame("Counter Factor", Rdb_CounterFactor));
|
AddHandler(Game_CounterFactor, new CSettingTypeGame("Counter Factor", Rdb_CounterFactor));
|
||||||
AddHandler(Game_UseTlb, new CSettingTypeGame("Use TLB", Rdb_UseTlb));
|
|
||||||
AddHandler(Game_DelayDP, new CSettingTypeGame("Delay DP", Rdb_DelayDP));
|
AddHandler(Game_DelayDP, new CSettingTypeGame("Delay DP", Rdb_DelayDP));
|
||||||
AddHandler(Game_DelaySI, new CSettingTypeGame("Delay SI", Rdb_DelaySi));
|
AddHandler(Game_DelaySI, new CSettingTypeGame("Delay SI", Rdb_DelaySi));
|
||||||
AddHandler(Game_RspAudioSignal, new CSettingTypeGame("Audio Signal", Rdb_RspAudioSignal));
|
AddHandler(Game_RspAudioSignal, new CSettingTypeGame("Audio Signal", Rdb_RspAudioSignal));
|
||||||
|
|
|
@ -9,7 +9,6 @@ bool CGameSettings::m_bSMM_Protect;
|
||||||
bool CGameSettings::m_bSMM_ValidFunc;
|
bool CGameSettings::m_bSMM_ValidFunc;
|
||||||
bool CGameSettings::m_bSMM_PIDMA;
|
bool CGameSettings::m_bSMM_PIDMA;
|
||||||
bool CGameSettings::m_bSMM_TLB;
|
bool CGameSettings::m_bSMM_TLB;
|
||||||
bool CGameSettings::m_bUseTlb;
|
|
||||||
uint32_t CGameSettings::m_CountPerOp = 2;
|
uint32_t CGameSettings::m_CountPerOp = 2;
|
||||||
uint32_t CGameSettings::m_ViRefreshRate = 1500;
|
uint32_t CGameSettings::m_ViRefreshRate = 1500;
|
||||||
uint32_t CGameSettings::m_AiCountPerBytes = 500;
|
uint32_t CGameSettings::m_AiCountPerBytes = 500;
|
||||||
|
@ -65,7 +64,6 @@ void CGameSettings::RefreshGameSettings()
|
||||||
m_bSMM_ValidFunc = g_Settings->LoadBool(Game_SMM_ValidFunc);
|
m_bSMM_ValidFunc = g_Settings->LoadBool(Game_SMM_ValidFunc);
|
||||||
m_bSMM_PIDMA = g_Settings->LoadBool(Game_SMM_PIDMA);
|
m_bSMM_PIDMA = g_Settings->LoadBool(Game_SMM_PIDMA);
|
||||||
m_bSMM_TLB = g_Settings->LoadBool(Game_SMM_TLB);
|
m_bSMM_TLB = g_Settings->LoadBool(Game_SMM_TLB);
|
||||||
m_bUseTlb = g_Settings->LoadBool(Game_UseTlb);
|
|
||||||
m_ViRefreshRate = g_Settings->LoadDword(Game_ViRefreshRate);
|
m_ViRefreshRate = g_Settings->LoadDword(Game_ViRefreshRate);
|
||||||
m_AiCountPerBytes = g_Settings->LoadDword(Game_AiCountPerBytes);
|
m_AiCountPerBytes = g_Settings->LoadDword(Game_AiCountPerBytes);
|
||||||
m_CountPerOp = g_Settings->LoadDword(Game_CounterFactor);
|
m_CountPerOp = g_Settings->LoadDword(Game_CounterFactor);
|
||||||
|
|
|
@ -16,7 +16,6 @@ public:
|
||||||
inline static bool bRegCaching(void) { return m_RegCaching; }
|
inline static bool bRegCaching(void) { return m_RegCaching; }
|
||||||
inline static bool bLinkBlocks(void) { return m_bLinkBlocks && !CDebugSettings::HaveWriteBP() && !CDebugSettings::HaveReadBP(); }
|
inline static bool bLinkBlocks(void) { return m_bLinkBlocks && !CDebugSettings::HaveWriteBP() && !CDebugSettings::HaveReadBP(); }
|
||||||
inline static FUNC_LOOKUP_METHOD LookUpMode(void) { return (FUNC_LOOKUP_METHOD)m_LookUpMode; }
|
inline static FUNC_LOOKUP_METHOD LookUpMode(void) { return (FUNC_LOOKUP_METHOD)m_LookUpMode; }
|
||||||
inline static bool bUseTlb(void) { return m_bUseTlb; }
|
|
||||||
inline static uint32_t CountPerOp(void) { return m_CountPerOp; }
|
inline static uint32_t CountPerOp(void) { return m_CountPerOp; }
|
||||||
inline static uint32_t ViRefreshRate(void) { return m_ViRefreshRate; }
|
inline static uint32_t ViRefreshRate(void) { return m_ViRefreshRate; }
|
||||||
inline static uint32_t AiCountPerBytes(void) { return m_AiCountPerBytes; }
|
inline static uint32_t AiCountPerBytes(void) { return m_AiCountPerBytes; }
|
||||||
|
@ -60,7 +59,6 @@ private:
|
||||||
static bool m_RegCaching;
|
static bool m_RegCaching;
|
||||||
static bool m_bLinkBlocks;
|
static bool m_bLinkBlocks;
|
||||||
static uint32_t m_LookUpMode; //FUNC_LOOKUP_METHOD
|
static uint32_t m_LookUpMode; //FUNC_LOOKUP_METHOD
|
||||||
static bool m_bUseTlb;
|
|
||||||
static uint32_t m_CountPerOp;
|
static uint32_t m_CountPerOp;
|
||||||
static uint32_t m_ViRefreshRate;
|
static uint32_t m_ViRefreshRate;
|
||||||
static uint32_t m_AiCountPerBytes;
|
static uint32_t m_AiCountPerBytes;
|
||||||
|
|
|
@ -65,7 +65,6 @@ enum SettingID
|
||||||
// Default settings
|
// Default settings
|
||||||
Default_RDRamSize,
|
Default_RDRamSize,
|
||||||
Default_UseHleGfx,
|
Default_UseHleGfx,
|
||||||
Default_UseTlb,
|
|
||||||
Default_ViRefreshRate,
|
Default_ViRefreshRate,
|
||||||
Default_AiCountPerBytes,
|
Default_AiCountPerBytes,
|
||||||
Default_CounterFactor,
|
Default_CounterFactor,
|
||||||
|
@ -83,7 +82,6 @@ enum SettingID
|
||||||
Rdb_CpuType,
|
Rdb_CpuType,
|
||||||
Rdb_RDRamSize,
|
Rdb_RDRamSize,
|
||||||
Rdb_CounterFactor,
|
Rdb_CounterFactor,
|
||||||
Rdb_UseTlb,
|
|
||||||
Rdb_DelayDP,
|
Rdb_DelayDP,
|
||||||
Rdb_DelaySi,
|
Rdb_DelaySi,
|
||||||
Rdb_32Bit,
|
Rdb_32Bit,
|
||||||
|
@ -149,7 +147,6 @@ enum SettingID
|
||||||
Game_LastSaveTime,
|
Game_LastSaveTime,
|
||||||
Game_RDRamSize,
|
Game_RDRamSize,
|
||||||
Game_CounterFactor,
|
Game_CounterFactor,
|
||||||
Game_UseTlb,
|
|
||||||
Game_DelayDP,
|
Game_DelayDP,
|
||||||
Game_DelaySI,
|
Game_DelaySI,
|
||||||
Game_FastSP,
|
Game_FastSP,
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
#include "../stdafx.h"
|
|
|
@ -11,7 +11,6 @@ CDefaultsOptionsPage::CDefaultsOptionsPage(HWND hParent, const RECT & rcDispay)
|
||||||
|
|
||||||
SetDlgItemText(IDC_MEMORY_SIZE_TEXT, wGS(ROM_MEM_SIZE).c_str());
|
SetDlgItemText(IDC_MEMORY_SIZE_TEXT, wGS(ROM_MEM_SIZE).c_str());
|
||||||
SetDlgItemText(IDC_HLE_GFX, wGS(PLUG_HLE_GFX).c_str());
|
SetDlgItemText(IDC_HLE_GFX, wGS(PLUG_HLE_GFX).c_str());
|
||||||
SetDlgItemText(IDC_USE_TLB, wGS(ROM_USE_TLB).c_str());
|
|
||||||
SetDlgItemText(IDC_VIREFESH_TEXT, wGS(ROM_VIREFRESH).c_str());
|
SetDlgItemText(IDC_VIREFESH_TEXT, wGS(ROM_VIREFRESH).c_str());
|
||||||
SetDlgItemText(IDC_COUNTPERBYTE_TEXT, wGS(ROM_COUNTPERBYTE).c_str());
|
SetDlgItemText(IDC_COUNTPERBYTE_TEXT, wGS(ROM_COUNTPERBYTE).c_str());
|
||||||
SetDlgItemText(IDC_COUNTFACT_TEXT, wGS(ROM_COUNTER_FACTOR).c_str());
|
SetDlgItemText(IDC_COUNTFACT_TEXT, wGS(ROM_COUNTER_FACTOR).c_str());
|
||||||
|
@ -50,7 +49,6 @@ CDefaultsOptionsPage::CDefaultsOptionsPage(HWND hParent, const RECT & rcDispay)
|
||||||
TxtBox->SetTextField(GetDlgItem(IDC_COUNTPERBYTE_TEXT));
|
TxtBox->SetTextField(GetDlgItem(IDC_COUNTPERBYTE_TEXT));
|
||||||
|
|
||||||
AddModCheckBox(GetDlgItem(IDC_HLE_GFX), Default_UseHleGfx);
|
AddModCheckBox(GetDlgItem(IDC_HLE_GFX), Default_UseHleGfx);
|
||||||
AddModCheckBox(GetDlgItem(IDC_USE_TLB), Default_UseTlb);
|
|
||||||
AddModCheckBox(GetDlgItem(IDC_ROM_32BIT), Default_32Bit);
|
AddModCheckBox(GetDlgItem(IDC_ROM_32BIT), Default_32Bit);
|
||||||
AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO), Default_SyncViaAudio);
|
AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO), Default_SyncViaAudio);
|
||||||
AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO), Default_FixedAudio);
|
AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO), Default_FixedAudio);
|
||||||
|
|
|
@ -6,7 +6,6 @@ class CDefaultsOptionsPage :
|
||||||
{
|
{
|
||||||
BEGIN_MSG_MAP_EX(CDefaultsOptionsPage)
|
BEGIN_MSG_MAP_EX(CDefaultsOptionsPage)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_HLE_GFX, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_HLE_GFX, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_USE_TLB, CheckBoxChanged)
|
|
||||||
COMMAND_ID_HANDLER_EX(IDC_ROM_32BIT, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_ROM_32BIT, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_SYNC_AUDIO, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_SYNC_AUDIO, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO, CheckBoxChanged)
|
||||||
|
|
|
@ -24,7 +24,6 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay)
|
||||||
SetDlgItemText(IDC_ROM_FIXEDAUDIO, wGS(ROM_FIXED_AUDIO).c_str());
|
SetDlgItemText(IDC_ROM_FIXEDAUDIO, wGS(ROM_FIXED_AUDIO).c_str());
|
||||||
SetDlgItemText(IDC_DELAY_DP, wGS(ROM_DELAY_DP).c_str());
|
SetDlgItemText(IDC_DELAY_DP, wGS(ROM_DELAY_DP).c_str());
|
||||||
SetDlgItemText(IDC_SYNC_AUDIO, wGS(ROM_SYNC_AUDIO).c_str());
|
SetDlgItemText(IDC_SYNC_AUDIO, wGS(ROM_SYNC_AUDIO).c_str());
|
||||||
SetDlgItemText(IDC_USE_TLB, wGS(ROM_USE_TLB).c_str());
|
|
||||||
SetDlgItemText(IDC_DELAY_SI, wGS(ROM_DELAY_SI).c_str());
|
SetDlgItemText(IDC_DELAY_SI, wGS(ROM_DELAY_SI).c_str());
|
||||||
SetDlgItemText(IDC_AUDIO_SIGNAL, wGS(ROM_AUDIO_SIGNAL).c_str());
|
SetDlgItemText(IDC_AUDIO_SIGNAL, wGS(ROM_AUDIO_SIGNAL).c_str());
|
||||||
SetDlgItemText(IDC_UNALIGNED_DMA, wGS(ROM_UNALIGNED_DMA).c_str());
|
SetDlgItemText(IDC_UNALIGNED_DMA, wGS(ROM_UNALIGNED_DMA).c_str());
|
||||||
|
@ -33,7 +32,6 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay)
|
||||||
AddModCheckBox(GetDlgItem(IDC_ROM_32BIT), Game_32Bit);
|
AddModCheckBox(GetDlgItem(IDC_ROM_32BIT), Game_32Bit);
|
||||||
AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO), Game_SyncViaAudio);
|
AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO), Game_SyncViaAudio);
|
||||||
AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO), Game_FixedAudio);
|
AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO), Game_FixedAudio);
|
||||||
AddModCheckBox(GetDlgItem(IDC_USE_TLB), Game_UseTlb);
|
|
||||||
AddModCheckBox(GetDlgItem(IDC_DELAY_DP), Game_DelayDP);
|
AddModCheckBox(GetDlgItem(IDC_DELAY_DP), Game_DelayDP);
|
||||||
AddModCheckBox(GetDlgItem(IDC_DELAY_SI), Game_DelaySI);
|
AddModCheckBox(GetDlgItem(IDC_DELAY_SI), Game_DelaySI);
|
||||||
AddModCheckBox(GetDlgItem(IDC_AUDIO_SIGNAL), Game_RspAudioSignal);
|
AddModCheckBox(GetDlgItem(IDC_AUDIO_SIGNAL), Game_RspAudioSignal);
|
||||||
|
|
|
@ -14,7 +14,6 @@ class CGameGeneralPage :
|
||||||
COMMAND_ID_HANDLER_EX(IDC_ROM_32BIT, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_ROM_32BIT, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_SYNC_AUDIO, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_SYNC_AUDIO, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_USE_TLB, CheckBoxChanged)
|
|
||||||
COMMAND_ID_HANDLER_EX(IDC_DELAY_DP, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_DELAY_DP, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_DELAY_SI, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_DELAY_SI, CheckBoxChanged)
|
||||||
COMMAND_ID_HANDLER_EX(IDC_AUDIO_SIGNAL, CheckBoxChanged)
|
COMMAND_ID_HANDLER_EX(IDC_AUDIO_SIGNAL, CheckBoxChanged)
|
||||||
|
|
|
@ -222,15 +222,14 @@ BEGIN
|
||||||
EDITTEXT IDC_OVER_CLOCK_MODIFIER,102,101,109,12,ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_OVER_CLOCK_MODIFIER,102,101,109,12,ES_AUTOHSCROLL | ES_NUMBER
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,3,116,208,1
|
CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,3,116,208,1
|
||||||
CONTROL "32 Bit Engine",IDC_ROM_32BIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,121,91,10
|
CONTROL "32 Bit Engine",IDC_ROM_32BIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,121,91,10
|
||||||
CONTROL "Use TLB",IDC_USE_TLB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,121,91,10
|
CONTROL "Sync using Audio",IDC_SYNC_AUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,121,91,10
|
||||||
CONTROL "Fixed Audio Timing",IDC_ROM_FIXEDAUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,132,91,10
|
CONTROL "Fixed Audio Timing",IDC_ROM_FIXEDAUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,132,91,10
|
||||||
CONTROL "Sync using Audio",IDC_SYNC_AUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,132,91,10
|
CONTROL "Delay SI Interrupt",IDC_DELAY_SI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,132,91,10
|
||||||
CONTROL "Delay DP Interrupt",IDC_DELAY_DP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,143,91,10
|
CONTROL "Delay DP Interrupt",IDC_DELAY_DP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,143,91,10
|
||||||
CONTROL "Delay SI Interrupt",IDC_DELAY_SI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,143,91,10
|
|
||||||
CONTROL "RSP Audio Signal",IDC_AUDIO_SIGNAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,154,91,10
|
|
||||||
CONTROL "Randomize SI/PI interrupts",IDC_RANDOMIZE_SIPI_INTERRUPTS,
|
CONTROL "Randomize SI/PI interrupts",IDC_RANDOMIZE_SIPI_INTERRUPTS,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,154,107,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,143,107,10
|
||||||
CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,165,91,10
|
CONTROL "RSP Audio Signal",IDC_AUDIO_SIGNAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,154,91,10
|
||||||
|
CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,154,91,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_Settings_Accelerator DIALOGEX 0, 0, 218, 183
|
IDD_Settings_Accelerator DIALOGEX 0, 0, 218, 183
|
||||||
|
@ -1234,23 +1233,22 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Memory Size:",IDC_MEMORY_SIZE_TEXT,6,8,91,10
|
LTEXT "Memory Size:",IDC_MEMORY_SIZE_TEXT,6,8,91,10
|
||||||
COMBOBOX IDC_RDRAM_SIZE,102,6,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_RDRAM_SIZE,102,6,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "Use High Level GFX",IDC_HLE_GFX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,93,91,10
|
LTEXT "Counter Factor:",IDC_COUNTFACT_TEXT,6,22,91,10
|
||||||
CONTROL "Use TLB",IDC_USE_TLB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,69,91,10
|
COMBOBOX IDC_COUNTFACT,102,21,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
LTEXT "Vi Refresh Rate:",IDC_VIREFESH_TEXT,6,38,91,10
|
LTEXT "Vi Refresh Rate:",IDC_VIREFESH_TEXT,6,38,91,10
|
||||||
EDITTEXT IDC_VIREFRESH,102,36,109,12,ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_VIREFRESH,102,36,109,12,ES_AUTOHSCROLL | ES_NUMBER
|
||||||
LTEXT "AI Count Per Byte:",IDC_COUNTPERBYTE_TEXT,6,52,91,10
|
LTEXT "AI Count Per Byte:",IDC_COUNTPERBYTE_TEXT,6,52,91,10
|
||||||
EDITTEXT IDC_COUNTPERBYTE,102,51,109,12,ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_COUNTPERBYTE,102,51,109,12,ES_AUTOHSCROLL | ES_NUMBER
|
||||||
LTEXT "Counter Factor:",IDC_COUNTFACT_TEXT,6,22,91,10
|
LTEXT "Disk Seek Timing:",IDC_DISKSEEKTIMING_TEXT1,6,67,91,10
|
||||||
COMBOBOX IDC_COUNTFACT,102,21,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_DISKSEEKTIMING,102,65,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "32 Bit Engine",IDC_ROM_32BIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,69,91,10
|
CONTROL "32 Bit Engine",IDC_ROM_32BIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,80,91,10
|
||||||
CONTROL "Fixed Audio Timing",IDC_ROM_FIXEDAUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,81,91,10
|
CONTROL "Sync using Audio",IDC_SYNC_AUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,80,91,10
|
||||||
CONTROL "Sync using Audio",IDC_SYNC_AUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,81,91,10
|
CONTROL "Fixed Audio Timing",IDC_ROM_FIXEDAUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,92,91,10
|
||||||
CONTROL "Randomize SI/PI interrupts",IDC_RANDOMIZE_SIPI_INTERRUPTS,
|
CONTROL "Randomize SI/PI interrupts",IDC_RANDOMIZE_SIPI_INTERRUPTS,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,93,107,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,92,107,10
|
||||||
CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,105,91,10
|
CONTROL "Use High Level GFX",IDC_HLE_GFX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,104,91,10
|
||||||
CONTROL "Protect Memory",IDC_PROTECT_MEMORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,105,91,10
|
CONTROL "Protect Memory",IDC_PROTECT_MEMORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,104,91,10
|
||||||
COMBOBOX IDC_DISKSEEKTIMING,102,121,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,116,91,10
|
||||||
LTEXT "Disk Seek Timing:",IDC_DISKSEEKTIMING_TEXT1,6,123,91,10
|
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_Enhancement_Config DIALOGEX 0, 0, 206, 214
|
IDD_Enhancement_Config DIALOGEX 0, 0, 206, 214
|
||||||
|
|
|
@ -344,7 +344,6 @@
|
||||||
#define IDC_MEMORY_SIZE_TEXT 1153
|
#define IDC_MEMORY_SIZE_TEXT 1153
|
||||||
#define IDC_SAVE_TYPE_TEXT 1154
|
#define IDC_SAVE_TYPE_TEXT 1154
|
||||||
#define IDC_SYNC_AUDIO 1156
|
#define IDC_SYNC_AUDIO 1156
|
||||||
#define IDC_USE_TLB 1157
|
|
||||||
#define IDC_UNALIGNED_DMA 1158
|
#define IDC_UNALIGNED_DMA 1158
|
||||||
#define IDC_RANDOMIZE_SIPI_INTERRUPTS 1159
|
#define IDC_RANDOMIZE_SIPI_INTERRUPTS 1159
|
||||||
#define IDC_PROTECT_MEMORY 1160
|
#define IDC_PROTECT_MEMORY 1160
|
||||||
|
|
Loading…
Reference in New Issue