Просмотр исходного кода

Merge pull request #275 from MerryMage/addticks-dynarmic

arm_dynarmic: Fix timing
bunnei 8 лет назад
Родитель
Сommit
46945b5c96
1 измененных файлов с 3 добавлено и 7 удалено
  1. 3 7
      src/core/arm/dynarmic/arm_dynarmic.cpp

+ 3 - 7
src/core/arm/dynarmic/arm_dynarmic.cpp

@@ -86,21 +86,17 @@ public:
     }
     }
 
 
     void AddTicks(u64 ticks) override {
     void AddTicks(u64 ticks) override {
-        if (ticks > ticks_remaining) {
-            ticks_remaining = 0;
-            return;
-        }
-        ticks -= ticks_remaining;
+        CoreTiming::AddTicks(ticks - num_interpreted_instructions);
+        num_interpreted_instructions = 0;
     }
     }
     u64 GetTicksRemaining() override {
     u64 GetTicksRemaining() override {
-        return ticks_remaining;
+        return std::max(CoreTiming::GetDowncount(), 0);
     }
     }
     u64 GetCNTPCT() override {
     u64 GetCNTPCT() override {
         return CoreTiming::GetTicks();
         return CoreTiming::GetTicks();
     }
     }
 
 
     ARM_Dynarmic& parent;
     ARM_Dynarmic& parent;
-    size_t ticks_remaining = 0;
     size_t num_interpreted_instructions = 0;
     size_t num_interpreted_instructions = 0;
     u64 tpidrro_el0 = 0;
     u64 tpidrro_el0 = 0;
     u64 tpidr_el0 = 0;
     u64 tpidr_el0 = 0;