fix incorrectly detecting NT6 ~64.102 Hz mode as NT5 64 Hz mode, detect as special...
[lcore.git] / btime.pas
index ee7583bc9ecbd40ec98c3e9876335ad9d5ebb09b..7adcdd82d2f53cd89ed668427647919ff0b6d969 100644 (file)
--- a/btime.pas
+++ b/btime.pas
@@ -244,16 +244,30 @@ begin
   ticks_freq2 := f;\r
   mmtime_synchedqpc := false;\r
   {\r
-  NT 64 Hz\r
+  NT 5 64 Hz (RTC)\r
   identify mode as: nt64\r
   QPC rate: either 3579545 or TSC freq\r
   QPC synched to gettickcount: no\r
   duration between 2 ticks is constant: yes\r
   gettickcount tick duration: 64 Hz\r
+\r
+  NT 6 64 Hz (HPET?)\r
+  identify mode as: nt64\r
+  QPC rate: TSC freq / 1000\r
+  QPC synched to gettickcount: no\r
+  duration between 2 ticks is constant: yes\r
+  gettickcount tick duration: ~15.6001007 ms, ~64.102 Hz\r
+\r
   }\r
   if (f >= 0.014) and (f <= 0.018) and isnt then begin\r
+    if (performancecountfreq = 3579545) or (performancecountfreq > 50000000) then begin\r
+      {typical XP}\r
+      ticks_freq := 1/64;\r
+    end else begin\r
+      {typical windows 7}\r
+      ticks_freq := 0.0156001007;\r
+    end;\r
     ticks_freq_known := true;\r
-    ticks_freq := 1/64;\r
     mmtime_synchedqpc := false;\r
   end;\r
 \r
@@ -275,7 +289,7 @@ begin
   end;\r
 \r
   {9x}\r
-  if (performancecountfreq = 1193182) and (g >= 0.050) and (g <= 0.060) then begin\r
+  if (performancecountfreq = 1193182) and (f >= 0.050) and (f <= 0.060) then begin\r
     ticks_freq_known := true;\r
     ticks_freq := 65536 / (colorburst / 3);\r
     mmtime_synchedqpc := true;\r