-#ifdef __WXMGL__
-    // We take advantage of wxMGL's _EVT_getTicks because it is faster
-    // (especially under MS-DOS!) and more precise than wxGetLocalTimeMillis
-    // if we are unlucky and the latter combines information from two sources.
-    #include "wx/mgl/private.h"
-    extern "C" ulong _EVT_getTicks();
-    #define GetMillisecondsTime() _EVT_getTicks()
-#else
-//    #define GetMillisecondsTime() wxGetLocalTimeMillis().ToLong()
-    // Suppresses the debug warning in ToLong. FIXME: check
-    // that we don't drastically lose precision
-    #define GetMillisecondsTime() (unsigned long) wxGetLocalTimeMillis().GetValue()
-#endif
+#define GetMillisecondsTime wxGetLocalTimeMillis
+
+typedef wxLongLong wxTimerTick_t;
+
+#if wxUSE_LONGLONG_WX
+    #define wxTimerTickFmtSpec wxLongLongFmtSpec "d"
+    #define wxTimerTickPrintfArg(tt) (tt.GetValue())
+#else // using native wxLongLong
+    #define wxTimerTickFmtSpec wxT("s")
+    #define wxTimerTickPrintfArg(tt) (tt.ToString().c_str())
+#endif // wx/native long long
+
+inline bool wxTickGreaterEqual(wxTimerTick_t x, wxTimerTick_t y)
+{
+    return x >= y;
+}